From d6195a73fdcbd8af06babf0be88e3bcba863e00c Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 14 Oct 2024 23:40:11 -0300 Subject: [PATCH 01/35] (fix) Removed deprecated methods --- pyinjective/async_client.py | 1165 +---------- pyinjective/composer.py | 866 --------- pyinjective/core/network.py | 19 - .../core/test_network_deprecation_warnings.py | 56 - tests/test_async_client.py | 5 - .../test_async_client_deprecation_warnings.py | 1724 ----------------- tests/test_composer_deprecation_warnings.py | 551 ------ 7 files changed, 6 insertions(+), 4380 deletions(-) delete mode 100644 tests/core/test_network_deprecation_warnings.py delete mode 100644 tests/test_async_client_deprecation_warnings.py delete mode 100644 tests/test_composer_deprecation_warnings.py diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 4239a5fa..23d2012e 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -1,11 +1,8 @@ import asyncio -import time from copy import deepcopy from decimal import Decimal -from typing import Any, Callable, Dict, List, Optional, Tuple, Union -from warnings import warn +from typing import Any, Callable, Dict, List, Optional, Tuple -import grpc from google.protobuf import json_format from pyinjective.client.chain.grpc.chain_grpc_auth_api import ChainGrpcAuthApi @@ -47,43 +44,16 @@ 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.types.v1beta1 import account_pb2 from pyinjective.utils.logger import LoggerProvider @@ -97,24 +67,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 +88,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() @@ -332,13 +271,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 +294,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 +328,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 +355,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) @@ -1009,36 +850,12 @@ async def fetch_market_atomic_execution_fee_multiplier( # Auction RPC - async def get_auction(self, bid_round: int): - """ - This method is deprecated and will be removed soon. Please use `fetch_auction` 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) - async def fetch_auction(self, round: int) -> Dict[str, Any]: return await self.exchange_auction_api.fetch_auction(round=round) - async def get_auctions(self): - """ - This method is deprecated and will be removed soon. Please use `fetch_auctions` instead - """ - warn("This method is deprecated. Use fetch_auctions instead", DeprecationWarning, stacklevel=2) - req = auction_rpc_pb.AuctionsRequest() - return await self.stubAuction.Auctions(req) - 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 +870,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 +986,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 +1009,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 +1036,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 +1061,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 +1073,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 +1085,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 +1097,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 +1109,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 +1131,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 +1147,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 +1160,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 +1174,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, @@ -1604,17 +1186,6 @@ async def fetch_subaccount_order_summary( 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"), - ) - return await self.stubExchangeAccount.OrderStates(req) - async def fetch_order_states( self, spot_order_hashes: Optional[List[str]] = None, @@ -1625,43 +1196,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 +1222,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 +1236,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 +1258,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 +1271,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 +1285,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 +1313,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 +1339,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 +1363,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 +1377,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 +1391,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 +1419,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 +1443,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 +1467,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 +1497,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 +1507,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 +1524,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 +1537,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 +1551,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 +1583,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 +1611,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 +1635,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 +1649,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 +1663,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 +1695,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 +1725,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 +1741,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 +1757,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 +1767,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 +1777,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 +1793,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 +1803,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 +1810,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 +1822,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,38 +1847,6 @@ async def listen_account_portfolio_updates( update_type=update_type, ) - async def chain_stream( - self, - 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, - ): - """ - This method is deprecated and will be removed soon. Please use `listen_chain_stream_updates` instead - """ - warn("This method is deprecated. Use listen_chain_stream_updates instead", DeprecationWarning, stacklevel=2) - request = chain_stream_query.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, - ) - metadata = self.network.chain_cookie_assistant.metadata() - return self.chain_stream_stub.Stream(request=request, metadata=metadata) - async def listen_chain_stream_updates( self, callback: Callable, diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 720cfb7c..5605e7af 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -3,7 +3,6 @@ from decimal import Decimal from time import time from typing import Any, Dict, List, Optional -from warnings import warn from google.protobuf import any_pb2, json_format, timestamp_pb2 @@ -150,13 +149,6 @@ def __init__( self.tokens = tokens 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 @@ -172,27 +164,6 @@ 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 - ): - """ - This method is deprecated and will be removed soon. Please use `order_data` instead - """ - warn("This method is deprecated. Use order_data 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( - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - order_mask=order_mask, - cid=cid, - ) - def order_data( self, market_id: str, @@ -228,53 +199,6 @@ def order_data_without_mask( cid=cid, ) - def SpotOrder( - self, - market_id: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `spot_order` instead - """ - warn("This method is deprecated. Use spot_order 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 - - 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 - - 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)), - cid=cid, - ), - order_type=order_type, - trigger_price=str(int(trigger_price)), - ) - def spot_order( self, market_id: str, @@ -319,75 +243,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, @@ -521,19 +376,6 @@ def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) # endregion # region Chain Exchange module - def MsgDeposit(self, sender: str, subaccount_id: str, amount: float, denom: str): - """ - This method is deprecated and will be removed soon. Please use `msg_deposit` 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) - - return injective_exchange_tx_pb.MsgDeposit( - sender=sender, - subaccount_id=subaccount_id, - 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) @@ -543,19 +385,6 @@ def msg_deposit(self, sender: str, subaccount_id: str, amount: Decimal, denom: s amount=coin, ) - def MsgWithdraw(self, sender: str, subaccount_id: str, amount: float, denom: str): - """ - This method is deprecated and will be removed soon. Please use `msg_withdraw` 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) - - return injective_exchange_tx_pb.MsgWithdraw( - sender=sender, - subaccount_id=subaccount_id, - 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) @@ -696,48 +525,6 @@ def msg_instant_expiry_futures_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) - def MsgCreateSpotLimitOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_spot_limit_order` 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) - - return injective_exchange_tx_pb.MsgCreateSpotLimitOrder( - sender=sender, - order=self.spot_order( - 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, - cid=cid, - ), - ) - def msg_create_spot_limit_order( self, market_id: str, @@ -764,55 +551,11 @@ def msg_create_spot_limit_order( ), ) - def MsgBatchCreateSpotLimitOrders(self, sender: str, orders: List): - """ - This method is deprecated and will be removed soon. Please use `msg_batch_create_spot_limit_orders` instead - """ - warn( - "This method is deprecated. Use msg_batch_create_spot_limit_orders 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( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - is_buy: bool, - cid: Optional[str] = None, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_spot_market_order` 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) - - return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( - sender=sender, - order=self.spot_order( - 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, - cid=cid, - ), - ) - def msg_create_spot_market_order( self, market_id: str, @@ -839,26 +582,6 @@ def msg_create_spot_market_order( ), ) - def MsgCancelSpotOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - order_hash: Optional[str] = None, - cid: Optional[str] = None, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_cancel_spot_order` instead - """ - warn("This method is deprecated. Use msg_cancel_spot_order instead", DeprecationWarning, stacklevel=2) - return injective_exchange_tx_pb.MsgCancelSpotOrder( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - cid=cid, - ) - def msg_cancel_spot_order( self, market_id: str, @@ -875,37 +598,11 @@ 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 - """ - 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"), - ) - def msg_batch_update_orders( self, sender: str, @@ -934,22 +631,6 @@ 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 - ) -> injective_exchange_tx_pb.MsgPrivilegedExecuteContract: - """ - This method is deprecated and will be removed soon. Please use `msg_privileged_execute_contract` instead - """ - warn("This method is deprecated. Use msg_privileged_execute_contract instead", DeprecationWarning, stacklevel=2) - - 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 - ) - def msg_privileged_execute_contract( self, sender: str, @@ -965,68 +646,6 @@ def msg_privileged_execute_contract( funds=funds, ) - def MsgCreateDerivativeLimitOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_derivative_limit_order` instead - """ - warn( - "This method is deprecated. Use msg_create_derivative_limit_order 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)), - margin=margin, - order_type=order_type, - cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, - ), - ) - def msg_create_derivative_limit_order( self, market_id: str, @@ -1055,18 +674,6 @@ def msg_create_derivative_limit_order( ), ) - def MsgBatchCreateDerivativeLimitOrders(self, sender: str, orders: List): - """ - This method is deprecated and will be removed soon. - Please use `msg_batch_create_derivative_limit_orders` instead - """ - warn( - "This method is deprecated. Use msg_batch_create_derivative_limit_orders instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders(sender=sender, orders=orders) - def msg_batch_create_derivative_limit_orders( self, sender: str, @@ -1074,70 +681,6 @@ def msg_batch_create_derivative_limit_orders( ) -> injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders: return injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders(sender=sender, orders=orders) - def MsgCreateDerivativeMarketOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_derivative_market_order` instead - """ - warn( - "This method is deprecated. Use msg_create_derivative_market_order 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)), - margin=margin, - order_type=order_type, - cid=cid, - trigger_price=Decimal(str(kwargs["trigger_price"])) if "trigger_price" in kwargs else None, - ), - ) - def msg_create_derivative_market_order( self, market_id: str, @@ -1166,38 +709,6 @@ def msg_create_derivative_market_order( ), ) - def MsgCancelDerivativeOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - order_hash: Optional[str] = None, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_cancel_derivative_order` instead - """ - warn( - "This method is deprecated. Use msg_cancel_derivative_order 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( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - order_mask=order_mask, - cid=cid, - ) - def msg_cancel_derivative_order( self, market_id: str, @@ -1220,78 +731,11 @@ def msg_cancel_derivative_order( cid=cid, ) - def MsgBatchCancelDerivativeOrders(self, sender: str, data: List): - """ - This method is deprecated and will be removed soon. Please use `msg_batch_cancel_derivative_orders` instead - """ - warn( - "This method is deprecated. Use msg_batch_cancel_derivative_orders 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( - self, - sender: str, - ticker: str, - oracle_symbol: str, - oracle_provider: str, - oracle_type: str, - oracle_scale_factor: int, - maker_fee_rate: float, - taker_fee_rate: float, - expiration_timestamp: int, - settlement_timestamp: int, - quote_denom: str, - quote_decimals: int, - min_price_tick_size: float, - min_quantity_tick_size: float, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. - Please use `msg_instant_binary_options_market_launch` instead - """ - warn( - "This method is deprecated. Use msg_instant_binary_options_market_launch 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") - - 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") - - return injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch( - sender=sender, - ticker=ticker, - oracle_symbol=oracle_symbol, - oracle_provider=oracle_provider, - oracle_type=oracle_type, - oracle_scale_factor=oracle_scale_factor, - maker_fee_rate=maker_fee_to_bytes, - taker_fee_rate=taker_fee_to_bytes, - 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"), - ) - def msg_instant_binary_options_market_launch( self, sender: str, @@ -1340,70 +784,6 @@ def msg_instant_binary_options_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) - def MsgCreateBinaryOptionsLimitOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_binary_options_limit_order` instead - """ - warn( - "This method is deprecated. Use msg_create_binary_options_limit_order 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( - 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)), - 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"), - ), - ) - def msg_create_binary_options_limit_order( self, market_id: str, @@ -1434,70 +814,6 @@ def msg_create_binary_options_limit_order( ), ) - def MsgCreateBinaryOptionsMarketOrder( - self, - market_id: str, - sender: str, - subaccount_id: str, - fee_recipient: str, - price: float, - quantity: float, - cid: Optional[str] = None, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_create_binary_options_market_order` instead - """ - warn( - "This method is deprecated. Use msg_create_binary_options_market_order 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, - 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)), - 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"), - ), - ) - def msg_create_binary_options_market_order( self, market_id: str, @@ -1528,30 +844,6 @@ def msg_create_binary_options_market_order( ), ) - def MsgCancelBinaryOptionsOrder( - self, - sender: str, - market_id: str, - subaccount_id: str, - order_hash: Optional[str] = None, - cid: Optional[str] = None, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_cancel_binary_options_order` instead - """ - warn( - "This method is deprecated. Use msg_cancel_binary_options_order instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - cid=cid, - ) - def msg_cancel_binary_options_order( self, market_id: str, @@ -1574,31 +866,6 @@ def msg_cancel_binary_options_order( cid=cid, ) - def MsgSubaccountTransfer( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - amount: int, - denom: str, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_subaccount_transfer` 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) - - return injective_exchange_tx_pb.MsgSubaccountTransfer( - sender=sender, - source_subaccount_id=source_subaccount_id, - destination_subaccount_id=destination_subaccount_id, - amount=be_amount, - ) - def msg_subaccount_transfer( self, sender: str, @@ -1616,31 +883,6 @@ def msg_subaccount_transfer( amount=be_amount, ) - def MsgExternalTransfer( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - amount: int, - denom: str, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_external_transfer` 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) - - return injective_exchange_tx_pb.MsgExternalTransfer( - sender=sender, - source_subaccount_id=source_subaccount_id, - destination_subaccount_id=destination_subaccount_id, - amount=coin, - ) - def msg_external_transfer( self, sender: str, @@ -1658,25 +900,6 @@ def msg_external_transfer( amount=coin, ) - def MsgLiquidatePosition( - self, - sender: str, - subaccount_id: str, - market_id: str, - order: Optional[injective_exchange_pb.DerivativeOrder] = None, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_liquidate_position` instead - """ - warn( - "This method is deprecated. Use msg_liquidate_position 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( self, sender: str, @@ -1698,33 +921,6 @@ def msg_emergency_settle_market( sender=sender, subaccount_id=subaccount_id, market_id=market_id ) - def MsgIncreasePositionMargin( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - market_id: str, - amount: float, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_increase_position_margin` instead - """ - warn( - "This method is deprecated. Use msg_increase_position_margin instead", - DeprecationWarning, - stacklevel=2, - ) - market = self.derivative_markets[market_id] - - additional_margin = market.margin_to_chain_format(human_readable_value=Decimal(str(amount))) - return injective_exchange_tx_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 msg_increase_position_margin( self, sender: str, @@ -1744,52 +940,9 @@ def msg_increase_position_margin( 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, - ) - 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 MsgAdminUpdateBinaryOptionsMarket( - self, - sender: str, - market_id: str, - status: str, - **kwargs, - ): - """ - This method is deprecated and will be removed soon. Please use `msg_admin_update_binary_options_market` instead - """ - warn( - "This method is deprecated. Use msg_admin_update_binary_options_market 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") - - else: - price_to_bytes = "" - - 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"), - status=status, - ) - def msg_admin_update_binary_options_market( self, sender: str, @@ -2260,30 +1413,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) 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/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/test_async_client.py b/tests/test_async_client.py index 3181d15a..b67ed799 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -47,7 +47,6 @@ class TestAsyncClient: async def test_sync_timeout_height_logs_exception(self, caplog): client = AsyncClient( network=Network.local(), - insecure=False, ) with caplog.at_level(logging.DEBUG): @@ -66,7 +65,6 @@ async def test_sync_timeout_height_logs_exception(self, caplog): async def test_get_account_logs_exception(self, caplog): client = AsyncClient( network=Network.local(), - insecure=False, ) with caplog.at_level(logging.DEBUG): @@ -107,7 +105,6 @@ async def test_initialize_tokens_and_markets( client = AsyncClient( network=test_network, - insecure=False, ) client.exchange_spot_api._stub = spot_servicer @@ -198,7 +195,6 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( client = AsyncClient( network=test_network, - insecure=False, ) client.exchange_spot_api._stub = spot_servicer @@ -241,7 +237,6 @@ async def test_initialize_tokens_from_chain_denoms( client = AsyncClient( network=test_network, - insecure=False, ) client.bank_api._stub = bank_servicer diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py deleted file mode 100644 index 3d8954ca..00000000 --- a/tests/test_async_client_deprecation_warnings.py +++ /dev/null @@ -1,1724 +0,0 @@ -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.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.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 -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() - - 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" - - @pytest.mark.asyncio - async def test_stream_bids_deprecation_warning( - self, - auction_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" - - @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()) - - with catch_warnings(record=True) as all_warnings: - await client.get_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_markets instead" - - @pytest.mark.asyncio - async def test_get_spot_market_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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( - self, - spot_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" - - @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()) - - with catch_warnings(record=True) as all_warnings: - await client.get_spot_orderbooksV2(market_ids=[]) - - 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" - - @pytest.mark.asyncio - async def test_get_spot_orders_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.orders_responses.append(exchange_spot_pb.OrdersResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_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 fetch_spot_orders instead" - - @pytest.mark.asyncio - async def test_get_spot_trades_deprecation_warning( - self, - spot_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() - - 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(), - ) - 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="") - - 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" - ) - - @pytest.mark.asyncio - async def test_get_spot_subaccount_trades_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.subaccount_trades_list_responses.append(exchange_spot_pb.SubaccountTradesListResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_spot_subaccount_trades(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_spot_subaccount_trades_list instead" - ) - - @pytest.mark.asyncio - async def test_get_historical_spot_orders_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.orders_history_responses.append(exchange_spot_pb.SubaccountTradesListResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_historical_spot_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 fetch_spot_orders_history instead" - ) - - @pytest.mark.asyncio - async def test_stream_spot_markets_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_markets_responses.append(exchange_spot_pb.StreamMarketsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_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_markets_updates instead" - ) - - @pytest.mark.asyncio - async def test_stream_spot_orderbook_snapshot_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orderbook_v2_responses.append(exchange_spot_pb.StreamOrderbookV2Response()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_spot_orderbook_snapshot(market_ids=[]) - - 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" - ) - - @pytest.mark.asyncio - async def test_stream_spot_orderbook_update_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orderbook_update_responses.append(exchange_spot_pb.StreamOrderbookUpdateRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_spot_orderbook_update(market_ids=[]) - - 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" - ) - - @pytest.mark.asyncio - async def test_stream_spot_orders_deprecation_warning( - self, - spot_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" - ) - - @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()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_spot_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 listen_spot_trades_updates instead" - ) - - @pytest.mark.asyncio - async def test_stream_historical_spot_orders_deprecation_warning( - self, - spot_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - spot_servicer.stream_orders_history_responses.append(exchange_spot_pb.StreamOrdersHistoryRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_historical_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_history_updates instead" - ) - - @pytest.mark.asyncio - async def test_get_derivative_markets_deprecation_warning( - self, - derivative_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" - - @pytest.mark.asyncio - async def test_get_derivative_market_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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="") - - 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" - - @pytest.mark.asyncio - async def test_get_binary_options_markets_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.binary_options_markets_responses.append( - exchange_derivative_pb.BinaryOptionsMarketsResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.get_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_binary_options_markets instead" - ) - - @pytest.mark.asyncio - async def test_get_binary_options_market_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.binary_options_market_responses.append(exchange_derivative_pb.BinaryOptionsMarketResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_binary_options_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_binary_options_market instead" - ) - - @pytest.mark.asyncio - async def test_get_derivative_orderbook_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orderbook_v2_responses.append(exchange_derivative_pb.OrderbookV2Request()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_orderbook(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_orderbook_v2 instead" - ) - - @pytest.mark.asyncio - async def test_get_derivative_orderbooksV2_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orderbooks_v2_responses.append(exchange_derivative_pb.OrderbooksV2Request()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_orderbooksV2(market_ids=[]) - - 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" - ) - - @pytest.mark.asyncio - async def test_get_derivative_orders_deprecation_warning( - self, - derivative_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" - - @pytest.mark.asyncio - async def test_get_derivative_positions_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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() - - 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" - ) - - @pytest.mark.asyncio - async def test_get_derivative_liquidable_positions_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.liquidable_positions_responses.append(exchange_derivative_pb.LiquidablePositionsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_liquidable_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 fetch_derivative_liquidable_positions instead" - ) - - @pytest.mark.asyncio - async def test_get_funding_payments_deprecation_warning( - self, - derivative_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" - - @pytest.mark.asyncio - async def test_get_funding_rates_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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="") - - 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(), - ) - 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( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.subaccount_orders_list_responses.append( - exchange_derivative_pb.SubaccountOrdersListResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_subaccount_orders(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_derivative_subaccount_orders instead" - ) - - @pytest.mark.asyncio - async def test_get_derivative_subaccount_trades_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.subaccount_trades_list_responses.append( - exchange_derivative_pb.SubaccountTradesListResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.get_derivative_subaccount_trades(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_derivative_subaccount_trades instead" - ) - - @pytest.mark.asyncio - async def test_get_historical_derivative_orders_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.orders_history_responses.append(exchange_derivative_pb.OrdersHistoryResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_historical_derivative_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 fetch_derivative_orders_history instead" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_markets_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_market_responses.append(exchange_derivative_pb.StreamMarketResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_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" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_orderbook_snapshot_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = spot_servicer - derivative_servicer.stream_orderbook_v2_responses.append(exchange_derivative_pb.StreamOrderbookV2Response()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_orderbook_snapshot(market_ids=[]) - - 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" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_orderbook_update_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_orderbook_update_responses.append( - exchange_derivative_pb.StreamOrderbookUpdateRequest() - ) - - with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_orderbook_update(market_ids=[]) - - 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" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_positions_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubDerivativeExchange = derivative_servicer - derivative_servicer.stream_positions_responses.append(exchange_derivative_pb.StreamPositionsRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_derivative_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_positions_updates instead" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_orders_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_responses.append(exchange_derivative_pb.StreamOrdersRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_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 listen_derivative_orders_updates instead" - ) - - @pytest.mark.asyncio - async def test_stream_derivative_trades_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_responses.append(exchange_derivative_pb.StreamTradesResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_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 listen_derivative_trades_updates instead" - ) - - @pytest.mark.asyncio - async def test_stream_historical_derivative_orders_deprecation_warning( - self, - derivative_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubSpotExchange = derivative_servicer - derivative_servicer.stream_orders_history_responses.append(exchange_spot_pb.StreamOrdersHistoryRequest()) - - with catch_warnings(record=True) as all_warnings: - await client.stream_historical_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 listen_derivative_orders_history_updates instead" - ) - - @pytest.mark.asyncio - async def test_get_account_portfolio_deprecation_warning( - self, - portfolio_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubPortfolio = portfolio_servicer - portfolio_servicer.account_portfolio_responses.append(exchange_portfolio_pb.AccountPortfolioResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_account_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_account_portfolio_balances instead" - ) - - @pytest.mark.asyncio - async def test_stream_account_portfolio_deprecation_warning( - self, - portfolio_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubPortfolio = portfolio_servicer - portfolio_servicer.stream_account_portfolio_responses.append( - exchange_portfolio_pb.StreamAccountPortfolioResponse() - ) - - with catch_warnings(record=True) as all_warnings: - await client.stream_account_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 listen_account_portfolio_updates instead" - ) - - @pytest.mark.asyncio - async def test_get_account_txs_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExplorer = explorer_servicer - explorer_servicer.account_txs_responses.append(exchange_explorer_pb.GetAccountTxsResponse()) - - 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(), - ) - 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() - - 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" - - @pytest.mark.asyncio - async def test_get_block_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExplorer = explorer_servicer - explorer_servicer.block_responses.append(exchange_explorer_pb.GetBlockResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_block(block_height="") - - 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" - - @pytest.mark.asyncio - async def test_get_txs_deprecation_warning( - self, - explorer_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() - - 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(), - ) - 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="") - - 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" - - @pytest.mark.asyncio - async def test_get_peggy_deposits_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExplorer = explorer_servicer - explorer_servicer.peggy_deposit_txs_responses.append(exchange_explorer_pb.GetPeggyDepositTxsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_peggy_deposits() - - 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" - - @pytest.mark.asyncio - async def test_get_peggy_withdrawals_deprecation_warning( - self, - explorer_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubExplorer = explorer_servicer - explorer_servicer.peggy_withdrawal_txs_responses.append(exchange_explorer_pb.GetPeggyWithdrawalTxsResponse()) - - with catch_warnings(record=True) as all_warnings: - await client.get_peggy_withdrawals() - - 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" - ) - - @pytest.mark.asyncio - async def test_get_ibc_transfers_deprecation_warning( - self, - explorer_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() - - 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(), - ) - 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() - - 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" - - @pytest.mark.asyncio - async def test_stream_blocks_deprecation_warning( - self, - explorer_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" - - @pytest.mark.asyncio - async def test_chain_stream_deprecation_warning( - self, - chain_stream_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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() - - 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" - ) - - @pytest.mark.asyncio - async def test_get_latest_block_deprecation_warning( - self, - tendermint_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.stubCosmosTendermint = tendermint_servicer - tendermint_servicer.get_latest_block_responses.append(tendermint_query.GetLatestBlockResponse()) - - 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" - - 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()) - - 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" - ) diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py deleted file mode 100644 index a2891299..00000000 --- a/tests/test_composer_deprecation_warnings.py +++ /dev/null @@ -1,551 +0,0 @@ -import warnings -from decimal import Decimal - -import pytest - -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 - - -class TestComposerDeprecationWarnings: - @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_msg_deposit_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgDeposit(sender="sender", subaccount_id="subaccount id", 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_deposit instead" - - def test_msg_withdraw_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgWithdraw(sender="sender", subaccount_id="subaccount id", amount=1, denom="USDT") - - 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" - - def test_coin_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.Coin( - 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 coin instead" - - def test_order_data_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", - ) - - 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" - - def test_spot_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.SpotOrder( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=True, - 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" - - def test_derivative_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.DerivativeOrder( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=True, - 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" - - def test_msg_create_spot_limit_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCreateSpotLimitOrder( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - 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 msg_create_spot_limit_order instead" - ) - - def test_msg_batch_create_spot_limit_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - order = composer.spot_order( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=Decimal(1), - quantity=Decimal(1), - order_type="BUY", - ) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCreateSpotLimitOrders( - 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" - ) - - def test_msg_create_spot_market_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCreateSpotMarketOrder( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - is_buy=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) - == "This method is deprecated. Use msg_create_spot_market_order instead" - ) - - def test_msg_cancel_spot_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCancelSpotOrder( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - 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 msg_cancel_spot_order instead" - - def test_msg_batch_cancel_spot_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - orders = [ - composer.order_data( - market_id="0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0", - subaccount_id="subaccount_id", - order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", - ), - ] - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCancelSpotOrders(sender="sender", data=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 msg_batch_cancel_spot_orders instead" - ) - - def test_msg_batch_update_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchUpdateOrders(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" - - def test_msg_privileged_execute_contract_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgPrivilegedExecuteContract( - sender="sender", - contract="contract", - msg="msg", - ) - - 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" - ) - - def test_msg_create_derivative_limit_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCreateDerivativeLimitOrder( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - 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 msg_create_derivative_limit_order instead" - ) - - def test_msg_batch_create_derivative_limit_orders_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - order = composer.derivative_order( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=Decimal(1), - quantity=Decimal(1), - margin=Decimal(1), - order_type="BUY", - ) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCreateDerivativeLimitOrders( - 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_derivative_limit_orders instead" - ) - - def test_msg_create_derivative_market_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCreateDerivativeMarketOrder( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - 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 msg_create_derivative_market_order instead" - ) - - def test_msg_cancel_derivative_order_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgCancelDerivativeOrder( - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - 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 msg_cancel_derivative_order 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", - ), - ] - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgBatchCancelDerivativeOrders(sender="sender", data=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 msg_batch_cancel_derivative_orders instead" - ) - - def test_msg_instant_binary_options_market_launch_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgInstantBinaryOptionsMarketLaunch( - sender="sender", - ticker="B2400/INJ", - oracle_symbol="B2400/INJ", - oracle_provider="injective", - 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, - ) - - 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" - ) - - def test_msg_create_binary_options_limit_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateBinaryOptionsLimitOrder( - market_id=market.id, - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - is_buy=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) - == "This method is deprecated. Use msg_create_binary_options_limit_order instead" - ) - - def test_msg_create_binary_options_market_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCreateBinaryOptionsMarketOrder( - market_id=market.id, - sender="sender", - subaccount_id="subaccount id", - fee_recipient="fee recipient", - price=1, - quantity=1, - cid="cid", - is_buy=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) - == "This method is deprecated. Use msg_create_binary_options_market_order instead" - ) - - def test_msg_cancel_binary_options_order_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgCancelBinaryOptionsOrder( - market_id=market.id, - sender="sender", - subaccount_id="subaccount id", - order_hash="order hash", - 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 msg_cancel_binary_options_order instead" - ) - - def test_msg_subaccount_transfer_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgSubaccountTransfer( - sender="sender", - source_subaccount_id="source subaccount id", - destination_subaccount_id="destination subaccount id", - 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_subaccount_transfer instead" - - def test_msg_external_transfer_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgExternalTransfer( - sender="sender", - source_subaccount_id="source subaccount id", - destination_subaccount_id="destination subaccount id", - 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_external_transfer instead" - - def test_msg_liquidate_position_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgLiquidatePosition( - sender="sender", - subaccount_id="subaccount id", - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - ) - - 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" - - def test_msg_increase_position_margin_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgIncreasePositionMargin( - sender="sender", - source_subaccount_id="source_subaccount id", - destination_subaccount_id="destination_subaccount id", - market_id="0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4", - 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_increase_position_margin instead" - ) - - def test_msg_rewards_opt_out_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgRewardsOptOut( - 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_rewards_opt_out instead" - - def test_msg_admin_update_binary_options_market_deprecation_warning(self, basic_composer): - market = list(basic_composer.binary_option_markets.values())[0] - - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgAdminUpdateBinaryOptionsMarket( - sender="sender", - market_id=market.id, - status="Paused", - ) - - 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" - ) - - def test_msg_withdraw_delegator_reward_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - composer.MsgWithdrawDelegatorReward( - delegator_address="delegator address", - validator_address="validator 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 msg_withdraw_delegator_reward instead" - ) From efc9ec6f71c0caf49d5f5b81a26281cdc925be17 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:45:59 -0300 Subject: [PATCH 02/35] (feat) Updated proto definitions with exchange V2 from chain core. Fixed all failing tests --- buf.gen.yaml | 12 +- .../exchange/3_MsgInstantSpotMarketLaunch.py | 2 + pyinjective/composer.py | 4 + pyinjective/ofac.json | 124 +- pyinjective/proto/cosmwasm/wasm/v1/ibc_pb2.py | 8 +- .../proto/cosmwasm/wasm/v1/query_pb2.py | 131 +- .../injective/auction/v1beta1/auction_pb2.py | 26 +- .../injective/auction/v1beta1/query_pb2.py | 2 +- .../exchange/v1beta1/exchange_pb2.py | 216 +- .../exchange/v1beta1/proposal_pb2.py | 88 +- .../injective/exchange/v1beta1/query_pb2.py | 64 +- .../exchange/v1beta1/query_pb2_grpc.py | 86 + .../injective/exchange/v1beta1/tx_pb2.py | 314 +- .../proto/injective/exchange/v2/authz_pb2.py | 71 + .../injective/exchange/v2/authz_pb2_grpc.py | 4 + .../proto/injective/exchange/v2/events_pb2.py | 159 + .../injective/exchange/v2/events_pb2_grpc.py | 4 + .../injective/exchange/v2/exchange_pb2.py | 225 ++ .../exchange/v2/exchange_pb2_grpc.py | 4 + .../injective/exchange/v2/genesis_pb2.py | 82 + .../injective/exchange/v2/genesis_pb2_grpc.py | 4 + .../proto/injective/exchange/v2/market_pb2.py | 123 + .../injective/exchange/v2/market_pb2_grpc.py | 4 + .../proto/injective/exchange/v2/order_pb2.py | 126 + .../injective/exchange/v2/order_pb2_grpc.py | 4 + .../injective/exchange/v2/orderbook_pb2.py | 45 + .../exchange/v2/orderbook_pb2_grpc.py | 4 + .../injective/exchange/v2/proposal_pb2.py | 222 ++ .../exchange/v2/proposal_pb2_grpc.py | 4 + .../proto/injective/exchange/v2/query_pb2.py | 568 ++++ .../injective/exchange/v2/query_pb2_grpc.py | 2767 +++++++++++++++++ .../proto/injective/exchange/v2/tx_pb2.py | 441 +++ .../injective/exchange/v2/tx_pb2_grpc.py | 1595 ++++++++++ .../chain/grpc/test_chain_grpc_auction_api.py | 36 +- .../grpc/test_chain_grpc_exchange_api.py | 22 + tests/test_composer.py | 6 + 36 files changed, 7163 insertions(+), 434 deletions(-) create mode 100644 pyinjective/proto/injective/exchange/v2/authz_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/authz_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/events_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/events_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/exchange_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/exchange_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/genesis_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/genesis_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/market_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/market_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/order_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/order_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/orderbook_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/orderbook_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/proposal_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/proposal_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/query_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py create mode 100644 pyinjective/proto/injective/exchange/v2/tx_pb2.py create mode 100644 pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py diff --git a/buf.gen.yaml b/buf.gen.yaml index 1cb56c02..1fe323f2 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_derivative_v2_upgrade_handler_logic + subdir: proto - directory: proto diff --git a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py index fe7c5ad4..53459eeb 100644 --- a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py +++ b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py @@ -43,6 +43,8 @@ async def main() -> None: 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/pyinjective/composer.py b/pyinjective/composer.py index 5605e7af..9bdcaf5a 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -403,6 +403,8 @@ 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: base_token = self.tokens[base_denom] quote_token = self.tokens[quote_denom] @@ -425,6 +427,8 @@ 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_perpetual_market_launch( diff --git a/pyinjective/ofac.json b/pyinjective/ofac.json index 59b4160e..553224bd 100644 --- a/pyinjective/ofac.json +++ b/pyinjective/ofac.json @@ -1,48 +1,158 @@ [ + "0x01e2919679362dfbc9ee1644ba9c6da6d6245bb1", + "0x03893a7c7463ae47d46bc7f091665f1893656003", + "0x04dba1194ee10112fe6c3207c0687def0e78bacf", + "0x05e0b5b40b7b66098c2161a5ee11c5740a3a7c45", + "0x07687e702b410fa43f4cb4af7fa097918ffd2730", + "0x0836222f2b2b24a3f36f98668ed8f0b38d1a872f", + "0x08723392ed15743cc38513c4925f5e6be5c17243", + "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", + "0x09193888b3f38c82dedfda55259a82c0e7de875e", + "0x0931ca4d13bb4ba75d9b7132ab690265d749a5e7", + "0x098b716b8aaf21512996dc57eb0615e2383e2f96", + "0x0e3a09dda6b20afbb34ac7cd4a6881493f3e7bf7", + "0x0ee5067b06776a89ccc7dc8ee369984ad7db5e06", + "0x12d66f87a04a9e220743712ce6d9bb1b5616b8fc", + "0x1356c899d8c9467c7f71c195612f8a395abf2f0a", + "0x169ad27a470d064dede56a2d3ff727986b15d52b", + "0x175d44451403edf28469df03a9280c1197adb92c", + "0x178169b423a011fff22b9e3f3abea13414ddd0f1", "0x179f48c78f57a3a78f0608cc9197b8972921d1d2", "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", - "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", + "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", - "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", + "0x1e34a77868e19a6647b1f2f47b51ed72dede95dd", + "0x21b8d56bda776bbe68655a16895afd96f5534fed", + "0x22aaa7720ddd5388a3c0a3333430953c68f1849b", + "0x23173fe8b96a4ad8d2e17fb83ea5dcccdca1ae52", + "0x23773e65ed146a459791799d01336db287f25334", + "0x242654336ca2205714071898f67e254eb49acdce", + "0x2573bac39ebe2901b4389cd468f2872cf7767faf", + "0x26903a5a198d571422b2b4ea08b56a37cbd68c89", + "0x2717c5e28cf931547b621a5dddb772ab6a35b701", "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", "0x2f50508a8a3d323b91336fa3ea6ae50e55f32185", + "0x2fc93484614a34f26f7970cbb94615ba109bb4bf", "0x308ed4b7b49797e1a98d3818bff6fe5385410370", + "0x330bdfade01ee9bf63c209ee33102dd334618e0a", + "0x35fb6f6db4fb05e6a4ce86f2c93691425626d4b1", + "0x38735f03b30fbc022ddd06abed01f0ca823c6a94", + "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29", + "0x3aac1cc67c2ec5db4ea850957b967ba153ad6279", + "0x3ad9db589d201a710ed237c829c7860ba86510fc", "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d", + "0x3cffd56b47b7b41c56258d9c7731abadc360e073", + "0x3e37627deaa754090fbfbb8bd226c1ce66d255e9", "0x3efa30704d2b8bbac821307230376556cf8cc39e", + "0x407cceeaa7c95d2fe2250bf9f2c105aa7aafb512", + "0x43fa21d92141ba9db43052492e0deee5aa5f0a93", + "0x4736dcf1b7a3d580672cce6e7c65cd5cc9cfba9d", + "0x47ce0c6ed5b0ce3d3a51fdb1c52dc66a7c3c2936", "0x48549a34ae37b12f6a30566245176994e17c6b4a", "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", - "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", - "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", + "0x502371699497d08d5339c870851898d6d72521dd", + "0x527653ea119f3e6a1f5bd18fbf4714081d7b31ce", "0x530a64c0ce595026a4a556b703644228179e2d57", + "0x538ab61e8a9fc1b2f93b3dd9011d662d89be6fe6", + "0x53b6936513e738f44fb50d2b9476730c0ab3bfc1", "0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0", + "0x57b2b8c82f065de8ef5573f9730fc1449b403c9f", + "0x58e8dcc13be9780fc42e8723d8ead4cf46943df2", + "0x5a14e72060c11313e38738009254a90968f58f51", "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f", + "0x5cab7692d4e94096462119ab7bf57319726eed2a", + "0x5efda50f22d34f262c29268506c5fa42cb56a1ce", "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2", + "0x5f6c97c6ad7bdd0ae7e0dd4ca33a4ed3fdabd4d7", + "0x610b717796ad172b316836ac95a2ffad065ceab4", + "0x653477c392c16b0765603074f157314cc4f40c32", + "0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45", "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", + "0x6bf694a291df3fec1f7e69701e3ab6c592435ae7", "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", + "0x722122df12d4e14e13ac3b6895a86e84145b6967", + "0x723b78e67497e85279cb204544566f4dc5d2aca0", + "0x72a5843cc08275c8171e582972aa4fda8c397b2a", + "0x743494b60097a2230018079c02fe21a7b687eaa5", "0x746aebc06d2ae31b71ac51429a19d54e797878e9", + "0x756c4628e57f7e7f8a459ec2752968360cf4d1aa", + "0x76d85b4c0fc497eecc38902397ac608000a06607", + "0x776198ccf446dfa168347089d7338879273172cf", "0x77777feddddffc19ff86db637967013e6c6a116c", "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", + "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", + "0x7f19720a857f834887fc9a7bc0a0fbe7fc7f8102", + "0x7f367cc41522ce07553e823bf3be79a889debe1b", + "0x7ff9cfad3877f21d41da833e2f775db0569ee3d9", + "0x8281aa6795ade17c8973e1aedca380258bc124f9", + "0x833481186f16cece3f1eeea1a694c42034c3a0db", + "0x83e5bc4ffa856bb84bb88581f5dd62a433a25e0d", + "0x84443cfd09a48af6ef360c6976c5392ac5023a1f", "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c", + "0x8589427373d6d84e98730d7795d8f6f8731fda16", + "0x88fd245fedec4a936e700f9173454d1931b4c307", "0x901bb9583b24d97e995513c6778dc6888ab6870e", + "0x910cbd523d972eb0a6f4cae4618ad62622b39dbf", + "0x931546d9e66836abf687d2bc64b30407bac8c568", + "0x94a1b5cdb22c43faab4abeb5c74999895464ddaf", + "0x94be88213a387e992dd87de56950a9aef34b9448", + "0x94c92f096437ab9958fc0a37f09348f30389ae79", "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", "0x97b1043abd9e6fc31681635166d430a458d14f9c", + "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", + "0x9ad122c22b14202b4490edaf288fdb3c7cb3ff5e", "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", + "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", + "0xa160cdab225685da1d56aa342ad8841c3b53f291", + "0xa5c2254e4253490c54cef0a4347fddb8f75a4998", + "0xa60c772958a3ed56c1f15dd055ba37ac8e523a0d", "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", + "0xaeaac358560e11f52454d997aaff2c5731b6f8a6", + "0xaf4c0b70b2ea9fb7487c7cbb37ada259579fe040", + "0xaf8d1839c3c67cf571aa74b5c12398d4901147b3", + "0xb04e030140b30c27bcdfaafffa98c57d80eda7b4", + "0xb1c8094b234dce6e03f10a5b673c1d8c69739a00", + "0xb20c66c4de72433f3ce747b58b86830c459ca911", + "0xb541fc07bc7619fd4062a54d96268525cbc6ffef", "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", - "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", - "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", + "0xba214c1c1928a32bffe790263e38b4af9bfcd659", + "0xbb93e510bbcd0b7beb5a853875f9ec60275cf498", + "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", "0xca0840578f57fe71599d29375e16783424023357", + "0xcc84179ffd19a1627e79f8648d09e095252bc418", + "0xcee71753c9820f063b38fdbe4cfdaf1d3d928a80", "0xd0975b32cea532eadddfc9c60481976e39db3472", + "0xd21be7248e0197ee08e0c20d4a96debdac3d20af", + "0xd47438c816c9e7f2e2888e060936a499af9582b3", + "0xd4b88df4d29f5cedd6857912842cff3b20c8cfa3", + "0xd5d6f8d9e784d0e26222ad3834500801a68d027d", + "0xd691f27f38b395864ea86cfc7253969b409c362d", + "0xd692fd2d0b2fbd2e52cfa5b5b9424bc981c30696", + "0xd82ed8786d7c69dc7e052f7a542ab047971e73d2", "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", - "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", + "0xd8d7de3349ccaa0fde6298fe6d7b7d0d34586193", + "0xd90e2f925da726b50c4ed8d0fb90ad053324f31b", + "0xd96f2b1c14db8458374d9aca76e26c3d18364307", + "0xdcbeffbecce100cce9e4b153c4e15cb885643193", + "0xdd4c48c0b24039969fc16d1cdf626eab821d3384", + "0xdf231d99ff8b6c6cbf4e9b9a945cbacef9339178", + "0xdf3a408c53e5078af6e8fb2a85088d46ee09a61b", "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", "0xe7aa314c77f4233c18c6cc84384a9247c0cf367b", + "0xe950dc316b836e4eefb8308bf32bf7c72a1358ff", "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921", + "0xedc5d01286f99a066559f60a585406f3878a033e", + "0xefe301d259f525ca1ba74a7977b80d5b060b3cca", "0xf3701f445b6bdafedbca97d1e477357839e4120d", + "0xf4b067dd14e95bab89be928c07cb22e3c94e0daa", + "0xf60dd140cff0706bae9cd734ac3ae76ad9ebc32a", + "0xf67721a2d8f736e75a49fdd7fad2e31d8676542a", + "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", "0xfac583c0cf07ea434052c49115a4682172ab6b4f", + "0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144", "0xfec8a60023265364d066a1212fde3930f6ae8da7", "0xffbac21a641dcfe4552920138d90f3638b3c9fba" ] 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/injective/auction/v1beta1/auction_pb2.py b/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py index efdcbff9..394d1e17 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\"\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') _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=525 + _globals['_LASTAUCTIONRESULT']._serialized_start=528 + _globals['_LASTAUCTIONRESULT']._serialized_end=666 + _globals['_EVENTBID']._serialized_start=669 + _globals['_EVENTBID']._serialized_end=798 + _globals['_EVENTAUCTIONRESULT']._serialized_start=801 + _globals['_EVENTAUCTIONRESULT']._serialized_end=940 + _globals['_EVENTAUCTIONSTART']._serialized_start=943 + _globals['_EVENTAUCTIONSTART']._serialized_end=1135 # @@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..0154fee0 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -0,0 +1,159 @@ +# -*- 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\"i\n$EventDerivativeLimitOrderV2Migration\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\x05order\"k\n%EventDerivativeMarketOrderV2Migration\x12\x42\n\x05order\x18\x01 \x01(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderR\x05order\"k\n\"EventDerivativePositionV2Migration\x12\x45\n\x08position\x18\x01 \x01(\x0b\x32).injective.exchange.v2.DerivativePositionR\x08position\"X\n\x19\x45ventSpotOrderV2Migration\x12;\n\x05order\x18\x01 \x01(\x0b\x32%.injective.exchange.v2.SpotLimitOrderR\x05orderB\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['_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['_EVENTDERIVATIVELIMITORDERV2MIGRATION']._serialized_start=6758 + _globals['_EVENTDERIVATIVELIMITORDERV2MIGRATION']._serialized_end=6863 + _globals['_EVENTDERIVATIVEMARKETORDERV2MIGRATION']._serialized_start=6865 + _globals['_EVENTDERIVATIVEMARKETORDERV2MIGRATION']._serialized_end=6972 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_start=6974 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_end=7081 + _globals['_EVENTSPOTORDERV2MIGRATION']._serialized_start=7083 + _globals['_EVENTSPOTORDERV2MIGRATION']._serialized_end=7171 +# @@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/tests/client/chain/grpc/test_chain_grpc_auction_api.py b/tests/client/chain/grpc/test_chain_grpc_auction_api.py index 9de9c63a..9832f7cc 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,7 +48,11 @@ 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", + ) highest_bid = auction_pb.Bid( bidder="inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", amount="\n\003inj\022\0232347518723906280000", @@ -63,8 +77,9 @@ async def test_fetch_module_state( "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), }, } } @@ -76,7 +91,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 +111,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..f5db75e7 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, }, ] } diff --git a/tests/test_composer.py b/tests/test_composer.py index b3dd1fda..733e171a 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -311,6 +311,8 @@ def test_msg_instant_spot_market_launch(self, basic_composer): 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] @@ -331,6 +333,8 @@ 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, ) expected_message = { @@ -341,6 +345,8 @@ def test_msg_instant_spot_market_launch(self, basic_composer): "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}", + "baseDecimals": base_decimals, + "quoteDecimals": quote_decimals, } dict_message = json_format.MessageToDict( message=message, From 5e7082384f491ed17012aab34c6993a4bb2bf4bb Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 22 Oct 2024 11:55:14 -0300 Subject: [PATCH 03/35] (feat) Updated proto definitions with exchange V2 from chain core to include new V2 chain stream protos. Fixed all failing tests --- buf.gen.yaml | 2 +- .../injective/auction/v1beta1/auction_pb2.py | 20 +-- .../proto/injective/exchange/v2/events_pb2.py | 10 +- .../proto/injective/stream/v2/query_pb2.py | 132 ++++++++++++++++++ .../injective/stream/v2/query_pb2_grpc.py | 80 +++++++++++ .../chain/grpc/test_chain_grpc_auction_api.py | 22 ++- 6 files changed, 244 insertions(+), 22 deletions(-) create mode 100644 pyinjective/proto/injective/stream/v2/query_pb2.py create mode 100644 pyinjective/proto/injective/stream/v2/query_pb2_grpc.py diff --git a/buf.gen.yaml b/buf.gen.yaml index 1fe323f2..4c9a0415 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -24,6 +24,6 @@ inputs: # tag: v1.13.0 # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - branch: feat/add_derivative_v2_upgrade_handler_logic + branch: feat/chain_stream_exchange_v2 subdir: proto - directory: proto diff --git a/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py b/pyinjective/proto/injective/auction/v1beta1/auction_pb2.py index 394d1e17..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\"\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\"\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) @@ -46,13 +46,13 @@ _globals['_PARAMS']._serialized_start=144 _globals['_PARAMS']._serialized_end=391 _globals['_BID']._serialized_start=394 - _globals['_BID']._serialized_end=525 - _globals['_LASTAUCTIONRESULT']._serialized_start=528 - _globals['_LASTAUCTIONRESULT']._serialized_end=666 - _globals['_EVENTBID']._serialized_start=669 - _globals['_EVENTBID']._serialized_end=798 - _globals['_EVENTAUCTIONRESULT']._serialized_start=801 - _globals['_EVENTAUCTIONRESULT']._serialized_end=940 - _globals['_EVENTAUCTIONSTART']._serialized_start=943 - _globals['_EVENTAUCTIONSTART']._serialized_end=1135 + _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/exchange/v2/events_pb2.py b/pyinjective/proto/injective/exchange/v2/events_pb2.py index 0154fee0..04428a8f 100644 --- a/pyinjective/proto/injective/exchange/v2/events_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -20,7 +20,7 @@ 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\"i\n$EventDerivativeLimitOrderV2Migration\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective.exchange.v2.DerivativeLimitOrderR\x05order\"k\n%EventDerivativeMarketOrderV2Migration\x12\x42\n\x05order\x18\x01 \x01(\x0b\x32,.injective.exchange.v2.DerivativeMarketOrderR\x05order\"k\n\"EventDerivativePositionV2Migration\x12\x45\n\x08position\x18\x01 \x01(\x0b\x32).injective.exchange.v2.DerivativePositionR\x08position\"X\n\x19\x45ventSpotOrderV2Migration\x12;\n\x05order\x18\x01 \x01(\x0b\x32%.injective.exchange.v2.SpotLimitOrderR\x05orderB\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') +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\x65scriptionB\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) @@ -148,12 +148,4 @@ _globals['_EVENTINVALIDGRANT']._serialized_end=6582 _globals['_EVENTORDERCANCELFAIL']._serialized_start=6585 _globals['_EVENTORDERCANCELFAIL']._serialized_end=6756 - _globals['_EVENTDERIVATIVELIMITORDERV2MIGRATION']._serialized_start=6758 - _globals['_EVENTDERIVATIVELIMITORDERV2MIGRATION']._serialized_end=6863 - _globals['_EVENTDERIVATIVEMARKETORDERV2MIGRATION']._serialized_start=6865 - _globals['_EVENTDERIVATIVEMARKETORDERV2MIGRATION']._serialized_end=6972 - _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_start=6974 - _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_end=7081 - _globals['_EVENTSPOTORDERV2MIGRATION']._serialized_start=7083 - _globals['_EVENTSPOTORDERV2MIGRATION']._serialized_end=7171 # @@protoc_insertion_point(module_scope) 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..65d5ff53 --- /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(\x0cR\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(\x0cR\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(\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\"\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/test_chain_grpc_auction_api.py b/tests/client/chain/grpc/test_chain_grpc_auction_api.py index 9832f7cc..79addcff 100644 --- a/tests/client/chain/grpc/test_chain_grpc_auction_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_auction_api.py @@ -53,15 +53,22 @@ async def test_fetch_module_state( 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)) @@ -73,7 +80,10 @@ 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": { @@ -81,6 +91,14 @@ async def test_fetch_module_state( "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), + }, } } From 291fe99502080e62bc94e4c0326761bbfbb736ea Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:23:32 -0300 Subject: [PATCH 04/35] (feat) Added methods in AsyncClient and Composer for Exchange V2 queries and messages. Added tests for the deprecated V1 methods. Updated all example scripts related to Exchange module --- examples/chain_client/1_LocalOrderHash.py | 16 +- .../chain_client/2_StreamEventOrderFail.py | 8 +- examples/chain_client/3_MessageBroadcaster.py | 6 +- .../4_MessageBroadcasterWithGranteeAccount.py | 2 +- .../5_MessageBroadcasterWithoutSimulation.py | 6 +- ...sterWithGranteeAccountWithoutSimulation.py | 2 +- examples/chain_client/7_ChainStream.py | 22 +- examples/chain_client/authz/1_MsgGrant.py | 2 +- examples/chain_client/authz/2_MsgExec.py | 2 +- examples/chain_client/authz/3_MsgRevoke.py | 2 +- examples/chain_client/authz/query/1_Grants.py | 2 +- examples/chain_client/bank/1_MsgSend.py | 6 +- .../10_MsgCreateDerivativeLimitOrder.py | 2 +- .../11_MsgCreateDerivativeMarketOrder.py | 2 +- .../exchange/12_MsgCancelDerivativeOrder.py | 10 +- .../13_MsgInstantBinaryOptionsMarketLaunch.py | 2 +- .../14_MsgCreateBinaryOptionsLimitOrder.py | 14 +- .../15_MsgCreateBinaryOptionsMarketOrder.py | 2 +- .../16_MsgCancelBinaryOptionsOrder.py | 10 +- .../exchange/17_MsgSubaccountTransfer.py | 7 +- .../exchange/18_MsgExternalTransfer.py | 7 +- .../exchange/19_MsgLiquidatePosition.py | 4 +- .../chain_client/exchange/1_MsgDeposit.py | 4 +- .../exchange/20_MsgIncreasePositionMargin.py | 2 +- .../exchange/23_MsgDecreasePositionMargin.py | 2 +- .../exchange/24_MsgUpdateSpotMarket.py | 2 +- .../exchange/25_MsgUpdateDerivativeMarket.py | 2 +- .../chain_client/exchange/2_MsgWithdraw.py | 3 +- .../exchange/3_MsgInstantSpotMarketLaunch.py | 6 +- .../4_MsgInstantPerpetualMarketLaunch.py | 4 +- .../5_MsgInstantExpiryFuturesMarketLaunch.py | 4 +- .../exchange/6_MsgCreateSpotLimitOrder.py | 2 +- .../exchange/7_MsgCreateSpotMarketOrder.py | 2 +- .../exchange/8_MsgCancelSpotOrder.py | 2 +- .../exchange/9_MsgBatchUpdateOrders.py | 18 +- .../exchange/query/10_SpotMarkets.py | 2 +- .../exchange/query/11_SpotMarket.py | 2 +- .../exchange/query/12_FullSpotMarkets.py | 2 +- .../exchange/query/13_FullSpotMarket.py | 2 +- .../exchange/query/14_SpotOrderbook.py | 2 +- .../exchange/query/15_TraderSpotOrders.py | 2 +- .../query/16_AccountAddressSpotOrders.py | 2 +- .../exchange/query/17_SpotOrdersByHashes.py | 2 +- .../exchange/query/18_SubaccountOrders.py | 2 +- .../query/19_TraderSpotTransientOrders.py | 2 +- .../exchange/query/20_SpotMidPriceAndTOB.py | 2 +- .../query/21_DerivativeMidPriceAndTOB.py | 2 +- .../exchange/query/22_DerivativeOrderbook.py | 2 +- .../query/23_TraderDerivativeOrders.py | 2 +- .../24_AccountAddressDerivativeOrders.py | 2 +- .../query/25_DerivativeOrdersByHashes.py | 2 +- .../26_TraderDerivativeTransientOrders.py | 2 +- .../exchange/query/27_DerivativeMarkets.py | 2 +- .../exchange/query/28_DerivativeMarket.py | 2 +- .../exchange/query/31_Positions.py | 2 +- .../exchange/query/32_SubaccountPositions.py | 2 +- .../query/33_SubaccountPositionInMarket.py | 2 +- .../34_SubaccountEffectivePositionInMarket.py | 2 +- .../query/36_ExpiryFuturesMarketInfo.py | 2 +- .../query/37_PerpetualMarketFunding.py | 2 +- .../query/38_SubaccountOrderMetadata.py | 2 +- .../query/42_FeeDiscountAccountInfo.py | 2 +- .../exchange/query/43_FeeDiscountSchedule.py | 2 +- .../query/49_HistoricalTradeRecords.py | 2 +- .../exchange/query/4_AggregateVolume.py | 4 +- .../exchange/query/52_MarketVolatility.py | 2 +- .../exchange/query/53_BinaryOptionsMarkets.py | 2 +- .../54_TraderDerivativeConditionalOrders.py | 2 +- .../exchange/query/56_ActiveStakeGrant.py | 27 + .../exchange/query/57_GrantAuthorization.py | 34 + .../exchange/query/58_GrantAuthorizations.py | 32 + .../query/59_L3DerivativeOrderBook.py | 21 + .../exchange/query/5_AggregateVolumes.py | 2 +- .../exchange/query/60_L3SpotOrderBook.py | 21 + .../exchange/query/6_AggregateMarketVolume.py | 2 +- .../query/7_AggregateMarketVolumes.py | 2 +- .../ibc/transfer/1_MsgTransfer.py | 5 +- .../insurance/1_MsgCreateInsuranceFund.py | 6 +- .../chain_client/insurance/2_MsgUnderwrite.py | 11 +- examples/chain_client/peggy/1_MsgSendToEth.py | 9 +- examples/chain_client/tx/query/1_GetTx.py | 4 +- pyinjective/async_client.py | 694 ++++- .../chain/grpc/chain_grpc_exchange_api.py | 47 + .../chain/grpc/chain_grpc_exchange_v2_api.py | 626 ++++ .../grpc_stream/chain_grpc_chain_stream.py | 44 +- pyinjective/composer.py | 1740 ++++++++++- .../configurable_exchange_query_servicer.py | 30 + ...configurable_exchange_v2_query_servicer.py | 361 +++ .../grpc/test_chain_grpc_exchange_api.py | 191 ++ .../grpc/test_chain_grpc_exchange_v2_api.py | 2648 +++++++++++++++++ ...onfigurable_chain_stream_query_servicer.py | 15 + .../test_chain_grpc_chain_stream.py | 405 ++- tests/core/test_gas_limit_estimator.py | 532 +++- ...essage_based_transaction_fee_calculator.py | 8 +- .../test_async_client_deprecation_warnings.py | 985 ++++++ tests/test_composer.py | 476 +-- tests/test_composer_deprecation_warnings.py | 850 ++++++ 97 files changed, 9542 insertions(+), 543 deletions(-) create mode 100644 examples/chain_client/exchange/query/56_ActiveStakeGrant.py create mode 100644 examples/chain_client/exchange/query/57_GrantAuthorization.py create mode 100644 examples/chain_client/exchange/query/58_GrantAuthorizations.py create mode 100644 examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py create mode 100644 examples/chain_client/exchange/query/60_L3SpotOrderBook.py create mode 100644 pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py create mode 100644 tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py create mode 100644 tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py create mode 100644 tests/test_async_client_deprecation_warnings.py create mode 100644 tests/test_composer_deprecation_warnings.py diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index fbec8988..6b34c4e3 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_v2_spot_order( 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_v2_spot_order( 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_v2_derivative_order( 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_v2_derivative_order( 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..39bbe5d5 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_v2_spot_order( 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_v2_spot_order( 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..601b595d 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_v2_spot_order( 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_v2_spot_order( 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..9f2b6df8 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_v2_derivative_order( 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 53459eeb..e456eb7e 100644 --- a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py +++ b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py @@ -35,11 +35,11 @@ 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"), 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..5b00562c 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_v2_order_data_without_mask( market_id=derivative_market_id_cancel, subaccount_id=subaccount_id, order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", ), - composer.order_data( + composer.create_v2_order_data_without_mask( 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_v2_order_data_without_mask( market_id=spot_market_id_cancel, subaccount_id=subaccount_id, cid="0e5c3ad5-2cc4-4a2a-bbe5-b12697739163", ), - composer.order_data( + composer.create_v2_order_data_without_mask( 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_v2_derivative_order( 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_v2_derivative_order( 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_v2_spot_order( 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_v2_spot_order( 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/pyinjective/async_client.py b/pyinjective/async_client.py index 23d2012e..0d656eb8 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -2,6 +2,7 @@ from copy import deepcopy from decimal import Decimal from typing import Any, Callable, Dict, List, Optional, Tuple +from warnings import warn from google.protobuf import json_format @@ -10,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 @@ -54,6 +56,7 @@ tendermint_pb2 as ibc_tendermint, ) 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 @@ -122,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, @@ -465,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, @@ -476,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( @@ -492,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, @@ -501,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, ) @@ -509,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, @@ -533,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, ) @@ -543,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, @@ -554,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, @@ -567,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, @@ -581,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, @@ -591,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, @@ -602,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, @@ -613,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, @@ -623,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, @@ -632,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, ) @@ -640,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, ) @@ -650,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, @@ -661,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, @@ -671,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, @@ -682,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, @@ -693,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, @@ -704,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, @@ -714,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, @@ -739,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( @@ -761,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, ) @@ -771,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, @@ -817,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, @@ -826,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( @@ -833,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, @@ -842,10 +1126,345 @@ 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, + ) + + 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 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_l3_derivative_orderbook_v2` instead + """ + warn( + "This method is deprecated. Use fetch_l3_derivative_orderbook_v2 instead", DeprecationWarning, stacklevel=2 + ) + + return await self.chain_exchange_api.fetch_l3_derivative_orderbook(market_id=market_id) + + 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_l3_spot_orderbook_v2` instead + """ + 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 @@ -1863,6 +2482,11 @@ async def listen_chain_stream_updates( positions_filter: Optional[chain_stream_query.PositionsFilter] = None, oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, ): + """ + 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_v2_updates instead", DeprecationWarning, stacklevel=2) + return await self.chain_stream_api.stream( callback=callback, on_end_callback=on_end_callback, @@ -1879,6 +2503,38 @@ async def listen_chain_stream_updates( oracle_price_filter=oracle_price_filter, ) + 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_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_v2( + 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, + 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, + ) + # region IBC Transfer module async def fetch_denom_trace(self, hash: str) -> Dict[str, Any]: return await self.ibc_transfer_api.fetch_denom_trace(hash=hash) 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 9bdcaf5a..0c82d801 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -3,6 +3,7 @@ from decimal import Decimal from time import time from typing import Any, Dict, List, Optional +from warnings import warn from google.protobuf import any_pb2, json_format, timestamp_pb2 @@ -30,6 +31,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, @@ -41,65 +48,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" @@ -174,6 +377,11 @@ def order_data( 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 `create_v2_order_data` instead + """ + warn("This method is deprecated. Use create_v2_order_data 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.OrderData( @@ -191,6 +399,13 @@ def order_data_without_mask( order_hash: Optional[str] = None, cid: Optional[str] = None, ) -> injective_exchange_tx_pb.OrderData: + """ + This method is deprecated and will be removed soon. Please use `create_v2_order_data_without_mask` instead + """ + warn( + "This method is deprecated. Use create_v2_order_data_without_mask instead", DeprecationWarning, stacklevel=2 + ) + return injective_exchange_tx_pb.OrderData( market_id=market_id, subaccount_id=subaccount_id, @@ -199,6 +414,41 @@ def order_data_without_mask( cid=cid, ) + def create_v2_order_data( + 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, + order_mask=order_mask, + cid=cid, + ) + + def create_v2_order_data_without_mask( + self, + market_id: str, + subaccount_id: str, + order_hash: Optional[str] = None, + cid: Optional[str] = None, + ) -> 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, + order_mask=1, + cid=cid, + ) + def spot_order( self, market_id: str, @@ -210,6 +460,11 @@ def spot_order( cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.SpotOrder: + """ + This method is deprecated and will be removed soon. Please use `create_v2_spot_order` instead + """ + warn("This method is deprecated. Use create_v2_spot_order instead", DeprecationWarning, stacklevel=2) + market = self.spot_markets[market_id] chain_quantity = f"{market.quantity_to_chain_format(human_readable_value=quantity).normalize():f}" @@ -233,6 +488,36 @@ def spot_order( trigger_price=chain_trigger_price, ) + def create_v2_spot_order( + self, + market_id: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_order_v2_pb.SpotOrder: + trigger_price = trigger_price or Decimal(0) + chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) + chain_quantity = f"{self.convert_value_to_chain_format(value=quantity).normalize():f}" + chain_price = f"{self.convert_value_to_chain_format(value=price).normalize():f}" + chain_trigger_price = f"{self.convert_value_to_chain_format(value=trigger_price).normalize():f}" + + return injective_order_v2_pb.SpotOrder( + 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, + trigger_price=chain_trigger_price, + ) + def calculate_margin( self, quantity: Decimal, price: Decimal, leverage: Decimal, is_reduce_only: bool = False ) -> Decimal: @@ -255,6 +540,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_v2_derivative_order` instead + """ + warn("This method is deprecated. Use create_v2_derivative_order instead", DeprecationWarning, stacklevel=2) + market = self.derivative_markets[market_id] chain_quantity = market.quantity_to_chain_format(human_readable_value=quantity) @@ -276,6 +566,32 @@ def derivative_order( chain_trigger_price=chain_trigger_price, ) + def create_v2_derivative_order( + 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_v2_derivative_order( + 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, @@ -289,6 +605,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_v2_binary_options_order` instead + """ + warn("This method is deprecated. Use create_v2_binary_options_order 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) @@ -310,13 +631,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_v2_binary_options_order( + 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_v2_derivative_order( + 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 = self.convert_value_to_chain_format(value=Decimal(str(bid_amount))) return injective_auction_tx_pb.MsgBid( sender=sender, @@ -365,6 +712,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( @@ -373,10 +725,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): + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + coin = self.coin(amount=int(chain_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 msg_deposit(self, sender: str, subaccount_id: str, amount: Decimal, 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_v2` instead + """ + 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( @@ -385,7 +754,26 @@ def msg_deposit(self, sender: str, subaccount_id: str, amount: Decimal, denom: s amount=coin, ) - def msg_withdraw(self, sender: str, subaccount_id: str, amount: Decimal, denom: str): + def msg_deposit_v2( + self, sender: str, subaccount_id: str, amount: int, denom: str + ) -> injective_exchange_tx_v2_pb.MsgDeposit: + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + coin = self.coin(amount=int(chain_amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgDeposit( + sender=sender, + subaccount_id=subaccount_id, + amount=coin, + ) + + 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_v2` instead + """ + 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( @@ -394,6 +782,22 @@ def msg_withdraw(self, sender: str, subaccount_id: str, amount: Decimal, denom: amount=be_amount, ) + def msg_withdraw_v2( + self, + sender: str, + subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgWithdraw: + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + coin = self.coin(amount=int(chain_amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgWithdraw( + sender=sender, + subaccount_id=subaccount_id, + amount=coin, + ) + def msg_instant_spot_market_launch( self, sender: str, @@ -406,6 +810,13 @@ def msg_instant_spot_market_launch( 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] @@ -431,6 +842,36 @@ def msg_instant_spot_market_launch( 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"{self.convert_value_to_chain_format(value=min_price_tick_size).normalize():f}" + chain_min_quantity_tick_size = ( + f"{self.convert_value_to_chain_format(value=min_quantity_tick_size).normalize():f}" + ) + chain_min_notional = f"{self.convert_value_to_chain_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( self, sender: str, @@ -448,6 +889,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( @@ -479,6 +929,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 = self.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) + chain_initial_margin_ratio = self.convert_value_to_chain_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = self.convert_value_to_chain_format(value=maintenance_margin_ratio) + chain_min_notional = self.convert_value_to_chain_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, @@ -497,6 +989,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( @@ -529,6 +1031,50 @@ def msg_instant_expiry_futures_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) + def msg_instant_expiry_futures_market_launch_v2( + self, + sender: str, + 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 = self.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) + chain_initial_margin_ratio = self.convert_value_to_chain_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = self.convert_value_to_chain_format(value=maintenance_margin_ratio) + chain_min_notional = self.convert_value_to_chain_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, @@ -541,6 +1087,11 @@ def msg_create_spot_limit_order( 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_v2` instead + """ + warn("This method is deprecated. Use msg_create_spot_limit_order_v2 instead", DeprecationWarning, stacklevel=2) + return injective_exchange_tx_pb.MsgCreateSpotLimitOrder( sender=sender, order=self.spot_order( @@ -555,12 +1106,7 @@ def msg_create_spot_limit_order( ), ) - 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 msg_create_spot_market_order( + def msg_create_spot_limit_order_v2( self, market_id: str, sender: str, @@ -571,10 +1117,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.MsgCreateSpotLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( sender=sender, - order=self.spot_order( + order=self.create_v2_spot_order( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -586,14 +1132,95 @@ def msg_create_spot_market_order( ), ) - def msg_cancel_spot_order( + 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_v2` instead + """ + warn( + "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_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, - order_hash: Optional[str] = None, + fee_recipient: str, + 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_v2` instead + """ + warn("This method is deprecated. Use msg_create_spot_market_order_v2 instead", DeprecationWarning, stacklevel=2) + + return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( + sender=sender, + order=self.spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ), + ) + + def msg_create_spot_market_order_v2( + 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_v2_pb.MsgCreateSpotMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder( + sender=sender, + order=self.create_v2_spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ), + ) + + 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_v2` instead + """ + 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, @@ -602,11 +1229,37 @@ def msg_cancel_spot_order( cid=cid, ) + 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_v2_pb.MsgCancelSpotOrder: + return injective_exchange_tx_v2_pb.MsgCancelSpotOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + cid=cid, + ) + def msg_batch_cancel_spot_orders( self, sender: str, orders_data: List[injective_exchange_tx_pb.OrderData] ) -> injective_exchange_tx_pb.MsgBatchCancelSpotOrders: + """ + 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_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, sender: str, @@ -621,6 +1274,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, @@ -635,6 +1293,34 @@ def msg_batch_update_orders( binary_options_orders_to_create=binary_options_orders_to_create, ) + 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, @@ -642,6 +1328,15 @@ def msg_privileged_execute_contract( 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_v2` instead + """ + 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, @@ -650,6 +1345,20 @@ def msg_privileged_execute_contract( funds=funds, ) + def msg_privileged_execute_contract_v2( + self, + sender: str, + contract_address: str, + data: str, + funds: Optional[str] = None, + ) -> injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract: + return injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract( + sender=sender, + contract_address=contract_address, + data=data, + funds=funds, + ) + def msg_create_derivative_limit_order( self, market_id: str, @@ -663,6 +1372,15 @@ def msg_create_derivative_limit_order( cid: Optional[str] = None, 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_create_derivative_limit_order_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.derivative_order( @@ -678,13 +1396,58 @@ def msg_create_derivative_limit_order( ), ) + def msg_create_derivative_limit_order_v2( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( + sender=sender, + order=self.create_v2_derivative_order( + 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 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_v2` instead + """ + warn( + "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_v2( + self, + sender: str, + 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 msg_create_derivative_market_order( self, market_id: str, @@ -698,6 +1461,15 @@ def msg_create_derivative_market_order( cid: Optional[str] = None, 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_create_derivative_market_order_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder( sender=sender, order=self.derivative_order( @@ -713,6 +1485,34 @@ def msg_create_derivative_market_order( ), ) + def msg_create_derivative_market_order_v2( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder( + sender=sender, + order=self.create_v2_derivative_order( + 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 msg_cancel_derivative_order( self, market_id: str, @@ -724,6 +1524,11 @@ def msg_cancel_derivative_order( 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_v2` instead + """ + warn("This method is deprecated. Use msg_cancel_derivative_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.MsgCancelDerivativeOrder( @@ -735,11 +1540,48 @@ def msg_cancel_derivative_order( cid=cid, ) + 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, + ) -> 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_v2_pb.MsgCancelDerivativeOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + order_mask=order_mask, + cid=cid, + ) + 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_batch_cancel_derivative_orders_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders(sender=sender, data=orders_data) + 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, @@ -758,6 +1600,16 @@ def msg_instant_binary_options_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_binary_options_market_launch_v2` instead + """ + warn( + "This method is deprecated. Use msg_instant_binary_options_market_launch_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + quote_token = self.tokens[quote_denom] chain_min_price_tick_size = min_price_tick_size * Decimal( @@ -788,6 +1640,48 @@ def msg_instant_binary_options_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) + def msg_instant_binary_options_market_launch_v2( + self, + sender: str, + ticker: str, + oracle_symbol: str, + oracle_provider: str, + oracle_type: str, + oracle_scale_factor: int, + maker_fee_rate: Decimal, + taker_fee_rate: Decimal, + expiration_timestamp: int, + settlement_timestamp: int, + admin: str, + quote_denom: str, + min_price_tick_size: Decimal, + min_quantity_tick_size: Decimal, + min_notional: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: + chain_min_price_tick_size = self.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) + chain_min_notional = self.convert_value_to_chain_format(value=min_notional) + + return injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunch( + sender=sender, + ticker=ticker, + oracle_symbol=oracle_symbol, + oracle_provider=oracle_provider, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + oracle_scale_factor=oracle_scale_factor, + 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, + admin=admin, + 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 msg_create_binary_options_limit_order( self, market_id: str, @@ -802,6 +1696,16 @@ def msg_create_binary_options_limit_order( 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_create_binary_options_limit_order_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.binary_options_order( @@ -818,6 +1722,34 @@ def msg_create_binary_options_limit_order( ), ) + def msg_create_binary_options_limit_order_v2( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( + sender=sender, + order=self.create_v2_binary_options_order( + 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 msg_create_binary_options_market_order( self, market_id: str, @@ -831,7 +1763,17 @@ def msg_create_binary_options_market_order( cid: Optional[str] = None, 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_create_binary_options_market_order_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + return injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder( sender=sender, order=self.binary_options_order( @@ -848,6 +1790,34 @@ def msg_create_binary_options_market_order( ), ) + def msg_create_binary_options_market_order_v2( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder( + sender=sender, + order=self.create_v2_binary_options_order( + 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 msg_cancel_binary_options_order( self, market_id: str, @@ -859,6 +1829,15 @@ def msg_cancel_binary_options_order( 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_v2` instead + """ + warn( + "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( @@ -870,6 +1849,28 @@ def msg_cancel_binary_options_order( cid=cid, ) + 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, + ) -> 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_v2_pb.MsgCancelBinaryOptionsOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + order_mask=order_mask, + cid=cid, + ) + def msg_subaccount_transfer( self, sender: str, @@ -878,6 +1879,11 @@ def msg_subaccount_transfer( amount: Decimal, denom: str, ) -> injective_exchange_tx_pb.MsgSubaccountTransfer: + """ + 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_v2 instead", DeprecationWarning, stacklevel=2) + be_amount = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgSubaccountTransfer( @@ -887,6 +1893,24 @@ def msg_subaccount_transfer( amount=be_amount, ) + def msg_subaccount_transfer_v2( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + amount_coin = self.coin(amount=int(chain_amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=amount_coin, + ) + def msg_external_transfer( self, sender: str, @@ -895,6 +1919,11 @@ def msg_external_transfer( amount: Decimal, denom: str, ) -> injective_exchange_tx_pb.MsgExternalTransfer: + """ + 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_v2 instead", DeprecationWarning, stacklevel=2) + coin = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgExternalTransfer( @@ -904,6 +1933,24 @@ def msg_external_transfer( amount=coin, ) + def msg_external_transfer_v2( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + coin = self.coin(amount=int(chain_amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgExternalTransfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=coin, + ) + def msg_liquidate_position( self, sender: str, @@ -911,20 +1958,51 @@ def msg_liquidate_position( 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_v2` instead + """ + 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_v2( + self, + sender: str, + subaccount_id: str, + market_id: str, + 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 + ) + def msg_emergency_settle_market( self, sender: str, 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 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, @@ -932,7 +2010,12 @@ def msg_increase_position_margin( destination_subaccount_id: str, market_id: str, amount: Decimal, - ): + ) -> injective_exchange_tx_pb.MsgIncreasePositionMargin: + """ + 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_v2 instead", DeprecationWarning, stacklevel=2) + market = self.derivative_markets[market_id] additional_margin = market.margin_to_chain_format(human_readable_value=amount) @@ -944,8 +2027,25 @@ def msg_increase_position_margin( amount=str(int(additional_margin)), ) - def msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_pb.MsgRewardsOptOut: - return injective_exchange_tx_pb.MsgRewardsOptOut(sender=sender) + def msg_increase_position_margin_v2( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + market_id: str, + amount: Decimal, + ) -> injective_exchange_tx_v2_pb.MsgIncreasePositionMargin: + additional_margin = self.convert_value_to_chain_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=f"{additional_margin.normalize():f}", + ) + + def msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_v2_pb.MsgRewardsOptOut: + return injective_exchange_tx_v2_pb.MsgRewardsOptOut(sender=sender) def msg_admin_update_binary_options_market( self, @@ -956,6 +2056,16 @@ def msg_admin_update_binary_options_market( 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_v2` instead + """ + warn( + "This method is deprecated. Use msg_admin_update_binary_options_market_v2 instead", + DeprecationWarning, + stacklevel=2, + ) + market = self.binary_option_markets[market_id] if settlement_price is not None: @@ -973,6 +2083,29 @@ def msg_admin_update_binary_options_market( status=status, ) + def msg_admin_update_binary_options_market_v2( + self, + sender: str, + market_id: str, + status: str, + settlement_price: Optional[Decimal] = None, + expiration_timestamp: Optional[int] = None, + settlement_timestamp: Optional[int] = None, + ) -> injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket: + message = injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket( + sender=sender, + market_id=market_id, + expiration_timestamp=expiration_timestamp, + settlement_timestamp=settlement_timestamp, + status=status, + ) + + if settlement_price is not None: + chain_settlement_price = self.convert_value_to_chain_format(value=settlement_price) + message.settlement_price = f"{chain_settlement_price.normalize():f}" + + return message + def msg_decrease_position_margin( self, sender: str, @@ -981,6 +2114,11 @@ def msg_decrease_position_margin( 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) @@ -992,6 +2130,23 @@ def msg_decrease_position_margin( 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_v2_pb.MsgDecreasePositionMargin: + additional_margin = self.convert_value_to_chain_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=f"{additional_margin.normalize():f}", + ) + def msg_update_spot_market( self, admin: str, @@ -1001,6 +2156,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( @@ -1022,6 +2182,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 = self.convert_value_to_chain_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=new_min_quantity_tick_size) + chain_min_notional = self.convert_value_to_chain_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, @@ -1033,6 +2215,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( @@ -1056,16 +2243,44 @@ 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 = self.convert_value_to_chain_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=new_min_quantity_tick_size) + chain_min_notional = self.convert_value_to_chain_format(value=new_min_notional) + chain_initial_margin_ratio = self.convert_value_to_chain_format(value=new_initial_margin_ratio) + chain_maintenance_margin_ratio = self.convert_value_to_chain_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, ) @@ -1084,6 +2299,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) @@ -1098,6 +2318,31 @@ 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: + chain_initial_deposit = self.convert_value_to_chain_format(value=Decimal(str(initial_deposit))) + deposit = self.coin(amount=int(chain_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, @@ -1105,6 +2350,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( @@ -1113,6 +2363,22 @@ def MsgUnderwrite( deposit=be_amount, ) + def msg_underwrite( + self, + sender: str, + market_id: str, + quote_denom: str, + amount: int, + ): + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + coin = self.coin(amount=int(chain_amount), denom=quote_denom) + + return injective_insurance_tx_pb.MsgUnderwrite( + sender=sender, + market_id=market_id, + deposit=coin, + ) + def MsgRequestRedemption( self, sender: str, @@ -1120,10 +2386,11 @@ def MsgRequestRedemption( share_denom: str, amount: int, ): + chain_amount = self.convert_value_to_chain_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 @@ -1148,6 +2415,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) @@ -1158,11 +2430,24 @@ 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): + chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_bridge_fee = self.convert_value_to_chain_format(value=Decimal(str(bridge_fee))) + amount_coin = self.coin(amount=int(chain_amount), denom=denom) + bridge_fee_coin = self.coin(amount=int(chain_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 = self.convert_value_to_chain_format(Decimal(str(amount))) return cosmos_staking_tx_pb.MsgDelegate( delegator_address=delegator_address, @@ -1286,6 +2571,11 @@ def MsgGrantTyped( subaccount_id: str, **kwargs, ): + """ + This method is deprecated and will be removed soon. Please use `fetch_l3_spot_orderbook_v2` 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") @@ -1347,6 +2637,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, @@ -1355,9 +2711,21 @@ 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) @@ -1365,6 +2733,16 @@ 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) @@ -1373,6 +2751,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) @@ -1382,6 +2765,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) @@ -1390,6 +2778,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) @@ -1398,6 +2793,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) @@ -1406,9 +2808,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 @@ -1438,6 +2905,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, @@ -1574,69 +3043,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 @@ -1783,19 +3193,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 @@ -1814,6 +3224,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_v2_derivative_order` instead + """ + warn("This method is deprecated. Use _basic_v2_derivative_order 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}" @@ -1836,3 +3251,42 @@ def _basic_derivative_order( margin=formatted_margin, trigger_price=formatted_trigger_price, ) + + def _basic_v2_derivative_order( + 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"{self.convert_value_to_chain_format(value=quantity).normalize():f}" + chain_price = f"{self.convert_value_to_chain_format(value=price).normalize():f}" + chain_margin = f"{self.convert_value_to_chain_format(value=margin).normalize():f}" + chain_trigger_price = f"{self.convert_value_to_chain_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, + ) + + def convert_value_to_chain_format(self, value: Decimal) -> Decimal: + return value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + def convert_value_from_chain_format(self, value: Decimal) -> Decimal: + return value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") 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_exchange_api.py b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py index f5db75e7..b703e9d4 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py @@ -2444,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..bbbcad52 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 @@ -194,7 +205,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() @@ -405,12 +416,400 @@ 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=b"\xaa\xb0Ju\xa3)@\xfe\xd58N\xba\xdfG\xfd\xd8}\xe4\r\xf4\xf8a\xd9\n\xa9\xd6x+V\x9b\x02&", + 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=( + b"\xf9\xc7\xd8v8\x84-\x9b\x99s\xf5\xdfX\xc9\xf9V\x9a\xf7\xf9\xc3\xa1\x00h\t\xc17<\xd1k\x9d\x12\xed" + ), + 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=b"\x03\xc9\xf8G*Q-G%\xf1\xbcF3\xe89g\xbe\xeag\xd8Y\x7f\x87\x8a\xa5\xac\x8ew\x8a\x91\xa2F", + 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": base64.b64encode(spot_trade.order_hash).decode(), + "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": base64.b64encode(spot_order_update.order_hash).decode(), + "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": base64.b64encode(derivative_order_update.order_hash).decode(), + "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 09f50a77..c3cff5ef 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -24,7 +24,7 @@ class TestGasLimitEstimator: def test_estimation_for_message_without_applying_rule(self): composer = Composer(network="testnet") - message = composer.MsgSend(from_address="from_address", to_address="to_address", amount=1, denom="INJ") + message = composer.msg_send(from_address="from_address", to_address="to_address", amount=1, denom="inj") estimator = GasLimitEstimator.for_message(message=message) @@ -32,6 +32,45 @@ def test_estimation_for_message_without_applying_rule(self): 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: def test_estimation_for_batch_create_spot_limit_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") @@ -65,17 +104,17 @@ def test_estimation_for_batch_cancel_spot_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -124,17 +163,17 @@ def test_estimation_for_batch_cancel_derivative_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -281,17 +320,17 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -315,17 +354,17 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -349,17 +388,17 @@ def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -473,46 +512,469 @@ def test_estimation_for_exec_message(self): == 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): + composer = Composer(network="testnet") + message = composer.msg_create_spot_limit_order( + sender="sender", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + 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_v2_spot_order( + market_id=spot_market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + composer.create_v2_spot_order( + 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_v2_order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_v2_order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_v2_order_data_without_mask( + 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_v2_derivative_order( + 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_v2_derivative_order( + 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_v2_order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_v2_order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_v2_order_data_without_mask( + 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_v2_spot_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + composer.create_v2_spot_order( + 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_v2_derivative_order( + 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_v2_derivative_order( + 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_v2_binary_options_order( + 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_v2_binary_options_order( + 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_batch_update_orders_to_cancel_spot_orders(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.create_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_v2_order_data_without_mask( + 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_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_v2_order_data_without_mask( + 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_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.create_v2_order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.create_v2_order_data_without_mask( + 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_v2_spot_order( + 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( + message = composer.msg_create_spot_limit_order_v2( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", diff --git a/tests/core/test_message_based_transaction_fee_calculator.py b/tests/core/test_message_based_transaction_fee_calculator.py index 5c26f06c..d46d6bee 100644 --- a/tests/core/test_message_based_transaction_fee_calculator.py +++ b/tests/core/test_message_based_transaction_fee_calculator.py @@ -125,7 +125,7 @@ async def test_gas_fee_for_exchange_message(self): gas_price=5_000_000, ) - message = composer.msg_create_spot_limit_order( + message = composer.msg_create_spot_limit_order_v2( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -155,7 +155,7 @@ async def test_gas_fee_for_msg_exec_message(self): gas_price=5_000_000, ) - inner_message = composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order_v2( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -190,7 +190,7 @@ async def test_gas_fee_for_two_messages_in_one_transaction(self): gas_price=5_000_000, ) - inner_message = composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order_v2( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -201,7 +201,7 @@ async def test_gas_fee_for_two_messages_in_one_transaction(self): ) message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) - send_message = 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/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py new file mode 100644 index 00000000..425a60b9 --- /dev/null +++ b/tests/test_async_client_deprecation_warnings.py @@ -0,0 +1,985 @@ +from warnings import catch_warnings + +import pytest + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network +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 tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer +from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer + + +@pytest.fixture +def chain_stream_servicer(): + return ConfigurableChainStreamQueryServicer() + + +@pytest.fixture +def exchange_servicer(): + return ConfigurableExchangeQueryServicer() + + +class TestAsyncClientDeprecationWarnings: + @pytest.mark.asyncio + async def test_listen_chain_stream_updates_deprecation_warning( + self, + chain_stream_servicer, + ): + async def callback(event): + pass + + client = AsyncClient( + network=Network.local(), + ) + 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.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 listen_chain_stream_v2_updates instead" + ) + + @pytest.mark.asyncio + async def test_fetch_aggregate_volume_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.aggregate_volume_responses.append(exchange_query_pb.QueryAggregateVolumeResponse()) + + with catch_warnings(record=True) as all_warnings: + 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_aggregate_volume_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_aggregate_volumes_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_aggregate_volumes_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_aggregate_market_volume_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.aggregate_market_volume_responses.append( + exchange_query_pb.QueryAggregateMarketVolumeResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_aggregate_market_volume_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_aggregate_market_volumes_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_aggregate_market_volumes_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_spot_markets_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_spot_markets_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_spot_market_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_spot_market_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_full_spot_markets_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_full_spot_markets_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_full_spot_markets_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_full_spot_market_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_spot_orderbook_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.spot_orderbook_responses.append(exchange_query_pb.QuerySpotOrderbookResponse()) + + with catch_warnings(record=True) as all_warnings: + 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 fetch_chain_spot_orderbook_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_trader_spot_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_trader_spot_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_account_address_spot_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.account_address_spot_orders_responses.append( + exchange_query_pb.QueryAccountAddressSpotOrdersResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_chain_account_address_spot_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_spot_orders_by_hashes_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_spot_orders_by_hashes_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_subaccount_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_subaccount_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_trader_spot_transient_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_trader_spot_transient_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_spot_mid_price_and_tob_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_spot_mid_price_and_tob_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_derivative_mid_price_and_tob_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.derivative_mid_price_and_tob_responses.append( + exchange_query_pb.QueryDerivativeMidPriceAndTOBResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_mid_price_and_tob_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_derivative_orderbook_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_derivative_orderbook_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_trader_derivative_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.trader_derivative_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeOrdersResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_chain_trader_derivative_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_account_address_derivative_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_account_address_derivative_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_derivative_orders_by_hashes_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_derivative_orders_by_hashes_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_trader_derivative_transient_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_trader_derivative_transient_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_derivative_markets_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_derivative_markets_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_derivative_market_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_derivative_market_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_positions_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_positions_v2 instead" + + @pytest.mark.asyncio + async def test_fetch_chain_subaccount_positions_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_subaccount_positions_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_subaccount_position_in_market_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_subaccount_position_in_market_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_subaccount_effective_position_in_market_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_subaccount_effective_position_in_market_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_expiry_futures_market_info_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_chain_expiry_futures_market_info_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_perpetual_market_funding_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_perpetual_market_funding_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_subaccount_order_metadata_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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 fetch_subaccount_order_metadata_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_fee_discount_account_info_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.fee_discount_account_info_responses.append( + exchange_query_pb.QueryFeeDiscountAccountInfoResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_fee_discount_account_info_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_fee_discount_schedule_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_fee_discount_schedule_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_historical_trade_records_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.historical_trade_records_responses.append( + exchange_query_pb.QueryHistoricalTradeRecordsResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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_historical_trade_records_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_market_volatility_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_market_volatility_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_chain_binary_options_markets_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + 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.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_chain_binary_options_markets_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_trader_derivative_conditional_orders_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.trader_derivative_conditional_orders_responses.append( + exchange_query_pb.QueryTraderDerivativeConditionalOrdersResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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 fetch_trader_derivative_conditional_orders_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_l3_derivative_orderbook_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.l3_derivative_orderbook_responses.append( + exchange_query_pb.QueryFullDerivativeOrderbookResponse() + ) + + with catch_warnings(record=True) as all_warnings: + 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 fetch_l3_derivative_orderbook_v2 instead" + ) + + @pytest.mark.asyncio + async def test_fetch_l3_spot_orderbook_deprecation_warning( + self, + exchange_servicer, + ): + client = AsyncClient( + network=Network.local(), + ) + client.chain_exchange_api._stub = exchange_servicer + + exchange_servicer.l3_spot_orderbook_responses.append(exchange_query_pb.QueryFullSpotOrderbookResponse()) + + with catch_warnings(record=True) as all_warnings: + 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) == "This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead" + ) diff --git a/tests/test_composer.py b/tests/test_composer.py index 733e171a..d1eaa8f0 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -244,14 +244,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 = basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))) - message = basic_composer.msg_deposit( + message = basic_composer.msg_deposit_v2( sender=sender, subaccount_id=subaccount_id, amount=amount, @@ -263,7 +261,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( @@ -275,14 +273,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, @@ -293,8 +287,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"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))):f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -306,26 +300,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, @@ -337,14 +320,18 @@ def test_msg_instant_spot_market_launch(self, basic_composer): quote_decimals=quote_decimals, ) + chain_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_min_notional = basic_composer.convert_value_to_chain_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, } @@ -357,7 +344,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 @@ -370,19 +357,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, @@ -402,7 +385,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, @@ -424,7 +407,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 @@ -438,19 +421,15 @@ 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 = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_maker_fee_rate = basic_composer.convert_value_to_chain_format(value=maker_fee_rate) + expected_taker_fee_rate = basic_composer.convert_value_to_chain_format(value=taker_fee_rate) + expected_initial_margin_ratio = basic_composer.convert_value_to_chain_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = basic_composer.convert_value_to_chain_format(value=maintenance_margin_ratio) + expected_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) - 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_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}") - - 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, @@ -471,7 +450,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, @@ -592,7 +571,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, @@ -604,11 +583,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 = basic_composer.convert_value_to_chain_format(value=price) + expected_quantity = basic_composer.convert_value_to_chain_format(value=quantity) + expected_trigger_price = basic_composer.convert_value_to_chain_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": { @@ -641,7 +620,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_v2_spot_order( market_id=spot_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -652,7 +631,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], ) @@ -678,7 +657,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, @@ -690,11 +669,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": { @@ -702,12 +677,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"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -723,7 +698,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, @@ -749,18 +724,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_v2_order_data_without_mask( 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)], @@ -781,22 +756,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_v2_order_data_without_mask( 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_v2_order_data_without_mask( 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_v2_order_data_without_mask( 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_v2_spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -806,7 +781,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_v2_derivative_order( market_id=derivative_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -815,7 +790,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_v2_binary_options_order( market_id=binary_options_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -825,7 +800,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], @@ -911,7 +886,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, @@ -924,11 +899,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": { @@ -936,13 +906,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"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -962,7 +932,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_v2_derivative_order( market_id=derivative_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -974,7 +944,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], ) @@ -1001,7 +971,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, @@ -1014,11 +984,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": { @@ -1026,13 +991,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"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1057,7 +1022,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, @@ -1087,13 +1052,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_v2_order_data_without_mask( 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], ) @@ -1115,7 +1080,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") @@ -1125,17 +1090,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, @@ -1153,6 +1108,10 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): min_notional=min_notional, ) + chain_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + expected_message = { "sender": sender, "ticker": ticker, @@ -1160,15 +1119,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"{basic_composer.convert_value_to_chain_format(value=maker_fee_rate).normalize():f}", + "takerFeeRate": f"{basic_composer.convert_value_to_chain_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, @@ -1188,7 +1147,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, @@ -1201,10 +1160,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 = basic_composer.convert_value_to_chain_format(value=price) + expected_quantity = basic_composer.convert_value_to_chain_format(value=quantity) + expected_margin = basic_composer.convert_value_to_chain_format(value=margin) + expected_trigger_price = basic_composer.convert_value_to_chain_format(value=trigger_price) expected_message = { "sender": sender, @@ -1240,7 +1199,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, @@ -1253,11 +1212,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": { @@ -1265,13 +1219,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"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{expected_margin.normalize():f}", + "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{expected_trigger_price.normalize():f}", + "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1296,7 +1250,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, @@ -1325,14 +1279,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, @@ -1345,8 +1295,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"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -1359,18 +1309,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, ) @@ -1379,8 +1325,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"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "denom": denom, }, } dict_message = json_format.MessageToDict( @@ -1393,7 +1339,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_v2_derivative_order( market_id=market.id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -1403,7 +1349,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, @@ -1427,7 +1373,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, @@ -1451,9 +1397,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 = basic_composer.convert_value_to_chain_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, @@ -1481,9 +1427,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 = basic_composer.convert_value_to_chain_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, @@ -1528,9 +1474,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 = basic_composer.convert_value_to_chain_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, @@ -1561,17 +1507,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 = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_min_notional = basic_composer.convert_value_to_chain_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, @@ -1604,17 +1544,13 @@ 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_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_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + expected_initial_margin_ratio = basic_composer.convert_value_to_chain_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = basic_composer.convert_value_to_chain_format(value=maintenance_margin_ratio) - 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, @@ -1693,7 +1629,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 @@ -1949,3 +1888,154 @@ def test_msg_claim_voucher(self, basic_composer): always_print_fields_with_no_presence=True, ) assert dict_message == expected_message + + def test_create_v2_order_data_without_mask(self, basic_composer): + order_data = basic_composer.create_v2_order_data_without_mask( + 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"{basic_composer.convert_value_to_chain_format(value=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"{basic_composer.convert_value_to_chain_format(value=Decimal(1)).normalize():f}", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + }, + "bridgeFee": { + "amount": f"{basic_composer.convert_value_to_chain_format(value=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"{basic_composer.convert_value_to_chain_format(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"{basic_composer.convert_value_to_chain_format(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 new file mode 100644 index 00000000..e21c48a6 --- /dev/null +++ b/tests/test_composer_deprecation_warnings.py @@ -0,0 +1,850 @@ +import warnings +from decimal import Decimal + +import pytest + +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 + + +class TestComposerDeprecationWarnings: + @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_chain_stream_bank_balances_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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 chain_stream_bank_balances_v2_filter instead" + ) + + def test_chain_stream_subaccount_deposits_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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 chain_stream_subaccount_deposits_v2_filter instead" + ) + + 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.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 chain_stream_orders_v2_filter instead" + ) + + 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.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 create_typed_msg_grant instead" + + def test_spot_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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 create_v2_spot_order instead" + + 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", + ) + + 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 _basic_v2_derivative_order instead" + ) + + def test_derivative_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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) == 2 + assert ( + str(deprecation_warnings[0].message) == "This method is deprecated. Use create_v2_derivative_order 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 create_v2_binary_options_order instead" + ) + + def test_msg_batch_create_spot_limit_orders_deprecation_warning(self, basic_composer): + order = 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", + ) + with warnings.catch_warnings(record=True) as all_warnings: + 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_v2 instead" + ) + + def test_msg_create_spot_market_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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=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) == 2 + assert ( + str(deprecation_warnings[0].message) + == "This method is deprecated. Use msg_create_spot_market_order_v2 instead" + ) + + 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: + basic_composer.msg_batch_cancel_spot_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_spot_orders_v2 instead" + ) + + 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="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_v2_order_data instead" + + def test_order_data_without_mask_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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 create_v2_order_data_without_mask instead" + ) + + def test_msg_batch_update_orders_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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_v2 instead" + ) + + 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: + 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_v2 instead" + ) + + def test_msg_create_derivative_limit_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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=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_derivative_limit_order_v2 instead" + ) + + def test_msg_batch_create_derivative_limit_orders_deprecation_warning(self, basic_composer): + order = 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", + ) + + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_batch_create_derivative_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_derivative_limit_orders_v2 instead" + ) + + def test_msg_create_derivative_market_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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=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_derivative_market_order_v2 instead" + ) + + def test_msg_cancel_derivative_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_cancel_derivative_order( + market_id=list(basic_composer.derivative_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_derivative_order_v2 instead" + ) + + 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: + 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_v2 instead" + ) + + def test_msg_instant_binary_options_market_launch_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_instant_binary_options_market_launch( + sender="sender", + ticker="ticker", + oracle_symbol="oracle_symbol", + oracle_provider="oracle_provider", + oracle_type="Band", + oracle_scale_factor=6, + 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_v2 instead" + ) + + def test_msg_create_binary_options_market_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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=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_market_order_v2 instead" + ) + + def test_msg_cancel_binary_options_order_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_cancel_binary_options_order( + market_id=list(basic_composer.derivative_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_binary_options_order_v2 instead" + ) + + def test_msg_subaccount_transfer_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_subaccount_transfer( + sender="sender", + 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_subaccount_transfer_v2 instead" + ) + + def test_msg_deposit_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_deposit( + sender="sender", + 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_deposit_v2 instead" + + def test_msg_external_transfer_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + basic_composer.msg_external_transfer( + sender="sender", + 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_v2 instead" + + 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: + basic_composer.MsgCreateInsuranceFund( + sender="sender", + ticker="ticker", + quote_denom="INJ", + oracle_base="oracle_base", + oracle_quote="oracle_quote", + oracle_type="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_create_insurance_fund instead" + ) + + def test_msg_send_deprecation_warning(self, basic_composer): + with warnings.catch_warnings(record=True) as all_warnings: + 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", + 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_instant_spot_market_launch_v2 instead" + ) + + 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: + 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_liquidate_position_v2 instead" + ) + + 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.msg_create_spot_limit_order( + market_id=list(basic_composer.spot_markets.keys())[0], + sender="sender", + 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_emergency_settle_market_v2 instead" + ) + + 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: + 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_update_derivative_market_v2 instead" + ) From cc89852a51efc39df2b5870b930f60418864fd1a Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Fri, 1 Nov 2024 23:50:56 -0300 Subject: [PATCH 05/35] (feat) Refactored markets and tokens initialization methods in AsyncClient to get markets from the chain. Removed logic in Composer to load markets and tokens from the denom INI files --- pyinjective/async_client.py | 130 +- pyinjective/composer.py | 213 +- pyinjective/constant.py | 18 - pyinjective/core/token.py | 10 + pyinjective/denoms_devnet.ini | 1885 --- pyinjective/denoms_mainnet.ini | 16631 --------------------- pyinjective/denoms_testnet.ini | 13415 ----------------- pyinjective/orderhash.py | 8 +- pyinjective/utils/denom.py | 33 - pyinjective/utils/fetch_metadata.py | 101 - pyinjective/utils/metadata_validation.py | 158 - tests/core/test_gas_limit_estimator.py | 165 +- tests/rpc_fixtures/markets_fixtures.py | 143 +- tests/test_async_client.py | 142 +- tests/test_composer.py | 135 +- tests/test_orderhash.py | 8 +- 16 files changed, 463 insertions(+), 32732 deletions(-) delete mode 100644 pyinjective/denoms_devnet.ini delete mode 100644 pyinjective/denoms_mainnet.ini delete mode 100644 pyinjective/denoms_testnet.ini delete mode 100644 pyinjective/utils/fetch_metadata.py delete mode 100644 pyinjective/utils/metadata_validation.py diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 0d656eb8..05e43589 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -99,8 +99,8 @@ def __init__( self._initialize_timeout_height_sync_task() self._tokens_and_markets_initialization_lock = asyncio.Lock() - self._tokens_by_denom: Optional[Dict[str, Token]] = None - self._tokens_by_symbol: Optional[Dict[str, Token]] = None + self._tokens_by_denom = dict() + self._tokens_by_symbol = dict() self._spot_markets: Optional[Dict[str, SpotMarket]] = None self._derivative_markets: Optional[Dict[str, DerivativeMarket]] = None self._binary_option_markets: Optional[Dict[str, BinaryOptionMarket]] = None @@ -2794,87 +2794,69 @@ async def _initialize_tokens_and_markets(self): derivative_markets = dict() binary_option_markets = dict() tokens_by_symbol, tokens_by_denom = await self._tokens_from_official_lists(network=self.network) - markets_info = (await self.fetch_spot_markets(market_statuses=["active"]))["markets"] - valid_markets = ( - market_info - for market_info in markets_info - if len(market_info.get("baseTokenMeta", {}).get("symbol", "")) > 0 - and len(market_info.get("quoteTokenMeta", {}).get("symbol", "")) > 0 - ) - - for market_info in valid_markets: - base_token = self._token_representation( - token_meta=market_info["baseTokenMeta"], - denom=market_info["baseDenom"], - tokens_by_denom=tokens_by_denom, - tokens_by_symbol=tokens_by_symbol, - ) - quote_token = self._token_representation( - token_meta=market_info["quoteTokenMeta"], - denom=market_info["quoteDenom"], - tokens_by_denom=tokens_by_denom, - tokens_by_symbol=tokens_by_symbol, - ) + self._tokens_by_denom.update(tokens_by_denom) + self._tokens_by_symbol.update(tokens_by_symbol) + + 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"]) market = SpotMarket( id=market_info["marketId"], - status=market_info["marketStatus"], + status=market_info["status"], ticker=market_info["ticker"], base_token=base_token, quote_token=quote_token, - maker_fee_rate=Decimal(market_info["makerFeeRate"]), - taker_fee_rate=Decimal(market_info["takerFeeRate"]), - service_provider_fee=Decimal(market_info["serviceProviderFee"]), - min_price_tick_size=Decimal(market_info["minPriceTickSize"]), - min_quantity_tick_size=Decimal(market_info["minQuantityTickSize"]), - min_notional=Decimal(market_info["minNotional"]), + maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_chain_format(Decimal(market_info["relayerFeeShareRate"])), + min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market_info["minPriceTickSize"])), + min_quantity_tick_size=Token.convert_value_from_chain_format( + Decimal(market_info["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_chain_format(Decimal(market_info["minNotional"])), ) spot_markets[market.id] = market - markets_info = (await self.fetch_derivative_markets(market_statuses=["active"]))["markets"] - valid_markets = ( - market_info - for market_info in markets_info - if len(market_info.get("quoteTokenMeta", {}).get("symbol", "")) > 0 - ) - - for market_info in valid_markets: - quote_token = self._token_representation( - token_meta=market_info["quoteTokenMeta"], - denom=market_info["quoteDenom"], - tokens_by_denom=tokens_by_denom, - tokens_by_symbol=tokens_by_symbol, - ) - - market = DerivativeMarket( - id=market_info["marketId"], - status=market_info["marketStatus"], - ticker=market_info["ticker"], - oracle_base=market_info["oracleBase"], - oracle_quote=market_info["oracleQuote"], - oracle_type=market_info["oracleType"], - oracle_scale_factor=market_info["oracleScaleFactor"], - initial_margin_ratio=Decimal(market_info["initialMarginRatio"]), - maintenance_margin_ratio=Decimal(market_info["maintenanceMarginRatio"]), + markets_info = (await self.fetch_chain_derivative_markets_v2(status="Active", with_mid_price_and_tob=False))[ + "markets" + ] + for market_info in markets_info: + market = market_info["market"] + quote_token = self._tokens_by_denom.get(market["quoteDenom"]) + + derivative_market = DerivativeMarket( + id=market["marketId"], + status=market["status"], + ticker=market["ticker"], + oracle_base=market["oracleBase"], + oracle_quote=market["oracleQuote"], + oracle_type=market["oracleType"], + oracle_scale_factor=market["oracleScaleFactor"], + initial_margin_ratio=Token.convert_value_from_chain_format(Decimal(market["initialMarginRatio"])), + maintenance_margin_ratio=Token.convert_value_from_chain_format( + Decimal(market["maintenanceMarginRatio"]) + ), quote_token=quote_token, - maker_fee_rate=Decimal(market_info["makerFeeRate"]), - taker_fee_rate=Decimal(market_info["takerFeeRate"]), - service_provider_fee=Decimal(market_info["serviceProviderFee"]), - min_price_tick_size=Decimal(market_info["minPriceTickSize"]), - min_quantity_tick_size=Decimal(market_info["minQuantityTickSize"]), - min_notional=Decimal(market_info["minNotional"]), + maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_chain_format(Decimal(market["relayerFeeShareRate"])), + min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market["minPriceTickSize"])), + min_quantity_tick_size=Token.convert_value_from_chain_format(Decimal(market["minQuantityTickSize"])), + min_notional=Token.convert_value_from_chain_format(Decimal(market["minNotional"])), ) - derivative_markets[market.id] = market + derivative_markets[derivative_market.id] = derivative_market - markets_info = (await self.fetch_binary_options_markets(market_status="active"))["markets"] + markets_info = (await self.fetch_chain_binary_options_markets_v2(status="Active"))["markets"] for market_info in markets_info: - quote_token = tokens_by_denom.get(market_info["quoteDenom"], None) + quote_token = self._tokens_by_denom.get(market_info["quoteDenom"]) market = BinaryOptionMarket( id=market_info["marketId"], - status=market_info["marketStatus"], + status=market_info["status"], ticker=market_info["ticker"], oracle_symbol=market_info["oracleSymbol"], oracle_provider=market_info["oracleProvider"], @@ -2883,21 +2865,21 @@ async def _initialize_tokens_and_markets(self): expiration_timestamp=market_info["expirationTimestamp"], settlement_timestamp=market_info["settlementTimestamp"], quote_token=quote_token, - maker_fee_rate=Decimal(market_info["makerFeeRate"]), - taker_fee_rate=Decimal(market_info["takerFeeRate"]), - service_provider_fee=Decimal(market_info["serviceProviderFee"]), - min_price_tick_size=Decimal(market_info["minPriceTickSize"]), - min_quantity_tick_size=Decimal(market_info["minQuantityTickSize"]), - min_notional=Decimal(market_info["minNotional"]), + maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_chain_format(Decimal(market_info["relayerFeeShareRate"])), + min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market_info["minPriceTickSize"])), + min_quantity_tick_size=Token.convert_value_from_chain_format( + Decimal(market_info["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_chain_format(Decimal(market_info["minNotional"])), settlement_price=None if market_info["settlementPrice"] == "" - else Decimal(market_info["settlementPrice"]), + else Token.convert_value_from_chain_format(Decimal(market_info["settlementPrice"])), ) binary_option_markets[market.id] = market - self._tokens_by_denom = tokens_by_denom - self._tokens_by_symbol = tokens_by_symbol self._spot_markets = spot_markets self._derivative_markets = derivative_markets self._binary_option_markets = binary_option_markets diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 0c82d801..7f8d0bcc 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -1,5 +1,4 @@ import json -from configparser import ConfigParser from decimal import Decimal from time import time from typing import Any, Dict, List, Optional @@ -7,7 +6,6 @@ from google.protobuf import any_pb2, json_format, timestamp_pb2 -from pyinjective import constant from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS, INJ_DECIMALS, INJ_DENOM from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.token import Token @@ -339,17 +337,11 @@ def __init__( """ self.network = network - self.spot_markets = dict() - self.derivative_markets = dict() - self.binary_option_markets = dict() - self.tokens = dict() - if spot_markets is None or derivative_markets is None or binary_option_markets is None or tokens is None: - self._initialize_markets_and_tokens_from_files() - else: - self.spot_markets = spot_markets - self.derivative_markets = derivative_markets - self.binary_option_markets = binary_option_markets - self.tokens = tokens + self.spot_markets = spot_markets or dict() + self.derivative_markets = derivative_markets or dict() + self.binary_option_markets = binary_option_markets or dict() + self.tokens = tokens or dict() + self._ofac_checker = OfacChecker() def coin(self, amount: int, denom: str) -> base_coin_pb.Coin: @@ -501,9 +493,9 @@ def create_v2_spot_order( ) -> injective_order_v2_pb.SpotOrder: trigger_price = trigger_price or Decimal(0) chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) - chain_quantity = f"{self.convert_value_to_chain_format(value=quantity).normalize():f}" - chain_price = f"{self.convert_value_to_chain_format(value=price).normalize():f}" - chain_trigger_price = f"{self.convert_value_to_chain_format(value=trigger_price).normalize():f}" + chain_quantity = f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}" + chain_price = f"{Token.convert_value_to_chain_format(value=price).normalize():f}" + chain_trigger_price = f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}" return injective_order_v2_pb.SpotOrder( market_id=market_id, @@ -663,7 +655,7 @@ def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective # region Auction module def MsgBid(self, sender: str, bid_amount: float, round: float): - be_amount = self.convert_value_to_chain_format(value=Decimal(str(bid_amount))) + be_amount = Token.convert_value_to_chain_format(value=Decimal(str(bid_amount))) return injective_auction_tx_pb.MsgBid( sender=sender, @@ -726,7 +718,7 @@ def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) ) def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return cosmos_bank_tx_pb.MsgSend( @@ -757,7 +749,7 @@ def msg_deposit( def msg_deposit_v2( self, sender: str, subaccount_id: str, amount: int, denom: str ) -> injective_exchange_tx_v2_pb.MsgDeposit: - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgDeposit( @@ -789,7 +781,7 @@ def msg_withdraw_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgWithdraw: - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgWithdraw( @@ -854,11 +846,11 @@ def msg_instant_spot_market_launch_v2( base_decimals: int, quote_decimals: int, ) -> injective_exchange_tx_v2_pb.MsgInstantSpotMarketLaunch: - chain_min_price_tick_size = f"{self.convert_value_to_chain_format(value=min_price_tick_size).normalize():f}" + chain_min_price_tick_size = f"{Token.convert_value_to_chain_format(value=min_price_tick_size).normalize():f}" chain_min_quantity_tick_size = ( - f"{self.convert_value_to_chain_format(value=min_quantity_tick_size).normalize():f}" + f"{Token.convert_value_to_chain_format(value=min_quantity_tick_size).normalize():f}" ) - chain_min_notional = f"{self.convert_value_to_chain_format(value=min_notional).normalize():f}" + chain_min_notional = f"{Token.convert_value_to_chain_format(value=min_notional).normalize():f}" return injective_exchange_tx_v2_pb.MsgInstantSpotMarketLaunch( sender=sender, @@ -946,13 +938,13 @@ def msg_instant_perpetual_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = self.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) - chain_initial_margin_ratio = self.convert_value_to_chain_format(value=initial_margin_ratio) - chain_maintenance_margin_ratio = self.convert_value_to_chain_format(value=maintenance_margin_ratio) - chain_min_notional = self.convert_value_to_chain_format(value=min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) + chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) + chain_min_notional = Token.convert_value_to_chain_format(value=min_notional) return injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch( sender=sender, @@ -1049,13 +1041,13 @@ def msg_instant_expiry_futures_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = self.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) - chain_initial_margin_ratio = self.convert_value_to_chain_format(value=initial_margin_ratio) - chain_maintenance_margin_ratio = self.convert_value_to_chain_format(value=maintenance_margin_ratio) - chain_min_notional = self.convert_value_to_chain_format(value=min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) + chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) + chain_min_notional = Token.convert_value_to_chain_format(value=min_notional) return injective_exchange_tx_v2_pb.MsgInstantExpiryFuturesMarketLaunch( sender=sender, @@ -1658,11 +1650,11 @@ def msg_instant_binary_options_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = self.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = self.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = self.convert_value_to_chain_format(value=taker_fee_rate) - chain_min_notional = self.convert_value_to_chain_format(value=min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) + chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) + chain_min_notional = Token.convert_value_to_chain_format(value=min_notional) return injective_exchange_tx_v2_pb.MsgInstantBinaryOptionsMarketLaunch( sender=sender, @@ -1901,7 +1893,7 @@ def msg_subaccount_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) amount_coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( @@ -1941,7 +1933,7 @@ def msg_external_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgExternalTransfer( @@ -2035,7 +2027,7 @@ def msg_increase_position_margin_v2( market_id: str, amount: Decimal, ) -> injective_exchange_tx_v2_pb.MsgIncreasePositionMargin: - additional_margin = self.convert_value_to_chain_format(value=amount) + additional_margin = Token.convert_value_to_chain_format(value=amount) return injective_exchange_tx_v2_pb.MsgIncreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, @@ -2101,7 +2093,7 @@ def msg_admin_update_binary_options_market_v2( ) if settlement_price is not None: - chain_settlement_price = self.convert_value_to_chain_format(value=settlement_price) + chain_settlement_price = Token.convert_value_to_chain_format(value=settlement_price) message.settlement_price = f"{chain_settlement_price.normalize():f}" return message @@ -2138,7 +2130,7 @@ def msg_decrease_position_margin_v2( market_id: str, amount: Decimal, ) -> injective_exchange_tx_v2_pb.MsgDecreasePositionMargin: - additional_margin = self.convert_value_to_chain_format(value=amount) + additional_margin = Token.convert_value_to_chain_format(value=amount) return injective_exchange_tx_v2_pb.MsgDecreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, @@ -2191,9 +2183,9 @@ def msg_update_spot_market_v2( new_min_quantity_tick_size: Decimal, new_min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgUpdateSpotMarket: - chain_min_price_tick_size = self.convert_value_to_chain_format(value=new_min_price_tick_size) - chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=new_min_quantity_tick_size) - chain_min_notional = self.convert_value_to_chain_format(value=new_min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=new_min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_chain_format(value=new_min_notional) return injective_exchange_tx_v2_pb.MsgUpdateSpotMarket( admin=admin, @@ -2254,11 +2246,11 @@ def msg_update_derivative_market_v2( new_initial_margin_ratio: Decimal, new_maintenance_margin_ratio: Decimal, ) -> injective_exchange_tx_v2_pb.MsgUpdateDerivativeMarket: - chain_min_price_tick_size = self.convert_value_to_chain_format(value=new_min_price_tick_size) - chain_min_quantity_tick_size = self.convert_value_to_chain_format(value=new_min_quantity_tick_size) - chain_min_notional = self.convert_value_to_chain_format(value=new_min_notional) - chain_initial_margin_ratio = self.convert_value_to_chain_format(value=new_initial_margin_ratio) - chain_maintenance_margin_ratio = self.convert_value_to_chain_format(value=new_maintenance_margin_ratio) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=new_min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=new_min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_chain_format(value=new_min_notional) + chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=new_initial_margin_ratio) + chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=new_maintenance_margin_ratio) return injective_exchange_tx_v2_pb.MsgUpdateDerivativeMarket( admin=admin, @@ -2329,7 +2321,7 @@ def msg_create_insurance_fund( expiry: int, initial_deposit: int, ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: - chain_initial_deposit = self.convert_value_to_chain_format(value=Decimal(str(initial_deposit))) + chain_initial_deposit = Token.convert_value_to_chain_format(value=Decimal(str(initial_deposit))) deposit = self.coin(amount=int(chain_initial_deposit), denom=quote_denom) return injective_insurance_tx_pb.MsgCreateInsuranceFund( @@ -2370,7 +2362,7 @@ def msg_underwrite( quote_denom: str, amount: int, ): - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=quote_denom) return injective_insurance_tx_pb.MsgUnderwrite( @@ -2386,7 +2378,7 @@ def MsgRequestRedemption( share_denom: str, amount: int, ): - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) return injective_insurance_tx_pb.MsgRequestRedemption( sender=sender, market_id=market_id, @@ -2431,8 +2423,8 @@ def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, br ) def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, bridge_fee: int): - chain_amount = self.convert_value_to_chain_format(value=Decimal(str(amount))) - chain_bridge_fee = self.convert_value_to_chain_format(value=Decimal(str(bridge_fee))) + chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_bridge_fee = Token.convert_value_to_chain_format(value=Decimal(str(bridge_fee))) amount_coin = self.coin(amount=int(chain_amount), denom=denom) bridge_fee_coin = self.coin(amount=int(chain_bridge_fee), denom=denom) @@ -2447,7 +2439,7 @@ def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, b # region Staking module def MsgDelegate(self, delegator_address: str, validator_address: str, amount: float): - be_amount = self.convert_value_to_chain_format(Decimal(str(amount))) + be_amount = Token.convert_value_to_chain_format(Decimal(str(amount))) return cosmos_staking_tx_pb.MsgDelegate( delegator_address=delegator_address, @@ -3104,91 +3096,6 @@ def unpack_transaction_messages(transaction_data: Dict[str, Any]) -> List[Dict[s return msgs - def _initialize_markets_and_tokens_from_files(self): - config: ConfigParser = constant.CONFIGS[self.network] - spot_markets = dict() - derivative_markets = dict() - tokens = dict() - - for section_name, configuration_section in config.items(): - if section_name.startswith("0x"): - description = configuration_section["description"] - - quote_token = Token( - name="", - symbol="", - denom="", - address="", - decimals=int(configuration_section["quote"]), - logo="", - updated=-1, - ) - - if "Spot" in description: - base_token = Token( - name="", - symbol="", - denom="", - address="", - decimals=int(configuration_section["base"]), - logo="", - updated=-1, - ) - - market = SpotMarket( - id=section_name, - status="", - ticker=description, - base_token=base_token, - quote_token=quote_token, - maker_fee_rate=None, - taker_fee_rate=None, - service_provider_fee=None, - min_price_tick_size=Decimal(str(configuration_section["min_price_tick_size"])), - min_quantity_tick_size=Decimal(str(configuration_section["min_quantity_tick_size"])), - min_notional=Decimal(str(configuration_section.get("min_notional", "0"))), - ) - spot_markets[market.id] = market - else: - market = DerivativeMarket( - id=section_name, - status="", - ticker=description, - oracle_base="", - oracle_quote="", - oracle_type="", - oracle_scale_factor=1, - initial_margin_ratio=None, - maintenance_margin_ratio=None, - quote_token=quote_token, - maker_fee_rate=None, - taker_fee_rate=None, - service_provider_fee=None, - min_price_tick_size=Decimal(str(configuration_section["min_price_tick_size"])), - min_quantity_tick_size=Decimal(str(configuration_section["min_quantity_tick_size"])), - min_notional=Decimal(str(configuration_section.get("min_notional", "0"))), - ) - - derivative_markets[market.id] = market - - elif section_name != "DEFAULT": - token = Token( - name=section_name, - symbol=section_name, - denom=configuration_section["peggy_denom"], - address="", - decimals=int(configuration_section["decimals"]), - logo="", - updated=-1, - ) - - tokens[token.symbol] = token - - self.tokens = tokens - self.spot_markets = spot_markets - self.derivative_markets = derivative_markets - self.binary_option_markets = dict() - def _order_mask(self, is_conditional: bool, is_buy: bool, is_market_order: bool) -> int: order_mask = 0 @@ -3265,10 +3172,10 @@ def _basic_v2_derivative_order( trigger_price: Optional[Decimal] = None, ) -> injective_order_v2_pb.DerivativeOrder: trigger_price = trigger_price or Decimal(0) - chain_quantity = f"{self.convert_value_to_chain_format(value=quantity).normalize():f}" - chain_price = f"{self.convert_value_to_chain_format(value=price).normalize():f}" - chain_margin = f"{self.convert_value_to_chain_format(value=margin).normalize():f}" - chain_trigger_price = f"{self.convert_value_to_chain_format(value=trigger_price).normalize():f}" + chain_quantity = f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}" + chain_price = f"{Token.convert_value_to_chain_format(value=price).normalize():f}" + chain_margin = f"{Token.convert_value_to_chain_format(value=margin).normalize():f}" + chain_trigger_price = f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}" chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) return injective_order_v2_pb.DerivativeOrder( @@ -3284,9 +3191,3 @@ def _basic_v2_derivative_order( margin=chain_margin, trigger_price=chain_trigger_price, ) - - def convert_value_to_chain_format(self, value: Decimal) -> Decimal: - return value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - - def convert_value_from_chain_format(self, value: Decimal) -> Decimal: - return value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") diff --git a/pyinjective/constant.py b/pyinjective/constant.py index 95fe2aa7..07916429 100644 --- a/pyinjective/constant.py +++ b/pyinjective/constant.py @@ -1,6 +1,3 @@ -import os -from configparser import ConfigParser - GAS_PRICE = 160_000_000 GAS_FEE_BUFFER_AMOUNT = 25_000 MAX_MEMO_CHARACTERS = 256 @@ -8,18 +5,3 @@ TICKER_TOKENS_SEPARATOR = "/" INJ_DENOM = "inj" INJ_DECIMALS = 18 - -devnet_config = ConfigParser() -devnet_config.read(os.path.join(os.path.dirname(__file__), "denoms_devnet.ini")) - -testnet_config = ConfigParser() -testnet_config.read(os.path.join(os.path.dirname(__file__), "denoms_testnet.ini")) - -mainnet_config = ConfigParser() -mainnet_config.read(os.path.join(os.path.dirname(__file__), "denoms_mainnet.ini")) - -CONFIGS = { - "devnet": devnet_config, - "testnet": testnet_config, - "mainnet": mainnet_config, -} diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index f2a9bc79..8c0f3561 100644 --- a/pyinjective/core/token.py +++ b/pyinjective/core/token.py @@ -1,6 +1,8 @@ from dataclasses import dataclass from decimal import Decimal +from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS + @dataclass(eq=True, frozen=True) class Token: @@ -12,5 +14,13 @@ class Token: logo: str updated: int + @staticmethod + def convert_value_to_chain_format(value: Decimal) -> Decimal: + return value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + @staticmethod + def convert_value_from_chain_format(value: Decimal) -> Decimal: + return value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + def chain_formatted_value(self, human_readable_value: Decimal) -> Decimal: return human_readable_value * Decimal(f"1e{self.decimals}") diff --git a/pyinjective/denoms_devnet.ini b/pyinjective/denoms_devnet.ini deleted file mode 100644 index a50c4ea6..00000000 --- a/pyinjective/denoms_devnet.ini +++ /dev/null @@ -1,1885 +0,0 @@ -[0x01edfab47f124748dc89998eb33144af734484ba07099014594321729a0ca16b] -description = 'Devnet Spot AAVE/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x0511ddc4e6586f3bfe1acb2dd905f8b8a82c97e1edaef654b12ca7e6031ca0fa] -description = 'Devnet Spot ATOM/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xd1956e20d74eeb1febe31cd37060781ff1cb266f49e0512b446a5fafa9a16034] -description = 'Devnet Spot WETH/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xe97ebaf3e2ae3bd00dabe59046fcc28ec58ea969df33a9ce95f4fc285306c2d4] -description = 'Devnet Spot WBTC/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x26413a70c9b78a495023e5ab8003c9cf963ef963f6755f8b57255feb5744bf31] -description = 'Devnet Spot LINK/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x28f3c9897e23750bf653889224f93390c467b83c86d736af79431958fff833d1] -description = 'Devnet Spot MATIC/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x74b17b0d6855feba39f1f7ab1e8bad0363bd510ee1dcc74e40c2adfe1502f781] -description = 'Devnet Spot BNB/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x572f05fd93a6c2c4611b2eba1a0a36e102b6a592781956f0128a27662d84f112] -description = 'Devnet Spot APE/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x74ee114ad750f8429a97e07b5e73e145724e9b21670a7666625ddacc03d6758d] -description = 'Devnet Spot YFI/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x7f71c4fba375c964be8db7fc7a5275d974f8c6cdc4d758f2ac4997f106bb052b] -description = 'Devnet Spot GF/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.0000000000001 -min_notional = 1000000 - -[0x8b1a4d3e8f6b559e30e40922ee3662dd78edf7042330d4d620d188699d1a9715] -description = 'Devnet Spot USDT/USDC' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0] -description = 'Devnet Spot INJ/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x6fa856bca5a9298ced8da3ef7616e66081ff64e4fdd2bffa38e95cf23c1f2321] -description = 'Devnet Spot PROJ/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 1000000000 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.000000000000001 -min_notional = 1000000 - -[0x0686357b934c761784d58a2b8b12618dfe557de108a220e06f8f6580abb83aab] -description = 'Devnet Spot SOMM/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0x4fa0bd2c2adbfe077f58395c18a72f5cbf89532743e3bddf43bc7aba706b0b74] -description = 'Devnet Spot CHZ/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x2021159081a88c9a627c66f770fb60c7be78d492509c89b203e1829d0413995a] -description = 'Devnet Spot ETHBTCTrend/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0xfad0838bf6be7467c6a00d61360f7924afc848e4d0c56cc4261f94e77e124e7a] -description = 'Devnet Spot USDC/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xba3101edf6cb94d0b29fd95fb1679f84fe981a98da91a3df1e06809845fab209] -description = 'Devnet Spot WBTC/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 10000000000000000 - -[0xefc8e0b5bdb799010c9584c59fa14e759009d86c04fa52e0e67b411309096ace] -description = 'Devnet Spot PROJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.00000001 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000000000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0x2d3b8d8833dda54a717adea9119134556848105fd6028e9a4a526e4e5a122a57] -description = 'Devnet Spot KIRA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0x42edf70cc37e155e9b9f178e04e18999bc8c404bd7b638cc4cbf41da8ef45a21] -description = 'Devnet Spot QUNT/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 0 - -[0xc8fafa1fcab27e16da20e98b4dc9dda45320418c27db80663b21edac72f3b597] -description = 'Devnet Spot HDRO/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0xd166688623206f9931307285678e9ff17cecd80a27d7b781dd88cecfba3b1839] -description = 'Devnet Spot BLACK/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0x1422a13427d5eabd4d8de7907c8340f7e58cb15553a9fd4ad5c90406561886f9] -description = 'Devnet Derivative COMP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x1c284820f24dff4c60fecd521a9df3df9c745d23dd585d45bf418653c2d73ab4] -description = 'Devnet Derivative SNX/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x1f73e21972972c69c03fb105a5864592ac2b47996ffea3c500d1ea2d20138717] -description = 'Devnet Derivative LINK/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce] -description = 'Devnet Derivative BTC/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x7cc8b10d7deb61e744ef83bdec2bbcf4a056867e89b062c6a453020ca82bd4e4] -description = 'Devnet Derivative INJ/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x56d0c0293c4415e2d48fc2c8503a56a0c7389247396a2ef9b0a48c01f0646705] -description = 'Devnet Derivative ATOM/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x979731deaaf17d26b2e256ad18fecd0ac742b3746b9ea5382bac9bd0b5e58f74] -description = 'Devnet Derivative ETH/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xb64332daa987dcb200c26965bc9adaf8aa301fe3a0aecb0232fadbd3dfccd0d8] -description = 'Devnet Derivative UNI/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xccd6723224cae013827668ad1e7f361cde694adbb7a87f62a6d547cc464ba9b5] -description = 'Devnet Derivative GRT/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x3b7fb1d9351f7fa2e6e0e5a11b3639ee5e0486c33a6a74f629c3fc3c3043efd5] -description = 'Devnet Derivative BONK/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0000000001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[$ALIEN] -peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien -decimals = 6 - -[$AOI] -peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi -decimals = 6 - -[$Babykira] -peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira -decimals = 6 - -[1INCH] -peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 -decimals = 18 - -[AAVE] -peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 -decimals = 18 - -[ALPHA] -peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u -decimals = 8 - -[ANDR] -peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E -decimals = 6 - -[APE] -peggy_denom = peggy0x44d63c7FC48385b212aB397aB91A2637ec964634 -decimals = 18 - -[APP] -peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 -decimals = 18 - -[ARB] -peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 -decimals = 8 - -[ARBlegacy] -peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd -decimals = 8 - -[ASG] -peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 -decimals = 8 - -[ASTR] -peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x -decimals = 18 - -[ASTRO] -peggy_denom = ibc/E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89 -decimals = 6 - -[ATOM] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom -decimals = 8 - -[AUTISM] -peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism -decimals = 6 - -[AVAX] -peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 -decimals = 8 - -[AXL] -peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 -decimals = 6 - -[AXS] -peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b -decimals = 18 - -[Alpha Coin] -peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B -decimals = 18 - -[Ape Coin] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 -decimals = 18 - -[Arbitrum] -peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 -decimals = 18 - -[Axelar] -peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc -decimals = 6 - -[BAMBOO] -peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo -decimals = 6 - -[BAND] -peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 -decimals = 18 - -[BAT] -peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF -decimals = 18 - -[BAYC] -peggy_denom = bayc -decimals = 18 - -[BEAST] -peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be -decimals = 6 - -[BINJ] -peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/binj -decimals = 18 - -[BITS] -peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits -decimals = 6 - -[BLACK] -peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black -decimals = 6 - -[BMOS] -peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E -decimals = 6 - -[BNB] -peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 -decimals = 18 - -[BODEN] -peggy_denom = boden -decimals = 9 - -[BONJO] -peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/bonjo -decimals = 6 - -[BONK] -peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch -decimals = 5 - -[BONUS] -peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF -decimals = 8 - -[BRETT] -peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett -decimals = 6 - -[BRZ] -peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk -decimals = 4 - -[BSKT] -peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 -decimals = 5 - -[BTC] -peggy_denom = btc -decimals = 8 - -[BULLS] -peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls -decimals = 6 - -[BUSD] -peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 -decimals = 18 - -[Babykira] -peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira -decimals = 6 - -[Basket] -peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 -decimals = 5 - -[Bird INJ] -peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj -decimals = 6 - -[BitSong] -peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 -decimals = 18 - -[Bonjo] -peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 -decimals = 18 - -[Brazilian Digital Token] -peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B -decimals = 4 - -[CAD] -peggy_denom = cad -decimals = 6 - -[CANTO] -peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 -decimals = 18 - -[CEL] -peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d -decimals = 4 - -[CELL] -peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 -decimals = 18 - -[CHZ] -peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF -decimals = 18 - -[CHZlegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh -decimals = 8 - -[CLON] -peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 -decimals = 6 - -[COCK] -peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/cock -decimals = 6 - -[COKE] -peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke -decimals = 6 - -[COMP] -peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 -decimals = 18 - -[CRE] -peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 -decimals = 6 - -[CVR] -peggy_denom = peggy0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6 -decimals = 18 - -[Chiliz (legacy)] -peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh -decimals = 8 - -[Cosmos] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 -decimals = 6 - -[DAI] -peggy_denom = peggy0x6b175474e89094c44da98b954eedeac495271d0f -decimals = 18 - -[DDL] -peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/ddl -decimals = 6 - -[DEFI5] -peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 -decimals = 18 - -[DEMO] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/demo -decimals = 18 - -[DGNZ] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dgnz -decimals = 6 - -[DOGE] -peggy_denom = doge -decimals = 8 - -[DOJ] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj -decimals = 6 - -[DOJO] -peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/dojo -decimals = 6 - -[DOT] -peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 -decimals = 10 - -[DREAM] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream -decimals = 6 - -[DROGO] -peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 -decimals = 6 - -[DUDE] -peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/dude -decimals = 6 - -[Dojo Token] -peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 -decimals = 18 - -[ELON] -peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 -decimals = 6 - -[ENA] -peggy_denom = peggy0x57e114b691db790c35207b2e685d4a43181e6061 -decimals = 18 - -[ENJ] -peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c -decimals = 18 - -[ERIC] -peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric -decimals = 6 - -[ETH] -peggy_denom = eth -decimals = 18 - -[ETHBTCTrend] -peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 -decimals = 18 - -[EUR] -peggy_denom = eur -decimals = 6 - -[EVAI] -peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c -decimals = 8 - -[EVIINDEX] -peggy_denom = eviindex -decimals = 18 - -[EVMOS] -peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 -decimals = 18 - -[FET] -peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B -decimals = 18 - -[FTM] -peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 -decimals = 18 - -[Fetch.ai] -peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 -decimals = 18 - -[GALAXY] -peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy -decimals = 6 - -[GBP] -peggy_denom = gbp -decimals = 6 - -[GF] -peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 -decimals = 18 - -[GIGA] -peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 -decimals = 5 - -[GINGER] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/ginger -decimals = 6 - -[GLTO] -peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 -decimals = 6 - -[GME] -peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 -decimals = 8 - -[GOLD] -peggy_denom = gold -decimals = 18 - -[GOLDIE] -peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/goldie -decimals = 6 - -[GROK] -peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/grok -decimals = 6 - -[GRT] -peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 -decimals = 18 - -[GYEN] -peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 -decimals = 6 - -[HDRO] -peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro -decimals = 6 - -[HT] -peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 -decimals = 18 - -[HUAHUA] -peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB -decimals = 6 - -[Hydro] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro -decimals = 6 - -[Hydro Wrapped INJ] -peggy_denom = inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc -decimals = 18 - -[IKINGS] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/ikings -decimals = 6 - -[INCEL] -peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel -decimals = 6 - -[INJ] -peggy_denom = inj -decimals = 18 - -[INJECT] -peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/inject -decimals = 6 - -[INJER] -peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/injer -decimals = 6 - -[INJINU] -peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/injinu -decimals = 6 - -[INJX] -peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx -decimals = 6 - -[INJbsc] -peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 -decimals = 18 - -[INJet] -peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw -decimals = 18 - -[IOTX] -peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 -decimals = 18 - -[IPandaAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai -decimals = 6 - -[Injective] -peggy_denom = peggy0x5512c04B6FF813f3571bDF64A1d74c98B5257332 -decimals = 18 - -[Injective Panda] -peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo -decimals = 6 - -[Internet Explorer] -peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb -decimals = 6 - -[JPY] -peggy_denom = jpy -decimals = 6 - -[JUNO] -peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 -decimals = 6 - -[JUP] -peggy_denom = jup -decimals = 6 - -[KAGE] -peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 -decimals = 18 - -[KARATE] -peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate -decimals = 6 - -[KARMA] -peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma -decimals = 6 - -[KATANA] -peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana -decimals = 6 - -[KAVA] -peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 -decimals = 6 - -[KINJA] -peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/kinja -decimals = 6 - -[KIRA] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/kira -decimals = 6 - -[KPEPE] -peggy_denom = pepe -decimals = 18 - -[KUJI] -peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 -decimals = 6 - -[LAMA] -peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/lama -decimals = 6 - -[LAMBO] -peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 -decimals = 18 - -[LDO] -peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy -decimals = 8 - -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA -decimals = 18 - -[LIOR] -peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/lior -decimals = 6 - -[LUNA] -peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 -decimals = 6 - -[LVN] -peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 -decimals = 6 - -[LYM] -peggy_denom = peggy0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5 -decimals = 18 - -[Lido DAO Token] -peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 -decimals = 18 - -[MAGA] -peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 -decimals = 9 - -[MATIC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/matic -decimals = 18 - -[MEMEME] -peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE -decimals = 18 - -[MILA] -peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/mila -decimals = 6 - -[MILK] -peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/milk -decimals = 6 - -[MOONIFY] -peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify -decimals = 6 - -[MOTHER] -peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE -decimals = 6 - -[MPEPE] -peggy_denom = mpepe -decimals = 18 - -[MT] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mt -decimals = 6 - -[NBLA] -peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla -decimals = 6 - -[NBZ] -peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D -decimals = 6 - -[NBZAIRDROP] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/nbzairdrop -decimals = 0 - -[NEOK] -peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 -decimals = 18 - -[NEXO] -peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 -decimals = 18 - -[NINJA] -peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja -decimals = 6 - -[NINJB] -peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb -decimals = 6 - -[NLC] -peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 -decimals = 6 - -[NOBI] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi -decimals = 6 - -[NOBITCHES] -peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches -decimals = 6 - -[NOIA] -peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca -decimals = 18 - -[NOIS] -peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A -decimals = 6 - -[NONE] -peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 -decimals = 18 - -[NONJA] -peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck -decimals = 18 - -[NPEPE] -peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/npepe -decimals = 6 - -[Neptune Receipt INJ] -peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f -decimals = 18 - -[OCEAN] -peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 -decimals = 18 - -[OMI] -peggy_denom = peggy0xed35af169af46a02ee13b9d79eb57d6d68c1749e -decimals = 18 - -[OMNI] -peggy_denom = peggy0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4 -decimals = 18 - -[OP] -peggy_denom = op -decimals = 18 - -[ORAI] -peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 -decimals = 6 - -[ORNE] -peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E -decimals = 6 - -[OSMO] -peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 -decimals = 6 - -[OX] -peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f -decimals = 18 - -[Oraichain] -peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 -decimals = 18 - -[PAXG] -peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 -decimals = 18 - -[PEPE] -peggy_denom = peggy0x6982508145454ce325ddbe47a25d4ec3d2311933 -decimals = 18 - -[PHUC] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/phuc -decimals = 6 - -[PIKA] -peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/pika -decimals = 6 - -[POINT] -peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point -decimals = 0 - -[POOL] -peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e -decimals = 18 - -[POOR] -peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 -decimals = 8 - -[PROJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj -decimals = 18 - -[PROJX] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx -decimals = 18 - -[PUG] -peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b -decimals = 18 - -[PUNK] -peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/punk -decimals = 6 - -[PVP] -peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 -decimals = 8 - -[PYTH] -peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 -decimals = 6 - -[PYTHlegacy] -peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy -decimals = 6 - -[PYUSD] -peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 -decimals = 6 - -[Phuc] -peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc -decimals = 6 - -[Pikachu] -peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika -decimals = 6 - -[Polkadot] -peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf -decimals = 10 - -[Polygon] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 -decimals = 18 - -[Punk Token] -peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt -decimals = 18 - -[QAT] -peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen -decimals = 8 - -[QNT] -peggy_denom = peggy0x4a220e6096b25eadb88358cb44068a3248254675 -decimals = 18 - -[QUNT] -peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt -decimals = 6 - -[RAI] -peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 -decimals = 18 - -[RAMEN] -peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen -decimals = 6 - -[RIBBIT] -peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe -decimals = 18 - -[RICE] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/rice -decimals = 12 - -[ROOT] -peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 -decimals = 6 - -[RUNE] -peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb -decimals = 18 - -[SAE] -peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/sae -decimals = 6 - -[SAGA] -peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 -decimals = 6 - -[SCRT] -peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A -decimals = 6 - -[SDEX] -peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF -decimals = 18 - -[SEI] -peggy_denom = sei -decimals = 6 - -[SHIB] -peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE -decimals = 18 - -[SHROOM] -peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 -decimals = 18 - -[SHURIKEN] -peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken -decimals = 6 - -[SKIPBIDIDOBDOBDOBYESYESYESYES] -peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d -decimals = 9 - -[SMELLY] -peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/smelly -decimals = 6 - -[SNOWY] -peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/snowy -decimals = 6 - -[SNS] -peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 -decimals = 8 - -[SNX] -peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F -decimals = 18 - -[SOL] -peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 -decimals = 8 - -[SOLlegacy] -peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 -decimals = 8 - -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B -decimals = 6 - -[SPUUN] -peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/spuun -decimals = 6 - -[STARS] -peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca -decimals = 18 - -[STINJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj -decimals = 18 - -[STRD] -peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 -decimals = 6 - -[STT] -peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd -decimals = 18 - -[STX] -peggy_denom = stx -decimals = 6 - -[SUI] -peggy_denom = sui -decimals = 9 - -[SUSHI] -peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd -decimals = 18 - -[SWAP] -peggy_denom = peggy0xcc4304a31d09258b0029ea7fe63d032f52e44efe -decimals = 18 - -[Shiba INJ] -peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj -decimals = 6 - -[Shinobi] -peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi -decimals = 6 - -[Shuriken Token] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken -decimals = 6 - -[Solana] -peggy_denom = inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 -decimals = 8 - -[Sommelier] -peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 -decimals = 6 - -[SteadyBTC] -peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d -decimals = 18 - -[SteadyETH] -peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 -decimals = 18 - -[Stride Staked Injective] -peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 -decimals = 18 - -[Summoners Arena Essence] -peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB -decimals = 8 - -[SushiSwap] -peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 -decimals = 18 - -[TAB] -peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD -decimals = 18 - -[TALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis -decimals = 6 - -[TEST1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 -decimals = 6 - -[TEST2] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test2 -decimals = 6 - -[TEST3] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test3 -decimals = 6 - -[TEvmos] -peggy_denom = ibc/300B5A980CA53175DBAC918907B47A2885CADD17042AD58209E777217D64AF20 -decimals = 18 - -[TIA] -peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 -decimals = 6 - -[TIX] -peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/tix -decimals = 6 - -[TRUCPI] -peggy_denom = trucpi -decimals = 18 - -[Terra] -peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 -decimals = 6 - -[TerraUSD] -peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD -decimals = 18 - -[Test QAT] -peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 -decimals = 18 - -[Tether] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 -decimals = 6 - -[UMA] -peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 -decimals = 18 - -[UNI] -peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 -decimals = 18 - -[UPHOTON] -peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB -decimals = 6 - -[USD Coin] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw -decimals = 6 - -[USD Coin (legacy)] -peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk -decimals = 6 - -[USDC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc -decimals = 6 - -[USDC-MPL] -peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A -decimals = 6 - -[USDCarb] -peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r -decimals = 6 - -[USDCbsc] -peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu -decimals = 6 - -[USDCet] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk -decimals = 6 - -[USDCgateway] -peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 -decimals = 6 - -[USDClegacy] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 -decimals = 6 - -[USDCpoly] -peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 -decimals = 6 - -[USDCso] -peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu -decimals = 6 - -[USDT] -peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 -decimals = 6 - -[USDTap] -peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 -decimals = 6 - -[USDTbsc] -peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj -decimals = 6 - -[USDTet] -peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 -decimals = 6 - -[USDTkv] -peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB -decimals = 6 - -[USDTso] -peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd -decimals = 6 - -[USDY] -peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 -decimals = 18 - -[USDYet] -peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C -decimals = 18 - -[USDe] -peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 -decimals = 18 - -[UST] -peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C -decimals = 18 - -[UTK] -peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c -decimals = 18 - -[UUST] -peggy_denom = ibc/C643B73073217F778DD7BDCB74C7EBCEF8E7EF81614FFA3C1C31861221AA9C4A -decimals = 0 - -[Unknown] -peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 -decimals = 6 - -[VATRENI] -peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay -decimals = 8 - -[VRD] -peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 -decimals = 18 - -[W] -peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 -decimals = 6 - -[WAGMI] -peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi -decimals = 9 - -[WAIFU] -peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu -decimals = 6 - -[WASSIE] -peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 -decimals = 18 - -[WGLMR-WEI] -peggy_denom = ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055 -decimals = 0 - -[WGMI] -peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/wgmi -decimals = 6 - -[WHALE] -peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 -decimals = 6 - -[WIF] -peggy_denom = wif -decimals = 6 - -[WIZZ] -peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/wizz -decimals = 6 - -[WKLAY] -peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 -decimals = 8 - -[WMATIC] -peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC -decimals = 8 - -[WMATIClegacy] -peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h -decimals = 8 - -[WOSMO] -peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 -decimals = 6 - -[WSTETH] -peggy_denom = peggy0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 -decimals = 18 - -[Wrapped Bitcoin] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc -decimals = 8 - -[Wrapped Ethereum] -peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc -decimals = 8 - -[XAC] -peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 -decimals = 8 - -[XAG] -peggy_denom = xag -decimals = 6 - -[XAU] -peggy_denom = xau -decimals = 6 - -[XBX] -peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 -decimals = 18 - -[XIII] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/xiii -decimals = 6 - -[XION] -peggy_denom = ibc/DAB0823884DB5785F08EE136EE9EB362E166F4C7455716641B03E93CE7F14193 -decimals = 6 - -[XNJ] -peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar -decimals = 18 - -[XPLA] -peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe -decimals = 8 - -[XPRT] -peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB -decimals = 6 - -[XRP] -peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe -decimals = 18 - -[XTALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis -decimals = 6 - -[YFI] -peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e -decimals = 18 - -[YUKI] -peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/yuki -decimals = 6 - -[ZEN] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen -decimals = 18 - -[ZIG] -peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 -decimals = 18 - -[ZK] -peggy_denom = zk -decimals = 18 - -[ZRO] -peggy_denom = zro -decimals = 6 - -[ZRX] -peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 -decimals = 18 - -[axlUSDC] -peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 -decimals = 6 - -[dINJ] -peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 -decimals = 18 - -[dYdX] -peggy_denom = peggy0x92d6c1e31e14520e676a687f0a93788b716beff5 -decimals = 18 - -[ezETH] -peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 -decimals = 18 - -[fUSDT] -peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 -decimals = 8 - -[factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp] -peggy_denom = factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp -decimals = 0 - -[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira] -peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira -decimals = 6 - -[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj] -peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj -decimals = 6 - -[factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp] -peggy_denom = factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp -decimals = 0 - -[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior] -peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior -decimals = 6 - -[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] -peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior -decimals = 6 - -[factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g] -peggy_denom = factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g -decimals = 0 - -[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd] -peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd -decimals = 0 - -[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj] -peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj -decimals = 0 - -[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc] -peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc -decimals = 0 - -[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c] -peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c -decimals = 0 - -[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty] -peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty -decimals = 0 - -[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] -peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi -decimals = 6 - -[factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA] -peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA -decimals = 6 - -[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] -peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk -decimals = 6 - -[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken] -peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken -decimals = 6 - -[hINJ] -peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc -decimals = 18 - -[ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E] -peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E -decimals = 6 - -[ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F] -peggy_denom = ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F -decimals = 0 - -[ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E] -peggy_denom = ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E -decimals = 0 - -[ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839] -peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 -decimals = 6 - -[inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw] -peggy_denom = inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw -decimals = 6 - -[inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku] -peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku -decimals = 18 - -[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] -peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp -decimals = 6 - -[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] -peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 -decimals = 8 - -[lootbox1] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 -decimals = 0 - -[nATOM] -peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 -decimals = 6 - -[nINJ] -peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf -decimals = 18 - -[nTIA] -peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv -decimals = 6 - -[nUSDT] -peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s -decimals = 6 - -[nWETH] -peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt -decimals = 18 - -[peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599] -peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 -decimals = 8 - -[peggy0x43123e1d077351267113ada8bE85A058f5D492De] -peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De -decimals = 6 - -[peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7] -peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 -decimals = 0 - -[peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369] -peggy_denom = peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369 -decimals = 18 - -[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] -peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 -decimals = 6 - -[peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB] -peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB -decimals = 6 - -[peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c] -peggy_denom = peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c -decimals = 18 - -[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] -peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 -decimals = 10 - -[peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2] -peggy_denom = peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 -decimals = 18 - -[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] -peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 -decimals = 18 - -[proj] -peggy_denom = proj -decimals = 18 - -[sUSDE] -peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 -decimals = 18 - -[share11] -peggy_denom = share11 -decimals = 18 - -[share13] -peggy_denom = share13 -decimals = 18 - -[share14] -peggy_denom = share14 -decimals = 18 - -[share15] -peggy_denom = share15 -decimals = 18 - -[share16] -peggy_denom = share16 -decimals = 18 - -[share17] -peggy_denom = share17 -decimals = 18 - -[share18] -peggy_denom = share18 -decimals = 18 - -[share19] -peggy_denom = share19 -decimals = 18 - -[share20] -peggy_denom = share20 -decimals = 18 - -[share21] -peggy_denom = share21 -decimals = 18 - -[share22] -peggy_denom = share22 -decimals = 18 - -[share23] -peggy_denom = share23 -decimals = 18 - -[share24] -peggy_denom = share24 -decimals = 18 - -[share25] -peggy_denom = share25 -decimals = 18 - -[share26] -peggy_denom = share26 -decimals = 18 - -[share27] -peggy_denom = share27 -decimals = 18 - -[share28] -peggy_denom = share28 -decimals = 18 - -[share29] -peggy_denom = share29 -decimals = 18 - -[share30] -peggy_denom = share30 -decimals = 18 - -[share31] -peggy_denom = share31 -decimals = 18 - -[share9] -peggy_denom = share9 -decimals = 18 - -[stETH] -peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 -decimals = 18 - -[unknown] -peggy_denom = unknown -decimals = 0 - -[wBTC] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku -decimals = 18 - -[wETH] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth -decimals = 8 - -[wUSDM] -peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 -decimals = 18 diff --git a/pyinjective/denoms_mainnet.ini b/pyinjective/denoms_mainnet.ini deleted file mode 100644 index ab5106bd..00000000 --- a/pyinjective/denoms_mainnet.ini +++ /dev/null @@ -1,16631 +0,0 @@ -[0x01e920e081b6f3b2e5183399d5b6733bb6f80319e6be3805b95cb7236910ff0e] -description = 'Mainnet Spot WETH/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xe0dc13205fb8b23111d8555a6402681965223135d368eeeb964681f9ff12eb2a] -description = 'Mainnet Spot INJ/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x8b1a4d3e8f6b559e30e40922ee3662dd78edf7042330d4d620d188699d1a9715] -description = 'Mainnet Spot USDT/USDC' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xfe93c19c0a072c8dd208b96694e024305a7dff01bbf12cac2bfa81b246c69040] -description = 'Mainnet Spot LINK/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xcdfbfaf1f24055e89b3c7cc763b8cb46ffff08cdc38c999d01f58d64af75dca9] -description = 'Mainnet Spot AAVE/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x5abfffe9079d53e0bf8ee9b3064b427acc3d71d6ba58a44235abe38f60115678] -description = 'Mainnet Spot MATIC/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xe8bf0467208c24209c1cf0fd64833fa43eb6e8035869f9d043dbff815ab76d01] -description = 'Mainnet Spot UNI/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x9a629b947b6f946af4f6076cfda67f3535d73ee3cef6176cf6d9c8d6b0a03f37] -description = 'Mainnet Spot SUSHI/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xa43d2be9861efb0d188b136cef0ae2150f80e08ec318392df654520dd359fcd7] -description = 'Mainnet Spot GRT/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0] -description = 'Mainnet Spot INJ/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x28f3c9897e23750bf653889224f93390c467b83c86d736af79431958fff833d1] -description = 'Mainnet Spot MATIC/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x09cc2c28fbedbdd677e07924653f8f583d0ee5886e74046e7f114210d990784b] -description = 'Mainnet Spot UNI/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x26413a70c9b78a495023e5ab8003c9cf963ef963f6755f8b57255feb5744bf31] -description = 'Mainnet Spot LINK/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xd1956e20d74eeb1febe31cd37060781ff1cb266f49e0512b446a5fafa9a16034] -description = 'Mainnet Spot WETH/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000001 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x01edfab47f124748dc89998eb33144af734484ba07099014594321729a0ca16b] -description = 'Mainnet Spot AAVE/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x29255e99290ff967bc8b351ce5b1cb08bc76a9a9d012133fb242bdf92cd28d89] -description = 'Mainnet Spot GRT/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x0c9f98c99b23e89dbf6a60bec05372790b39e03da0f86dd0208fc8e28751bd8c] -description = 'Mainnet Spot SUSHI/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x51092ddec80dfd0d41fee1a7d93c8465de47cd33966c8af8ee66c14fe341a545] -description = 'Mainnet Spot SNX/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xbe9d4a0a768c7e8efb6740be76af955928f93c247e0b3a1a106184c6cf3216a7] -description = 'Mainnet Spot QNT/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x170a06eb653548f67e94b0fcb82c5258c83b0a2b62ed24c55749d5ac77bc7621] -description = 'Mainnet Spot WBTC/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 10000 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x7471d361b90fc8541267bd088f498c2a461a2c0c57ff2b9a08279480e803b470] -description = 'Mainnet Spot AXS/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.00000000000001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x0511ddc4e6586f3bfe1acb2dd905f8b8a82c97e1edaef654b12ca7e6031ca0fa] -description = 'Mainnet Spot ATOM/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x7f71c4fba375c964be8db7fc7a5275d974f8c6cdc4d758f2ac4997f106bb052b] -description = 'Mainnet Spot GF/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xdce84d5e9c4560b549256f34583fb4ed07c82026987451d5da361e6e238287b3] -description = 'Mainnet Spot LUNA/UST' -base = 6 -quote = 18 -min_price_tick_size = 0.00000001 -min_display_price_tick_size = 0.00000000000000000001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000000000000000 - -[0x0f1a11df46d748c2b20681273d9528021522c6a0db00de4684503bbd53bef16e] -description = 'Mainnet Spot UST/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 100000000 -min_quantity_tick_size = 10000 -min_display_quantity_tick_size = 0.00000000000001 -min_notional = 1000000 - -[0xfbc729e93b05b4c48916c1433c9f9c2ddb24605a73483303ea0f87a8886b52af] -description = 'Mainnet Spot INJ/UST' -base = 18 -quote = 18 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.000000000000001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000000000000000 - -[0xd7487c1fc78fdb283d838fa562339db0ca05cd4af57c6a20e6561f260c78d1ae] -description = 'Mainnet Spot XBX/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xf04d1b7acf40b331d239fcff7950f98a4f2ab7adb2ceb8f65aa32ac29455d7b4] -description = 'Mainnet Spot HUAHUA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 100 -min_notional = 1000000 - -[0x572f05fd93a6c2c4611b2eba1a0a36e102b6a592781956f0128a27662d84f112] -description = 'Mainnet Spot APE/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x719f1617efc6e998472b70436549e0999fab8c05701177b15ba8910f2c5e7ab2] -description = 'Mainnet Spot EVMOS/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x4d030dccc9564ab1536a7751c3a566fa3adcb6a08ac807edc82890f2a6ec4fed] -description = 'Mainnet Spot XPRT/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xd5f5895102b67300a2f8f2c2e4b8d7c4c820d612bc93c039ba8cb5b93ccedf22] -description = 'Mainnet Spot DOT/USDT' -base = 10 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0xabc20971099f5df5d1de138f8ea871e7e9832e3b0b54b61056eae15b09fed678] -description = 'Mainnet Spot USDC/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xcd4b823ad32db2245b61bf498936145d22cdedab808d2f9d65100330da315d29] -description = 'Mainnet Spot STRD/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x4807e9ac33c565b4278fb9d288bd79546abbf5a368dfc73f160fe9caa37a70b1] -description = 'Mainnet Spot axlUSDC/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xe03df6e1571acb076c3d8f22564a692413b6843ad2df67411d8d8e56449c7ff4] -description = 'Mainnet Spot CRE/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x219b522871725d175f63d5cb0a55e95aa688b1c030272c5ae967331e45620032] -description = 'Mainnet Spot SteadyETH/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x510855ccf9148b47c6114e1c9e26731f9fd68a6f6dbc5d148152d02c0f3e5ce0] -description = 'Mainnet Spot SteadyBTC/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x2021159081a88c9a627c66f770fb60c7be78d492509c89b203e1829d0413995a] -description = 'Mainnet Spot ETHBTCTrend/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x0686357b934c761784d58a2b8b12618dfe557de108a220e06f8f6580abb83aab] -description = 'Mainnet Spot SOMM/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x84ba79ffde31db8273a9655eb515cb6cadfdf451b8f57b83eb3f78dca5bbbe6d] -description = 'Mainnet Spot SOL/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0xb825e2e4dbe369446e454e21c16e041cbc4d95d73f025c369f92210e82d2106f] -description = 'Mainnet Spot USDCso/USDCet' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xf66f797a0ff49bd2170a04d288ca3f13b5df1c822a7b0cc4204aca64a5860666] -description = 'Mainnet Spot USDC/USDCet' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xda0bb7a7d8361d17a9d2327ed161748f33ecbf02738b45a7dd1d812735d1531c] -description = 'Mainnet Spot USDT/USDC' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x4fa0bd2c2adbfe077f58395c18a72f5cbf89532743e3bddf43bc7aba706b0b74] -description = 'Mainnet Spot CHZ/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xa7fb70ac87e220f3ea7f7f77faf48b47b3575a9f7ad22291f04a02799e631ca9] -description = 'Mainnet Spot CANTO/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000000000000000 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0x7fce43f1140df2e5f16977520629e32a591939081b59e8fbc1e1c4ddfa77a044] -description = 'Mainnet Spot LDO/USDC' -base = 6 -quote = 8 -min_price_tick_size = 0.1 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x66a113e1f0c57196985f8f1f1cfce2f220fa0a96bca39360c70b6788a0bc06e0] -description = 'Mainnet Spot LDO/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x4b29b6df99d73920acdc56962050786ac950fcdfec6603094b63cd38cad5197e] -description = 'Mainnet Spot PUG/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x1bba49ea1eb64958a19b66c450e241f17151bc2e5ea81ed5e2793af45598b906] -description = 'Mainnet Spot ARB/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xba33c2cdb84b9ad941f5b76c74e2710cf35f6479730903e93715f73f2f5d44be] -description = 'Mainnet Spot WMATIC/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xb9a07515a5c239fcbfa3e25eaa829a03d46c4b52b9ab8ee6be471e9eb0e9ea31] -description = 'Mainnet Spot WMATIC/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xce1829d4942ed939580e72e66fd8be3502396fc840b6d12b2d676bdb86542363] -description = 'Mainnet Spot stINJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 10000000000000000 - -[0xa04adeed0f09ed45c73b344b520d05aa31eabe2f469dcbb02a021e0d9d098715] -description = 'Mainnet Spot ORAI/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xe8fe754e16233754e2811c36aca89992e35951cfd61376f1cbdc44be6ac8d3fb] -description = 'Mainnet Spot NEOK/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x2d8b2a2bef3782b988e16a8d718ea433d6dfebbb3b932975ca7913589cb408b5] -description = 'Mainnet Spot KAVA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xbf94d932d1463959badee52ffbeb2eeeeeda750e655493e909ced540c375a277] -description = 'Mainnet Spot USDTkv/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x35fd4fa9291ea68ce5eef6e0ea8567c7744c1891c2059ef08580ba2e7a31f101] -description = 'Mainnet Spot TIA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x21f3eed62ddc64458129c0dcbff32b3f54c92084db787eb5cf7c20e69a1de033] -description = 'Mainnet Spot TALIS/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0xf09dd242aea343afd7b6644151bb00d1b8770d842881009bea867658602b6bf0] -description = 'Mainnet Spot TALIS/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x6922cf4383294c673971dd06aa4ae5ef47f65cb4f1ec1c2af4271c5e5ca67486] -description = 'Mainnet Spot KUJI/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xa6ec1de114a5ffa85b6b235144383ce51028a1c0c2dee7db5ff8bf14d5ca0d49] -description = 'Mainnet Spot PYTH/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x75f6a79b552dac417df219ab384be19cb13b53dec7cf512d73a965aee8bc83af] -description = 'Mainnet Spot USDY/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x689ea50a30b0aeaf162e57100fefe5348a00099774f1c1ebcd90c4b480fda46a] -description = 'Mainnet Spot WHALE/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0xac938722067b1dfdfbf346d2434573fb26cb090d309b19af17df2c6827ceb32c] -description = 'Mainnet Spot SOL/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x2d3b8d8833dda54a717adea9119134556848105fd6028e9a4a526e4e5a122a57] -description = 'Mainnet Spot KIRA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0xdf9317eac1739a23bc385e264afde5d480c0b3d2322660b5efd206071d4e70b7] -description = 'Mainnet Spot NINJA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x4bb3426a2d7ba80c244ef7eecfd7c4fd177d78e63ff40ba6235b1ae471e23cdb] -description = 'Mainnet Spot KATANA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0x23983c260fc8a6627befa50cfc0374feef834dc1dc90835238c8559cc073e08f] -description = 'Mainnet Spot BRETT/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x6de141d12691dd13fffcc4e3ceeb09191ff445e1f10dfbecedc63a1e365fb6cd] -description = 'Mainnet Spot ZIG/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000000000000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x02b56c5e6038f0dd795efb521718b33412126971608750538409f4b81ab5da2f] -description = 'Mainnet Spot nINJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 10000000000000000 - -[0xb6c24e9a586a50062f2fac059ddd79f8b0cf1c101e263f4b2c7484b0e20d2899] -description = 'Mainnet Spot GINGER/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0000000001 -min_quantity_tick_size = 10000000000 -min_display_quantity_tick_size = 10000 -min_notional = 10000000000000000 - -[0x9b13c89f8f10386b61dd3a58aae56d5c7995133534ed65ac9835bb8d54890961] -description = 'Mainnet Spot SNOWY/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0xb3f38c081a1817bb0fc717bf869e93f5557c10851db4e15922e1d9d2297bd802] -description = 'Mainnet Spot AUTISM/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0xd0ba680312852ffb0709446fff518e6c4d798fb70cfd2699aba3717a2517cfd5] -description = 'Mainnet Spot APP/INJ' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000000000000000 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0x05288e393771f09c923d1189e4265b7c2646b6699f08971fd2adf0bfd4b1ce7a] -description = 'Mainnet Spot APP/INJ ' -base = 18 -quote = 18 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000000000000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0xe6dd9895b169e2ca0087fcb8e8013805d06c3ed8ffc01ccaa31c710eef14a984] -description = 'Mainnet Spot DOJO/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 10000000000000000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x0a1366c8b05658c0ccca6064e4b20aacd5ad350c02debd6ec0f4dc9178145d14] -description = 'Mainnet Spot GYEN/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 100 -min_notional = 1000000 - -[0x9c8a91a894f773792b1e8d0b6a8224a6b748753738e9945020ee566266f817be] -description = 'Mainnet Spot USDCnb/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x9c42d763ba5135809ac4684b02082e9c880d69f6b96d258fe4c172396e9af7be] -description = 'Mainnet Spot ANDR/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 10000000000000000 - -[0x1b1e062b3306f26ae3af3c354a10c1cf38b00dcb42917f038ba3fc14978b1dd8] -description = 'Mainnet Spot hINJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 10000000000000000 - -[0x959c9401a557ac090fff3ec11db5a1a9832e51a97a41b722d2496bb3cb0b2f72] -description = 'Mainnet Spot ANDR/INJ' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x697457537bc2af5ff652bc0616fe23537437a570d0e4d91566f03af279e095d5] -description = 'Mainnet Spot PHUC/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0x42edf70cc37e155e9b9f178e04e18999bc8c404bd7b638cc4cbf41da8ef45a21] -description = 'Mainnet Spot QUNT/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 100 -min_notional = 10000000000000000 - -[0x586409ac5f6d6e90a81d2585b9a8e76de0b4898d5f2c047d0bc025a036489ba1] -description = 'Mainnet Spot WHALE/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0x1af8fa374392dc1bd6331f38f0caa424a39b05dd9dfdc7a2a537f6f62bde50fe] -description = 'Mainnet Spot USDe/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xc8fafa1fcab27e16da20e98b4dc9dda45320418c27db80663b21edac72f3b597] -description = 'Mainnet Spot HDRO/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0xb965ebede42e67af153929339040e650d5c2af26d6aa43382c110d943c627b0a] -description = 'Mainnet Spot PYTH/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 10000000000000000 - -[0x25b545439f8e072856270d4b5ca94764521c4111dd9a2bbb5fbc96d2ab280f13] -description = 'Mainnet Spot PYTH/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 10000000000000000 - -[0xac10c83bde3283373c8859f8e5a165f0c5adaab8dbe3e477e904bfc98a3a320d] -description = 'Mainnet Spot BOME/USDT' -base = 6 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 10000 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xcf38a5187b543552160e0af476b252c3dcac08fa4134866ac663afaf13f65b75] -description = 'Mainnet Spot INJA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100000000000000 -min_display_price_tick_size = 100 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 10000000000000000 - -[0xbfe7d87d8cc189488fc800bfddadea0d8608e153aa588d7705ba9ab4da205de4] -description = 'Mainnet Spot KOGA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 10 -min_display_quantity_tick_size = 0.00001 -min_notional = 10000000000000000 - -[0x2ebaa13a803bd841fc74905e4cf20afb5573c319e50b66865dce11a4971bc189] -description = 'Mainnet Spot NWIF/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 10 -min_display_quantity_tick_size = 0.00001 -min_notional = 10000000000000000 - -[0xde63ad70e7061cea3e703f01915ba8d049c33d3ce7e717ff7ba1086d9e58704c] -description = 'Mainnet Spot ASWC/USDT' -base = 6 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 1000 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xeb95ab0b5416266b1987f1d46bcd5f63addeac68bbf5a089c5ed02484c97b6a3] -description = 'Mainnet Spot LVN/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0x78fba545a32eb55db511db2066d8e44e5eb623ac4cff1ba4244d8b7e38989c68] -description = 'Mainnet Spot BUGS/USDT' -base = 6 -quote = 6 -min_price_tick_size = 10 -min_display_price_tick_size = 10 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 0.000001 -min_notional = 1000000 - -[0xb62dc3aaabd157ec3f9f16f6efe2eec3377b28e273d23de93f8b0bcf33c6058f] -description = 'Mainnet Spot NONJA/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 100 -min_notional = 10000000000000000 - -[0x85ccdb2b6022b0586da19a2de0a11ce9876621630778e28a5d534464cbfff238] -description = 'Mainnet Spot NONJA/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.00000001 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 100000000000000000000 -min_display_quantity_tick_size = 100 -min_notional = 10000000000000000 - -[0xd9089235d2c1b07261cbb2071f4f5a7f92fa1eca940e3cad88bb671c288a972f] -description = 'Mainnet Spot SOL/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x8cd25fdc0d7aad678eb998248f3d1771a2d27c964a7630e6ffa5406de7ea54c1] -description = 'Mainnet Spot WMATIC/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x1c2e5b1b4b1269ff893b4817a478fba6095a89a3e5ce0cccfcafa72b3941eeb6] -description = 'Mainnet Spot ARB/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xa6d9f8c4380755ea4e6744d0b18b7a81837466a8ee6d134cde47afbd9e67a0b6] -description = 'Mainnet Spot UICIDE/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000000000000 -min_display_price_tick_size = 10000 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 10000000000000000 - -[0x16e9013fa14529fb77885adf65d5703e5e0078af2e1150b6b95cda328de56b6d] -description = 'Mainnet Spot NONJAKTIF/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100000000000000000 -min_display_price_tick_size = 100000 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 0.000001 -min_notional = 10000000000000000 - -[0xd5ef157b855101a19da355aee155a66f3f2eea7baca787bd27597f5182246da4] -description = 'Mainnet Spot STRD/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 10000000000000000 - -[0x1f5d69fc3d063e2a130c29943a0c83c3e79c2ba897fe876fcd82c51ab2ea61de] -description = 'Mainnet Spot sUSDe/USDe' -base = 18 -quote = 18 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 100000000000000 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000000000000000 - -[0x6ad662364885b8a4c50edfc88deeef23338b2bd0c1e4dc9b680b054afc9b6b24] -description = 'Mainnet Spot ENA/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xb03ead807922111939d1b62121ae2956cf6f0a6b03dfdea8d9589c05b98f670f] -description = 'Mainnet Spot BONUS/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x35a83ec8948babe4c1b8fbbf1d93f61c754fedd3af4d222fe11ce2a294cd74fb] -description = 'Mainnet Spot W/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xcbc16bc2972144d166ef0c7d01328e2eafe22c8dc6368a9bd3f605cc6fe39e6e] -description = 'Mainnet Spot LEO/INJ' -base = 9 -quote = 18 -min_price_tick_size = 10 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 100000000000 -min_display_quantity_tick_size = 100 -min_notional = 10000000000000000 - -[0x315e5cd5ee24b3a1e1396679885b5e42bbe18045105d1662c6618430a131d117] -description = 'Mainnet Spot XIII/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 100 -min_notional = 10000000000000000 - -[0xd166688623206f9931307285678e9ff17cecd80a27d7b781dd88cecfba3b1839] -description = 'Mainnet Spot BLACK/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0x2be72879bb90ec8cbbd7510d0eed6a727f6c2690ce7f1397982453d552f9fe8f] -description = 'Mainnet Spot OMNI/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.00000000000001 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0xbd370d025c3693e8d658b44afe8434fa61cbc94178d0871bffd49e25773ef879] -description = 'Mainnet Spot ASG/INJ' -base = 8 -quote = 18 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.0000001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0xacb0dc21cddb15b686f36c3456f4223f701a2afa382006ef478d156439483b4d] -description = 'Mainnet Spot EZETH/WETH' -base = 18 -quote = 18 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 100000000000000 - -[0x960038a93b70a08f1694c4aa5c914afda329063191e65a5b698f9d0676a0abf9] -description = 'Mainnet Spot SAGA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x8fa7c77776eabffe4ce3dff488b2f310bec69cfc36aef007e3c41a8627889774] -description = 'Mainnet Spot SMELLY/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 10 -min_display_quantity_tick_size = 0.00001 -min_notional = 10000000000000000 - -[0x9b3fa54bef33fd216b84614cd8abc3e5cc134727a511cef37d366ecaf3e03a80] -description = 'Mainnet Spot MOTHER/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.0000001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0x04fead581cdf54c998023c0fe68a8181fd5621b4e38ee0a8e41d1fc97b7aed0a] -description = 'Mainnet Spot SPUUN/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0000000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 10000000000000000 - -[0x9bdb40c5b82ee8eb5cb7327d7afa3121099d5ecc36c089690bb8fee3638f0cd2] -description = 'Mainnet Spot GME/INJ' -base = 8 -quote = 18 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.0000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0xf1cd6fe6a4d2e918f0f05aa9fc5b6b968c287b7b065d6e1dec0fd07c8a3d257d] -description = 'Mainnet Spot NINJA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 1000000 -min_display_price_tick_size = 1000000 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 1000000 - -[0xed680640e95239c5104bbc7c5f6449009f47e325889c9a46b0116990f40041da] -description = 'Mainnet Spot NLT/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 10000000000000000 - -[0x71dc35acfd9fffe3f2995fdcd6f6abb3c2713e63824b2e45c39e8b4275ea931d] -description = 'Mainnet Spot PYUSD/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x5ec9425f042b12d991bee85bc9fb99d1539bf04310034aada640b1d69d3bab53] -description = 'Mainnet Spot USDi/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000000 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x0efc001ac745f6ac00ed92028313a18fdeb2f4b231e62517add87b7a3ec76825] -description = 'Mainnet Spot TEST/USDT' -base = 6 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 100 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 1000000 - -[0x2f1a3ba4c1a45fdf1cefa14625bce2ab9db25dfaf6c5a3816309ca3d4c4c318b] -description = 'Mainnet Spot TEST/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 10000000000000000 - -[0xd8c9c5764541b54b0c77305280e5aaa00f5ceda69dc5ae1b69634ac07c1581c7] -description = 'Mainnet Spot COKE/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.000000001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 10000000000000000 - -[0xc6b6d6627aeed8b9c29810163bed47d25c695d51a2aa8599fc5e39b2d88ef934] -description = 'Mainnet Spot SHROOM/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.000000001 -min_display_price_tick_size = 0.000000001 -min_quantity_tick_size = 100000000000 -min_display_quantity_tick_size = 0.0000001 -min_notional = 10000000000000000 - -[0xd75a48b4ef24c2355b0bb3c0829283c30619a9862360b5b9521ec5933da7a664] -description = 'Mainnet Spot IOTX/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000000000000000 -min_display_quantity_tick_size = 1 -min_notional = 10000000000000000 - -[0xb232d5bc92bd64cf01741bf01e831566bbd517540dbca8fb420f772f9807f977] -description = 'Mainnet Spot SNS/INJ' -base = 8 -quote = 18 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.0000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0xca8121ea57a4f7fd3e058fa1957ebb69b37d52792e49b0b43932f1b9c0e01f8b] -description = 'Mainnet Spot wUSDM/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x00cb369b060f29e218ddbd72a07af2f979052b0c2dfc24a2518686351e5d0238] -description = 'Mainnet Spot KATANA/USDT' -base = 6 -quote = 6 -min_price_tick_size = 1 -min_display_price_tick_size = 1 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.0000001 -min_notional = 1000000 - -[0xc9030edef611568ec9aa48228c92e30d398abf0eb289b5fee873b0f2f3a80295] -description = 'Mainnet Spot FET/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xd6518f94efd32d7129eea0780d256a714d41a1f02992f346342bd64dc26a7217] -description = 'Mainnet Spot GIGA/INJ' -base = 5 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.0000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 10 -min_notional = 10000000000000000 - -[0xd3de35e09147492a051f514f42adacd4b988268ec5c6e0cdac4cbde99ff808a2] -description = 'Mainnet Spot USDY/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x165b41ab4410c03514b4569b29dd3c4a829f6f11516a29cd31d6a53308cb4ed0] -description = 'Mainnet Spot TON/USDT' -base = 9 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000000 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x19d28519ddfb27fd81b05a402f4e7c306930909edfdb87f27b699d2696143f74] -description = 'Mainnet Spot PAIN/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.1 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x791f564a76ff634f13cd7afc4999418f7c9eb00636143cc9c52daa588f870744] -description = 'Mainnet Spot PAIN/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 10000000000000000 - -[0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce] -description = 'Mainnet Derivative BTC/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x54d4505adef6a5cef26bc403a33d595620ded4e15b9e2bc3dd489b714813366a] -description = 'Mainnet Derivative ETH/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x1c79dac019f73e4060494ab1b4fcba734350656d6fc4d474f6a238c13c6f9ced] -description = 'Mainnet Derivative BNB/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x9b9980167ecc3645ff1a5517886652d94a0825e54a77d2057cbbe3ebee015963] -description = 'Mainnet Derivative INJ/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xc559df216747fc11540e638646c384ad977617d6d8f0ea5ffdfc18d52e58ab01] -description = 'Mainnet Derivative ATOM/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x8c7fd5e6a7f49d840512a43d95389a78e60ebaf0cde1af86b26a785eb23b3be5] -description = 'Mainnet Derivative OSMO/UST PERP' -base = 0 -quote = 18 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.000000000000001 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000000000000000 - -[0xcf18525b53e54ad7d27477426ade06d69d8d56d2f3bf35fe5ce2ad9eb97c2fbc] -description = 'Mainnet Derivative OSMO/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x06c5a306492ddc2b8dc56969766959163287ed68a6b59baa2f42330dda0aebe0] -description = 'Mainnet Derivative SOL/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0xcd0c859a99f26bb3530e21890937ed77d20754aa7825a599c71710514fc125ef] -description = 'Mainnet Derivative 1MPEPE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x63bafbeee644b6606afb8476dd378fba35d516c7081d6045145790af963545aa] -description = 'Mainnet Derivative XRP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x1afa358349b140e49441b6e68529578c7d2f27f06e18ef874f428457c0aaeb8b] -description = 'Mainnet Derivative SEI/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x4fe7aff4dd27be7cbb924336e7fe2d160387bb1750811cf165ce58d4c612aebb] -description = 'Mainnet Derivative AXL/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x887beca72224f88fb678a13a1ae91d39c53a05459fd37ef55005eb68f745d46d] -description = 'Mainnet Derivative PYTH/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x9066bfa1bd97685e0df4e22a104f510fb867fde7f74a52f3341c7f5f56eb889c] -description = 'Mainnet Derivative TIA/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x7a70d95e24ba42b99a30121e6a4ff0d6161847d5b86cbfc3d4b3a81d8e190a70] -description = 'Mainnet Derivative ZRO/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x03841e74624fd885d1ee28453f921d18c211e78a0d7646c792c7903054eb152c] -description = 'Mainnet Derivative JUP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x30a1463cfb4c393c80e257ab93118cecd73c1e632dc4d2d31c12a51bc0a70bd7] -description = 'Mainnet Derivative AVAX/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x18b2ca44b3d20a3b87c87d3765669b09b73b5e900693896c08394c70e79ab1e7] -description = 'Mainnet Derivative SUI/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x1a6d3a59f45904e0a4a2eed269fc2f552e7e407ac90aaaeb602c31b017573f88] -description = 'Mainnet Derivative WIF/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x48fcecd66ebabbf5a331178ec693b261dfae66ddfe6f552d7446744c6e78046c] -description = 'Mainnet Derivative OP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x6ddf0b8fbbd888981aafdae9fc967a12c6777aac4dd100a8257b8755c0c4b7d5] -description = 'Mainnet Derivative ARB/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xf1bc70398e9b469db459f3153433c6bd1253bd02377248ee29bd346a218e6243] -description = 'Mainnet Derivative W/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x03c8da1f6aaf8aca2be26b0f4d6b89d475835c7812a1dcdb19af7dec1c6b7f60] -description = 'Mainnet Derivative LINK/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x7980993e508e0efc1c2634c153a1ef90f517b74351d6406221c77c04ec4799fe] -description = 'Mainnet Derivative DOGE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10 -min_display_quantity_tick_size = 10 -min_notional = 1000000 - -[0x4d42425fc3ccd6b61b8c4ad61134ab3cf21bdae1b665317eff671cfab79f4387] -description = 'Mainnet Derivative OMNI/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x0160a0c8ecbf5716465b9fc22bceeedf6e92dcdc688e823bbe1af3b22a84e5b5] -description = 'Mainnet Derivative XAU/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xedc48ec071136eeb858b11ba50ba87c96e113400e29670fecc0a18d588238052] -description = 'Mainnet Derivative XAG/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 1000000 - -[0x3c5bba656074e6e84965dc7d99a218f6f514066e6ddc5046acaff59105bb6bf5] -description = 'Mainnet Derivative EUR/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x5c0de20c02afe5dcc1c3c841e33bfbaa1144d8900611066141ad584eeaefbd2f] -description = 'Mainnet Derivative GBP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x0d4c722badb032f14dfc07355258a4bcbd354cbc5d79cb5b69ddd52b1eb2f709] -description = 'Mainnet Derivative BTC/wUSDM Perp' -base = 0 -quote = 18 -min_price_tick_size = 1000000000000000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x639fb43887ededd06e28f3c0d0dec62caca5c4e1cac31765f19af07c4ad999c2] -description = 'Mainnet Derivative BUIDL/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0x84d6fad5c0450811f8c163560e90ba7f621506371ec17fb07885dda2a6f435ed] -description = 'Mainnet Derivative AAVE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x142d0fa4506b5f404bcfdd54567797ff6767dce07afaedc90d379665f09f0520] -description = 'Mainnet Derivative MKR/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 1000000 - -[0xc4068b76801bf8988b5372c64d611ce2a477f85512e5ec55270c426176bc73e2] -description = 'Mainnet Derivative TON/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0x8157dd4bf502fc688aaa722c725124da3f411d7a92c569d55f34826f9ee040a9] -description = 'Mainnet Derivative POPCAT/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x4be4791338907626dd77a806c6e4dff76d1428768080fe232f32ef990c8d064f] -description = 'Mainnet Derivative FTM/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0xf58079e67f845907e93ab9767126a226a0759c23bee1bfc880fa8fba98f25872] -description = 'Mainnet Derivative CRV/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 1000000 - -[0x2d7092545081b81ba33bf817b302f9609254f15f4354016631aec3bb39461f99] -description = 'Mainnet Derivative PEPE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.000000001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 100000 -min_notional = 1000000 - -[0x5aeb66848398815d1c8485135dc539355028fb3c32d662af9eeecfd47050a1a6] -description = 'Mainnet Derivative APT/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[0xa51b0df7a1ac2bea408fdc4f84f3d7060b62f976ab659b329b00065e5c8f2c37] -description = 'Mainnet Derivative TAO/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 1000000 - -[0x9bb2341e12d7357cd6865b69e491bab5ac8b087df50906a53ffa8fc3ede59f5f] -description = 'Mainnet Derivative STX/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 1000000 - -[ tether] -peggy_denom = inj1wpeh7cm7s0mj7m3x6vrf5hvxfx2xusz5l27evk -decimals = 18 - -[$ALIEN] -peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien -decimals = 6 - -[$AOI] -peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi -decimals = 6 - -[$Babykira] -peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira -decimals = 6 - -[$NINJA] -peggy_denom = inj1yngv6had7vm443k220q9ttg0sc4zkpdwp70fmq -decimals = 6 - -[$TunaSniper] -peggy_denom = inj1nmzj7jartqsex022j3kkkszeayypqkzl5vpe59 -decimals = 8 - -[$WIF] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl -decimals = 8 - -[$wifs] -peggy_denom = factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoes -decimals = 6 - -[...] -peggy_denom = factory/inj1jj7z2f69374z6lmph44ztnxghgczyylqgc7tzw/dot -decimals = 6 - -[0XGNSS] -peggy_denom = inj1cfv8rrcete7vengcken0mjqt8q75vpcc0j0my5 -decimals = 8 - -[1INCH] -peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 -decimals = 18 - -[2024MEME] -peggy_denom = inj1m2w8aenm3365w8t4x7jvpassk9ju7xq3snahhh -decimals = 8 - -[4] -peggy_denom = ibc/F9823EBB2D7E55C5998A51A6AC1572451AB81CE1421E9AEF841902D78EA7B5AD -decimals = 0 - -[79228162514264337593543950342] -peggy_denom = ibc/80A315889AFA247F37386C42CC38EAAF25B8C7B8DA8FC5EC5D7EEC72DCE9B3D0 -decimals = 0 - -[AAAA] -peggy_denom = inj1wlrndkkyj90jsp9mness2kqp5x0huzuhuhx28d -decimals = 18 - -[AAI] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/aai -decimals = 6 - -[AAVE] -peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 -decimals = 18 - -[ABC] -peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/ABC -decimals = 6 - -[ACANTO] -peggy_denom = ibc/5F56E1BB4752EDC802A0B56E7E71C6FFF83B50A65DBE3B830EE277CE5FB38783 -decimals = 0 - -[ADA] -peggy_denom = inj1vla438tlw69h93crmq3wq9l79d6cqwecqef3ps -decimals = 18 - -[ADO] -peggy_denom = ibc/CF0C070562EC0816B09DDD9518328DCCFBE6C4388907EFF883FD4BE4E510005E -decimals = 6 - -[ADOLF] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/adolf -decimals = 6 - -[AEVMOS] -peggy_denom = ibc/1BA3077202A1D84737F6E4F2F8E1214769B000AEBC3F31B9DA49B4E93734FE31 -decimals = 0 - -[AGIX] -peggy_denom = inj163fdg2e00gfdx9mjvarlgljuzt4guvx8ghhwml -decimals = 8 - -[AI] -peggy_denom = inj1sw0zn2vfy6wnfg0rht7r80tq3jq4ukjafjud7x -decimals = 8 - -[AININJA] -peggy_denom = inj1vun8dfgm6rr9xv40p4tpmd8lcc9cvt3384dv7w -decimals = 6 - -[AINJ] -peggy_denom = inj10k45sksxulzp7avvmt2fud25cmywk6u75pwgd2 -decimals = 8 - -[AJNIN] -peggy_denom = inj1msvvtt2e6rshp0fyqlp7gzceffzgymvwjucwyh -decimals = 18 - -[AK47] -peggy_denom = factory/inj1y207pve646dtac77v7qehw85heuy92c03t7t07/ak47 -decimals = 6 - -[AKITA] -peggy_denom = factory/inj1z0yv9ljw68eh4pec2r790jw8yal4dt5wnu4wuk/akita -decimals = 6 - -[ALASKA] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4 -decimals = 18 - -[ALCHECN] -peggy_denom = inj1fxmws9tyrfs7ewgkh0ktae3f5pqffd4uudygze -decimals = 6 - -[ALE] -peggy_denom = inj1yq0394aplhz94nrthglzsx2c29e8spyrq6u8ah -decimals = 18 - -[ALEM] -peggy_denom = ibc/FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4 -decimals = 6 - -[ALFAROMEO] -peggy_denom = inj1jvtzkr6cwd4dzeqq4q74g2qj3gp2gvmuar5c0t -decimals = 6 - -[ALIEN] -peggy_denom = factory/inj175fuhj3rlyttt255fsc6fwyteealzt67szpvan/ALIEN -decimals = 6 - -[ALIENWARE] -peggy_denom = inj128hmvp03navfcad7fjdsdnjdaxsp8q8z9av3th -decimals = 6 - -[ALIGATOR] -peggy_denom = inj1t6uqhmlgpju7265aelawdkvn3xqnq3jv8j60l7 -decimals = 6 - -[ALPHA] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u -decimals = 8 - -[ALPHANET] -peggy_denom = inj135fkkvwr9neffh40pgg24as5mwwuuku33n8zzw -decimals = 8 - -[AMG] -peggy_denom = ibc/D683437F71D66CF4EF32BC2F26CE7C3922A73AA78AD2B3253EEADA6E48B04BD1 -decimals = 6 - -[AMM] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/AMM -decimals = 6 - -[AMOGUS] -peggy_denom = factory/inj1a47ddtzh8le8ukznc9v3dvqs5w5anwjjvy8lqj/amogus -decimals = 6 - -[ANALOS] -peggy_denom = factory/inj1g8yvnh0lzxc06qe2n4qux5cqlz8h6gnpvaxzus/analos -decimals = 6 - -[ANBU] -peggy_denom = factory/inj1aqnupu0z86nyttmpejmgu57vx22wmuz9fdg7ps/ANBU -decimals = 6 - -[ANDR] -peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E -decimals = 6 - -[ANDR-INJ LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj19ujrgrvsm5zn6d389lua74y6pyldxzv5gdrln9 -decimals = 18 - -[ANDRE] -peggy_denom = inj1qtqd73kkp9jdm7tzv3vrjn9038e6lsk929fel8 -decimals = 8 - -[ANDY] -peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/andy -decimals = 6 - -[ANIME] -peggy_denom = inj1mas82tve60sh3tkh879chgjkeaggxpeydwkl2n -decimals = 18 - -[ANK] -peggy_denom = inj16lxeq4xcdefptg39p9x78z5hkn0849z9z7xkyt -decimals = 18 - -[ANONS] -peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/ANONS -decimals = 6 - -[AOT] -peggy_denom = factory/inj1yjeq7tz86a8su0asaxckpa3a9rslfp97vpq3zq/AOT -decimals = 6 - -[APC] -peggy_denom = inj150382m6ah6lg3znprdrsggx38xl47fs4rmzy3m -decimals = 18 - -[APE] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 -decimals = 18 - -[APEINJ] -peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj -decimals = 6 - -[APLANQ] -peggy_denom = ibc/ABC34F1F9C95DAB3AD3DAFD5228FAB5CDEA67B6BD126BC545D6D25B15E57F527 -decimals = 0 - -[APOLLO] -peggy_denom = ibc/1D10FF873E3C5EC7263A7658CB116F9535EC0794185A8153F2DD662E0FA08CE5 -decimals = 6 - -[APP] -peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 -decimals = 18 - -[APPLE] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/APPLE -decimals = 6 - -[APSO] -peggy_denom = inj1sqsthjm8fpqc7seaa6lj08k7ja43jsd70rgy09 -decimals = 6 - -[APT] -peggy_denom = apt -decimals = 8 - -[APTDAO ] -peggy_denom = inj1mrltq7kh35xjkdzvul9ky077khsa5qatc0ylxj -decimals = 6 - -[AQLA] -peggy_denom = ibc/46B490B10E114ED9CE18FA1C92394F78CAA8A907EC72D66FF881E3B5EDC5E327 -decimals = 6 - -[ARAGORN] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/aragorn -decimals = 6 - -[ARB] -peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 -decimals = 8 - -[ARBlegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd -decimals = 8 - -[ARCH] -peggy_denom = ibc/9C6E75FE14DF8959B7CC6E77398DF825B9815C753BB49D2860E303EA2FD803DD -decimals = 18 - -[ARCHER] -peggy_denom = inj1ype9ps9ep2qukhuuyf4s2emr7qnexkcfa09p34 -decimals = 6 - -[ARIZO] -peggy_denom = inj1mdgw6dnw7hda2lancr0zgy6retrd2s5m253qud -decimals = 6 - -[ARK] -peggy_denom = ibc/1963508E2F894A07440E4E643A6B6D5A32985B60FE4928A18C787FA28FC6880A -decimals = 6 - -[ARKI] -peggy_denom = inj1zhnaq7aunhzp0q6g5nrac9dxe5dg0ws0sqzftv -decimals = 18 - -[ARMANI] -peggy_denom = ibc/0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC -decimals = 6 - -[ARTEMIS] -peggy_denom = inj1yt49wv3up03hnlsfd7yh6dqfdxwxayrk6as6al -decimals = 8 - -[ARTINJ] -peggy_denom = inj1qgj0lnaq9rxcstjaevvd4q43uy4dk77e6mrza9 -decimals = 6 - -[ARVI] -peggy_denom = inj16ff6zvsaay89w7e5ukvz83f6f9my98s20z5ea3 -decimals = 18 - -[ARYAN] -peggy_denom = inj16z7ja300985vuvkt975zyvtccu80xmzcfr4upt -decimals = 18 - -[ASG] -peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 -decimals = 8 - -[ASH] -peggy_denom = factory/inj1uecmky6hkcexz86hqgrl5p5krg8kl4gfldjkrp/ASH -decimals = 6 - -[ASI] -peggy_denom = inj1wgd5c8l27w8sac4tdfcxl2zyu5cfurtuxdvfx9 -decimals = 18 - -[ASS] -peggy_denom = inj1fj7z77awl6srtmcuux3xgq995uempgx5hethh3 -decimals = 18 - -[ASSYN] -peggy_denom = factory/inj1qzn0ys7rht689z4p6pq99u6kc92jnkqyj02cur/ASSYN -decimals = 6 - -[ASTR] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x -decimals = 18 - -[ASTRO] -peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 -decimals = 6 - -[ASTROBOT] -peggy_denom = inj153k5xjpqx39jm06gcxvjq5sxl8f7j79n72q9pz -decimals = 18 - -[ASTROGEMS] -peggy_denom = inj1eqzdmkdr2l72y75m7hx3rwnfcugzu0hhw7l76l -decimals = 8 - -[ASTROINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn -decimals = 8 - -[ASTROLAND] -peggy_denom = inj16q7u3mzp3qmm6vf5a9jfzp46rs2dj68cuktzyw -decimals = 8 - -[ASTROLOGY] -peggy_denom = inj1u9th8dxhyrkz3tr2h5s6z2yap2s6e6955jk4yf -decimals = 8 - -[ASTROPAD] -peggy_denom = inj1tvcarn0xz9p9rxrgev5a2qjmrtqtnl4xtu5vsu -decimals = 8 - -[ASTROPEPE] -peggy_denom = ibc/03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9 -decimals = 6 - -[ASTROSOL] -peggy_denom = inj12vy3zzany7gtl9l9hdkzgvvr597r2ta48tvylj -decimals = 8 - -[ASTROXMAS] -peggy_denom = inj19q50d6sgc3sv2hcvlfalc5kf2fc576v4nga849 -decimals = 8 - -[ASUKA] -peggy_denom = inj1c64fwq7xexhh58spf2eer85yz3uvv3y659j5dd -decimals = 18 - -[ASWC] -peggy_denom = factory/inj10emnhmzncp27szh758nc7tvl3ph9wfxgej5u5v/ASWC -decimals = 6 - -[ATOM] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 -decimals = 6 - -[ATOM-BOOST-LP] -peggy_denom = ibc/2519F9B056D0B3866BBBC6FDC21A8CA3615E67B21B87AAFE739C23D1E24F20F9 -decimals = 6 - -[ATOM-LUNA-LP] -peggy_denom = ibc/0ED853D2B77215F953F65364EF1CA7D8A2BD7B7E3009196BBA18E884FE3D3576 -decimals = 6 - -[ATOM-USDC-LP] -peggy_denom = ibc/CFEE8590A2AE7CD37A2AEAD71132758956E95E9F306059E3145E244BF2E84537 -decimals = 6 - -[ATOM-YIELD-LP] -peggy_denom = ibc/47BE05F9949162E2CD5E116BABBB20340859D83F2350434CC68C928820DC86F7 -decimals = 6 - -[ATOM1KLFG] -peggy_denom = ibc/2061C894621F0F53F6FEAE9ABD3841F66D27F0D7368CC67864508BDE6D8C4522 -decimals = 6 - -[AUTISM] -peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism -decimals = 6 - -[AUTO] -peggy_denom = ibc/C4186992BA567DF4F28BF11D258D6158F0D1D4C7B9CF53E1D29DF8A07B669ADA -decimals = 6 - -[AUUU] -peggy_denom = ibc/4CEF2F778CDA8306B6DE18A3A4C4450BEBC84F27FC49F91F3617A37203FE84B2 -decimals = 6 - -[AUUU-BOOST-LP] -peggy_denom = ibc/91340D27D271DD498072CEF92E8160204FD4FF74417BB90C020792063806CB2D -decimals = 6 - -[AUUU-USDC-LP] -peggy_denom = ibc/4476B2810337345E26557F12186479960D47B33B5AC74E9867EB4553E65A045E -decimals = 6 - -[AUUU-YIELD-LP] -peggy_denom = ibc/0D2B0139B7B937177ADE0A0CF3AB204763FD7F45B34B08285654427ABA51C4D1 -decimals = 6 - -[AVA1.1.6.95712B] -peggy_denom = ibc/386E9145A5C25DA49ED8F326ABC8776B343A3094A661121D265D5963080F652A -decimals = 0 - -[AVAX] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 -decimals = 8 - -[AXL] -peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 -decimals = 6 - -[AXS] -peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b -decimals = 18 - -[AZUKI] -peggy_denom = inj1l5qrquc6kun08asp6dt50zgcxes9ntazyvs9eu -decimals = 8 - -[Aave] -peggy_denom = ibc/49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C -decimals = 18 - -[Alaskan Malamute] -peggy_denom = inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4 -decimals = 18 - -[Alien Token] -peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/aoi -decimals = 6 - -[Alloyed TRX] -peggy_denom = ibc/92B5B9F59D2D3686B43204201B3948004070BA21DC8E0C28DC017D1AB86080D5 -decimals = 6 - -[Alpha Coin] -peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u -decimals = 8 - -[Alpha Pro Club] -peggy_denom = inj1q2u8r40uh0ykqrjwszppz6yj2nvst4xvfvks29 -decimals = 8 - -[ApeCoin] -peggy_denom = ibc/8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27 -decimals = 18 - -[Apots Doge ] -peggy_denom = inj1dgnrks2s53jd5a0qsuhyvryhk4s03f5mxv9khy -decimals = 6 - -[April Fool's Day] -peggy_denom = inj1m9vaf9rm6qfjtq4ymupefkxjtv7vake0z4fc35 -decimals = 6 - -[Aptos Coin (Wormhole)] -peggy_denom = ibc/D807D81AB6C2983C9DCC2E1268051C4195405A030E1999549C562BCB7E1251A5 -decimals = 8 - -[Arbitrum] -peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 -decimals = 18 - -[Arbitrum (legacy)] -peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd -decimals = 8 - -[Arbitrum axlETH] -peggy_denom = ibc/A124994412FAC16975DF2DA42D7AFDB538A1CFCE0E40FB19620BADF6292B0A62 -decimals = 18 - -[Artro] -peggy_denom = factory/inj13r3azv5009e8w3xql5g0tuxug974ps6eed0czz/Artro -decimals = 6 - -[Astar] -peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x -decimals = 18 - -[Astro-Injective] -peggy_denom = inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn -decimals = 8 - -[AstroGems] -peggy_denom = inj122y9wxxmpyu2rj5ju30uwgdvk9sj020z2zt7rv -decimals = 8 - -[Astrophile] -peggy_denom = inj1y07h8hugnqnqvrpj9kmjpsva7pj4yjwjjkd0u4 -decimals = 18 - -[Axelar] -peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc -decimals = 6 - -[Axie Infinity Shard] -peggy_denom = ibc/EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB -decimals = 18 - -[BABY] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BABY -decimals = 6 - -[BABY GINGER] -peggy_denom = factory/inj15zruc9fw2qw9sc3pvlup5qmmqsk5pcmck7ylhw/BABYGINGER -decimals = 6 - -[BABY NINJA] -peggy_denom = factory/inj1hs5chngjfhjwc4fsajyr50qfu8tjqsqrj9rf29/baby-ninja -decimals = 6 - -[BABYDEK] -peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/BABYDEK -decimals = 6 - -[BABYDGNZ] -peggy_denom = inj1tyvchyp04yscelq30q6vzngn9wvmjw446sw786 -decimals = 6 - -[BABYDOGE] -peggy_denom = inj1nk2x5ll6guwt84aagnw82e7ajmlwde6w2zmpdw -decimals = 6 - -[BABYGINGER] -peggy_denom = inj17uyp6dz3uyq40ckkzlgrze2k25zhgvdqa3yh0v -decimals = 6 - -[BABYHACHI] -peggy_denom = factory/inj1hjfm3z53dj4ct5nxef5ghn8hul0y53u7ytv8st/babyhachi -decimals = 6 - -[BABYINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap -decimals = 8 - -[BABYIPEPE] -peggy_denom = factory/inj14u2wghxjswct5uznt40kre5ct7a477m2ma5hsm/babyipepe -decimals = 6 - -[BABYKIRA] -peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/BABYKIRA -decimals = 6 - -[BABYKISHU] -peggy_denom = factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babykishu -decimals = 6 - -[BABYNINJA] -peggy_denom = factory/inj12lv4gm863c4pj0utr7zgzp46d6p86krp8stqgp/BABYNINJA -decimals = 6 - -[BABYPANDA] -peggy_denom = factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babypanda -decimals = 6 - -[BABYPEPE] -peggy_denom = factory/inj1un9z8767u2r8snaqqcysnm9skxf36dspqx86sy/babypepe -decimals = 6 - -[BABYQUNT] -peggy_denom = factory/inj1xdm6zdjcwu4vy32yp2g2dazwg2ug50w2k7sy9p/BABYQUNT -decimals = 6 - -[BABYROLL] -peggy_denom = inj16rvlt87pmpntkyv3x4zfvgmyxt8ejj9mpcc72m -decimals = 18 - -[BABYSHROOM] -peggy_denom = inj1dch98v88yhksd8j4wsypdua0gk3d9zdmsj7k59 -decimals = 6 - -[BABYSPUUN] -peggy_denom = inj1n73ty9gxej3xk7c0hhktjdq3ppsekwjnhq98p5 -decimals = 6 - -[BAD] -peggy_denom = ibc/C04478BE3CAA4A14EAF4A47967945E92ED2C39E02146E1577991FC5243E974BB -decimals = 6 - -[BADKID] -peggy_denom = ibc/A0C5AD197FECAF6636F589071338DC7ECD6B0809CD3A5AB131EAAA5395E7E5E8 -decimals = 6 - -[BAG] -peggy_denom = inj13dcqczqyynw08m0tds50e0z2dsynf48g4uafac -decimals = 18 - -[BAJE] -peggy_denom = factory/inj10yymeqd0hydqmaq0gn6k6s8795svjq7gt5tmsf/BAJE -decimals = 6 - -[BALLOON] -peggy_denom = inj17p4x63h8gpfd7f6whmmcah6vq6wzzmejvkpqms -decimals = 18 - -[BAMBOO] -peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo -decimals = 6 - -[BAND] -peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 -decimals = 18 - -[BAPE] -peggy_denom = factory/inj16mnhqpzuj4s4ermuh76uffaq3r6rf8dw5v9rm3/BAPE -decimals = 6 - -[BAR] -peggy_denom = factory/inj1j4qcyfayj64nyzl4lhlacuz62zak5uz5ngc576/BAR -decimals = 6 - -[BARCA] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/barcelona -decimals = 6 - -[BARRY] -peggy_denom = inj1ykpcvay9rty363wtxr9749qgnnj3rlp94r302y -decimals = 18 - -[BASE] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BASE -decimals = 6 - -[BASECRO] -peggy_denom = ibc/AA732299217B2A517BDB31DE27E52FBB7C0B31A51479389908D36469BCEDD9A1 -decimals = 0 - -[BASTARD] -peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/BASTARD -decimals = 6 - -[BAT] -peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF -decimals = 18 - -[BATMAN] -peggy_denom = inj158jjagrr499yfc6t5kd9c989tx6f7ukrulj280 -decimals = 6 - -[BAYC] -peggy_denom = bayc -decimals = 18 - -[BCA] -peggy_denom = factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCA -decimals = 6 - -[BCAT] -peggy_denom = factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCAT -decimals = 6 - -[BCC] -peggy_denom = factory/inj1hr4rj6k72emjh9u7l6zg58c0n0daezz68060aq/BCC -decimals = 6 - -[BCT] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/bct -decimals = 6 - -[BCUBE] -peggy_denom = peggy0x93C9175E26F57d2888c7Df8B470C9eeA5C0b0A93 -decimals = 18 - -[BEANS] -peggy_denom = inj1j7e95jmqaqgazje8kvuzp6kh2j2pr6n6ffvuq5 -decimals = 8 - -[BEAR] -peggy_denom = factory/inj1jhwwydrfxe33r7ayy7nnrvped84njx97mma56r/BEAR -decimals = 6 - -[BEAST] -peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be -decimals = 6 - -[BECKHAM] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/beckham -decimals = 6 - -[BEEN] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/been -decimals = 6 - -[BELL] -peggy_denom = factory/inj1ht2x2pyj42y4y48tj9n5029w8j9f4sxu0zkwq4/BELL -decimals = 6 - -[BENANCE] -peggy_denom = inj1292223n3vfhrxndvlzsvrrlkkyt7jyeydf77h0 -decimals = 6 - -[BENJAMIN] -peggy_denom = inj1cr970pgvudvgfva60jtxnztgsu5ngm7e80e7vd -decimals = 18 - -[BERB] -peggy_denom = inj1rlyw9tl7e5u9haunh39mh87clvmww5p39dd9kv -decimals = 18 - -[BERLIN] -peggy_denom = inj1atu2677agwrskzxj4a5dn8lq43nhmeyjz5tsfq -decimals = 18 - -[BERNESE] -peggy_denom = ibc/28E915262E40A4CA526D5BFB0BAF67A1C024F8318B779C3379147A6C26D11EA8 -decimals = 6 - -[BICHO] -peggy_denom = inj1hd42hz95w6w3rt5pkeuj783a5mtx8hx28p2eg9 -decimals = 18 - -[BIDEN] -peggy_denom = inj1d2ymlnpvqny9x2qfqykzp8geq3gmg9qrm3qwhe -decimals = 6 - -[BIGSHROOM] -peggy_denom = inj1kld2dd6xa5rs98v7afv3l57m6s30hyj8dcuhh4 -decimals = 6 - -[BIN] -peggy_denom = factory/inj1ax459aj3gkph6z0sxaddk6htzlshqlp5mfwqvx/catinbin -decimals = 6 - -[BINJ] -peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/bINJ -decimals = 18 - -[BINJANS] -peggy_denom = factory/inj1aj47a2vflavw92yyhn7rpa32f0dazf5cfj59v8/binjans -decimals = 6 - -[BINJE] -peggy_denom = inj10dysh3p4q8nh5zzhsq5j84de5pq6dxahnplt2f -decimals = 6 - -[BIRB] -peggy_denom = inj136zssf58vsk9uge7ulgpw9umerzcuu0kxdu5dj -decimals = 6 - -[BITCOIN] -peggy_denom = factory/inj1aj4yhftluexp75mlfmsm7sfjemrtt3rjkg3q3h/BITCOIN -decimals = 6 - -[BITS] -peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits -decimals = 6 - -[BITZ] -peggy_denom = ibc/01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA -decimals = 6 - -[BJNO] -peggy_denom = inj1jlugmrq0h5l5ndndcq0gyav3flwmulsmdsfh58 -decimals = 18 - -[BLACK] -peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black -decimals = 6 - -[BLACK PANTHER] -peggy_denom = inj12tkaz9e540zszf5vtlxc0aksywu9rejnwxmv3n -decimals = 18 - -[BLACKHOLE PROTOCOL] -peggy_denom = peggy0xd714d91A169127e11D8FAb3665d72E8b7ef9Dbe2 -decimals = 18 - -[BLANK] -peggy_denom = factory/inj17aqq3208uujtvqmlm5xdve92tcy7ne3as2j7q0/BLANK -decimals = 18 - -[BLD] -peggy_denom = ibc/B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F -decimals = 6 - -[BLEND] -peggy_denom = ibc/45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84 -decimals = 6 - -[BLISS] -peggy_denom = factory/inj15tz959pa5mlghhku2vm5sq45jpp4s0yf23mk6d/BLISS -decimals = 6 - -[BLOCKTOWER] -peggy_denom = inj1cnldf982xlmk5rzxgylvax6vmrlxjlvw7ss5mt -decimals = 8 - -[BLUE] -peggy_denom = factory/inj130nkx4u8p5sa2jl4apqlnnjlej2ymfq0e398w9/BLUE -decimals = 6 - -[BLUE CUB DAO] -peggy_denom = ibc/B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607 -decimals = 6 - -[BLUEINJ] -peggy_denom = inj1aalqnnh24ddn3vd9plnevwnxd03x7sevm77lps -decimals = 8 - -[BLUEINJECTIVE] -peggy_denom = inj1zkm3r90ard692tvrjrhu7vtkzlqpkjkdwwc57s -decimals = 8 - -[BMO] -peggy_denom = inj17fawlptgvptqwwtgxmz0prexrz2nel6zqdn2gd -decimals = 8 - -[BMOS] -peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E -decimals = 6 - -[BMSCWA] -peggy_denom = factory/inj1v888gdj5k9pykjca7kp7jdy6cdalfj667yws54/BabyMiloSillyCoqWifAnalos -decimals = 6 - -[BMW] -peggy_denom = inj1fzqfk93lrmn7pgmnssgqwrlmddnq7w5h3e47pc -decimals = 6 - -[BMX] -peggy_denom = inj12u37kzv3ax6ccja5felud8rtcp68gl69hjun4v -decimals = 18 - -[BNB] -peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 -decimals = 18 - -[BNINJA] -peggy_denom = factory/inj1k7tuhcp7shy4qwkwrg6ckjteucg44qfm79rkmx/BNINJA -decimals = 6 - -[BOB] -peggy_denom = inj185qcwyqwcyucfkdks5yjy5q54jr4r3r4z7jn3v -decimals = 18 - -[BOBURU] -peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/boburu -decimals = 6 - -[BODED] -peggy_denom = inj10xtrreumk28cucrtgse232s3gw2yxcclh0wswd -decimals = 6 - -[BODEN] -peggy_denom = boden -decimals = 9 - -[BOME] -peggy_denom = factory/inj1ne284hkg3yltn7aq250lghkqqrywmk2sk9x2yu/BOME -decimals = 6 - -[BONE] -peggy_denom = inj1kpp05gff8xgs0m9k7s2w66vvn53n77t9t6maqr -decimals = 6 - -[BONJA] -peggy_denom = factory/inj18v0e5dj2s726em58sg69sgmrnqmd08q5apgklm/bj -decimals = 6 - -[BONJO] -peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/BONJO -decimals = 6 - -[BONK] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch -decimals = 5 - -[BONKINJ] -peggy_denom = inj173f5j4xtmah4kpppxgh8p6armad5cg5e6ay5qh -decimals = 6 - -[BONKJA] -peggy_denom = factory/inj1gc8fjmp9y8kfsy3s6yzucg9q0azcz60tm9hldp/bonkja -decimals = 6 - -[BONSAI] -peggy_denom = factory/inj13jx69l98q0skvwy3n503e0zcrh3wz9dcqxpwxy/bonsai -decimals = 6 - -[BONUS] -peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF -decimals = 8 - -[BOOM] -peggy_denom = inj1xuu84fqdq45wdqj38xt8fhxsazt88d7xumhzrn -decimals = 18 - -[BOOSH] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/boosh -decimals = 6 - -[BOY] -peggy_denom = ibc/84DA08CF29CD08373ABB0E36F4E6E8DC2908EA9A8E529349EBDC08520527EFC2 -decimals = 6 - -[BOYS] -peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/boys -decimals = 6 - -[BOZO] -peggy_denom = inj1mf5dj5jscuw3z0eykkfccy2rfz7tvugvw2rkly -decimals = 18 - -[BPEPE] -peggy_denom = inj1pel9sz78wy4kphn2k7uwv5f6txuyvtrxn9j6c3 -decimals = 8 - -[BRED] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/bred -decimals = 6 - -[BRETT] -peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett -decimals = 6 - -[BRNZ] -peggy_denom = ibc/713B768D6B89E4DEEFDBE75390CA2DC234FAB6A016D3FD8D324E08A66BF5070F -decimals = 0 - -[BRO] -peggy_denom = factory/inj1cd4q88qplpve64hzftut2cameknk2rnt45kkq5/BRO -decimals = 6 - -[BRRR] -peggy_denom = inj16veue9c0sz0mp7dnf5znsakqwt7cnjpwz3auau -decimals = 18 - -[BRUCELEE] -peggy_denom = inj1dtww84csxcq2pwkvaanlfk09cer93xzc9kwnzf -decimals = 6 - -[BRZ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk -decimals = 4 - -[BSKT] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 -decimals = 5 - -[BTC] -peggy_denom = btc -decimals = 8 - -[BTCETF] -peggy_denom = inj1gzmkap8g09h70keaph9utxy9ahjvuuhk5tzpw9 -decimals = 18 - -[BUFFON] -peggy_denom = inj16m2tnugwtrdec80fxvuaxgchqcdpzhf2lrftck -decimals = 18 - -[BUGS] -peggy_denom = factory/inj1zzc2wt4xzy9yhxz7y8mzcn3s6zwvajyutgay3c/BUGS -decimals = 6 - -[BUIDL] -peggy_denom = buidl -decimals = 6 - -[BUILD] -peggy_denom = inj1z9utpqxm586476kzpk7nn2ukhnydmu8vchhqlu -decimals = 18 - -[BUL] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bul -decimals = 6 - -[BULL] -peggy_denom = factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/BULL -decimals = 6 - -[BULLS] -peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls -decimals = 6 - -[BURGE] -peggy_denom = inj1xcmamawydqlnqde7ah3xq7gzye9acwkmc5k5ne -decimals = 18 - -[BUS] -peggy_denom = inj1me9svqmf539hfzrfhw2emm2s579kv73w77u8yz -decimals = 18 - -[BUSD] -peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 -decimals = 18 - -[BUSD (BEP-20)] -peggy_denom = ibc/A8F9B4EC630F52C13D715E373A0E7B57B3F8D870B4168DADE0357398712ECC0E -decimals = 18 - -[BWH] -peggy_denom = ibc/9A31315BECC84265BCF32A31E4EB75C3B59ADCF8CCAE3C6EF8D0DF1C4EF829EB -decimals = 6 - -[BYE] -peggy_denom = inj1zfaug0dfg7zmd888thjx2hwuas0vl2ly4euk3r -decimals = 18 - -[Baby Corgi] -peggy_denom = ibc/9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873 -decimals = 6 - -[Baby DOJO Token] -peggy_denom = inj19dtllzcquads0hu3ykda9m58llupksqwekkfnw -decimals = 6 - -[Baby Dog Wif Nunchucks] -peggy_denom = inj1nddcunwpg4cwyl725lvkh9an3s5cradaajuwup -decimals = 8 - -[Baby Ninja] -peggy_denom = factory/inj1h3y27yhly6a87d95937jztc3tupl3nt8fg3lcp/BABYNINJA -decimals = 6 - -[Baby Nonja] -peggy_denom = inj1pchqd64c7uzsgujux6n87djwpf363x8a6jfsay -decimals = 18 - -[BabyBonk] -peggy_denom = inj1kaad0grcw49zql08j4xhxrh8m503qu58wspgdn -decimals = 18 - -[BabyInjective] -peggy_denom = inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap -decimals = 8 - -[Babykira] -peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira -decimals = 6 - -[Babyroll] -peggy_denom = inj1qd60tuupdtq2ypts6jleq60kw53d06f3gc76j5 -decimals = 18 - -[Baguette] -peggy_denom = inj15a3yppu5h3zktk2hkq8f3ywhfpqqrwft8awyq0 -decimals = 18 - -[Bamboo] -peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/boo -decimals = 6 - -[Base axlETH] -peggy_denom = ibc/FD8134B9853AABCA2B22A942B2BFC5AD59ED84F7E6DFAC4A7D5326E98DA946FB -decimals = 18 - -[Basket] -peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 -decimals = 5 - -[Benance] -peggy_denom = inj1gn8ss00s3htff0gv6flycgdqhc9xdsmvdpzktd -decimals = 8 - -[BetaDojo] -peggy_denom = inj1p6cj0r9ne63xhu4yr2vhntkzcfvt8gaxt2a5mw -decimals = 6 - -[Binance Coin] -peggy_denom = ibc/AAED29A220506DF2EF39E43B2EE35717636502267FF6E0343B943D70E2DA59EB -decimals = 18 - -[Binance USD] -peggy_denom = ibc/A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C -decimals = 18 - -[Binu] -peggy_denom = inj1myh9um5cmpghrfnh620cnauxd8sfh4tv2mcznl -decimals = 18 - -[Bird INJ] -peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj -decimals = 6 - -[BitSong] -peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 -decimals = 18 - -[Bitcoin] -peggy_denom = inj1ce249uga9znmc3qk2jzr67v6qxq73pudfxhwqx -decimals = 8 - -[Bitcosmos] -peggy_denom = ibc/E440667C70A0C9A5AD5A8D709731289AFB92301D64D70D0B33D18EF4FDD797FE -decimals = 6 - -[Black] -peggy_denom = inj1nuwasf0jsj3chnvzfddh06ft2fev3f5g447u2f -decimals = 18 - -[BlueInjective] -peggy_denom = inj17qsyspyh44wjch355pr72wzfv9czt5cw3h7vrr -decimals = 8 - -[Bnana] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/banana -decimals = 18 - -[Bobinjtoken] -peggy_denom = inj1cwaw3cl4wscxadtmydjmwuelqw95w5rukmk47n -decimals = 18 - -[Bonded Crescent] -peggy_denom = ibc/D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B -decimals = 6 - -[Bonjo] -peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 -decimals = 18 - -[Bonk] -peggy_denom = ibc/C951FBB321708183F5A14811A3D099B3D73457D12E193E2B8429BDDCC6810D5A -decimals = 5 - -[Bonk Injective] -peggy_denom = factory/inj15705jepx03fxl3sntfhdznjnl0mlqwtdvyt32d/bonk -decimals = 18 - -[Bonk on INJ] -peggy_denom = factory/inj147laec3n2gq8gadzg8xthr7653r76jzhavemhh/BONK -decimals = 6 - -[BonkToken] -peggy_denom = inj1jzxkr7lzzljdsyq8483jnduvpwtq7ny5x4ch08 -decimals = 8 - -[Boomer] -peggy_denom = inj1ethjlrk28wqklz48ejtqja9yfft8t4mm92m2ga -decimals = 18 - -[Brazilian Digital Token] -peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk -decimals = 4 - -[Brett] -peggy_denom = inj1zhce7csk22mpwrfk855qhw4u5926u0mjyw4df6 -decimals = 18 - -[Brotopia] -peggy_denom = inj16npdl0wuq9lg08lg3wzvh6tru60m3x5h6cy3mz -decimals = 8 - -[Bull] -peggy_denom = inj1j82m0njz2gm0eea0ujmyjdlq2gzvwkvqapxeuw -decimals = 8 - -[CAC] -peggy_denom = ibc/97D9F67F798DBB31DAFA9CF4E791E69399E0FC3FC2F2A54066EE666052E23EF6 -decimals = 6 - -[CACTUS] -peggy_denom = inj16ch9sx5c6fa6lnndh7vunrjsf60h67hz988hdg -decimals = 18 - -[CAD] -peggy_denom = cad -decimals = 6 - -[CAL] -peggy_denom = inj1a9pvrzmymj7rvdw0cf5ut9hkjsvtg4v8cqae24 -decimals = 18 - -[CANTO] -peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 -decimals = 18 - -[CAPY] -peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/capybara -decimals = 6 - -[CARTEL] -peggy_denom = factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/cartel -decimals = 6 - -[CASINO] -peggy_denom = inj12zqf6p9me86493yzpr9v3kmunvjzv24fg736yd -decimals = 18 - -[CASSIO] -peggy_denom = inj179m94j3vkvpzurq2zpn0q9uxdfuc4nq0p76h6w -decimals = 8 - -[CAT] -peggy_denom = inj129hsu2espaf4xn8d2snqyaxrhf0jgl4tzh2weq -decimals = 18 - -[CATCOIN] -peggy_denom = inj1rwhc09dv2c9kg6d63t3qp679jws04p8van3yu8 -decimals = 8 - -[CATINJ] -peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/catinj -decimals = 6 - -[CATNIP] -peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIPPY -decimals = 6 - -[CBG] -peggy_denom = inj19k6fxafkf8q595lvwrh3ejf9fuz9m0jusncmm6 -decimals = 18 - -[CDT] -peggy_denom = ibc/25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF -decimals = 6 - -[CEL] -peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d -decimals = 4 - -[CELL] -peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 -decimals = 18 - -[CENTER] -peggy_denom = inj1khd6f66tp8dd4f58dzsxa5uu7sy3phamkv2yr8 -decimals = 8 - -[CERBERUS] -peggy_denom = inj1932un3uh05nxy4ej50cfc3se096jd6w3jvl69g -decimals = 6 - -[CET] -peggy_denom = factory/inj1hst0759zk7c29rktahm0atx7tql5x65jnsc966/CET -decimals = 6 - -[CGLP] -peggy_denom = ibc/6A3840A623A809BC76B075D7206302622180D9FA8AEA59067025812B1BC6A1CC -decimals = 18 - -[CHAD] -peggy_denom = factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/CHAD -decimals = 6 - -[CHAININJ] -peggy_denom = inj143rjlwt7r28wn89r39wr76umle8spx47z0c05d -decimals = 8 - -[CHAKRA] -peggy_denom = factory/inj13zsd797dnkgpxcrf3zxxjzykzcz55tw7kk5x3y/CHAKRA -decimals = 6 - -[CHAMP] -peggy_denom = inj1gnde7drvw03ahz84aah0qhkum4vf4vz6mv0us7 -decimals = 8 - -[CHAMPION] -peggy_denom = inj1rh94naxf7y20qxct44mrlawyhs79d06zmprv70 -decimals = 8 - -[CHARM] -peggy_denom = inj1c2e37gwl2q7kvuxyfk5c0qs89rquzmes0nsgjf -decimals = 8 - -[CHEEMS] -peggy_denom = factory/inj1hrjm0jwfey8e4x3ef3pyeq4mpjvc8356lkgh9f/CHEEMS -decimals = 6 - -[CHEESE] -peggy_denom = inj1p6v3qxttvh36x7gxpwl9ltnmc6a7cgselpd7ya -decimals = 18 - -[CHELE] -peggy_denom = factory/inj16fsle0ywczyf8h4xfpwntg3mnv7cukd48nnjjp/CHELE -decimals = 6 - -[CHEN] -peggy_denom = factory/inj196t4n8dg3pzkk5wh7ytjwtl6e3a56u9fj705wr/CHEN -decimals = 6 - -[CHI] -peggy_denom = inj198rrzmcv69xay8xuhalqz2z02egmsyzp08mvkk -decimals = 18 - -[CHICKEN] -peggy_denom = factory/inj1gqeyl6704zr62sk2lsprt54gcwc6y724xvlgq2/CHICKEN -decimals = 6 - -[CHIKU] -peggy_denom = factory/inj1g8s4usdsy7gujf96qma3p8r2a7m02juzfm4neh/CHIKU -decimals = 6 - -[CHINMOY] -peggy_denom = inj1t52r8h56j9ctycqhlkdswhjjn42s6dnc6huwzs -decimals = 18 - -[CHOCOLATE] -peggy_denom = inj1slny6cqjkag3hgkygpq5nze6newysqpsfy0dxj -decimals = 6 - -[CHONK] -peggy_denom = inj17aze0egvc8hrmgf25kkhlw3720vurz99pdp58q -decimals = 18 - -[CHOWCHOW] -peggy_denom = inj1syqdgn79wnnlzxd63g2h00rzx90k6s2pltec6w -decimals = 6 - -[CHROME] -peggy_denom = inj1k20q72a4hxt0g20sx3rcnjvhfye6u3k6dhx6nc -decimals = 6 - -[CHROMIUM] -peggy_denom = inj1plmyzu0l2jku2yw0hnh8x6lw4z5r2rggu6uu05 -decimals = 8 - -[CHUN] -peggy_denom = factory/inj19tjhqehpyq4n05hjlqyd7c5suywf3hcuvetpcr/CHUN -decimals = 9 - -[CHUNGUS] -peggy_denom = factory/inj1khr6lahyjz0wgnwzuu4dk5wz24mjrudz6vgd0z/bigchungus -decimals = 6 - -[CHZ] -peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF -decimals = 18 - -[CHZlegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh -decimals = 8 - -[CINU] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s -decimals = 8 - -[CIRCUS] -peggy_denom = ibc/AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD -decimals = 6 - -[CITY] -peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/CITY -decimals = 6 - -[CJN] -peggy_denom = inj1eln607626f3j058rfh4xd3m4pd728x2cnxw4al -decimals = 18 - -[CLEO] -peggy_denom = inj1fr66v0vrkh55yg6xfw845q78kd0cnxmu0d5pnq -decimals = 18 - -[CLEVER] -peggy_denom = inj1f6h8cvfsyz450kkcqmy53w0y4qnpj9eylsazww -decimals = 18 - -[CLON] -peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 -decimals = 6 - -[CNJ] -peggy_denom = inj1w38vdrkemf8s40m5xpqe5fc8hnvwq3d794vc4a -decimals = 18 - -[COCA] -peggy_denom = ibc/8C82A729E6D74B03797962FE5E1385D87B1DFD3E0B58CF99E0D5948F30A55093 -decimals = 6 - -[COCK] -peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/COCK -decimals = 6 - -[COCKPIT] -peggy_denom = factory/inj15u2mc2vyh2my4qcuj5wtv27an6lhjrnnydr926/COCKPIT -decimals = 9 - -[COFFEE] -peggy_denom = inj166gumme9j7alwh64uepatjk4sw3axq84ra6u5j -decimals = 6 - -[COFFEIN] -peggy_denom = inj18me8d9xxm340zcgk5eu8ljdantsk8ktxrvkup8 -decimals = 18 - -[COKE] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp -decimals = 6 - -[COMP] -peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 -decimals = 18 - -[CONK] -peggy_denom = inj18vcz02pukdr2kak6g2p34krgdddan2vlpzmqju -decimals = 8 - -[CONK2.0] -peggy_denom = inj1zuz0rpg224mrpz2lu6npta34yc48sl7e5sndly -decimals = 8 - -[CONT] -peggy_denom = inj1vzpegrrn6zthj9ka93l9xk3judfx23sn0zl444 -decimals = 18 - -[COOK] -peggy_denom = factory/inj1pqpmffc7cdfx7tv9p2347ghgxdaell2xjzxmy6/COOK -decimals = 6 - -[COOKIG] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/COOKIG -decimals = 6 - -[COOL] -peggy_denom = factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/coolcat -decimals = 6 - -[COPE] -peggy_denom = inj1lchcdq3rqc2kaupt6fwshd7fyj7p0mpkeknkyw -decimals = 18 - -[COQ] -peggy_denom = inj1lefh6m9ldqm55ume0j52fhhw6tzmx9pezkqhzp -decimals = 18 - -[CORE] -peggy_denom = inj1363eddx0m5mlyeg9z9qjyvfyutrekre47kmq34 -decimals = 18 - -[CORGI] -peggy_denom = inj129t9ywsya0tyma00xy3de7q2wnah7hrw7v9gvk -decimals = 18 - -[CORONA] -peggy_denom = inj1md4ejkx70463q3suv68t96kjg8vctnpf3ze2uz -decimals = 18 - -[COSMO] -peggy_denom = factory/inj1je6n5sr4qtx2lhpldfxndntmgls9hf38ncmcez/COSMO -decimals = 6 - -[COSMOUSD] -peggy_denom = ibc/7C2E000B842A9BE91046F096999E6A627AD4DC5289ABA89B412019381A94BB8F -decimals = 6 - -[COSMWASM] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex -decimals = 8 - -[COST] -peggy_denom = inj1hlwjvef4g4tdsa5erdnzfzd8ufcw403a6558nm -decimals = 18 - -[COVID] -peggy_denom = inj1ce38ehk3cxa7tzcq2rqmgek9hc3gdldvxvtzqy -decimals = 6 - -[COWBOY] -peggy_denom = inj1dp7uy8sa0sevnj65atsdah0sa6wmwtfczwg08d -decimals = 6 - -[CP] -peggy_denom = factory/inj1300jzt0tyjg8x4txsfs79l29k556vqqk22c7es/cope -decimals = 6 - -[CPINJ] -peggy_denom = factory/inj1qczkutnsy3nmt909xtyjy4rsrkl2q4dm6aq960/coping -decimals = 6 - -[CR7] -peggy_denom = factory/inj1v25y8fcxfznd2jkz2eh5cy2520jpvt3felux66/CR7 -decimals = 6 - -[CRAB] -peggy_denom = factory/inj1fx2mj8532ynky2xw0k8tr46t5z8u7cjvpr57tq/crabfu -decimals = 6 - -[CRAB APPLE] -peggy_denom = inj1ku7f3v7z3dd9hrp898xs7xnwmmwzw32tkevahk -decimals = 18 - -[CRASH] -peggy_denom = inj1k3rankglvxjxzsaqrfff4h5ttwcjjh3m4l3pa2 -decimals = 8 - -[CRAZYHORSE] -peggy_denom = ibc/7BE6E83B27AC96A280F40229539A1B4486AA789622255283168D237C41577D3B -decimals = 6 - -[CRBRUS] -peggy_denom = ibc/F8D4A8A44D8EF57F83D49624C4C89EECB1472D6D2D1242818CDABA6BC2479DA9 -decimals = 6 - -[CRE] -peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 -decimals = 6 - -[CRINJ] -peggy_denom = factory/inj172d4lzaurwkmlvjfsz345mjmdc0e3ntsnhavf9/CRINJ -decimals = 6 - -[CRITPO] -peggy_denom = factory/inj1safqtpalmkes3hlyr0zfdr0dw4aaxulh306n67/CRITPO -decimals = 7 - -[CRN] -peggy_denom = inj1wcj4224qpghv94j8lzq8c2m9wa4f2slhqcxm9y -decimals = 18 - -[CROCO] -peggy_denom = factory/inj13j4gwlt2867y38z6e40366h38jtpmele209g6t/CROCO -decimals = 6 - -[CROCO_NINJA] -peggy_denom = factory/inj1c0tfeukmrw69076w7nffjqhrswp8vm9rr6t3eh/CROCO -decimals = 6 - -[CRT] -peggy_denom = inj10qt8pyaenyl2waxaznez6v5dfwn05skd4guugw -decimals = 18 - -[CRV] -peggy_denom = crv -decimals = 18 - -[CRYPB] -peggy_denom = inj1p82fws0lzshx2zg2sx5c5f855cf6wht9uudxg0 -decimals = 18 - -[CRseven] -peggy_denom = inj19jp9v5wqz065nhr4uhty9psztlqeg6th0wrp35 -decimals = 6 - -[CTAX] -peggy_denom = inj1mwj4p98clpf9aldzcxn7g8ffzrwz65uszesdre -decimals = 18 - -[CTO] -peggy_denom = inj19kk6ywwu5h0rnz4453gyzt3ymgu739egv954tf -decimals = 18 - -[CUB] -peggy_denom = ibc/5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4 -decimals = 6 - -[CUIT] -peggy_denom = factory/inj1zlmrdu0ntnmgjqvj2a4p0uyrg9jw802ld00x7c/CUIT -decimals = 6 - -[CVR] -peggy_denom = peggy0x3C03b4EC9477809072FF9CC9292C9B25d4A8e6c6 -decimals = 18 - -[CW20] -peggy_denom = inj1c2mjatph5nru36x2kkls0pwpez8jjs7yd23zrl -decimals = 18 - -[CW20-wrapped inj] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55 -decimals = 18 - -[CW20:TERRA1CL273523KMR2UWJHHZNQ54JE69MTED2U3LJFFM8KP2AP4Z3DRDKSFTWQUN] -peggy_denom = ibc/44461C88F8BF1D2E8D890FB43B4C2C268B89FF6367ED8E39872BB13CA14A5512 -decimals = 0 - -[CW20:TERRA1NSUQSK6KH58ULCZATWEV87TTQ2Z6R3PUSULG9R24MFJ2FVTZD4UQ3EXN26] -peggy_denom = ibc/1966FE142949F3878ED8438FBDDE8620F4E0584D6605D2201E53388CF4CEAF41 -decimals = 0 - -[CWIFLUCK] -peggy_denom = factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWIFLUCK -decimals = 6 - -[CWL] -peggy_denom = factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWL -decimals = 6 - -[CWT] -peggy_denom = factory/inj1j5hqczk6ee2zsuz7kjt5nshxcjg5g69njxe6ny/inj-cttoken -decimals = 18 - -[CZORT] -peggy_denom = inj13dl7xm6pljjj3ymp475pcjr2n2k0q5nvmr8665 -decimals = 6 - -[Canto] -peggy_denom = ibc/5C0C70B490A3568D40E81884F200716F96FCE8B0A55CB5EE41C1E369E6086CCA -decimals = 18 - -[Cat] -peggy_denom = inj1eerjxzvwklcgvclj9m2pulqsmpentaes8h347x -decimals = 18 - -[Cat WIF luck] -peggy_denom = inj1mqurena8qgf775t28feqefnp63qme7jyupk4kg -decimals = 18 - -[Cat Wif Luck] -peggy_denom = inj19lwxrsr2ke407xw2fdgs80f3rghg2pueqae3vf -decimals = 6 - -[CatInjective] -peggy_denom = inj1p2w55xu2yt55rydrf8l6k79kt3xmjmmsnn3mse -decimals = 8 - -[Chainlink] -peggy_denom = ibc/AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585 -decimals = 18 - -[Chb] -peggy_denom = inj1fvzre25nqkakvwmjr8av5jrfs56dk6c8sc6us9 -decimals = 8 - -[CheeseBalls] -peggy_denom = inj13mjcjrwwjq7x6fanqvur4atd4sxyjz7t6kfhx0 -decimals = 6 - -[Chiliz (legacy)] -peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh -decimals = 8 - -[Chonk] -peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/Chonk -decimals = 6 - -[Chonk The Cat] -peggy_denom = inj1ftq3h2y70hrx5rn5a26489drjau9qel58h3gfr -decimals = 18 - -[Circle USD] -peggy_denom = ibc/8F3ED95BF70AEC83B3A557A7F764190B8314A93E9B578DE6A8BDF00D13153708 -decimals = 6 - -[CosmWasm] -peggy_denom = inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex -decimals = 8 - -[Cosmic] -peggy_denom = inj19zcnfvv3qazdhgtpnynm0456zdda5yy8nmsw6t -decimals = 18 - -[Cosmo] -peggy_denom = factory/osmo1ua9rmqtmlyv49yety86ys8uqx3hawfkyjr0g7t/Cosmo -decimals = 6 - -[Cosmos] -peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB -decimals = 6 - -[Crinj Token] -peggy_denom = factory/inj1kgyxepqnymx8hy7nydl65w3ecyut566pl70swj/crinj -decimals = 6 - -[D.a.r.e] -peggy_denom = inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej -decimals = 18 - -[DAB] -peggy_denom = factory/inj1n8w9wy72cwmec80qpjsfkgl67zft3j3lklg8fg/DAB -decimals = 6 - -[DAI] -peggy_denom = peggy0x6B175474E89094C44Da98b954EedeAC495271d0F -decimals = 18 - -[DAI-WEI] -peggy_denom = ibc/D60FA550EC962A2CAAC437052D06BA56543FB7787762153024216660CA4E0624 -decimals = 0 - -[DANJER] -peggy_denom = factory/inj1xzk83u23djtynmz3a3h9k0q454cuhsn3y9jhr3/DANJER -decimals = 6 - -[DANU] -peggy_denom = ibc/47C09BF48E492A1F9F8B4020AE8064953B70A35469E96F59C0DC35CD5CCE37FA -decimals = 6 - -[DAOJO] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/daojo -decimals = 6 - -[DATOSHI] -peggy_denom = inj1rp63ym52lawyuha4wvn8gy33ccqtpj5pu0n2ef -decimals = 18 - -[DBT] -peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/dbt -decimals = 6 - -[DBTT] -peggy_denom = inj1wwga56n4glj9x7cnuweklepl59hp95g9ysg283 -decimals = 18 - -[DDD] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/ddd -decimals = 6 - -[DDL] -peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL -decimals = 6 - -[DDLTest] -peggy_denom = inj10zhn525tfxf5j34dg5uh5js4fr2plr4yydasxd -decimals = 18 - -[DEFI5] -peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 -decimals = 18 - -[DEFIKINGS] -peggy_denom = inj18h33x5qcr44feutwr2cgazaalcqwtpez57nutx -decimals = 8 - -[DEGGZ] -peggy_denom = factory/inj1k0ked7w3t3etzun47m00xmx9vr4zglznnsp3y9/DEGGZ -decimals = 9 - -[DEK] -peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dek -decimals = 6 - -[DEK on INJ] -peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dekinj -decimals = 1 - -[DEPE] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/depe -decimals = 6 - -[DEXTER] -peggy_denom = inj12y0ucglt3twtwaaklgce3vpc95gxe67lpu2ghc -decimals = 18 - -[DGNZ] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/DGNZ -decimals = 6 - -[DIB] -peggy_denom = inj1nzngv0ch009jyc0mvm5h55d38c32sqp2fjjws9 -decimals = 18 - -[DICE] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/DICE -decimals = 6 - -[DICES] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/dices -decimals = 6 - -[DICK] -peggy_denom = factory/inj1wqk200kkyh53d5px5zc6v8usq3pluk07r4pxpu/DICK -decimals = 6 - -[DIDX] -peggy_denom = factory/inj1w24j0sv9rvv473x6pqfd2cnnxtk6cvrh5ek89e/DIDX -decimals = 6 - -[DINHEIROS] -peggy_denom = ibc/306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB -decimals = 0 - -[DINO] -peggy_denom = inj1zx9tv9jg98t0fa7u9882gjrtansggmakmwnenm -decimals = 18 - -[DITTO] -peggy_denom = inj1vtg4almersef8pnyh5lptwvcdxnrgqp0zkxafu -decimals = 6 - -[DMT] -peggy_denom = ibc/CCA7C9657F4CCD03685B419A2F66278076CFAD72DDECE44B0AC62654A3611FA6 -decimals = 6 - -[DNA] -peggy_denom = ibc/AE8E20F37C6A72187633E418169758A6974DD18AB460ABFC74820AAC364D2A13 -decimals = 6 - -[DOCE] -peggy_denom = inj1xx8qlk3g9g3cyqs409strtxq7fuphzwzd4mqzw -decimals = 18 - -[DOGE] -peggy_denom = doge -decimals = 8 - -[DOGECoin] -peggy_denom = factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGE -decimals = 6 - -[DOGEINJ] -peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/DOGEINJ -decimals = 6 - -[DOGEINJCoin] -peggy_denom = factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGEINJ -decimals = 6 - -[DOGEKIRA] -peggy_denom = inj1xux4gj0g3u8qmuasz7fsk99c0hgny4wl7hfzqu -decimals = 6 - -[DOGENINJA] -peggy_denom = inj1wjv6l090h9wgwr6lc58mj0xphg50mzt8y6dfsy -decimals = 6 - -[DOGGO] -peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO -decimals = 6 - -[DOGINJBREAD] -peggy_denom = inj1s4srnj2cdjf3cgun57swe2je8u7n3tkm6kz257 -decimals = 18 - -[DOGOFTHUN] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/DOGOFTHUN -decimals = 6 - -[DOGWIF] -peggy_denom = inj16ykyeaggxaqzj3x85rjuk3xunky7mg78yd2q32 -decimals = 8 - -[DOINJ] -peggy_denom = inj1swqv8e6e8tmyeqwq3rp43pfsr75p8wey7vrh0u -decimals = 8 - -[DOJ] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj -decimals = 6 - -[DOJO] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 -decimals = 18 - -[DOJO SWAP] -peggy_denom = inj1qzqlurx22acr4peuawyj3y95v9r9sdqqrafwqa -decimals = 18 - -[DOJODOG] -peggy_denom = factory/inj1s0awzzjfr92mu6t6h85jmq6s9f6hxnqwpmy3f7/DOJODOG -decimals = 6 - -[DOJOshroom] -peggy_denom = inj194l9mfrjsthrvv07d648q24pvpfkntetx68e7l -decimals = 6 - -[DOJSHIB] -peggy_denom = inj17n55k95up6tvf6ajcqs6cjwpty0j3qxxfv05vd -decimals = 18 - -[DOKI] -peggy_denom = ibc/EA7CE127E1CFD7822AD169019CAFDD63D0F5A278DCE974F438099BF16C99FB8B -decimals = 6 - -[DON] -peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/don -decimals = 6 - -[DONALD TRUMP] -peggy_denom = inj1mdf4myxfhgranmzew5kg39nv5wtljwksm9jyuj -decimals = 18 - -[DONK] -peggy_denom = inj1jargzf3ndsadyznuj7p3yrp5grdxsthxyfp0fj -decimals = 6 - -[DONKEY] -peggy_denom = inj1ctczwjzhjjes7vch52anvr9nfhdudq6586kyze -decimals = 18 - -[DONNA] -peggy_denom = inj17k4lmkjl963pcugn389d070rh0n70f5mtrzrvv -decimals = 18 - -[DONOTBUY] -peggy_denom = inj197p39k7ued8e6r5mnekg47hphap8zcku8nws5y -decimals = 6 - -[DOOMER] -peggy_denom = factory/inj1lqv3a2hxggzall4jekg7lpe6lwqsjevnm9ztnf/doomer -decimals = 6 - -[DOPE] -peggy_denom = factory/inj1tphwcsachh92dh5ljcdwexdwgk2lvxansym77k/DOPE -decimals = 0 - -[DORA] -peggy_denom = ibc/BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947 -decimals = 18 - -[DOT] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf -decimals = 10 - -[DOT-PLANCK] -peggy_denom = ibc/6BF455853FEDB6745553C832A0BCCB70C548347558FB1C4DA395C7AB99B5B2E0 -decimals = 0 - -[DOTRUMP] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/dotrump -decimals = 6 - -[DRACO] -peggy_denom = inj14g9hcmdzlwvafsmrka6gmd22mhz7jd3cm5d8e6 -decimals = 8 - -[DRAGON] -peggy_denom = factory/inj1apk9x267a3qplc6q9a22xsvd2k96g0655xw59m/DRAGON -decimals = 6 - -[DREAM] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream -decimals = 6 - -[DRG] -peggy_denom = inj15jg279nugsgqplswynqqfal29tav9va5wzf56t -decimals = 18 - -[DRIVING] -peggy_denom = inj1ghhdy9mejncsvhwxmvnk5hspkd5fchtrmhu3x2 -decimals = 8 - -[DROGO] -peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 -decimals = 6 - -[DROGON] -peggy_denom = inj1h86egqfpypg8q3jp9t607t0y8ea6fdpv66gx0j -decimals = 6 - -[DRUGS] -peggy_denom = factory/inj17aqq3208uujtvqmlm5xdve92tcy7ne3as2j7q0/DRUGS -decimals = 9 - -[DTEST] -peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/DTEST -decimals = 6 - -[DTHREE] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/DTHREE -decimals = 6 - -[DUBAIcoin] -peggy_denom = inj1gsm06ndeq620sp73lu26nz76rqfpy9qtg7xfdw -decimals = 6 - -[DUBDUB] -peggy_denom = inj1nwm43spkusyva27208recgwya2yu2yja934x0n -decimals = 6 - -[DUCKS] -peggy_denom = factory/inj1mtxwccht2hpfn2498jc8u4k7sgrurxt04jzgcn/DUCKS -decimals = 6 - -[DUDE] -peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/DUDE -decimals = 6 - -[DUEL] -peggy_denom = peggy0x943Af2ece93118B973c95c2F698EE9D15002e604 -decimals = 18 - -[DUMB] -peggy_denom = factory/inj122c9quyv6aq5e2kr6gdcazdxy2eq2u2jgycrly/DUMB -decimals = 6 - -[DUMP BEOPLE] -peggy_denom = inj13d8cpsfc9gxxspdatucvngrvs435zddscapyhk -decimals = 18 - -[DUROV] -peggy_denom = inj1y73laasqpykehcf67hh3z7vn899sdmn6vtsg22 -decimals = 18 - -[DWHPPET] -peggy_denom = inj1rreafnwdwc9mu7rm6sm2nwwjd2yw46h26rzz36 -decimals = 18 - -[DWIFLUCK] -peggy_denom = factory/inj1gn54l05v5kqy5zmzk5l6wydzgvhvx2srm7rdkg/DWIFLUCK -decimals = 6 - -[DYDX] -peggy_denom = ibc/7B911D87318EB1D6A472E9F08FE93955371DF3E1DFFE851A58F4919450FFE7AA -decimals = 18 - -[DYDX-USDC-LP] -peggy_denom = ibc/2D3757EEC11284BAB7B00E105540237CDD1DE69D633FBBA68118DE31658C9366 -decimals = 18 - -[DYM] -peggy_denom = ibc/346B01430895DC4273D1FAFF470A9CE1155BF6E9F845E625374D019EC9EE796D -decimals = 18 - -[Dai Stablecoin] -peggy_denom = ibc/265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90 -decimals = 18 - -[Dai Stablecoin (Wormhole)] -peggy_denom = ibc/293F6074F0D8FF3D8A686F11BCA3DD459C54695B8F205C8867E4917A630634C2 -decimals = 8 - -[Daisy] -peggy_denom = inj1djnh5pf860722a38lxlxluwaxw6tmycqmzgvhp -decimals = 18 - -[Daojo] -peggy_denom = inj1dpgkaju5xqpa3vuz6qxqp0vljne044xgycw0d7 -decimals = 18 - -[DarkDeath] -peggy_denom = factory/inj133nvqdan8c79fhqfkmc3h59v30v4urgwuuejke/DarkDeath -decimals = 6 - -[Degen] -peggy_denom = factory/inj1j3rm46nj4z8eckv5333897z7esectj64kufs4a/Degen -decimals = 6 - -[DelPiero] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/delpiero -decimals = 6 - -[Dnd] -peggy_denom = inj1acxjvpu68t2nuw6950606gw2k59qt43zfxrcwq -decimals = 18 - -[Dog Wif Token ] -peggy_denom = inj1qhu9yxtp0x9gkn0n89hcw8c0wc8nhuke8zgw0d -decimals = 8 - -[Doge] -peggy_denom = inj1n4hl6mxv749jkqsrhu23z24e2p3s55de98jypt -decimals = 18 - -[Dogelon Mars] -peggy_denom = peggy0x761D38e5ddf6ccf6Cf7c55759d5210750B5D60F3 -decimals = 18 - -[Doggo] -peggy_denom = inj1gasr3mz9wdw2andhuf5254v9haw2j60zlftmha -decimals = 18 - -[Doginbread] -peggy_denom = inj1sx9mflrf6jvnzantd8rlzqh9tahgdyul5hq4pc -decimals = 18 - -[Dojo Staked INJ] -peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 -decimals = 18 - -[Dojo Token] -peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 -decimals = 18 - -[Dojo bot] -peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/DOJO -decimals = 6 - -[Don] -peggy_denom = inj19yv3uvkww6gjda2jn90aayrefjacclsrulr5n2 -decimals = 18 - -[DonatelloShurikenLipsInjection2dust] -peggy_denom = factory/inj1ya7ltz2mkj0z4w25lxueh7emz6qhwe33m4knx8/INJECTIV -decimals = 6 - -[Doodle] -peggy_denom = factory/inj1yjhn49auvxjqe2y3hxl9uwwzsjynl4ms0kq6d4/Doodle -decimals = 6 - -[Dope Token] -peggy_denom = inj1lrewwyn3m2dms6ny7m59x9s5wwcxs5zf5y2w20 -decimals = 8 - -[Dot] -peggy_denom = ibc/B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593 -decimals = 10 - -[Drachme] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/drachme -decimals = 6 - -[Dragon Coin] -peggy_denom = inj1ftfc7f0s7ynkr3n7fnv37qpskfu3mu69ethpkq -decimals = 18 - -[Drugs] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej -decimals = 18 - -[Duel] -peggy_denom = inj1ghackffa8xhf0zehv6n8j3gjzpz532c4h2zkkp -decimals = 18 - -[Dwake] -peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/Dwake -decimals = 6 - -[E-SHURIKEN] -peggy_denom = inj1z93hdgsd9pn6eajslmyerask38yugxsaygyyu0 -decimals = 6 - -[EARS] -peggy_denom = inj1g07rttdqwcy43yx9m20z030uex29sxpcwvvjmf -decimals = 8 - -[EASPORTS] -peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EASPORTS -decimals = 6 - -[ECOCH] -peggy_denom = factory/inj1tquax9jy4t7lg2uya4yclhlqlh5a75ykha2ewr/EcoChain -decimals = 6 - -[ECPS] -peggy_denom = inj1vzjfp3swqhhjp56w40j4cmekjpmrkq6d3ua7c8 -decimals = 8 - -[EGGMAN] -peggy_denom = inj1hjym72e40g8yf3dd3lah98acmkc6ms5chdxh6g -decimals = 8 - -[ELE] -peggy_denom = inj1zyg7gvzzsc0q39vhv5je50r2jcfv2ru506pd7w -decimals = 6 - -[ELEM] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2 -decimals = 18 - -[ELM] -peggy_denom = inj1uu3dc475nuhz68j3g4s3cpxzdfczpa3k4dcqz7 -decimals = 18 - -[ELMNT] -peggy_denom = inj17z53rhx0w6szyhuakgnj9y0khprrp2rmdg0djz -decimals = 6 - -[ELON] -peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 -decimals = 6 - -[ELON-GATED-PENIS] -peggy_denom = inj1v0ahzyf4mup6eunf4hswcs9dq3ffea4nqxdhmq -decimals = 6 - -[ELONXMAS] -peggy_denom = inj1nmrve743hvmxzv7e3p37nyjl2tf8fszcqg44ma -decimals = 8 - -[EMP] -peggy_denom = factory/inj1vc6gdrn5ta9h9danl5g0sl3wjwxqfeq6wj2rtm/EMP -decimals = 6 - -[EMP On Injective] -peggy_denom = inj1qm7x53esf29xpd2l8suuxtxgucrcv8fkd52p7t -decimals = 18 - -[ENA] -peggy_denom = peggy0x57e114B691Db790C35207b2e685D4A43181e6061 -decimals = 18 - -[ENA-USDT LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1wzt78jy575ejcps76gpc2m8k2v4x2526aksnk0 -decimals = 18 - -[ENJ] -peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c -decimals = 18 - -[EPIC] -peggy_denom = inj1ewmqrnxm8a5achem6zqg44w7lut3krls4m5mnu -decimals = 18 - -[EPICEIGHT] -peggy_denom = inj19dd2lqy8vpcl3kc9ftz3y7xna6qyevuhq7zxkz -decimals = 18 - -[EPICEL] -peggy_denom = inj1hz2e3fasvhhuxywx96g5vu8nnuvak5ca4r7jsk -decimals = 18 - -[EPICFIVE] -peggy_denom = inj1cavzx4eswevydc8hawdy362z3a2nucku8c0lp6 -decimals = 18 - -[EPICNINE] -peggy_denom = inj1a6jfnquus2vrfshwvurae9wkefu0k3n8ay6u4r -decimals = 18 - -[EPICONE] -peggy_denom = inj16nenk0jqfcgj8qhfap9n7ldjzke97rw9auxptx -decimals = 18 - -[EPICSEVEN] -peggy_denom = inj19tval5k0qjgqqkuw0v8g5qz9sautru4jr9rz7e -decimals = 18 - -[EPICSIX] -peggy_denom = inj1gyf3358u6juk3xvrrp7vlez9yuk2ek33dhqdau -decimals = 18 - -[EPICTE] -peggy_denom = inj1c6mpj4p2dvxdgqq9l0sasz0uzu4gah7k3g03xf -decimals = 18 - -[EPICTEN] -peggy_denom = inj1e9t4mhc00s4p0rthuyhpy2tz54nuh552sk5v60 -decimals = 18 - -[EPICTREE] -peggy_denom = inj1hjt77g9ujsh52jdm388ggx387w9dk4jwe8w5sq -decimals = 18 - -[EPICTWO] -peggy_denom = inj1z24n2kmsxkz9l75zm7e90f2l0rfgaazh6usw3h -decimals = 18 - -[EPICfour] -peggy_denom = inj14m6t04x80r2f78l26wxz3vragpy892pdmshcat -decimals = 18 - -[ERA] -peggy_denom = peggy0x3e1556B5b65C53Ab7f6956E7272A8ff6C1D0ed7b -decimals = 18 - -[ERC20/0X655ECB57432CC1370F65E5DC2309588B71B473A9] -peggy_denom = ibc/9A7A2B6433CFA1CA5D93AF75D568D614456EA4FEBC39F0BE1BE9ECBD420FB36F -decimals = 0 - -[ERC20/TETHER/USDT] -peggy_denom = ibc/04D85EE726D7D0241AD8E8D1AA98E0AC67094C9E5BEDD038AAF75AD46D37C154 -decimals = 0 - -[ERIC] -peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric -decimals = 6 - -[ERIS Amplified SEI] -peggy_denom = ibc/9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E -decimals = 6 - -[ESCUDOS] -peggy_denom = ibc/D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5 -decimals = 6 - -[ETF] -peggy_denom = inj1cdfcc6x6fn22wl6gs6axgn48rjve2yhjqt8hv2 -decimals = 18 - -[ETH] -peggy_denom = eth -decimals = 18 - -[ETH.1.2.942D87] -peggy_denom = ibc/45CDDFFC2D593006ED982869A47AA09B1A1D46370C127B28F8B964A281EF2757 -decimals = 0 - -[ETHBTCTrend] -peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 -decimals = 18 - -[ETK] -peggy_denom = inj1hzh43wet6vskk0ltfm27dm9lq2jps2r6e4xvz8 -decimals = 18 - -[EUR] -peggy_denom = eur -decimals = 6 - -[EURO] -peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/EURO -decimals = 6 - -[EVAI] -peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c -decimals = 8 - -[EVI] -peggy_denom = inj1mxcj2f8aqv8uflul4ydr7kqv90kprgsrx0mqup -decimals = 18 - -[EVIINDEX] -peggy_denom = eviindex -decimals = 18 - -[EVITCEJNI] -peggy_denom = factory/inj1n8kcnuzsrg9d7guu8c5n4cxcurqyszthy29yhg/EVITCEJNI -decimals = 6 - -[EVL] -peggy_denom = inj1yhrpy3sr475cfn0g856hzpfrgk5jufvpllfakr -decimals = 18 - -[EVMOS] -peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 -decimals = 18 - -[EXOTIC] -peggy_denom = inj1xyf06dyfuldfynqgl9j6yf4vly6fsjr7zny25p -decimals = 8 - -[EXP] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd -decimals = 8 - -[EYES] -peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/eyes -decimals = 6 - -[Eik] -peggy_denom = inj1a0rphvxxgr56354vqz8jhlzuhwyqs8p4zag2kn -decimals = 18 - -[Elemental Token] -peggy_denom = inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2 -decimals = 18 - -[Elite] -peggy_denom = inj1rakgrkwx9hs6ye4mt4pcvnhy5zt28dt02u9ws8 -decimals = 18 - -[Enjineer] -peggy_denom = inj1xsc3wp2m654tk62z7y98egtdvd0mqcs7lp4lj0 -decimals = 18 - -[Ethena] -peggy_denom = inj1c68rz4w9csvny5xmq6f87auuhfut5zukngmptz -decimals = 18 - -[Ethereum (Arbitrum)] -peggy_denom = ibc/56ADC03A83B6E812C0C30864C8B69CBE502487AD5664D0164F73A1C832D2C7FC -decimals = 18 - -[Ethereum (ERC20)] -peggy_denom = ibc/56CD30F5F8344FDDC41733A058F9021581E97DC668BFAC631DC77A414C05451B -decimals = 18 - -[Explore Exchange] -peggy_denom = inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd -decimals = 8 - -[ExtraVirginOliveInu] -peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/extravirginoliveinu -decimals = 6 - -[FABLE] -peggy_denom = ibc/5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313 -decimals = 6 - -[FACTORY/CHIHUAHUA1X4Q2VKRZ4DFGD9HCW0P5M2F2NUV2UQMT9XR8K2/ACHIHUAHUAWIFHAT] -peggy_denom = ibc/F8AB96FFB2BF8F69AA42481D43B24E9121FF7403A4E95673D9135128CA769577 -decimals = 0 - -[FACTORY/INJ106ETGAY573E32KSYSC9DPDRYNXHK7KKMACLHFC/STARK] -peggy_denom = ibc/81B0CF8BB06F95247E3680844D0CB3889ACB2662B3AE2458C2370985BF4BD00B -decimals = 0 - -[FACTORY/INJ14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88F9ENEUK/INJ1STHRN5EP8LS5VZZ8F9GP89KHHMEDAHHDKQA8Z3] -peggy_denom = ibc/884A8507A762D0F1DE350C4E640ECA6EDD6F25617F39AD57BC6F5B7EC8DF7181 -decimals = 0 - -[FACTORY/INJ14LF8XM6FCVLGGPA7GUXZJQWJMTR24GNVF56HVZ/AUTISM] -peggy_denom = ibc/540553046CDCE9B477D2D82389E81AF99C76BDEAAC0BF9B9F64B5CAC7941DD63 -decimals = 0 - -[FACTORY/MIGALOO1436KXS0W2ES6XLQPP9RD35E3D0CJNW4SV8J3A7483SGKS29JQWGSHQDKY4/AMPWHALE] -peggy_denom = ibc/14ECCBBE1FF850AF4116A9F468DE3359AA97C1260BC734BA7956D593AF035FF7 -decimals = 0 - -[FACTORY/MIGALOO1MF6PTKSSDDFMXVHDX0ECH0K03KTP6KF9YK59RENAU2GVHT3NQ2GQDHTS4U/BONEWHALE] -peggy_denom = ibc/F14FD3D36F182611A987DFDFF77D8F31EEDCB4FBAD720E237989C60AD29A9061 -decimals = 0 - -[FACTORY/NEUTRON133XAKKRFKSQ39WXY575UNVE2NYEHG5NPX75NPH/GOP] -peggy_denom = ibc/B6DEF77F4106DE5F5E1D5C7AA857392A8B5CE766733BA23589AD4760AF953819 -decimals = 0 - -[FACTORY/NEUTRON133XAKKRFKSQ39WXY575UNVE2NYEHG5NPX75NPH/MOO] -peggy_denom = ibc/572EB1D6454B3BF6474A30B06D56597D1DEE758569CC695FF628D4EA235EFD5D -decimals = 0 - -[FACTORY/NEUTRON154GG0WTM2V4H9UR8XG32EP64E8EF0G5TWLSGVFEAJQWGHDRYVYQSQHGK8E/APOLLO] -peggy_denom = ibc/1B47F9D980CBB32A87022E1381C15005DE942A71CB61C1B498DBC2A18F43A8FE -decimals = 0 - -[FACTORY/OSMO1Q77CW0MMLLUXU0WR29FCDD0TDNH78GZHKVHE4N6ULAL9QVRTU43QTD0NH8/DJJTGA] -peggy_denom = ibc/50DC83F6AD408BC81CE04004C86BF457F9ED9BF70839F8E6BA6A3903228948D7 -decimals = 0 - -[FACTORY/OSMO1Q77CW0MMLLUXU0WR29FCDD0TDNH78GZHKVHE4N6ULAL9QVRTU43QTD0NH8/TEST] -peggy_denom = ibc/40C510742D7CE7F5EB2EF894AA9AD5056183D80628A73A04B48708A660FD088D -decimals = 0 - -[FACTORY/SEI189ADGUAWUGK3E55ZN63Z8R9LL29XRJWCA636RA7V7GXUZN98SXYQWZT47L/4TLQQCLAOKKFNFUPJA9O39YBKUWHR1F8N29TZ3HEBFP2] -peggy_denom = ibc/482A0E8D65CB9E840F728AC9EEC03DDE8C8117DD643635F2C52F6E9C33686834 -decimals = 0 - -[FACTORY/SEI189ADGUAWUGK3E55ZN63Z8R9LL29XRJWCA636RA7V7GXUZN98SXYQWZT47L/9FELVUHFO6YWL34ZALGPBCPZDK9MD1TAZMYCGH45QSHH] -peggy_denom = ibc/8A8AA255C5C0C1C58A35D74FE992620E10292BDCE1D2C7F8C7C439D642C42040 -decimals = 0 - -[FACTORY/SEI189ADGUAWUGK3E55ZN63Z8R9LL29XRJWCA636RA7V7GXUZN98SXYQWZT47L/9HJDBDAXQQQHF5HHAPUYKELNCBA38XQ5UONXN3TPQU5R] -peggy_denom = ibc/8CF037A7BCBFB7FC181078FF19C4C03DF4989CBC2CFF0520FB60B416A33C0C85 -decimals = 0 - -[FACTORY/SEI189ADGUAWUGK3E55ZN63Z8R9LL29XRJWCA636RA7V7GXUZN98SXYQWZT47L/HQ4TUDZHRBNXW3TFA5N6M52NVMVCC19XGGBYDIJKCD6H] -peggy_denom = ibc/03B0B4643FCA066FC383F781AAC5A238D1E433BFFEF210E93C8BF6F1D9DF29E4 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/2WB6UEMFC9WLC2EYYVHA6QNWHKBWZUXDOOXSG6XXVVOS] -peggy_denom = ibc/8D59D4FCFE77CA4F11F9FD9E9ACA645197E9BFFE48B05ADA172D750D3C5F47E7 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/3WFTBTQKJWFXFWHTSG6FJALTBPNALHN3BHFSMDVEVDXT] -peggy_denom = ibc/6C1F980F3D295DA21EC3AFD71008CC7674BA580EBEDBD76FD5E25E481067AF09 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/576UQXYQRJFDQZDRVBNXIHN467IPUC12A5YN8V8H99F8] -peggy_denom = ibc/0F18C33D7C2C28E24A67BEFA2689A1552DCE9856E1BB3A16259403D5398EB23C -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5BWQPR48LUBD55SZM5I62ZK7TFKDDCKHBT48YY6MNBDP] -peggy_denom = ibc/70F4C3604BE1891AB6164B504BA33D83C5E0D9A7868DABD75C59D1B33959360D -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5CKYTGHOHU1VFNPD6IXDKYTM3CKTTZ1MECDYLUGGF4ZT] -peggy_denom = ibc/3C2EEA34EAF26698EE47A58FA2142369CE42E105E8452E1C074A32D34431484B -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5EMIVVPG3IAY8OU5PD8YZJ16ECNFQAZRQKRVP1RQ2MN2] -peggy_denom = ibc/E5C73EB0B0C185B59ED34665650485E1E3A2AA4F82485DB3EB191B3F6A3044A1 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5HY9NZUXOQJPOIZ1KEMUDKASJBNYWA5TO7PTASX1KTMZ] -peggy_denom = ibc/1A0B843A3A95489066351F828E201BC9702126DD25061E5996FEA057ECF93AF3 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/5MEVZ64BBVSZQACQCTQ2ZFWTMNQ5UKWNMADDSJDRUQTY] -peggy_denom = ibc/B7936BF07D9035C66C83B81B61672A05F30DE4196BE0A016A6CD4EDD20CB8F24 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/6WMMXNYNI8TYB32CCAGPOPRR6NHLKX4J9KPGV5MOBNUT] -peggy_denom = ibc/13055E6ECA7C05091DD7B93DF81F0BB12479779DE3B9410CF445CC34B8361664 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/7KQX8BVDA8W4EDPED8OHQHSFJSGF79XDCXCD8ELUWS7G] -peggy_denom = ibc/0A44483A7AFF7C096B2A4FB00A12E912BE717CD7703CF7F33ED99DB35230D404 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/8IUAC6DSELVI2JDUTWJXLYTSZT8R19ITXEBZSNRELLNI] -peggy_denom = ibc/6D434846D1535247426AA917BBEC53BE1A881D49A010BF7EDACBFCD84DE4A5B8 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/8SYGCZLRJC3J7QPN2BNBX6PIGCARHYX8RBHVANNFVHCA] -peggy_denom = ibc/0D84DE10252BC9D46B3454929129F76F13B03380E83ADBD9DD94A8D07E5555E2 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/9WEDXCI5EPVG2XK6VTIKKXHIJYUQ79U6UZPWBNIF1CET] -peggy_denom = ibc/C2C022DC63E598614F39C575BC5EF4EC54E5D081365D9BE090D75F743364E54D -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/ASSYBMK2D3FMNTRGTD539XWDGWMJ7UV8VVXQTWTJYQBW] -peggy_denom = ibc/7A39488A287BF7DBC4A33DDA2BE3DDAC0F281FBCFF23934B7194893C136AAA99 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/BJQMPMWFUPHE7QR3V8RLCZH8AOH2QFI2S1Z8649B62TY] -peggy_denom = ibc/4F72D2F3EAFB61D8615566B3C80AEF2778BB14B648929607568C79CD90416188 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/BSWYXU2ZJFGASAU3ALDWNZMCDWENWHWPFWALPYNA7WZV] -peggy_denom = ibc/CB8E08B5C734BDA8344DDCFE5C9CCCC91521763BA1BC9F61CADE6E8F0B556E3D -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/CROEB5ZF21EA42EZHNPCV1JJ1JANLY4A1SQL6Y4USHGR] -peggy_denom = ibc/8E7F71072C97C5D8D19978C7E38AE90C0FBCCE551AF95FEB000EA9EBBFD6396B -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/CV4GKZRFUHNZTCJUDGDODRUP397E9NM7HMAQFWSCPVJJ] -peggy_denom = ibc/44EC7BD858EC12CE9C2F882119F522937264B50DD26DE73270CA219242E9C1B2 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/EFEMLPMU8BCWMBZNY5DFBYCZRDVDVDO7NLZT7GZG4A8Y] -peggy_denom = ibc/366870891D57A5076D117307C42F597A000EB757793A9AB58019660B896292AA -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/EH6T4HGFF8MVEKYH5CSA7ZYOQ5HGKNNLF8QQ9YHSSU7J] -peggy_denom = ibc/AA2394D484EADAC0B982A8979B18109FAEDD5D47E36D8153955369FEC16D027B -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/EJ6P2SMCEENKLSZR2PWSCK9L1LUQWGKSMD3IVDYMFAJQ] -peggy_denom = ibc/6912080A54CAB152D10CED28050E6DBE87B49E4F77D6BA6D54A05DBF4C3CCA88 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/F6QDZRJBTFMK1BNMRWS1D9UPQQKHE25QQR2BMPETULJB] -peggy_denom = ibc/473D128E740A340B0663BD09CFC9799A0254564448B62CAA557D65DB23D0FCCD -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/FRBRCKDFFWHKIHIMZRWBPQRYM65UJKYDSF4J3QKSASJ9] -peggy_denom = ibc/E2C56B24C032D2C54CF12EAD43432D65FDF22C64E819F97AAD3B141829EF3E60 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/G4B8ZJQ7EUQVTWGBOKQIHYYA5PZHQ1BLIYAEK3YW9EN8] -peggy_denom = ibc/683CD81C466CF3678E78B5E822FA07F0C23107B1F8FA06E80EAD32D569C4CF84 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/G7V2W3U8NKGTTBZYWTUTCVUXM1RVTAHYGPO3IDMPBDG] -peggy_denom = ibc/43FE0A8A934D3A708B52F5B31B3591BF3B53EBBCEB4B3C4310A5A3D9D02D3D1D -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/G8PQ2HELLT8UBJOCFKKD3PNMTGZO6HNTSEEUJUGN9DAJ] -peggy_denom = ibc/65CF217605B92B4CD37AC22955C5C59DE39CFD2A7A2E667861CCAFC810C4F5BD -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/GAUUVZGKJWPMWE3MGGCS6UG2LOXTRF7PUTXAJA22THCF] -peggy_denom = ibc/9FE18329D872CDD1D794443A672FFE16F2983677451781DC98C4403AD461159E -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/GGH9UFN1SEDGRHZEKMYRKT5568VBBXZK2YVWNSD6PBXT] -peggy_denom = ibc/389982EAC0D365D49FABD2DA625B9EB2C5D4369EFC09FA05D7D324055A9B2FE7 -decimals = 0 - -[FACTORY/WORMHOLE14EJQJYQ8UM4P3XFQJ74YLD5WAQLJF88FZ25YXNMA0CNGSPXE3LES00FPJX/HJK1XMDRNUBRRPKKNZYUI7SWWDMJXZASYSZQGYNCQOU3] -peggy_denom = ibc/126D6F24002F098804B70C133E0BBCEE40EE2ED489373C648805FEA4FF206333 -decimals = 0 - -[FACTORY01] -peggy_denom = inj1q8h6pxj73kv36ehv8dx9d6jd6qnphmr0xydx2h -decimals = 6 - -[FACTORY:KUJIRA13RYRY75S34Y4SL5ST7G5MHK0HE8RC2NN7AH6SL:SPERM] -peggy_denom = ibc/EBC2F00888A965121201A6150B7C55E0941E49438BC7F02385A632D6C4E68E2A -decimals = 0 - -[FACTORY:KUJIRA1E224C8RY0NUUN5EXPXM00HMSSL8QNSJKD02FT94P3M2A33XKED2QYPGYS3:URCPT] -peggy_denom = ibc/49994E6147933B46B83CCEDE3528C6B3E5960ECE5A85548C2A519CF3B812E8B9 -decimals = 0 - -[FACTORY:KUJIRA1JELMU9TDMR6HQG0D6QW4G6C9MWREXRZURYH50FWCAVCPTHP5M0UQ20853H:URCPT] -peggy_denom = ibc/E970A80269F0867B0E9C914004AB991E6AF94F3EF2D4E1DFC92E140ACB6BBD5C -decimals = 0 - -[FACTORY:KUJIRA1YNTEGC5V3TVL0XFRDE0RUPNT9KFNX0SY9LYTGE9G2MRYJKNUDK6QG4ZYW9:URCPT] -peggy_denom = ibc/D4D75686C76511349744536403E94B31AC010EB6EA1B579C01B2D64B6888E068 -decimals = 0 - -[FAITH] -peggy_denom = inj1efjaf4yuz5ehncz0atjxvrmal7eeschauma26q -decimals = 6 - -[FAMILY] -peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY -decimals = 6 - -[FAP] -peggy_denom = inj1qekjz857yggl23469xjr9rynp6padw54f0hhkh -decimals = 18 - -[FAST] -peggy_denom = inj1m8wfsukqzxt6uduymrpkjawvpap3earl4p2xlt -decimals = 8 - -[FCS] -peggy_denom = inj1h7smsl8nzjfeszy03cqnjn2yvf629kf3m02fay -decimals = 18 - -[FCUK] -peggy_denom = inj1j3gg49wg40epnsd644s84wrzkcy98k2v50cwvv -decimals = 18 - -[FDA] -peggy_denom = inj174zq6m77dqvx4e56uqvjq25t7qq5ukmt2zhysh -decimals = 18 - -[FDAPERP] -peggy_denom = inj1zl5uwywdkgchs54ycp8f84cedz29fhwz0pzvjd -decimals = 18 - -[FDC] -peggy_denom = inj13pff0vsvfhnhcs4fkd609cr2f749rw22hznhar -decimals = 6 - -[FDC3] -peggy_denom = inj1zmpydq6mlwfj246jk9sc5r7898jgcks9rj87mg -decimals = 6 - -[FDC40624A] -peggy_denom = inj1est038f5zfdj7qp3ktmqtygfkef5wj6fdl8nx2 -decimals = 6 - -[FDC40624B] -peggy_denom = inj1gukq56dd9erzmssdxp305g8wjf7ujz0kc46m6e -decimals = 6 - -[FDC40624C] -peggy_denom = inj1623nrzk2us368e6ecl7dfe4tdncqykx76ycvuy -decimals = 6 - -[FDC40625A] -peggy_denom = inj1t3zvq2n5rl2r902zmsynaysse2vj0t4c6zfjlv -decimals = 6 - -[FDC40625B] -peggy_denom = inj1m4n783st9cvc06emtgl29laypf2980j5j9l3rs -decimals = 6 - -[FDC40625C] -peggy_denom = inj1uac3sy4jv0uu6drk2pcfqmtdue7w0q0urpwgzl -decimals = 6 - -[FDC40625D] -peggy_denom = inj1shu8jhwh9g6yxx6gk6hcg89hmqccdwflljcpes -decimals = 6 - -[FDCP40626A] -peggy_denom = inj18ls4r6pw85gk39pyh4pjhln7j6504v0dtk7kxz -decimals = 6 - -[FET] -peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B -decimals = 18 - -[FIDEN] -peggy_denom = factory/inj1xm8azp82qt9cytzg5guhx8cjrjmrunv97dfdd3/FIDEN -decimals = 6 - -[FIFA] -peggy_denom = inj1ma5f4cpyryqukl57k22qr9dyxmmc99pw50fn72 -decimals = 18 - -[FIG] -peggy_denom = inj1whqqv3hrqt58laptw90mdhxx7upx40q6s7d0qx -decimals = 18 - -[FINNEON] -peggy_denom = inj1t3lzvya9p4zslzetpzcmc968a9c5jjkdycwlzf -decimals = 6 - -[FISHY] -peggy_denom = inj178xpd5dxe7dq82dtxpcufelshxxlqmzn0h0r26 -decimals = 8 - -[FIVE] -peggy_denom = inj1psx54edreejwmjsdgsad332c60y5lnzqkkudve -decimals = 8 - -[FIX] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda -decimals = 18 - -[FLOKI] -peggy_denom = factory/inj1g7nvetpqjcugdnjxd27v37m7adm4wf7wphgzq2/FLOKI -decimals = 6 - -[FLUFFY] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z -decimals = 18 - -[FLUID] -peggy_denom = inj1avj9gwyj5hzxdkpegcr47kmp8k39nrnejn69mh -decimals = 8 - -[FMLY] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY -decimals = 6 - -[FOJO] -peggy_denom = inj1n37zp9g8fzdwxca8m7wrp2e7qvrjzfemaxgp8e -decimals = 18 - -[FOMO] -peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/FOMO -decimals = 6 - -[FOMOFox] -peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/FOMOFox -decimals = 6 - -[FOO] -peggy_denom = inj1s290d2uew9k2s00zlx9xnxq84dauysc85yhds0 -decimals = 18 - -[FOOL] -peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/FOOL -decimals = 6 - -[FOORK] -peggy_denom = inj1zu6qda7u90c8w28xkru4v56ak05xpfjtwps0vw -decimals = 18 - -[FORZA] -peggy_denom = inj1p0tsq248wyk2vd980csndrtep3rz50ezfvhfrw -decimals = 18 - -[FOTHER] -peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/FOTHER -decimals = 6 - -[FOUR] -peggy_denom = inj1clfx8jgq3636249d0tr3yu26hsp3yqct6lpvcy -decimals = 18 - -[FOX] -peggy_denom = inj167naeycu49dhs8wduj5ddtq6zex9cd6hpn4k4w -decimals = 18 - -[FOXY] -peggy_denom = inj15acrj6ew42jvgl5qz53q7c9g82vf3n98l84s4t -decimals = 6 - -[FPL] -peggy_denom = inj13yutezdwjkz8xucrt6d564yqr3ava76r6q9vle -decimals = 8 - -[FRANKLYN] -peggy_denom = inj1gadcw96ha8fpd6ulgzulsuqj9vjz8dv0s57at8 -decimals = 18 - -[FRAX] -peggy_denom = ibc/3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90 -decimals = 18 - -[FREE] -peggy_denom = inj1rp9tjztx0m5ekcxavq9w27875szf8sm7p0hwpg -decimals = 18 - -[FRINJE] -peggy_denom = factory/inj1mcx5h5wfeqk334u8wx6jv3g520zwy3lh22dyp7/FRINJE -decimals = 10 - -[FRNZ] -peggy_denom = ibc/CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE -decimals = 6 - -[FROG] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s -decimals = 18 - -[FROGCOIN] -peggy_denom = inj1dljz0rexnhhxa2vnnfxerg7y0am46kdzltwwgp -decimals = 6 - -[FROGGY] -peggy_denom = factory/inj1l8pq22awax6r8hamk2v3cgd77w90qtkmynvp8q/FROGGY -decimals = 6 - -[FROGY] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGiY -decimals = 6 - -[FTC] -peggy_denom = inj1v092fpcqz0k5pf6zwz7z8v40q2yxa0elfzt2hk -decimals = 18 - -[FTM] -peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 -decimals = 18 - -[FTUNA] -peggy_denom = inj1yqm9apy8kat8fav2mmm7geshyytdld0al67ks4 -decimals = 6 - -[FUCK] -peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/FUCK -decimals = 6 - -[FUD] -peggy_denom = factory/inj1j2r6vr20cnhqz3tumd2lh9w8k8guamze3pdf7t/FUD -decimals = 6 - -[FUINJ] -peggy_denom = factory/inj1wlwsd6w84ydmsqs5swthm5hw22qm8fxrth5ggx/FUINJ -decimals = 6 - -[FUSION] -peggy_denom = inj1hpczn65hygw4aaaytxe6gvdu8h3245gjz0q2fx -decimals = 8 - -[FUSIONX] -peggy_denom = inj1a5pxsj6f8jggncw4s2cg39p25swgzdjyljw5tf -decimals = 8 - -[FUZION] -peggy_denom = inj1m8hyuja8wmfm0a2l04dgp5ntwkmetkkemw2jcs -decimals = 8 - -[FUZN] -peggy_denom = ibc/FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19 -decimals = 6 - -[FaDaCai] -peggy_denom = inj13n695lr0ps5kpahv7rkd8njh2phw475rta8kw4 -decimals = 6 - -[Fetch.ai] -peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 -decimals = 18 - -[FixedFloat] -peggy_denom = inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda -decimals = 18 - -[Fluffy] -peggy_denom = inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z -decimals = 18 - -[FollowNinjaBoy_inj] -peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/FollowNinjaBoy_inj -decimals = 6 - -[Frogy the frog] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIYY -decimals = 6 - -[FuckSol] -peggy_denom = factory/inj1na5d9jqhkyckh8gc5uqht75a74jq85gvpycp44/FUCKSOL -decimals = 6 - -[FusionX] -peggy_denom = inj1fghekhpfn2rfds6c466p38ttdm2a70gnzymc86 -decimals = 8 - -[GAINJA] -peggy_denom = inj1jnwu7u6h00lzanpl8d5qerr77zcj2vd65r2j7e -decimals = 18 - -[GALA] -peggy_denom = factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA -decimals = 6 - -[GALAXY] -peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy -decimals = 6 - -[GAMBIT-T] -peggy_denom = factory/inj1a6auh4knescu6nr4mfafs906434lw24dd0c3zn/GAMBIT-T -decimals = 6 - -[GAMBLE] -peggy_denom = factory/inj10g0paz4mx7mq2z8l9vpxz022xshc04g5kw7s43/gamble -decimals = 6 - -[GAMER] -peggy_denom = inj1gqp2upvl8ftj28amxt90dut76prdpefx3qvpck -decimals = 18 - -[GASH] -peggy_denom = ibc/98C86DE314A044503F35E8C395B745B65E990E12A77A357CBA74F474F860A845 -decimals = 6 - -[GASTON] -peggy_denom = factory/inj1sskt2d66eqsan9flcqa9vlt7nvn9hh2dtvp8ua/GASTON -decimals = 6 - -[GATE] -peggy_denom = peggy0x9d7630aDF7ab0b0CB00Af747Db76864df0EC82E4 -decimals = 18 - -[GBP] -peggy_denom = gbp -decimals = 6 - -[GCM] -peggy_denom = inj1p87lprkgg4c465scz5z49a37hf835nzkcpyeej -decimals = 18 - -[GDUCK] -peggy_denom = factory/inj1fc0ngp72an2x8zxf268xe5avfan5z4g0saz6ns/gduck -decimals = 6 - -[GEISHA] -peggy_denom = factory/inj1c5uqenss9plc5rjw5kt5dksnlvnvw5tvygxpd8/GEISHA -decimals = 6 - -[GEIST] -peggy_denom = inj1x2lg9j9pwmgnnwmhvq2g6pm6emcx7w02pnjnm6 -decimals = 8 - -[GEM] -peggy_denom = factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/gem -decimals = 6 - -[GEM DAO] -peggy_denom = ibc/8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B -decimals = 6 - -[GEMININJ] -peggy_denom = factory/inj14vrd79l2pxvqctawz39qewfh72x62pfjecxsmv/GEMININJ -decimals = 6 - -[GEMOY] -peggy_denom = inj1j5l0xc2lwqpj2duvllmegxse0dqlx5kgyjehlv -decimals = 18 - -[GENJI] -peggy_denom = factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/GENJI -decimals = 6 - -[GENZONE] -peggy_denom = inj1zh9924tws4ctzx5zmz06j09nyjs8fw6wupkadr -decimals = 8 - -[GEO] -peggy_denom = ibc/8E4953E506CF135A3ACDF6D6556ED1DB4F6A749F3910D2B4A77E2E851C4B2638 -decimals = 6 - -[GF] -peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 -decimals = 18 - -[GGBOND] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ggbond -decimals = 6 - -[GGG] -peggy_denom = inj1yrw42rwc56lq7a3rjnfa5nvse9veennne8srdj -decimals = 8 - -[GGS] -peggy_denom = factory/inj1282wzngdg46gjuttvhxumkx65fnqx0aqmyl0lu/GGS -decimals = 6 - -[GIANT] -peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/giant -decimals = 6 - -[GIFT] -peggy_denom = factory/inj1exks7fvnh9lxzgqejtlvca8t7mw47rks0s0mwa/GIFT -decimals = 6 - -[GIGA] -peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 -decimals = 5 - -[GINGER] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/GINGER -decimals = 6 - -[GINKO] -peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/ginko -decimals = 6 - -[GIRL] -peggy_denom = inj1zkmp7m0u0hll3k5w5598g4qs75t7j8qqvmjspz -decimals = 18 - -[GLODIOTOR] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/glodiotor -decimals = 6 - -[GLTO] -peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 -decimals = 6 - -[GME] -peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 -decimals = 8 - -[GMKY] -peggy_denom = factory/inj1s09n0td75x8p20uyt9dw29uz8j46kejchl4nrv/GMKY -decimals = 6 - -[GOD] -peggy_denom = inj1whzt6ct4v3zf28a6h08lpf90pglzw7fdh0d384 -decimals = 18 - -[GODDARD] -peggy_denom = ibc/3E89FBB226585CF08EB2E3C2625D1D2B0156CCC2233CAB56165125CACCBE731A -decimals = 6 - -[GODRD] -peggy_denom = ibc/CABB197E23D81F1D1A4CE56A304488C35830F81AC9647F817313AE657221420D -decimals = 6 - -[GODS] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-GODS -decimals = 6 - -[GODSTRIKE] -peggy_denom = inj1deejw5k4sxnlxgxnzsy5k2vgc9fzu257ajjcy7 -decimals = 8 - -[GODZILLA] -peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/GODZILLA -decimals = 6 - -[GOJO] -peggy_denom = factory/inj13qhzj4fr4u7t7gqj5pqy0yts07eu6k6dkjdcsx/gojo -decimals = 6 - -[GOKU] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/goku -decimals = 6 - -[GOLD] -peggy_denom = gold -decimals = 18 - -[GOLDIE] -peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/GOLDIE -decimals = 6 - -[GOLDMAN] -peggy_denom = inj140ypzhrxyt7n3fhrgk866hnha29u5l2pv733d0 -decimals = 8 - -[GOOSE] -peggy_denom = factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/goose -decimals = 6 - -[GORILLA] -peggy_denom = inj1cef5deszfl232ws7nxjgma4deaydd7e7aj6hyf -decimals = 8 - -[GPT] -peggy_denom = factory/inj168gnj4lavp3y5w40rg5qhf50tupwhaj3yvhgr0/GPT -decimals = 6 - -[GRAC] -peggy_denom = ibc/59AA66AA80190D98D3A6C5114AB8249DE16B7EC848552091C7DCCFE33E0C575C -decimals = 6 - -[GRAVITY0X30F271C9E86D2B7D00A6376CD96A1CFBD5F0B9B3] -peggy_denom = ibc/A7040C29BCCBF0062A5E9A61C39743410E77EAEE75D4FF9809E722B8EF0C9D07 -decimals = 0 - -[GRAVITY0XA0B73E1FF0B80914AB6FE0444E65848C4C34450B] -peggy_denom = ibc/FF8F4C5D1664F946E88654921D6C1E81D5C167B8A58A4E75B559BAA2DBBF0101 -decimals = 0 - -[GRAVITY0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48] -peggy_denom = ibc/461DDE568D76936B030764211887623A38C86C1D9FDE70084976EA338B40ED46 -decimals = 0 - -[GRAVITY0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2] -peggy_denom = ibc/13485841477D3E4B0C5E589F5EA72BD4EBB7A8F92E736E658A3DA656F232B4EC -decimals = 0 - -[GRAVITY0XDAC17F958D2EE523A2206206994597C13D831EC7] -peggy_denom = ibc/7422C62BA17E804695AE66DE2444F41C83DC2B7B5D26C98792610E0B1B45D139 -decimals = 0 - -[GRAVITY0XE28B3B32B6C345A34FF64674606124DD5ACECA30] -peggy_denom = ibc/57E7FEFD5872F89EB1C792C4B06B51EA565AC644EA2F64B88F8FC40704F8E9C4 -decimals = 0 - -[GREATDANE] -peggy_denom = inj195vgq0yvykunkccdzvys548p90ejuc639ryhkg -decimals = 6 - -[GREEN] -peggy_denom = inj1nlt0jkqfl6f2wlnalyk2wd4g3dq97uj8z0amn0 -decimals = 8 - -[GRENADINE] -peggy_denom = inj1ljquutxnpx3ut24up85e708hjk85hm47skx3xj -decimals = 8 - -[GRINJ] -peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/GRINJ -decimals = 6 - -[GROK] -peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/GROK -decimals = 6 - -[GRONI] -peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/groni -decimals = 6 - -[GRT] -peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 -decimals = 18 - -[GRUMPY] -peggy_denom = inj16fr4w5q629jdqt0ygknf06yna93ead2pr74gr3 -decimals = 8 - -[GUGU] -peggy_denom = ibc/B1826CEA5AE790AB7FCAE84344F113F6C42E6AA3A357CAFEAC4A05BB7531927D -decimals = 6 - -[GUPPY] -peggy_denom = ibc/F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45 -decimals = 6 - -[GYEN] -peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 -decimals = 6 - -[GZZ] -peggy_denom = inj1ec70stm6p3e6u2lmpl5vzan4pdm79vwlfgcdzd -decimals = 18 - -[Galaxy] -peggy_denom = inj13n675x36dnettkxkjll82q72zgnvsazn4we7dx -decimals = 6 - -[Gamble Gold] -peggy_denom = inj13a8vmd652mn2e7d8x0w7fdcdt8742j98jxjcx5 -decimals = 18 - -[Game Stop] -peggy_denom = inj1vnj7fynxr5a62maf34vca4fes4k0wrj4le5gae -decimals = 18 - -[Gay] -peggy_denom = inj1pw54fsqmp0ludl6vl5wfe63ddax52z5hlq9jhy -decimals = 18 - -[Geisha] -peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/geisha -decimals = 6 - -[Genny] -peggy_denom = inj1dpn7mdrxf49audd5ydk5062z08xqgnl4npzfvv -decimals = 6 - -[GoatInj] -peggy_denom = factory/inj1ua3rm4lsrse2canapg96v8jtg9k9yqzuscu766/GoatInj -decimals = 6 - -[Gorilla] -peggy_denom = factory/inj1wc7a5e50hq9nglgwhc6vs7cnskzedskj2xqv6j/Gorilla -decimals = 6 - -[GreenMarket] -peggy_denom = inj1wjd2u3wq2dwyr7zlp09squh2xrqjlggy0vlftj -decimals = 8 - -[Greenenergy] -peggy_denom = inj1aqu4y55rg43gk09muvrcel3z45nuxczukhmfut -decimals = 18 - -[Grind] -peggy_denom = inj125ry0fhlcha7fpt373kejwf8rq5h3mwewqr0y2 -decimals = 18 - -[Gryphon Staked Injective] -peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf -decimals = 18 - -[H3NSY] -peggy_denom = inj1c22v69304zlaan50gdygmlgeaw56lcphl22n87 -decimals = 8 - -[HABS] -peggy_denom = factory/inj1ddn2cxjx0w4ndvcrq4k0s0pjyzwhfc5jaj6qqv/habs -decimals = 6 - -[HACHI] -peggy_denom = factory/inj13ze65lwstqrz4qy6vvxx3lglnkkuan436aw45e/HACHI -decimals = 9 - -[HAIR] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/hair -decimals = 6 - -[HAKI] -peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/YAKUSA -decimals = 6 - -[HAL] -peggy_denom = factory/inj197jczxq905z5ddeemfmhsc077vs4y7xal3wyrm/HALLAS -decimals = 18 - -[HALVING] -peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/HALVING -decimals = 6 - -[HAMU] -peggy_denom = factory/inj1t6py7esw8z6jc8c204ag3zjevqlpfx203hqyt2/HAMU -decimals = 6 - -[HAMURAI] -peggy_denom = factory/inj1xqf6rk5p5w3zh22xaxck9g2rnksfhpg33gm9xt/hamu -decimals = 6 - -[HANZO] -peggy_denom = factory/inj1xz4h76wctruu6l0hezq3dhtfkxzv56ztg4l29t/HANZO -decimals = 6 - -[HARD] -peggy_denom = ibc/D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC -decimals = 6 - -[HATEQUNT] -peggy_denom = factory/inj1sfaqn28d0nw4q8f2cm9gvhs69ecv5x8jjtk7ul/HATEQUNT -decimals = 6 - -[HATTORI] -peggy_denom = factory/inj1h7zackjlzcld6my000mtg3uzuqdv0ly4c9g88p/HATTORI -decimals = 6 - -[HAVA] -peggy_denom = factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/uhava -decimals = 6 - -[HAVA COIN] -peggy_denom = inj1u759lmx8e6g8f6l2p08qvrekjwcq87dff0ks3n -decimals = 18 - -[HDRO] -peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro -decimals = 6 - -[HEMULE] -peggy_denom = inj1hqamaawcve5aum0mgupe9z7dh28fy8ghh7qxa7 -decimals = 18 - -[HERB] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/herb -decimals = 6 - -[HERO] -peggy_denom = inj18mqec04e948rdz07epr9w3j20wje9rpg6flufs -decimals = 6 - -[HEST] -peggy_denom = factory/inj15vj7e40j5cqvxmy8u7h9ud3ustrgeqa98uey96/HEST -decimals = 6 - -[HEXA] -peggy_denom = inj13e4hazjnsnapqvd06ngrq5zapw8gegarudzehd -decimals = 8 - -[HGM] -peggy_denom = inj14y8j4je4gs57fgwakakreevx6ultyy7c7rcmk2 -decimals = 18 - -[HINJ] -peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/hinj -decimals = 6 - -[HOUND] -peggy_denom = factory/inj1nccncwqx5q22lf4uh83dhe89e3f0sh8kljf055/HOUND -decimals = 6 - -[HOUSE] -peggy_denom = factory/inj1rvstpdy3ml3c879yzz8evk37ralz7w4dtydsqp/HOUSE -decimals = 6 - -[HRBE] -peggy_denom = factory/inj1lucykkh3kv3wf6amckf205rg5jl8rprdcq8v83/HRBE -decimals = 6 - -[HST] -peggy_denom = inj1xhvj4u6xtx3p9kr4pqzl3fdu2vedh3e2y8a79z -decimals = 18 - -[HT] -peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 -decimals = 18 - -[HUAHUA] -peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB -decimals = 6 - -[HULK] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/HULK -decimals = 6 - -[HUMP] -peggy_denom = inj1v29k9gaw7gnds42mrzqdygdgjh28vx38memy0q -decimals = 18 - -[HUOBINJ] -peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/huobinj -decimals = 6 - -[HUSKY] -peggy_denom = factory/inj1467q6d05yz02c2rp5qau95te3p74rqllda4ql7/husky -decimals = 6 - -[HYDRO] -peggy_denom = inj10r75ap4ztrpwnan8er49dvv4lkjxhgvqflg0f5 -decimals = 8 - -[HYDRO WRAPPED INJ] -peggy_denom = inj1r9qgault3k4jyp60d9fkzy62dt09zwg89dn4p6 -decimals = 18 - -[HappyGilmore] -peggy_denom = inj1h5d90rl5hmkp8mtuyc0zpjt00hakldm6wtseew -decimals = 18 - -[HarryPotterObamaSonicInu] -peggy_denom = inj1y64pkwy0m0jjd825c7amftqe2hmq2wn5ra8ap4 -decimals = 18 - -[Hava Coin] -peggy_denom = inj1fnlfy6r22slr72ryt4wl6uwpg3dd7emrqaq7ne -decimals = 18 - -[Hellooooo] -peggy_denom = inj1xj7c6r65e8asrrpgm889m8pr7x3ze7va2ypql4 -decimals = 18 - -[Hero Wars] -peggy_denom = inj1f63rgzp2quzxrgfchqhs6sltzf0sksxtl7wtzn -decimals = 8 - -[HeyDay] -peggy_denom = inj1rel4r07gl38pc5xqe2q36ytfczgcrry0c4wuwf -decimals = 6 - -[HnH] -peggy_denom = inj1e8r3gxvzu34ufgfwzr6gzv6plq55lg0p95qx5w -decimals = 8 - -[Hydro] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro -decimals = 6 - -[Hydro Protocol] -peggy_denom = inj1vkptqdl42csvr5tsh0gwczdxdenqm7xxg9se0z -decimals = 8 - -[Hydro Wrapped INJ] -peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc -decimals = 18 - -[Hydrogen oxide] -peggy_denom = factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/h2o -decimals = 6 - -[IBC] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ibc -decimals = 6 - -[IBCX] -peggy_denom = ibc/491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0 -decimals = 6 - -[IBONK] -peggy_denom = factory/inj14cm9e5n5pjgzvwe5t8zshts2t9x2lxk3zp0js2/ibonk -decimals = 6 - -[IDFI] -peggy_denom = inj13ac29xfk969qmydhq2rwekja6mxgwtdgpeq3dj -decimals = 8 - -[IDOGE] -peggy_denom = inj18nuas38jw742ezmk942j4l935lenc6nxd4ypga -decimals = 18 - -[IHOP] -peggy_denom = factory/inj17rpa60xtn3rgzuzltuwgpw2lu3ayulkdjgwaza/IHOP -decimals = 6 - -[IJ] -peggy_denom = factory/inj1hcymy0z58zxpm3esch2u5mps04a3vq2fup4j29/InjBull -decimals = 6 - -[IJT] -peggy_denom = inj1tn8vjk2kdsr97nt5w3fhsslk0t8pnue7mf96wd -decimals = 18 - -[IKINGS] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/IKINGS -decimals = 6 - -[INCEL] -peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel -decimals = 6 - -[INDUSTRY] -peggy_denom = inj1kkc0l4xnz2eedrtp0pxr4l45cfuyw7tywd5682 -decimals = 18 - -[INJ] -peggy_denom = inj -decimals = 18 - -[INJ LOUNGE] -peggy_denom = inj1dntqalk5gj6g5u74838lmrym3hslc9v3v9etqg -decimals = 8 - -[INJ TEST] -peggy_denom = factory/inj1gxf874xgdcza4rtkashrc8w2s3ulaxa3c7lmeh/inj-tt -decimals = 6 - -[INJ TO THE MOON] -peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/MOON -decimals = 6 - -[INJ-BOOST-LP] -peggy_denom = ibc/27D758827282C5C096FDC53B899A6C7713974DC0F6F7A0C2FBC00967F91E6F8B -decimals = 6 - -[INJ-USDC-LP] -peggy_denom = ibc/C2CC6309A535AD8A45E921D88EB98B7707C3228598AB1785E3EB7231967F283D -decimals = 18 - -[INJ-USDT LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1e6f0ma2j0j9duwyn7vv0jdn6qaztxgmqpr56hu -decimals = 18 - -[INJ-YIELD-LP] -peggy_denom = ibc/33807304CF00FB4481E14AF77B3B656759F9E8B17C478CB55A8C9F5CF7783FEB -decimals = 6 - -[INJA] -peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/INJA -decimals = 6 - -[INJBOT] -peggy_denom = inj1hhxn5p7gkcql23dpmkx6agy308xnklzsg5v5cw -decimals = 8 - -[INJCEL] -peggy_denom = factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/INJcel -decimals = 6 - -[INJDAO] -peggy_denom = inj177wz9fpk6xjfrr7ex06sv5ukh0csgfak7x5uaq -decimals = 8 - -[INJDINO] -peggy_denom = inj13fnjq02hwxejdm584v9qhrh66mt4l3j8l3yh6f -decimals = 6 - -[INJDOGE] -peggy_denom = factory/inj13zcns55uycr8lcw8q4gvdqp0jejgknk9whv8uh/INJDOGE -decimals = 6 - -[INJDOGOS] -peggy_denom = inj1kl2zc5djmp8nmwsetua8gnmvug2c3dfa3uvy2e -decimals = 18 - -[INJECT] -peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/INJECT -decimals = 6 - -[INJECTIV] -peggy_denom = factory/inj1x04zxeyrjc7ke5nt7ht3v3gkevxdk7rr0fx8qp/INJECTIV -decimals = 6 - -[INJECTIVED] -peggy_denom = inj16ccz3z2usevpyzrarggtqf5fgh8stjsql0rtew -decimals = 6 - -[INJER] -peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/INJER -decimals = 6 - -[INJERA] -peggy_denom = inj1032h3lllszfld2utcunjvk8knx2c8eedgl7r4y -decimals = 6 - -[INJESUS] -peggy_denom = inj12d7qq0lp656jkrr2d3ez55cr330f3we9c75ml6 -decimals = 8 - -[INJEVO] -peggy_denom = inj1f6fxh20pdyuj98c8l2svlky8k7z7hkdztttrd2 -decimals = 8 - -[INJEX] -peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/INJEX -decimals = 6 - -[INJFIRE] -peggy_denom = inj1544nmruy3xc3qqp84cenuzqrdnlyfkprwdfcz5 -decimals = 8 - -[INJGEN] -peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injgen -decimals = 6 - -[INJGOAT] -peggy_denom = inj1p9nluxkvuu5y9y7radpfnwemrdty74l74q2ycp -decimals = 6 - -[INJHACKTIVE] -peggy_denom = factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/INJHACKTIVE -decimals = 6 - -[INJHAT] -peggy_denom = factory/inj1uc7awz4e4kg9dakz5t8w6zzz7r62992ezsr279/injhat -decimals = 6 - -[INJI] -peggy_denom = factory/inj1nql734ta2npe48l26kcexk8ysg4s9fnacv9tvv/INJI -decimals = 6 - -[INJINU] -peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/INJINU -decimals = 6 - -[INJM] -peggy_denom = inj1czlt30femafl68uawedg63834vcg5z92u4ld8k -decimals = 18 - -[INJMEME] -peggy_denom = inj179luuhr3ajhsyp92tw73w8d7c60jxzjcy22356 -decimals = 8 - -[INJMETA] -peggy_denom = inj1m7264u6ytz43uh5hpup7cg78h6a8xus9dnugeh -decimals = 8 - -[INJMOON] -peggy_denom = inj12val9c8g0ztttfy8c5amey0adyn0su7x7f27gc -decimals = 8 - -[INJMOOON] -peggy_denom = inj1eu0zlrku7yculmcjep0n3xu3ehvms9pz96ug9e -decimals = 6 - -[INJNET] -peggy_denom = inj13ew774de6d3qhfm3msmhs9j57le9krrw2ezh3a -decimals = 8 - -[INJOFGOD] -peggy_denom = inj1snaeff6pryn48fnrt6df04wysuq0rk7sg8ulje -decimals = 8 - -[INJOY] -peggy_denom = factory/inj10zvhydqqpejrfgvl2m9swcm0dkf9kc3zsj7yr4/injoy -decimals = 6 - -[INJP] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/injp -decimals = 6 - -[INJPEPE] -peggy_denom = factory/inj15hxjpac22adg3s6znhpc27zx6ufhf6z7fseue2/injpepe -decimals = 6 - -[INJPEPE2] -peggy_denom = factory/inj1jsduylsevrmddn64hdxutcel023eavw44n63z2/INJPEPE2 -decimals = 6 - -[INJPORTAL] -peggy_denom = inj1etyzmggnjdtjazuj3eqqlngvvgu2tqt6vummfh -decimals = 8 - -[INJPREMIUM] -peggy_denom = inj18uw5etyyjqudtaap029u9g5qpxf85kqvtkyhq9 -decimals = 8 - -[INJPRO] -peggy_denom = inj15x75x44futqdpx7mp86qc6dcuaqcyvfh0gpxp5 -decimals = 8 - -[INJS] -peggy_denom = factory/inj1yftyfrc720nhrzdep5j70rr8dm9na2thnrl7ut/injs -decimals = 6 - -[INJSANTA] -peggy_denom = inj1qpepg77mysjjqlm9znnmmkynreq9cs2rypwf35 -decimals = 8 - -[INJSHIB] -peggy_denom = inj1tty2w6sacjpc0ma6mefns27qtudmmp780rxlch -decimals = 8 - -[INJSWAP] -peggy_denom = inj1pn5u0rs8qprush2e6re775kyf7jdzk7hrm3gpj -decimals = 8 - -[INJTOOLS] -peggy_denom = factory/inj105a0fdpnq0wt5zygrhc0th5rlamd982r6ua75r/injtools -decimals = 6 - -[INJUNI] -peggy_denom = inj1dz8acarv345mk5uarfef99ecxuhne3vxux606r -decimals = 8 - -[INJUSSY] -peggy_denom = factory/inj1s9smy53dtqq087usaf02sz984uddndwuj2f0wt/injussy -decimals = 6 - -[INJUST] -peggy_denom = factory/inj123hzxzuee7knt0lf7w9grkxtumg4kxszklmps6/INJUST -decimals = 6 - -[INJUSTICE] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/INJUSTICE -decimals = 6 - -[INJVERSE] -peggy_denom = inj1leqzwmk6xkczjrum5nefcysqt8k6qnmq5v043y -decimals = 8 - -[INJX] -peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx -decimals = 6 - -[INJXMAS] -peggy_denom = inj1uneeqwr3anam9qknjln6973lewv9k0cjmhj7rj -decimals = 8 - -[INJXSOL] -peggy_denom = inj174p4dt45793vylmt8575cltj6wadtc62nakczq -decimals = 8 - -[INJXXX] -peggy_denom = inj1pykhnt3l4ekxe6ra5gjc03pgdglavsv34vdjmx -decimals = 8 - -[INJbsc] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 -decimals = 18 - -[INJet] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw -decimals = 18 - -[INJjP] -peggy_denom = inj1xwr2fzkakfpx5afthuudhs90594kr2ka9wwldl -decimals = 8 - -[INJusd] -peggy_denom = inj1qchqhwkzzws94rpfe22qr2v5cv529t93xgrdfv -decimals = 18 - -[INUJ] -peggy_denom = inj13jhpsn63j6p693ffnfag3efadm9ds5dqqpuml9 -decimals = 18 - -[INUWIFHAT] -peggy_denom = inj1xtrzl67q5rkdrgcauljpwzwpt7pgs3jm32zcaz -decimals = 18 - -[IOA] -peggy_denom = inj1xwkqem29z2faqhjgr6jnpl7n62f2wy4nme8v77 -decimals = 18 - -[ION] -peggy_denom = ibc/1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676 -decimals = 6 - -[IOTX] -peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 -decimals = 18 - -[IPDAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai -decimals = 6 - -[IPEPE] -peggy_denom = factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/ipepe -decimals = 6 - -[IPEPER] -peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/IPEPER -decimals = 6 - -[IPandaAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai -decimals = 6 - -[ISILLY] -peggy_denom = factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/iSILLY -decimals = 6 - -[ITO] -peggy_denom = ibc/E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F -decimals = 6 - -[ITSC] -peggy_denom = inj1r63ncppq6shw6z6pfrlflvxm6ysjm6ucx7ddnh -decimals = 18 - -[IUSD] -peggy_denom = factory/inj1l7u9lv8dfqkjnc7antm5lk7lmskh8zldh9yg05/iUSD -decimals = 18 - -[IWH] -peggy_denom = factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/IWH -decimals = 6 - -[IXB] -peggy_denom = inj1p0tvxzfhht5ychd6vj8rqhm0u7g5zxl6prrzpk -decimals = 8 - -[Imol] -peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/Mol7 -decimals = 0 - -[InjBots] -peggy_denom = factory/inj1qfdgzwy6ppn4nq5s234smhhp9rt8z2yvjl2v49/InjBots -decimals = 18 - -[InjCroc] -peggy_denom = inj1dcl8q3yul8hu3htwxp8jf5ar5nqem62twjl0ga -decimals = 18 - -[InjDoge] -peggy_denom = inj1hlg3pr7mtvzcczq0se4xygscmm2c99rrndh4gv -decimals = 8 - -[InjDragon] -peggy_denom = inj1gkf6h3jwsxayy068uuf6ey55h29vjd5x45pg9g -decimals = 18 - -[InjPepe] -peggy_denom = inj19xa3v0nwvdghpj4v2lzf64n70yx7wlqvaxcejn -decimals = 8 - -[InjXsolana] -peggy_denom = inj1u82h7d8l47q3kzwvkm2mgzrskk5au4lrkntkjn -decimals = 8 - -[Inject] -peggy_denom = inj1tn88veylex4f4tu7clpkyneahpmf7nqqmvquuw -decimals = 18 - -[InjectDOGE] -peggy_denom = factory/inj1nf43yjjx7sjc3eulffgfyxqhcraywwgrnqmqjc/INJDOGE -decimals = 6 - -[Injection] -peggy_denom = inj1e8lv55d2nkjss7jtuht9m46cmjd83e39rppzkv -decimals = 6 - -[Injection ] -peggy_denom = inj15sls6g6crwhax7uw704fewmktg6d64h8p46dqy -decimals = 18 - -[Injective] -peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw -decimals = 18 - -[Injective City] -peggy_denom = factory/inj1xzl47mx87r7sx8e6cz9d3q257xtp9fue3dx073/CITY -decimals = 6 - -[Injective Genesis] -peggy_denom = inj19gm2tefdz5lpx49veyqe3dhtqqkwmtyswv60ux -decimals = 8 - -[Injective Inu] -peggy_denom = inj1pv567vvmkv2udn6llcnmnww78erjln35ut05kc -decimals = 8 - -[Injective Memes] -peggy_denom = inj1zq5mry9y76s5w7rd6eaf8kx3ak3mlssqkpzerp -decimals = 8 - -[Injective Moon] -peggy_denom = inj1tu45dzd54ugqc9fdwmce8vcpeyels45rllx4tt -decimals = 8 - -[Injective Panda] -peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo -decimals = 6 - -[Injective Protocol] -peggy_denom = peggy0x7C7aB80590708cD1B7cf15fE602301FE52BB1d18 -decimals = 18 - -[Injective Snowy] -peggy_denom = inj17hsx7q99utdthm9l6c6nvm2j8a92dr489car5x -decimals = 8 - -[Injective-X] -peggy_denom = inj1uk9ac7qsjxqruva3tavqsu6mfvldu2zdws4cg2 -decimals = 8 - -[InjectivePEPE] -peggy_denom = inj18y9v9w55v6dsp6nuk6gnjcvegf7ndtmqh9p9z4 -decimals = 18 - -[InjectiveSwap] -peggy_denom = inj1t0dfz5gqfrq6exqn0sgyz4pen4lxchfka3udn4 -decimals = 6 - -[InjectiveToMoon] -peggy_denom = inj1jwms7tyq6fcr0gfzdu8q5qh906a8f44wws9pyn -decimals = 8 - -[Injera] -peggy_denom = inj1fqn5wr483v6kvd3cs6sxdcmq4arcsjla5e5gkh -decimals = 18 - -[Injera Gem] -peggy_denom = peggy0x7872f1B5A8b66BF3c94146D4C95dEbB6c0997c7B -decimals = 18 - -[Internet Explorer] -peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb -decimals = 6 - -[Inu] -peggy_denom = factory/inj1z0my390aysyk276lazp4h6c8c49ndnm8splv7n/Inu -decimals = 6 - -[Inv] -peggy_denom = inj1ajzrh9zffh0j4ktjczcjgp87v0vf59nhyvye9v -decimals = 18 - -[Inzor] -peggy_denom = factory/inj1j7ap5xxp42urr4shkt0zvm0jtfahlrn5muy99a/Inzor -decimals = 6 - -[JAKE] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/JAKE -decimals = 6 - -[JAPAN] -peggy_denom = factory/inj13vtsydqxwya3mpmnqa20lhjg4uhg8pp42wvl7t/japan -decimals = 18 - -[JCLUB] -peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/JCLUB -decimals = 6 - -[JEDI] -peggy_denom = inj1ejfu0rrx4ypfehpms8qzlwvyqs3p6c0tk2y7w7 -decimals = 18 - -[JEET] -peggy_denom = inj1sjff8grguxkzp2wft4xnvsmrksera5l5hhr2nt -decimals = 18 - -[JEETERS] -peggy_denom = factory/inj1jxj9u5y02w4veajmke39jnzmymy5538n420l9z/jeeters -decimals = 6 - -[JEFF] -peggy_denom = factory/inj10twe630w3tpqvxmeyl5ye99vfv4rmy92jd9was/JEFF -decimals = 6 - -[JEJU] -peggy_denom = factory/inj1ymsgskf2467d6q7hwkms9uqsq3h35ng7mj6qs2/jeju -decimals = 6 - -[JELLY] -peggy_denom = factory/inj13ez8llxz7smjgflrgqegwnj258tfs978c0ccz8/JELLY -decimals = 6 - -[JESUS] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/JESUS -decimals = 6 - -[JESUSINJ] -peggy_denom = inj13tnc70qhxuhc2efyvadc35rgq8uxeztl4ajvkf -decimals = 8 - -[JIMMY] -peggy_denom = ibc/BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888 -decimals = 6 - -[JINJA] -peggy_denom = factory/inj1kr66vwdpxmcgqgw30t6duhtmfdpcvlkljgn5f7/JINJA -decimals = 6 - -[JINJAO] -peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/JINJAO -decimals = 6 - -[JINX] -peggy_denom = factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/JINX -decimals = 6 - -[JIT] -peggy_denom = factory/inj1d3nq64h56hvjvdqatk9e4p26z5y4g4l6uf2a7w/JIT -decimals = 18 - -[JITSU] -peggy_denom = inj1gjujeawsmwel2d5p78pxmvytert726sejn8ff3 -decimals = 6 - -[JITZ] -peggy_denom = inj1cuxse2aaggs6dqgq7ek8nkxzsnyxljpy9sylyf -decimals = 6 - -[JNI] -peggy_denom = factory/inj140ddmtvnfytfy4htnqk06um3dmq5l79rl3wlgy/jni -decimals = 6 - -[JOHNXINA] -peggy_denom = inj1xxqe7t8gp5pexe0qtlh67x0peqs2psctn59h24 -decimals = 6 - -[JOKER] -peggy_denom = inj1q4amkjwefyh60nhtvtzhsmpz3mukc0fmpt6vd0 -decimals = 8 - -[JPE] -peggy_denom = inj1s8e7sn0f0sgtcj9jnpqnaut3tlh7z720dsxnn7 -decimals = 18 - -[JPY] -peggy_denom = jpy -decimals = 6 - -[JSON] -peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/json -decimals = 6 - -[JSR] -peggy_denom = inj1hdc2qk2epr5fehdjkquz3s4pa0u4alyrd7ews9 -decimals = 18 - -[JTEST] -peggy_denom = inj1vvekjsupcth0g2w0tkp6347xxzk5cpx87hwqdm -decimals = 18 - -[JUDO] -peggy_denom = inj16ukv8g2jcmml7gykxn5ws8ykhxjkugl4zhft5h -decimals = 18 - -[JUKI] -peggy_denom = inj1nj2d93q2ktlxrju2uwyevmwcatwcumuejrplxz -decimals = 18 - -[JUMONG] -peggy_denom = inj1w9vzzh7y5y90j69j774trp6z0qfh8r4q4yc3yc -decimals = 6 - -[JUNO] -peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 -decimals = 6 - -[JUP] -peggy_denom = jup -decimals = 6 - -[JUSSY] -peggy_denom = inj1qydw0aj2gwv27zkrp7xulrg43kx88rv27ymw6m -decimals = 18 - -[JUTSU] -peggy_denom = inj1a7h4n3kd0nkn2hl7n22sgf4c5dj3uyvcue2gla -decimals = 6 - -[Jack] -peggy_denom = inj1qryxtqra9ym7j04r6f7v6v7tke20z6swtxdrxx -decimals = 8 - -[Jay] -peggy_denom = inj1qt007zcu57qd4nq9u7g5ffgeyyqkx2h4qfzmn4 -decimals = 18 - -[Jenner] -peggy_denom = inj1yjecs8uklzruxphv447l7urdnlguwynm5f45z7 -decimals = 18 - -[Joe] -peggy_denom = inj14jgu6cs42decuqdfwfz2j462n8lrwhs2d5qdsy -decimals = 18 - -[Joe Boden] -peggy_denom = factory/inj1wnrxrkj59t6jeg3jxzhkc0efr2y24y6knvsnmp/boden -decimals = 6 - -[KADO] -peggy_denom = inj1608auvvlrz9gf3hxkpkjf90vwwgfyxfxth83g6 -decimals = 8 - -[KAGE] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 -decimals = 18 - -[KAGECoin] -peggy_denom = factory/inj1jqu8w2qqlc79aewc74r5ts7hl85ksjk4ud7jm8/KAGE -decimals = 6 - -[KAI] -peggy_denom = factory/inj1kdvaxn5373fm4g8xxqhq08jefjhmefqjn475dc/KAI -decimals = 6 - -[KAKAPO] -peggy_denom = factory/inj14ykszmwjjsu9s6aakqc02nh3t32h9m7rnz7qd4/KAKAPO -decimals = 6 - -[KANGAL] -peggy_denom = inj1aq9f75yaq9rwewh38r0ffdf4eqt4mlfktef0q2 -decimals = 18 - -[KARATE] -peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate -decimals = 6 - -[KARMA] -peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma -decimals = 6 - -[KASA] -peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/kasa -decimals = 6 - -[KAT] -peggy_denom = factory/inj1ms8lr6y6qf2nsffshfmusr8amth5y5wnrjrzur/KAT -decimals = 6 - -[KATANA] -peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana -decimals = 6 - -[KATI] -peggy_denom = factory/inj1gueqq3xdek4q5uyh8jp5xnm0ah33elanvgc524/KATI -decimals = 6 - -[KATO] -peggy_denom = factory/inj18dsv2pywequv9c7t5s4kaayg9440hwhht6kkvx/KATO -decimals = 6 - -[KAVA] -peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 -decimals = 6 - -[KAVAverified] -peggy_denom = inj1t307cfqzqkm4jwqdtcwmvdrfvrz232sffatgva -decimals = 18 - -[KAZE BOT] -peggy_denom = factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KBT -decimals = 6 - -[KET] -peggy_denom = factory/inj1y3tkh4dph28gf2fprxy98sg7w5s7e6ymnrvwgv/KET -decimals = 6 - -[KETCHUP] -peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/KETCHUP -decimals = 6 - -[KGM] -peggy_denom = factory/inj1a9dsv5whfhqptkycx4l9uly9x684lwmwuv7l3n/KGM -decimals = 6 - -[KIBA] -peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/KIBA -decimals = 6 - -[KIDZ] -peggy_denom = factory/inj1f502ktya5h69hxs9acvf3j3d6ygepgxxh2w40u/kidz -decimals = 6 - -[KIKI] -peggy_denom = factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki -decimals = 6 - -[KIMJ] -peggy_denom = factory/inj137z9mjeja534w789fnl4y7afphn6qq7qvwhd8y/KIMJ -decimals = 6 - -[KINGELON] -peggy_denom = inj195vkuzpy64f6r7mra4m5aqgtj4ldnk2qs0zx8n -decimals = 8 - -[KINGFUSION] -peggy_denom = inj1mnzwm6fvkruendv8r63vzlw72yv7fvtngkkzs9 -decimals = 8 - -[KINGINJ] -peggy_denom = inj1a3ec88sxlnu3ntdjk79skr58uetrvxcm4puhth -decimals = 8 - -[KINGS] -peggy_denom = factory/inj1pqxpkmczds78hz8cacyvrht65ey58e5yg99zh7/kings -decimals = 6 - -[KINJ] -peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/kinj -decimals = 6 - -[KINJA] -peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/Kinja -decimals = 6 - -[KIRA] -peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA -decimals = 6 - -[KIRAINU] -peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/KIRAINU -decimals = 6 - -[KISH] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH -decimals = 18 - -[KISH6] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH6 -decimals = 6 - -[KISHU] -peggy_denom = factory/inj1putkaddmnnwjw096tfn7rfyl7jq447y74vmqzt/kishu -decimals = 6 - -[KLAUS] -peggy_denom = inj1yjgk5ywd0mhczx3shvreajtg2ag9l3d56us0f8 -decimals = 8 - -[KMT] -peggy_denom = factory/inj1av2965j0asg5qwyccm8ycz3qk0eya4873dkp3u/kermit -decimals = 6 - -[KNIGHT] -peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/knight -decimals = 6 - -[KOGA] -peggy_denom = factory/inj1npvrye90c9j7vfv8ldh9apt8t3a9mv9lsv52yd/KOGA -decimals = 6 - -[KOOG] -peggy_denom = inj1dkpmkm7j8t2dh5zqp04xnjlhljmejss3edz3wp -decimals = 18 - -[KPEPE] -peggy_denom = kpepe -decimals = 18 - -[KRINJ] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/KRINJ -decimals = 6 - -[KRIPDRAGON] -peggy_denom = inj12txuqr77qknte82pv5uaz8fpg0rsvssjr2n6jj -decimals = 8 - -[KROPA] -peggy_denom = inj1smlveclt2dakmxx36zla343qyznscaxsyza3gh -decimals = 18 - -[KROPPA] -peggy_denom = inj15x62fd9yy0d8lll00k3h66d3terjn79e29l60p -decimals = 18 - -[KRYSY] -peggy_denom = inj1jxcn5t8tmnw26r6fa27m76cw0a7zrzhyenf4c5 -decimals = 6 - -[KSO] -peggy_denom = factory/inj1waemxur3hdu8gavxrymn6axduxe8ful3rm4qcm/koskesh -decimals = 6 - -[KTN] -peggy_denom = inj18kem7dt3tpjp2mx8khujnuuhevqg4exjcd7dnm -decimals = 18 - -[KU9] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/KU9 -decimals = 6 - -[KUJI] -peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 -decimals = 6 - -[KUNAI] -peggy_denom = inj12ntgeddvyzt2vnmy2h8chz080n274df7vvr0ru -decimals = 8 - -[Kage] -peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 -decimals = 18 - -[Karma] -peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karmainj -decimals = 6 - -[Katana] -peggy_denom = inj1tj4l2qmvw22nquwqkr34v83llyzu97l65zjqsf -decimals = 6 - -[Kaz] -peggy_denom = inj1vweya4us4npaa5xdf026sel0r4qazdvzx6v0v4 -decimals = 6 - -[King] -peggy_denom = factory/inj156zqdswjfcttc8hrvwd5z3nv5n53l5xg9mqvht/King -decimals = 6 - -[KingFusion] -peggy_denom = inj1ynehe0s2kh9fqp5tka99f8wj2xgsha74h3cmtu -decimals = 8 - -[KiraWifHat] -peggy_denom = factory/inj1kujwsrwlqa7yj9545r9tfmrlqcknlmwm3rqe0q/KiraWifHat -decimals = 6 - -[Kitty] -peggy_denom = inj1pfmvtdxhl2l5e245nsfwwl78sfx090asmxnmsw -decimals = 18 - -[Klaus Project] -peggy_denom = inj1zgurc2nd5awcxmpq7q6zgh9elnxg0z9g5yn4k3 -decimals = 8 - -[Knight] -peggy_denom = inj1tvxfut7uayypz2ywm92dkvhm7pdjcs85khsenj -decimals = 18 - -[Koga] -peggy_denom = inj1npvknmdjsk7s35gmemwalxlq4dd38p68mywgvv -decimals = 18 - -[Kuso] -peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/Kuso -decimals = 6 - -[LAB] -peggy_denom = ibc/4BFC760786BE40F8C10AA8777D68C6BEFE9C95A881AD29AF1462194018AB7C0C -decimals = 6 - -[LABS] -peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs -decimals = 6 - -[LADS] -peggy_denom = ibc/5631EB07DC39253B07E35FC9EA7CFB652F63A459A6B2140300EB4C253F1E06A2 -decimals = 6 - -[LALA] -peggy_denom = inj156wqs2alkgmspj8shjje56ajgneqtjfk20w9n6 -decimals = 18 - -[LAMA] -peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA -decimals = 6 - -[LAMBO] -peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 -decimals = 18 - -[LAMBOPEPE] -peggy_denom = factory/inj1rge0wzk9hn8qgwz77m9zcznahrp5s322fa6lhu/LAMBO -decimals = 6 - -[LAVA] -peggy_denom = inj1jrykfhmfcy4eh8t3yw6ru3ypef39s3dsu46th7 -decimals = 18 - -[LBFS] -peggy_denom = inj18ssfe746a42me2j02casptrs0y2z5yak06cy4w -decimals = 8 - -[LDO] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy -decimals = 8 - -[LEGE] -peggy_denom = inj122gwdl0xl6908uhdgql2ftrezsy2ru2gme8mhc -decimals = 18 - -[LENARD] -peggy_denom = factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/LENARD -decimals = 6 - -[LEO] -peggy_denom = factory/inj1f0gj22j0vep9jt48tnt2mg97c8ysgyxllhvp68/LEO -decimals = 9 - -[LESS] -peggy_denom = inj105ke2sw329yl64m4273js3vxfxvq2kdqtz0s63 -decimals = 18 - -[LEVERKUSEN] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/LEVERKUSEN -decimals = 6 - -[LFR] -peggy_denom = inj176pze4mvaw2kv72sam0fwt3vn08axlj08e46ac -decimals = 18 - -[LFROG] -peggy_denom = inj1vhw7xadr0366hjnvet8tnpgt898vkm47faycar -decimals = 18 - -[LFrog] -peggy_denom = factory/inj1wu2kfkmrvfr34keemcmjh9zups72r5skygltrg/LFrog -decimals = 11 - -[LIBE] -peggy_denom = inj1y7cqd6x50ezv8xrgqx0lnqf4p747nyqq533ma3 -decimals = 18 - -[LIGMA] -peggy_denom = inj17mhem35tyszwpyfh6s0sr4l5p7wkj0knja9ck3 -decimals = 6 - -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA -decimals = 18 - -[LINK-WEI] -peggy_denom = ibc/6CF7D2AB610CDB3D3343E69CBDF2CFDA6053F542F4D2D9C18FAD0202AC8F9FA1 -decimals = 0 - -[LIO] -peggy_denom = factory/inj1p2nh5tx9j27eqwxvr6aj9sasttff6200tpq24k/LIO -decimals = 6 - -[LIOR] -peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/LIOR -decimals = 6 - -[LMAO] -peggy_denom = inj12d6gr7ky3nfwmsw8y455aryxc95f37dj9hnpuq -decimals = 18 - -[LMEOW] -peggy_denom = inj1wu77ndd9t2yehansltt7wkhhqfjcsah0z4jvlf -decimals = 18 - -[LNC] -peggy_denom = inj18epz5afrhu0zehdlj0mp8cfmv3vtusq6fd6ufw -decimals = 6 - -[LOCAL] -peggy_denom = factory/kujira1swkuyt08z74n5jl7zr6hx0ru5sa2yev5v896p6/local -decimals = 6 - -[LOKI] -peggy_denom = ibc/28325391B9F257ABED965813D29AE67D1FE5C58E40AB6D753250CD83306EC7A3 -decimals = 0 - -[LOL] -peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/LOL -decimals = 6 - -[LONG] -peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/long -decimals = 6 - -[LOOL] -peggy_denom = inj10wuysemk8ptnnt2n4my8qsalgkmw6yxe8wthu2 -decimals = 18 - -[LORD] -peggy_denom = inj1flek07wkz73a7ptxutumr4u5fukt6th4fwy9zn -decimals = 6 - -[LOST] -peggy_denom = inj150rlxjvk2trcm59mpwyg7hkkq8sfmdtu0tj873 -decimals = 8 - -[LOTUS] -peggy_denom = inj1luz09rzlytzdqnyp2n0cqevdxkf9u780uvsew5 -decimals = 6 - -[LOXA] -peggy_denom = inj175ut0y843p0kc4secgplsrs609uwaq3d93tp0x -decimals = 8 - -[LP AKT-MNTA] -peggy_denom = ibc/D128AB965B69D44D80AFD886D8A252C10D6B0B792B3AEA7833C7A1F95BA4BCF8 -decimals = 6 - -[LP AKT-USDC] -peggy_denom = ibc/5655C734BCF29B8E9B6F5F1EE3907B0EDE5F40E5B6C10077E27F156C2ECFB532 -decimals = 6 - -[LP ARB-MNTA] -peggy_denom = ibc/A7BBB8697F21D2CE19732D6CCE137E00B78CE83B5F38AC5E7FB163D7E77C1325 -decimals = 6 - -[LP ATOM-MNTA] -peggy_denom = ibc/67E901393C5DE5F1D26A0DBC86F352EA9CEBC6F5A1791ADAB33AB557136CD4D0 -decimals = 6 - -[LP ATOM-USDC] -peggy_denom = ibc/D56B67C987AE078C23FE8819C52824E3F700C351C4C783753AB6D9EDA49BBF66 -decimals = 6 - -[LP ATOM-USK] -peggy_denom = ibc/2A475C5F010C3745E3329E9C185B071675337A62F0B6BE3A1B0296CC7FA92D3D -decimals = 6 - -[LP AXL-MNTA] -peggy_denom = ibc/F829D655E96C070395E364658EFB2EC4B93906D44A6C1AE6A2A8821FCB7BA4B8 -decimals = 6 - -[LP Bow: wETH.axl-USK] -peggy_denom = ibc/F6C2798CF2A311F945EE28BF377BAB6AD3F35ED4D91151B8F6EC96480D53AC18 -decimals = 6 - -[LP CHEQ-MNTA] -peggy_denom = ibc/454555FFF0452DD86BC65DDE0158300132DE275CB22183ECE357EA07EBA18528 -decimals = 6 - -[LP DOT.axl-MNTA] -peggy_denom = ibc/E9BC2E73393C6C1AD36B04109F5C20CC1CDC4BCB913C8038993C8F68A0CD8474 -decimals = 6 - -[LP DYDX-MNTA] -peggy_denom = ibc/0FC1BAA3BF09FA73946A6412088FCED87D1D2368F30BDC771FB5FF6EAE0EB5E9 -decimals = 6 - -[LP DYDX-USK] -peggy_denom = ibc/AAD3BAA26896276833FBFC6AA76F7494C18D5DA01345A1C5A4F856EB94E2BD2E -decimals = 6 - -[LP DYM-MNTA] -peggy_denom = ibc/CC151284BE8E76C67E78ADAE3892C0D9084F0C802CC1EC44BFBE91EE695206E8 -decimals = 6 - -[LP FUZN-MNTA] -peggy_denom = ibc/A064F58ADEAA6DF2AE8006787DFF5E1F144FECF79F880F0140CB38800C295AC2 -decimals = 6 - -[LP INJ-MNTA] -peggy_denom = ibc/4229FC85617819AFFE8543D646BE8A41CD9F8257985A198E0DF09E54F23EC6D3 -decimals = 6 - -[LP INJ-USDC] -peggy_denom = ibc/CEE37BC241E4A3A475EEFFA9BBE024C60CF9044E0514014A80081FC2E9CB3EAE -decimals = 6 - -[LP LINK.axl-MNTA] -peggy_denom = ibc/BA3A7ACF9AEF1F3D1973ED4406EB35CF2DCB9B545D71A7F06B27A7EA918F8396 -decimals = 6 - -[LP MNTA-KUJI] -peggy_denom = ibc/AE8EDE6CB769E0EAB809204D5E770F5DF03BC35D3E5977272E6CE5147229F938 -decimals = 6 - -[LP NTRN-MNTA] -peggy_denom = ibc/77011B441A8655A392E5B6DA8AE4ADFB0D3DF3E26B069803D64B89208EC8C07E -decimals = 6 - -[LP OSMO-MNTA] -peggy_denom = ibc/CF0564CF0C15332430432E8D7C417521004EBB2EA4CB922C577BA751A64B6599 -decimals = 6 - -[LP PAXG.grv-MNTA] -peggy_denom = ibc/8C1E93AB13F5FC3E907751DA5BE4C7518E930A4C9F441523E608323C1CA35F6B -decimals = 6 - -[LP SCRT-MNTA] -peggy_denom = ibc/9FE7DE3797BC1F75E8CBE30B16CE84A3835B8A280E7E7780CE2C86C244F6253C -decimals = 6 - -[LP SHD-MNTA] -peggy_denom = ibc/B512CFCA199DCBDF098824846D2D78E1E04EBA6A5091A99472236B69B24C979E -decimals = 6 - -[LP SOL.wh-MNTA] -peggy_denom = ibc/D765CDBB85910E131773AF7072439F9C382DF0B894D2209E09D2EEFE0298EADC -decimals = 6 - -[LP SOL.wh-USK] -peggy_denom = ibc/B2AEBDD7C155653B5DF92B1FAE9C867F481B6DDA62C05795DB4D23E57D86AD0F -decimals = 6 - -[LP SOMM-MNTA] -peggy_denom = ibc/457CF9F4112FB7E765A83A1F93DE93246C1E0D5A1C83F9A909B5890A172AAC34 -decimals = 6 - -[LP STARS-MNTA] -peggy_denom = ibc/B6B6EB8527A6EE9040DBE926D378EC23CB231AC8680AF75372DBF6B7B64625A7 -decimals = 6 - -[LP TIA-MNTA] -peggy_denom = ibc/59F96C9AAFC26E872D534D483EF8648305AD440EF2E9A506F061BADFC378CE13 -decimals = 6 - -[LP UNI.axl-MNTA] -peggy_denom = ibc/4E4B25966A3CF92B796F5F5D1A70A375F32D8EF4C7E49DEC1C38441B7CA8C7CA -decimals = 6 - -[LP WHALE-MNTA] -peggy_denom = ibc/89E80D95AF2FD42A47E9746F7CFF32F3B56FE3E113B81241A6A818C8B3221C17 -decimals = 6 - -[LP ampMNTA-MNTA] -peggy_denom = ibc/8545604BFCCC408B753EB0840FF131CB34B9ED1283A9BD551F68C324B53FEF0C -decimals = 6 - -[LP qcMNTA-MNTA] -peggy_denom = ibc/23ADD2AC1D22776CE8CB37FB446E552B9AE5532B76008ADF73F75222A6ACFE19 -decimals = 6 - -[LP stOSMO-OSMO] -peggy_denom = ibc/20D8F1713F8DF3B990E23E205F1CCD99492390558022FF3FE60B1FAFCF955689 -decimals = 6 - -[LP wAVAX.axl-MNTA] -peggy_denom = ibc/57CC0316BFD206E1A8953DD6EC629F1556998EB9454152F21D51EFB5A35851EF -decimals = 6 - -[LP wBNB.axl-MNTA] -peggy_denom = ibc/2961FC233B605E5D179611D7D5C88E89DD3717081B5D06469FF27DFE83AF9BEB -decimals = 6 - -[LP wBTC-USK] -peggy_denom = ibc/537D1CA26409F995B148654024253342813E49FC68AB7C793C19413A6D605DD2 -decimals = 6 - -[LP wBTC.axl-MNTA] -peggy_denom = ibc/B73EDDE38FFE4C5782B5C6108F4977B8B4A0C13AA9EBABEBCCFC049ED5CC0968 -decimals = 6 - -[LP wBTC.axl-wBTC] -peggy_denom = ibc/C5040FF699537BCFC9D7E5907808A227A586D92E9C98A0C4CEF825783CA5EB2A -decimals = 8 - -[LP wETH.axl-MNTA] -peggy_denom = ibc/83DDCD6991A94C4ED287A029243527A14A86D4A62FB69BBEC51FB9B0156C6683 -decimals = 6 - -[LP wETH.axl-USDC] -peggy_denom = ibc/AEF9626F0FC204723F53141E9626FED43A6231D8B152F8DEC86172B9E9FFF500 -decimals = 6 - -[LP wETH.axl-USK] -peggy_denom = ibc/6E2B993CA402C047E232E4722D1CE0C73DBD47CBBE465E16F6E3732D27F37649 -decimals = 6 - -[LP wFTM.axl-MNTA] -peggy_denom = ibc/EBF34B929B7744BD0C97ECF6F8B8331E2BCA464F1E5EA702B6B40ED2F55433BD -decimals = 6 - -[LP wMATIC.axl-MNTA] -peggy_denom = ibc/942AA5D504B03747AF67B19A874D4E47DAD307E455AEB34E3A4A2ECF7B9D64C8 -decimals = 6 - -[LP wTAO.grv-MNTA] -peggy_denom = ibc/51BB7FAEEDCFC7782519C8A6FB0D7168609B2450B56FED6883ABD742AEED8CC4 -decimals = 6 - -[LP wstETH.axl-MNTA] -peggy_denom = ibc/BAB4B518D0972626B854BE5139FCAD7F1113E3787BC13013CB6A370298EFE0C1 -decimals = 6 - -[LP wstETH.axl-wETH.axl] -peggy_denom = ibc/CEECB0B01EC9BF90822BCA6A1D6D2BF4DC6291BD0C947BEE512BD4639045EAD1 -decimals = 6 - -[LP yieldETH.axl-MNTA] -peggy_denom = ibc/D410037544911319AB9F3BF0C375598AAD69A7555A5B23158484DFFC10651316 -decimals = 6 - -[LRDSVN] -peggy_denom = inj1xcrrweel03eu2fzlvmllhy52wdv25wvejn24dr -decimals = 8 - -[LUCK] -peggy_denom = factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/LUCK -decimals = 6 - -[LUCKY] -peggy_denom = inj1v8vkngk2pn2sye2zduy77lfdeaqq9cd924f5le -decimals = 18 - -[LUFFY] -peggy_denom = inj1yzz7pvx7e98u3xv4uz0tkqrm6uj684j9lvv0z4 -decimals = 6 - -[LUIGI] -peggy_denom = inj1h8yjr8ely8q8r8rlvs2zx0pmty70ajy4ud6l0y -decimals = 18 - -[LUKE] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/luke -decimals = 6 - -[LUM] -peggy_denom = ibc/2C58CBDF1C96FAD7E6B1C5EC0A484E9BD9A27E126E36AFBDD7E45F0EA17F3640 -decimals = 6 - -[LUNA] -peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 -decimals = 6 - -[LUNA / USDC LP] -peggy_denom = ibc/F7B51F1370D141AAE886E86BFFEAE64BF132BA18BB905B2B3C1840C7DF989ACF -decimals = 6 - -[LUNA-BOOST-LP] -peggy_denom = ibc/5A0436619E11E57DFE0791A79E43EDDB9084D564709BE4B8D3655D9967EAB52D -decimals = 6 - -[LUNA-USDC-LP] -peggy_denom = ibc/CBC3DCBC6559DB851F487B6A41C547A2D75DB0C54A143DDF39C04250E50DA888 -decimals = 6 - -[LUNA-USDT-LP] -peggy_denom = ibc/E06B8ECC4B080937AFD0AD0308C4E9354AB169C297F45E087D6057F0010E502D -decimals = 6 - -[LUNA-YIELD-LP] -peggy_denom = ibc/F83A39604DBA8B3886D672C572FE020A0ECF9A711BC35C7EF8F129C8B15C3107 -decimals = 6 - -[LUNAR] -peggy_denom = inj1hpu5e5620hvd7hf3t4t4em96cx9t58yefcr3uu -decimals = 8 - -[LVN] -peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 -decimals = 6 - -[LYM] -peggy_denom = peggy0xc690F7C7FcfFA6a82b79faB7508c466FEfdfc8c5 -decimals = 18 - -[Leapwifhat] -peggy_denom = factory/inj10xsan7m2gwhwjm9hrr74ej77lx8qaxk9cl7rfw/Leapwifhat -decimals = 6 - -[Leia] -peggy_denom = inj1vm24dp02njzgd35srtlfqkuvxz40dysyx7lgfl -decimals = 6 - -[Lenz] -peggy_denom = factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz -decimals = 6 - -[Leo] -peggy_denom = inj1xnqaq553d5awhzr68p5vkenrj64ueqpfzjjp0f -decimals = 18 - -[Leonardo] -peggy_denom = inj1yndh0j4dpnjuqaap7u6csta2krvhqddjwd3p9w -decimals = 18 - -[Lido DAO Token] -peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy -decimals = 8 - -[Lido Staked Ether] -peggy_denom = ibc/FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB -decimals = 18 - -[Lisaann] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/lisaann -decimals = 6 - -[Lost Paradise AI] -peggy_denom = inj1wf0d0ynpfcmpcq8h9evv2z4p0stc73x3skj96r -decimals = 8 - -[Luigi] -peggy_denom = inj1vrz0yfrlxe6mqaadmeup8g6nhhzmg7hwpfr6kz -decimals = 18 - -[Luna] -peggy_denom = ibc/0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5 -decimals = 6 - -[MAD] -peggy_denom = inj1u97mcn0sx00hnksfc9775gh5vtjhn4my340t0j -decimals = 18 - -[MADDOG] -peggy_denom = inj1y942sn0su2wxzh65xnd6h6fplajm04zl8fh0xy -decimals = 6 - -[MAFIAz] -peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MAFIAz -decimals = 6 - -[MAGA] -peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 -decimals = 9 - -[MAI] -peggy_denom = inj1wd3vgvjur8du5zxktj4v4xvny4n8skjezadpp2 -decimals = 8 - -[MAKI] -peggy_denom = factory/inj1l0pnjpc2y8f0wlua025g5verjuvnyjyq39x9q0/MAKI -decimals = 6 - -[MAMA] -peggy_denom = inj1ayukjh6wufyuymv6ehl2cmjjpvrqjf5m75ty90 -decimals = 6 - -[MAMBA] -peggy_denom = factory/inj18z5cm702ylpqz8j6gznalcw69wp4m7fsdjhnfq/mamba -decimals = 6 - -[MANEKI] -peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/MANEKI -decimals = 6 - -[MANTAINJ] -peggy_denom = inj14mf5jzda45w25d2w20z5t2ee9a47wh2tqh6ndg -decimals = 8 - -[MANTIS] -peggy_denom = inj1s6hmmyy9f2k37qqw2pryufg4arqxegurddkdp9 -decimals = 6 - -[MARA] -peggy_denom = inj1kaqrfnqy59dm6rf7skn8j05fdmdya9af0g56we -decimals = 18 - -[MARB] -peggy_denom = inj1up4k6vxrq4nhzvp5ssksqejk3e26q2jfvngjlj -decimals = 18 - -[MARC] -peggy_denom = inj1xg8d0nf0f9075zj3h5p4hku8r6ahtssxs4sq5q -decimals = 18 - -[MARD] -peggy_denom = inj177n6een54mcs8sg3hgdruumky308ehgkp9mghr -decimals = 18 - -[MARE] -peggy_denom = inj1k4ytnwu0luen8vyvahqmusxmt362r8xw3mmu55 -decimals = 18 - -[MARF] -peggy_denom = inj1phkfvvrzqtsq6ajklt0vsha78jsl3kg6wcd68m -decimals = 18 - -[MARG] -peggy_denom = inj14qypf8qd0zw3t7405n4rj86whxhyqnvacl8c9n -decimals = 18 - -[MARH] -peggy_denom = inj1sarc5fq8rlqxl9q3y6f6u5qnzumsqdn6vvvgyh -decimals = 18 - -[MARI] -peggy_denom = inj1x5wvc0k7xht6jyh04vj2dtstcrv68lps4r58d5 -decimals = 18 - -[MARJ] -peggy_denom = inj1sdxdvnn6g2c7qwfts55w4043x8qzdzrku0qp3z -decimals = 18 - -[MARK] -peggy_denom = inj1mnv033jcerdf4d3xw2kfreakahtuf0ue3xgr3u -decimals = 18 - -[MARM] -peggy_denom = inj1qls0sp552zw55df5klhv98zjueagtn6ugq292f -decimals = 18 - -[MARN] -peggy_denom = inj1q4swwrf6kvut57k8hpul7ef39vr5ka3h74dcwj -decimals = 18 - -[MARS] -peggy_denom = inj1h28xpjed0xtjwe558gr2nx7nsfx2p6sey6zduc -decimals = 8 - -[MASK] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/mask -decimals = 6 - -[MASTER] -peggy_denom = inj1at4cjadsrags6c65g4vmtnwzw93pv55kky796l -decimals = 6 - -[MATIC] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 -decimals = 18 - -[MATR1X] -peggy_denom = inj1367pnje9e8myaw04av6j2n5z7827407k4sa4m8 -decimals = 8 - -[MATR1X AI] -peggy_denom = inj18d3wkfajxh7t9cq280ggrksrchj0ymjf7cxwcf -decimals = 8 - -[MAX] -peggy_denom = factory/inj164jk46xjwsn6x4rzu6sfuvtlzy2nza0nxfj0nz/MAX -decimals = 6 - -[MAXH] -peggy_denom = inj1h97mmp9v36ljlmhllyqas0srsfsaq2ppq4dhez -decimals = 18 - -[MAXI] -peggy_denom = factory/inj1jtx66k3adkjkrhuqypkt2ld7equf3whcmj2lde/MAXI -decimals = 6 - -[MBERB] -peggy_denom = inj1d6wle0ugcg2u3hcl9unkuz7usdvhv6tx44l9qn -decimals = 6 - -[MBRN] -peggy_denom = ibc/7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67 -decimals = 6 - -[MC01] -peggy_denom = ibc/7F8D9BCCF7063FD843B5C052358466691FBEB29F75FA496A5174340B51EDA568 -decimals = 6 - -[MDRA] -peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA -decimals = 18 - -[MEAT] -peggy_denom = inj1naxd5z6h78khd90nmfguxht55eecvttus8vfuh -decimals = 6 - -[MEHTER] -peggy_denom = factory/inj1tscuvmskt4fxvqurh0aueg57x4vja683z79q4u/MEHTER -decimals = 6 - -[MEME] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl -decimals = 8 - -[MEMEAI] -peggy_denom = inj1ps72fm7jpvnp3n0ysmjcece6rje9yp7dg8ep5j -decimals = 8 - -[MEMEME] -peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE -decimals = 18 - -[MEMT] -peggy_denom = factory/inj1vust6dc470q02c35vh8z4qz22ddr0zv35pxaxe/MEMEMINT -decimals = 6 - -[MEOW] -peggy_denom = factory/inj13wngn7gt8mt2k66x3ykp9tvfk5x89ajwd7yrtr/meow -decimals = 6 - -[MESSI] -peggy_denom = inj1upun866849c4kh4yddzkd7s88sxhvn3ldllqjq -decimals = 6 - -[META] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/meta -decimals = 6 - -[METAOASIS] -peggy_denom = inj1303k783m2ukvgn8n4a2u5jvm25ffqe97236rx2 -decimals = 8 - -[METAWORLD] -peggy_denom = inj1lafjpyp045430pgddc8wkkg23uxz3gjlsaf4t3 -decimals = 8 - -[MEW] -peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/mew -decimals = 6 - -[MIA] -peggy_denom = inj10mrgg498xw0qvjvnqdudvlztvvlxk6nsat9vph -decimals = 18 - -[MIB] -peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/MIB -decimals = 6 - -[MICE] -peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/MICE -decimals = 6 - -[MICHAEL] -peggy_denom = factory/inj1hem3hs6fsugvx65ry43hpcth55snyy8x4c5s89/MICHAEL -decimals = 6 - -[MICRO] -peggy_denom = inj1jnn7uf83lpl9ug5y6d9pxes9v7vqphd379rfeh -decimals = 6 - -[MIGMIG] -peggy_denom = inj1vl8swymtge55tncm8j6f02yemxqueaj7n5atkv -decimals = 6 - -[MILA] -peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/MILA -decimals = 6 - -[MILF] -peggy_denom = inj1mlahaecngtx3f5l4k6mq882h9r2fhhplsatgur -decimals = 18 - -[MILFQUNT] -peggy_denom = factory/inj164mk88yzadt26tzvjkpc4sl2v06xgqnn0hj296/MILFQUNT -decimals = 6 - -[MILK] -peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/MILK -decimals = 6 - -[MINIDOG] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3 -decimals = 18 - -[MINJ] -peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/minj -decimals = 6 - -[MIRZA] -peggy_denom = factory/inj1m6mqdp030nj6n7pa9n03y0zrkczajm96rcn7ye/MIRZA -decimals = 6 - -[MITHU] -peggy_denom = inj1uh3nt2d0q69hwsgge4z38rm2vg9h7hugdnf5wx -decimals = 6 - -[MITO-ANDR-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15s4c3kqa0j6glrgppcn0h357jac40ndyptv3sr -decimals = 18 - -[MITO-ASG-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17jdcvmkpvhgwfnukxjt6uvu2cptuqv309rz8pu -decimals = 18 - -[MITO-AUTISM-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rayjg2wktsj9aa9j5ps52v3qunn80m7fjhdstp -decimals = 18 - -[MITO-BLACK-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16vjf4nnyqvjws6chw6u3t3kmujhllj4wjn9nlh -decimals = 18 - -[MITO-COKE-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hffc8x68rp843ygjg9e4eaxj54v5w6vcev9vvu -decimals = 18 - -[MITO-DOJO-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1v8v8jepsjdsxj29hxmm62qwzmg54r75v6mq6q9 -decimals = 18 - -[MITO-ENA-USDT] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12s6eccju5addagv2f74sphfmenv9xwp0ynmtqv -decimals = 18 - -[MITO-GIGA-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1dvrvhcpq6aru0g5d9m9wjnz7utr67we5dlaq79 -decimals = 18 - -[MITO-GINGER-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1a9hcr7zf5a2ahkv5fvumyky50ww7ds2cg5tk95 -decimals = 18 - -[MITO-GME-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pww37pr6qnnndzz2azxhxl0rcvtxcftg0y70vh -decimals = 18 - -[MITO-HDRO-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zxk9xvs6mnq2m5yws8gdgqstrmcqntuedlnua3 -decimals = 18 - -[MITO-INJ-USDT] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14xy8dvgjyhqjn8dhegf9zz5g7c3yeflt0kgarp -decimals = 18 - -[MITO-IOTX-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nyv50r7vnktgpp5s22fh8nzf7ak8sthh6l7s3t -decimals = 18 - -[MITO-KIRA-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sm36lxmzynkt9q37nwspf8n6pzplktul006u08 -decimals = 18 - -[MITO-LVN-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14gmk6jg5kduvy882yjdq4967e46jaka7ffuf58 -decimals = 18 - -[MITO-MOTHER-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15599wr9jzgrt6e04xkue9l6409mlc3l7lqr38d -decimals = 18 - -[MITO-NINJA-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hw4vgqyvgw5vca224mpg2e0ccqguhnu7yawpu8 -decimals = 18 - -[MITO-NLT-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ucj4veavs4jeuhe98xx8fe6yk0n83ulvjqank3 -decimals = 18 - -[MITO-NONJA-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1p9djw5xkg7dfgteqnh3cqmef2xs6meycd2k5r5 -decimals = 18 - -[MITO-PAIN-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xkq5fd6yn2qsmnr95wmtrvfnrndusd8tlr5ezd -decimals = 18 - -[MITO-PHUC-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16mz5n3dsnal4m0emy4pa02d67hh0r70tlm8095 -decimals = 18 - -[MITO-PYTH-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r4pjz70l4ytk06dfparzd6na5qqjeq09fkxdt4 -decimals = 18 - -[MITO-PYUSD-USDT] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1k7kvdzm7n8g5xf6c733lsyp6tugvxwsnvdcgur -decimals = 18 - -[MITO-QUNT-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12hrath9g2c02e87vjadnlqnmurxtr8md7djyxm -decimals = 18 - -[MITO-SHROOM-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1g89dl74lyre9q6rjua9l37pcc7psnw66capurp -decimals = 18 - -[MITO-SMELLY-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17hm5smrnrmdr88slpfzfmyxxna9fe6xtvzlr0p -decimals = 18 - -[MITO-SNS-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1djuudn6jj6g70kunu8sgtnrvytw9e27xtzyphe -decimals = 18 - -[MITO-STRD-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ulxnf3qhjk8l383nllhglfaautcstkmth089jp -decimals = 18 - -[MITO-TALIS-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ve3uga90prrwtpsptjrhnxlfd9u0qwuf0v43ke -decimals = 18 - -[MITO-TEST-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xkq56rjtpcqgwh9yut6zwh3lxcle2yz4dljyxc -decimals = 18 - -[MITO-USDe-USDT] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r86atmuulmhzw63pqx5tp989nmupvn4fd94m7u -decimals = 18 - -[MITO-WHALE-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sqj6x44uxtmklyewqxk9frqjrkjqjjmu6u0mrm -decimals = 18 - -[MITO-XIII-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj13ly2q9g40lta4dcn7n6z9nack42r2hk64un07x -decimals = 18 - -[MITO-ZIG-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ckyym37k9u3gne0qdcpu7ty20p59d3lutepkge -decimals = 18 - -[MITO-hINJ-INJ] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1gqmr3vdr9k0hwyjkkphn9etqqsj06mm0tuj7vl -decimals = 18 - -[MIYOYO] -peggy_denom = factory/inj1xuds68kdmuhextjew8zlt73g5ku7aj0g7tlyjr/miyoyo -decimals = 6 - -[MKEY] -peggy_denom = inj1jqqysx5j8uef2kyd32aczp3fktl46aqh7jckd5 -decimals = 18 - -[MKR] -peggy_denom = mkr -decimals = 18 - -[MNC] -peggy_denom = inj1fr693adew9nnl64ez2mmp46smgn48c9vq2gv6t -decimals = 18 - -[MNG] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/mng -decimals = 6 - -[MNINJA] -peggy_denom = inj1cv3dxtjpngy029k5j0mmsye3qrg0uh979ur920 -decimals = 18 - -[MNP] -peggy_denom = inj1s02f4aygftq6yhpev9dmnzp8889g5h3juhd5re -decimals = 18 - -[MNTA] -peggy_denom = ibc/A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D -decimals = 6 - -[MOAR] -peggy_denom = ibc/D37C63726080331AF3713AA59B8FFD409ABD44F5FDB4685E5F3AB43D40108F6F -decimals = 6 - -[MOBX] -peggy_denom = ibc/D80D1912495833112073348F460F603B496092385558F836D574F86825B031B4 -decimals = 9 - -[MOGD] -peggy_denom = inj1yycep5ey53zh2388k6m2jmy4s4qaaurmjhcatj -decimals = 6 - -[MOJO] -peggy_denom = inj14ttljn98g36yp6s9qn59y3xsgej69t53ja2m3n -decimals = 18 - -[MOL] -peggy_denom = factory/inj1fnpmp99kclt00kst3ht8g0g44erxr5wx6fem9x/MOL -decimals = 6 - -[MOM] -peggy_denom = inj17p7q5jrc6y00akcjjwu32j8kmjkaj8f0mjfn9p -decimals = 6 - -[MOMO] -peggy_denom = factory/inj12kja5s3dngydnhmdm69v776mkfrf7nuzclwzc4/MOMO -decimals = 6 - -[MONKEY] -peggy_denom = factory/inj1v88cetqty588vkc5anxnm3zjcj2dmf4dwpdxry/monkey -decimals = 6 - -[MONKS] -peggy_denom = inj1fy4hd7gqtdzp6j84v9phacm3f998382yz37rjd -decimals = 18 - -[MOO] -peggy_denom = factory/inj10tj05gfpxgnmpr4q7rhxthuknc6csatrp0uxff/moo -decimals = 6 - -[MOON] -peggy_denom = factory/inj1d2gl87f9ldwemvhm8rskqzuqprrsvc5fr5nllc/MOON -decimals = 6 - -[MOONIFY] -peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify -decimals = 6 - -[MOONTRADE] -peggy_denom = inj19fzjd8rungrlmkujr85v0v7u7xm2aygxsl03cy -decimals = 8 - -[MOR] -peggy_denom = inj13vyz379revr8w4p2a59ethm53z6grtw6cvljlt -decimals = 8 - -[MORKIE] -peggy_denom = inj1k30vrj8q6x6nfyn6gpkxt633v3u2cwncpxflaa -decimals = 18 - -[MOTHER] -peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE -decimals = 6 - -[MOX] -peggy_denom = inj1w86sch2d2zmpw0vaj5sn2hdy6evlvqy5kx3mf0 -decimals = 18 - -[MPEPE] -peggy_denom = mpepe -decimals = 18 - -[MRKO] -peggy_denom = inj10wufg9exwgr8qgehee9q8m8pk25c62wwul4xjx -decimals = 8 - -[MRZ] -peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/mirza -decimals = 6 - -[MT] -peggy_denom = inj1exeh9j6acv6375mv9rhwtzp4qhfne5hajncllk -decimals = 8 - -[MUBI] -peggy_denom = factory/inj1fzhwjv2kjv7xr2h4phue5yqsjawjypcamcpl5a/mubi -decimals = 6 - -[MUSHROOM] -peggy_denom = inj1wchqefgxuupymlumlzw2n42c6y4ttjk9a9nedq -decimals = 6 - -[MUSK] -peggy_denom = inj1em3kmw6dmef39t7gs8v9atsvzkprdr03k5h5ej -decimals = 8 - -[MYRK] -peggy_denom = ibc/48D1DA9AA68C949E27BAB39B409681292035ABF63EAB663017C7BEF98A3D118E -decimals = 6 - -[MYSTERYBOX1] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/MYSTERYBOX1 -decimals = 0 - -[MacTRUMP] -peggy_denom = inj10gsw06ee0ppy7ltqeqhagle35h0pnue9nnsetg -decimals = 6 - -[Maga] -peggy_denom = inj1wey50ukykccy8h6uaacln8naz5aahhsy09h4x0 -decimals = 6 - -[Mak] -peggy_denom = inj1vpks54yg6kwtsmt9r2psclcp0gmkgma3c3rvmg -decimals = 18 - -[Maker] -peggy_denom = ibc/E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F -decimals = 18 - -[MantaInj] -peggy_denom = inj1qzc2djpnpg9n5jjcjzayl0dn4gjvft77yfau52 -decimals = 8 - -[Mark] -peggy_denom = factory/inj1uw9z3drc0ea680e4wk60lmymstx892nta7ycyt/MARK -decimals = 6 - -[Mars protocol token] -peggy_denom = ibc/A49CDCD85554B519B778B6B084AE4453EF63090217AE302FB1ADE4B80ECFA86C -decimals = 6 - -[Marshmello] -peggy_denom = inj1aw5t8shvcesdrh47xfyy9x9j0vzkhxuadzv6dw -decimals = 6 - -[MartialArts] -peggy_denom = factory/inj1tjspc227y7ck52hppnpxrmhfj3kd2pw3frjw8v/MartialArts -decimals = 6 - -[Matr1x AI] -peggy_denom = inj1gu7vdyclf2fjf9jlr6dhzf34kcxchjavevuktl -decimals = 8 - -[MelonMask] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/melonmask -decimals = 6 - -[Meme] -peggy_denom = factory/inj1c72uunyxvpwfe77myy7jhhjtkqdk3csum846x4/Meme -decimals = 4 - -[MemeCoin] -peggy_denom = inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl -decimals = 8 - -[Men In Black] -peggy_denom = factory/inj1q3xa3r638hmpu2mywg5r0w8a3pz2u5l9n7x4q2/MeninblackINJ -decimals = 6 - -[Messi] -peggy_denom = inj1lvq52czuxncydg3f9z430glfysk4yru6p4apfr -decimals = 18 - -[MetaOasis] -peggy_denom = inj1uk7dm0ws0eum6rqqfvu8d2s5vrwkr9y2p7vtxh -decimals = 8 - -[MetaPX] -peggy_denom = inj1dntprsalugnudg7n38303l3l577sxkxc6q7qt5 -decimals = 8 - -[Metti] -peggy_denom = inj1lgnrkj6lkrckyx23jkchdyuy62fj4773vjp3jf -decimals = 8 - -[Mew Cat] -peggy_denom = inj12pykmszt7g2l5h2q9h8vfk0w6aq2nj8waaqs7d -decimals = 8 - -[Miakhalifa] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/miakhalifa -decimals = 6 - -[Minions] -peggy_denom = inj1wezquktplhkx9gheczc95gh98xemuxqv4mtc84 -decimals = 6 - -[MitoTutorial] -peggy_denom = factory/inj1m3ea9vs5scly8c5rm6l3zypknfckcc3xzu8u5v/Test -decimals = 6 - -[Money] -peggy_denom = inj108rxfpdh8q0pyrnnp286ftj6jctwtajjeur773 -decimals = 18 - -[Monks] -peggy_denom = factory/inj148sjw9h9n3n8gjw37reetwdlc7v4hfhl8r7vv3/Monks -decimals = 6 - -[Moon] -peggy_denom = inj143ccar58qxmwgxr0zcp32759z5nsvseyr2gm7c -decimals = 18 - -[Moon ] -peggy_denom = inj1e3gqdkr2v7ld6m3620lgddfcarretrca0e7gn5 -decimals = 18 - -[Moonlana] -peggy_denom = inj1trg4pfcu07ft2dhd9mljp9s8pajxeclzq5cnuw -decimals = 8 - -[Morc] -peggy_denom = inj1vnwc3n4z2rewaetwwxz9lz46qncwayvhytpddl -decimals = 8 - -[MrT] -peggy_denom = inj1hrhfzv3dfzugfymf7xw37t0erp32f2wkcx3r74 -decimals = 6 - -[Multichain USDC] -peggy_denom = ibc/610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8 -decimals = 6 - -[MySymbol] -peggy_denom = inj1t6hampk8u4hsrxwt2ncw6xx5xryansh9mg94mp -decimals = 18 - -[MyTokenOne] -peggy_denom = inj13m7h8rdfvr0hwvzzvufwe2sghlfd6e45rz0txa -decimals = 18 - -[MyTokenZero] -peggy_denom = inj1kzk2h0g6glmlwamvmzq5jekshshkdez6dnqemf -decimals = 18 - -[NAKI] -peggy_denom = factory/inj10lauc4jvzyacjtyk7tp3mmwtep0pjnencdsnuc/NAKI -decimals = 6 - -[NAMI] -peggy_denom = ibc/B82AA4A3CB90BA24FACE9F9997B75359EC72788B8D82451DCC93986CB450B953 -decimals = 6 - -[NANA] -peggy_denom = inj19u2swqug0qne0wc5vkmak995vyvkyy8m33wzn0 -decimals = 6 - -[NARUTO] -peggy_denom = factory/inj16x0d8udzf2z2kjkdlr9ehdt7mawn9cckzt927t/naruto -decimals = 6 - -[NAUSD] -peggy_denom = ibc/C0BACF2DC0A2A65D13A6968913D591B57E1EF5A1133277D3BD06B86637335398 -decimals = 6 - -[NAWU] -peggy_denom = inj1y5qs5nm0q5qz62lxkeq5q9hpkh050pfn2j6mh4 -decimals = 18 - -[NBD] -peggy_denom = factory/inj1ckw2dxkwp7ruef943x50ywupsmxx9wv8ahdzkt/NBD -decimals = 6 - -[NBLA] -peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla -decimals = 6 - -[NBOY] -peggy_denom = factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/NBOY -decimals = 6 - -[NBZ] -peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D -decimals = 6 - -[NBZAIRDROP] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/NBZAIRDROP -decimals = 0 - -[NBZPROMO1] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/NBZPROMO1 -decimals = 0 - -[NCACTE] -peggy_denom = factory/inj1zpgcfma4ynpte8lwfxqfszddf4nveq95prqyht/NCACTE -decimals = 6 - -[NCH] -peggy_denom = inj1d8pmcxk2grd62pwcy4q58l2vqh98vwkjx9nsvm -decimals = 8 - -[NCOQ] -peggy_denom = factory/inj13gc6rhwe73hf7kz2fwpall9h73ft635yss7tas/NCOQ -decimals = 6 - -[NEO] -peggy_denom = inj12hnvz0xs4mnaqh0vt9suwf8puxzd7he0mukgnu -decimals = 8 - -[NEOK] -peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 -decimals = 18 - -[NEPT] -peggy_denom = inj1464m9k0njt596t88chlp3nqg73j2fzd7t6kvac -decimals = 18 - -[NETZ] -peggy_denom = inj1dg27j0agxx8prrrzj5y8hkw0tccgwfuwzr3h50 -decimals = 8 - -[NEURA] -peggy_denom = peggy0x3D1C949a761C11E4CC50c3aE6BdB0F24fD7A39DA -decimals = 18 - -[NEURAL] -peggy_denom = factory/inj1esryrafqyqmtm50wz7fsumvq0xevx0q0a9u7um/NEURAL -decimals = 6 - -[NEWF] -peggy_denom = inj1uhqyzzmjq2czlsejqjg8gpc00gm5llw54gr806 -decimals = 18 - -[NEWS] -peggy_denom = factory/inj1uw4cjg4nw20zy0y8z8kyug7hum48tt8ytljv50/NEWS -decimals = 6 - -[NEWSHROOM] -peggy_denom = inj1e0957khyf2l5knwtdnzjr6t4d0x496fyz6fwja -decimals = 6 - -[NEWT] -peggy_denom = inj1k4gxlzrqvmttwzt2el9fltnzcdtcywutxqnahw -decimals = 18 - -[NEWTON] -peggy_denom = inj14a7q9frkgtvn53xldccsvmz8lr5u6qffu7jmmx -decimals = 8 - -[NEWYEARINJ] -peggy_denom = inj1980cshwxa5mnptp6vzngha6h2qe556anm4zjtt -decimals = 8 - -[NEXO] -peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 -decimals = 18 - -[NEYMAR] -peggy_denom = inj1s2ealpaglaz24fucgjlmtrwq0esagd0yq0f5w5 -decimals = 6 - -[NFA] -peggy_denom = factory/inj1c5gk9y20ptuyjlul0w86dsxhfttpjgajhvf9lh/NFA -decimals = 6 - -[NFCTV] -peggy_denom = factory/inj14mn4n0lh52vxttlg5a4nx58pnvc2ntfnt44y4j/NFCTV -decimals = 6 - -[NFT] -peggy_denom = factory/inj1zchn2chqyv0cqfva8asg4lx58pxxhmhhhgx3t5/NFT -decimals = 6 - -[NI] -peggy_denom = factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ni -decimals = 6 - -[NICO] -peggy_denom = ibc/EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE -decimals = 18 - -[NIF] -peggy_denom = factory/inj1pnwrzhnjfncxgf4jkv3zadf542tpfc3xx3x4xw/NIF -decimals = 6 - -[NIGGA] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/nigga -decimals = 6 - -[NIJIO] -peggy_denom = inj1lwgzxuv0wkz86906dfssuwgmhld8705tzcfhml -decimals = 18 - -[NIKE] -peggy_denom = inj1e2ee7hk8em3kxqxc0uuupzpzvrcda85s3lx37h -decimals = 18 - -[NIL] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/nil -decimals = 6 - -[NIM] -peggy_denom = ibc/C1BA2AC55B969517F1FCCFC47779EC83C901BE2FC3E1AFC8A59681481C74C399 -decimals = 18 - -[NIN] -peggy_denom = inj1d0z43f50a950e2vdzrlu7w8yeyy0rp5pdey43v -decimals = 18 - -[NINISHROOM] -peggy_denom = inj1vlgszdzq75lh56t5nqvxz28u0d9ftyve6pglxr -decimals = 6 - -[NINJ] -peggy_denom = factory/inj13m5k0v69lrrng4y3h5895dlkr6zcp272jmhrve/Ninjutsu -decimals = 6 - -[NINJA] -peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja -decimals = 6 - -[NINJA MEME] -peggy_denom = inj1dypt8q7gc97vfqe37snleawaz2gp7hquxkvh34 -decimals = 18 - -[NINJA WIF HAT] -peggy_denom = inj1pj40tpv7algd067muqukfer37swt7esymxx2ww -decimals = 6 - -[NINJAGO] -peggy_denom = factory/inj19025raqd5rquku4ha42age7c6r7ws9jg6hrulx/NINJAGO -decimals = 6 - -[NINJAMOON] -peggy_denom = inj1etlxd0j3u83d8jqhwwu3krp0t4chrvk9tzh75e -decimals = 6 - -[NINJANGROK] -peggy_denom = inj17006r28luxtfaf7hn3jd76pjn7l49lv9le3983 -decimals = 6 - -[NINJAPE] -peggy_denom = factory/inj13sdyzwu7l4kwcjkyuyepxufjxtk2u59xkksp69/NINJAPE -decimals = 6 - -[NINJAPEPE] -peggy_denom = inj1jhufny7g2wjv4yjh5za97jauemwmecflvuguty -decimals = 18 - -[NINJAS] -peggy_denom = factory/inj1j3rm46nj4z8eckv5333897z7esectj64kufs4a/NINJAS -decimals = 6 - -[NINJASAMURAI] -peggy_denom = inj1kfr9r9vvflgyka50yykjm9l02wsazl958jffl2 -decimals = 6 - -[NINJATRUMP] -peggy_denom = factory/inj1f95tm7382nhj42e48s427nevh3rkj64xe7da5z/NINJATRUMP -decimals = 6 - -[NINJAWIFHAT] -peggy_denom = factory/inj1xukaxxx4yuaz6xys5dpuhe60un7ct9umju5ash/NWIF -decimals = 6 - -[NINJB] -peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb -decimals = 6 - -[NINJT] -peggy_denom = inj1tp3cszqlqa7e08zcm78r4j0kqkvaccayhx97qh -decimals = 18 - -[NINPO] -peggy_denom = inj1sudjgsyhufqu95yp7rqad3g78ws8g6htf32h88 -decimals = 6 - -[NINU] -peggy_denom = inj14057e7c29klms2fzgjsm5s6serwwpeswxry6tk -decimals = 6 - -[NINZA] -peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/NINZA -decimals = 6 - -[NITROID] -peggy_denom = inj1f7srklvw4cf6net8flmes4mz5xl53mcv3gs8j9 -decimals = 8 - -[NJO] -peggy_denom = inj1c8jk5qh2lhmvqs33z4y0l84trdu7zhgtd3aqrd -decimals = 18 - -[NLB] -peggy_denom = inj10s6mwhlv44sf03d5lfk4ntmplsujgftu587rzq -decimals = 18 - -[NLBZ] -peggy_denom = inj1qfmf6gmpsna8a3k6da2zcf7ha3tvf2wdep6cky -decimals = 18 - -[NLBZZ] -peggy_denom = inj1rn2yv784zf90yyq834n7juwgeurjxly8xfkh9d -decimals = 18 - -[NLC] -peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 -decimals = 6 - -[NLT] -peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/NLT -decimals = 18 - -[NNJG] -peggy_denom = inj1e8eqle6queaywa8w2ns0u9m7tldz9vv44s28p2 -decimals = 18 - -[NOBI] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi -decimals = 6 - -[NOBITCHES] -peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches -decimals = 6 - -[NOGGA] -peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/NOGGA -decimals = 6 - -[NOIA] -peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca -decimals = 18 - -[NOIS] -peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A -decimals = 6 - -[NONE] -peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 -decimals = 18 - -[NONJA] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck -decimals = 18 - -[NORUG] -peggy_denom = inj1vh38phzhnytvwepqv57jj3d7q2gerf8627dje3 -decimals = 18 - -[NOVA] -peggy_denom = inj1dqcyzn9p48f0dh9xh3wxqv3hs5y3lhqr43ecs0 -decimals = 8 - -[NPEPE] -peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/NPEPE -decimals = 6 - -[NSTK] -peggy_denom = ibc/35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93 -decimals = 6 - -[NTRL] -peggy_denom = ibc/4D228A037CE6EDD54034D9656AE5850BDE871EF71D6DD290E8EC81603AD40899 -decimals = 6 - -[NTRN] -peggy_denom = ibc/6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626 -decimals = 6 - -[NTRUMP] -peggy_denom = inj16dv3vfngtaqfsvd07436f6v4tgzxu90f0hq0lz -decimals = 6 - -[NTY] -peggy_denom = inj1zzfltckwxs7tlsudadul960w7rdfjemlrehmrd -decimals = 18 - -[NUDES] -peggy_denom = factory/inj1dla04adlxke6t4lvt20xdxc9jh3ed609dewter/NUDES -decimals = 6 - -[NUIT] -peggy_denom = inj1kxntfyzsqpug6gea7ha4pvmt44cpvmtma2mdkl -decimals = 18 - -[NUN] -peggy_denom = inj15sgutwwu0ha5dfs5zwk4ctjz8hjmkc3tgzvjgf -decimals = 18 - -[NUNCHAKU] -peggy_denom = inj12q6sut4npwhnvjedht574tmz9vfrdqavwq7ufw -decimals = 18 - -[NWIF] -peggy_denom = factory/inj10l4tnj73fl3wferljef802t63n9el49ppnv6a8/nwif -decimals = 6 - -[NWJNS] -peggy_denom = inj1slwarzmdgzwulzwzlr2fe87k7qajd59hggvcha -decimals = 6 - -[NYAN] -peggy_denom = factory/inj1lttm52qk6hs43vqak5qyk4hl4fzu2snq2gmg0c/nyan -decimals = 6 - -[NYX] -peggy_denom = factory/inj1fnq8xx5hye89jvhmkqycj7luyy08f3tudus0cd/nyx -decimals = 6 - -[Naruto] -peggy_denom = factory/inj1j53ejjhlya29m4w8l9sxa7pxxyhjplrz4xsjqw/naruto -decimals = 6 - -[Naruto Token] -peggy_denom = factory/inj1gwkdx7lkpvq2ewpv29ptxdy9r95vh648nm8mp0/naruto -decimals = 6 - -[Neptune Receipt ATOM] -peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 -decimals = 6 - -[Neptune Receipt INJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f -decimals = 18 - -[Neptune Receipt USDT] -peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s -decimals = 6 - -[Neptune Receipt WETH] -peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt -decimals = 18 - -[Newt] -peggy_denom = ibc/B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46 -decimals = 6 - -[Nil] -peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/Nil -decimals = 6 - -[NinjAI] -peggy_denom = factory/inj15we00jwlnd2ahpse0xfpswk8h296p80esn2wsx/NinjAI -decimals = 6 - -[Ninja] -peggy_denom = factory/inj1p0w30l464lxl8afxqfda5zxeeypnvdtx4yjc30/Ninja -decimals = 6 - -[Ninja Labs Coin] -peggy_denom = factory/inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4/NLC -decimals = 6 - -[Ninja Swap] -peggy_denom = inj1lzdvr2d257lazc2824xqlpnn4q50vuyhnndqhv -decimals = 8 - -[NinjaBoy] -peggy_denom = inj1vz8h0tlxt5qv3hegqlajzn4egd8fxy3mty2w0h -decimals = 6 - -[NinjaCoq] -peggy_denom = inj1aapaljp62znaxy0s2huc6ka7cx7zksqtq8xnar -decimals = 6 - -[NinjaWifHat] -peggy_denom = inj1gmch7h49qwvnn05d3nj2rzqw4l7f0y8s4g2gpf -decimals = 6 - -[Nlc] -peggy_denom = inj17uhjy4u4aqhtwdn3mfc4w60dnaa6usg30ppr4x -decimals = 18 - -[NoobDev] -peggy_denom = inj1qzlkvt3vwyd6hjam70zmr3sg2ww00l953hka0d -decimals = 6 - -[O9W] -peggy_denom = ibc/AA206C13A2AD46401BD1E8E65F96EC9BF86051A8156A92DD08BEF70381D39CE2 -decimals = 6 - -[OBEMA] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/obema -decimals = 6 - -[OCEAN] -peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 -decimals = 18 - -[OCHO] -peggy_denom = inj1ltzx4qjtgmjyglf3nnhae0qxaxezkraqdhtgcn -decimals = 8 - -[ODIN] -peggy_denom = ibc/6ED95AEFA5D9A6F9EF9CDD05FED7D7C9D7F42D9892E7236EB9B251CE9E999701 -decimals = 6 - -[OIN] -peggy_denom = ibc/09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE -decimals = 6 - -[OIN STORE OF VALUE] -peggy_denom = ibc/486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66 -decimals = 6 - -[OJO] -peggy_denom = inj1hg5ag8w3kwdn5hedn3mejujayvcy2gknn39rnl -decimals = 18 - -[OLY] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/oly -decimals = 6 - -[OMG] -peggy_denom = inj14wpqhfcd4q6424vskcv8xch4s0chc8cs82v4qp -decimals = 6 - -[OMI] -peggy_denom = peggy0xeD35af169aF46a02eE13b9d79Eb57d6D68C1749e -decimals = 18 - -[OMNI] -peggy_denom = peggy0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4 -decimals = 18 - -[OMT] -peggy_denom = inj1tctqgl6y4mm7qlr0x2xmwanjwa0g8nfsfykap6 -decimals = 18 - -[ONE] -peggy_denom = factory/inj1lxc2fp2n6j59q4q89vl0jfl7nz0ve7sqp6pqx4/ONE -decimals = 6 - -[ONETOONE] -peggy_denom = inj1y346c6cjj0kxpcwj5gq88la9qsp88rzlw3pg98 -decimals = 18 - -[ONI] -peggy_denom = inj1aexws9pf9g0h3032fvdmxd3a9l2u9ex9aklugs -decimals = 18 - -[ONP] -peggy_denom = inj15wvxl4xq4zrx37kvh6tsqyqysukws46reywy06 -decimals = 18 - -[ONTON] -peggy_denom = inj1a3hxfatcu7yfz0ufp233m3q2egu8al2tesu4k5 -decimals = 6 - -[OOZARU] -peggy_denom = ibc/9E161F95E105436E3DB9AFD49D9C8C4C386461271A46DBA1AB2EDF6EC9364D62 -decimals = 6 - -[OP] -peggy_denom = op -decimals = 18 - -[OPHIR] -peggy_denom = ibc/19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB -decimals = 6 - -[ORAI] -peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 -decimals = 6 - -[ORN] -peggy_denom = peggy0x0258F474786DdFd37ABCE6df6BBb1Dd5dfC4434a -decimals = 8 - -[ORNE] -peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E -decimals = 6 - -[OSMO] -peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 -decimals = 6 - -[OSMO-BOOST-LP] -peggy_denom = ibc/316146775EEA89F34D029F63EB8C8CAC5F33696CD537E23F86BDDEE93433D91A -decimals = 6 - -[OSMO-USDC-LP] -peggy_denom = ibc/EB478A301AA49FBF979839FA5F1DAF5C5DAA7FF9D330EB83920DD3E280B3DED8 -decimals = 6 - -[OSMO-YIELD-LP] -peggy_denom = ibc/C4095EE7A436CDCD76F0F9F782B67F6D62A93310A7FB9642D395802374DC67D6 -decimals = 6 - -[OUTIES] -peggy_denom = factory/inj1282wzngdg46gjuttvhxumkx65fnqx0aqmyl0lu/OUTIES -decimals = 6 - -[OUTLINES] -peggy_denom = inj1zutqugjm9nfz4tx6rv5zzj77ts4ert0umnqsjm -decimals = 6 - -[OX] -peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f -decimals = 18 - -[Ocean Protocol] -peggy_denom = inj1cxnqp39cn972gn2qaw2qc7hrryaa52chx7lnpk -decimals = 18 - -[OjoD] -peggy_denom = inj1ku6t0pgaejg2ykmyzvfwd2qulx5gjjsae23kgm -decimals = 18 - -[Omni Cat] -peggy_denom = factory/inj1vzmmdd2prja64hs4n2vk8n4dr8luk6522wdrgk/OMNI -decimals = 6 - -[OmniCat] -peggy_denom = inj188rmn0k9hzdy35ue7nt5lvyd9g9ldnm0v9neyz -decimals = 8 - -[One-Bit-Coin] -peggy_denom = inj1ju8j0xtaavmzwlvp3pkjhw04mkasgln2smqfed -decimals = 18 - -[Onj] -peggy_denom = inj1p9kk998d6rapzmfhjdp4ee7r5n4f2klu7xf8td -decimals = 8 - -[Open Exchange Token] -peggy_denom = ibc/3DC896EFF521814E914264A691D9D462A7108E96E53DE135FC4D91A370F4CD77 -decimals = 18 - -[Optimism] -peggy_denom = ibc/87D6CCE4CC5005B049334F0C36928196EBCE41B22DB21F5BA4AD1BE9CDBF2F95 -decimals = 18 - -[Oraichain] -peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 -decimals = 18 - -[Orcat] -peggy_denom = inj1ldp0pssszyguhhey5dufagdwc5ara09fnlq8ms -decimals = 18 - -[PA1N] -peggy_denom = factory/inj1u6j86hy6a2z0ksuhuh54x6kh532e7esdfjd2k7/PA1N -decimals = 10 - -[PAIN] -peggy_denom = factory/inj1u6j86hy6a2z0ksuhuh54x6kh532e7esdfjd2k7/PAIN -decimals = 6 - -[PAMBI] -peggy_denom = factory/inj1wa976p5kzd5v2grzaz9uhdlcd2jcexaxlwghyj/PAMBI -decimals = 6 - -[PANDA] -peggy_denom = factory/inj1p8ey297l9qf835eprx4s3nlkesrugg28s23u0g/PANDA -decimals = 6 - -[PANDANINJA] -peggy_denom = factory/inj1ekvx0ftc46hqk5vfxcgw0ytd8r7u94ywjpjtt8/pandaninja -decimals = 6 - -[PANTERA] -peggy_denom = inj1hl4y29q5na4krdpk4umejwvpw4v5c3kpmxm69q -decimals = 8 - -[PARABOLIC] -peggy_denom = factory/inj126c3fck4ufvw3n0a7rsq75gx69pdxk8npnt5r5/PARABOLIC -decimals = 6 - -[PASS] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/pass -decimals = 6 - -[PAXG] -peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 -decimals = 18 - -[PBB] -peggy_denom = ibc/05EC5AA673220183DBBA6825C66DB1446D3E56E5C9DA3D57D0DE5215BA7DE176 -decimals = 6 - -[PBJ] -peggy_denom = ibc/2B6F15447F07EA9DC0151E06A6926F4ED4C3EE38AB11D0A67A4E79BA97329830 -decimals = 6 - -[PBinj] -peggy_denom = inj1k4v0wzgxm5zln8asekgkdljvctee45l7ujwlr4 -decimals = 8 - -[PDIX] -peggy_denom = inj13m85m3pj3ndll30fxeudavyp85ffjaapdmhel5 -decimals = 18 - -[PEGGY0XDAC17F958D2EE523A2206206994597C13D831EC7] -peggy_denom = ibc/13EF490ADD26F95B3FEFBA0C8BC74345358B4C5A8D431AAE92CDB691CF8796FF -decimals = 0 - -[PEPE] -peggy_denom = peggy0x6982508145454Ce325dDbE47a25d4ec3d2311933 -decimals = 18 - -[PEPE Injective] -peggy_denom = inj1ytxxfuajl0fvhgy2qsx85s3t882u7qgv64kf2g -decimals = 18 - -[PEPE MEME ] -peggy_denom = inj1jev373k3l77mnhugwzke0ytuygrn8r8497zn6e -decimals = 18 - -[PEPE on INJ] -peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/pepe -decimals = 1 - -[PEPEA] -peggy_denom = factory/inj1gaf6yxle4h6993qwsxdg0pkll57223qjetyn3n/PEPEA -decimals = 6 - -[PEPINJ] -peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/pepinj -decimals = 6 - -[PETER] -peggy_denom = inj1xuqedjshmrqadvqhk4evn9kwzgkk5u9ewdua6z -decimals = 18 - -[PGN] -peggy_denom = inj1gx88hu6xjfvps4ddyap27kvgd5uxktl8ndauvp -decimals = 18 - -[PHEW] -peggy_denom = inj128usk4mqn69h9hmthqxhasyewkrhmprl7jp6lv -decimals = 6 - -[PHUC] -peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc -decimals = 6 - -[PHUC-INJ LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1jd845wf6zr4cxjne8j4580qq7cg0g5ueeaxpk4 -decimals = 18 - -[PICA] -peggy_denom = ibc/9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8 -decimals = 12 - -[PIG] -peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/pig -decimals = 6 - -[PIGS] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf -decimals = 18 - -[PIKA] -peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/PIKA -decimals = 6 - -[PIKACHU] -peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/PIKACHU -decimals = 6 - -[PIKACHU ] -peggy_denom = inj1x3m7cgzdl7402fhe29aakdwda5630r2hpx3gm2 -decimals = 18 - -[PING] -peggy_denom = inj1ty0274r9754kq8qn7hnlhmv35suq6ars7y2qnt -decimals = 18 - -[PING'S BROTHER PONG] -peggy_denom = inj1qrcr0xqraaldk9c85pfzxryjquvy9jfsgdkur7 -decimals = 18 - -[PINGDEV] -peggy_denom = inj17dlj84plm8yqjtp82mmg35494v8wjqfk29lzyf -decimals = 18 - -[PINJA] -peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja -decimals = 6 - -[PINJEON] -peggy_denom = factory/inj1l73eqd7w5vu4srwmc722uwv7u9px7k5azzsqm2/pinjeon -decimals = 6 - -[PINJU] -peggy_denom = factory/inj1j43ya8q0u5dx64x362u62yq5zyvasvg98asm0d/pinju -decimals = 6 - -[PIO] -peggy_denom = factory/inj1ufkjuvf227gccns4nxjqc8vzktfvrz6y7xs9sy/PIO -decimals = 6 - -[PIPI] -peggy_denom = factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/pipi -decimals = 6 - -[PIRATE] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/PIRATE -decimals = 6 - -[PIXDOG] -peggy_denom = inj1thsy9k5c90wu7sxk37r2g3u006cszqup8r39cl -decimals = 18 - -[PIXEL] -peggy_denom = inj1wmlkhs5y6qezacddsgwxl9ykm40crwp4fpp9vl -decimals = 8 - -[PIZZA] -peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/PIZZA -decimals = 6 - -[PKS] -peggy_denom = inj1m4z4gjrcq9wg6508ds4z2g43wcgynlyflaawef -decimals = 18 - -[PLASMA] -peggy_denom = ibc/6AB355A4BAB266B4C3959BE69AD29521A79A45EE7090A9F95F04910537404D0D -decimals = 6 - -[PLNK] -peggy_denom = ibc/020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42 -decimals = 6 - -[POINT] -peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point -decimals = 0 - -[POK] -peggy_denom = inj18nzsj7sef46q7puphfxvr5jrva6xtpm9zsqvhh -decimals = 18 - -[POLAR] -peggy_denom = inj1kgdp3wu5pr5ftuzczpgl5arg28tz44ucsjqsn9 -decimals = 8 - -[POLLY] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/POLLY -decimals = 6 - -[PONDO] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/pondo -decimals = 6 - -[PONG] -peggy_denom = inj1lgy5ne3a5fja6nxag2vv2mwaan69sql9zfj7cl -decimals = 18 - -[POOL] -peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e -decimals = 18 - -[POOLDFB8434D5A80B4EAFA94B6878BD5B85265AC6C5D37204AB899B1C3C52543DA7E] -peggy_denom = ibc/9E9FFBF2C6921D1DFB3326DF5A140D1F802E336FE0BF38C0D708B62492A7326D -decimals = 0 - -[POOR] -peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 -decimals = 8 - -[POP] -peggy_denom = factory/inj1a9dsv5whfhqptkycx4l9uly9x684lwmwuv7l3n/POP -decimals = 6 - -[POPCAT] -peggy_denom = inj1pfx2k2mtflde5yz0gz6f7xfks9klx3lv93llr6 -decimals = 18 - -[POPEYE] -peggy_denom = ibc/7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145 -decimals = 6 - -[PORK] -peggy_denom = inj14u3qj9fhrc6d337vlx4z7h3zucjsfrwwvnsrnt -decimals = 18 - -[PORNGPT] -peggy_denom = inj1ptlmxvkjxmjap436v9wrryd20r2gqf94fr57ga -decimals = 8 - -[PORTAL] -peggy_denom = factory/inj163072g64wsn8a9n2mydwlx7c0aqt4l7pjseeuu/PORTAL -decimals = 6 - -[POTIN] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/POTIN -decimals = 6 - -[POTION] -peggy_denom = factory/inj1r7thtn5zj6mv9zupelkkw645ve8kgx35rf43ja/POTION -decimals = 18 - -[POTTER] -peggy_denom = factory/inj1c7h6wnfdz0dpc5llsdxfq9yemmq9nwfpr0c59r/potter -decimals = 6 - -[PPICA] -peggy_denom = ibc/455C0229DFEB1ADCA527BAE29F4F5B30EE50F282DBEB7124D2836D2DD31514C8 -decimals = 0 - -[PRERICH] -peggy_denom = factory/inj18p952tvf264784sf9f90rpge4w7dhsjrtgn4lw/prerich -decimals = 7 - -[PROD] -peggy_denom = inj1y2mev78vrd4mcfrjunnktctwqhm7hznguue7fc -decimals = 18 - -[PROMETHEUS] -peggy_denom = inj1tugjw7wy3vhtqjap22j9e62yzrurrsu4efu0ph -decimals = 8 - -[PROOF] -peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/PROOF -decimals = 6 - -[PROP420] -peggy_denom = factory/inj1l2gcrfr6aenjyt5jddk79j7w5v0twskw6n70y8/PROP420 -decimals = 6 - -[PROTON-011] -peggy_denom = inj1vts6mh344msrwr885ej5naev87yesred5mp23r -decimals = 8 - -[PRYZM] -peggy_denom = ibc/2A88907A69C27C7481E478005AAD1976F044246E0CDB4DB3367EADA4EF38373B -decimals = 6 - -[PSPS] -peggy_denom = inj145p4shl9xdutc7cv0v9qpfallh3s8z64yd66rg -decimals = 18 - -[PSYCHO] -peggy_denom = factory/inj18aptztz0pxvvjzumpnd36szzljup0t7t3pauu8/psycho -decimals = 6 - -[PUFF] -peggy_denom = inj1f8kkrgrfd7utflvsq7xknuxtzf92nm80vkshu2 -decimals = 6 - -[PUG] -peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b -decimals = 18 - -[PUNK] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt -decimals = 18 - -[PUNKINJ] -peggy_denom = inj1vq0f9sgvg0zj5hc4vvg8yd6x9wzepzq5nekh4l -decimals = 8 - -[PUPZA] -peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/PUPZA -decimals = 6 - -[PUTIN] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/putin -decimals = 6 - -[PVP] -peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 -decimals = 8 - -[PVV] -peggy_denom = inj1rk5y4m3qgm8h68z2lp3e2dqqjmpkx7m0aa84ah -decimals = 6 - -[PYTH] -peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 -decimals = 6 - -[PYTHlegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy -decimals = 6 - -[PYUSD] -peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 -decimals = 6 - -[Panda Itamae] -peggy_denom = factory/inj1wpttce7eccrutxkddtzug4xyz4ztny88httxpg/panda -decimals = 6 - -[Pedro] -peggy_denom = inj1c6lxety9hqn9q4khwqvjcfa24c2qeqvvfsg4fm -decimals = 18 - -[People] -peggy_denom = inj13pegx0ucn2e8w2g857n5828cmvl687jgq692t4 -decimals = 6 - -[Pepe] -peggy_denom = pepe -decimals = 18 - -[Phepe] -peggy_denom = inj1mtt0a4evtfxazpxjqlv5aesdn3mnysl78lppts -decimals = 8 - -[Pie] -peggy_denom = inj1m707m3ngxje4adfr86tll8z7yzm5e6eln8e3kr -decimals = 18 - -[PigFucker] -peggy_denom = factory/inj17p7p03yn0z6zmjwk4kjfd7jh7uasxwmgt8wv26/pigfucker -decimals = 6 - -[Pigs] -peggy_denom = inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf -decimals = 18 - -[Pikachu] -peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika -decimals = 6 - -[PingDevRtard] -peggy_denom = inj1c8v52n2wyye96m4xwama3pwqkdc56gw03dlkcq -decimals = 18 - -[Point Token] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0 -decimals = 18 - -[Polkadot] -peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 -decimals = 10 - -[Popcat] -peggy_denom = popcat -decimals = 9 - -[Popeye] -peggy_denom = ibc/833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C -decimals = 6 - -[Punk DAO Token] -peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/PUNK -decimals = 6 - -[Punk Token] -peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt -decimals = 18 - -[Pyth Network (legacy)] -peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy -decimals = 6 - -[QAT] -peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen -decimals = 8 - -[QNT] -peggy_denom = peggy0x4a220E6096B25EADb88358cb44068A3248254675 -decimals = 18 - -[QOC] -peggy_denom = inj1czcj5472ukkj6pect59z5et39esr3kvquxl6dh -decimals = 8 - -[QTUM] -peggy_denom = factory/inj1jgc9ptfwgyapfrr0kgdjjnwpdqck24pp59uma3/qtum -decimals = 0 - -[QTest] -peggy_denom = factory/inj1dda3mee75nppg9drvx8zc88zdj4qzvmlnrtrnh/QTest -decimals = 6 - -[QUNT] -peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt -decimals = 6 - -[QUNT-INJ LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1l6e65hq8w79zepulpt768rj8qd2e2qejxl5uga -decimals = 18 - -[QUOK] -peggy_denom = factory/inj1jdnjwhcjhpw8v0cmk80r286w5d426ns6tw3nst/QUOK -decimals = 6 - -[Quants] -peggy_denom = factory/inj1yttneqwxxc4qju4p54549p6dq2j0d09e7gdzx8/Quants -decimals = 6 - -[RAA] -peggy_denom = inj1vzpjnmm4s9qa74x2n7vgcesq46afjj5yfwvn4q -decimals = 18 - -[RAB] -peggy_denom = inj1xmdyafnth7g6pvg6zd687my3ekw3htvh95t2c8 -decimals = 18 - -[RAC] -peggy_denom = inj1y6dgj675ttk2tzeasdwsk6n7etn0cfh9wz20vy -decimals = 18 - -[RAD] -peggy_denom = inj1r9wxpyqp4a75k9dhk5qzcfmkwtrg7utgrvx0zu -decimals = 18 - -[RAE] -peggy_denom = inj1lvtcdka9prgtugcdxeyw5kd9rm35p0y2whwj7j -decimals = 18 - -[RAF] -peggy_denom = inj1l8hztn806saqkacw8rur4qdgexp6sl7k0n6xjm -decimals = 18 - -[RAG] -peggy_denom = inj1k45q0qf0jwepajlkqcx5a6w833mm0lufzz0kex -decimals = 18 - -[RAH] -peggy_denom = inj1mpcxzhkk0c7wjrwft2xafsvds9un59gfdml706 -decimals = 18 - -[RAI] -peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 -decimals = 18 - -[RAMEN] -peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen -decimals = 6 - -[RAMEN2] -peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN2 -decimals = 6 - -[RAMEN22] -peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN22 -decimals = 6 - -[RAMENV2] -peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2 -decimals = 6 - -[RAMSES] -peggy_denom = inj1jttaxqcjtsys54k3m6mx4kzulzasg4tc6hhpp6 -decimals = 8 - -[RAPTR] -peggy_denom = ibc/592FDF11D4D958105B1E4620FAECAA6708655AB815F01A01C1540968893CDEBF -decimals = 6 - -[RATJA] -peggy_denom = inj1kl5pzllv782r8emj3umgn3dwcewc6hw6xdmvrv -decimals = 18 - -[RAY] -peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/RAY -decimals = 6 - -[REAL] -peggy_denom = inj1uhralmk73lkxeyd9zhskmzz44lsmcxneluqgp9 -decimals = 18 - -[REALS] -peggy_denom = inj1g3l8chts5wrt437tkpmuy554wcky6devphqxf0 -decimals = 18 - -[RED] -peggy_denom = inj15ytmt6gng36relzntgz0qmgfqnygluz894yt28 -decimals = 18 - -[REDINJ] -peggy_denom = inj1jkts7lhvwx27z92l6dwgz6wpyd0xf9wu6qyfrh -decimals = 18 - -[REFIs] -peggy_denom = factory/inj1uklzzlu9um8rq922czs8g6f2ww760xhvgr6pat/REFIs -decimals = 6 - -[REIS] -peggy_denom = ibc/444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB -decimals = 6 - -[RETRO] -peggy_denom = ibc/ACDEFBA440F37D89E2933AB2B42AA0855C30852588B7DF8CD5FBCEB0EB1471EB -decimals = 6 - -[RHINO] -peggy_denom = inj1t5f60ewnq8hepuvmwnlm06h0q23fxymldh0hpr -decimals = 6 - -[RIBBIT] -peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe -decimals = 18 - -[RICE] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/rice -decimals = 12 - -[RICHINJ] -peggy_denom = inj143l8dlvhudhzuggrp5sakwmn8kw24hutr43fe2 -decimals = 8 - -[RICK] -peggy_denom = factory/inj1ga7xu92w0yxhedk92v6ckge6q76vx2hxcwxsxx/RICK -decimals = 6 - -[RIP] -peggy_denom = inj1eu8ty289eyjvm4hcrg70n4u95jggh9eekfxs5y -decimals = 18 - -[RITSU] -peggy_denom = inj17cqglnfpx7w20pc6urwxklw6kkews4hmfj6z28 -decimals = 18 - -[RKO] -peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/RKO -decimals = 6 - -[RKT] -peggy_denom = factory/inj1af5v85xm5upykzsjj29lpr9dyp4n37746kpfmq/RKT -decimals = 6 - -[RNDR] -peggy_denom = inj1092d3j7yqup5c8lp92vv5kadl567rynj59yd92 -decimals = 18 - -[ROAR] -peggy_denom = ibc/E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C -decimals = 6 - -[ROB] -peggy_denom = inj1x6lvx8s2gkjge0p0dnw4vscdld3rdcw94fhter -decimals = 18 - -[ROCK] -peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/rock -decimals = 6 - -[ROCKET] -peggy_denom = inj1zrw6acmpnghlcwjyrqv0ta5wmzute7l4f0n3dz -decimals = 8 - -[ROLL] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3 -decimals = 18 - -[ROM] -peggy_denom = inj16w9qp30vrpng8kr83efvmveen688klvtd00qdy -decimals = 6 - -[ROMAN] -peggy_denom = inj1h3z3gfzypugnctkkvz7vvucnanfa5nffvxgh2z -decimals = 18 - -[RONI] -peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/RONI -decimals = 6 - -[RONIN] -peggy_denom = inj142hawfqncg5hd3z7rvpvx7us0h7c4mwjmeslpu -decimals = 6 - -[RONOLDO] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/ronoldo -decimals = 6 - -[ROOT] -peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 -decimals = 6 - -[RSNL] -peggy_denom = factory/inj1uvexgrele9lr5p87kksg6gmz2telncpe0mxsm6/RSNL -decimals = 6 - -[RSTK] -peggy_denom = ibc/102810E506AC0FB1F14755ECA7A1D05066E0CBD574526521EF31E9B3237C0C02 -decimals = 6 - -[RTD] -peggy_denom = inj1ek524mnenxfla235pla3cec7ukmr3fwkgf6jq3 -decimals = 18 - -[RUDY] -peggy_denom = factory/inj1ykggxun6crask6eywr4a2lfy36f4we5l9rg2an/RUDY -decimals = 6 - -[RUG] -peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/RUG -decimals = 6 - -[RUGAOI] -peggy_denom = factory/inj1pe8rs2gfmem5ak8vtqkduzkgcyargk2fg6u4as/RUGAOI -decimals = 6 - -[RUGMYASS] -peggy_denom = inj18n9rpsstxsxgpmgegkn6fsvq9x3alqekqddgnq -decimals = 18 - -[RUGPULL] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/RUGPULL -decimals = 6 - -[RUMBLERZ] -peggy_denom = inj1pcwdvq866uqd8lhpmasya2xqw9hk2u0euvvqxl -decimals = 8 - -[RUNE] -peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb -decimals = 18 - -[RYAN] -peggy_denom = inj1mng4fr0ckvrq8xvgtsjrj6mqzm7passfzjqxcx -decimals = 6 - -[RYU] -peggy_denom = factory/inj1cm0jn67exeqm5af8lrlra4epfhyk0v38w98g42/ryu -decimals = 18 - -[Rai Reflex Index] -peggy_denom = ibc/27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768 -decimals = 18 - -[RealMadrid] -peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/RealMadrid -decimals = 6 - -[Rice Token] -peggy_denom = inj1j6qq40826d695eyszmekzu5muzmdey5mxelxhl -decimals = 18 - -[RileyReid] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/rileyreid -decimals = 6 - -[Rise] -peggy_denom = inj123aevc4lmpm09j6mqemrjpxgsa7dncg2yn2xt7 -decimals = 18 - -[Roll] -peggy_denom = inj15wuxx78q5p9h7fqg3ux7zljczj7jh5qxqhrevv -decimals = 18 - -[Roll Token] -peggy_denom = inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3 -decimals = 18 - -[Rush] -peggy_denom = inj1r2gjtqgzhfcm4wgvmctpuul2m700v4ml24l7cq -decimals = 18 - -[SAE] -peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/SAE -decimals = 6 - -[SAFAS] -peggy_denom = inj1vphq25x2r69mpf2arzsut8yxcav709kwd3t5ck -decimals = 18 - -[SAFEMOON] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/safemoon -decimals = 6 - -[SAGA] -peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 -decimals = 6 - -[SAIL] -peggy_denom = ibc/2718A31D59C81CD1F972C829F097BDBE32D7B84025F909FFB6163AAD314961B3 -decimals = 6 - -[SAKE] -peggy_denom = factory/inj1mdyw30cuct3haazw546t4t92sadeuwde0tmqxx/SAKE -decimals = 6 - -[SAKI] -peggy_denom = factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAKI -decimals = 6 - -[SAKURA] -peggy_denom = factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakura -decimals = 6 - -[SALT] -peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/salt -decimals = 6 - -[SAM] -peggy_denom = factory/inj1wuw7wa8fvp0leuyvh9ypzmndduzd5vg0xc77ha/sam -decimals = 6 - -[SAMI] -peggy_denom = factory/inj13jvw7hl6hkyg8a8ltag47xyzxcc6h2qkk0u9kr/SAMI -decimals = 6 - -[SAMOORAII] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SAMOORAII -decimals = 6 - -[SAMP] -peggy_denom = inj1xd2l3406kypepnnczcn6fm0lnmsk6qk7dakryn -decimals = 18 - -[SAMURAI] -peggy_denom = factory/inj16nffej2c5xx93lf976wkp7vlhenau464rawhkc/samurai -decimals = 6 - -[SANSU] -peggy_denom = factory/inj1x5thnvjfwzmtxxhqckrap8ysgs2duy29m4xwsp/sansu -decimals = 6 - -[SANTA] -peggy_denom = factory/inj12qf874wcfxtxt004qmuhdtxw4l6d0f5w6cyfpz/santa -decimals = 6 - -[SANTABONK] -peggy_denom = inj1zjdtxmvkrxcd20q8nru4ws47nemkyxwnpuk34v -decimals = 8 - -[SANTAGODX] -peggy_denom = inj1j8nvansvyvhnz4vzf5d8cyjpwu85ksdhyjf3n4 -decimals = 8 - -[SANTAINJ] -peggy_denom = inj17cqy5lr4gprjgnlv0j2mw4rhqfhr9zpupkur8t -decimals = 8 - -[SANTAMEME] -peggy_denom = inj1dds0a220twm3pjprypmy0qun3cn727hzj0tpaa -decimals = 8 - -[SASUKE] -peggy_denom = inj1alpg8nw7lw8uplsrah8q0qn66rqq0fxzd3wf9f -decimals = 18 - -[SATOR] -peggy_denom = factory/inj1lv5ndarq6jcpysf9yuf7zmk656qq0r87led75v/SATOR -decimals = 6 - -[SATOSHIVM] -peggy_denom = inj1y7pvzc8h05e8qs9de2c9qcypxw6xkj5wttvm70 -decimals = 8 - -[SATS] -peggy_denom = inj1ck568jpww8wludqh463lk6h32hhe58u0nrnnxe -decimals = 8 - -[SAVEOURSTRAYS] -peggy_denom = factory/inj1a5h6erkyttcsyjmrn4k3rxyjuktsxq4fnye0hg/SAVEOURSTRAYS -decimals = 6 - -[SAVM] -peggy_denom = inj1wuw0730q4rznqnhkw2nqwk3l2gvun7mll9ew3n -decimals = 6 - -[SAYVE] -peggy_denom = ibc/DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12 -decimals = 6 - -[SB] -peggy_denom = inj1cqq89rjk4v5a0teyaefqje3skntys7q6j5lu2p -decimals = 8 - -[SBF] -peggy_denom = factory/inj1j2me24lslpaa03fw8cuct8586t6f6qf0wcf4fm/SBF -decimals = 6 - -[SCAM] -peggy_denom = inj1f9rppeq5yduz2te5fxxwnalg54lsa3ac6da5fg -decimals = 18 - -[SCLX] -peggy_denom = factory/inj1faq30xe497yh5ztwt00krpf9a9lyakg2zhslwh/SCLX -decimals = 6 - -[SCORPION] -peggy_denom = factory/inj10w3p2qyursc03crkhg9djdm5tnu9xg63r2zumh/scorpion -decimals = 6 - -[SCRT] -peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A -decimals = 6 - -[SDEX] -peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF -decimals = 18 - -[SDOGE] -peggy_denom = inj1525sjr836apd4xkz8utflsm6e4ecuhar8qckhd -decimals = 8 - -[SEAS] -peggy_denom = ibc/FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6 -decimals = 6 - -[SECOND] -peggy_denom = inj1rr08epad58xlg5auytptgctysn7lmsk070qeer -decimals = 18 - -[SEI] -peggy_denom = factory/inj1hae0z4qsxw90ghy249ymghyz2ewa0ww3qrkyx2/SEI -decimals = 6 - -[SEIFU] -peggy_denom = inj1jtenkjgqhwxdl93eak2aark5s9kl72awc4rk47 -decimals = 6 - -[SEISEI] -peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/SEISEI -decimals = 6 - -[SEIWHAT?] -peggy_denom = inj1qjgtplwsrflwgqjy0ffp72mfzckwsqmlq2ml6n -decimals = 8 - -[SEIYAN] -peggy_denom = ibc/ECC41A6731F0C6B26606A03C295236AA516FA0108037565B7288868797F52B91 -decimals = 6 - -[SEKIRO] -peggy_denom = factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/Sekiro -decimals = 6 - -[SENJU] -peggy_denom = factory/inj1qdamq2fk7xs6m34qv8swl9un04w8fhk42k35e5/SENJU -decimals = 6 - -[SENSEI] -peggy_denom = factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/sensei -decimals = 6 - -[SEQUENCE] -peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/sequence -decimals = 6 - -[SER] -peggy_denom = inj128cqeg7a78k64xdxsr6v5s6js97dxjgxynwdxc -decimals = 18 - -[SEUL] -peggy_denom = ibc/1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA -decimals = 6 - -[SEX] -peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/SEX -decimals = 6 - -[SHARINGAN] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SHARINGAN -decimals = 18 - -[SHARK] -peggy_denom = ibc/08B66006A5DC289F8CB3D7695F16D211D8DDCA68E4701A1EB90BF641D8637ACE -decimals = 6 - -[SHARP] -peggy_denom = inj134p6skwcyjac60d2jtff0daps7tvzuqj4n56fr -decimals = 8 - -[SHB] -peggy_denom = inj19zzdev3nkvpq26nfvdcm0szp8h272u2fxf0myv -decimals = 6 - -[SHBL] -peggy_denom = factory/inj1zp8a6nhhf3hc9pg2jp67vlxjmxgwjd8g0ck9mq/SHBL -decimals = 6 - -[SHENZI] -peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/SHENZI -decimals = 6 - -[SHI] -peggy_denom = inj1w7wwyy6pjs9k2ecxte8p6tp8g7kh6k3ut402af -decimals = 6 - -[SHIB] -peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE -decimals = 18 - -[SHIB-WEI] -peggy_denom = ibc/07794B62FE5A48C49C27966BBF566CD447418A2DBAD9CB7F3C01B297040909A5 -decimals = 0 - -[SHIBINJ] -peggy_denom = factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/SHIBINJ -decimals = 6 - -[SHIELD] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SHIELD -decimals = 6 - -[SHINJ] -peggy_denom = factory/inj1h3vg2546p42hr955a7fwalaexjrypn8npds0nq/SHINJ -decimals = 6 - -[SHINJU] -peggy_denom = factory/inj1my757j0ndftrsdf2tuxsdhhy5qfkpuxw4x3wnc/shinju -decimals = 6 - -[SHINOBI] -peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/SHINOBI -decimals = 6 - -[SHIRO] -peggy_denom = factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/shiro -decimals = 6 - -[SHITMOS] -peggy_denom = ibc/96C34D4D443A2FBCA10B120679AB50AE61195DF9D48DEAD60F798A6AC6B3B653 -decimals = 6 - -[SHOGUN] -peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/shogun -decimals = 6 - -[SHRK] -peggy_denom = factory/inj15xhherczv9q83lgdx3zna66s3pcznq6v2sh53d/SHRK -decimals = 6 - -[SHROOM] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 -decimals = 18 - -[SHSA] -peggy_denom = inj1tsrxu2pxusyn24zgxyh2z36apxmhu22jfwd4v7 -decimals = 18 - -[SHT] -peggy_denom = factory/inj1sp8s6ng0e8a7q5dqywgyupwjyjgq2sk553t6r5/SHT -decimals = 6 - -[SHU] -peggy_denom = factory/inj1mllxwgvx0zhhr83rfawjl05dmuwwzfcrs9xz6t/SHU -decimals = 6 - -[SHURIKEN] -peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken -decimals = 6 - -[SILLY] -peggy_denom = inj19j6q86wt75p3pexfkajpgxhkjht589zyu0e4rd -decimals = 8 - -[SIMPSONS] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/simpsons -decimals = 6 - -[SINU] -peggy_denom = inj1mxjvtp38yj866w7djhm9yjkwqc4ug7klqrnyyj -decimals = 8 - -[SJAKE] -peggy_denom = factory/inj1s4xa5jsp5sfv5nql5h3c2l8559l7rqyzckheha/SJAKE -decimals = 6 - -[SKI] -peggy_denom = inj167xkgla9kcpz5gxz6ak4vrqs7nqxr08kvyfqkz -decimals = 18 - -[SKIBIDI] -peggy_denom = factory/inj1ztugej2ytfwj9kxa8m5md85e5z3v8jvaxapz6n/skibidi -decimals = 6 - -[SKIPBIDIDOBDOBDOBYESYESYESYES] -peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d -decimals = 9 - -[SKR] -peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/sakura -decimals = 6 - -[SKULL] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SKULL -decimals = 6 - -[SKULLS] -peggy_denom = inj1qk4cfp3su44qzragr55fc9adeehle7lal63jpz -decimals = 18 - -[SKYPE] -peggy_denom = inj1e9nezwf7wvjj4rzfkjfad7teqjfa7r0838f6cs -decimals = 18 - -[SLOTH] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/sloth -decimals = 6 - -[SMART] -peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART -decimals = 6 - -[SMAUG] -peggy_denom = inj1a2wzkydpw54f8adq76dkf6kwx6zffnjju93r0y -decimals = 18 - -[SMB] -peggy_denom = inj13xkzlcd490ky7uuh3wwd48r4qy35hlhqxjpe0r -decimals = 18 - -[SMELLY] -peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/SMELLY -decimals = 6 - -[SMILE] -peggy_denom = factory/inj1tuwuzza5suj9hq4n8pwlfw2gfua8223jfaa6v7/SMILE -decimals = 6 - -[SMLE] -peggy_denom = inj13ent4rmkzf2dht7hnlhg89t527k8xn5ft92e69 -decimals = 18 - -[SMOKE] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKE -decimals = 6 - -[SMOKEe] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKEe -decimals = 6 - -[SNAPPY] -peggy_denom = factory/inj13y5nqf8mymy9tfxkg055th7hdm2uaahs9q6q5w/SNAPPY -decimals = 6 - -[SNAPPY inj] -peggy_denom = inj19dfkr2rm8g5kltyu93ppgmvdzj799vug2m9jqp -decimals = 18 - -[SNARL] -peggy_denom = factory/inj1dskk29zmzjtc49w3fjxac4q4m87yg7gshw8ps9/SNARL -decimals = 6 - -[SNASA] -peggy_denom = factory/inj1peusyhlu85s3gq82tz8jcfxzkszte4zeqhdthw/SNASA -decimals = 6 - -[SNEK] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/snek -decimals = 6 - -[SNIPE] -peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/SNIPE -decimals = 6 - -[SNIPEONE] -peggy_denom = inj146tnhg42q52jpj6ljefu6xstatactyd09wcgwh -decimals = 18 - -[SNIPER] -peggy_denom = factory/inj1qzxna8fqr56g83rvyyylxnyghpguzt2jx3dgr8/SNIPER -decimals = 6 - -[SNJT] -peggy_denom = inj1h6hma5fahwutgzynjrk3jkzygqfxf3l32hv673 -decimals = 18 - -[SNOWY] -peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY -decimals = 6 - -[SNS] -peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 -decimals = 8 - -[SNX] -peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F -decimals = 18 - -[SOCRATES] -peggy_denom = inj18qupdvxmgswj9kfz66vaw4d4wn0453ap6ydxmy -decimals = 8 - -[SOGGS] -peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/soggs -decimals = 6 - -[SOK] -peggy_denom = inj1jdpc9y459hmce8yd699l9uf2aw97q3y7kwhg7t -decimals = 18 - -[SOKE] -peggy_denom = inj1ryqavpjvhfj0lewule2tvafnjga46st2q7dkee -decimals = 18 - -[SOL] -peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 -decimals = 8 - -[SOLANAinj] -peggy_denom = inj18e7x9myj8vq58ycdutd6eq6luy7frrp4d2nglr -decimals = 6 - -[SOLinj] -peggy_denom = inj1n9nga2t49ep9hvew5u8xka0d4lsrxxg4cw4uaj -decimals = 6 - -[SOLlegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 -decimals = 8 - -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B -decimals = 6 - -[SONICFLOKITRUMPSPIDERMAN INU] -peggy_denom = inj16afzhsepkne4vc7hhu7fzx4cjpgkqzagexqaz6 -decimals = 8 - -[SONINJ] -peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/soninj -decimals = 6 - -[SOS] -peggy_denom = inj13wdqnmv40grlmje48akc2l0azxl38d2wzl5t92 -decimals = 6 - -[SPDR] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/spdr -decimals = 6 - -[SPK] -peggy_denom = inj18wclk6g0qwwqxa36wd4ty8g9eqgm6q04zjgnpp -decimals = 18 - -[SPONCH] -peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/sponch -decimals = 6 - -[SPOONWORMS] -peggy_denom = inj1qt3c5sx94ag3rn7403qrwqtpnqthg4gr9cccrx -decimals = 6 - -[SPORTS] -peggy_denom = factory/inj1dewkg7z8vffqxk7jcer6sf9ttnx54z0c6gfjw6/SPORTS -decimals = 6 - -[SPUUN] -peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/SPUUN -decimals = 6 - -[SPUUN INJ] -peggy_denom = inj1zrd6wwvyh4rqsx5tvje6ug6qd2xtn0xgu6ylml -decimals = 18 - -[SQRL] -peggy_denom = peggy0x762dD004fc5fB08961449dd30cDf888efb0Adc4F -decimals = 18 - -[SQUID] -peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/SQUID -decimals = 6 - -[SSFS] -peggy_denom = inj1m7hd99423w39aug74f6vtuqqzvw5vp0h2e85u0 -decimals = 6 - -[SSTST] -peggy_denom = factory/inj1wmu4fq03zvu60crvjdhksk62e8m08xsn9d5nv3/stream-swap-test -decimals = 0 - -[STAKELAND] -peggy_denom = inj1sx4mtq9kegurmuvdwddtr49u0hmxw6wt8dxu3v -decimals = 8 - -[STAR] -peggy_denom = inj1nkxdx2trqak6cv0q84sej5wy23k988wz66z73w -decimals = 8 - -[STARK] -peggy_denom = factory/inj106etgay573e32ksysc9dpdrynxhk7kkmaclhfc/stark -decimals = 6 - -[STARS] -peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca -decimals = 18 - -[STINJ] -peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 -decimals = 18 - -[STINJER] -peggy_denom = factory/inj1fepsfp58ff2l7fasj47ytwrrwwp6k7uz6uhfvn/stinjer -decimals = 6 - -[STK/UATOM] -peggy_denom = ibc/BBA6CC7A35489A10596662AC4E49D3BA6288330B79CA5315AF7D892C7CFD96D9 -decimals = 0 - -[STL] -peggy_denom = inj1m2pce9f8wfql0st8jrf7y2en7gvrvd5wm573xc -decimals = 18 - -[STRD] -peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 -decimals = 6 - -[STT] -peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd -decimals = 18 - -[STX] -peggy_denom = stx -decimals = 6 - -[SUGAR] -peggy_denom = factory/inj1qukvpzhyjguma030s8dmvw4lxaluvlqq5jk3je/SUGAR -decimals = 6 - -[SUI] -peggy_denom = sui -decimals = 9 - -[SUMO] -peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/sumo -decimals = 6 - -[SUMOCOCO] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SUMOCOCO -decimals = 6 - -[SUPE] -peggy_denom = factory/inj1rl4sadxgt8c0qhl4pehs7563vw7j2dkz80cf55/SUPE -decimals = 6 - -[SUPERMARIO] -peggy_denom = inj1mgts7d5c32w6aqr8h9f5th08x0p4jaya2tp4zp -decimals = 18 - -[SUSHI] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd -decimals = 18 - -[SUSHI FIGHTER] -peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd -decimals = 18 - -[SUSHII] -peggy_denom = inj1p6evqfal5hke6x5zy8ggk2h5fhn4hquk63g20d -decimals = 6 - -[SVM] -peggy_denom = inj1jyhzeqxnh8qnupt08gadn5emxpmmm998gwhuvv -decimals = 8 - -[SVN] -peggy_denom = inj1u4zp264el8hyxsqkeuj5yesp8pqmfh4fya86w6 -decimals = 18 - -[SWAP] -peggy_denom = peggy0xCC4304A31d09258b0029eA7FE63d032f52e44EFe -decimals = 18 - -[SWP] -peggy_denom = ibc/70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5 -decimals = 6 - -[SWTH] -peggy_denom = ibc/8E697D6F7DAC1E5123D087A50D0FE0EBDD8A323B90DC19C7BA8484742AEB2D90 -decimals = 8 - -[SXC] -peggy_denom = inj1a4lr8sulev42zgup2g0sk8x4hl9th20cj4fqmu -decimals = 8 - -[SXI] -peggy_denom = inj12mjzeu7qrhn9w85dd02fkvjt8hgaewdk6j72fj -decimals = 8 - -[SYN] -peggy_denom = factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/SYN -decimals = 6 - -[SamOrai] -peggy_denom = inj1a7fqtlllaynv6l4h2dmtzcrucx2a9r04e5ntnu -decimals = 18 - -[Samurai] -peggy_denom = factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/samurai -decimals = 6 - -[Samurai dex token] -peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/samurai -decimals = 6 - -[Santa] -peggy_denom = factory/inj1mwsgdlq6rxs3xte8p2m0pcw565czhgngrxgl38/Santa -decimals = 6 - -[SantaInjective] -peggy_denom = inj19wccuev2399ad0ftdfyvw8h9qq5dvqxqw0pqxe -decimals = 8 - -[Satoru Gojo] -peggy_denom = inj1hwc0ynah0xv6glpq89jvm3haydhxjs35yncuq2 -decimals = 6 - -[Sei] -peggy_denom = ibc/0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2 -decimals = 6 - -[Sekiro] -peggy_denom = factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/ak -decimals = 6 - -[Sendor] -peggy_denom = inj1hpwp280wsrsgn3r3mvufx09dy4e8glj8sq4vzx -decimals = 6 - -[Sensei Dog] -peggy_denom = ibc/12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9 -decimals = 6 - -[She] -peggy_denom = inj1k59du6npg24x2wacww9lmmleh5qrscf9gl7fr5 -decimals = 6 - -[Shiba INJ] -peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj -decimals = 6 - -[Shiba Inu] -peggy_denom = ibc/E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5 -decimals = 18 - -[ShihTzu] -peggy_denom = factory/inj1x78kr9td7rk3yqylvhgg0ru2z0wwva9mq9nh92/ShihTzu -decimals = 6 - -[Shinobi] -peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi -decimals = 6 - -[Shinobi Inu] -peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/Shinobi -decimals = 6 - -[Shuriken] -peggy_denom = inj1kxamn5nmsn8l7tyu752sm2tyt6qlpufupjyscl -decimals = 18 - -[Shuriken Token] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken -decimals = 6 - -[Sin] -peggy_denom = inj10fnmtl9mh95gjtgl67ww6clugl35d8lc7tewkd -decimals = 18 - -[Sinful] -peggy_denom = inj1lhfk33ydwwnnmtluyuu3re2g4lp79c86ge546g -decimals = 18 - -[Smoking Nonja] -peggy_denom = factory/inj1nvv2gplh009e4s32snu5y3ge7tny0mauy9dxzg/smokingnonja -decimals = 6 - -[Solana (legacy)] -peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 -decimals = 8 - -[Sommelier] -peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 -decimals = 6 - -[SpoonWORMS] -peggy_denom = inj1klc8puvggvjwuee6yksmxx4za6xdh20pwjdnec -decimals = 6 - -[Spuun] -peggy_denom = inj1hs0xupdsrnwfx3lcpz56qkp72q7rn57v3jm0x7 -decimals = 18 - -[Spuurk] -peggy_denom = inj1m9yfd6f2dw0f6uyx4r2av2xk8s5fq5m7pt3mec -decimals = 18 - -[Spuvn] -peggy_denom = inj1f66rlllh2uef95p3v7cswqmnnh2w3uv3f97kv3 -decimals = 18 - -[SteadyBTC] -peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d -decimals = 18 - -[SteadyETH] -peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 -decimals = 18 - -[Sui (Wormhole)] -peggy_denom = ibc/F96C68219E987465D9EB253DACD385855827C5705164DAFDB0161429F8B95780 -decimals = 8 - -[Summoners Arena Essence] -peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB -decimals = 8 - -[Sushi Staked INJ] -peggy_denom = inj1hwj3xz8ljajs87km07nev9jt7uhmvf9k9q4k0f -decimals = 6 - -[SushiSwap] -peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 -decimals = 18 - -[TAB] -peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD -decimals = 18 - -[TABOO] -peggy_denom = inj1ttxw2rn2s3hqu4haew9e3ugekafu3hkhtqzmyw -decimals = 8 - -[TACOS] -peggy_denom = inj1ac9d646xzyam5pd2yx4ekgfjhc65564533fl2m -decimals = 6 - -[TAJIK] -peggy_denom = factory/inj1dvlqazkar9jdy8x02j5k2tftwjnp7c53sgfavp/TAJIK -decimals = 6 - -[TAKUMI] -peggy_denom = ibc/ADE961D980CB5F2D49527E028774DE42BFD3D78F4CBBD4B8BA54890E60606DBD -decimals = 6 - -[TALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis -decimals = 6 - -[TANSHA] -peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/tansha -decimals = 6 - -[TAO] -peggy_denom = tao -decimals = 18 - -[TATAS] -peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/tatas -decimals = 6 - -[TC] -peggy_denom = factory/inj1ureedhqkm8tv2v60de54xzgqgu9u25xkuw8ecs/tyler -decimals = 6 - -[TENSOR] -peggy_denom = inj1py9r5ghr2rx92c0hyn75pjl7ung4euqdm8tvn5 -decimals = 6 - -[TERRAFORMS] -peggy_denom = inj19rev0qmuz3eccvkluz8sptm6e9693jduexrc4v -decimals = 8 - -[TERT] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tert -decimals = 6 - -[TEST] -peggy_denom = factory/inj12qy3algm6e0zdpv8zxvauzquumuvd39ccdcdjt/TEST -decimals = 6 - -[TEST1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/TEST1 -decimals = 18 - -[TEST13] -peggy_denom = factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST13 -decimals = 6 - -[TESTI] -peggy_denom = inj1mzcamv0w3q797x4sj4ny05hfpgacm90a2d2xqp -decimals = 18 - -[TESTT] -peggy_denom = factory/inj18xsczx27lanjt40y9v79q0v57d76j2s8ctj85x/TESTT -decimals = 6 - -[TF] -peggy_denom = factory/inj1pjcmuxd2ek7mvx4gnv6quyn6c6rjxwcrs4h5y4/truffle -decimals = 6 - -[THE10] -peggy_denom = factory/inj18u2790weecgqkmcyh2sg9uupz538kwgmmcmtps/THE10 -decimals = 6 - -[THREE] -peggy_denom = inj1qqfhg6l8d7punj4z597t0p3wwwxdcpfew4fz7a -decimals = 18 - -[THUG] -peggy_denom = factory/inj108qcx6eu6l6adl6kxm0qpyshlmzf3w9mnq5vav/THUGLIFE -decimals = 6 - -[THUNDER] -peggy_denom = inj1gacpupgyt74farecd9pv20emdv6vpkpkhft59y -decimals = 6 - -[TIA] -peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 -decimals = 6 - -[TIA-USDC-LP] -peggy_denom = ibc/4D5C872E29C3F3B88E4BEAE9ED2FA753F5F3B7F7FAD2FEBC9D21B4EA5F93C57A -decimals = 6 - -[TIK] -peggy_denom = inj1xetmk66rv8nhjur9s8t8szkdff0xwks8e4vym3 -decimals = 6 - -[TINJER] -peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/tinjer -decimals = 6 - -[TITAN] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/titan -decimals = 6 - -[TJCLUB] -peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/TJCLUB -decimals = 6 - -[TKN] -peggy_denom = factory/inj1f4sglhz3ss74fell9ecvqrj2qvlt6wmk3ctd3f/TKN -decimals = 6 - -[TMB] -peggy_denom = factory/inj1dg4n304450kswa7hdj8tqq3p28f5kkye2fxey3/TMB -decimals = 6 - -[TMNT] -peggy_denom = inj1yt6erfe7a55es7gnwhta94g08zq9qrsjw25eq5 -decimals = 18 - -[TOKYO] -peggy_denom = inj1k8ad5x6auhzr9tu3drq6ahh5dtu5989utxeu89 -decimals = 18 - -[TOM] -peggy_denom = factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/TOM -decimals = 18 - -[TOMO] -peggy_denom = inj1d08rut8e0u2e0rlf3pynaplas6q0akj5p976kv -decimals = 8 - -[TON] -peggy_denom = peggy0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1 -decimals = 9 - -[TONKURU] -peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/tonkuru -decimals = 6 - -[TORO] -peggy_denom = ibc/37DF4CCD7D156B9A8BF3636CD7E073BADBFD54E7C7D5B42B34C116E33DB0FE81 -decimals = 6 - -[TOTS] -peggy_denom = factory/inj1u09lh0p69n7salm6l8ufytfsm0p40pnlxgpcz5/TOTS -decimals = 6 - -[TRASH] -peggy_denom = inj1re43j2d6jxlk4m5sn9lc5qdc0rwkz64c8gqk5x -decimals = 18 - -[TREN] -peggy_denom = inj14y8f4jc0qmmwzcyj9k7dxnlq6tgjq9ql6n2kdn -decimals = 18 - -[TRG] -peggy_denom = inj1scn6ssfehuw735llele39kk7w6ylg4auw3epjp -decimals = 8 - -[TRH] -peggy_denom = inj1dxtnr2cmqaaq0h5sgnhdftjhh5t6dmsu37x40q -decimals = 18 - -[TRIPPY] -peggy_denom = inj1puwde6qxl5v96f5sw0dmql4r3a0e9wvxp3w805 -decimals = 18 - -[TRR] -peggy_denom = inj1cqwslhvaaferrf3c933efmddfsvakdhzaaex5h -decimals = 18 - -[TRS] -peggy_denom = ibc/CE25D8CCF02CB74F4B5CDFF8CF64A633CA0CCA05ECC539485F32E77DEC1C8421 -decimals = 6 - -[TRUCPI] -peggy_denom = trucpi -decimals = 18 - -[TRUFFLE] -peggy_denom = factory/inj1e5va7kntnq245j57hfe78tqhnd763ekrtu9fez/TRUFFLE -decimals = 6 - -[TRUMP] -peggy_denom = factory/inj16c0cnvw4jd20k9fkdlt4cauyd05hhg6jk7fedh/TRUMP -decimals = 6 - -[TRX] -peggy_denom = inj17ssa7q9nnv5e5p6c4ezzxj02yjhmvv5jmg6adq -decimals = 6 - -[TRY] -peggy_denom = inj10dqyn46ljqwzx4947zc3dska84hpnwc7r6rzzs -decimals = 18 - -[TRY2] -peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/TRY2 -decimals = 6 - -[TSNG] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/tsng -decimals = 6 - -[TST] -peggy_denom = factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/TST -decimals = 6 - -[TSTI] -peggy_denom = factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/TSTI -decimals = 6 - -[TSTT] -peggy_denom = inj19p5am8kye6r7xu3xy9crzh4dj7uhqvpw3n3mny -decimals = 18 - -[TSUNADE] -peggy_denom = inj1vwzqtjcwv2wt5pcajvlhmaeejwme57q52mhjy3 -decimals = 18 - -[TTNY] -peggy_denom = inj10c0ufysjj52pe7m9a3ncymzf98sysl3nr730r5 -decimals = 18 - -[TTS] -peggy_denom = factory/inj1en4mpfud040ykmlneentdf77ksa3usjcgw9hax/TTS -decimals = 6 - -[TURBO] -peggy_denom = factory/inj1hhmra48t7xwz4snc7ttn6eu5nvmgzu0lwalmwk/TURBO -decimals = 6 - -[TURBOTOAD] -peggy_denom = factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/TURBOTOAD -decimals = 6 - -[TURD] -peggy_denom = ibc/3CF3E1A31015028265DADCA63920C320E4ECDEC2F77D2B4A0FD7DD2E460B9EF3 -decimals = 6 - -[TURTLE] -peggy_denom = factory/inj1nshrauly795k2h97l98gy8zx6gl63ak2489q0u/TURTLE -decimals = 8 - -[TURTLENINJ] -peggy_denom = factory/inj1lv9v2z2zvvng6v9qm8eh02t2mre6f8q6ez5jxl/turtleninj -decimals = 6 - -[TWO] -peggy_denom = inj19fza325yjfnx9zxvtvawn0rrjwl73g4nkzmm2w -decimals = 18 - -[Talis NFT] -peggy_denom = inj155kuqqlmdz7ft2jas4fc23pvtsecce8xps47w5 -decimals = 8 - -[Terra] -peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 -decimals = 6 - -[TerraUSD] -peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD -decimals = 18 - -[Test] -peggy_denom = factory/inj135plhn7dkun9rd8uj3hs5v06mk3g88ryd30qxr/Test -decimals = 6 - -[Test QAT] -peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 -decimals = 18 - -[Test Token] -peggy_denom = inj1a6qdxdanekzgq6dluymlk7n7khg3dqq9lua9q9 -decimals = 18 - -[Test coin don't buy] -peggy_denom = inj19xpgme02uxc55hgplg4vkm4vw0n7p6xl4ksqcz -decimals = 18 - -[TestOne] -peggy_denom = inj1f8fsu2xl97c6yss7s3vgmvnjau2qdlk3vq3fg2 -decimals = 18 - -[TestThree] -peggy_denom = inj14e3anyw3r9dx4wchnkcg8nlzps73x86cze3nq6 -decimals = 18 - -[TestTwo] -peggy_denom = inj1krcpgdu3a83pdtnus70qlalrxken0h4y52lfhg -decimals = 18 - -[TestingToken] -peggy_denom = inj1j5y95qltlyyjayjpyupgy7e5y7kkmvjgph888r -decimals = 18 - -[Tether] -peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 -decimals = 6 - -[Tether USD] -peggy_denom = ibc/F055E5BCED86221CD5CAFFC5F2D685DF841656133617E52EB87999C1E99B0280 -decimals = 6 - -[Tether USD (Wormhole)] -peggy_denom = ibc/3384DCE14A72BBD0A47107C19A30EDD5FD1AC50909C632CB807680DBC798BB30 -decimals = 6 - -[The Mask] -peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/mask -decimals = 6 - -[TheJanitor] -peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/TheJanitor -decimals = 6 - -[Toncoin] -peggy_denom = ibc/C5D810101729DB073C0AF464A4698BAFBB6AB2A779446784D975368DA9D13B4C -decimals = 9 - -[TrempBoden] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/trempboden -decimals = 6 - -[Tronix] -peggy_denom = ibc/58FCFF2ED22596D22620047BA8171F6698E75FDBD6A68AC70DA6B020DB96FF26 -decimals = 6 - -[Trump] -peggy_denom = inj1neclyywnhlhe4me0g2tky9fznjnun2n9maxuhx -decimals = 6 - -[Trump Ninja] -peggy_denom = inj1dj0u7mqn3z8vxz6muwudhpl95sajmy00w7t6gq -decimals = 18 - -[TryCW] -peggy_denom = inj15res2a5r94y8s33lc7c5czcswx76pygjk827t0 -decimals = 18 - -[Tsu Grenade] -peggy_denom = inj1zgxh52u45qy3xxrq72ypdajhhjftj0hu5x4eea -decimals = 18 - -[TunaSniper] -peggy_denom = inj1r3vswh4hevfj6ynfn7ypudzhe2rrngzjn4lv5a -decimals = 8 - -[UAKT] -peggy_denom = ibc/3BADB97E59D4BB8A26AD5E5485EF0AF123982363D1174AA1C6DEA9BE9C7E934D -decimals = 0 - -[UATOM] -peggy_denom = ibc/057B70A05AFF2A38C082ACE15A260080D29627CCBF1655EA38B043275AFAADCE -decimals = 0 - -[UAXL] -peggy_denom = ibc/2FB8CEA9180069DD4DB8883CA8E263D9879F446D6895CDAA90487ABCCFB4A45C -decimals = 0 - -[UBLD] -peggy_denom = ibc/40AE872789CC2B160222CC4301CA9B097493BD858EAD84218E2EC29C64F0BBAB -decimals = 0 - -[UBTSG] -peggy_denom = ibc/861CA7EF82BD341F2EB80C6F47730908E14A4E569099C510C0DAD8DA07F6DCC6 -decimals = 0 - -[UCMDX] -peggy_denom = ibc/2609F5ECC10691FE306DE1B99E4F6AF18F689ED328969F93186F28BE1173EEED -decimals = 0 - -[UCORE] -peggy_denom = ibc/478A95ED132D071603C8AD0FC5E1A74717653880144E0D9B2508A230820921EF -decimals = 0 - -[UCRBRUS] -peggy_denom = ibc/617A276F35F40221C033B0662301374A225A9784653C30184F9305398054525D -decimals = 0 - -[UCRE] -peggy_denom = ibc/021FDD63F6D8DA6998A93DD25A72BD18421604A50819D01932136E934F9A26C4 -decimals = 0 - -[UDOKI] -peggy_denom = ibc/80A2109FA720FF39E302876F885039D7378B3FC7B9FAF22E05E29EFB8F7B3306 -decimals = 0 - -[UHUAHUA] -peggy_denom = ibc/613786F0A8E01B0436DE4EBC2F922672063D8348AE5C7FEBA5CB22CD2B12E1D6 -decimals = 0 - -[UIA] -peggy_denom = inj1h6avzdsgkfvymg3sq5utgpq2aqg4pdee7ep77t -decimals = 18 - -[UICIDE] -peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/UICIDE -decimals = 6 - -[UIST] -peggy_denom = ibc/388C7B1A3F5156BF983E9F3F81430156A0B635DE6CFA295C92D046659B2A3244 -decimals = 0 - -[UKAVA] -peggy_denom = ibc/BEF60A41B9311A281E62D00D4DF55FDADAC23466CD2CD05A74925D0BF647AE2C -decimals = 0 - -[UKUJI] -peggy_denom = ibc/B391CCE2B6954ED823E70244D3447C7910B4E1E2032F902D2B57F7EE052E91DC -decimals = 0 - -[ULUNA] -peggy_denom = ibc/2B3FA34CE2779629F4CBDD4D52EFF1FED8AD78EBA63786E946C7CE6D06034D0D -decimals = 0 - -[UMA] -peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 -decimals = 18 - -[UMEE] -peggy_denom = ibc/221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86 -decimals = 6 - -[UNI] -peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 -decimals = 18 - -[UNLS] -peggy_denom = ibc/849AF9574F64D1A1228FC2EFC79C857D562BAFB5C44657B5D89BB08A454C6DF9 -decimals = 0 - -[UNOIS] -peggy_denom = ibc/D2C7259861170E5EE7B21DBEC44D4720EC6C97293F1CAA79B0A0FF84B508C012 -decimals = 0 - -[UNTRN] -peggy_denom = ibc/6E512756C29F76C31032D456A4C957309E377827A443F1267D19DE551EB76048 -decimals = 0 - -[UOSMO] -peggy_denom = ibc/49CE7E3072FB1C70C1B2DE9AD1E74D15E2AC2AFD62949DB82EC653EB3E2B0A84 -decimals = 0 - -[UP10X] -peggy_denom = inj1zeu70usj0gtgqapy2srsp7pstf9r82ckqk45hs -decimals = 6 - -[UPGRADE] -peggy_denom = inj1f32xp69g4qf7t8tnvkgnmhh70gzy43nznkkk7f -decimals = 8 - -[UPHOTON] -peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB -decimals = 6 - -[UPONLY] -peggy_denom = factory/inj1sg085jzjrg4ttmhh3cm0x6km4u9u302mj34py4/UPONLY -decimals = 6 - -[UPONLYv2] -peggy_denom = factory/inj1sg085jzjrg4ttmhh3cm0x6km4u9u302mj34py4/UPONLYv2 -decimals = 6 - -[UPTENX] -peggy_denom = inj10jgxzcqdf6phdmettetd8m92gxucxz5rpp9kwu -decimals = 6 - -[URO] -peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/URO -decimals = 6 - -[USC] -peggy_denom = ibc/5307C5A7B88337FE81565E210CDB5C50FBD6DCCF2D90D524A7E9D1FE00C40139 -decimals = 8 - -[USCRT] -peggy_denom = ibc/3C38B741DF7CD6CAC484343A4994CFC74BC002D1840AAFD5416D9DAC61E37F10 -decimals = 0 - -[USD] -peggy_denom = ibc/7474CABFDF3CF58A227C19B2CEDE34315A68212C863E367FC69928ABA344024C -decimals = 18 - -[USD Coin] -peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu -decimals = 6 - -[USD Coin (BEP-20)] -peggy_denom = ibc/5FF8FE2FDCD9E28C0608B17FA177A918DFAF7218FA18E5A2C688F34D86EF2407 -decimals = 18 - -[USD Coin (legacy)] -peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk -decimals = 6 - -[USD Coin from Avalanche] -peggy_denom = ibc/705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F -decimals = 6 - -[USD Coin from Polygon] -peggy_denom = ibc/2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3 -decimals = 6 - -[USD Con] -peggy_denom = peggy0xB855dBC314C39BFa2583567E02a40CBB246CF82B -decimals = 18 - -[USDC] -peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E -decimals = 6 - -[USDC-MPL] -peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A -decimals = 6 - -[USDC-USDC.axl-LP] -peggy_denom = ibc/FCC82F1F936A6D147738113E2D895968C9FEE804AA50DACFED16475EBB8CF36A -decimals = 6 - -[USDCarb] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r -decimals = 6 - -[USDCbsc] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu -decimals = 6 - -[USDCet] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk -decimals = 6 - -[USDCgateway] -peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 -decimals = 6 - -[USDClegacy] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 -decimals = 6 - -[USDCpoly] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 -decimals = 6 - -[USDCso] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu -decimals = 6 - -[USDLR] -peggy_denom = ibc/E15121C1541741E0A7BA2B96B30864C1B1052F1AD8189D81E6C97939B415D12E -decimals = 6 - -[USDT] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 -decimals = 6 - -[USDT.axl] -peggy_denom = ibc/90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47 -decimals = 6 - -[USDT.multi] -peggy_denom = ibc/24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271 -decimals = 6 - -[USDTap] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 -decimals = 6 - -[USDTbsc] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj -decimals = 6 - -[USDTet] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 -decimals = 6 - -[USDTkv] -peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB -decimals = 6 - -[USDTso] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd -decimals = 6 - -[USDX] -peggy_denom = ibc/C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE -decimals = 6 - -[USDY] -peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 -decimals = 18 - -[USDYet] -peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C -decimals = 18 - -[USDe] -peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 -decimals = 18 - -[USDi] -peggy_denom = peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8 -decimals = 18 - -[USEI] -peggy_denom = ibc/262300516331DBB83707BF21D485454F5608610B74F9232FB2503ABA3363BD59 -decimals = 0 - -[USK] -peggy_denom = ibc/58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB -decimals = 6 - -[USOMM] -peggy_denom = ibc/748882D770862C95C8826D958F225F8458604A0776AA03952C97E05C2DB00F01 -decimals = 0 - -[UST] -peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C -decimals = 18 - -[USTRD] -peggy_denom = ibc/CACFB6FEEC434B66254E2E27B2ABAD991171212EC8F67C566024D90490B7A079 -decimals = 0 - -[UTIA] -peggy_denom = ibc/056FEA49A8266ECD3EEF407A17EDC3FCEED144BE5EEF3A09ED6BC33F7118009F -decimals = 0 - -[UTK] -peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c -decimals = 18 - -[UUMEE] -peggy_denom = ibc/EE0EC814EF89AFCA8C9CB385F5A69CFF52FAAD00879BEA44DE78F9AABFFCCE42 -decimals = 0 - -[UUSD] -peggy_denom = ibc/4A0647EB49CC3170676F5A6016042B78292BCD0DF7F3AE906254901EE49FCFF8 -decimals = 0 - -[UUSDC] -peggy_denom = ibc/02FF79280203E6BF0E7EAF70C5D0396B81B3CC95BA309354A539511387161AA5 -decimals = 0 - -[UUSDT] -peggy_denom = ibc/63ADE20D7FF880975E9EC5FEBE87DB7CFCE6E85AB7F8E5097952052583C237EC -decimals = 0 - -[UWHALE] -peggy_denom = ibc/08E058987E0EB7A4ABEF68956D4AB2247447BA95EF06E6B43CB7D128E2924355 -decimals = 0 - -[UXPRT] -peggy_denom = ibc/A1D2A5E125114E63EE6E19FBA05E0949A14B5A51BB91D6193EEAE771C76C91E6 -decimals = 0 - -[Ulp] -peggy_denom = inj1ynqtgucs3z20n80c0zammyqd7skfgc7kyanc2j -decimals = 18 - -[Umee] -peggy_denom = ibc/2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B -decimals = 6 - -[Uniswap] -peggy_denom = ibc/3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7 -decimals = 18 - -[Unknown] -peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 -decimals = 6 - -[VATRENI] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay -decimals = 8 - -[VAULT] -peggy_denom = factory/inj16j0dhn7qg9sh7cg8y3vm6fecpfweq4f46tzrvd/VAULT -decimals = 6 - -[VEGAS] -peggy_denom = inj12sy2vdgspes6p7af4ssv2sv0u020ew4httwp5y -decimals = 6 - -[VELO] -peggy_denom = inj1srz2afh8cmay4nuk8tjkq9lhu6tz3hhmjnevlv -decimals = 8 - -[VENUS] -peggy_denom = inj109z6sf8pxl4l6dwh7s328hqcn0ruzflch8mnum -decimals = 8 - -[VERHA] -peggy_denom = inj1v2rqvnaavskyhjkx7xfkkyljhnyhuv6fmczprq -decimals = 18 - -[VIDA] -peggy_denom = inj18wa0xa2xg8ydass70e8uvlvzupt9wcn5l9tuxm -decimals = 6 - -[VINJETTA] -peggy_denom = factory/inj1f4x4j5zcv3uf8d2806umhd50p78gfrftjc3gg4/vinjetta -decimals = 6 - -[VIU] -peggy_denom = inj1ccpccejcrql2878cq55nqpgsl46s26qj8hm6ws -decimals = 8 - -[VIX] -peggy_denom = inj108qxa8lvywqgg0cqma0ghksfvvurgvv7wcf4qy -decimals = 6 - -[VOID] -peggy_denom = factory/inj14y4mwxdaf38qaw673vc9whe3xdtm2sc7ud0qmr/VOID -decimals = 9 - -[VRD] -peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 -decimals = 18 - -[VYK] -peggy_denom = inj15ssgwg2whxt3qnthlrq288uxtda82mcy258xp9 -decimals = 18 - -[Vatreni Token] -peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay -decimals = 8 - -[W] -peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 -decimals = 6 - -[WAGMI] -peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi -decimals = 9 - -[WAIFU] -peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu -decimals = 6 - -[WAIFUBOT] -peggy_denom = inj1fmw3t86ncrlz35pm0q66ca5kpudlxzg55tt54f -decimals = 6 - -[WAIFUDOGE] -peggy_denom = inj1py5zka74z0h02gqqaexllddn8232vqxsc946qf -decimals = 6 - -[WAIT] -peggy_denom = inj17pg77tx07drrx6tm6c72cd9sz6qxhwd4gp93ep -decimals = 8 - -[WAR] -peggy_denom = inj1nfkjyevl6z0fyc86w88xr8qq3awugw0nt2dvxq -decimals = 8 - -[WASABI] -peggy_denom = factory/inj1h6j2hwdn446d3nye82q2thte5pc6qqvyehsjzj/WASABI -decimals = 6 - -[WASSIE] -peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 -decimals = 18 - -[WAVAX] -peggy_denom = ibc/A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73 -decimals = 18 - -[WBNB] -peggy_denom = ibc/B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F -decimals = 18 - -[WBTC] -peggy_denom = ibc/48E69ED9995415D94BEA06BE70E4A6C2BEA0F5E83996D1E17AF95126770E06B2 -decimals = 8 - -[WBTC-SATOSHI] -peggy_denom = ibc/A4D4E73A15DD9C815C039C0648111FDC83C3B63089E358565EA0AFB78C024E57 -decimals = 0 - -[WDDG] -peggy_denom = factory/inj1hse75gfje5jllds5t9gnzdwyp3cdc3cvdt7gpw/wddg -decimals = 6 - -[WEED] -peggy_denom = factory/inj1nm8kf7pn60mww3hnqj5je28q49u4h9gnk6g344/WEED -decimals = 6 - -[WEIRD] -peggy_denom = ibc/5533268E098543E02422FF94216D50A97CD9732AEBBC436AF5F492E7930CF152 -decimals = 6 - -[WEN] -peggy_denom = inj1wvd7jt2fwsdqph0culwmf3c4l4y63x4t6gu27v -decimals = 18 - -[WETH] -peggy_denom = ibc/4AC4A819B0BFCB25497E83B92A7D124F24C4E8B32B0E4B45704CC4D224A085A0 -decimals = 8 - -[WETH-WEI] -peggy_denom = ibc/69097262E36DBD83A39DF92161A4FD7D104462BC8C9D9C2A4CD65488080CBBB0 -decimals = 0 - -[WFTM] -peggy_denom = ibc/31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878 -decimals = 18 - -[WGLMR] -peggy_denom = ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055 -decimals = 18 - -[WGLMR-WEI] -peggy_denom = ibc/0C8737145CF8CAE5DC1007450882E251744B57119600E1A2DACE72C8C272849D -decimals = 0 - -[WGMI] -peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI -decimals = 6 - -[WHALE] -peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 -decimals = 6 - -[WHITE] -peggy_denom = factory/inj1hdlavqur8ayu2kcdc9qv4dvee47aere5g80vg5/WHITE -decimals = 6 - -[WIF] -peggy_denom = factory/inj19xkrf82jar2qmf4tn92fajspq2e0warfufplhf/DogWifhat -decimals = 6 - -[WIFDOG] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wifdog -decimals = 6 - -[WIFLUCK] -peggy_denom = inj10vhddx39e3q8ayaxw4dg36tfs9lpf6xx649zfn -decimals = 18 - -[WIGO] -peggy_denom = inj1jzarcskrdgqzn9ynqn05uthv07sepnpftw8xg9 -decimals = 18 - -[WIHA] -peggy_denom = ibc/E1BD2AE3C3879D2D79EA2F81E2A106BC8781CF449F70DDE6D97EF1A45F18C270 -decimals = 6 - -[WINJ] -peggy_denom = inj1cxp5f0m79a9yexyplx550vxtnun8vjdaqf28r5 -decimals = 18 - -[WINJA] -peggy_denom = factory/inj1mq6we23vx50e4kyq6fyqgty4zqq27p20czq283/WINJA -decimals = 6 - -[WINK] -peggy_denom = ibc/325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767 -decimals = 6 - -[WIZZ] -peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/WIZZ -decimals = 6 - -[WKLAY] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 -decimals = 8 - -[WMATIC] -peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC -decimals = 8 - -[WMATIC-WEI] -peggy_denom = ibc/8042DF9D0B312FE068D0336E5E9AFFE408839DA15643D83CA9AB005D0A2E38D8 -decimals = 0 - -[WMATIClegacy] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h -decimals = 8 - -[WNINJ] -peggy_denom = factory/inj1ducfa3t9sj5uyxs7tzqwxhp6mcfdag2jcq2km6/wnINJ -decimals = 18 - -[WOJAK] -peggy_denom = factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/WOJAK -decimals = 6 - -[WOJO] -peggy_denom = inj1n7qrdluu3gve6660dygc0m5al3awdg8gv07v62 -decimals = 6 - -[WOKE] -peggy_denom = inj17ka378ydj6ka5q0jlqt0eqhk5tmzqynx43ue7m -decimals = 18 - -[WOLF] -peggy_denom = factory/inj18pe85zjlrg5fcmna8tzqr0lysppcw5x7ecq33n/WOLF -decimals = 6 - -[WONDER] -peggy_denom = inj1ppg7jkl9vaj9tafrceq6awgr4ngst3n0musuq3 -decimals = 8 - -[WOOF] -peggy_denom = factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/woof -decimals = 6 - -[WOOF INU] -peggy_denom = inj1h0h49fpkn5r0pjmscywws0m3e7hwskdsff4qkr -decimals = 8 - -[WORM] -peggy_denom = ibc/13C9967E4F065F5E4946302C1F94EA5F21261F3F90DAC0212C4037FA3E058297 -decimals = 6 - -[WOSMO] -peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 -decimals = 6 - -[WSTETH] -peggy_denom = peggy0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 -decimals = 18 - -[WTF] -peggy_denom = ibc/3C788BF2FC1269D66CA3E339634E14856A90336C5562E183EFC9B743C343BC31 -decimals = 6 - -[WUBBA] -peggy_denom = inj17g65zpdwql8xjju92k6fne8luqe35cjvf3j54v -decimals = 6 - -[Waifu] -peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifuinj -decimals = 6 - -[What does the fox say?] -peggy_denom = inj1x0nz4k6k9pmjq0y9uutq3kp0rj3vt37p2p39sy -decimals = 6 - -[Wolf Party] -peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/wolf -decimals = 6 - -[Wormhole] -peggy_denom = factory/inj1xmxx0c3elm96s9s30t0k0gvr4h7l4wx9enndsl/wormhole -decimals = 6 - -[Wrapped Bitcoin] -peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 -decimals = 8 - -[Wrapped Ether] -peggy_denom = ibc/65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7 -decimals = 18 - -[Wrapped Ethereum] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 -decimals = 8 - -[Wrapped Klaytn] -peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 -decimals = 8 - -[Wrapped Matic] -peggy_denom = ibc/7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73 -decimals = 18 - -[Wrapped Matic (legacy)] -peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h -decimals = 8 - -[Wrapped liquid staked Ether 2.0 (Wormhole)] -peggy_denom = ibc/AF173F64492152DA94107B8AD53906589CA7B844B650EFC2FEFED371A3FA235E -decimals = 8 - -[Wynn] -peggy_denom = factory/inj1mmn3lqt5eahuu7cmpcjme6lj0xhjlhj3qj4fhh/Wynn -decimals = 18 - -[X747] -peggy_denom = factory/inj12ccehmgslwzkg4d4n4t78mpz0ja3vxyctu3whl/X747 -decimals = 6 - -[XAC] -peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 -decimals = 8 - -[XAEAXii] -peggy_denom = inj1wlw9hzsrrtnttgl229kvmu55n4z2gfjqzr6e2k -decimals = 18 - -[XAG] -peggy_denom = xag -decimals = 6 - -[XAI] -peggy_denom = inj15a8vutf0edqcuanpwrz0rt8hfclz9w8v6maum3 -decimals = 8 - -[XAU] -peggy_denom = xau -decimals = 6 - -[XBX] -peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 -decimals = 18 - -[XCN] -peggy_denom = ibc/79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814 -decimals = 18 - -[XDD] -peggy_denom = inj10e64r6exkrm52w9maa2e99nse2zh5w4zajzv7e -decimals = 18 - -[XIII] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII -decimals = 6 - -[XIII-INJ LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pwf7q5vtq0thplnkdsp4v09mr66jkfyrsjr5g3 -decimals = 18 - -[XMAS] -peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/XMAS -decimals = 6 - -[XMASINJ] -peggy_denom = inj1yhp235hgpa0nartawhtx0q2hkhr6y8cdth4neu -decimals = 8 - -[XMASPUMP] -peggy_denom = inj165lcmjswrkuz2m5p45wn00qz4k2zpq8r9axkp9 -decimals = 8 - -[XNJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar -decimals = 18 - -[XPLA] -peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe -decimals = 8 - -[XPRT] -peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB -decimals = 6 - -[XRAY] -peggy_denom = inj1aqgkr4r272dg62l9err5v3d3hme2hpt3rzy4zt -decimals = 8 - -[XRP] -peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe -decimals = 18 - -[XTALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis -decimals = 6 - -[XTRUMP] -peggy_denom = ibc/5339B0D20986A7C20C2548ED9D6B8DE47BB64E03ABFD051B7792E713036EA20C -decimals = 6 - -[XUPS] -peggy_denom = inj1f3ppu7jgputk3qr833f4hsl8n3sm3k88zw6um0 -decimals = 8 - -[XYZ] -peggy_denom = factory/inj12aljr5fewp8vlns0ny740wuwd60q89x0xsqcz3/XYZ -decimals = 6 - -[XmasPump] -peggy_denom = inj1yjtgs6a9nwsljwk958ypf2u7l5kqf5ld8h3tmd -decimals = 8 - -[YAKUZA] -peggy_denom = factory/inj1r5pgeg9xt3xr0mw5n7js8kux7hyvjlsjn6k8ce/YAKUZA -decimals = 6 - -[YAMEI] -peggy_denom = inj1042ucqa8edhazdc27xz0gsphk3cdwxefkfycsr -decimals = 18 - -[YEA] -peggy_denom = inj1vfasyvcp7jpqfpdp980w28xemyurdnfys84xwn -decimals = 18 - -[YEET] -peggy_denom = inj10vhq60u08mfxuq3zr6ffpm7uelcc9ape94xq5f -decimals = 18 - -[YFI] -peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e -decimals = 18 - -[YKZ] -peggy_denom = factory/inj16a7s0v3c2hp575s0ugmva8cedq9yvsmz4mvdcd/YKZ -decimals = 6 - -[YMOS] -peggy_denom = ibc/26AB5A32422A0E9BC3B7FFCCF57CB30F3E8AEEA0F1705D64DCF4D8FA3DD71B9D -decimals = 6 - -[YOAN] -peggy_denom = inj1hgrgkrpwsu6n44ueucx0809usskkp6vdcr3ul9 -decimals = 18 - -[YOKAI] -peggy_denom = inj1y7k7hdw0nyw05rc8qr6nmwlp2kq3vzh065frd6 -decimals = 18 - -[YOSHI] -peggy_denom = inj13y8susc9dle4x664ktps3ynksxxgt6lhmckuxp -decimals = 18 - -[YSIR] -peggy_denom = inj1zff494cl7wf0g2fzqxdtxn5ws4mkgy5ypxwlql -decimals = 18 - -[YUKI] -peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/YUKI -decimals = 6 - -[YUM.axl] -peggy_denom = ibc/253F76EB6D04F50492930A5D97465A495E5D6ED674A33EB60DDD46F01EF56504 -decimals = 18 - -[Yakuza] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/Yakuza -decimals = 6 - -[Yang] -peggy_denom = inj10ga6ju39mxt94suaqsfagea9t9p2ys2lawml9z -decimals = 6 - -[YeetYak] -peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/YeetYak -decimals = 6 - -[YieldETH] -peggy_denom = ibc/6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556 -decimals = 18 - -[Ykz] -peggy_denom = inj1ur8dhklqn5ntq45jcm5vy2tzp5zfc05w2pmjam -decimals = 18 - -[Yogi] -peggy_denom = inj1zc3uujkm2sfwk5x8xlrudaxwsc0t903rj2jcen -decimals = 6 - -[ZEUS] -peggy_denom = inj1302yft4ppsj99qy5avv2qv6hfuvzluy4q8eq0k -decimals = 18 - -[ZIG] -peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 -decimals = 18 - -[ZIG-INJ LP] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1j0hepy2mrfc705djm2q53ucnyq5ygejq5mr4n2 -decimals = 18 - -[ZIGZAG] -peggy_denom = inj1d70m92ml2cjzy2lkj5t2addyz6jq4qu8gyfwn8 -decimals = 6 - -[ZIL] -peggy_denom = ibc/AE996D1AF771FED531442A232A4403FAC51ACFFF9B645FF4363CFCB76019F5BD -decimals = 12 - -[ZK] -peggy_denom = zk -decimals = 18 - -[ZOE] -peggy_denom = factory/inj17v462f55kkuhjhvw7vdcjzd2wdk85yh8js3ug9/ZOE -decimals = 6 - -[ZOMBIE] -peggy_denom = factory/inj12yvvkskjdedhztpl4g2vh888z00rgl0wctarst/ZOMBIE -decimals = 6 - -[ZOOMER] -peggy_denom = inj173zkm8yfuqagcc5m7chc4dhnq0k5hdl7vwca4n -decimals = 18 - -[ZORO] -peggy_denom = factory/inj1z70nam7mp5qq4wd45ker230n3x4e35dkca9la4/ZORO -decimals = 18 - -[ZRO] -peggy_denom = zro -decimals = 6 - -[ZRX] -peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 -decimals = 18 - -[ZUZU] -peggy_denom = factory/inj1v05uapg65p6f4307qg0hdkzssn82js6n5gc03q/ZUZU -decimals = 6 - -[ZZZ] -peggy_denom = factory/inj1a2qk8tsd4qv7rmtp8g8ktj7zfldj60hpp0arqp/ZZZ -decimals = 6 - -[aUSD] -peggy_denom = inj1p3nrwgm9u3dtln6rwdvrsmjt5fwlhhhq3ugckd -decimals = 18 - -[allARB] -peggy_denom = ibc/3E70B2EC4586439CF36FFA492BB17289B7F9B4F5FD774E18A5CA63125912A2B0 -decimals = 18 - -[allBTC] -peggy_denom = ibc/2D805BFDFB164DE4CE69514BF2CD203C07BF79DF52EF1971763DCBD325917CC5 -decimals = 8 - -[allDOT] -peggy_denom = ibc/6AE5D5748931D81AA53B411F8AF4AD129BA4C29743DB7B4294BDA5E558AF8757 -decimals = 18 - -[allETH] -peggy_denom = ibc/1638ABB0A4233B36CC9EBBD43775D17DB9A86190E826580963A0B59A621BD7FD -decimals = 18 - -[allLINK] -peggy_denom = ibc/58376D3ECCAA33DC2E9E3FFA591B1D7451C64DFE67CD909FAEE6616E4883E2D0 -decimals = 18 - -[allOP] -peggy_denom = ibc/DA39B90398E84753036C686E39D119A25D7EA8C005DC16F3C135A43209AC6C02 -decimals = 18 - -[allPEPE] -peggy_denom = ibc/E19F364C283602F033EC6655C74084AAB6C1EEF5BD3B688EE5D6B3BE15150E4F -decimals = 18 - -[allSHIB] -peggy_denom = ibc/97339E314F6AAA5012E9772B4FC2EF585985375022D2BF4B4920E10D70937BDE -decimals = 18 - -[allSOL] -peggy_denom = ibc/FA2D0C9110C1DFBAEF084C161D1A0EFC6270C64B446FDEC686C30FCF99FE22CA -decimals = 9 - -[allUSDT] -peggy_denom = ibc/7991930BA02EBF3893A7E244233E005C2CB14679898D8C9E680DA5F7D54E647D -decimals = 6 - -[ampGASH] -peggy_denom = ibc/B52F9774CA89A45FFB924CEE4D1E586013E33628A3784F3CCF10C8CE26A89E7F -decimals = 6 - -[ampINJ] -peggy_denom = factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ -decimals = 6 - -[ampKUJI] -peggy_denom = ibc/34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC -decimals = 6 - -[ampLUNA] -peggy_denom = ibc/751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8 -decimals = 6 - -[ampMNTA] -peggy_denom = ibc/A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC -decimals = 6 - -[ampOSMO] -peggy_denom = ibc/012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D -decimals = 6 - -[ampROAR] -peggy_denom = ibc/7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557 -decimals = 6 - -[ampSEI] -peggy_denom = ibc/6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5 -decimals = 6 - -[ampWHALE] -peggy_denom = ibc/168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32 -decimals = 6 - -[ampWHALEt] -peggy_denom = ibc/DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE -decimals = 6 - -[anon] -peggy_denom = factory/inj15n8jl0dcepjfy3nhsa3gm734rjx5x2ff3y9f2s/anon -decimals = 6 - -[ape] -peggy_denom = factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/ape -decimals = 6 - -[ashLAB] -peggy_denom = ibc/D3D5FB034E9CAA6922BB9D7D52D909116B7FFF7BD73299F686C972643B4767B9 -decimals = 6 - -[ashLUNA] -peggy_denom = ibc/19C3905E752163B6EEB903A611E0832CCD05A32007E98C018759905025619D8F -decimals = 6 - -[ashSYN] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/syn.ash -decimals = 6 - -[avalanche.USDC.wh] -peggy_denom = ibc/348633370BE07A623D7FC9CD229150936ADCD3A4E842DAD246BBA817D21FF6C7 -decimals = 6 - -[axlETH] -peggy_denom = ibc/34EF5DA5B1CFB23FA25F1D486C89AFC9E5CC5727C224975438583C444E88F039 -decimals = 18 - -[axlFIL] -peggy_denom = ibc/9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D -decimals = 18 - -[axlUSDC] -peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 -decimals = 6 - -[axlWBTC] -peggy_denom = ibc/F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54 -decimals = 6 - -[bCRE] -peggy_denom = ibc/83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736 -decimals = 6 - -[bINJ] -peggy_denom = factory/inj1dxp690rd86xltejgfq2fa7f2nxtgmm5cer3hvu/bINJ -decimals = 18 - -[bKUJI] -peggy_denom = ibc/5C48695BF3A6BCC5DD147CC1A2D09DC1A30683FE369BF472704A52CF9D59B42D -decimals = 6 - -[bLUNA] -peggy_denom = ibc/C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680 -decimals = 6 - -[bNEO] -peggy_denom = ibc/48F6A028444987BB26299A074A5C32DC1679A050D5563AC10FF81EED9E22D8B8 -decimals = 8 - -[bOSMO] -peggy_denom = ibc/C949BEFD9026997A65D0125340B096AA809941B3BB13D6C2D1E8E4A17F2130C4 -decimals = 6 - -[bWHALE] -peggy_denom = ibc/ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2 -decimals = 6 - -[baby INJ] -peggy_denom = inj1j0l9t4n748k2zy8zm7yfwjlpkf069d2jslfh3d -decimals = 18 - -[babyBENANCE] -peggy_denom = inj1rfv2lhr0qshztmk86f05vdmx2sft9zs6cc2ltj -decimals = 6 - -[babyCLON] -peggy_denom = inj1pyghkw9q0kx8mnuhcxpqnczfxst0way2ep9s54 -decimals = 6 - -[babyCOKE] -peggy_denom = inj14mu7fw0hzxvz3dl9y628xva2xuvngmz4zrwllz -decimals = 6 - -[babyDIB] -peggy_denom = inj1tquat4mh95g33q5rhg5c72yh6j6x5w3p6ynuqg -decimals = 18 - -[babyDOJO] -peggy_denom = inj10ny97fhd827s3u4slfwehu7m5swnpnmwzxsc40 -decimals = 6 - -[babyDRAGON] -peggy_denom = inj1lfemyjlce83a7wre4k5kzd8zyytqavran5ckkv -decimals = 18 - -[babyDRUGS] -peggy_denom = inj1nqcrsh0fs60k06mkc2ptxa9l4g9ktu4jct8z2w -decimals = 6 - -[babyDrugs] -peggy_denom = inj1457z9m26aqvga58demjz87uyt6su7hyf65aqvr -decimals = 6 - -[babyGINGER] -peggy_denom = inj1y4dk7ey2vrd4sqems8hnzh2ays8swealvfzdmg -decimals = 6 - -[babyINJUSSY] -peggy_denom = factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/babyINJUSSY -decimals = 6 - -[babyJUNIORES] -peggy_denom = inj1m4k5fcjz86dyz25pgagj50jcydh9llvpw8lxyj -decimals = 18 - -[babyKAGE] -peggy_denom = inj12gh464eqc4su4qd3frxxlyjymf0nhzgzm9a203 -decimals = 6 - -[babyKANGAROO] -peggy_denom = inj12s9a6vnmgyf8vx448cmt2hzmhhfuptw8agn2xs -decimals = 6 - -[babyKOALA] -peggy_denom = inj19lm6nrfvam539ahr0c8nuapfh6xzlhjaxv2a39 -decimals = 6 - -[babyMONKS] -peggy_denom = inj17udts7hdggcurc8892tmd7y56w5dkxsgv2v6eu -decimals = 18 - -[babyNINJA] -peggy_denom = inj1n8883sfdp3cufstk05sd8dkp7pcdxr3m2fp24m -decimals = 6 - -[babyNONJA] -peggy_denom = inj15hxdpukklz4c4f3l20rl50h9wqa7rams74gyah -decimals = 18 - -[babyPANDA] -peggy_denom = inj1lpu8rcw04zenfwkxdld2dm2pd70g7yv6hz7dnf -decimals = 18 - -[babyPING] -peggy_denom = inj17fa3gt6lvwj4kguyulkqrc0lcmxcgcqr7xddr0 -decimals = 18 - -[babySAMURAI] -peggy_denom = inj1arnd0xnxzg4qgxn4kupnzsra2a0rzrspwpwmrs -decimals = 6 - -[babySHEROOM] -peggy_denom = inj1cmw4kwqkhwzx6ha7d5e0fu9zj7aknn4mxqqtf0 -decimals = 6 - -[babySHROOM] -peggy_denom = inj14zxwefzz5p3l4mltlzgmfwh2jkgjqum256qhna -decimals = 6 - -[babySMELLY] -peggy_denom = inj16hl3nlwlg2va07y4zh09vzh9xtxy6uwpmy0f5l -decimals = 6 - -[babySPUUN] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/babyspuun -decimals = 6 - -[babySYN] -peggy_denom = inj1m6jtz6kh6ezysempdy0juzsv5e2xew2y2j6f7q -decimals = 18 - -[babyYAKUZA] -peggy_denom = inj1rep4p2x86avty00qvgcu4vfhywmsznf42jdpzs -decimals = 6 - -[babyYKZ] -peggy_denom = inj16wa97auct633ft6cjzr22xv2pxvym3k38rzskc -decimals = 18 - -[babyYODA] -peggy_denom = factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/babyYODA -decimals = 6 - -[babyshroomin] -peggy_denom = inj1qgcfkznvtw96h950wraae20em9zmhtcm0rws68 -decimals = 18 - -[bapc] -peggy_denom = inj13j4ymx9kz3cdasg0e00tsc8ruq03j6q8fftcll -decimals = 18 - -[beef] -peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/beef -decimals = 6 - -[bellboy] -peggy_denom = inj1ywvmwtpe253qhtrnvratjqmhy4aar4yl5an9dk -decimals = 6 - -[bnUSD] -peggy_denom = inj1qspaxnztkkzahvp6scq6xfpgafejmj2td83r9j -decimals = 18 - -[bobmarley] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bobmarley -decimals = 6 - -[bobo] -peggy_denom = factory/inj1ne49gse9uxujj3fjdc0evxez4yeq9k2larmuxu/bobo -decimals = 18 - -[boden] -peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/boden -decimals = 6 - -[boneWHALEt] -peggy_denom = ibc/F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57 -decimals = 6 - -[bonja the bad ninja] -peggy_denom = inj155fauc0h355fk5t9qa2x2uzq7vlt26sv0u08fp -decimals = 18 - -[bonkinu] -peggy_denom = factory/inj1936pplnstvecjgttz9eug83x2cs7xs2emdad4z/bonkinu -decimals = 6 - -[bonkmas] -peggy_denom = factory/inj17a0fp4rguzgf9mwz90y2chc3lr445nujdwc063/bonkmas -decimals = 6 - -[bozo] -peggy_denom = inj14r42t23gx9yredm37q3wjw3vx0q6du85vuugdr -decimals = 18 - -[brian] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/brian -decimals = 6 - -[burn] -peggy_denom = inj1p6h58futtvzw5gdjs30fqv4l9ljq8aepk3e0k5 -decimals = 18 - -[cATOM] -peggy_denom = ibc/C2B5C9C8E44D2C35EC6CC29E570C4AFC6075EB668F237D49418994C06262877E -decimals = 6 - -[cAUUU] -peggy_denom = ibc/DFC3A28BBBA0CE50BD290A423AF4E06F25BE78125806A390CE366061509CA281 -decimals = 6 - -[cINJ] -peggy_denom = inj1l7vah2zmwancwup5y8ltnqphrwy0qg8hrryw6w -decimals = 18 - -[cInj] -peggy_denom = ibc/6F2838A189A5EEB14231F39B3033912F3B5E652CCB76F491B4FE26E21FE7DCBB -decimals = 6 - -[cLUNA] -peggy_denom = ibc/9CD1A7491660EE969236EE193FFC154D8940AE019855F393C258F3176C4556AB -decimals = 6 - -[cOSMO] -peggy_denom = ibc/8932F2DFA131317128CAAE325FF4D043E87960E3616D6A18BE4B69900186C5C0 -decimals = 6 - -[candy] -peggy_denom = inj1wyagfdn65kp5a2x03g9n5fllr02h4nyy5aunjy -decimals = 18 - -[cartel] -peggy_denom = ibc/FDD71937DFA4E18BBF16734EB0AD0EFA9F7F1B0F21D13FAF63F0B4F3EA7DEF28 -decimals = 6 - -[cat] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cat -decimals = 6 - -[cbETH] -peggy_denom = ibc/545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0 -decimals = 18 - -[ccsl] -peggy_denom = inj1mpande8tekavagemc998amgkqr5yte0qdvaaah -decimals = 18 - -[cdj] -peggy_denom = inj1qwx2gx7ydumz2wt43phzkrqsauqghvct48pplw -decimals = 18 - -[chad] -peggy_denom = factory/inj182lgxnfnztjalxqxcjn7jal27w7xg28aeygwd9/chad -decimals = 6 - -[coke] -peggy_denom = factory/inj1cdlqynzr2ktn54l3azhlulzkyksuw8yj3mfadx/coke -decimals = 6 - -[cook] -peggy_denom = factory/inj1cadquzdmqe04hyjfyag3d9me9vxh9t6py383sy/cook -decimals = 6 - -[cookie] -peggy_denom = factory/inj1cadquzdmqe04hyjfyag3d9me9vxh9t6py383sy/cookie -decimals = 6 - -[crypto] -peggy_denom = inj19w5ntlx023v9rnecjuy7yem7s5lrg5gxlfrxfj -decimals = 18 - -[dATOM] -peggy_denom = ibc/9495CFCB73E9D060D7B8C974C22AD8D5F1D97F93B66A4E326A3052ABE6470BB6 -decimals = 6 - -[dATOM-BOOST-LP] -peggy_denom = ibc/2F595556E2BFF5649C688FB2C6164DDBC64F479B747323056A6AE1F3863878B6 -decimals = 6 - -[dATOM-YIELD-LP] -peggy_denom = ibc/AC1769D4FB3B3AC3FFF39219F22E5EFCBD4EB266970E3B1306E1664C9595C017 -decimals = 6 - -[dINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 -decimals = 18 - -[dYdX] -peggy_denom = peggy0x92D6C1e31e14520e676a687F0a93788B716BEff5 -decimals = 18 - -[dab] -peggy_denom = inj1a93l8989wmjupyq4ftnu06836n2jjn7hjee68d -decimals = 18 - -[dada] -peggy_denom = inj1yqwjse85pqmum5pkyxz9x4aqdz8etwhervtv66 -decimals = 18 - -[dalton] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/dalton -decimals = 6 - -[devUSDC] -peggy_denom = inj13mpkggs6t62kzt6pjd6guqfy6naljpp2jd3eue -decimals = 8 - -[dmo] -peggy_denom = inj10uwj0vx6d42p67z8jl75eh4tgxrgm3mp4mqwq3 -decimals = 18 - -[dmoone] -peggy_denom = inj12qlppehc4fsfduv46gmtgu5n38ngl6annnr4r4 -decimals = 18 - -[dmotree] -peggy_denom = inj15x7u49kw47krzlhrrj9mr5gq20d3797kv3fh3y -decimals = 18 - -[dmotwo] -peggy_denom = inj1tegs6sre80hhvyj204x5pu52e5p3p9pl9vy4ue -decimals = 18 - -[dogwifhat] -peggy_denom = inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl -decimals = 8 - -[dogwifshoess] -peggy_denom = factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoess -decimals = 6 - -[dojo] -peggy_denom = inj1p0ccaveldsv7hq4s53378und5ke9jz24rtsr9z -decimals = 18 - -[dojodoge] -peggy_denom = inj1nueaw6mc7t7703t65f7xamj63zwaew3dqx90sn -decimals = 18 - -[dojodojo] -peggy_denom = inj1ht0qh7csdl3txk6htnalf8qpz26xzuq78x7h87 -decimals = 18 - -[dojoinu] -peggy_denom = inj14hszr5wnhshu4zre6e4l5ae2el9v2420eypu6k -decimals = 18 - -[dojoswap] -peggy_denom = inj1tml6e474rxgc0gc5pd8ljmheqep5wrqrm9m9ks -decimals = 6 - -[done] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/done -decimals = 6 - -[dontbuy] -peggy_denom = factory/inj1vg2vj46d3cy54l63qkjprtcnel2svkjhgwkfhy/dontbuy -decimals = 10 - -[dsINJ] -peggy_denom = inj1nfsxxz3q59f0yyqsjjnr7ze020klxyfefy6wcg -decimals = 6 - -[dtwo] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/dtwo -decimals = 12 - -[enuk] -peggy_denom = inj1x0km562rxugpvxq8nucy7pdmefguv6xxumng27 -decimals = 18 - -[erec] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/erec -decimals = 6 - -[estamina] -peggy_denom = inj1sklu3me2d8e2e0k6eu83t4pzcnleczal7d2zra -decimals = 18 - -[estate] -peggy_denom = inj16mx8h5updpwkslymehlm0wq84sckaytru0apvx -decimals = 18 - -[ezETH] -peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 -decimals = 18 - -[fBAD] -peggy_denom = ibc/E3586A5E146782283A6E70CC0DF98D70244345914DAE5E4DA9D0693DC8DA2613 -decimals = 9 - -[fMAD] -peggy_denom = ibc/E4021F852137E5B78737478AE82C97BE4EFC1DF07E00CCB2B457EEAF69C4DEB2 -decimals = 9 - -[fNUT] -peggy_denom = ibc/6FC47CA4645C80156D8F5DB27911E3EE7C42814439312461C1F70D845714A307 -decimals = 9 - -[fSLOTH] -peggy_denom = ibc/2DC0014CF6F1564F043B31E81D080C09BED30A2A33F0A72D47BF09805F0CB68F -decimals = 9 - -[fUSDT] -peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 -decimals = 8 - -[factory/inj102jhts2dfqh80nygmzx8hzxl9nm282vnstf5w6/position] -peggy_denom = factory/inj102jhts2dfqh80nygmzx8hzxl9nm282vnstf5w6/position -decimals = 0 - -[factory/inj1043hsv3ug5z9updx32a0a3rae87w6fzlzhcjm4/INJ] -peggy_denom = factory/inj1043hsv3ug5z9updx32a0a3rae87w6fzlzhcjm4/INJ -decimals = 6 - -[factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL] -peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL -decimals = 6 - -[factory/inj106u05e6rwg7n7xnmp2uet7jucyw5msuskyefvu/position] -peggy_denom = factory/inj106u05e6rwg7n7xnmp2uet7jucyw5msuskyefvu/position -decimals = 0 - -[factory/inj107grqcr0ugrx8jt8rdyru2ywmfngz5lrermw8q/INJ] -peggy_denom = factory/inj107grqcr0ugrx8jt8rdyru2ywmfngz5lrermw8q/INJ -decimals = 6 - -[factory/inj107zjs4j5p92pl78kwfulh8ea7nqhlq8fj6s6fr/INJ] -peggy_denom = factory/inj107zjs4j5p92pl78kwfulh8ea7nqhlq8fj6s6fr/INJ -decimals = 6 - -[factory/inj10cplvlvpnkd9ch5cfw7gn9ed9vhlkzg0y73w8y/INJ] -peggy_denom = factory/inj10cplvlvpnkd9ch5cfw7gn9ed9vhlkzg0y73w8y/INJ -decimals = 6 - -[factory/inj10cvs9y7akta2kzucu3u9mfu25h080nygrtn2xs/position] -peggy_denom = factory/inj10cvs9y7akta2kzucu3u9mfu25h080nygrtn2xs/position -decimals = 0 - -[factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/ROAR] -peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/ROAR -decimals = 0 - -[factory/inj10t3rc9u6hpvwm3kq8fx648z5elv2use4mtc8cv/INJ] -peggy_denom = factory/inj10t3rc9u6hpvwm3kq8fx648z5elv2use4mtc8cv/INJ -decimals = 6 - -[factory/inj10w0glw8d30weulv3pu6r7mx6vmflxyck27fqkd/INJ] -peggy_denom = factory/inj10w0glw8d30weulv3pu6r7mx6vmflxyck27fqkd/INJ -decimals = 6 - -[factory/inj120uxkql0jh750lgm0payyc48wpx4p5tpzsvqsl/position] -peggy_denom = factory/inj120uxkql0jh750lgm0payyc48wpx4p5tpzsvqsl/position -decimals = 0 - -[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK] -peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK -decimals = 6 - -[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/EA] -peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/EA -decimals = 0 - -[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG] -peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG -decimals = 6 - -[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS] -peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS -decimals = 6 - -[factory/inj1255swku4m04m533wmkmtmvhnh77zrk83dqgwfr/position] -peggy_denom = factory/inj1255swku4m04m533wmkmtmvhnh77zrk83dqgwfr/position -decimals = 0 - -[factory/inj125anxwhzcsqksvthce0xhktqhn4x406vfgxasx/INJ] -peggy_denom = factory/inj125anxwhzcsqksvthce0xhktqhn4x406vfgxasx/INJ -decimals = 6 - -[factory/inj12dgml8gwd2v88yn0kfcs6mtkmvlu32llekfzzv/position] -peggy_denom = factory/inj12dgml8gwd2v88yn0kfcs6mtkmvlu32llekfzzv/position -decimals = 0 - -[factory/inj12vhmdjtvyxzr0vmg5znxvhw7dsakjuj7adz5a4/INJ] -peggy_denom = factory/inj12vhmdjtvyxzr0vmg5znxvhw7dsakjuj7adz5a4/INJ -decimals = 6 - -[factory/inj12wkmu2y4vp0hg69k36pkve6rgczwga0yzff7ha/position] -peggy_denom = factory/inj12wkmu2y4vp0hg69k36pkve6rgczwga0yzff7ha/position -decimals = 0 - -[factory/inj12ytu4vvxmsclxuqm9w0g2jazllvztlvdxjdvvg/INJ] -peggy_denom = factory/inj12ytu4vvxmsclxuqm9w0g2jazllvztlvdxjdvvg/INJ -decimals = 6 - -[factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ] -peggy_denom = factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ -decimals = 6 - -[factory/inj138fs6ctxd0vwsn7xmw0v29a2jxe3s7uhgn405w/position] -peggy_denom = factory/inj138fs6ctxd0vwsn7xmw0v29a2jxe3s7uhgn405w/position -decimals = 0 - -[factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON] -peggy_denom = factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON -decimals = 6 - -[factory/inj13jjz8nlt7wjpt5m2semml2ytdjkfrltnjtphsv/position] -peggy_denom = factory/inj13jjz8nlt7wjpt5m2semml2ytdjkfrltnjtphsv/position -decimals = 0 - -[factory/inj13q8npcxrx6yd22c096495qyf3mgvq2ekzflge3/position] -peggy_denom = factory/inj13q8npcxrx6yd22c096495qyf3mgvq2ekzflge3/position -decimals = 0 - -[factory/inj13qr6jk3y20ulaj3mvjzn2rnxx9y8d8nl7ahxpg/position] -peggy_denom = factory/inj13qr6jk3y20ulaj3mvjzn2rnxx9y8d8nl7ahxpg/position -decimals = 0 - -[factory/inj13t7ypq4g9nlc89d5vqqrawxykca6yhzv5vgdsx/position] -peggy_denom = factory/inj13t7ypq4g9nlc89d5vqqrawxykca6yhzv5vgdsx/position -decimals = 0 - -[factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA] -peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA -decimals = 6 - -[factory/inj13xdqhnegnj37fna95nyjtj68cyk4exut9mp9am/position] -peggy_denom = factory/inj13xdqhnegnj37fna95nyjtj68cyk4exut9mp9am/position -decimals = 0 - -[factory/inj13xwndajdxqz2jjg05caycedjdj099vy2mzdha2/INJ] -peggy_denom = factory/inj13xwndajdxqz2jjg05caycedjdj099vy2mzdha2/INJ -decimals = 6 - -[factory/inj140z6rk5x40rn842c648yvgl9zp7q206gyvj3w4/INJ] -peggy_denom = factory/inj140z6rk5x40rn842c648yvgl9zp7q206gyvj3w4/INJ -decimals = 6 - -[factory/inj143gkmw2nrfpks6faf66eskuxx6td6phs23752s/position] -peggy_denom = factory/inj143gkmw2nrfpks6faf66eskuxx6td6phs23752s/position -decimals = 0 - -[factory/inj144javr53kzz7qedyynwrpa83tnykw9lrzzxsr9/position] -peggy_denom = factory/inj144javr53kzz7qedyynwrpa83tnykw9lrzzxsr9/position -decimals = 0 - -[factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY] -peggy_denom = factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY -decimals = 6 - -[factory/inj14czx0fv80fnkfxtj9zn9wg7thdca8ynlu6vrg8/INJ] -peggy_denom = factory/inj14czx0fv80fnkfxtj9zn9wg7thdca8ynlu6vrg8/INJ -decimals = 6 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj100cpphf3gjq4xwzaun8dm22h6zk6tjlzl57uhe] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj100cpphf3gjq4xwzaun8dm22h6zk6tjlzl57uhe -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj109hqm6wdaq2f6nlvrf46f4gj7rwl55nmhmcslp] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj109hqm6wdaq2f6nlvrf46f4gj7rwl55nmhmcslp -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10dctm5qkm722pgazwq0wy9lxnzh8mlnnv9mr65] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10dctm5qkm722pgazwq0wy9lxnzh8mlnnv9mr65 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10hyl7t5zxrs83thk33yk90lue34lttf9wuccf8] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10hyl7t5zxrs83thk33yk90lue34lttf9wuccf8 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10nfzrxq5jl9v3ymyuna49jhhxe3x4yd2sxxs8p] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10nfzrxq5jl9v3ymyuna49jhhxe3x4yd2sxxs8p -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10x6rq57rhc7ekce0jgzcjl3ywplcjh66ufqanv] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10x6rq57rhc7ekce0jgzcjl3ywplcjh66ufqanv -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12sl2vnrja04juaan5rt3pn4h3lwa6d9348yh6h] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12sl2vnrja04juaan5rt3pn4h3lwa6d9348yh6h -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13844sjp45gta5hshs0avptawnptz23gfdjy8eg] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13844sjp45gta5hshs0avptawnptz23gfdjy8eg -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13j6rdjsakqt6ymv48ytfkr563k7h9mc9h9lh5s] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13j6rdjsakqt6ymv48ytfkr563k7h9mc9h9lh5s -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13qqk8lgn6x68r34c9w938vxwmxm5pl72kzjufq] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13qqk8lgn6x68r34c9w938vxwmxm5pl72kzjufq -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13tqf9a4tssf8gsqejecp90a03nvfpa2h29sc6y] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13tqf9a4tssf8gsqejecp90a03nvfpa2h29sc6y -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13w3fqm6zn068slf6mh4jvf7lxva4qdchrlws9u] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13w3fqm6zn068slf6mh4jvf7lxva4qdchrlws9u -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj147ymh390v733ty3l0t7yv0w3vllnky5vr78xeh] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj147ymh390v733ty3l0t7yv0w3vllnky5vr78xeh -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1494q6d3un6rpew6znydq0a0l5edw80gptj3p27] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1494q6d3un6rpew6znydq0a0l5edw80gptj3p27 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14fjgyt69ayhlz9gtgrutqdqyaf50wfxs7xx89e] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14fjgyt69ayhlz9gtgrutqdqyaf50wfxs7xx89e -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14n26cr7dj79smrgg44hfylhph9y45h4yx5gvzm] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14n26cr7dj79smrgg44hfylhph9y45h4yx5gvzm -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14r3dv360jptv4wugpcca4h5ychltfn8j738l6k] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14r3dv360jptv4wugpcca4h5ychltfn8j738l6k -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14txwtn7rkt999kek39qlxwcm2fwfqzpfyrxcvq] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14txwtn7rkt999kek39qlxwcm2fwfqzpfyrxcvq -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1557zqvn2lwg3lvl3cfk3kurd6d2gq9klypg83g] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1557zqvn2lwg3lvl3cfk3kurd6d2gq9klypg83g -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15f3xcpv3m9wgycmgc62gn3av9k7a9lydnkcrdr] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15f3xcpv3m9wgycmgc62gn3av9k7a9lydnkcrdr -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15hgev8qm20mhttw6xrjts37puqm068dfupj5m2] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15hgev8qm20mhttw6xrjts37puqm068dfupj5m2 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15xk5d4d3we8z9s9avcqfns2xsrqq9u5mgaw6q6] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15xk5d4d3we8z9s9avcqfns2xsrqq9u5mgaw6q6 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1623vfn9glj9wtd34yv3ck5z3adp673ad2ssuh2] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1623vfn9glj9wtd34yv3ck5z3adp673ad2ssuh2 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj164j450vfh7chdsxdqna3925sdqg9xry38fxf4w] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj164j450vfh7chdsxdqna3925sdqg9xry38fxf4w -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16eggztyy9ul8hfkckwgjvj43naefhazt04ruzl] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16eggztyy9ul8hfkckwgjvj43naefhazt04ruzl -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj174whv2m9y92vawm0rnte3czu3g4anr56eacqpc] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj174whv2m9y92vawm0rnte3czu3g4anr56eacqpc -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17e3zurs95u5rqp7amj4hz9sk43hu5n6f06n5g8] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17e3zurs95u5rqp7amj4hz9sk43hu5n6f06n5g8 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17g3sn33ld59n2uyevp833u4pwynvfw7chfcxq6] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17g3sn33ld59n2uyevp833u4pwynvfw7chfcxq6 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17gvlu9v8h0kk06aqf66u9zk235824ksknugpqm] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17gvlu9v8h0kk06aqf66u9zk235824ksknugpqm -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17m8xuqntg5sc3m78jzajte5r4my4erwhujq3uh] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17m8xuqntg5sc3m78jzajte5r4my4erwhujq3uh -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pda96ujt7fzr3d5jmfkh4dzvrqzc0nk56kt34] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pda96ujt7fzr3d5jmfkh4dzvrqzc0nk56kt34 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj180zwmntk4yw8mp90qzedvgg63lc8g9ju4f79pn] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj180zwmntk4yw8mp90qzedvgg63lc8g9ju4f79pn -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj185gqewrlde8vrqw7j8lpad67v8jfrx9u28w38t] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj185gqewrlde8vrqw7j8lpad67v8jfrx9u28w38t -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj188yjwj0gpnd39ysgas0f95pngdacwma2jmm8ne] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj188yjwj0gpnd39ysgas0f95pngdacwma2jmm8ne -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18cd8sht8pksj07z8k36rwytn6gyg3kku8x6xgq] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18cd8sht8pksj07z8k36rwytn6gyg3kku8x6xgq -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18dc3m7xtxa6wx0auycyfrq239atvzwe9g2s0nt] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18dc3m7xtxa6wx0auycyfrq239atvzwe9g2s0nt -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18ms5jl7dtdjzsj0gwceqnc46apdfym7xpjqyes] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18ms5jl7dtdjzsj0gwceqnc46apdfym7xpjqyes -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18x46txl47l8gtcrl05a7xynhjx6w0xgtmnng7s] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18x46txl47l8gtcrl05a7xynhjx6w0xgtmnng7s -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19f6ww9peaa3tjhjynjcsxms9v4mcpqrpdxz76l] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19f6ww9peaa3tjhjynjcsxms9v4mcpqrpdxz76l -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19t6urf7j7t85xa8yf5h85323j5zmvpg030dr6w] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19t6urf7j7t85xa8yf5h85323j5zmvpg030dr6w -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a36gng2z5p7m3ecx528zx09eclg5hsmnhrjaun] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a36gng2z5p7m3ecx528zx09eclg5hsmnhrjaun -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a52nehymq2m779j7zy6ra4eus70y6dnahfs4a5] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a52nehymq2m779j7zy6ra4eus70y6dnahfs4a5 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a7wd7ks949wxzcw69n6md60c0qhykk93w0r8g6] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a7wd7ks949wxzcw69n6md60c0qhykk93w0r8g6 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a8mlar2l3r25uaxdgk0zxyapq7h0435264h8jk] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a8mlar2l3r25uaxdgk0zxyapq7h0435264h8jk -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1c43k77927yryd8wkzupnppen83alqkm5myt6we] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1c43k77927yryd8wkzupnppen83alqkm5myt6we -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ceq66p5aahn6txg5fvyg4mhy2vfq00cuk75y9r] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ceq66p5aahn6txg5fvyg4mhy2vfq00cuk75y9r -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ch7unkwz0v99ynz98v5p0xae4gg0yxnjw6meg7] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ch7unkwz0v99ynz98v5p0xae4gg0yxnjw6meg7 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1clr2v2jwx8umtd4t3ent5la6q2ngsureenjqtg] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1clr2v2jwx8umtd4t3ent5la6q2ngsureenjqtg -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ctr4vujpjvmqxxkqym9zgm76p4uf0hyklvdp25] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ctr4vujpjvmqxxkqym9zgm76p4uf0hyklvdp25 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cv6d835mxs5wsahaf6dp6pqs4h453s3lpk5wxd] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cv6d835mxs5wsahaf6dp6pqs4h453s3lpk5wxd -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d3rkrv8f4xm4zv5rcdkydy36xzdksq94ewy5md] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d3rkrv8f4xm4zv5rcdkydy36xzdksq94ewy5md -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d4vlrslnwxn3zpq64e8z7ap04c5svu5s83f2k5] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d4vlrslnwxn3zpq64e8z7ap04c5svu5s83f2k5 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d62ry5fwsafggxu67fwhavpu3954vf5n8e5pmt] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d62ry5fwsafggxu67fwhavpu3954vf5n8e5pmt -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dsd2d4ac60gs2sc34nmwu6x9q2h5cvdr0vz4du] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dsd2d4ac60gs2sc34nmwu6x9q2h5cvdr0vz4du -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dtpqn48watxrezj6gg630x0xzxw4jm70mqxgpt] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dtpqn48watxrezj6gg630x0xzxw4jm70mqxgpt -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e4r4gcx3z4f2cey2wyy27zcnr8tvjs0zrdvtvs] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e4r4gcx3z4f2cey2wyy27zcnr8tvjs0zrdvtvs -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e7zmlmkexknfseutx2anr0mhkry8mwg000xm0r] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e7zmlmkexknfseutx2anr0mhkry8mwg000xm0r -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1elhv36r9nkw0praytqqgjpxgyd8lte7r4msp5y] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1elhv36r9nkw0praytqqgjpxgyd8lte7r4msp5y -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1esca7pkwcptl7xcwfntnye9lgmqj7exnh4waqw] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1esca7pkwcptl7xcwfntnye9lgmqj7exnh4waqw -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ete5curf5mjtznmtzu5xxyrvyxclgsscxd9qk9] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ete5curf5mjtznmtzu5xxyrvyxclgsscxd9qk9 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1eux0764t05hmmyfksjmwhahq9kh3yq4stcg0rs] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1eux0764t05hmmyfksjmwhahq9kh3yq4stcg0rs -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f8nq8vvlhms85ywsnp9vnkua3jszqjfd6ts4qq] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f8nq8vvlhms85ywsnp9vnkua3jszqjfd6ts4qq -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fz2tp874h856zuhtujjz3a65c0x6fh742lwdv9] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fz2tp874h856zuhtujjz3a65c0x6fh742lwdv9 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1gzcx85m49u6y8a9dwx6eddfw8d9r4xtzzna83y] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1gzcx85m49u6y8a9dwx6eddfw8d9r4xtzzna83y -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1h5f6vxsn5hpln75c4mfmntza9m7maj6s396u4w] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1h5f6vxsn5hpln75c4mfmntza9m7maj6s396u4w -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hawmarr2vaswduu09xvkcqjqm79d5zp8zku95r] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hawmarr2vaswduu09xvkcqjqm79d5zp8zku95r -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hqp8mnaa0m9zj77y9qqrv33v3k8w2jx3xjahm2] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hqp8mnaa0m9zj77y9qqrv33v3k8w2jx3xjahm2 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hxq5q8h7d8up6j4jcmxje42zpkzr409j6ay4wu] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hxq5q8h7d8up6j4jcmxje42zpkzr409j6ay4wu -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hza9v3f32kt8vjx24twpj46c5gx52uhylj5qzm] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hza9v3f32kt8vjx24twpj46c5gx52uhylj5qzm -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1j62tv3rr6ypyfft09q2uvgnplvdy5h7knas83w] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1j62tv3rr6ypyfft09q2uvgnplvdy5h7knas83w -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1jm4q2da9xutly7uslzce3ftgjr0xunvj6ek5ve] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1jm4q2da9xutly7uslzce3ftgjr0xunvj6ek5ve -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kvlz7j3meau8uy5upr95p2kn0j275jck9vjh4j] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kvlz7j3meau8uy5upr95p2kn0j275jck9vjh4j -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln2tayrlh0vl73cdzxryhkuuppkycxpna5jm87] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln2tayrlh0vl73cdzxryhkuuppkycxpna5jm87 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln9zmpv8nruce89hrf6z0m5t8t93jswyrw89r9] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln9zmpv8nruce89hrf6z0m5t8t93jswyrw89r9 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lp0lcf67tk4y8ccnmmggpj8c8wf3gkhtt439r8] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lp0lcf67tk4y8ccnmmggpj8c8wf3gkhtt439r8 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lpctts3ah545m8q0pnd696kwthdzgaxur70cm0] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lpctts3ah545m8q0pnd696kwthdzgaxur70cm0 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lt4tg3zxula8kgg4q73s02mqdnjnyu2mal4fv9] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lt4tg3zxula8kgg4q73s02mqdnjnyu2mal4fv9 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m5czravjfjjmf6l0qujkvxtue373e4cff07d4n] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m5czravjfjjmf6l0qujkvxtue373e4cff07d4n -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m9chxsuw52eydkah423ue2e6w8pyj89zxlla6m] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m9chxsuw52eydkah423ue2e6w8pyj89zxlla6m -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mgypkdu4esseefz7dgahuduft33a3any5lrx8a] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mgypkdu4esseefz7dgahuduft33a3any5lrx8a -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ms0ycmqsqnnd8zztvzrq0jts0cudfujjmzesw2] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ms0ycmqsqnnd8zztvzrq0jts0cudfujjmzesw2 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mve80zt9gyetq9e2qsjdz579qc9nnpxprkuqjt] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mve80zt9gyetq9e2qsjdz579qc9nnpxprkuqjt -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mw99k3jrxhzhktphtr55e9fhp2rncc2elh75js] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mw99k3jrxhzhktphtr55e9fhp2rncc2elh75js -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n0cq8p8zd36ecq2tljtsg0uqkpxn830n5mk38j] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n0cq8p8zd36ecq2tljtsg0uqkpxn830n5mk38j -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nemphsdeqekqr7j8ve8gz8jcz4z2lurzty9dw3] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nemphsdeqekqr7j8ve8gz8jcz4z2lurzty9dw3 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nkj7k722lduxvhs376qkl9lhjw0le0pwux57wp] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nkj7k722lduxvhs376qkl9lhjw0le0pwux57wp -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1np2ylwgqgyzwppx4k2lr8rkqq5vs8v5y84ghwp] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1np2ylwgqgyzwppx4k2lr8rkqq5vs8v5y84ghwp -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nssppa309t2pty5agwrmrjqx9md9764ntesce6] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nssppa309t2pty5agwrmrjqx9md9764ntesce6 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pljwjmkngg7atyxwm8mpwwdayyqk0pfjz8d4j0] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pljwjmkngg7atyxwm8mpwwdayyqk0pfjz8d4j0 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ps7s09q5mldj3wghtcvpsflt0uvc9c0wllqvm0] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ps7s09q5mldj3wghtcvpsflt0uvc9c0wllqvm0 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pwqllsz0d7377v6gvx5vd3df9xurekpyrsscln] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pwqllsz0d7377v6gvx5vd3df9xurekpyrsscln -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q37t59kug9hhjvht20uc8kheva0tfdjak4yys8] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q37t59kug9hhjvht20uc8kheva0tfdjak4yys8 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q62knrccf8n2386jzzv2plr6rat2lfvx95muqv] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q62knrccf8n2386jzzv2plr6rat2lfvx95muqv -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qg8x9eec40aqjzezku7r2dpz0sz3962ljsk8ga] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qg8x9eec40aqjzezku7r2dpz0sz3962ljsk8ga -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qu0zyksruugw9az7e0m7wf9lmatacf5d2uznqw] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qu0zyksruugw9az7e0m7wf9lmatacf5d2uznqw -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rl004yqz80hdkn5ctnqfxngv24cs2yc39zqaxt] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rl004yqz80hdkn5ctnqfxngv24cs2yc39zqaxt -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rm88t0crsdfkjpgs9k6tzupzf9qsv2az8u06a7] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rm88t0crsdfkjpgs9k6tzupzf9qsv2az8u06a7 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rn0hfpfcj09uq7r6l7tx2fhdwsufptv340w904] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rn0hfpfcj09uq7r6l7tx2fhdwsufptv340w904 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rnraxu54huv7wkmpff3v8mzhqh49g0e6fj67sd] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rnraxu54huv7wkmpff3v8mzhqh49g0e6fj67sd -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rx2yfurr3zh4nzv5gazh899dyc2v4lhx2fex3r] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rx2yfurr3zh4nzv5gazh899dyc2v4lhx2fex3r -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ry55p3hcfwqd0r4d6hkd2hgldfamf63ehkem8a] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ry55p3hcfwqd0r4d6hkd2hgldfamf63ehkem8a -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s2rs23gg0mw6jr7s3rjhwsrssnnhn8vck24n2r] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s2rs23gg0mw6jr7s3rjhwsrssnnhn8vck24n2r -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s66zhks8v3fm24974crzxufh7w6ktt694g9t3j] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s66zhks8v3fm24974crzxufh7w6ktt694g9t3j -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sn40ldl8ud3dalqk39mxp7t4unqaadnt9cg9a4] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sn40ldl8ud3dalqk39mxp7t4unqaadnt9cg9a4 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sqc9jap0yye84dx5uyqyvepg83p7hvqke5sjvk] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sqc9jap0yye84dx5uyqyvepg83p7hvqke5sjvk -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ta03vxka8mpgem44xvhewekg89wxel8leyvugw] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ta03vxka8mpgem44xvhewekg89wxel8leyvugw -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ufx78kwvwpds77hxrmxkedsp6yhvflk5lz2a58] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ufx78kwvwpds77hxrmxkedsp6yhvflk5lz2a58 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uhukgtdm0xyq35w34rxh73g3yhffxw4qg568sx] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uhukgtdm0xyq35w34rxh73g3yhffxw4qg568sx -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uq30shptkerand4zl6xr8ga2jt0mu0c6npak0a] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uq30shptkerand4zl6xr8ga2jt0mu0c6npak0a -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uu9dsss65z2dt6cz9avr2tk6wrdjxxe0cxh4d5] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uu9dsss65z2dt6cz9avr2tk6wrdjxxe0cxh4d5 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v0dxtj5ku80w4h96jc0scyxlnk3j869dj2nnay] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v0dxtj5ku80w4h96jc0scyxlnk3j869dj2nnay -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v3z2nx0k9fjv83ktx4dtsau82ff2c68gxfqah9] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v3z2nx0k9fjv83ktx4dtsau82ff2c68gxfqah9 -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vd8qv39y8ay7x0ldlhhnfcjc0k6ya69fvp2vzw] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vd8qv39y8ay7x0ldlhhnfcjc0k6ya69fvp2vzw -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vy9xhn2gmswm7xyt39wnnd8pz4w6e93zjzurdu] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vy9xhn2gmswm7xyt39wnnd8pz4w6e93zjzurdu -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1w9z5t04v2jl6r85s8e0984f4v2drdpq8fnl6hs] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1w9z5t04v2jl6r85s8e0984f4v2drdpq8fnl6hs -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wea6emsvgrxnsg07wsf9kx5djn2r4fyqzsxcja] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wea6emsvgrxnsg07wsf9kx5djn2r4fyqzsxcja -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wyd57qlwdhfj4sepl4y2eedsn077gzgg95cgwh] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wyd57qlwdhfj4sepl4y2eedsn077gzgg95cgwh -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1x9uecns088t3dw2map7q235nzvyfhtzqkgneux] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1x9uecns088t3dw2map7q235nzvyfhtzqkgneux -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xjvf8nzcx5uvjnmey6x7vx4xe08k95k7gx0fyl] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xjvf8nzcx5uvjnmey6x7vx4xe08k95k7gx0fyl -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzjcwy4m2qyn3kvspgsxhdltxz5kw34n8x80xx] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzjcwy4m2qyn3kvspgsxhdltxz5kw34n8x80xx -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzm2tg8mv3ajgw4z4vnjynpanjqvezywcgjkzf] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzm2tg8mv3ajgw4z4vnjynpanjqvezywcgjkzf -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zcssxvw4x9zdqww2atu7at0n5ss2lv8gg8u6ul] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zcssxvw4x9zdqww2atu7at0n5ss2lv8gg8u6ul -decimals = 0 - -[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zejzp0ne0hh7c0wupuspkcqwajlw6kww3r86jl] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zejzp0ne0hh7c0wupuspkcqwajlw6kww3r86jl -decimals = 0 - -[factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI] -peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI -decimals = 6 - -[factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI] -peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI -decimals = 6 - -[factory/inj14fx6k6an38hmqz58nxzggxycmy7mpy9ju7mqxq/INJ] -peggy_denom = factory/inj14fx6k6an38hmqz58nxzggxycmy7mpy9ju7mqxq/INJ -decimals = 6 - -[factory/inj14r67lv9phdjs94x6zsd446ptw04cmkq2j4t6wm/position] -peggy_denom = factory/inj14r67lv9phdjs94x6zsd446ptw04cmkq2j4t6wm/position -decimals = 0 - -[factory/inj1532ekcsx3mqtmxx0s5uc32my0et9vazdkkfcna/INJ] -peggy_denom = factory/inj1532ekcsx3mqtmxx0s5uc32my0et9vazdkkfcna/INJ -decimals = 6 - -[factory/inj153w639226jrytrcpy3tuvnheqydmxtkgucsgy0/position] -peggy_denom = factory/inj153w639226jrytrcpy3tuvnheqydmxtkgucsgy0/position -decimals = 0 - -[factory/inj15446d66cyfqh97hp0x3n749mvq4kx0lnfvuwt5/INJ] -peggy_denom = factory/inj15446d66cyfqh97hp0x3n749mvq4kx0lnfvuwt5/INJ -decimals = 6 - -[factory/inj157g6qg542h735ww6kzk5jf7s2ayscgtcg7mvv3/position] -peggy_denom = factory/inj157g6qg542h735ww6kzk5jf7s2ayscgtcg7mvv3/position -decimals = 0 - -[factory/inj157l55k7pt6wlkmvs95kx96m2y30tgvxuld6zfc/INJ] -peggy_denom = factory/inj157l55k7pt6wlkmvs95kx96m2y30tgvxuld6zfc/INJ -decimals = 6 - -[factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke] -peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke -decimals = 6 - -[factory/inj158gzqc0hlwtwx4jhu92wssxslvm2xcyg256qck/position] -peggy_denom = factory/inj158gzqc0hlwtwx4jhu92wssxslvm2xcyg256qck/position -decimals = 0 - -[factory/inj158xvl6jgd6cgdetnxu4rus4vcv50u3q06wryjl/INJ] -peggy_denom = factory/inj158xvl6jgd6cgdetnxu4rus4vcv50u3q06wryjl/INJ -decimals = 6 - -[factory/inj1598f9vtwc3furg3dnat9lnjw5eflcyuazv2c3m/position] -peggy_denom = factory/inj1598f9vtwc3furg3dnat9lnjw5eflcyuazv2c3m/position -decimals = 0 - -[factory/inj15rddsgzhts4lyuk4a92aq7g4wemgf7r3u6w80p/INJ] -peggy_denom = factory/inj15rddsgzhts4lyuk4a92aq7g4wemgf7r3u6w80p/INJ -decimals = 6 - -[factory/inj15sqzlm42xks73nxez8tw8k6tp9xln7gfth2sv6/position] -peggy_denom = factory/inj15sqzlm42xks73nxez8tw8k6tp9xln7gfth2sv6/position -decimals = 0 - -[factory/inj15w5mrks9eqwng5c39jglnxztmzy33yr6pd7umm/position] -peggy_denom = factory/inj15w5mrks9eqwng5c39jglnxztmzy33yr6pd7umm/position -decimals = 0 - -[factory/inj15xxgscstfpaztar2hjluzphvq4m8jffjym8svh/lpinj1alqcad69f6y4zepfu3k8cx0ysynjemju4auc42] -peggy_denom = factory/inj15xxgscstfpaztar2hjluzphvq4m8jffjym8svh/lpinj1alqcad69f6y4zepfu3k8cx0ysynjemju4auc42 -decimals = 0 - -[factory/inj164shttz4dv6ec8m44gulucpej3pgl7tjqhdvyk/position] -peggy_denom = factory/inj164shttz4dv6ec8m44gulucpej3pgl7tjqhdvyk/position -decimals = 0 - -[factory/inj16936rlm3gm2z7gd8t677t926qz93hqy07qhh3z/position] -peggy_denom = factory/inj16936rlm3gm2z7gd8t677t926qz93hqy07qhh3z/position -decimals = 0 - -[factory/inj169rj69y0td97a0gvz3jthr63ml79h0ez2sc0rm/position] -peggy_denom = factory/inj169rj69y0td97a0gvz3jthr63ml79h0ez2sc0rm/position -decimals = 0 - -[factory/inj16dz5cway50f6sv0l4hus2wg84mltfs7c6zwggs/position] -peggy_denom = factory/inj16dz5cway50f6sv0l4hus2wg84mltfs7c6zwggs/position -decimals = 0 - -[factory/inj16hsmv4grd5ru3axtvgc8c0dygc0skpfct837dv/position] -peggy_denom = factory/inj16hsmv4grd5ru3axtvgc8c0dygc0skpfct837dv/position -decimals = 0 - -[factory/inj16tth6zcljja520fetw9u7plyza5e6sj0rta6ua/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc] -peggy_denom = factory/inj16tth6zcljja520fetw9u7plyza5e6sj0rta6ua/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc -decimals = 0 - -[factory/inj16xkr5efuae9ur5tftr5epxtse43falevltugdt/TEST] -peggy_denom = factory/inj16xkr5efuae9ur5tftr5epxtse43falevltugdt/TEST -decimals = 6 - -[factory/inj16zm5htn50fm4veztrazn2a6yjp2kjwnvthq8r8/PEPE] -peggy_denom = factory/inj16zm5htn50fm4veztrazn2a6yjp2kjwnvthq8r8/PEPE -decimals = 6 - -[factory/inj16zquths3dwk0varlj32ur9skutl640umvllxeu/position] -peggy_denom = factory/inj16zquths3dwk0varlj32ur9skutl640umvllxeu/position -decimals = 0 - -[factory/inj17g9jsj37jt0w77x4gfmt6rxf0r2zr307kky875/INJ] -peggy_denom = factory/inj17g9jsj37jt0w77x4gfmt6rxf0r2zr307kky875/INJ -decimals = 6 - -[factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/THUG] -peggy_denom = factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/THUG -decimals = 6 - -[factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/SPUUN] -peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/SPUUN -decimals = 6 - -[factory/inj17vgy7dxx5j0a3xag8hg53e74ztjs50qrycj2pn/INJ] -peggy_denom = factory/inj17vgy7dxx5j0a3xag8hg53e74ztjs50qrycj2pn/INJ -decimals = 6 - -[factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura] -peggy_denom = factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura -decimals = 6 - -[factory/inj18c9gq53gs52rmj6nevfg48v3xx222stnxgwpku/position] -peggy_denom = factory/inj18c9gq53gs52rmj6nevfg48v3xx222stnxgwpku/position -decimals = 0 - -[factory/inj18prwk9vqw82x86lx9d8kmymmzl9vzuznzye3l0/INJ] -peggy_denom = factory/inj18prwk9vqw82x86lx9d8kmymmzl9vzuznzye3l0/INJ -decimals = 6 - -[factory/inj190kxvhadeqawy85mhv0n3m5mtza4cyndplaqnr/position] -peggy_denom = factory/inj190kxvhadeqawy85mhv0n3m5mtza4cyndplaqnr/position -decimals = 0 - -[factory/inj19a6vl3srten0csmjgeek26vkppxtpy4veyh6wj/position] -peggy_denom = factory/inj19a6vl3srten0csmjgeek26vkppxtpy4veyh6wj/position -decimals = 0 - -[factory/inj19fa4pmpnxysawtps7aq7nhh7k2x8wvvqwxv7kl/position] -peggy_denom = factory/inj19fa4pmpnxysawtps7aq7nhh7k2x8wvvqwxv7kl/position -decimals = 0 - -[factory/inj19g8xh8wfaxl7a4z5pr67e908ph68n5zamsagxt/position] -peggy_denom = factory/inj19g8xh8wfaxl7a4z5pr67e908ph68n5zamsagxt/position -decimals = 0 - -[factory/inj19h8ypfpczenmslgvxk73kszedfd9h9ptn2a5ml/position] -peggy_denom = factory/inj19h8ypfpczenmslgvxk73kszedfd9h9ptn2a5ml/position -decimals = 0 - -[factory/inj19jeceymrrcvqty0mapdf7daa47gr33khpwpfnt/position] -peggy_denom = factory/inj19jeceymrrcvqty0mapdf7daa47gr33khpwpfnt/position -decimals = 0 - -[factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda] -peggy_denom = factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda -decimals = 6 - -[factory/inj19uyuzl6chkdp3ez8aua2marzqwuv3n23ynf2x0/position] -peggy_denom = factory/inj19uyuzl6chkdp3ez8aua2marzqwuv3n23ynf2x0/position -decimals = 0 - -[factory/inj19xq90yxtaar7xlz5jdzvqgkjw285rqzsjvxc2j/position] -peggy_denom = factory/inj19xq90yxtaar7xlz5jdzvqgkjw285rqzsjvxc2j/position -decimals = 0 - -[factory/inj19y42qwvf6s9aq6qqjk09qfe0f4n78e48cqe7w4/INJ] -peggy_denom = factory/inj19y42qwvf6s9aq6qqjk09qfe0f4n78e48cqe7w4/INJ -decimals = 6 - -[factory/inj19yyllwqvapt4hsn7cpcg540qt5c3fekxxhjppg/position] -peggy_denom = factory/inj19yyllwqvapt4hsn7cpcg540qt5c3fekxxhjppg/position -decimals = 0 - -[factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH] -peggy_denom = factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH -decimals = 6 - -[factory/inj1a3lpj7yf5spw344pfa9gjcgwx3zyx5v9e6cpg2/INJ] -peggy_denom = factory/inj1a3lpj7yf5spw344pfa9gjcgwx3zyx5v9e6cpg2/INJ -decimals = 6 - -[factory/inj1a3m6hv5hmt4lxkw0uqqz7m3m7dgtd2uy4hmenp/position] -peggy_denom = factory/inj1a3m6hv5hmt4lxkw0uqqz7m3m7dgtd2uy4hmenp/position -decimals = 0 - -[factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL] -peggy_denom = factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL -decimals = 6 - -[factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/uabc] -peggy_denom = factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/uabc -decimals = 0 - -[factory/inj1a7ezydnsl7ea5xz0h8lcdjlp07e3leavkmct7q/position] -peggy_denom = factory/inj1a7ezydnsl7ea5xz0h8lcdjlp07e3leavkmct7q/position -decimals = 0 - -[factory/inj1aavd3p5f5xzr0ld0mygxp0vz84uutkclul3qhk/position] -peggy_denom = factory/inj1aavd3p5f5xzr0ld0mygxp0vz84uutkclul3qhk/position -decimals = 0 - -[factory/inj1acyx78g70fwu2fcjx6dj9yff34gscu0g4tg8vw/INJ] -peggy_denom = factory/inj1acyx78g70fwu2fcjx6dj9yff34gscu0g4tg8vw/INJ -decimals = 6 - -[factory/inj1adam3fc7h0wjlhht0utgyl53rcataw3q70vntr/INJ] -peggy_denom = factory/inj1adam3fc7h0wjlhht0utgyl53rcataw3q70vntr/INJ -decimals = 6 - -[factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA] -peggy_denom = factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA -decimals = 6 - -[factory/inj1aq5rpkexhycqk54afj630ktmgaqvc468fwk34k/position] -peggy_denom = factory/inj1aq5rpkexhycqk54afj630ktmgaqvc468fwk34k/position -decimals = 0 - -[factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX] -peggy_denom = factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX -decimals = 6 - -[factory/inj1avm2ruactjhxlrd8cq7ja7vhmtqwpu2lpnnq79/position] -peggy_denom = factory/inj1avm2ruactjhxlrd8cq7ja7vhmtqwpu2lpnnq79/position -decimals = 0 - -[factory/inj1awuqzd4sgmw9pguaftekx87pnl8ylqhvm3n97y/INJ] -peggy_denom = factory/inj1awuqzd4sgmw9pguaftekx87pnl8ylqhvm3n97y/INJ -decimals = 6 - -[factory/inj1c6eq9yp3c3ray4prfyumyv9m5ttkdzxawpg6c0/position] -peggy_denom = factory/inj1c6eq9yp3c3ray4prfyumyv9m5ttkdzxawpg6c0/position -decimals = 0 - -[factory/inj1c8vg7hteehax3nek92ysqknns5fcs64jwkvqn0/position] -peggy_denom = factory/inj1c8vg7hteehax3nek92ysqknns5fcs64jwkvqn0/position -decimals = 0 - -[factory/inj1cjzufvday63thkgqkxnesgav69c5afsm5aws8w/test] -peggy_denom = factory/inj1cjzufvday63thkgqkxnesgav69c5afsm5aws8w/test -decimals = 6 - -[factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon] -peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon -decimals = 6 - -[factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/GME] -peggy_denom = factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/GME -decimals = 6 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707147655.812049146InjUsdt1d1.08C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707147655.812049146InjUsdt1d1.08C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707151420.026670141InjUsdt1d1.08C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707151420.026670141InjUsdt1d1.08C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230551.918032637InjUsdt20d1.21C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230551.918032637InjUsdt20d1.21C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230884.525553719InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230884.525553719InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231283.066300029InjUsdt20d1.21C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231283.066300029InjUsdt20d1.21C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231469.923471325InjUsdt16d0.87P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231469.923471325InjUsdt16d0.87P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570015.556318592InjUsdt20d1.21C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570015.556318592InjUsdt20d1.21C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570076.365183070InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570076.365183070InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570225.110365254InjUsdt16d0.87P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570225.110365254InjUsdt16d0.87P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915798.275383427InjUsdt24d1.22C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915798.275383427InjUsdt24d1.22C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915921.506232293InjUsdt30d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915921.506232293InjUsdt30d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707916064.752464733InjUsdt18d0.87P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707916064.752464733InjUsdt18d0.87P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434382.147236316InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434382.147236316InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434608.109548440InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434608.109548440InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434695.365984945InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434695.365984945InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952496.551991999InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952496.551991999InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952558.556210993InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952558.556210993InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952714.916449575InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952714.916449575InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt18d0.9P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt18d0.9P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt30d1.12C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt30d1.12C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713342050InjUsdt18d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713342050InjUsdt18d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713356956InjUsdt18d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713356956InjUsdt18d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt18d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt18d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618060InjUsdt16d0.89P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618060InjUsdt16d0.89P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974295InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974295InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt16d0.85P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt16d0.85P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt24d1.17C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt24d1.17C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt28d1.13C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt28d1.13C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719805152InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719805152InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607035InjUsdt16d0.82P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607035InjUsdt16d0.82P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607164InjUsdt24d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607164InjUsdt24d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607245InjUsdt28d1.18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722607245InjUsdt28d1.18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt16d0.76P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt16d0.76P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt24d1.35C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt24d1.35C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt28d1.27C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722949211InjUsdt28d1.27C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723202947InjUsdt30d1.2C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723202947InjUsdt30d1.2C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723214654InjUsdt30d1.2C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723214654InjUsdt30d1.2C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723276425InjUsdt30d1.2C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723276425InjUsdt30d1.2C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723277252InjUsdt30d1.2C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723277252InjUsdt30d1.2C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt16d0.79P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt16d0.79P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt24d1.3C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt24d1.3C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt28d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723290960InjUsdt28d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt16d0.79P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt16d0.79P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt24d1.3C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt24d1.3C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt28d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723642339InjUsdt28d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt16d0.79P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt16d0.79P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt24d1.3C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt24d1.3C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt28d1.25C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1723986017InjUsdt28d1.25C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724331608InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1724677217InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725022808InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364014InjUsdt12d18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364014InjUsdt12d18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364636InjUsdt12d15P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364636InjUsdt12d15P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364913InjUsdt12d18C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725364913InjUsdt12d18C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725365020InjUsdt12d15P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725365020InjUsdt12d15P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725368409InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1725714009InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726059611InjUsdt28d1.16C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726141329InjUsdt2d1.5C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726141329InjUsdt2d1.5C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726142560InjUsdt2d1.5C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726142560InjUsdt2d1.5C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726163228InjUsdt2d1.5C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726163228InjUsdt2d1.5C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt16d0.83P] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt16d0.83P -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt24d1.23C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt24d1.23C -decimals = 0 - -[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt28d1.16C] -peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1726405213InjUsdt28d1.16C -decimals = 0 - -[factory/inj1csmzuxsp5vp2ng5cue7wdknudk8m69wlr62rq5/uLP] -peggy_denom = factory/inj1csmzuxsp5vp2ng5cue7wdknudk8m69wlr62rq5/uLP -decimals = 0 - -[factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EA] -peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EA -decimals = 0 - -[factory/inj1cuv9fu0p28u60e5rtw7u6pch8zdm840zctlx84/position] -peggy_denom = factory/inj1cuv9fu0p28u60e5rtw7u6pch8zdm840zctlx84/position -decimals = 0 - -[factory/inj1cvhsxdjs64q9l83s7twdhsw3vjx54haqgv2d6k/position] -peggy_denom = factory/inj1cvhsxdjs64q9l83s7twdhsw3vjx54haqgv2d6k/position -decimals = 0 - -[factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK] -peggy_denom = factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK -decimals = 6 - -[factory/inj1cy64n9h6hne99crlue4s8x0g09gq9947haqhaf/position] -peggy_denom = factory/inj1cy64n9h6hne99crlue4s8x0g09gq9947haqhaf/position -decimals = 0 - -[factory/inj1d4zluv70jrx4nl68fp7rqjhpq7egdey2433l96/position] -peggy_denom = factory/inj1d4zluv70jrx4nl68fp7rqjhpq7egdey2433l96/position -decimals = 0 - -[factory/inj1d5f6tfldvpmgzk5n3pcjdetuzlgk9xag5lvvdn/position] -peggy_denom = factory/inj1d5f6tfldvpmgzk5n3pcjdetuzlgk9xag5lvvdn/position -decimals = 0 - -[factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE] -peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE -decimals = 6 - -[factory/inj1d80r2q4lcsajwr494wyswykn46smag0yy8scfv/position] -peggy_denom = factory/inj1d80r2q4lcsajwr494wyswykn46smag0yy8scfv/position -decimals = 0 - -[factory/inj1dg6eay6q34r2eh88u6hghlz5r3y25n2wpp494v/position] -peggy_denom = factory/inj1dg6eay6q34r2eh88u6hghlz5r3y25n2wpp494v/position -decimals = 0 - -[factory/inj1dl8d43lz8ctmtka5d0tta8yj2urmgal7fgqcmh/position] -peggy_denom = factory/inj1dl8d43lz8ctmtka5d0tta8yj2urmgal7fgqcmh/position -decimals = 0 - -[factory/inj1dpyjsuehlrsmr78cddezd488euydtew3vukjmf/INJ] -peggy_denom = factory/inj1dpyjsuehlrsmr78cddezd488euydtew3vukjmf/INJ -decimals = 6 - -[factory/inj1drpns3cxn82e5q0nmmdaz8zxmla5lqsh6txmc9/position] -peggy_denom = factory/inj1drpns3cxn82e5q0nmmdaz8zxmla5lqsh6txmc9/position -decimals = 0 - -[factory/inj1dvr32vqxs8m6tmzv50xnnpzgph0wxp2jcfvl4u/INJ] -peggy_denom = factory/inj1dvr32vqxs8m6tmzv50xnnpzgph0wxp2jcfvl4u/INJ -decimals = 6 - -[factory/inj1dwfggufv8vkjcfkuk7fkkucs4rje0krav9ruyr/presale] -peggy_denom = factory/inj1dwfggufv8vkjcfkuk7fkkucs4rje0krav9ruyr/presale -decimals = 0 - -[factory/inj1dxprjkxz06cpahgqrv90hug9d8z504j52ms07n/test] -peggy_denom = factory/inj1dxprjkxz06cpahgqrv90hug9d8z504j52ms07n/test -decimals = 0 - -[factory/inj1e2pu02vjnh27mte3s0wqld9f85mzglyrxxuuvz/position] -peggy_denom = factory/inj1e2pu02vjnh27mte3s0wqld9f85mzglyrxxuuvz/position -decimals = 0 - -[factory/inj1e60tjgqhfsxutrcvklhgc7gechtq3pcej8gy4e/position] -peggy_denom = factory/inj1e60tjgqhfsxutrcvklhgc7gechtq3pcej8gy4e/position -decimals = 0 - -[factory/inj1e66ekacsxnv60yk006mymnrprged95n6crzzwg/INJ] -peggy_denom = factory/inj1e66ekacsxnv60yk006mymnrprged95n6crzzwg/INJ -decimals = 6 - -[factory/inj1e6wv0fn2cggsgwlmywp9u5pyd0zcx5vth3djrv/position] -peggy_denom = factory/inj1e6wv0fn2cggsgwlmywp9u5pyd0zcx5vth3djrv/position -decimals = 0 - -[factory/inj1e94cdzndq5xr2lx5dsjnz0ts5lm8nc8k9wanax/INJ] -peggy_denom = factory/inj1e94cdzndq5xr2lx5dsjnz0ts5lm8nc8k9wanax/INJ -decimals = 6 - -[factory/inj1ea4p8khg0e4zusfv339cy5h9h3myctfcl74ee6/INJ] -peggy_denom = factory/inj1ea4p8khg0e4zusfv339cy5h9h3myctfcl74ee6/INJ -decimals = 6 - -[factory/inj1egnhxmtnh76p2lgdky8985msrue92ag499ev6w/position] -peggy_denom = factory/inj1egnhxmtnh76p2lgdky8985msrue92ag499ev6w/position -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/GINGER.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/GINGER.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/HACHI.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/HACHI.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Hava.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Hava.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/KIRA.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/KIRA.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/SYN.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/SYN.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Talis.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Talis.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/autism.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/autism.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/coping.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/coping.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/inj.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/inj.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/katana.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/katana.ash -decimals = 0 - -[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/ninja.ash] -peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/ninja.ash -decimals = 0 - -[factory/inj1ejwjldm2k7k9zcgzvglkht5hhxg50lcnnnud9l/position] -peggy_denom = factory/inj1ejwjldm2k7k9zcgzvglkht5hhxg50lcnnnud9l/position -decimals = 0 - -[factory/inj1ekmnc56xkc3cl7wzrew8q89700vtry5wnjlgqw/INJ] -peggy_denom = factory/inj1ekmnc56xkc3cl7wzrew8q89700vtry5wnjlgqw/INJ -decimals = 6 - -[factory/inj1em0ejkywcq6lnzpgj9wx7z4jx7r9gpcntys04x/INJ] -peggy_denom = factory/inj1em0ejkywcq6lnzpgj9wx7z4jx7r9gpcntys04x/INJ -decimals = 6 - -[factory/inj1ep9yuk86cwdeaytmgsz3hz7qsargsn4sgnlrrs/INJ] -peggy_denom = factory/inj1ep9yuk86cwdeaytmgsz3hz7qsargsn4sgnlrrs/INJ -decimals = 6 - -[factory/inj1evy243kr8kh8prtgwv8vtvtj6m5vcahpt94f28/position] -peggy_denom = factory/inj1evy243kr8kh8prtgwv8vtvtj6m5vcahpt94f28/position -decimals = 0 - -[factory/inj1ezvtzukpf6x7aa4p52sejvyky8lkl6l5j47tym/position] -peggy_denom = factory/inj1ezvtzukpf6x7aa4p52sejvyky8lkl6l5j47tym/position -decimals = 0 - -[factory/inj1f4u2643nw7ennyadqmv428fmhg56jduc90xpgy/position] -peggy_denom = factory/inj1f4u2643nw7ennyadqmv428fmhg56jduc90xpgy/position -decimals = 0 - -[factory/inj1f533qqlgu8e3wy56457hlz3rxnf8dlfn507055/position] -peggy_denom = factory/inj1f533qqlgu8e3wy56457hlz3rxnf8dlfn507055/position -decimals = 0 - -[factory/inj1f79dkr20ax43ah3c3velf3ttxjdqe645k5rws3/position] -peggy_denom = factory/inj1f79dkr20ax43ah3c3velf3ttxjdqe645k5rws3/position -decimals = 0 - -[factory/inj1fa8ayqjnzup3af2heatnlyvmr2ljjm5f8x83fn/position] -peggy_denom = factory/inj1fa8ayqjnzup3af2heatnlyvmr2ljjm5f8x83fn/position -decimals = 0 - -[factory/inj1faqh7wcap9h2z007yx63eqvpqlzghdmser5l7u/position] -peggy_denom = factory/inj1faqh7wcap9h2z007yx63eqvpqlzghdmser5l7u/position -decimals = 0 - -[factory/inj1ff64ftrd6plvxurruzh3kthaxk5h050e0s5t95/position] -peggy_denom = factory/inj1ff64ftrd6plvxurruzh3kthaxk5h050e0s5t95/position -decimals = 0 - -[factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ -decimals = 6 - -[factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chain-factory] -peggy_denom = factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chain-factory -decimals = 0 - -[factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chainfactory] -peggy_denom = factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chainfactory -decimals = 0 - -[factory/inj1fzej8p0acdplqad876a0mdewejqwuaea9e0rjl/position] -peggy_denom = factory/inj1fzej8p0acdplqad876a0mdewejqwuaea9e0rjl/position -decimals = 0 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT -decimals = 0 - -[factory/inj1g6j6w6860sfe7um3q6ja60cktfd50a2vxxy7qr/position] -peggy_denom = factory/inj1g6j6w6860sfe7um3q6ja60cktfd50a2vxxy7qr/position -decimals = 0 - -[factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI] -peggy_denom = factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI -decimals = 6 - -[factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE] -peggy_denom = factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE -decimals = 6 - -[factory/inj1gj9w2vq22xglwvjhwkfj9gwfj9e8709u9wg406/position] -peggy_denom = factory/inj1gj9w2vq22xglwvjhwkfj9gwfj9e8709u9wg406/position -decimals = 0 - -[factory/inj1gk4thnx4t9y4ltnau60mpst5xyu0u57hqfl0qs/uLP] -peggy_denom = factory/inj1gk4thnx4t9y4ltnau60mpst5xyu0u57hqfl0qs/uLP -decimals = 0 - -[factory/inj1gpf6gxs9hyz4jty423pxuns8cduhcuyvcxwxkv/position] -peggy_denom = factory/inj1gpf6gxs9hyz4jty423pxuns8cduhcuyvcxwxkv/position -decimals = 0 - -[factory/inj1gtpdm0dt5zg7p7nf9ftghrgvyt9ftz0w3f7kfk/WIF] -peggy_denom = factory/inj1gtpdm0dt5zg7p7nf9ftghrgvyt9ftz0w3f7kfk/WIF -decimals = 6 - -[factory/inj1gutzdupyjzzk46hrpf6lsf8ul030ty8wszvpta/INJ] -peggy_denom = factory/inj1gutzdupyjzzk46hrpf6lsf8ul030ty8wszvpta/INJ -decimals = 6 - -[factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha] -peggy_denom = factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha -decimals = 6 - -[factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj] -peggy_denom = factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj -decimals = 6 - -[factory/inj1h3vcnx6f2r9hxf8mf7s3ck9pu02r3zxes6t50t/INJ] -peggy_denom = factory/inj1h3vcnx6f2r9hxf8mf7s3ck9pu02r3zxes6t50t/INJ -decimals = 6 - -[factory/inj1h4ppr74nmqmftmzd8d54nk439rftyxaxgx42fa/INJ] -peggy_denom = factory/inj1h4ppr74nmqmftmzd8d54nk439rftyxaxgx42fa/INJ -decimals = 6 - -[factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT] -peggy_denom = factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT -decimals = 6 - -[factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI] -peggy_denom = factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI -decimals = 6 - -[factory/inj1hkzntx25hpq37dfrms6ymtrch8dskx8t8u0e5r/INJ] -peggy_denom = factory/inj1hkzntx25hpq37dfrms6ymtrch8dskx8t8u0e5r/INJ -decimals = 6 - -[factory/inj1hteau2zqjwn2m62zshrg2v30hvhpwwrkymsaeq/INJ] -peggy_denom = factory/inj1hteau2zqjwn2m62zshrg2v30hvhpwwrkymsaeq/INJ -decimals = 6 - -[factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems] -peggy_denom = factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems -decimals = 6 - -[factory/inj1j4vj8qzqyyf77ffxnwxwtm4lqvsalzfqg0yk9v/KIMJ] -peggy_denom = factory/inj1j4vj8qzqyyf77ffxnwxwtm4lqvsalzfqg0yk9v/KIMJ -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSP] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSP -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSTAYAWAY] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSTAYAWAY -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTTSTAYAWAY] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTTSTAYAWAY -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/teeeeeeeeest] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/teeeeeeeeest -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt -decimals = 6 - -[factory/inj1j9sczxqcyhtvt586qywk8hmz3sk4rrk8rypv28/position] -peggy_denom = factory/inj1j9sczxqcyhtvt586qywk8hmz3sk4rrk8rypv28/position -decimals = 0 - -[factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO] -peggy_denom = factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO -decimals = 6 - -[factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST] -peggy_denom = factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST -decimals = 6 - -[factory/inj1jcvx3q6rfj7rdw60grjj3rah5uqsk64msnlafc/position] -peggy_denom = factory/inj1jcvx3q6rfj7rdw60grjj3rah5uqsk64msnlafc/position -decimals = 0 - -[factory/inj1jdvx7mpauukwhdlgay0jgxaj393rju42ht9mkn/position] -peggy_denom = factory/inj1jdvx7mpauukwhdlgay0jgxaj393rju42ht9mkn/position -decimals = 0 - -[factory/inj1jknhf2m8f9plqa2g7rm78vdhwr58nlyjfd62ru/BAMBOO] -peggy_denom = factory/inj1jknhf2m8f9plqa2g7rm78vdhwr58nlyjfd62ru/BAMBOO -decimals = 6 - -[factory/inj1jls5kflqlfylyq42n8e5k3t6wn5jnhhlyq3w2r/INJ] -peggy_denom = factory/inj1jls5kflqlfylyq42n8e5k3t6wn5jnhhlyq3w2r/INJ -decimals = 6 - -[factory/inj1jpaxtp8jvepvhc7pqk5xgumz3jghwuh7xrqatw/position] -peggy_denom = factory/inj1jpaxtp8jvepvhc7pqk5xgumz3jghwuh7xrqatw/position -decimals = 0 - -[factory/inj1js4qpjl2f9cpl8s764d0y9jl96ham3g4kkaaqd/position] -peggy_denom = factory/inj1js4qpjl2f9cpl8s764d0y9jl96ham3g4kkaaqd/position -decimals = 0 - -[factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN] -peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN -decimals = 6 - -[factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE] -peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE -decimals = 6 - -[factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON] -peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON -decimals = 6 - -[factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON] -peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON -decimals = 6 - -[factory/inj1k9jy245r9749kl008h7nf764wnrnj9kgkmj6vz/position] -peggy_denom = factory/inj1k9jy245r9749kl008h7nf764wnrnj9kgkmj6vz/position -decimals = 0 - -[factory/inj1k9k62nfrsnznd2ekzgmsxr74apglqfa2h6wz9g/INJ] -peggy_denom = factory/inj1k9k62nfrsnznd2ekzgmsxr74apglqfa2h6wz9g/INJ -decimals = 6 - -[factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/test] -peggy_denom = factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/test -decimals = 6 - -[factory/inj1k9xr7frkwkjjsd3w9yf8kdxu7wdfqtrkp0a809/position] -peggy_denom = factory/inj1k9xr7frkwkjjsd3w9yf8kdxu7wdfqtrkp0a809/position -decimals = 0 - -[factory/inj1kc39gtudjmy7dj0sc2s0d83qy86qdlemswejjx/position] -peggy_denom = factory/inj1kc39gtudjmy7dj0sc2s0d83qy86qdlemswejjx/position -decimals = 0 - -[factory/inj1kcda2te0sjxmcvykyr9cfpleyyx283d46nkspv/test] -peggy_denom = factory/inj1kcda2te0sjxmcvykyr9cfpleyyx283d46nkspv/test -decimals = 0 - -[factory/inj1kf7t8qjq83gg6kn7nl5zwzscfystyqzr62ydsn/injx] -peggy_denom = factory/inj1kf7t8qjq83gg6kn7nl5zwzscfystyqzr62ydsn/injx -decimals = 6 - -[factory/inj1khy2c3pzu22c25z2zg3vmzh2fw7eh8yhluzlux/INJ] -peggy_denom = factory/inj1khy2c3pzu22c25z2zg3vmzh2fw7eh8yhluzlux/INJ -decimals = 6 - -[factory/inj1kjpk9s9fm5c7ltgf54m5vz39n70x4quskl9sfu/INJ] -peggy_denom = factory/inj1kjpk9s9fm5c7ltgf54m5vz39n70x4quskl9sfu/INJ -decimals = 6 - -[factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/ENA] -peggy_denom = factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/ENA -decimals = 18 - -[factory/inj1kkarwsh947c34emv3wju779ys2tt2g76m6kequ/position] -peggy_denom = factory/inj1kkarwsh947c34emv3wju779ys2tt2g76m6kequ/position -decimals = 0 - -[factory/inj1krsf4as63jnytzekzndlv9eflku5nmkavtr3d3/SNAPPY] -peggy_denom = factory/inj1krsf4as63jnytzekzndlv9eflku5nmkavtr3d3/SNAPPY -decimals = 6 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK -decimals = 6 - -[factory/inj1kvug5dcjdmkpdrjr088xdh9h4e8wvr04vrplmh/INJ] -peggy_denom = factory/inj1kvug5dcjdmkpdrjr088xdh9h4e8wvr04vrplmh/INJ -decimals = 6 - -[factory/inj1l2r43rx3p79yhspt48qvtd0qvqz4zyf70puxv6/position] -peggy_denom = factory/inj1l2r43rx3p79yhspt48qvtd0qvqz4zyf70puxv6/position -decimals = 0 - -[factory/inj1lcsc97wz2ztyn50vxqz2gcdjnzf53qd3gzvdt2/position] -peggy_denom = factory/inj1lcsc97wz2ztyn50vxqz2gcdjnzf53qd3gzvdt2/position -decimals = 0 - -[factory/inj1lgq2vj9xhptzflqk05fnaf585c2vtv33s76l68/INJ] -peggy_denom = factory/inj1lgq2vj9xhptzflqk05fnaf585c2vtv33s76l68/INJ -decimals = 6 - -[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ] -peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ -decimals = 6 - -[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/nbla] -peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/nbla -decimals = 0 - -[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/point] -peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/point -decimals = 0 - -[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/zzzza] -peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/zzzza -decimals = 0 - -[factory/inj1lnealva69klvt2dxpe0gxzj4a2ea7jqcjar7rq/INJ] -peggy_denom = factory/inj1lnealva69klvt2dxpe0gxzj4a2ea7jqcjar7rq/INJ -decimals = 6 - -[factory/inj1lnvtsm9avzyqs67syzakg0mncq6naldlw6eqek/ELON] -peggy_denom = factory/inj1lnvtsm9avzyqs67syzakg0mncq6naldlw6eqek/ELON -decimals = 6 - -[factory/inj1lszpzvlcvjg60x0ndqj98mct28m5j8resxs9de/position] -peggy_denom = factory/inj1lszpzvlcvjg60x0ndqj98mct28m5j8resxs9de/position -decimals = 0 - -[factory/inj1m3cvaumsw5l9mnhu53g2s7nd8pwqhsgm0r7zc5/position] -peggy_denom = factory/inj1m3cvaumsw5l9mnhu53g2s7nd8pwqhsgm0r7zc5/position -decimals = 0 - -[factory/inj1m3l3tfynquwh84j5d637gqnlsgz647979f957l/position] -peggy_denom = factory/inj1m3l3tfynquwh84j5d637gqnlsgz647979f957l/position -decimals = 0 - -[factory/inj1m3lcqdyfrnqqva6mvefmqvt9nfwatsqmwg3qq3/position] -peggy_denom = factory/inj1m3lcqdyfrnqqva6mvefmqvt9nfwatsqmwg3qq3/position -decimals = 0 - -[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC] -peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC -decimals = 6 - -[factory/inj1mattkwm6arhf3l5q84zdcnk5enm23q3s3w9c4s/position] -peggy_denom = factory/inj1mattkwm6arhf3l5q84zdcnk5enm23q3s3w9c4s/position -decimals = 0 - -[factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems] -peggy_denom = factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems -decimals = 6 - -[factory/inj1me7s2kyfk7ffdwh8qatluy9nj8yvh89kuwr235/INJ] -peggy_denom = factory/inj1me7s2kyfk7ffdwh8qatluy9nj8yvh89kuwr235/INJ -decimals = 6 - -[factory/inj1me8ewn42y8n0snvnecf3skpu8eq2rsph74kgmt/position] -peggy_denom = factory/inj1me8ewn42y8n0snvnecf3skpu8eq2rsph74kgmt/position -decimals = 0 - -[factory/inj1mfe2m554uffc9lul3q3fxzmzw8k7cuglnxvxjc/INJ] -peggy_denom = factory/inj1mfe2m554uffc9lul3q3fxzmzw8k7cuglnxvxjc/INJ -decimals = 6 - -[factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON] -peggy_denom = factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON -decimals = 6 - -[factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN] -peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN -decimals = 6 - -[factory/inj1mthhttrxpewts2k8vlp276xtsa5te9mt8vws38/position] -peggy_denom = factory/inj1mthhttrxpewts2k8vlp276xtsa5te9mt8vws38/position -decimals = 0 - -[factory/inj1mu6w5fmvrp8kkxpaxxdvkcqfmm7rh79tr9pzr4/position] -peggy_denom = factory/inj1mu6w5fmvrp8kkxpaxxdvkcqfmm7rh79tr9pzr4/position -decimals = 0 - -[factory/inj1n2f2ehc6eplk7s5kwwy6e0hl9vf08mdqjxdacs/INJ] -peggy_denom = factory/inj1n2f2ehc6eplk7s5kwwy6e0hl9vf08mdqjxdacs/INJ -decimals = 6 - -[factory/inj1nassp2d59e6glt27vfcj0wrfnrtwmuyzm9jdy2/position] -peggy_denom = factory/inj1nassp2d59e6glt27vfcj0wrfnrtwmuyzm9jdy2/position -decimals = 0 - -[factory/inj1nguhj0ph48vfs2pnrf0kqz5zyn7znys5cymx3y/SHINJI] -peggy_denom = factory/inj1nguhj0ph48vfs2pnrf0kqz5zyn7znys5cymx3y/SHINJI -decimals = 0 - -[factory/inj1nhytjfkznfqsj4zalhml8dpfdszmv42ursh4xq/position] -peggy_denom = factory/inj1nhytjfkznfqsj4zalhml8dpfdszmv42ursh4xq/position -decimals = 0 - -[factory/inj1nma9d4a2eaqcht9826wrw26y3n3aakqg727qys/position] -peggy_denom = factory/inj1nma9d4a2eaqcht9826wrw26y3n3aakqg727qys/position -decimals = 0 - -[factory/inj1nvln3a8ezhsc60kq58kghhdev4f4jpv5la5d5g/position] -peggy_denom = factory/inj1nvln3a8ezhsc60kq58kghhdev4f4jpv5la5d5g/position -decimals = 0 - -[factory/inj1p65r3rdzwxq9xykp3pvwvajukauxulsn28uxdr/position] -peggy_denom = factory/inj1p65r3rdzwxq9xykp3pvwvajukauxulsn28uxdr/position -decimals = 0 - -[factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki -decimals = 6 - -[factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai -decimals = 6 - -[factory/inj1pgwrcf3j7yk0a5lxcyyuztr2ekpnzwqsqlkgke/position] -peggy_denom = factory/inj1pgwrcf3j7yk0a5lxcyyuztr2ekpnzwqsqlkgke/position -decimals = 0 - -[factory/inj1phq9r67sd6ypgsgsmh62dvf5eyj3lac6nqvdnt/position] -peggy_denom = factory/inj1phq9r67sd6ypgsgsmh62dvf5eyj3lac6nqvdnt/position -decimals = 0 - -[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/Shinobi] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/Shinobi -decimals = 6 - -[factory/inj1ptze5zs7f8upr3fdj6dsrh0gpq97rsugfl5efe/position] -peggy_denom = factory/inj1ptze5zs7f8upr3fdj6dsrh0gpq97rsugfl5efe/position -decimals = 0 - -[factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB] -peggy_denom = factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB -decimals = 6 - -[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS] -peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS -decimals = 6 - -[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK] -peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK -decimals = 9 - -[factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS] -peggy_denom = factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS -decimals = 6 - -[factory/inj1q8ky6w56wcv2ya3kxzg83s667q86xtrlvwytcs/position] -peggy_denom = factory/inj1q8ky6w56wcv2ya3kxzg83s667q86xtrlvwytcs/position -decimals = 0 - -[factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy] -peggy_denom = factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy -decimals = 9 - -[factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST] -peggy_denom = factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST -decimals = 6 - -[factory/inj1qpf0xj4w824774q8mp9x29q547qe66607h96ll/ELON] -peggy_denom = factory/inj1qpf0xj4w824774q8mp9x29q547qe66607h96ll/ELON -decimals = 12 - -[factory/inj1qqc56qqlqyzsycj50kqne8ygr6r6dk4a3e23z9/position] -peggy_denom = factory/inj1qqc56qqlqyzsycj50kqne8ygr6r6dk4a3e23z9/position -decimals = 0 - -[factory/inj1qqc7ekvm06tch3dtyselt2rl5y4s9daman0ahv/uLP] -peggy_denom = factory/inj1qqc7ekvm06tch3dtyselt2rl5y4s9daman0ahv/uLP -decimals = 0 - -[factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB] -peggy_denom = factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB -decimals = 6 - -[factory/inj1qrdfxrx7kg0kvgapxyj8dc0wuj4yr2npw7gmkr/QTUM] -peggy_denom = factory/inj1qrdfxrx7kg0kvgapxyj8dc0wuj4yr2npw7gmkr/QTUM -decimals = 6 - -[factory/inj1qwlpnrg97jq0ytl28pm6c20apr6c6ga3fqc75t/position] -peggy_denom = factory/inj1qwlpnrg97jq0ytl28pm6c20apr6c6ga3fqc75t/position -decimals = 0 - -[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE] -peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE -decimals = 6 - -[factory/inj1qz4fua8emzx9h2sdafkpxazl5rwyl75t0d6vc8/position] -peggy_denom = factory/inj1qz4fua8emzx9h2sdafkpxazl5rwyl75t0d6vc8/position -decimals = 0 - -[factory/inj1r3krfh3nh6qhe3znwkfpzs4rdedgyu0wryfsjf/position] -peggy_denom = factory/inj1r3krfh3nh6qhe3znwkfpzs4rdedgyu0wryfsjf/position -decimals = 0 - -[factory/inj1r42k2w9rf6jtqktpfceg3f0a8eu2flm98vm9cs/position] -peggy_denom = factory/inj1r42k2w9rf6jtqktpfceg3f0a8eu2flm98vm9cs/position -decimals = 0 - -[factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj] -peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj -decimals = 6 - -[factory/inj1rau42vnjsz7hrr3fh9nf7hyzrrv4ajuc2kzulq/INJ] -peggy_denom = factory/inj1rau42vnjsz7hrr3fh9nf7hyzrrv4ajuc2kzulq/INJ -decimals = 6 - -[factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/testor] -peggy_denom = factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/testor -decimals = 6 - -[factory/inj1rfw3sugvss3z22zzuhlccqug0y8lvd4q95runz/position] -peggy_denom = factory/inj1rfw3sugvss3z22zzuhlccqug0y8lvd4q95runz/position -decimals = 0 - -[factory/inj1rlcfjuhupp56nkk3gspy0x0nstmd02ptzxzkvx/position] -peggy_denom = factory/inj1rlcfjuhupp56nkk3gspy0x0nstmd02ptzxzkvx/position -decimals = 0 - -[factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/HOSHI] -peggy_denom = factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/HOSHI -decimals = 0 - -[factory/inj1rmlm94wu0unvveueyvuczcgsae76esjm7wcudh/BRO] -peggy_denom = factory/inj1rmlm94wu0unvveueyvuczcgsae76esjm7wcudh/BRO -decimals = 6 - -[factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIP] -peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIP -decimals = 6 - -[factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/NIPPY] -peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/NIPPY -decimals = 6 - -[factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat] -peggy_denom = factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat -decimals = 6 - -[factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE] -peggy_denom = factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE -decimals = 6 - -[factory/inj1rw5ndf4g2ppl586guwgx6ry06tr2sk9vmpd9jk/position] -peggy_denom = factory/inj1rw5ndf4g2ppl586guwgx6ry06tr2sk9vmpd9jk/position -decimals = 0 - -[factory/inj1s0tcn9c42fz3fpfdy7pargxj4rwrcp0aushf2p/INJ] -peggy_denom = factory/inj1s0tcn9c42fz3fpfdy7pargxj4rwrcp0aushf2p/INJ -decimals = 6 - -[factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN] -peggy_denom = factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN -decimals = 6 - -[factory/inj1s8uw9vqpk7tvhjj2znqyhfxwfcvfl9g6d2drtc/position] -peggy_denom = factory/inj1s8uw9vqpk7tvhjj2znqyhfxwfcvfl9g6d2drtc/position -decimals = 0 - -[factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB] -peggy_denom = factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB -decimals = 6 - -[factory/inj1sdkwtcjd0wkp5sft3pyzpaesfgllxl06sgvnkk/INJ] -peggy_denom = factory/inj1sdkwtcjd0wkp5sft3pyzpaesfgllxl06sgvnkk/INJ -decimals = 6 - -[factory/inj1se3jy798wzjtlf588e8qh7342pqs4n0yhjxd0p/position] -peggy_denom = factory/inj1se3jy798wzjtlf588e8qh7342pqs4n0yhjxd0p/position -decimals = 0 - -[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY -decimals = 6 - -[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGY] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGY -decimals = 0 - -[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test -decimals = 6 - -[factory/inj1sf0ldwenurgttrmvgt65xgsj8jn487dggsy7el/position] -peggy_denom = factory/inj1sf0ldwenurgttrmvgt65xgsj8jn487dggsy7el/position -decimals = 0 - -[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR] -peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR -decimals = 6 - -[factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK] -peggy_denom = factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK -decimals = 6 - -[factory/inj1sgvrzysd32xdqtscaen2gprrjyg997lkn2h4wg/uLP] -peggy_denom = factory/inj1sgvrzysd32xdqtscaen2gprrjyg997lkn2h4wg/uLP -decimals = 0 - -[factory/inj1sklcy2px26jj73ffs2f7fmxw77zsts66prrqxr/DRUGS] -peggy_denom = factory/inj1sklcy2px26jj73ffs2f7fmxw77zsts66prrqxr/DRUGS -decimals = 9 - -[factory/inj1sm4l3jrh4cynhwv3x3yudkf4gtepv3wdjsryj3/INJ] -peggy_denom = factory/inj1sm4l3jrh4cynhwv3x3yudkf4gtepv3wdjsryj3/INJ -decimals = 6 - -[factory/inj1sz76uf4fj7jn4wptpsszt63x27uthjvehhwsk9/MEOW] -peggy_denom = factory/inj1sz76uf4fj7jn4wptpsszt63x27uthjvehhwsk9/MEOW -decimals = 6 - -[factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK -decimals = 6 - -[factory/inj1t6wfs24ewwnx9mxtm26n6q6zpm73wsan9u8n0v/position] -peggy_denom = factory/inj1t6wfs24ewwnx9mxtm26n6q6zpm73wsan9u8n0v/position -decimals = 0 - -[factory/inj1taqmwnnd3rucr8ydyl8u30vc29dkyc9rzrjy6r/position] -peggy_denom = factory/inj1taqmwnnd3rucr8ydyl8u30vc29dkyc9rzrjy6r/position -decimals = 0 - -[factory/inj1tdk9unhr5x9h74z4hecxquq6qhygcp6g0n4gya/BRO] -peggy_denom = factory/inj1tdk9unhr5x9h74z4hecxquq6qhygcp6g0n4gya/BRO -decimals = 6 - -[factory/inj1tdv8p2pp68veauzezvgt8ze0wpf6ysddh99s6g/hINJ] -peggy_denom = factory/inj1tdv8p2pp68veauzezvgt8ze0wpf6ysddh99s6g/hINJ -decimals = 6 - -[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO] -peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO -decimals = 6 - -[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] -peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior -decimals = 6 - -[factory/inj1tl8w4z9a7ykdmardg2a5qgryzc9e92fduqy8vj/position] -peggy_denom = factory/inj1tl8w4z9a7ykdmardg2a5qgryzc9e92fduqy8vj/position -decimals = 0 - -[factory/inj1tm6kuf59h46q0sy73cdyxyjwexwjp4a3h07yvt/position] -peggy_denom = factory/inj1tm6kuf59h46q0sy73cdyxyjwexwjp4a3h07yvt/position -decimals = 0 - -[factory/inj1tn2nqgzsgu8ts87fe3fdhh2zy85ymdrc4qd37s/position] -peggy_denom = factory/inj1tn2nqgzsgu8ts87fe3fdhh2zy85ymdrc4qd37s/position -decimals = 0 - -[factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro] -peggy_denom = factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro -decimals = 6 - -[factory/inj1tuemzz3xa2gurzv828y795r7uycmcafr0ktzwk/uLP] -peggy_denom = factory/inj1tuemzz3xa2gurzv828y795r7uycmcafr0ktzwk/uLP -decimals = 0 - -[factory/inj1tvnxhtnlkad7xzq7kkd0fcrtn0lncnvydp8mh3/position] -peggy_denom = factory/inj1tvnxhtnlkad7xzq7kkd0fcrtn0lncnvydp8mh3/position -decimals = 0 - -[factory/inj1u2nhcc06qvxscfmqwqwq5x6saf0smlhmykgg2j/position] -peggy_denom = factory/inj1u2nhcc06qvxscfmqwqwq5x6saf0smlhmykgg2j/position -decimals = 0 - -[factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj13t8y6evvue023zg5q4f4ngaav54285pfw482xd] -peggy_denom = factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj13t8y6evvue023zg5q4f4ngaav54285pfw482xd -decimals = 0 - -[factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj1tpmwkd0psrutlqd4ytjq7pugj5dedjys9u0wd3] -peggy_denom = factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj1tpmwkd0psrutlqd4ytjq7pugj5dedjys9u0wd3 -decimals = 0 - -[factory/inj1ucamzt4l70qnwwtqac4wjpvqdfmuhuft5ezy6x/sniperfactory] -peggy_denom = factory/inj1ucamzt4l70qnwwtqac4wjpvqdfmuhuft5ezy6x/sniperfactory -decimals = 6 - -[factory/inj1uja2y06ef8mmygnalg5hsugpa8q5m4pscjduec/INJ] -peggy_denom = factory/inj1uja2y06ef8mmygnalg5hsugpa8q5m4pscjduec/INJ -decimals = 6 - -[factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG] -peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG -decimals = 6 - -[factory/inj1ul7m4hcf72jn3ah4rgez6vsykqjs90jwyqkkjm/position] -peggy_denom = factory/inj1ul7m4hcf72jn3ah4rgez6vsykqjs90jwyqkkjm/position -decimals = 0 - -[factory/inj1uq9wzg2hc6gsl9hue8qj5ymdfv4k8ccluxhesj/INJ] -peggy_denom = factory/inj1uq9wzg2hc6gsl9hue8qj5ymdfv4k8ccluxhesj/INJ -decimals = 6 - -[factory/inj1ur2gpeg5yw67dagpcm5946lnd6v8l2s2k9tx3q/position] -peggy_denom = factory/inj1ur2gpeg5yw67dagpcm5946lnd6v8l2s2k9tx3q/position -decimals = 0 - -[factory/inj1utkmtctnp767m0rdl294ypshrjjv8qendcm3md/position] -peggy_denom = factory/inj1utkmtctnp767m0rdl294ypshrjjv8qendcm3md/position -decimals = 0 - -[factory/inj1utyrpze9qzx037av0vrxz2w63y2et4wcd84j3q/position] -peggy_denom = factory/inj1utyrpze9qzx037av0vrxz2w63y2et4wcd84j3q/position -decimals = 0 - -[factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/DOGO] -peggy_denom = factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/DOGO -decimals = 0 - -[factory/inj1uyvpwvurunezljvear62kswrcduup8e4hkf3er/INJ] -peggy_denom = factory/inj1uyvpwvurunezljvear62kswrcduup8e4hkf3er/INJ -decimals = 6 - -[factory/inj1uz997yw7vq5ala7hhr5rpn386v7w7uva9v4e23/INJ] -peggy_denom = factory/inj1uz997yw7vq5ala7hhr5rpn386v7w7uva9v4e23/INJ -decimals = 6 - -[factory/inj1uzasxz38jtgjmsd6m52h2yy3zqy36wswy5hta9/position] -peggy_denom = factory/inj1uzasxz38jtgjmsd6m52h2yy3zqy36wswy5hta9/position -decimals = 0 - -[factory/inj1v06t5cjcnzawlvk665s0wynqy6zfjuulvaadhh/position] -peggy_denom = factory/inj1v06t5cjcnzawlvk665s0wynqy6zfjuulvaadhh/position -decimals = 0 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cook] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cook -decimals = 6 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cookie] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cookie -decimals = 6 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/frog] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/frog -decimals = 6 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninja] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninja -decimals = 6 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/pain] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/pain -decimals = 6 - -[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wif] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wif -decimals = 6 - -[factory/inj1vc3d90452zqh5vp265maz69wdg4dhj7m0g6aty/position] -peggy_denom = factory/inj1vc3d90452zqh5vp265maz69wdg4dhj7m0g6aty/position -decimals = 0 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kf09fn0mjq3d9v7x25xlmvacp9rfjqw96039e3] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kf09fn0mjq3d9v7x25xlmvacp9rfjqw96039e3 -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1khp440nluesxmnr0mgdstzxujhkmcu8mad797f] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1khp440nluesxmnr0mgdstzxujhkmcu8mad797f -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kv5amrnaczurcyc9rw0uve4e3wh2jfujxn3zlz] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kv5amrnaczurcyc9rw0uve4e3wh2jfujxn3zlz -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nvq8pyvt2kf5xctc4v3xt4gszq5a9lhpadyfwg] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nvq8pyvt2kf5xctc4v3xt4gszq5a9lhpadyfwg -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rduwtul0x7fkryzpdn85yuujntwyel8z04h7cq] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rduwtul0x7fkryzpdn85yuujntwyel8z04h7cq -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sfk9r0jk9wxs7n726qfjg5e649zf34yq6q65gn] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sfk9r0jk9wxs7n726qfjg5e649zf34yq6q65gn -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xar9nfhqc9al47hkh7eljrc3g66lntqch8hh0r] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xar9nfhqc9al47hkh7eljrc3g66lntqch8hh0r -decimals = 18 - -[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zqe2p2xegqyr3zeltt9kh7c934v7tlevmk6xg7] -peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zqe2p2xegqyr3zeltt9kh7c934v7tlevmk6xg7 -decimals = 18 - -[factory/inj1vk2re2ak5xf4w2vnscy4ym2a23cwx375872e73/INJ] -peggy_denom = factory/inj1vk2re2ak5xf4w2vnscy4ym2a23cwx375872e73/INJ -decimals = 6 - -[factory/inj1vr0te6wepj0pne8qaw5gt9jjm78g2aqgl4lz26/INJ] -peggy_denom = factory/inj1vr0te6wepj0pne8qaw5gt9jjm78g2aqgl4lz26/INJ -decimals = 6 - -[factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG] -peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG -decimals = 6 - -[factory/inj1vss35hmc5fzy0d4glcyt39w425pvwfsqk9zu3p/ABC] -peggy_denom = factory/inj1vss35hmc5fzy0d4glcyt39w425pvwfsqk9zu3p/ABC -decimals = 6 - -[factory/inj1vtc2rlvqzfzdezn3dmg7ggyeylr6qzpq0ak88r/position] -peggy_denom = factory/inj1vtc2rlvqzfzdezn3dmg7ggyeylr6qzpq0ak88r/position -decimals = 0 - -[factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS] -peggy_denom = factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS -decimals = 6 - -[factory/inj1vyelgqnlmnwd8sq2rcmg7d0jglrvggdk6s5y4k/position] -peggy_denom = factory/inj1vyelgqnlmnwd8sq2rcmg7d0jglrvggdk6s5y4k/position -decimals = 0 - -[factory/inj1w4ru8gx7mjhagafdn2ljumrc8s5aaefzmynuqd/black] -peggy_denom = factory/inj1w4ru8gx7mjhagafdn2ljumrc8s5aaefzmynuqd/black -decimals = 0 - -[factory/inj1wc3a7mqvdvhe8mkglvzq6pmelex53e2x8safdv/position] -peggy_denom = factory/inj1wc3a7mqvdvhe8mkglvzq6pmelex53e2x8safdv/position -decimals = 0 - -[factory/inj1we0h7wyuzm4e6cy6ryu77mpvvt4xs9n5mace28/position] -peggy_denom = factory/inj1we0h7wyuzm4e6cy6ryu77mpvvt4xs9n5mace28/position -decimals = 0 - -[factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE] -peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE -decimals = 6 - -[factory/inj1whxcxhncnftrc76w0zns3l6934rqfenj5fl0kg/position] -peggy_denom = factory/inj1whxcxhncnftrc76w0zns3l6934rqfenj5fl0kg/position -decimals = 0 - -[factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon] -peggy_denom = factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon -decimals = 6 - -[factory/inj1wl8fjknkq2ge4tgynls5kdkkmwstj5fm3ts7s4/BINJ] -peggy_denom = factory/inj1wl8fjknkq2ge4tgynls5kdkkmwstj5fm3ts7s4/BINJ -decimals = 6 - -[factory/inj1wm66m98g8yluvl7vzcmsq5fvh4c7eacs32u5xh/INJ] -peggy_denom = factory/inj1wm66m98g8yluvl7vzcmsq5fvh4c7eacs32u5xh/INJ -decimals = 6 - -[factory/inj1wrltqpkxk8w5whk09knfyq4tkx06j5c9553fwh/INJ] -peggy_denom = factory/inj1wrltqpkxk8w5whk09knfyq4tkx06j5c9553fwh/INJ -decimals = 6 - -[factory/inj1ws4f65dx7kmspn28v22lmta3hkfps9cqfjwkyj/INJ] -peggy_denom = factory/inj1ws4f65dx7kmspn28v22lmta3hkfps9cqfjwkyj/INJ -decimals = 6 - -[factory/inj1wud39wkdk6vlqy65v4ytqrmldagvaz8c7gtnjm/position] -peggy_denom = factory/inj1wud39wkdk6vlqy65v4ytqrmldagvaz8c7gtnjm/position -decimals = 0 - -[factory/inj1wx6k6wkamm5pudf43d8q77ug094rydd6gkg622/INJ] -peggy_denom = factory/inj1wx6k6wkamm5pudf43d8q77ug094rydd6gkg622/INJ -decimals = 6 - -[factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK] -peggy_denom = factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK -decimals = 6 - -[factory/inj1xaw8dvp6v05vsnxxwa4y7gpuddxhes97rqmcv6/position] -peggy_denom = factory/inj1xaw8dvp6v05vsnxxwa4y7gpuddxhes97rqmcv6/position -decimals = 0 - -[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] -peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi -decimals = 6 - -[factory/inj1xdmkzn2zpfh0rp38mjly8xza4xhx54vrlslqad/position] -peggy_denom = factory/inj1xdmkzn2zpfh0rp38mjly8xza4xhx54vrlslqad/position -decimals = 0 - -[factory/inj1xfl2jxuwpvpxxc5upxm8fxxzv6nxd65z5kpqny/position] -peggy_denom = factory/inj1xfl2jxuwpvpxxc5upxm8fxxzv6nxd65z5kpqny/position -decimals = 0 - -[factory/inj1xhzt72xa3pyk25chwa3kh5j2dpuwehmycukh38/test] -peggy_denom = factory/inj1xhzt72xa3pyk25chwa3kh5j2dpuwehmycukh38/test -decimals = 6 - -[factory/inj1xns9khp247zkasydzvkcvv7et2qrf679gkudmy/FOMO] -peggy_denom = factory/inj1xns9khp247zkasydzvkcvv7et2qrf679gkudmy/FOMO -decimals = 6 - -[factory/inj1xnw3266sqst4xatdgu7qme69rf58vnlj99vsty/INJ] -peggy_denom = factory/inj1xnw3266sqst4xatdgu7qme69rf58vnlj99vsty/INJ -decimals = 6 - -[factory/inj1xu0jvcecnmxn576f3umnugfrfez3gcnawvkew0/position] -peggy_denom = factory/inj1xu0jvcecnmxn576f3umnugfrfez3gcnawvkew0/position -decimals = 0 - -[factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk] -peggy_denom = factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk -decimals = 18 - -[factory/inj1y4mmnuck96ffjswgd37963f5ch9kph8sk99zuj/position] -peggy_denom = factory/inj1y4mmnuck96ffjswgd37963f5ch9kph8sk99zuj/position -decimals = 0 - -[factory/inj1y5lrg2p5cmlne4jr8uj479ns05srq59cw99gm8/INJ] -peggy_denom = factory/inj1y5lrg2p5cmlne4jr8uj479ns05srq59cw99gm8/INJ -decimals = 6 - -[factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO] -peggy_denom = factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO -decimals = 6 - -[factory/inj1yc2pc60avmdv3sfvamt27nk3kxhcxlf53q8ysr/position] -peggy_denom = factory/inj1yc2pc60avmdv3sfvamt27nk3kxhcxlf53q8ysr/position -decimals = 0 - -[factory/inj1yfrx89p0v0cxz2zm92yvh4nturzxqw9yc22apw/position] -peggy_denom = factory/inj1yfrx89p0v0cxz2zm92yvh4nturzxqw9yc22apw/position -decimals = 0 - -[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] -peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk -decimals = 6 - -[factory/inj1yg49drflp8vmf4hj07jy9c8wl2fmqrfq09etpm/position] -peggy_denom = factory/inj1yg49drflp8vmf4hj07jy9c8wl2fmqrfq09etpm/position -decimals = 0 - -[factory/inj1ykf3aln7wwx7la80z5xc7w572d7vwtq92x09h5/INJ] -peggy_denom = factory/inj1ykf3aln7wwx7la80z5xc7w572d7vwtq92x09h5/INJ -decimals = 6 - -[factory/inj1yq82w2mugv4qvuy863p2urrwqegde4fyksmcmj/position] -peggy_denom = factory/inj1yq82w2mugv4qvuy863p2urrwqegde4fyksmcmj/position -decimals = 0 - -[factory/inj1yqgc6sv5eyhkf3p3nynrq5lsffnwp5vwvwqgqf/position] -peggy_denom = factory/inj1yqgc6sv5eyhkf3p3nynrq5lsffnwp5vwvwqgqf/position -decimals = 0 - -[factory/inj1yqnt9aswsjdujxxdeyzm4twqchjtaw2ddrxkqv/position] -peggy_denom = factory/inj1yqnt9aswsjdujxxdeyzm4twqchjtaw2ddrxkqv/position -decimals = 0 - -[factory/inj1yt3dxjvwyq5f4hw86sadk5jd9nqu6dnml3v7sv/INJ] -peggy_denom = factory/inj1yt3dxjvwyq5f4hw86sadk5jd9nqu6dnml3v7sv/INJ -decimals = 6 - -[factory/inj1yu54sj0phd59dgcd023hhlezxmtzqwgf44c6ka/position] -peggy_denom = factory/inj1yu54sj0phd59dgcd023hhlezxmtzqwgf44c6ka/position -decimals = 0 - -[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/Test] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/Test -decimals = 6 - -[factory/inj1z3mux0g3fw2ggem5qnuqcy46nl5wwsdcm9q5eg/position] -peggy_denom = factory/inj1z3mux0g3fw2ggem5qnuqcy46nl5wwsdcm9q5eg/position -decimals = 0 - -[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN] -peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN -decimals = 6 - -[factory/inj1z60w4nx27cyt8tygmwxe045aa5h8u0acupv3dl/position] -peggy_denom = factory/inj1z60w4nx27cyt8tygmwxe045aa5h8u0acupv3dl/position -decimals = 0 - -[factory/inj1z7mx2tc9ea4y2y0nx230pe7knm8fryk3rv6r2c/uLP] -peggy_denom = factory/inj1z7mx2tc9ea4y2y0nx230pe7knm8fryk3rv6r2c/uLP -decimals = 0 - -[factory/inj1ze3ad8k5aw7ejwlpvwfdht9yslnpfqez45sd3v/BCAT] -peggy_denom = factory/inj1ze3ad8k5aw7ejwlpvwfdht9yslnpfqez45sd3v/BCAT -decimals = 6 - -[factory/inj1zggasay6llcwevxwtuqfrfnpfwu28zr6srcuqk/position] -peggy_denom = factory/inj1zggasay6llcwevxwtuqfrfnpfwu28zr6srcuqk/position -decimals = 0 - -[factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY] -peggy_denom = factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY -decimals = 6 - -[factory/inj1zjd5nqyvyksjqzsc207v80pcd9a0r9fec8rvn6/INJ] -peggy_denom = factory/inj1zjd5nqyvyksjqzsc207v80pcd9a0r9fec8rvn6/INJ -decimals = 6 - -[factory/inj1zmlf85er8we52r9qsq8wdumwpkdrhqh0f0u27j/INJ] -peggy_denom = factory/inj1zmlf85er8we52r9qsq8wdumwpkdrhqh0f0u27j/INJ -decimals = 6 - -[factory/inj1zt0ts2z4r0sx0g3ae87ct9r9pgjmxexe4lj2h3/position] -peggy_denom = factory/inj1zt0ts2z4r0sx0g3ae87ct9r9pgjmxexe4lj2h3/position -decimals = 0 - -[factory/inj1zthvl3awskg6a7l2v4yq9srxjjatvl4ydesfhc/position] -peggy_denom = factory/inj1zthvl3awskg6a7l2v4yq9srxjjatvl4ydesfhc/position -decimals = 0 - -[factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk] -peggy_denom = factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk -decimals = 18 - -[faot] -peggy_denom = inj1vnhhrcnnnr6tq96eaa8gcsuaz55ugnhs3dmfqq -decimals = 18 - -[fatPEPE] -peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/fatpepe -decimals = 6 - -[fff] -peggy_denom = factory/inj1xy7dcllc7wn5prcy73xr7xhpt9zwg49c6szqcz/fff -decimals = 6 - -[fiftycent] -peggy_denom = inj1rtgfdnja2xav84ta0twq8cmmvkqzycnu9uxzw5 -decimals = 18 - -[fmXEN] -peggy_denom = inj14vluf5wc7tsptnfzrjs9g579uyp9gvvlwre5e4 -decimals = 8 - -[foo] -peggy_denom = factory/inj12vxhuaamfs33sxgnf95lxvzy9lpugpgjsrsxl3/foo -decimals = 6 - -[footjob] -peggy_denom = inj1gn7tah4p0uvgmtwgwe5lp9q7ce8d4yr8jxrfcv -decimals = 18 - -[fox] -peggy_denom = factory/inj1ddmyuzh42n8ymyhcm5jla3aaq9tucjnye02dlf/fox -decimals = 6 - -[frINJa] -peggy_denom = factory/inj1sm0feg2fxpmx5yg3ywzdzyn0s93m6d9dt87jf5/frINJa -decimals = 7 - -[franklin] -peggy_denom = inj1zd0043cf6q7yft07aaqgsurgh53xy5gercpzuu -decimals = 18 - -[gay] -peggy_denom = inj15x48ts4jw429zd9vvkwxf0advg9j24z2q948fl -decimals = 18 - -[gayasf] -peggy_denom = inj1qu6eldq9ftz2wvr43848ff8x5586xm0639kg7a -decimals = 18 - -[get] -peggy_denom = factory/inj1ldee0qev4khjdpw8wpqpyeyw0n0z8nnqtc423g/get -decimals = 6 - -[ginj] -peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/ginj -decimals = 6 - -[gipsyCOINS] -peggy_denom = inj1pyeutpz66lhapppt2ny36s57zfspglqtvdwywd -decimals = 6 - -[godzilla] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/godzilla -decimals = 6 - -[gto] -peggy_denom = inj1ehnt0lcek8wdf0xj7y5mmz7nzr8j7ytjgk6l7g -decimals = 18 - -[h2o] -peggy_denom = factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/fbi -decimals = 6 - -[hINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc -decimals = 18 - -[httuy] -peggy_denom = inj1996tdgklvleuja56gfpv9v3cc2uflmm9vavw05 -decimals = 18 - -[hug] -peggy_denom = inj1ncjqkvnxpyyhvm475std34eyn5c7eydpxxagds -decimals = 18 - -[ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542] -peggy_denom = ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542 -decimals = 6 - -[ibc/052AF4B0650990067B8FC5345A39206497BCC12F0ABE94F15415413739B93B26] -peggy_denom = ibc/052AF4B0650990067B8FC5345A39206497BCC12F0ABE94F15415413739B93B26 -decimals = 0 - -[ibc/05B7984C0122CB535968FDDF78A78511727E2B08F4053B4E4DB4A653D1993309] -peggy_denom = ibc/05B7984C0122CB535968FDDF78A78511727E2B08F4053B4E4DB4A653D1993309 -decimals = 0 - -[ibc/063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8] -peggy_denom = ibc/063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8 -decimals = 6 - -[ibc/0D2C8BD2BF7C53A7873D5D038273DF6E4E44092193202021308B90C6D035A98A] -peggy_denom = ibc/0D2C8BD2BF7C53A7873D5D038273DF6E4E44092193202021308B90C6D035A98A -decimals = 0 - -[ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80] -peggy_denom = ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80 -decimals = 6 - -[ibc/10CE34C15047F36C29C0644383FD0908646D67C198A35CF089AD53902FE3CA28] -peggy_denom = ibc/10CE34C15047F36C29C0644383FD0908646D67C198A35CF089AD53902FE3CA28 -decimals = 0 - -[ibc/10E1BF4C7142E07AA8CE7C91292E89B806F31263FCE48E966385FD47B53C1FFA] -peggy_denom = ibc/10E1BF4C7142E07AA8CE7C91292E89B806F31263FCE48E966385FD47B53C1FFA -decimals = 0 - -[ibc/13978F693E2022E3D945147D29A5B233058B3F4378C3A48AD207BF1154309F8D] -peggy_denom = ibc/13978F693E2022E3D945147D29A5B233058B3F4378C3A48AD207BF1154309F8D -decimals = 0 - -[ibc/14B6264C363DA101C1E09CB308EFF6678EDEB8EB6AB6996C37E44CCEE4B365DD] -peggy_denom = ibc/14B6264C363DA101C1E09CB308EFF6678EDEB8EB6AB6996C37E44CCEE4B365DD -decimals = 0 - -[ibc/15FE2BB9D596F81B40D72E95953E0CB6E2280813799AED7058D499E0C2B561C6] -peggy_denom = ibc/15FE2BB9D596F81B40D72E95953E0CB6E2280813799AED7058D499E0C2B561C6 -decimals = 0 - -[ibc/18F1A8BF7084DCF2AD647F741A7B611EB790C3DC0B0C8AE58D0B18F4D0E2DE51] -peggy_denom = ibc/18F1A8BF7084DCF2AD647F741A7B611EB790C3DC0B0C8AE58D0B18F4D0E2DE51 -decimals = 0 - -[ibc/1C829D8C4EB420F185270BEF8F4F1F24F4F69DF097AB02B9E982E78F3D7F6BC6] -peggy_denom = ibc/1C829D8C4EB420F185270BEF8F4F1F24F4F69DF097AB02B9E982E78F3D7F6BC6 -decimals = 0 - -[ibc/1D4FB764C95C003A2E274D52EBDA0590DE2CD5DF21BA56C06E285BC1167E5073] -peggy_denom = ibc/1D4FB764C95C003A2E274D52EBDA0590DE2CD5DF21BA56C06E285BC1167E5073 -decimals = 0 - -[ibc/1E4DACCD788219206F93485352B39DF83F6268F389997141498FAFB5BA06493B] -peggy_denom = ibc/1E4DACCD788219206F93485352B39DF83F6268F389997141498FAFB5BA06493B -decimals = 0 - -[ibc/1F375E1B09D8021284732C55B321D772A3E4A3E959309405455F980EE630EABF] -peggy_denom = ibc/1F375E1B09D8021284732C55B321D772A3E4A3E959309405455F980EE630EABF -decimals = 0 - -[ibc/1FAB6A21584C2618581B83475D4F88773EB04A434336D971CFA421C6396E3B7A] -peggy_denom = ibc/1FAB6A21584C2618581B83475D4F88773EB04A434336D971CFA421C6396E3B7A -decimals = 0 - -[ibc/2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D] -peggy_denom = ibc/2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D -decimals = 5 - -[ibc/247FF5EB358DA07AE08BC0E975E1AD955494A51B6C11452271A216E67AF1E4D1] -peggy_denom = ibc/247FF5EB358DA07AE08BC0E975E1AD955494A51B6C11452271A216E67AF1E4D1 -decimals = 0 - -[ibc/24EF0F2C4115CF69E8CCFD205842A52008094893C33C24F5F4A36BDED9772C6A] -peggy_denom = ibc/24EF0F2C4115CF69E8CCFD205842A52008094893C33C24F5F4A36BDED9772C6A -decimals = 0 - -[ibc/28D8F5AB133E1E66EE24901B2BBAAAD73AFFE4DBBD46A72091FC86D08FE60566] -peggy_denom = ibc/28D8F5AB133E1E66EE24901B2BBAAAD73AFFE4DBBD46A72091FC86D08FE60566 -decimals = 0 - -[ibc/295BF44E68BDD1B0D32A28C2084D89D63EDA3A01612789B01B62B8F07254D04C] -peggy_denom = ibc/295BF44E68BDD1B0D32A28C2084D89D63EDA3A01612789B01B62B8F07254D04C -decimals = 0 - -[ibc/2BC6772AA534CE7DB68E43FC0DE08F74CA4C0AE6B0C0395AC3D7D6D91BEAB4E5] -peggy_denom = ibc/2BC6772AA534CE7DB68E43FC0DE08F74CA4C0AE6B0C0395AC3D7D6D91BEAB4E5 -decimals = 0 - -[ibc/2E2D915C43EEA931B4177A0C5935448CADBE397E35F9118B88725A8833C8E3E4] -peggy_denom = ibc/2E2D915C43EEA931B4177A0C5935448CADBE397E35F9118B88725A8833C8E3E4 -decimals = 0 - -[ibc/31861069CB177FFF7F11D4949F3AA8E7335CB545CC09B6E71258BA0EBCAC2857] -peggy_denom = ibc/31861069CB177FFF7F11D4949F3AA8E7335CB545CC09B6E71258BA0EBCAC2857 -decimals = 0 - -[ibc/328DC071BB445FF5C9B6A08D34674A9A3AFF2AF6FD66414A7A326C83863E7B03] -peggy_denom = ibc/328DC071BB445FF5C9B6A08D34674A9A3AFF2AF6FD66414A7A326C83863E7B03 -decimals = 0 - -[ibc/334B68D79945DEE86E2F8E20D8C744E98C87D0FED274D9684AA35ABD5F661699] -peggy_denom = ibc/334B68D79945DEE86E2F8E20D8C744E98C87D0FED274D9684AA35ABD5F661699 -decimals = 0 - -[ibc/34F18EB4E3CAA9786F86CEA5E73E1B369B4A23501B4B272FA68BEE5450EFFFB8] -peggy_denom = ibc/34F18EB4E3CAA9786F86CEA5E73E1B369B4A23501B4B272FA68BEE5450EFFFB8 -decimals = 0 - -[ibc/359EA1E69EF84A02FD453B9FC462F985287F51310FF2E3ECEDABFDF7D3EAC91A] -peggy_denom = ibc/359EA1E69EF84A02FD453B9FC462F985287F51310FF2E3ECEDABFDF7D3EAC91A -decimals = 0 - -[ibc/365501AC8CD65F1BCB22C4A546458C3CA702985A30443120992B61483399B836] -peggy_denom = ibc/365501AC8CD65F1BCB22C4A546458C3CA702985A30443120992B61483399B836 -decimals = 0 - -[ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675] -peggy_denom = ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675 -decimals = 6 - -[ibc/41A7E6B1E7EF8EE04BAFD95C59875743D2F4512F378E0BC00EA29B00787283F0] -peggy_denom = ibc/41A7E6B1E7EF8EE04BAFD95C59875743D2F4512F378E0BC00EA29B00787283F0 -decimals = 0 - -[ibc/41E3AFFDAED4578F4D7BFCF2106545AAF9CBCA904BF3E9FD5343DCC1DADBC00F] -peggy_denom = ibc/41E3AFFDAED4578F4D7BFCF2106545AAF9CBCA904BF3E9FD5343DCC1DADBC00F -decimals = 0 - -[ibc/4208C5321C958B6AEC0AA609DC513B7564BC7CCF94CF76021A95020A794B1BC6] -peggy_denom = ibc/4208C5321C958B6AEC0AA609DC513B7564BC7CCF94CF76021A95020A794B1BC6 -decimals = 0 - -[ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8] -peggy_denom = ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8 -decimals = 6 - -[ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82] -peggy_denom = ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82 -decimals = 6 - -[ibc/465B094023AC8545B0E07163C7111D4A876978712D8A33E546AADDDB4E11F265] -peggy_denom = ibc/465B094023AC8545B0E07163C7111D4A876978712D8A33E546AADDDB4E11F265 -decimals = 0 - -[ibc/46AA3E75F15D7EFA00BF6747E8CE668F6A515182B2355942C567F47B88761072] -peggy_denom = ibc/46AA3E75F15D7EFA00BF6747E8CE668F6A515182B2355942C567F47B88761072 -decimals = 0 - -[ibc/46FFF1A18F4AE92224E19065630685A16837C17FA3C59C23FE7012982216D0D5] -peggy_denom = ibc/46FFF1A18F4AE92224E19065630685A16837C17FA3C59C23FE7012982216D0D5 -decimals = 0 - -[ibc/4A1CC41B019E6D412E3A337A1E5C1F301E9D2CAE8EA8EF449538CBA4BED6E2FA] -peggy_denom = ibc/4A1CC41B019E6D412E3A337A1E5C1F301E9D2CAE8EA8EF449538CBA4BED6E2FA -decimals = 0 - -[ibc/4BC12869ADD45404F2A31FB2BCF0BC0FF8B8D8042C8CC294EAF511DD972AE2FF] -peggy_denom = ibc/4BC12869ADD45404F2A31FB2BCF0BC0FF8B8D8042C8CC294EAF511DD972AE2FF -decimals = 0 - -[ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F] -peggy_denom = ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F -decimals = 8 - -[ibc/4CCAF2B1D5957477C726FA2ADD4313981A6D6A7FBA1B3A12A2D22C7EE60EA1B0] -peggy_denom = ibc/4CCAF2B1D5957477C726FA2ADD4313981A6D6A7FBA1B3A12A2D22C7EE60EA1B0 -decimals = 0 - -[ibc/4CE2DDC2BE301B92DD08ECBBF39910A4F055DC68156132B222B8CEF651941D31] -peggy_denom = ibc/4CE2DDC2BE301B92DD08ECBBF39910A4F055DC68156132B222B8CEF651941D31 -decimals = 0 - -[ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5] -peggy_denom = ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5 -decimals = 6 - -[ibc/4D5A68067A682C1EFEAE08E2355A2DE229E62145943E53CAC97EF5E1DE430072] -peggy_denom = ibc/4D5A68067A682C1EFEAE08E2355A2DE229E62145943E53CAC97EF5E1DE430072 -decimals = 0 - -[ibc/4F58C072D9654E7A8A71BAE92F1919FB49D0311B48759805EE197852BF2B8146] -peggy_denom = ibc/4F58C072D9654E7A8A71BAE92F1919FB49D0311B48759805EE197852BF2B8146 -decimals = 0 - -[ibc/508C2B3CB4795DC85E5E8883AE2D4672EBAE1312D80F702C2B1E69D15B4028A7] -peggy_denom = ibc/508C2B3CB4795DC85E5E8883AE2D4672EBAE1312D80F702C2B1E69D15B4028A7 -decimals = 0 - -[ibc/51A7B673746D4DACE599D47E1F308AD2C12DAF10AD8D4E1DC6A0C95B974FA0D8] -peggy_denom = ibc/51A7B673746D4DACE599D47E1F308AD2C12DAF10AD8D4E1DC6A0C95B974FA0D8 -decimals = 0 - -[ibc/557C8BDED38445765DAEBEB4EBBFC88F8ACBD9C414F95A1795AB45017F4A1786] -peggy_denom = ibc/557C8BDED38445765DAEBEB4EBBFC88F8ACBD9C414F95A1795AB45017F4A1786 -decimals = 0 - -[ibc/566A39FE0AAC7E9A738DEE74130A161D029C2F0CBC3D2EDBEE0DD967BC288793] -peggy_denom = ibc/566A39FE0AAC7E9A738DEE74130A161D029C2F0CBC3D2EDBEE0DD967BC288793 -decimals = 0 - -[ibc/585092355C3CAC6A5C28637C0FF4EF09D2D113C3BC87D31D0317AC0CA83D0E05] -peggy_denom = ibc/585092355C3CAC6A5C28637C0FF4EF09D2D113C3BC87D31D0317AC0CA83D0E05 -decimals = 0 - -[ibc/5AC3EB515892B130EA995D4B13BEA8B4C4BC063AEB95CAE6A0A49DC16B4B3578] -peggy_denom = ibc/5AC3EB515892B130EA995D4B13BEA8B4C4BC063AEB95CAE6A0A49DC16B4B3578 -decimals = 0 - -[ibc/5B7757EBBB8774473017EE65A71D992D6B9E6A66859EC076EA63CD7D46883B4E] -peggy_denom = ibc/5B7757EBBB8774473017EE65A71D992D6B9E6A66859EC076EA63CD7D46883B4E -decimals = 0 - -[ibc/5B8F90B1E3A33B45FF7AE086621456E8C2C162CABCC95406001322818AE92B63] -peggy_denom = ibc/5B8F90B1E3A33B45FF7AE086621456E8C2C162CABCC95406001322818AE92B63 -decimals = 0 - -[ibc/5B9385ABA4F72BD0CD5D014BBF58C48B103C3FAF82A6283AA689AC76F5A80F66] -peggy_denom = ibc/5B9385ABA4F72BD0CD5D014BBF58C48B103C3FAF82A6283AA689AC76F5A80F66 -decimals = 0 - -[ibc/602F1E52AEDF8579AACDF98415E518CC0C7E0769E8F11434E6C448FD3A88B477] -peggy_denom = ibc/602F1E52AEDF8579AACDF98415E518CC0C7E0769E8F11434E6C448FD3A88B477 -decimals = 0 - -[ibc/60DC18B7771F14C0069205E538C0758FED60E92077F19C9485203743BC174C77] -peggy_denom = ibc/60DC18B7771F14C0069205E538C0758FED60E92077F19C9485203743BC174C77 -decimals = 0 - -[ibc/614B331A02D24E2AE4A4768EE6EE65A35A4800547F6E3AE65B1A5FA621E0F4D0] -peggy_denom = ibc/614B331A02D24E2AE4A4768EE6EE65A35A4800547F6E3AE65B1A5FA621E0F4D0 -decimals = 0 - -[ibc/63DBAA3362F15873B8038C3CE12F58CB66A5CACF8665ED176E7D942E8D81FF3B] -peggy_denom = ibc/63DBAA3362F15873B8038C3CE12F58CB66A5CACF8665ED176E7D942E8D81FF3B -decimals = 0 - -[ibc/63F1FCA502ADCA376A83257828085E542A10CD5CF3CF7FB3CFB33E055958EAB9] -peggy_denom = ibc/63F1FCA502ADCA376A83257828085E542A10CD5CF3CF7FB3CFB33E055958EAB9 -decimals = 0 - -[ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201] -peggy_denom = ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201 -decimals = 6 - -[ibc/646315E3B0461F5FA4C5C8968A88FC45D4D5D04A45B98F1B8294DD82F386DD85] -peggy_denom = ibc/646315E3B0461F5FA4C5C8968A88FC45D4D5D04A45B98F1B8294DD82F386DD85 -decimals = 0 - -[ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6] -peggy_denom = ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6 -decimals = 6 - -[ibc/651C663A245EC969FCD5BC0F11ABE4AE6D09BF42FAFB981A8B73C1123DD85547] -peggy_denom = ibc/651C663A245EC969FCD5BC0F11ABE4AE6D09BF42FAFB981A8B73C1123DD85547 -decimals = 0 - -[ibc/66DB244867B50966FCD71C0457A9C0E239AB8228EFF2E60216A83B8710B23EBE] -peggy_denom = ibc/66DB244867B50966FCD71C0457A9C0E239AB8228EFF2E60216A83B8710B23EBE -decimals = 0 - -[ibc/67E598A1480B588111C68FC0DFB074F3E109007B405A27C08EBAA2129B42EF18] -peggy_denom = ibc/67E598A1480B588111C68FC0DFB074F3E109007B405A27C08EBAA2129B42EF18 -decimals = 0 - -[ibc/69C979B0833FC4B34A9FCF6B75F2EAA4B93507E7F8629C69C03081C21837D038] -peggy_denom = ibc/69C979B0833FC4B34A9FCF6B75F2EAA4B93507E7F8629C69C03081C21837D038 -decimals = 0 - -[ibc/6A90DF53BE8CE3407DAF424FE119340075B821F25D26B5B7A0F2ACC5EB8D15B7] -peggy_denom = ibc/6A90DF53BE8CE3407DAF424FE119340075B821F25D26B5B7A0F2ACC5EB8D15B7 -decimals = 0 - -[ibc/6BBCFE43BE414294606BF4B05BB9EB18D685A9183DF5FD8CC5154879B8279C8D] -peggy_denom = ibc/6BBCFE43BE414294606BF4B05BB9EB18D685A9183DF5FD8CC5154879B8279C8D -decimals = 0 - -[ibc/6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4] -peggy_denom = ibc/6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4 -decimals = 18 - -[ibc/6D4B54A1D40939390FB1DD0953C95A0E9DE34451C4E5AD68D052224601C7F138] -peggy_denom = ibc/6D4B54A1D40939390FB1DD0953C95A0E9DE34451C4E5AD68D052224601C7F138 -decimals = 0 - -[ibc/6E2FE0B25FE6DE428D16B25D42832D13B8A6DF65B40844EA4AB49C94896BB932] -peggy_denom = ibc/6E2FE0B25FE6DE428D16B25D42832D13B8A6DF65B40844EA4AB49C94896BB932 -decimals = 0 - -[ibc/6EBC38FBA72747ABD6641E8B00DD5F717E5E0B21366460213D2A378A0DEDEED7] -peggy_denom = ibc/6EBC38FBA72747ABD6641E8B00DD5F717E5E0B21366460213D2A378A0DEDEED7 -decimals = 0 - -[ibc/6F8BB0716C7C8A4D8489749D9F86668D65B28270AD1BD4E04FF0F79FAE568AC6] -peggy_denom = ibc/6F8BB0716C7C8A4D8489749D9F86668D65B28270AD1BD4E04FF0F79FAE568AC6 -decimals = 0 - -[ibc/705B1CA519312502768926783464F5E1581D8626A837C55BD62B21ED121FB68F] -peggy_denom = ibc/705B1CA519312502768926783464F5E1581D8626A837C55BD62B21ED121FB68F -decimals = 0 - -[ibc/708E88A154130E672462B0E5BE3F8C3CC8B5716D618C77FF03B8B6F3E6278F0B] -peggy_denom = ibc/708E88A154130E672462B0E5BE3F8C3CC8B5716D618C77FF03B8B6F3E6278F0B -decimals = 0 - -[ibc/710DA81083B469FE562770EE16DCA2DB088D5796937BCB548DF27DA87156C5B3] -peggy_denom = ibc/710DA81083B469FE562770EE16DCA2DB088D5796937BCB548DF27DA87156C5B3 -decimals = 0 - -[ibc/72C208D790F59429C66542C648D69EDA1DC8A81C4B869C11444D906233678D3D] -peggy_denom = ibc/72C208D790F59429C66542C648D69EDA1DC8A81C4B869C11444D906233678D3D -decimals = 0 - -[ibc/745D31EA5FF54979B57A0797FF3E1B767E624D32498C9735A13E31A53DBC17F5] -peggy_denom = ibc/745D31EA5FF54979B57A0797FF3E1B767E624D32498C9735A13E31A53DBC17F5 -decimals = 0 - -[ibc/74BFF6BAC652D00C8F3382B1D1CFF086A91F1AF281E84F849A28358D6B81915B] -peggy_denom = ibc/74BFF6BAC652D00C8F3382B1D1CFF086A91F1AF281E84F849A28358D6B81915B -decimals = 0 - -[ibc/75BD031C1301C554833F205FAFA065178D51AC6100BCE608E6DC2759C2B71715] -peggy_denom = ibc/75BD031C1301C554833F205FAFA065178D51AC6100BCE608E6DC2759C2B71715 -decimals = 6 - -[ibc/75DCE6CD83EFF5A64187ECFCEE4F568A57C6C0B3854FB158EB706D9140E07FB0] -peggy_denom = ibc/75DCE6CD83EFF5A64187ECFCEE4F568A57C6C0B3854FB158EB706D9140E07FB0 -decimals = 0 - -[ibc/75F5D4A64938A16BCAEB5E8F103BD1E8F3A5FE3547C7F5F9FE3E51036FA814E6] -peggy_denom = ibc/75F5D4A64938A16BCAEB5E8F103BD1E8F3A5FE3547C7F5F9FE3E51036FA814E6 -decimals = 0 - -[ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5] -peggy_denom = ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5 -decimals = 6 - -[ibc/79AAED90BC8A3025E4CC344DF8F89D0DBAC646E5E2FD6B60783981BF1FE06DCA] -peggy_denom = ibc/79AAED90BC8A3025E4CC344DF8F89D0DBAC646E5E2FD6B60783981BF1FE06DCA -decimals = 0 - -[ibc/79FA72A2E7596298CD4CD7F79BDA0E9627D4B6A27150B43058CB0D1231C54F8C] -peggy_denom = ibc/79FA72A2E7596298CD4CD7F79BDA0E9627D4B6A27150B43058CB0D1231C54F8C -decimals = 0 - -[ibc/7A007AE05C3DDE189E554697450A2BF8FFF380E88F7BA6DC7DF39E329E80A49D] -peggy_denom = ibc/7A007AE05C3DDE189E554697450A2BF8FFF380E88F7BA6DC7DF39E329E80A49D -decimals = 0 - -[ibc/7A073FD73CCAD05DCF4571B92BC1E16D6E6211EF79A5AD1FEE6E5464D8348F27] -peggy_denom = ibc/7A073FD73CCAD05DCF4571B92BC1E16D6E6211EF79A5AD1FEE6E5464D8348F27 -decimals = 0 - -[ibc/7A2FE4D6F3156F60E38623C684C21A9F4684B730F035D75712928F71B0DB08B5] -peggy_denom = ibc/7A2FE4D6F3156F60E38623C684C21A9F4684B730F035D75712928F71B0DB08B5 -decimals = 0 - -[ibc/7C2AA3086423029B3E915B5563975DB87EF2E552A40F996C7F6D19FFBD5B2AEA] -peggy_denom = ibc/7C2AA3086423029B3E915B5563975DB87EF2E552A40F996C7F6D19FFBD5B2AEA -decimals = 0 - -[ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6] -peggy_denom = ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6 -decimals = 6 - -[ibc/7CF12F727C8C8A6589016D8565830B6DE0D87F70ED1A2C80270B2ABC77426DE7] -peggy_denom = ibc/7CF12F727C8C8A6589016D8565830B6DE0D87F70ED1A2C80270B2ABC77426DE7 -decimals = 0 - -[ibc/7D655739C7AE81A4FD2D21744654767E6721894969985588EC330C6396BA1C28] -peggy_denom = ibc/7D655739C7AE81A4FD2D21744654767E6721894969985588EC330C6396BA1C28 -decimals = 0 - -[ibc/7FF5CED7EF2ED6DFBC5B1278B5BE9ECBFB5939CC04218AC244A5E51D64ED50C8] -peggy_denom = ibc/7FF5CED7EF2ED6DFBC5B1278B5BE9ECBFB5939CC04218AC244A5E51D64ED50C8 -decimals = 0 - -[ibc/819B5FB8FA371CC26976CAF8CDF54F3B146060400AD55591B5F1BE3036E915D8] -peggy_denom = ibc/819B5FB8FA371CC26976CAF8CDF54F3B146060400AD55591B5F1BE3036E915D8 -decimals = 0 - -[ibc/81B756469E88FBB424E039018AC5BDEEA6C7A01B8794ECF176DA8C9C5B95FA78] -peggy_denom = ibc/81B756469E88FBB424E039018AC5BDEEA6C7A01B8794ECF176DA8C9C5B95FA78 -decimals = 0 - -[ibc/81B7F37966A8066DFAF1B2F07A3D3AFBBA2AAC479B1F0D4135AD85725592D7B1] -peggy_denom = ibc/81B7F37966A8066DFAF1B2F07A3D3AFBBA2AAC479B1F0D4135AD85725592D7B1 -decimals = 0 - -[ibc/83601F79992DCDF21ECCE0D876C6E1E9578AB97D77CD3E975B92B715CA851F19] -peggy_denom = ibc/83601F79992DCDF21ECCE0D876C6E1E9578AB97D77CD3E975B92B715CA851F19 -decimals = 0 - -[ibc/85409B5CEC4C363C224D6E1042116A19CEF76F8D35823B4664E71A467B475F44] -peggy_denom = ibc/85409B5CEC4C363C224D6E1042116A19CEF76F8D35823B4664E71A467B475F44 -decimals = 0 - -[ibc/85C83BD4F9557A367AA5D890D58CA60E6691833679167ED1E65A00268E480287] -peggy_denom = ibc/85C83BD4F9557A367AA5D890D58CA60E6691833679167ED1E65A00268E480287 -decimals = 0 - -[ibc/8A58946864367695DE89CE93634F5D76CCF7C8995915A0388FDF4D15A8BA8C4B] -peggy_denom = ibc/8A58946864367695DE89CE93634F5D76CCF7C8995915A0388FDF4D15A8BA8C4B -decimals = 0 - -[ibc/8B42C90767030357E99BE35BB5BCBD5A69F6E9E20F4A9FD0498823FD10FF86F9] -peggy_denom = ibc/8B42C90767030357E99BE35BB5BCBD5A69F6E9E20F4A9FD0498823FD10FF86F9 -decimals = 0 - -[ibc/8CE12C919F662B1563782DC4CF3696E5CED5287B82A59BBE17F3D65CE6A651AE] -peggy_denom = ibc/8CE12C919F662B1563782DC4CF3696E5CED5287B82A59BBE17F3D65CE6A651AE -decimals = 0 - -[ibc/8D0DA5929A6E7B901319D05D5434FB4BEB28459D72470A3A1C593A813FE461C8] -peggy_denom = ibc/8D0DA5929A6E7B901319D05D5434FB4BEB28459D72470A3A1C593A813FE461C8 -decimals = 0 - -[ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE] -peggy_denom = ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE -decimals = 6 - -[ibc/8D90E5706C22B488F4FA45CD81FEAC91112B35510A72FEB45DB561A8CAF7D775] -peggy_denom = ibc/8D90E5706C22B488F4FA45CD81FEAC91112B35510A72FEB45DB561A8CAF7D775 -decimals = 0 - -[ibc/8E1E49E35305C7002752F0C947B4118C23D1DFF1FB972363EB6F078567262CAC] -peggy_denom = ibc/8E1E49E35305C7002752F0C947B4118C23D1DFF1FB972363EB6F078567262CAC -decimals = 0 - -[ibc/8E29C07E81FDE94D898868F9EF92EE805B6D5902B75F2F90C9DE48E5BE6A2AFA] -peggy_denom = ibc/8E29C07E81FDE94D898868F9EF92EE805B6D5902B75F2F90C9DE48E5BE6A2AFA -decimals = 0 - -[ibc/8FB87BBB7E7B2A963A6F40A655F611F5F8DB30797E2B2CA1A0BAC856E58CA8F6] -peggy_denom = ibc/8FB87BBB7E7B2A963A6F40A655F611F5F8DB30797E2B2CA1A0BAC856E58CA8F6 -decimals = 0 - -[ibc/9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB] -peggy_denom = ibc/9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB -decimals = 18 - -[ibc/92F62B238D6C73A5CAA0930CEDE3781CEF41B6EED7A205129D69F4F3D77F392A] -peggy_denom = ibc/92F62B238D6C73A5CAA0930CEDE3781CEF41B6EED7A205129D69F4F3D77F392A -decimals = 0 - -[ibc/948D16A08718820A10DE8F7B35CE60409E7B5DC61043E88BB368C776147E70E8] -peggy_denom = ibc/948D16A08718820A10DE8F7B35CE60409E7B5DC61043E88BB368C776147E70E8 -decimals = 0 - -[ibc/949FD45325A74482FB0FC29CB19B744CED7340511EDA8E4F9337D9500F29D169] -peggy_denom = ibc/949FD45325A74482FB0FC29CB19B744CED7340511EDA8E4F9337D9500F29D169 -decimals = 0 - -[ibc/95B32740756E6DF2EAA242978EBF0FF6F3B632B8601DC12CB912D5957E8AB118] -peggy_denom = ibc/95B32740756E6DF2EAA242978EBF0FF6F3B632B8601DC12CB912D5957E8AB118 -decimals = 0 - -[ibc/95E6CD4D649BD33F938B2B7B2BED3CA6DC78F7765F7E5B01329D92DD22259AF3] -peggy_denom = ibc/95E6CD4D649BD33F938B2B7B2BED3CA6DC78F7765F7E5B01329D92DD22259AF3 -decimals = 0 - -[ibc/999FD9811C895A63FE1A2FCDDA24DEC6AF7D70D907BD97E9C455BDFD57B373CA] -peggy_denom = ibc/999FD9811C895A63FE1A2FCDDA24DEC6AF7D70D907BD97E9C455BDFD57B373CA -decimals = 0 - -[ibc/9A8083F8E50E5CAE85393E9BD52A3A5E2404B7CF9D2FCCD87A81BFADD38001E5] -peggy_denom = ibc/9A8083F8E50E5CAE85393E9BD52A3A5E2404B7CF9D2FCCD87A81BFADD38001E5 -decimals = 0 - -[ibc/9CAF108FCC3EB3815E029462100828461FFAA829002C4366716437F8C07F5F9C] -peggy_denom = ibc/9CAF108FCC3EB3815E029462100828461FFAA829002C4366716437F8C07F5F9C -decimals = 0 - -[ibc/9D592A0F3E812505C6B3F7860458B7AC4DBDECACC04A2602FC13ED0AB6C762B6] -peggy_denom = ibc/9D592A0F3E812505C6B3F7860458B7AC4DBDECACC04A2602FC13ED0AB6C762B6 -decimals = 0 - -[ibc/9D8B31B800A606CE820FC7604A5E85A15898630DDAFEB2733530594643119D4C] -peggy_denom = ibc/9D8B31B800A606CE820FC7604A5E85A15898630DDAFEB2733530594643119D4C -decimals = 0 - -[ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340] -peggy_denom = ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340 -decimals = 6 - -[ibc/9FF2D5FE9CBF1B6D51197FF2C94F84B842438136F4586B42DA06CEA8921CCEFA] -peggy_denom = ibc/9FF2D5FE9CBF1B6D51197FF2C94F84B842438136F4586B42DA06CEA8921CCEFA -decimals = 0 - -[ibc/A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3] -peggy_denom = ibc/A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3 -decimals = 8 - -[ibc/A211992C4D639DD2E59A45850BFC9CF1304519C1B7F46D7EDCFC1CFDFE9BFD31] -peggy_denom = ibc/A211992C4D639DD2E59A45850BFC9CF1304519C1B7F46D7EDCFC1CFDFE9BFD31 -decimals = 0 - -[ibc/A2C433944E7989D2B32565DDF6B6C2806B2AF4500675AA39D3C3A061D37CE576] -peggy_denom = ibc/A2C433944E7989D2B32565DDF6B6C2806B2AF4500675AA39D3C3A061D37CE576 -decimals = 0 - -[ibc/A2CF2B2B577769B7E025A21A24B28E443163E12987AA1A150AD9B6B58BFDF0D9] -peggy_denom = ibc/A2CF2B2B577769B7E025A21A24B28E443163E12987AA1A150AD9B6B58BFDF0D9 -decimals = 0 - -[ibc/A3B566239B955DEA9718EAB29B8FAB152ABE746E6040A9EA7B5CDE12FF912551] -peggy_denom = ibc/A3B566239B955DEA9718EAB29B8FAB152ABE746E6040A9EA7B5CDE12FF912551 -decimals = 0 - -[ibc/A55FFAE2F7E96F6E3D92F9E837350D47D2A2C3F6BD9584D55CCA39EC6949D598] -peggy_denom = ibc/A55FFAE2F7E96F6E3D92F9E837350D47D2A2C3F6BD9584D55CCA39EC6949D598 -decimals = 0 - -[ibc/A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7] -peggy_denom = ibc/A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7 -decimals = 6 - -[ibc/A96304F1680B9FB1705F3368320E4430D4A1E87CBAA5E8CFFC404B2A7AA8D83A] -peggy_denom = ibc/A96304F1680B9FB1705F3368320E4430D4A1E87CBAA5E8CFFC404B2A7AA8D83A -decimals = 0 - -[ibc/AB1E9C841105F28E9B70ED5EF1239B2D5E567F6E16818D87EFFA75E62778C8E4] -peggy_denom = ibc/AB1E9C841105F28E9B70ED5EF1239B2D5E567F6E16818D87EFFA75E62778C8E4 -decimals = 0 - -[ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5] -peggy_denom = ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5 -decimals = 6 - -[ibc/AC45D6359281E50A7498B10B9F38B7BE4868628E45E531D68F77422EFE430365] -peggy_denom = ibc/AC45D6359281E50A7498B10B9F38B7BE4868628E45E531D68F77422EFE430365 -decimals = 0 - -[ibc/AC8181FE5ECAC9A01FBC5C4A3A681537A01A95007C32C2FAF3CF7101E9DAE081] -peggy_denom = ibc/AC8181FE5ECAC9A01FBC5C4A3A681537A01A95007C32C2FAF3CF7101E9DAE081 -decimals = 0 - -[ibc/AD39C30C73231FCBE2ECF944E2D924ACE367D0F948FC7CAC1C9CEF6075574735] -peggy_denom = ibc/AD39C30C73231FCBE2ECF944E2D924ACE367D0F948FC7CAC1C9CEF6075574735 -decimals = 0 - -[ibc/AE198193A04103DD1AE4C8698E25DEDCA81396A4C484DA19E4221B3C3A3D2F2A] -peggy_denom = ibc/AE198193A04103DD1AE4C8698E25DEDCA81396A4C484DA19E4221B3C3A3D2F2A -decimals = 0 - -[ibc/AE3CE60389C8B666AEA33330C954A64C39EB25B60C5521631A1B605DBE575280] -peggy_denom = ibc/AE3CE60389C8B666AEA33330C954A64C39EB25B60C5521631A1B605DBE575280 -decimals = 0 - -[ibc/AE6D267A64EEFE1430D11221D579C91CFC6D7B0E7F885874AE1BC715FE8753E1] -peggy_denom = ibc/AE6D267A64EEFE1430D11221D579C91CFC6D7B0E7F885874AE1BC715FE8753E1 -decimals = 0 - -[ibc/AFE72652B9CF5954AD0EF11FA5A83D4E2B93631001D9E384B03BE1CEFBCDB458] -peggy_denom = ibc/AFE72652B9CF5954AD0EF11FA5A83D4E2B93631001D9E384B03BE1CEFBCDB458 -decimals = 0 - -[ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69] -peggy_denom = ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69 -decimals = 6 - -[ibc/B20C5AB7FC7D54DE3832F91A00002EE1A830F4ADE6CDD9F02378CDA79415E8B3] -peggy_denom = ibc/B20C5AB7FC7D54DE3832F91A00002EE1A830F4ADE6CDD9F02378CDA79415E8B3 -decimals = 0 - -[ibc/B2D7620D827D6AC87B4EB2757C1144E3B1EF2A31A84968C2720A4353BD856E69] -peggy_denom = ibc/B2D7620D827D6AC87B4EB2757C1144E3B1EF2A31A84968C2720A4353BD856E69 -decimals = 0 - -[ibc/B3D547DD7B46DE371F312F2970C2D9E2ABD7164F4A37836CA2282762B78E04D6] -peggy_denom = ibc/B3D547DD7B46DE371F312F2970C2D9E2ABD7164F4A37836CA2282762B78E04D6 -decimals = 0 - -[ibc/B4524C4C8F51F77C94D4E901AA26DF4F0E530F44E285D5D777E1634907E94CBD] -peggy_denom = ibc/B4524C4C8F51F77C94D4E901AA26DF4F0E530F44E285D5D777E1634907E94CBD -decimals = 0 - -[ibc/B5BB79AC621108184E03AD6B82456EBC96041B877A1652445CF32619CC9DA5C1] -peggy_denom = ibc/B5BB79AC621108184E03AD6B82456EBC96041B877A1652445CF32619CC9DA5C1 -decimals = 0 - -[ibc/B61DB68037EA3B6E9A1833093616CDFD8233EB014C1EA4C2D06E6A62B1FF2A64] -peggy_denom = ibc/B61DB68037EA3B6E9A1833093616CDFD8233EB014C1EA4C2D06E6A62B1FF2A64 -decimals = 0 - -[ibc/B8F80D51444F6DD4BD06A0B3C4A05C4F4AC13AA4AB7966A55BF2024A82D1FDD6] -peggy_denom = ibc/B8F80D51444F6DD4BD06A0B3C4A05C4F4AC13AA4AB7966A55BF2024A82D1FDD6 -decimals = 0 - -[ibc/B99CCD408EB17CBC3D295647F0D3A035576B109648ED833D4039B42C09DB4BDB] -peggy_denom = ibc/B99CCD408EB17CBC3D295647F0D3A035576B109648ED833D4039B42C09DB4BDB -decimals = 0 - -[ibc/BA26BE85B9D5F046FC7071ED0F77053662A4B2F5B7552B3834A3F1B2DD3BD18F] -peggy_denom = ibc/BA26BE85B9D5F046FC7071ED0F77053662A4B2F5B7552B3834A3F1B2DD3BD18F -decimals = 0 - -[ibc/BC8CCC6DE74A32C83BADC2B984295F78074375075610D8198E1AD64FBA780AA5] -peggy_denom = ibc/BC8CCC6DE74A32C83BADC2B984295F78074375075610D8198E1AD64FBA780AA5 -decimals = 0 - -[ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58] -peggy_denom = ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58 -decimals = 6 - -[ibc/BD1F347E40AEE5E7499E63B6D39F9AA783AC7003519933D3F88E83154A40FAD2] -peggy_denom = ibc/BD1F347E40AEE5E7499E63B6D39F9AA783AC7003519933D3F88E83154A40FAD2 -decimals = 0 - -[ibc/BDDF86413BCEAD3660A60F2B5B5C1D95635FA76B3E510924FEE2F6890CBD7E14] -peggy_denom = ibc/BDDF86413BCEAD3660A60F2B5B5C1D95635FA76B3E510924FEE2F6890CBD7E14 -decimals = 0 - -[ibc/BE3E2A75AFBA5F56017D7BB68FBAB013E08BF1633F92528197286C26967FBF42] -peggy_denom = ibc/BE3E2A75AFBA5F56017D7BB68FBAB013E08BF1633F92528197286C26967FBF42 -decimals = 0 - -[ibc/BE749147EF2813020A5A77D29183336CFAA1A53B67E522EF103D6803DE0E084B] -peggy_denom = ibc/BE749147EF2813020A5A77D29183336CFAA1A53B67E522EF103D6803DE0E084B -decimals = 0 - -[ibc/BE7AB5AEDF88351CF4E1AAE8EC00EC9EE36CD39AEE83D95A1555418E15FC88AD] -peggy_denom = ibc/BE7AB5AEDF88351CF4E1AAE8EC00EC9EE36CD39AEE83D95A1555418E15FC88AD -decimals = 0 - -[ibc/BE8166C09385A65A64366092FA14CEAD171EBB8E2464400196A1B19B4DC3AD50] -peggy_denom = ibc/BE8166C09385A65A64366092FA14CEAD171EBB8E2464400196A1B19B4DC3AD50 -decimals = 0 - -[ibc/BEF3E88134523FFB8ABB5A6D063071E96AF194B09BCA91A39FF67CC753C6A827] -peggy_denom = ibc/BEF3E88134523FFB8ABB5A6D063071E96AF194B09BCA91A39FF67CC753C6A827 -decimals = 0 - -[ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536] -peggy_denom = ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536 -decimals = 6 - -[ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546] -peggy_denom = ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546 -decimals = 6 - -[ibc/C3BD5051E685B9A447352FB2D5773F8E4A015521CBD0A534B3F514FCA17C9030] -peggy_denom = ibc/C3BD5051E685B9A447352FB2D5773F8E4A015521CBD0A534B3F514FCA17C9030 -decimals = 0 - -[ibc/C41000F89C71FB771148BDE5DA2EB8A77CF8DB65FF7A276C54B7BEB270DA17EF] -peggy_denom = ibc/C41000F89C71FB771148BDE5DA2EB8A77CF8DB65FF7A276C54B7BEB270DA17EF -decimals = 0 - -[ibc/C443ADA9C3388000268B8B892A07AB6838A904E1CCA2A1F084CB9572CA66F0E2] -peggy_denom = ibc/C443ADA9C3388000268B8B892A07AB6838A904E1CCA2A1F084CB9572CA66F0E2 -decimals = 0 - -[ibc/C49B72C4E85AE5361C3E0F0587B24F509CB16ECEB8970B6F917D697036AF49BE] -peggy_denom = ibc/C49B72C4E85AE5361C3E0F0587B24F509CB16ECEB8970B6F917D697036AF49BE -decimals = 0 - -[ibc/C508488741426E40AAE98E374F6D8DEA733A391D3388EBEC055F1C2A6845CBCA] -peggy_denom = ibc/C508488741426E40AAE98E374F6D8DEA733A391D3388EBEC055F1C2A6845CBCA -decimals = 0 - -[ibc/C51E233EC915CCBF69FAC3FE7F177F26526BDF92EDC3F22CF0AAED7008CEA3A6] -peggy_denom = ibc/C51E233EC915CCBF69FAC3FE7F177F26526BDF92EDC3F22CF0AAED7008CEA3A6 -decimals = 0 - -[ibc/C7132831617D38D152402A1F0E3B98A719C8288423A5116167E03A51D9B8B6D0] -peggy_denom = ibc/C7132831617D38D152402A1F0E3B98A719C8288423A5116167E03A51D9B8B6D0 -decimals = 0 - -[ibc/C740C029985A03309A990268DEC5084C53F185A99C0A42F1D61D7A89DE905230] -peggy_denom = ibc/C740C029985A03309A990268DEC5084C53F185A99C0A42F1D61D7A89DE905230 -decimals = 0 - -[ibc/C8099767548EA68F722AD0F8A8C807A5E6B6A8CA0A6FD7B8BD9B1AE96D19AC3E] -peggy_denom = ibc/C8099767548EA68F722AD0F8A8C807A5E6B6A8CA0A6FD7B8BD9B1AE96D19AC3E -decimals = 0 - -[ibc/C8245C403E8D7E15B4B306AD690669B0BB54F851E69316CAD464212D2772FBBA] -peggy_denom = ibc/C8245C403E8D7E15B4B306AD690669B0BB54F851E69316CAD464212D2772FBBA -decimals = 0 - -[ibc/C9EC3080B046D49949239E1704522EE8B7BE0A668027028059A7FE7BC20B0976] -peggy_denom = ibc/C9EC3080B046D49949239E1704522EE8B7BE0A668027028059A7FE7BC20B0976 -decimals = 6 - -[ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C] -peggy_denom = ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C -decimals = 6 - -[ibc/CA5D0BBEC26DECB072BA6E73F61E827ADB8154DFE22EC87E44BAED3E15D0E02B] -peggy_denom = ibc/CA5D0BBEC26DECB072BA6E73F61E827ADB8154DFE22EC87E44BAED3E15D0E02B -decimals = 0 - -[ibc/CB9BA999A7CDA4CE00784BFF705A1D0BDB95AD80334FD0F95A5BA306078C96E9] -peggy_denom = ibc/CB9BA999A7CDA4CE00784BFF705A1D0BDB95AD80334FD0F95A5BA306078C96E9 -decimals = 0 - -[ibc/CC610E1295BCF3ADE3C3DD4ABF3496C6EAA7541A1E45696E9D642D7B0A27B127] -peggy_denom = ibc/CC610E1295BCF3ADE3C3DD4ABF3496C6EAA7541A1E45696E9D642D7B0A27B127 -decimals = 0 - -[ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4] -peggy_denom = ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4 -decimals = 6 - -[ibc/CDDEE42F2BF083A267EB3A007C0593BF7D043F13D5F5C380EBE2F523B3FDEFEB] -peggy_denom = ibc/CDDEE42F2BF083A267EB3A007C0593BF7D043F13D5F5C380EBE2F523B3FDEFEB -decimals = 0 - -[ibc/CFD97474BEB91453470ABF422E94B4C55ACF2CBA300B1FE7ED494DB5F5E012B1] -peggy_denom = ibc/CFD97474BEB91453470ABF422E94B4C55ACF2CBA300B1FE7ED494DB5F5E012B1 -decimals = 6 - -[ibc/D0474D169562F9773959C7CF69ED413D77883F5B958BD52B5D31DE7F9CB64F9E] -peggy_denom = ibc/D0474D169562F9773959C7CF69ED413D77883F5B958BD52B5D31DE7F9CB64F9E -decimals = 0 - -[ibc/D18907CCF379EEA71AE2C3725A135AE678A67A35B7C6556A77A4E0B3520F7854] -peggy_denom = ibc/D18907CCF379EEA71AE2C3725A135AE678A67A35B7C6556A77A4E0B3520F7854 -decimals = 0 - -[ibc/D1EE9803C518B2DC07A23BE78E8817065E48BF264EBE29C3447571ACDFDEA4E2] -peggy_denom = ibc/D1EE9803C518B2DC07A23BE78E8817065E48BF264EBE29C3447571ACDFDEA4E2 -decimals = 0 - -[ibc/D208E775E677BAC87EB85C359E7A6BD123C7E6F0709D34DD4D8A1650CED77A77] -peggy_denom = ibc/D208E775E677BAC87EB85C359E7A6BD123C7E6F0709D34DD4D8A1650CED77A77 -decimals = 0 - -[ibc/D24B4564BCD51D3D02D9987D92571EAC5915676A9BD6D9B0C1D0254CB8A5EA34] -peggy_denom = ibc/D24B4564BCD51D3D02D9987D92571EAC5915676A9BD6D9B0C1D0254CB8A5EA34 -decimals = 0 - -[ibc/D2E5F3E4E591C72C9E36CFA9EF962D58165D4CF8D63F4FCA64CA6833AF9486AF] -peggy_denom = ibc/D2E5F3E4E591C72C9E36CFA9EF962D58165D4CF8D63F4FCA64CA6833AF9486AF -decimals = 0 - -[ibc/D3AAE460452B8D16C4569F108CB0462A68891278CCA73C82364D48DCAC258A0B] -peggy_denom = ibc/D3AAE460452B8D16C4569F108CB0462A68891278CCA73C82364D48DCAC258A0B -decimals = 0 - -[ibc/D3AF228E8FD11597F699BBE5428361A49F8EF808E271909E6A5AF9C76CB5E5AC] -peggy_denom = ibc/D3AF228E8FD11597F699BBE5428361A49F8EF808E271909E6A5AF9C76CB5E5AC -decimals = 0 - -[ibc/D3FA7185FEB5D4A07F08F8A0847290A2BAC9372C5C5DF1E7F7BFEEDD852E9052] -peggy_denom = ibc/D3FA7185FEB5D4A07F08F8A0847290A2BAC9372C5C5DF1E7F7BFEEDD852E9052 -decimals = 0 - -[ibc/D4ED143E25535EBF6374A1A077BE205A687B69872484DF064ED2BAD6E5C3D762] -peggy_denom = ibc/D4ED143E25535EBF6374A1A077BE205A687B69872484DF064ED2BAD6E5C3D762 -decimals = 0 - -[ibc/D505AA838A7BB7D22166DE53F4104BC86951E37B4D3B437B1FEB5F3468FF8DB5] -peggy_denom = ibc/D505AA838A7BB7D22166DE53F4104BC86951E37B4D3B437B1FEB5F3468FF8DB5 -decimals = 0 - -[ibc/D5AF5FAEA92918A24ACBF0DEB61C674C8951A97D13CFBF7F6617280E82ECB1E6] -peggy_denom = ibc/D5AF5FAEA92918A24ACBF0DEB61C674C8951A97D13CFBF7F6617280E82ECB1E6 -decimals = 0 - -[ibc/D64620F915AD2D3B93C958996CD0BD099DC5837490706FDE15E79440CF77CB36] -peggy_denom = ibc/D64620F915AD2D3B93C958996CD0BD099DC5837490706FDE15E79440CF77CB36 -decimals = 0 - -[ibc/D671DB6A024C3DCF36E5E44E0FA3AD8E9A379F07C0E746695F7E5994CCAD5746] -peggy_denom = ibc/D671DB6A024C3DCF36E5E44E0FA3AD8E9A379F07C0E746695F7E5994CCAD5746 -decimals = 0 - -[ibc/DA9F0C043A4A9DCFC96E4C75EE391AC5F7610C902E1E29EC0F7B90088BE35029] -peggy_denom = ibc/DA9F0C043A4A9DCFC96E4C75EE391AC5F7610C902E1E29EC0F7B90088BE35029 -decimals = 0 - -[ibc/DC9E276D4E80CD04F8A8C681842A3A16C59F85963FB262E34BBB6CB4F5BFDB14] -peggy_denom = ibc/DC9E276D4E80CD04F8A8C681842A3A16C59F85963FB262E34BBB6CB4F5BFDB14 -decimals = 0 - -[ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1] -peggy_denom = ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1 -decimals = 6 - -[ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6] -peggy_denom = ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6 -decimals = 6 - -[ibc/DFA6A6ADEDFFD00CAE5C2A3E3A87CEE28B51711762EE2985DFEDA81AF76298D8] -peggy_denom = ibc/DFA6A6ADEDFFD00CAE5C2A3E3A87CEE28B51711762EE2985DFEDA81AF76298D8 -decimals = 0 - -[ibc/E01C45463D148F2B469F17DB0497DFA70A746D0CFF6A90EE82825590ADE5F752] -peggy_denom = ibc/E01C45463D148F2B469F17DB0497DFA70A746D0CFF6A90EE82825590ADE5F752 -decimals = 0 - -[ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2] -peggy_denom = ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2 -decimals = 6 - -[ibc/E247857D53653BA3592A6CCAF9914227153B938BA768C415FF3BAD6CE6CFA316] -peggy_denom = ibc/E247857D53653BA3592A6CCAF9914227153B938BA768C415FF3BAD6CE6CFA316 -decimals = 0 - -[ibc/E43E4F1FD4B84EE30EDB8E0BE6F03E0A5596B292EAA0F198789DDF0C1301FB85] -peggy_denom = ibc/E43E4F1FD4B84EE30EDB8E0BE6F03E0A5596B292EAA0F198789DDF0C1301FB85 -decimals = 0 - -[ibc/E49728A25824EC0FF858A76975834DA11E3A2021285A6D62835D10829B4034F7] -peggy_denom = ibc/E49728A25824EC0FF858A76975834DA11E3A2021285A6D62835D10829B4034F7 -decimals = 0 - -[ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E] -peggy_denom = ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E -decimals = 18 - -[ibc/E53178A4F7B6492F01B5719D9C7AF89056DA3E50EE542403D8BA8E0657F02FE1] -peggy_denom = ibc/E53178A4F7B6492F01B5719D9C7AF89056DA3E50EE542403D8BA8E0657F02FE1 -decimals = 0 - -[ibc/E78F8AE12F4271904CBA6CF8262525C723DF42EBD2B74A34F33862BF5652C769] -peggy_denom = ibc/E78F8AE12F4271904CBA6CF8262525C723DF42EBD2B74A34F33862BF5652C769 -decimals = 0 - -[ibc/E7C0089E196DB00A88D6EA6D1CD87D80C320D721ACFAEFF4342CEF15AE9EDAE0] -peggy_denom = ibc/E7C0089E196DB00A88D6EA6D1CD87D80C320D721ACFAEFF4342CEF15AE9EDAE0 -decimals = 0 - -[ibc/E801CF19C7B3FFC5FD81A1C9662BCFAE08F4976B054923BC0DA377F1863D3E56] -peggy_denom = ibc/E801CF19C7B3FFC5FD81A1C9662BCFAE08F4976B054923BC0DA377F1863D3E56 -decimals = 0 - -[ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610] -peggy_denom = ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610 -decimals = 6 - -[ibc/E9BBE9BBF0925155892D6E47553E83B8476C880F65DEB33859E751C0B107B0B1] -peggy_denom = ibc/E9BBE9BBF0925155892D6E47553E83B8476C880F65DEB33859E751C0B107B0B1 -decimals = 0 - -[ibc/EA180E422271F35D66E7B9B57AFF072DABEE97EDA4522DAB91F97AE6DD45426D] -peggy_denom = ibc/EA180E422271F35D66E7B9B57AFF072DABEE97EDA4522DAB91F97AE6DD45426D -decimals = 0 - -[ibc/ECBEA5A9A992EE96B327CBA081AA35EB4E62C6A1A3990D2C0326E9A5840793A4] -peggy_denom = ibc/ECBEA5A9A992EE96B327CBA081AA35EB4E62C6A1A3990D2C0326E9A5840793A4 -decimals = 0 - -[ibc/ECC0DF3D9C80F79B81056569EE2140FD977886AB274FA08BA03E987264D6DE19] -peggy_denom = ibc/ECC0DF3D9C80F79B81056569EE2140FD977886AB274FA08BA03E987264D6DE19 -decimals = 0 - -[ibc/EEB2EB2A678B5788DB413B5A7EC81085B34F33DA9750C1C790CE8E1EDC8282B5] -peggy_denom = ibc/EEB2EB2A678B5788DB413B5A7EC81085B34F33DA9750C1C790CE8E1EDC8282B5 -decimals = 0 - -[ibc/EEC5E6CD97C728108D4352DFF1D67328055AD0DC25859F1F06F4AE4F2524987B] -peggy_denom = ibc/EEC5E6CD97C728108D4352DFF1D67328055AD0DC25859F1F06F4AE4F2524987B -decimals = 0 - -[ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808] -peggy_denom = ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808 -decimals = 6 - -[ibc/F1EEC63548B066D76B9B82D04DE25C424932DABD9234116836BAF759E8130BC3] -peggy_denom = ibc/F1EEC63548B066D76B9B82D04DE25C424932DABD9234116836BAF759E8130BC3 -decimals = 0 - -[ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475] -peggy_denom = ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475 -decimals = 18 - -[ibc/F433CC4D2A46173B47A691E8C432F11E47E8C06C574CEF798F6F7BA116EACCAC] -peggy_denom = ibc/F433CC4D2A46173B47A691E8C432F11E47E8C06C574CEF798F6F7BA116EACCAC -decimals = 0 - -[ibc/F643EAA961DF49F00CF53DA101C09837DE7945955CBD98C51B80E0BF6FA329E9] -peggy_denom = ibc/F643EAA961DF49F00CF53DA101C09837DE7945955CBD98C51B80E0BF6FA329E9 -decimals = 0 - -[ibc/F72F979601BD2FCF748C2E93092E9CB55A8BDB738567AB42C19D403A7C636110] -peggy_denom = ibc/F72F979601BD2FCF748C2E93092E9CB55A8BDB738567AB42C19D403A7C636110 -decimals = 0 - -[ibc/FA2E855E713B5D73C6AA54822791ADFD1BA73EFA5FDFDA903120A1FB0FF12733] -peggy_denom = ibc/FA2E855E713B5D73C6AA54822791ADFD1BA73EFA5FDFDA903120A1FB0FF12733 -decimals = 0 - -[ibc/FAFBDE851E97E4B566B050B843F6BBCE14D7DC88DA69840850271BA8DF72EAEE] -peggy_denom = ibc/FAFBDE851E97E4B566B050B843F6BBCE14D7DC88DA69840850271BA8DF72EAEE -decimals = 0 - -[ibc/FE2F22FEFB9E5F2EA063FD3135533B916577149A3D69CC2BF7BB4224BC9B1230] -peggy_denom = ibc/FE2F22FEFB9E5F2EA063FD3135533B916577149A3D69CC2BF7BB4224BC9B1230 -decimals = 0 - -[ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591] -peggy_denom = ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591 -decimals = 6 - -[inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s] -peggy_denom = inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s -decimals = 18 - -[inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3] -peggy_denom = inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3 -decimals = 6 - -[inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0] -peggy_denom = inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0 -decimals = 18 - -[inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge] -peggy_denom = inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge -decimals = 8 - -[inj122az278echmzpccw30yy4a4kfull4sfnytqqt7] -peggy_denom = inj122az278echmzpccw30yy4a4kfull4sfnytqqt7 -decimals = 18 - -[inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk] -peggy_denom = inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk -decimals = 6 - -[inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55] -peggy_denom = inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55 -decimals = 18 - -[inj12pt3p50kgsn6p33cchf5qvlf9mw2y0del8fnj3] -peggy_denom = inj12pt3p50kgsn6p33cchf5qvlf9mw2y0del8fnj3 -decimals = 18 - -[inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam] -peggy_denom = inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam -decimals = 18 - -[inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws] -peggy_denom = inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws -decimals = 18 - -[inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr] -peggy_denom = inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr -decimals = 6 - -[inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485] -peggy_denom = inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485 -decimals = 18 - -[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] -peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp -decimals = 6 - -[inj14m99e5ge2cactnstklfz8w7rc004w0e0p7ezze] -peggy_denom = inj14m99e5ge2cactnstklfz8w7rc004w0e0p7ezze -decimals = 0 - -[inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2] -peggy_denom = inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2 -decimals = 6 - -[inj14nursn4ezeqy9cgxmush6vk2p2wjsrucsl6gc9] -peggy_denom = inj14nursn4ezeqy9cgxmush6vk2p2wjsrucsl6gc9 -decimals = 18 - -[inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s] -peggy_denom = inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s -decimals = 8 - -[inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy] -peggy_denom = inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy -decimals = 0 - -[inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch] -peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch -decimals = 5 - -[inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh] -peggy_denom = inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh -decimals = 6 - -[inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf] -peggy_denom = inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf -decimals = 6 - -[inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w] -peggy_denom = inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w -decimals = 0 - -[inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7] -peggy_denom = inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7 -decimals = 18 - -[inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns] -peggy_denom = inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns -decimals = 18 - -[inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6] -peggy_denom = inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6 -decimals = 18 - -[inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck] -peggy_denom = inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck -decimals = 18 - -[inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef] -peggy_denom = inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef -decimals = 6 - -[inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5] -peggy_denom = inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5 -decimals = 6 - -[inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227] -peggy_denom = inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227 -decimals = 6 - -[inj15xz5537eujskaayp600gkke7qu82p5sa76lg50] -peggy_denom = inj15xz5537eujskaayp600gkke7qu82p5sa76lg50 -decimals = 18 - -[inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p] -peggy_denom = inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p -decimals = 6 - -[inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t] -peggy_denom = inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t -decimals = 6 - -[inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv] -peggy_denom = inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv -decimals = 6 - -[inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0] -peggy_denom = inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0 -decimals = 6 - -[inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j] -peggy_denom = inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j -decimals = 6 - -[inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al] -peggy_denom = inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al -decimals = 6 - -[inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar] -peggy_denom = inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar -decimals = 18 - -[inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za] -peggy_denom = inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za -decimals = 6 - -[inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh] -peggy_denom = inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh -decimals = 18 - -[inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d] -peggy_denom = inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d -decimals = 0 - -[inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk] -peggy_denom = inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk -decimals = 6 - -[inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz] -peggy_denom = inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz -decimals = 18 - -[inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6] -peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 -decimals = 8 - -[inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns] -peggy_denom = inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns -decimals = 6 - -[inj18j2lthr5pg44l69emknd4fe8msxdvyrt70clh2] -peggy_denom = inj18j2lthr5pg44l69emknd4fe8msxdvyrt70clh2 -decimals = 18 - -[inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k] -peggy_denom = inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k -decimals = 18 - -[inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0] -peggy_denom = inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0 -decimals = 6 - -[inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq] -peggy_denom = inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq -decimals = 18 - -[inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8] -peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 -decimals = 6 - -[inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9] -peggy_denom = inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9 -decimals = 6 - -[inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s] -peggy_denom = inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s -decimals = 6 - -[inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5] -peggy_denom = inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5 -decimals = 6 - -[inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm] -peggy_denom = inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm -decimals = 18 - -[inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3] -peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 -decimals = 6 - -[inj1aj27yjf5cg6aaccj0xxdpep9h5kymtmu3ccz9h] -peggy_denom = inj1aj27yjf5cg6aaccj0xxdpep9h5kymtmu3ccz9h -decimals = 6 - -[inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk] -peggy_denom = inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk -decimals = 0 - -[inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy] -peggy_denom = inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy -decimals = 18 - -[inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj] -peggy_denom = inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj -decimals = 6 - -[inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a] -peggy_denom = inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a -decimals = 6 - -[inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms] -peggy_denom = inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms -decimals = 6 - -[inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2] -peggy_denom = inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2 -decimals = 18 - -[inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u] -peggy_denom = inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u -decimals = 18 - -[inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f] -peggy_denom = inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f -decimals = 18 - -[inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw] -peggy_denom = inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw -decimals = 6 - -[inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr] -peggy_denom = inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr -decimals = 6 - -[inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29] -peggy_denom = inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29 -decimals = 6 - -[inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v] -peggy_denom = inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v -decimals = 6 - -[inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em] -peggy_denom = inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em -decimals = 6 - -[inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz] -peggy_denom = inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz -decimals = 6 - -[inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct] -peggy_denom = inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct -decimals = 0 - -[inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d] -peggy_denom = inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d -decimals = 0 - -[inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu] -peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu -decimals = 6 - -[inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s] -peggy_denom = inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s -decimals = 0 - -[inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m] -peggy_denom = inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m -decimals = 18 - -[inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp] -peggy_denom = inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp -decimals = 6 - -[inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv] -peggy_denom = inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv -decimals = 18 - -[inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3] -peggy_denom = inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3 -decimals = 0 - -[inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d] -peggy_denom = inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d -decimals = 6 - -[inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k] -peggy_denom = inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k -decimals = 18 - -[inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c] -peggy_denom = inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c -decimals = 6 - -[inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5] -peggy_denom = inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5 -decimals = 6 - -[inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp] -peggy_denom = inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp -decimals = 6 - -[inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up] -peggy_denom = inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up -decimals = 6 - -[inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t] -peggy_denom = inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t -decimals = 6 - -[inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck] -peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck -decimals = 18 - -[inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q] -peggy_denom = inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q -decimals = 6 - -[inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g] -peggy_denom = inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g -decimals = 18 - -[inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r] -peggy_denom = inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r -decimals = 6 - -[inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa] -peggy_denom = inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa -decimals = 18 - -[inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap] -peggy_denom = inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap -decimals = 18 - -[inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj] -peggy_denom = inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj -decimals = 6 - -[inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a] -peggy_denom = inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a -decimals = 18 - -[inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55] -peggy_denom = inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55 -decimals = 18 - -[inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a] -peggy_denom = inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a -decimals = 18 - -[inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z] -peggy_denom = inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z -decimals = 6 - -[inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8] -peggy_denom = inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8 -decimals = 18 - -[inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7] -peggy_denom = inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7 -decimals = 18 - -[inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf] -peggy_denom = inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf -decimals = 18 - -[inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7] -peggy_denom = inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7 -decimals = 18 - -[inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm] -peggy_denom = inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm -decimals = 6 - -[inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8] -peggy_denom = inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8 -decimals = 6 - -[inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh] -peggy_denom = inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh -decimals = 18 - -[inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449] -peggy_denom = inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449 -decimals = 6 - -[inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz] -peggy_denom = inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz -decimals = 6 - -[inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq] -peggy_denom = inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq -decimals = 18 - -[inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e] -peggy_denom = inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e -decimals = 18 - -[inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh] -peggy_denom = inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh -decimals = 9 - -[inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5] -peggy_denom = inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5 -decimals = 18 - -[inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw] -peggy_denom = inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw -decimals = 6 - -[inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc] -peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc -decimals = 8 - -[inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9] -peggy_denom = inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9 -decimals = 18 - -[inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z] -peggy_denom = inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z -decimals = 8 - -[inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj] -peggy_denom = inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj -decimals = 0 - -[inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03] -peggy_denom = inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03 -decimals = 6 - -[inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66] -peggy_denom = inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66 -decimals = 6 - -[inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0] -peggy_denom = inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0 -decimals = 18 - -[inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj] -peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj -decimals = 6 - -[inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02] -peggy_denom = inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02 -decimals = 18 - -[inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76] -peggy_denom = inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76 -decimals = 8 - -[inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r] -peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r -decimals = 6 - -[inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8] -peggy_denom = inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8 -decimals = 6 - -[inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc] -peggy_denom = inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc -decimals = 6 - -[inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg] -peggy_denom = inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg -decimals = 6 - -[inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g] -peggy_denom = inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g -decimals = 8 - -[inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz] -peggy_denom = inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz -decimals = 6 - -[inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r] -peggy_denom = inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r -decimals = 18 - -[inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf] -peggy_denom = inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf -decimals = 6 - -[inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6] -peggy_denom = inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6 -decimals = 18 - -[inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5] -peggy_denom = inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5 -decimals = 6 - -[inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf] -peggy_denom = inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf -decimals = 18 - -[inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx] -peggy_denom = inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx -decimals = 18 - -[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] -peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 -decimals = 8 - -[inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3] -peggy_denom = inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3 -decimals = 0 - -[inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c] -peggy_denom = inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c -decimals = 6 - -[inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd] -peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd -decimals = 6 - -[inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p] -peggy_denom = inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p -decimals = 18 - -[inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn] -peggy_denom = inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn -decimals = 18 - -[inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh] -peggy_denom = inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh -decimals = 6 - -[inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst] -peggy_denom = inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst -decimals = 18 - -[inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4] -peggy_denom = inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4 -decimals = 0 - -[inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey] -peggy_denom = inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey -decimals = 0 - -[inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs] -peggy_denom = inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs -decimals = 6 - -[inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f] -peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f -decimals = 18 - -[inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy] -peggy_denom = inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy -decimals = 18 - -[inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36] -peggy_denom = inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36 -decimals = 18 - -[inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e] -peggy_denom = inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e -decimals = 18 - -[inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l] -peggy_denom = inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l -decimals = 18 - -[inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5] -peggy_denom = inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5 -decimals = 18 - -[inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl] -peggy_denom = inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl -decimals = 0 - -[inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq] -peggy_denom = inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq -decimals = 6 - -[inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch] -peggy_denom = inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch -decimals = 8 - -[inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3] -peggy_denom = inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3 -decimals = 18 - -[inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87] -peggy_denom = inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87 -decimals = 6 - -[inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf] -peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf -decimals = 10 - -[inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv] -peggy_denom = inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv -decimals = 8 - -[inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t] -peggy_denom = inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t -decimals = 18 - -[inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367] -peggy_denom = inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367 -decimals = 18 - -[inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd] -peggy_denom = inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd -decimals = 0 - -[inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd] -peggy_denom = inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd -decimals = 0 - -[inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr] -peggy_denom = inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr -decimals = 18 - -[inj1tamr3fy4cyj6ezyppmeywxd4jz5knat8uqz0d6] -peggy_denom = inj1tamr3fy4cyj6ezyppmeywxd4jz5knat8uqz0d6 -decimals = 18 - -[inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg] -peggy_denom = inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg -decimals = 18 - -[inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh] -peggy_denom = inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh -decimals = 18 - -[inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp] -peggy_denom = inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp -decimals = 18 - -[inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8] -peggy_denom = inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8 -decimals = 18 - -[inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu] -peggy_denom = inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu -decimals = 18 - -[inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u] -peggy_denom = inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u -decimals = 18 - -[inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd] -peggy_denom = inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd -decimals = 6 - -[inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02] -peggy_denom = inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02 -decimals = 18 - -[inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3] -peggy_denom = inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3 -decimals = 8 - -[inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd] -peggy_denom = inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd -decimals = 6 - -[inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz] -peggy_denom = inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz -decimals = 18 - -[inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw] -peggy_denom = inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw -decimals = 18 - -[inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz] -peggy_denom = inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz -decimals = 0 - -[inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf] -peggy_denom = inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf -decimals = 6 - -[inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0] -peggy_denom = inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0 -decimals = 6 - -[inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc] -peggy_denom = inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc -decimals = 6 - -[inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav] -peggy_denom = inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav -decimals = 6 - -[inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf] -peggy_denom = inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf -decimals = 18 - -[inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy] -peggy_denom = inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy -decimals = 18 - -[inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5] -peggy_denom = inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5 -decimals = 6 - -[inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl] -peggy_denom = inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl -decimals = 6 - -[inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38] -peggy_denom = inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38 -decimals = 18 - -[inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru] -peggy_denom = inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru -decimals = 18 - -[inj1wu086fnygcr0sgytmt6pk8lsnqr9uev3dj700v] -peggy_denom = inj1wu086fnygcr0sgytmt6pk8lsnqr9uev3dj700v -decimals = 18 - -[inj1wze83lt3jk84f89era4ldakyv3mf90pj4af9cx] -peggy_denom = inj1wze83lt3jk84f89era4ldakyv3mf90pj4af9cx -decimals = 6 - -[inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc] -peggy_denom = inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc -decimals = 6 - -[inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40] -peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 -decimals = 18 - -[inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd] -peggy_denom = inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd -decimals = 18 - -[inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9] -peggy_denom = inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9 -decimals = 8 - -[inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk] -peggy_denom = inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk -decimals = 18 - -[inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2] -peggy_denom = inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2 -decimals = 6 - -[inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv] -peggy_denom = inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv -decimals = 18 - -[inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme] -peggy_denom = inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme -decimals = 6 - -[inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6] -peggy_denom = inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6 -decimals = 6 - -[inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam] -peggy_denom = inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam -decimals = 6 - -[inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f] -peggy_denom = inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f -decimals = 0 - -[inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5] -peggy_denom = inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5 -decimals = 18 - -[inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd] -peggy_denom = inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd -decimals = 18 - -[inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr] -peggy_denom = inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr -decimals = 18 - -[inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz] -peggy_denom = inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz -decimals = 6 - -[inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s] -peggy_denom = inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s -decimals = 18 - -[inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5] -peggy_denom = inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5 -decimals = 8 - -[inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn] -peggy_denom = inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn -decimals = 6 - -[injJay] -peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injJay -decimals = 6 - -[injape] -peggy_denom = inj15ta6ukknq82qcaq38erkvv3ycvmuqc83kn2vqh -decimals = 18 - -[injbulls] -peggy_denom = factory/inj14t4aafu7v0vmls8f73ssrzptcm3prkx2r4tp0n/injbulls -decimals = 6 - -[injera] -peggy_denom = inj1curmejva2lcpu7r887q3skr5ew2jxh8kl0m50t -decimals = 8 - -[injmeme] -peggy_denom = inj18n3gzxa40ht824clrvg2p83fy6panstngkjakt -decimals = 18 - -[injpad] -peggy_denom = factory/inj17yqt8f5677hnxpv5gxjt7uwdrjxln0qhhfcj9j/injpad -decimals = 6 - -[injshiba] -peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/injshiba -decimals = 6 - -[jack11] -peggy_denom = factory/inj17kgavlktg96nf6uhpje6sutjp60jj8wppx3y3p/jack11 -decimals = 6 - -[jack12] -peggy_denom = factory/inj1maj952d7h8ecseelsur6urhm7lwwnrasuug4y0/jack12 -decimals = 6 - -[jim] -peggy_denom = inj13f6gll3666sa2wnj978lhrvjv2803tu5q8kuqd -decimals = 18 - -[jomanji] -peggy_denom = inj1gy76l9p5ar4yqquk7mqqlmpygxtluu2nf7mt4c -decimals = 18 - -[kami] -peggy_denom = factory/inj1hyjg677dqp3uj3dh9vny874k2gjr5fuvdjjzk7/kami -decimals = 6 - -[keke] -peggy_denom = inj1037seqrvafhzmwffe2rqgcad3akh935d5p3kgk -decimals = 6 - -[ken] -peggy_denom = inj19ajm97y78hpqg5pxwy4ezyf437mccy57k4krh7 -decimals = 6 - -[kimo] -peggy_denom = inj1czegjew4z5tfq8mwljx3qax5ql5k57t38zpkg5 -decimals = 18 - -[kis] -peggy_denom = factory/inj1ygeap3ypldmjgl22al5rpqafemyw7dt6k45n8r/kis -decimals = 0 - -[kishida] -peggy_denom = factory/inj1gt60kj3se0yt8pysnygc3e0syrkrl87k4qc3mz/kishida -decimals = 6 - -[koINJ] -peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/koinj -decimals = 6 - -[ksdhjkahkjhaskj] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ksdhjkahkjhaskj -decimals = 6 - -[localstorage] -peggy_denom = inj17auxme00fj267ccyhx9y9ue4tuwwuadgxshl7x -decimals = 18 - -[lootbox1] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 -decimals = 0 - -[lord] -peggy_denom = inj1xysu0n9sv5wv6aeygdegywz9qkq0v77culynum -decimals = 18 - -[lsdSHARK] -peggy_denom = ibc/E62FEA8924CD79277BD5170852416E863466FB39A6EC0E6AE95E98D6A487AE5F -decimals = 6 - -[mBERB] -peggy_denom = factory/inj168casv2pd0qhjup5u774qeyxlh8gd3g77yneuy/mBERB -decimals = 6 - -[massi] -peggy_denom = inj12n44z9mk0vmga7kv8gysv5w7tgdh6zh4q6t8r7 -decimals = 18 - -[mcNINJA] -peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/mcNINJA -decimals = 6 - -[meme2] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/meme2 -decimals = 6 - -[memegod] -peggy_denom = factory/inj18fql07frqe0lkvk6ajmpq4smk3q6c0f0qa5yfw/memegod -decimals = 6 - -[memej] -peggy_denom = factory/inj1g5aagfv2t662prxul8ynlzsfmtcx8699w0j7tz/memej -decimals = 6 - -[milkTIA] -peggy_denom = ibc/C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71 -decimals = 6 - -[miniSHROOM] -peggy_denom = inj1mcdhsphq3rkyg9d0sax0arm95tkac4qxdynlkz -decimals = 6 - -[miniSUSHI] -peggy_denom = inj1ex7an3yw5hvw7a6rzd8ljaq9vfd4vc0a06skdp -decimals = 6 - -[mininonja] -peggy_denom = inj1zwhu648g5zm9dqtxfaa6vcja56q7rqz4vff988 -decimals = 18 - -[minions] -peggy_denom = inj1tq0fhr0p05az32c0ehx425c63xrm6ajhak2zpw -decimals = 18 - -[mockBERB] -peggy_denom = inj1s4fua53u7argmq3npm0x9lnm8hkamjjtwayznf -decimals = 6 - -[mycelium] -peggy_denom = factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/mycelium -decimals = 6 - -[nATOM] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 -decimals = 6 - -[nINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf -decimals = 18 - -[nTIA] -peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv -decimals = 6 - -[nUSD] -peggy_denom = factory/inj18nm3q7r2rckklp7h8hgfzu2dlc20sftvd2893w/nUSD -decimals = 18 - -[nUSDT] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s -decimals = 6 - -[nWETH] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt -decimals = 18 - -[needle] -peggy_denom = inj145ueepjcu9xd42vkwvvwvqa3fvk0q66rnzdkxn -decimals = 6 - -[neiroINJ] -peggy_denom = inj1fxxwg8cnh39ws2f0xrwx5rt2k8kmny5dqv3n08 -decimals = 18 - -[nibba] -peggy_denom = inj1rk68f3a4kvcrt2nra6klz6npealww2g2avknuj -decimals = 18 - -[ninga] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninga -decimals = 6 - -[nipniptestest] -peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/nipniptestest -decimals = 6 - -[nodevnorug] -peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/NODEVNORUG -decimals = 6 - -[nonjainu] -peggy_denom = factory/inj1gxq2pk3ufkpng5s4qc62rcq5rssdxsvk955xdw/nonjainu -decimals = 6 - -[nonjaktif] -peggy_denom = factory/inj1x6u4muldaqn2cm95yn7g07z5wwvpd6d6rpt4da/nonjaktif -decimals = 6 - -[notDOJO] -peggy_denom = inj1n2l9mq2ndyp83u6me4hf7yw76xkx7h792juksq -decimals = 6 - -[ntx] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ntx -decimals = 6 - -[nub] -peggy_denom = inj1jaahfnl4zf5azy8x20kw43j2qv2vlhavecy9u5 -decimals = 8 - -[oneCENT] -peggy_denom = inj12fdu6zgd9z5pv9cm8klv9w98ue7hs25z7uukdg -decimals = 6 - -[ooga] -peggy_denom = inj1rysrq2nzm0fz3h7t25deh5wetlqz4k9rl06guu -decimals = 18 - -[opps] -peggy_denom = inj1wazl9873fqgs4p7rjvn6a4qgqfdafacz9jzzjd -decimals = 18 - -[pATOM-30Sep2024] -peggy_denom = ibc/368C7971AACA45D4E15D6C6299E22EE2FD2CA772C8CE1635B6498E62DFAA8E08 -decimals = 6 - -[pATOM-31Dec2024] -peggy_denom = ibc/57C2F2AD1A2FE89E7CF82D3234CAC94029ABADC04949269C5994C641C161CDDC -decimals = 6 - -[pATOM-31Dec2025] -peggy_denom = ibc/DFC8484D05ABEED6336C48468E9B03FFF808F9BD2F01985DBFADD98CA4099F33 -decimals = 6 - -[pAUUU-30Sep2024] -peggy_denom = ibc/49ADCAC494A9E9FE1EB1FE6FE5E8F32AA54F38A50DDDA3292DB4DCC0623893D7 -decimals = 6 - -[pAUUU-31Dec2024] -peggy_denom = ibc/7AA47960D29638950C9A96CD87D19883D325876A8AFE0B5367B26B1ABD290D04 -decimals = 6 - -[pAUUU-31Dec2025] -peggy_denom = ibc/BD80CB79FCE0BDD1B23E0275558628CC34D40849583E5B5C3C4059BF25E67B44 -decimals = 6 - -[pINJ-30Sep2024] -peggy_denom = ibc/D0F3CC8B6BAB6B597F02BB7F3EDEB3581AC4EA4302CAE673727E4BBBE076EB72 -decimals = 6 - -[pINJ-31Dec2024] -peggy_denom = ibc/338F1E8716BC3A62E6AF0C1C9D89CD165BA845EB07FEF6089E985D097CA650DA -decimals = 6 - -[pINJ-31Dec2025] -peggy_denom = ibc/ECB1978C49F5A56455C98BF3ED5898B352F09237F1591689E4BE9131A0D7C503 -decimals = 6 - -[pLUNA-30Sep2024] -peggy_denom = ibc/DFCDD25BA6D1AF26487B57FE7C3CEDE136D778A313B3BD5F8908C6FDC9A2D6F9 -decimals = 6 - -[pLUNA-31Dec2024] -peggy_denom = ibc/8D76730A902BEA1C1ED330F3BF367EF633F861BEBA66D68EF09D474C007F3737 -decimals = 6 - -[pLUNA-31Dec2025] -peggy_denom = ibc/0AD7F861767F69C332039D9AC97138A8FB8C58EE743C7827EC78A71F5B99C072 -decimals = 6 - -[pOSMO-30Sep2024] -peggy_denom = ibc/705F080D0191A6937EEAFD050D8FD03BE819790240D4F447F445716F22F887C6 -decimals = 6 - -[pOSMO-31Dec2024] -peggy_denom = ibc/102FF3A6E5585EC3A89B7C1611ADB27C9DD33049EC587A91488BDAF084F92854 -decimals = 6 - -[pOSMO-31Dec2025] -peggy_denom = ibc/DC05A4336A8321FA0F30C6FA0FD0078362358BF8A6CF181D816FE4962848CCA3 -decimals = 6 - -[paam] -peggy_denom = factory/inj1hg6n7nfhtevnxq87y2zj4xf28n4p38te6q56vx/paam -decimals = 6 - -[pdATOM-30Jun2025] -peggy_denom = ibc/A6398B01F40FBC297443EC45755660E4A34A7071FA0BDF95AF630E3C5AEAE30F -decimals = 6 - -[pdATOM-31Dec2024] -peggy_denom = ibc/FB19C7ABF25489E678C4D065F4FE20AA5889DB46E726924909D732948000B329 -decimals = 6 - -[pdATOM-31Dec2025] -peggy_denom = ibc/24161A7A6EF6597D81B0C7C8C66943127448B652484338C901F5B23A74406E1D -decimals = 6 - -[peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B] -peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B -decimals = 18 - -[peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B] -peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B -decimals = 4 - -[peggy0x43123e1d077351267113ada8bE85A058f5D492De] -peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De -decimals = 6 - -[peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32] -peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 -decimals = 18 - -[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] -peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 -decimals = 6 - -[peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] -peggy_denom = peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 -decimals = 18 - -[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] -peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 -decimals = 10 - -[peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53] -peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 -decimals = 5 - -[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] -peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 -decimals = 18 - -[peipei] -peggy_denom = inj1rd0ympknmutwvvq8egl6j7ukjyqeh2uteqyyx7 -decimals = 6 - -[pepe] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k -decimals = 18 - -[peresident] -peggy_denom = inj1txs2fdchzula47kt7pygs7fzxfjmp73zhqs4dj -decimals = 18 - -[pigs] -peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS -decimals = 6 - -[popINJay] -peggy_denom = factory/inj1rn2snthhvdt4m62uakp7snzk7melj2x8nfqkx5/popINJay -decimals = 6 - -[pstDYDX-30Sep2024] -peggy_denom = ibc/F9D2FBA8C2795DC27C4578A190DFB0608A18427F0B322BC90A339F5EA7F66D77 -decimals = 18 - -[pstDYDX-31Dec2024] -peggy_denom = ibc/730220B27C6C740A9A4535DC99D57E4ADE81E48107C428C1541F3AAE75C7F769 -decimals = 18 - -[pstDYDX-31Dec2025] -peggy_denom = ibc/1062574A328559A77CBF08D5C9C1A8C9F3F7583AC5769CCC81A7C239D6D1E7E6 -decimals = 18 - -[pstTIA-30Sep2024] -peggy_denom = ibc/7A18E05E78C867C18A593066E830BE95B789F643934FB58EAF77A00D0451591B -decimals = 6 - -[pstTIA-31Dec2024] -peggy_denom = ibc/4D68207899DB3A8AC13322871EEC3F35DE9EEF1EB4AD1E269B563C043425287C -decimals = 6 - -[pstTIA-31Dec2025] -peggy_denom = ibc/76BAC47E42CF4021CAA3E2341F65958B7FFC0719CB42C1630C4D61C229D68A24 -decimals = 6 - -[pumping] -peggy_denom = inj1rts275s729dqcf7htz4hulrerpz85leufsh8xl -decimals = 8 - -[qcAQLA] -peggy_denom = ibc/F33465130E040E67BFEA9BFF0F805F6B08BD49F87CC6C02EEBEB6D4E2D94FDCE -decimals = 6 - -[qcDYDX] -peggy_denom = ibc/8C2EAF8A02B654046964C0A2CDEF6167F9C961700EA830A50F57B55D42137C73 -decimals = 18 - -[qcFUZN] -peggy_denom = ibc/5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548 -decimals = 6 - -[qcKUJI] -peggy_denom = ibc/B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D -decimals = 6 - -[qcMNTA] -peggy_denom = ibc/F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493 -decimals = 6 - -[rBAGGIO] -peggy_denom = inj13z8pahkrcu2zk44el6lcnw9z3amstuneay5efs -decimals = 6 - -[rETH] -peggy_denom = ibc/8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD -decimals = 18 - -[rFUZN] -peggy_denom = ibc/F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24 -decimals = 6 - -[rKUJI] -peggy_denom = ibc/57FA3F4E56F0700CA3DFDF1CD67430244224128FE4A82C351D798CA356215516 -decimals = 6 - -[ra] -peggy_denom = factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/ra -decimals = 6 - -[rat] -peggy_denom = factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/rat -decimals = 9 - -[rdl] -peggy_denom = inj1q6khaa8av7pet763qmz0ytvgndl6g4sn37tvs5 -decimals = 18 - -[roba] -peggy_denom = inj1gn3py3euhfunvt5qe8maanzuwzf8y2lm2ysy24 -decimals = 18 - -[sINJ] -peggy_denom = inj162hf4hjntzpdghq2c5e966g2ldd83jkmqcvqgq -decimals = 6 - -[sUSDE] -peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 -decimals = 18 - -[santakurosu] -peggy_denom = factory/inj1dzd34k9x3pt09pc68emp85usgeyk33qn9a4euv/santakurosu -decimals = 6 - -[sclaleX Finance] -peggy_denom = inj1x04gt4mtdepdjy5j3dk22g8mymw3jgqkzrm0fc -decimals = 18 - -[scorpion] -peggy_denom = factory/inj1a37dnkznmek8l5uyg24xl5f7rvftpvqsduex24/scorpion -decimals = 6 - -[sei] -peggy_denom = sei -decimals = 6 - -[sentinel] -peggy_denom = inj172tsvz4t82m28rrthmvatfzqaphen66ty06qzn -decimals = 18 - -[seven] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/seven -decimals = 6 - -[sfrxETH] -peggy_denom = ibc/E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730 -decimals = 18 - -[share1] -peggy_denom = share1 -decimals = 18 - -[share10] -peggy_denom = share10 -decimals = 18 - -[share11] -peggy_denom = share11 -decimals = 18 - -[share15] -peggy_denom = share15 -decimals = 18 - -[share16] -peggy_denom = share16 -decimals = 18 - -[share18] -peggy_denom = share18 -decimals = 18 - -[share2] -peggy_denom = share2 -decimals = 18 - -[share20] -peggy_denom = share20 -decimals = 18 - -[share24] -peggy_denom = share24 -decimals = 18 - -[share25] -peggy_denom = share25 -decimals = 18 - -[share26] -peggy_denom = share26 -decimals = 18 - -[share27] -peggy_denom = share27 -decimals = 18 - -[share28] -peggy_denom = share28 -decimals = 18 - -[share29] -peggy_denom = share29 -decimals = 18 - -[share3] -peggy_denom = share3 -decimals = 18 - -[share30] -peggy_denom = share30 -decimals = 18 - -[share31] -peggy_denom = share31 -decimals = 18 - -[share32] -peggy_denom = share32 -decimals = 18 - -[share33] -peggy_denom = share33 -decimals = 18 - -[share34] -peggy_denom = share34 -decimals = 18 - -[share35] -peggy_denom = share35 -decimals = 18 - -[share36] -peggy_denom = share36 -decimals = 18 - -[share37] -peggy_denom = share37 -decimals = 18 - -[share38] -peggy_denom = share38 -decimals = 18 - -[share39] -peggy_denom = share39 -decimals = 18 - -[share4] -peggy_denom = share4 -decimals = 18 - -[share40] -peggy_denom = share40 -decimals = 18 - -[share41] -peggy_denom = share41 -decimals = 18 - -[share42] -peggy_denom = share42 -decimals = 18 - -[share43] -peggy_denom = share43 -decimals = 18 - -[share44] -peggy_denom = share44 -decimals = 18 - -[share45] -peggy_denom = share45 -decimals = 18 - -[share46] -peggy_denom = share46 -decimals = 18 - -[share47] -peggy_denom = share47 -decimals = 18 - -[share48] -peggy_denom = share48 -decimals = 18 - -[share49] -peggy_denom = share49 -decimals = 18 - -[share5] -peggy_denom = share5 -decimals = 18 - -[share50] -peggy_denom = share50 -decimals = 18 - -[share51] -peggy_denom = share51 -decimals = 18 - -[share52] -peggy_denom = share52 -decimals = 18 - -[share53] -peggy_denom = share53 -decimals = 18 - -[share54] -peggy_denom = share54 -decimals = 18 - -[share55] -peggy_denom = share55 -decimals = 18 - -[share56] -peggy_denom = share56 -decimals = 18 - -[share57] -peggy_denom = share57 -decimals = 18 - -[share58] -peggy_denom = share58 -decimals = 18 - -[share59] -peggy_denom = share59 -decimals = 18 - -[share6] -peggy_denom = share6 -decimals = 18 - -[share60] -peggy_denom = share60 -decimals = 18 - -[share61] -peggy_denom = share61 -decimals = 18 - -[share62] -peggy_denom = share62 -decimals = 18 - -[share63] -peggy_denom = share63 -decimals = 18 - -[share64] -peggy_denom = share64 -decimals = 18 - -[share65] -peggy_denom = share65 -decimals = 18 - -[share66] -peggy_denom = share66 -decimals = 18 - -[share67] -peggy_denom = share67 -decimals = 18 - -[share68] -peggy_denom = share68 -decimals = 18 - -[share69] -peggy_denom = share69 -decimals = 18 - -[share70] -peggy_denom = share70 -decimals = 18 - -[share71] -peggy_denom = share71 -decimals = 18 - -[share72] -peggy_denom = share72 -decimals = 18 - -[share8] -peggy_denom = share8 -decimals = 18 - -[share9] -peggy_denom = share9 -decimals = 18 - -[shark] -peggy_denom = inj13y7ft3ppnwvnwey2meslv3w60arx074vlt6zwl -decimals = 18 - -[shiba] -peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba -decimals = 6 - -[shromin] -peggy_denom = inj1x084w0279944a2f4hwcr7hay5knrmuuf8xrvvs -decimals = 6 - -[shroomin] -peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 -decimals = 18 - -[shuriken] -peggy_denom = inj1afr2er5nrevh90nywpka0gv8ywcx3fjhlpz4w3 -decimals = 6 - -[smokingNONJA] -peggy_denom = factory/inj1907wkvrn9q256pulcc6n4dkk9425d2rd8t2qwt/smokingNONJA -decimals = 6 - -[socks] -peggy_denom = factory/inj1an64kx7fr7fgyrpsuhlzjmuw4a5mmwnwyk3udq/socks -decimals = 6 - -[solana.USDC.wh] -peggy_denom = ibc/FF3CF830E60679530072C4787A76D18E81C04F9725C3523F941DF0D8B7EB24F0 -decimals = 6 - -[space candy for degens] -peggy_denom = inj1qt78z7xru0fcks54ca56uehuzwal026ghhtxdv -decimals = 6 - -[spore] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore -decimals = 6 - -[spuun] -peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/spuun -decimals = 6 - -[sqATOM] -peggy_denom = ibc/C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6 -decimals = 6 - -[sqBTC] -peggy_denom = ibc/81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23 -decimals = 6 - -[sqOSMO] -peggy_denom = ibc/AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916 -decimals = 6 - -[sqTIA] -peggy_denom = ibc/D2098712E1B9398AD8D05966A5766D4C32137D9A06CF839376221176CFD9AF0B -decimals = 6 - -[squid] -peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/squid -decimals = 6 - -[stATOM] -peggy_denom = ibc/A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B -decimals = 6 - -[stBAND] -peggy_denom = ibc/95A65C08D2A7BFE5630E1B7FDCD89B2134D1A5ACE0C5726D6060A992CBAFA504 -decimals = 6 - -[stCMDX] -peggy_denom = ibc/0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6 -decimals = 6 - -[stDYDX] -peggy_denom = ibc/9B324282388BEBD0E028749E9E10627BA2BA13ADBE7FF04274F2CFBDD271BA4B -decimals = 18 - -[stDYDX-BOOST-LP] -peggy_denom = ibc/2D179C66414C7C5A842FE73D19871CE8205F04B0B6973066859B67DC9509959E -decimals = 18 - -[stDYDX-YIELD-LP] -peggy_denom = ibc/A5E7901DFB03C4341C0798FD632C16689987014AE1BEBDD14436599A61895C3E -decimals = 18 - -[stDYM] -peggy_denom = ibc/7F4BE10120E17C0F493124FFEDC1A3397B8BECEA83701CE8DC8D8B1E3A2A7763 -decimals = 18 - -[stETH] -peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 -decimals = 18 - -[stEVMOS] -peggy_denom = ibc/75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C -decimals = 18 - -[stIBCX] -peggy_denom = ibc/0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419 -decimals = 6 - -[stISLM] -peggy_denom = ibc/813891E20F25E46CF9DE9836EB7F34BCABA45927754DDE8C0E74FE694968F8C2 -decimals = 18 - -[stJUNO] -peggy_denom = ibc/580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB -decimals = 6 - -[stLUNA] -peggy_denom = ibc/E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08 -decimals = 6 - -[stOSMO] -peggy_denom = ibc/6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD -decimals = 6 - -[stSAGA] -peggy_denom = ibc/7C9A65FC985CCD22D0B56F1CEB2DDA3D552088FCE17E9FDF6D18F49BEDBEBF97 -decimals = 6 - -[stSOMM] -peggy_denom = ibc/9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037 -decimals = 6 - -[stSTARS] -peggy_denom = ibc/DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB -decimals = 6 - -[stTIA] -peggy_denom = ibc/32F6EDA3E2B2A7F9C4A62F11935CF5D25948372A5A85281D7ABB9A2D0F0B7182 -decimals = 6 - -[stTIA-BOOST-LP] -peggy_denom = ibc/4D510423D9EC56204AE3CC9B64DE9A61DB0EEA7B76C8F54F5F253340111FDDD9 -decimals = 6 - -[stTIA-YIELD-LP] -peggy_denom = ibc/424A6AD4B8DB6CE842FC02B0A3510B57D40F27F291FB2F1501D94444AADA8739 -decimals = 6 - -[stUMEE] -peggy_denom = ibc/FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB -decimals = 6 - -[stkATOM] -peggy_denom = ibc/B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201 -decimals = 6 - -[stkDYDX] -peggy_denom = ibc/93948A8FB433293F1C89970EA4596C4E8D4DD7E9F041058C7C47F0760F7C9693 -decimals = 18 - -[stkHUAHUA] -peggy_denom = ibc/7DC72C8C753E145A627515EC6DFFD23CDED27D443C79E4B8DB2B1AB1F18B6A66 -decimals = 6 - -[stkOSMO] -peggy_denom = ibc/F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1 -decimals = 6 - -[stkSTARS] -peggy_denom = ibc/77F4E05BDB54051FAF0BE956FCE83D8E0E4227DD53F764BB32D8ECF685A93F55 -decimals = 6 - -[stkXPRT] -peggy_denom = ibc/6E5EEA7EC6379417CA5A661AD367753359607BD74A58FD4F60E8D26254FB8D12 -decimals = 6 - -[storage] -peggy_denom = inj1dzatga5p63z2rpfqx7vh4fp6as8y46enkrfst0 -decimals = 18 - -[subs] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/subs -decimals = 6 - -[super] -peggy_denom = inj1fq8mjddyvkas32ltzzaqru6nesse2ft8xnn3vs -decimals = 18 - -[symbol] -peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/inj-test -decimals = 6 - -[tBTC] -peggy_denom = ibc/CDF0747148A7E6FCF27143312A8A5B7F9AEF0EF8BD4FA4381815A5EDBFC9B87E -decimals = 8 - -[tama] -peggy_denom = factory/inj18feu0k5w2r0jsffgx8ue8pfj2nntfucaj0dr8v/tama -decimals = 6 - -[teclub] -peggy_denom = inj125hp6pmxyajhldefkrcmc87lx08kvwtag382ks -decimals = 18 - -[terever] -peggy_denom = inj14tepyvvxsn9yy2hgqrl4stqzm2h0vla9ee8ya9 -decimals = 18 - -[test] -peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/test -decimals = 6 - -[test1] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/test1 -decimals = 6 - -[test2] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test2 -decimals = 6 - -[test3] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test3 -decimals = 6 - -[test4] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test4 -decimals = 6 - -[test5] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test5 -decimals = 6 - -[test6] -peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test6 -decimals = 6 - -[testBBL] -peggy_denom = factory/inj1fkm7sqmnzt9779unr9wnygqkq4f5t5s7tr46mz/testBBL -decimals = 0 - -[testclub] -peggy_denom = inj15v7mu4ywf8rvy5wk9ptrq7we32e3q0shkhuhg8 -decimals = 18 - -[testclubss] -peggy_denom = inj1r0rkq2v70lur23jczassuqu5qwc5npcjpp3e8c -decimals = 18 - -[testdaojo] -peggy_denom = inj174v6mke336kqzf7rl7ud43ddc4vsqh2q4mnl6t -decimals = 18 - -[testooo] -peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/testooo -decimals = 6 - -[testt] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/testt -decimals = 6 - -[testtesttest] -peggy_denom = inj1w4clv0alsnt5ez2v7dl9yjzmg7mkfzjs0cf7cz -decimals = 18 - -[testuuu] -peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/testuuu -decimals = 6 - -[tet1w3112] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/tet1w3112 -decimals = 6 - -[toby] -peggy_denom = factory/inj1temu696g738vldkgnn7fqmgvkq2l36qsng5ea7/toby -decimals = 6 - -[token] -peggy_denom = inj1l2juxl35xedtneaq2eyk535cw5hq4x3krjqsl3 -decimals = 6 - -[tonc] -peggy_denom = inj1aqtnpa0ghger4mlz4u46cl48rr82jes043pugz -decimals = 18 - -[tone] -peggy_denom = inj1rgfquap6gahcdekg4pv6ru030w9yaph7nhcp9g -decimals = 18 - -[tonf] -peggy_denom = inj180rq0xetfzwjquxg4mukc4qw0mzprkhetrygv5 -decimals = 18 - -[toto] -peggy_denom = inj17dpjwzzr05uvegj4hhwtf47y0u362qgm6r3f5r -decimals = 18 - -[tpixdog] -peggy_denom = inj17mxrt7ywxgjh4lsk8kqjgqt0zc6pzj5jwd5xt7 -decimals = 18 - -[tremp] -peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tremp -decimals = 6 - -[trs] -peggy_denom = factory/inj1h0w5sj0n07cugus02xfywaghvxxh8pp3e9egs6/trs -decimals = 12 - -[trump] -peggy_denom = inj1a6d54f5f737e8xs54qpxhs9v5l233n6qy9kyud -decimals = 18 - -[tst] -peggy_denom = inj1ukx6qs0guxzcf0an80vw8q88203cl75cey67lw -decimals = 18 - -[tsty] -peggy_denom = factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/tsty -decimals = 6 - -[tve] -peggy_denom = inj1y208239ua6mchwayw8s8jfnuyqktycqhk6tmhv -decimals = 18 - -[uLP] -peggy_denom = factory/inj1dewkg7z8vffqxk7jcer6sf9ttnx54z0c6gfjw6/uLP -decimals = 6 - -[ulvn] -peggy_denom = factory/osmo1mlng7pz4pnyxtpq0akfwall37czyk9lukaucsrn30ameplhhshtqdvfm5c/ulvn -decimals = 6 - -[unknown] -peggy_denom = unknown -decimals = 0 - -[wBTC] -peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku -decimals = 18 - -[wETH] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc -decimals = 8 - -[wLIBRA] -peggy_denom = ibc/FCCACE2DFDF08422A050486E09697AE34D4C620DC51CFBEF59B60AE3946CC569 -decimals = 6 - -[wUSDM] -peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 -decimals = 18 - -[wen] -peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wen -decimals = 6 - -[wera] -peggy_denom = factory/inj1j3c89aqgw9g4sqwtxzldslqxla4d5a7csgaxgq/wera -decimals = 6 - -[wif] -peggy_denom = wif -decimals = 6 - -[winston] -peggy_denom = inj128kf4kufhd0w4zwpz4ug5x9qd7pa4hqyhm3re4 -decimals = 6 - -[wstETH] -peggy_denom = ibc/1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16 -decimals = 18 - -[wynn] -peggy_denom = factory/inj1mmn3lqt5eahuu7cmpcjme6lj0xhjlhj3qj4fhh/wynn -decimals = 6 - -[x69] -peggy_denom = factory/inj1dkwqv24lyt94ukg65qf4xc8tj8wsu7x9p76enk/x69 -decimals = 6 - -[xASTRO] -peggy_denom = ibc/11B5974E9592AFEDBD74F08BE92A06A626CE01BEB395090C1567ABEE551B04C0 -decimals = 6 - -[xCC] -peggy_denom = inj1vnf98sw93chhpagtk54pr4z5dq02nxprhnhnm6 -decimals = 8 - -[xMNTA] -peggy_denom = ibc/0932033C2B34411381BB987F12539A031EF90CC7F818D65C531266413249F7DB -decimals = 6 - -[xNinja.Tech Token] -peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar -decimals = 18 - -[xSEUL] -peggy_denom = ibc/CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F -decimals = 6 - -[xUSK] -peggy_denom = ibc/F8E646585298F0F0B4CF0F8EC0978CEB10E8092389E7866BFD9A5E46BE9542A6 -decimals = 6 - -[xxx] -peggy_denom = ibc/C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4 -decimals = 10 - -[yATOM-30Sep2024] -peggy_denom = ibc/7A994E4C7A02029E5FDA02F927787250F2BBCCCBC7B13A41009D2C548F3B234E -decimals = 6 - -[yATOM-31Dec2024] -peggy_denom = ibc/2504C9CFD5F0CF8220A83DF1437E83EFB1433D7B26C8B887AF5F7B1CB1C8CD47 -decimals = 6 - -[yATOM-31Dec2025] -peggy_denom = ibc/9E2194238758130F29211AAFB963FE69CA40DB065DAF8B72BB049F61B56F4BBE -decimals = 6 - -[yAUUU-30Sep2024] -peggy_denom = ibc/A0ADC985CD3BD5F76028433E6A1A694CAFC6859670992995FDCDF32B5AEB2340 -decimals = 6 - -[yAUUU-31Dec2024] -peggy_denom = ibc/1DD3F7C436B23B7105E1C92434F481162F8CDE2D67DC4F7F57431B4DA933296A -decimals = 6 - -[yAUUU-31Dec2025] -peggy_denom = ibc/0B0FDB379E84CCA18A6468E75737F4F3DEDD099CC298201DF089E2B2947410A0 -decimals = 6 - -[yFUZN] -peggy_denom = ibc/71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A -decimals = 6 - -[yINJ-30Sep2024] -peggy_denom = ibc/E912C340250ABAFDAAC0E76DF6ACFF20A33665794A2C2F03C19DACF51EDA19CF -decimals = 6 - -[yINJ-31Dec2024] -peggy_denom = ibc/2DFF81D4E81995579791F19D722697570CC1331ADF2F08FBEA8A76D51FCEC6E8 -decimals = 6 - -[yINJ-31Dec2025] -peggy_denom = ibc/39793B014139A056461F0E4444EE3E2F81F7846CF1AEA0EEBBE49C3667DC1F7A -decimals = 6 - -[yLUNA-30Sep2024] -peggy_denom = ibc/812CF63AC61F8C618801672103AB5A5651CE83FA2C5187ABD71D4181B83F21F0 -decimals = 6 - -[yLUNA-31Dec2024] -peggy_denom = ibc/8DC9F05FE9A3A1FD8244715ADA0EC9820FFA6CAA9255BC6E9A6A8FC41C2FC97E -decimals = 6 - -[yLUNA-31Dec2025] -peggy_denom = ibc/DBE8CB115CC6244C79DB9AC9C37364CE817E5D6B6DB4A609C3C6AE5B71786E3B -decimals = 6 - -[yOSMO-30Sep2024] -peggy_denom = ibc/C1C6E4CA01E5ADEF91E90E08B4B021FD63791C5D2AD576C495557A5FC950C1D4 -decimals = 6 - -[yOSMO-31Dec2024] -peggy_denom = ibc/6D2CCF76FC0DEA11AD471E28B9F0EC6EEB3ADEC26FC565B5695351A5635A73B7 -decimals = 6 - -[yOSMO-31Dec2025] -peggy_denom = ibc/B8C323AF887823F6F98576A8D9C861E7ACAA5BA661E61B3A841CCAC442EF0CE7 -decimals = 6 - -[ydATOM-30Jun2025] -peggy_denom = ibc/E54A33A3741EEB0834D8F3A24560D8CF36ACC04642E080C0343D70D3792F36C2 -decimals = 6 - -[ydATOM-31Dec2024] -peggy_denom = ibc/96BAA9DF835DE5C5BC5731D4CC5F881386211B230065B508B9C53FE34BFCAF51 -decimals = 6 - -[ydATOM-31Dec2025] -peggy_denom = ibc/A2473F5CB7E6A6489B15DE342D22935F403641722112A6360C82509297C564FE -decimals = 6 - -[ystDYDX-30Sep2024] -peggy_denom = ibc/8400E77857AD6BD9910D57409970BC61A6E6B3BDBBA284AF931F14304012253E -decimals = 6 - -[ystDYDX-31Dec2024] -peggy_denom = ibc/C31E802B564C5DCF8DC819118022868AB214CD21F1FCD08ECCD78BEB99B466A0 -decimals = 6 - -[ystDYDX-31Dec2025] -peggy_denom = ibc/0ADE8BDF371245DC02CD423DEA1D50C7B36818218592E11EBE18D36D0F73BEBB -decimals = 6 - -[ystTIA-30Sep2024] -peggy_denom = ibc/E826B3323727FFA2E9A960AF168582E9AD20404B021C0A6EDC9AFB3976FB559D -decimals = 6 - -[ystTIA-31Dec2024] -peggy_denom = ibc/5EBFD08C04D545428D6D6722908211C90135CCC20E93195BD78D70B6F9DA2660 -decimals = 6 - -[ystTIA-31Dec2025] -peggy_denom = ibc/A329F81812E746539897210B25B917A249F7DDB05D9EEC67741BE621CA8DACAD -decimals = 6 - -[zinjer] -peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/zinjer -decimals = 6 diff --git a/pyinjective/denoms_testnet.ini b/pyinjective/denoms_testnet.ini deleted file mode 100644 index 83d80eb6..00000000 --- a/pyinjective/denoms_testnet.ini +++ /dev/null @@ -1,13415 +0,0 @@ -[0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe] -description = 'Testnet Spot INJ/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0] -description = 'Testnet Spot APE/USDT' -base = 0 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.000000000000000000001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 1000000000000000 -min_notional = 0 - -[0xabed4a28baf4617bd4e04e4d71157c45ff6f95f181dee557aae59b4d1009aa97] -description = 'Testnet Spot INJ/APE' -base = 18 -quote = 0 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 1000 -min_quantity_tick_size = 1000000000000000000 -min_display_quantity_tick_size = 1 -min_notional = 0 - -[0xa97182f11f1aa5339c7f4c3fe3cc1c69b39079f11b864c86d912956c5c2db75c] -description = 'Testnet Spot WETH/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x1c315bd2cfcc769a8d8eca49ce7b1bc5fb0353bfcb9fa82895fe0c1c2a62306e] -description = 'Testnet Spot WBTC/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x491ee4fae7956dd72b6a97805046ffef65892e1d3254c559c18056a519b2ca15] -description = 'Testnet Spot ATOM/USDT' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xf88816466c4bdd77b3ac5d0eaf6c1d2547b2aa48a0ab5bffe81502d642209262] -description = 'Testnet Spot WBTC/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[0x5fbd22eb44d9db413513f99ceb9a5ac4cc5b5e6893d5882877391d6927927e6d] -description = 'Testnet Spot USDC/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x37c5ffe6d1c2318a7b9efde1e82c1186d688c1c4a1ad41da9a0878d353f1c88b] -description = 'Testnet Spot USDT/USDC' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x9354b951718f87e1ffcc11800ee5890eef45a7f05884e9a604722eb8a907d07d] -description = 'Testnet Spot INJ/wBTC' -base = 18 -quote = 8 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.00001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x2d92a74f1526c600c0913edd2c38e3ec2ffc5e458842f2cf83545528d5e51d0d] -description = 'Testnet Spot INJ/wETH' -base = 18 -quote = 8 -min_price_tick_size = 0.00000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xab5811fe4fa18b221216f01891775313310cfe85ea749f31bd0d2c58754710f4] -description = 'Testnet Spot INJ/wETH' -base = 8 -quote = 8 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 10000 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x4ca031b7c8504fa2a8ee2fe6a47b78c7a8e01975c8c28e05029e07b2c5ec9ef5] -description = 'Testnet Spot INJ/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.0000000000000001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 100000000000000 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xf3298cc12f12945c9da877766d320e4056e5dfd7d3c38208a0ef2f525f7ca0a2] -description = 'Testnet Spot APE/INJ' -base = 0 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.000000000000000000001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 1000000000000000 -min_notional = 0 - -[0x263f7922659fa5b0ecb756a2dd8bf8e2aab9fe8d9ce375f7075d6e6d87b6f95d] -description = 'Testnet Spot INJ' -base = 8 -quote = 18 -min_price_tick_size = 100000000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 10000000 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[0xba7096c2c49b845e6bfc8317e88831c15786bee3149836dde55481abd5ef040b] -description = 'Testnet Spot MITOTEST1/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x21d4ee074f37f2a310929425e58f69850fca9f734d292bfc5ee48d3c28ea1c09] -description = 'Testnet Spot TEST2/INJ' -base = 6 -quote = 18 -min_price_tick_size = 100000000 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xf2ced33ef12a73962be92686503450cc4966feeb9cf6c809f4dc43acad5d7efb] -description = 'Testnet Spot TEST2/USDT' -base = 6 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xf02752c2c87728af7fd10a298a8a645261859eafd0295dcda7e2c5b45c8412cf] -description = 'Testnet Spot stINJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x8a36130af747b111dc6a5bd5648974d9d973a72d8a17dad9071f80916cb8850d] -description = 'Testnet Spot UPHOTON/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000000000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.0000001 -min_display_quantity_tick_size = 0.0000000000001 -min_notional = 0 - -[0xd7a9fbff264246244d6e4afd7ec926aedc4c8f49118967f241126f47c5b44177] -description = 'Testnet Spot PROJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x686d143de4268cac00ff6a7e9cb713484dadf40a5c993e166f260ca8081bc942] -description = 'Testnet Spot MT1/USDT' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0x5777730c1ab6f6b1e465d41778562ada8c136c0f11ffbbdb2faa7a5bbde5d5a5] -description = 'Testnet Spot PROJX/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x876a81e382dc7a4b0acbae38fddd66a8fd53f7064f008c3716a13ad857bcf013] -description = 'Testnet Spot PROJX/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x382a1cf37bcdbccd5698753154335fa56651d64b88b054691648710c8dcf43e0] -description = 'Testnet Spot ZEN/INJ' -base = 0 -quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.000000000000000000001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 10000000000000 -min_notional = 0 - -[0x40c7fcb089fc603f26c38a5a5bc71f27b0e33a92c2b76801bd9b2ac592d86305] -description = 'Testnet Spot ATOM/INJ' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 100000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xe93f09f7a06d507ff8b66f2969e1af931c9eb9ec3f640a6f87dbcd3456258466] -description = 'Testnet Spot Inj' -base = 18 -quote = 8 -min_price_tick_size = 0.0000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xed865fd44f1bc9d46d978db415ed00444fac4f6aef7e09e2d0235f8d140b219f] -description = 'Testnet Spot MT/INJ' -base = 6 -quote = 18 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 -min_notional = 0 - -[0x215970bfdea5c94d8e964a759d3ce6eae1d113900129cc8428267db5ccdb3d1a] -description = 'Testnet Spot INJ/USDC' -base = 18 -quote = 6 -min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000000 -min_display_quantity_tick_size = 0.01 -min_notional = 0 - -[0xd8e9ea042ac67990134d8e024a251809b1b76c5f7df49f511858e040a285efca] -description = 'Testnet Spot HDRO/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 0 - -[0x2d7f47811527bd721ce2e4e0ff27b0f3a281f65abcd41758baf157c8ddfcd910] -description = 'Testnet Spot hINJ/INJ' -base = 18 -quote = 18 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xe4b31c0112c89e0963b2db6884b416c17101a899e0ce6dc9f5dde79e6a01b52b] -description = 'Testnet Spot TEST1/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 1 -min_notional = 0 - -[0xc0dd65c8371760699431c5ebbf4e507f9bbf8641483a719bd63c716fe585494a] -description = 'Testnet Spot PINKIE/INJ' -base = 6 -quote = 18 -min_price_tick_size = 1000000000000 -min_display_price_tick_size = 1 -min_quantity_tick_size = 10 -min_display_quantity_tick_size = 0.00001 -min_notional = 0 - -[0x03799aa2d9a4ffdf2c2621244287e9fe9a79eaf9d96f07b43bf6a7d03ecda8fe] -description = 'Testnet Spot WETH/USDC' -base = 8 -quote = 6 -min_price_tick_size = 0.00001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 1000000 -min_display_quantity_tick_size = 0.01 -min_notional = 0.01 - -[0x2e94326a421c3f66c15a3b663c7b1ab7fb6a5298b3a57759ecf07f0036793fc9] -description = 'Testnet Derivative BTC/USDT PERP Pyth' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 0 - -[0x95698a9d8ba11660f44d7001d8c6fb191552ece5d9141a05c5d9128711cdc2e0] -description = 'Testnet Derivative SOL/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 10000 -min_display_price_tick_size = 0.01 -min_quantity_tick_size = 0.01 -min_display_quantity_tick_size = 0.01 -min_notional = 0 - -[0x820bad0e0cbee65bb0eea5a99c78720c97b7b2217c47dcc0e0875e1ebb35e546] -description = 'Testnet Derivative ARB/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[0x155576f660b3b6116c1ab7a42fbf58a95adf11b3061f88f81bc8df228e7ac934] -description = 'Testnet Derivative XAU/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xb6fd8f78b97238eb67146e9b097c131e94730c10170cbcafa82ea2fd14ff62c7] -description = 'Testnet Derivative EUR/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xba9c96a1a9cc226cfe6bd9bca3a433e396569d1955393f38f2ee728cfda7ec58] -description = 'Testnet Derivative JPY/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xe185b08a7ccd830a94060edd5e457d30f429aa6f0757f75a8b93aa611780cfac] -description = 'Testnet Derivative GBP/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x0f03542809143c7e5d3c22f56bc6e51eb2c8bab5009161b58f6f468432dfa196] -description = 'Testnet Derivative XAG/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x70bc8d7feab38b23d5fdfb12b9c3726e400c265edbcbf449b6c80c31d63d3a02] -description = 'Testnet Derivative ETH/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xd97d0da6f6c11710ef06315971250e4e9aed4b7d4cd02059c9477ec8cf243782] -description = 'Testnet Derivative ATOM/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6] -description = 'Testnet Derivative INJ/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0xc10e8b25979a1620a6e088ce4c141f5fd2841e2089d4c99b6e5cd8f85986dcd3] -description = 'Testnet Derivative PEPE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 1000 -min_notional = 0 - -[0x27f586c9911507c75bf604df00735b871119c5234f8e52bc54fbd54729588a0e] -description = 'Testnet Derivative 1000PEPE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 1000 -min_notional = 0 - -[0x14f82598b92674598af196770a45e1b808a4ef3aa86eb9ca09aff1aeab33ac46] -description = 'Testnet Derivative 1MPEPE/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100 -min_display_price_tick_size = 0.0001 -min_quantity_tick_size = 1 -min_display_quantity_tick_size = 1 -min_notional = 0 - -[0xa12df259e07f9194389362153b42d8eb12368de5e22668d5f9fc3ac34dd43d18] -description = 'Testnet Derivative 1MPEPE/USDT' -base = 0 -quote = 6 -min_price_tick_size = 1 -min_display_price_tick_size = 0.000001 -min_quantity_tick_size = 1000 -min_display_quantity_tick_size = 1000 -min_notional = 0 - -[0x8f002b45cb287a4c3ecb89174ee42a7e933178d89c7eea94dbed8dc5dfd35d23] -description = 'Testnet Derivative GOLD/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 100000 -min_display_price_tick_size = 0.1 -min_quantity_tick_size = 0.0001 -min_display_quantity_tick_size = 0.0001 -min_notional = 0 - -[0x707fb74431a16c71e54d5cd2301daff1a464e1a854c0fef4bca3fe6c0a5b47d1] -description = 'Testnet Derivative TRUCPI/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[0xdfbb038abf614c59decdaaa02c0446bbebcd16327bd4e9d0350a1e3b691a38ef] -description = 'Testnet Derivative EVINDEX/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[0xf97a740538e10845e0c3db9ea94c6eaf8a570aeebe3e3511e2e387501a40e4bb] -description = 'Testnet Derivative TIA/USDT-01NOV2023' -base = 0 -quote = 6 -min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0000000001 -min_quantity_tick_size = 0.001 -min_display_quantity_tick_size = 0.001 -min_notional = 0 - -[0xc90e8ea048b8fe5c3174d4d0386191765db699d2bf83d0cbaf07e15462115a15] -description = 'Testnet Derivative TIA/USDT PERP' -base = 0 -quote = 6 -min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 0.1 -min_display_quantity_tick_size = 0.1 -min_notional = 0 - -[$ALIEN] -peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien -decimals = 6 - -[$AOI] -peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi -decimals = 6 - -[$BIRB] -peggy_denom = factory/inj1j37gy4hx0xgm9crwhew3sd6gfrg2z92rphynln/INJECTEDBIRB -decimals = 6 - -[$BITCOIN] -peggy_denom = factory/inj1xqkz4cgw3qn3p6xa2296g5ma8gh4fws8f3fxg6/BITCOIN -decimals = 6 - -[$Babykira] -peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira -decimals = 6 - -[$FORTUNE] -peggy_denom = factory/inj1ncytr25znls3tdw8q5g5pju83t4wcv6hv48kaz/FORTUNE -decimals = 6 - -[$HONEY] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/honey -decimals = 0 - -[$NEWT] -peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/newTest -decimals = 6 - -[$PUNKS] -peggy_denom = factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/injscoin -decimals = 6 - -[$ROFL] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rofl -decimals = 6 - -[$TOK] -peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/token -decimals = 6 - -[$TT] -peggy_denom = factory/inj1ndmztajhvx96a297axzuh80ke8jh0yjlcvs0xh/zule -decimals = 6 - -[1INCH] -peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 -decimals = 18 - -[A4] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/aaaa -decimals = 6 - -[AA] -peggy_denom = peggy0xdfb34A71B682e578C1a05ab6c9eF68661F1cC291 -decimals = 18 - -[AAA] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/AAA -decimals = 6 - -[AAAAMEMETEST] -peggy_denom = factory/inj1u4uuueup7p30zfl9xvslddnen45dg7pylsq4td/aaameme -decimals = 6 - -[AAVE] -peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 -decimals = 18 - -[ABC] -peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/ABC -decimals = 6 - -[ADN] -peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/ADN -decimals = 6 - -[AK] -peggy_denom = factory/inj10jmp6sgh4cc6zt3e8gw05wavvejgr5pw6m8j75/ak -decimals = 6 - -[AKK] -peggy_denom = factory/inj1ygeap3ypldmjgl22al5rpqafemyw7dt6k45n8r/ak -decimals = 0 - -[ALEX] -peggy_denom = factory/inj1tka3m67unvw45xfp42v5u9rc6pxpysnh648vje/ALEX -decimals = 6 - -[ALLA] -peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/ALLA -decimals = 6 - -[ALLB] -peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/ALLB -decimals = 6 - -[ALPHA] -peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u -decimals = 8 - -[ALX] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/alx -decimals = 6 - -[ANANA] -peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/ANANA -decimals = 6 - -[ANDR] -peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E -decimals = 6 - -[ANK] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/ANK -decimals = 6 - -[APE] -peggy_denom = peggy0x44d63c7FC48385b212aB397aB91A2637ec964634 -decimals = 18 - -[APE-INJ LP] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1j3nnhcvesttumyc46pmjx2daxa92f62ku36udl -decimals = 18 - -[APEINJ] -peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj -decimals = 6 - -[APP] -peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 -decimals = 18 - -[APT] -peggy_denom = apt -decimals = 8 - -[ARB] -peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 -decimals = 8 - -[ARBlegacy] -peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd -decimals = 8 - -[ASG] -peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 -decimals = 8 - -[ASR] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AUM -decimals = 18 - -[ASTR] -peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x -decimals = 18 - -[ASTRO] -peggy_denom = ibc/E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89 -decimals = 6 - -[ATJ] -peggy_denom = factory/inj1xv73rnm0jwnens2ywgvz35d4k59raw5eqf5quw/auctiontestj -decimals = 6 - -[ATOM] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom -decimals = 8 - -[ATT] -peggy_denom = factory/inj1xuxqgygmk79xfaf38ncgdp4jwmszh9rn3pmuex/ATT -decimals = 6 - -[AUTISM] -peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism -decimals = 6 - -[AVAX] -peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 -decimals = 8 - -[AXL] -peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 -decimals = 6 - -[AXS] -peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b -decimals = 18 - -[Abc] -peggy_denom = factory/inj1h76ya203uwsuh782nh0c0qfkqjtm8p2scuhfav/Abc -decimals = 9 - -[Alpha Coin] -peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B -decimals = 18 - -[AmanullahTest2] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/AmanullahTest2 -decimals = 6 - -[Ann] -peggy_denom = factory/inj12mffdkj3kxzaqywd5tumds99x9neeu6072mjaf/Ann -decimals = 9 - -[Ape Coin] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 -decimals = 18 - -[Arbitrum] -peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 -decimals = 18 - -[Axelar] -peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc -decimals = 6 - -[B3213] -peggy_denom = factory/inj13x54dd8vsekq7694lky7m357sfmly7prf0w7lj/B3213 -decimals = 9 - -[B3X] -peggy_denom = factory/inj1lcxrtzdr38h75f0h8nttzpa7q5w6nljv5dzrq0/B3X -decimals = 9 - -[BAB] -peggy_denom = factory/inj1ljvxl24c3nz0vxc8ypf0pfppp3s3t0aap5snag/BAB -decimals = 6 - -[BAG] -peggy_denom = factory/inj106ul9gd8vf0rdhs7gvul4e5eqju8uyr62twp6v/BAG -decimals = 6 - -[BAMBOO] -peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo -decimals = 6 - -[BANANA] -peggy_denom = factory/inj1cvte76l69n78avthhz7a73cgs8e29knkquyguh/BANANA -decimals = 6 - -[BAND] -peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 -decimals = 18 - -[BAT] -peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF -decimals = 18 - -[BAYC] -peggy_denom = bayc -decimals = 18 - -[BB] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/BAMB -decimals = 6 - -[BEAST] -peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be -decimals = 6 - -[BEER] -peggy_denom = factory/inj13y957x4lg74e60s9a47v66kex7mf4ujcqhc6xs/BEER -decimals = 6 - -[BGTC] -peggy_denom = factory/inj1yhvst5tzkn37wnk6mwllvlullexf8jkc2szf7r/BGTC -decimals = 9 - -[BIL] -peggy_denom = factory/inj14cxwqv9rt0hvmvmfawts8v6dvq6p26q0lkuajv/BIL -decimals = 6 - -[BINJ] -peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/binj -decimals = 18 - -[BITS] -peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/BITS -decimals = 6 - -[BK] -peggy_denom = factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/bk -decimals = 6 - -[BLA] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/blabla -decimals = 0 - -[BLACK] -peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black -decimals = 6 - -[BLOCK] -peggy_denom = factory/inj1l32h3fua32wy7r7zwhddevan8lxwkseh4xz43w/BLOCKEATER -decimals = 18 - -[BMAN] -peggy_denom = factory/inj18zctja65nd5xlre0lzurwc63mgw7xn6p2fehxv/BMAN -decimals = 6 - -[BMOS] -peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E -decimals = 6 - -[BNB] -peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 -decimals = 18 - -[BOB] -peggy_denom = factory/inj1znqs22whsfqvd3503ehv2a40zhmcr3u7k5xu8d/BOB -decimals = 6 - -[BODEN] -peggy_denom = boden -decimals = 9 - -[BOME] -peggy_denom = factory/inj1zghufuvlx8wkt233k7r25um2c0y8zzqx2hpx7e/BOME -decimals = 6 - -[BONJO] -peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/bonjo -decimals = 6 - -[BONK] -peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch -decimals = 5 - -[BONK2] -peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk -decimals = 6 - -[BONUS] -peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF -decimals = 8 - -[BOYS] -peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS -decimals = 6 - -[BRETT] -peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett -decimals = 6 - -[BRZ] -peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk -decimals = 4 - -[BS] -peggy_denom = factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ak -decimals = 6 - -[BSKT] -peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 -decimals = 5 - -[BTC] -peggy_denom = btc -decimals = 8 - -[BTYC] -peggy_denom = factory/inj194xa09lu46jw2cmje3v4zngfgdhxtp5tdlhh20/BTYC -decimals = 9 - -[BUIDL] -peggy_denom = buidl -decimals = 6 - -[BUKET] -peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/buket -decimals = 7 - -[BULLS] -peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls -decimals = 6 - -[BUSD] -peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 -decimals = 18 - -[Baa] -peggy_denom = factory/inj1qn2xqpatt3wagpe0gkjzaf3lwsm8eyjxfx8xwg/Baa -decimals = 9 - -[Babykira] -peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira -decimals = 6 - -[BadKid] -peggy_denom = factory/inj12cpkhwet3sv7ykwfusryk9zk8cj6kscjh08570/BadKid -decimals = 6 - -[Basket] -peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 -decimals = 5 - -[Bird INJ] -peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj -decimals = 6 - -[BitSong] -peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 -decimals = 18 - -[BnW] -peggy_denom = factory/inj188t9lmw8fh22x0np5wuf4zcz4ew748erz3s8ay/BnW -decimals = 6 - -[Bnana] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/banana -decimals = 18 - -[Bonjo] -peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 -decimals = 18 - -[Brazilian Digital Token] -peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B -decimals = 4 - -[CAD] -peggy_denom = cad -decimals = 6 - -[CANTO] -peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 -decimals = 18 - -[CAT] -peggy_denom = factory/inj1r5pxuhg6nz5puchgm8gx63whwn7jx0y0zsqp9w/CAT -decimals = 18 - -[CDT] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/chinhsieudeptrai -decimals = 0 - -[CEL] -peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d -decimals = 4 - -[CELL] -peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 -decimals = 18 - -[CHELE] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/CHELE -decimals = 6 - -[CHINH] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/123 -decimals = 0 - -[CHUT] -peggy_denom = factory/inj1gnflymetxrlfng7wc7yh9ejghrwzwhe542mr5l/CHUT -decimals = 6 - -[CHZ] -peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF -decimals = 18 - -[CHZlegacy] -peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh -decimals = 8 - -[CLON] -peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 -decimals = 6 - -[CNR] -peggy_denom = factory/inj1qn3xnr49n0sw8h3v4h7udq5htl8lsfj2e0e8hw/CNR -decimals = 6 - -[COCK] -peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/cock -decimals = 6 - -[COCKOC] -peggy_denom = factory/inj1f595c8ml3sfvey4cd85j9f4ur02mymz87huu78/COCKOC -decimals = 6 - -[COKE] -peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke -decimals = 6 - -[COMP] -peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 -decimals = 18 - -[COOK] -peggy_denom = factory/inj19zee9dacv8pw6jyax0jyytt06nln6ued0c6xxr/cook -decimals = 6 - -[CPS] -peggy_denom = factory/inj1wn45x52wm3sghe7qjp9hwhge9cuk632u2a4xl0/CPS -decimals = 6 - -[CRE] -peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 -decimals = 6 - -[CRSP] -peggy_denom = factory/inj18jvnp6shjm30l2kw30u5w7tsh6y7v4yuux8ydv/CRSP -decimals = 6 - -[CRSRL] -peggy_denom = factory/inj1mcwzdmtfvccrec9nd9qfsq0p6u25d7rcupcmf8/cruiser-legend -decimals = 6 - -[CRV] -peggy_denom = crv -decimals = 18 - -[CRY] -peggy_denom = factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/crystal -decimals = 6 - -[CSDT] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/chinhdeptrai -decimals = 0 - -[CSM] -peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/CSM -decimals = 6 - -[CSSSS] -peggy_denom = factory/inj1rwpsgl0y7q9t2t6vkphz3ajxe3m249rydkzuyx/CSSSS -decimals = 6 - -[CUONGPRO] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/cuongpro1234 -decimals = 0 - -[CVR] -peggy_denom = peggy0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6 -decimals = 18 - -[CW20:TERRA167DSQKH2ALURX997WMYCW9YDKYU54GYSWE3YGMRS4LWUME3VMWKS8RUQNV] -peggy_denom = ibc/53F48DC0479065C7BFFDC8D612A45EE90B28E4876405164C4CC7300661D8463D -decimals = 0 - -[CW20:TERRA1MCCMZMCXT6CTQF94QHHCWT79SPL0XZ27ULUVYEH232WCPDN6SJYQMDFXD4] -peggy_denom = ibc/599367B1633AB9A8F8BC5A5BA6A9B533EDE655B85D46F9A00A53E5FF68E25E57 -decimals = 0 - -[CXLD] -peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/CXLD -decimals = 6 - -[Cosmos] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 -decimals = 6 - -[D3RD] -peggy_denom = factory/inj1kw7xh603l8gghvr955a5752ywph5uhnmuyv7gy/D3RD -decimals = 6 - -[D5R] -peggy_denom = factory/inj14enjlt4059hmyswmrhch74n2pgsp5p6gvca9q9/D5R -decimals = 9 - -[DAI] -peggy_denom = peggy0x6B175474E89094C44Da98b954EedeAC495271d0F -decimals = 18 - -[DAO] -peggy_denom = factory/inj13vkxa9aku6vy8gy6thtvv9xv7l3ut8x3hnnevf/DAOC -decimals = 6 - -[DD] -peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/dingdong -decimals = 6 - -[DDL] -peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL -decimals = 6 - -[DDLTEST] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDLTest -decimals = 6 - -[DDLTESTTWO] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDLTESTTWO -decimals = 6 - -[DEFI5] -peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 -decimals = 18 - -[DEGEN] -peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/DEGEN -decimals = 6 - -[DEL] -peggy_denom = factory/inj1p2gs94exz0u2rwyg2sccxlpyfdyymp8k2ej7qa/DEL -decimals = 6 - -[DEMO] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/demo -decimals = 18 - -[DGNZ] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dgnz -decimals = 6 - -[DGNZZ] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzz -decimals = 0 - -[DGNZZZZ] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZZZZ -decimals = 6 - -[DGZN] -peggy_denom = factory/inj1rjfu66szrqkw6mua8mxrruyjym0fj65j7y8ukz/DGZN -decimals = 6 - -[DICES] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/dices -decimals = 6 - -[DICK] -peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/DICK -decimals = 6 - -[DISC] -peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/DISC -decimals = 6 - -[DJN] -peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/djn -decimals = 6 - -[DOGE] -peggy_denom = doge -decimals = 8 - -[DOGGO] -peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO -decimals = 0 - -[DOGGOS] -peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGOS -decimals = 6 - -[DOJ] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj -decimals = 6 - -[DOJE] -peggy_denom = factory/inj12e00ptda26wr4257jk8xktasjf5qrz97e76st2/doje -decimals = 6 - -[DOJO] -peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/dojo -decimals = 6 - -[DOT] -peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 -decimals = 10 - -[DREAM] -peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream -decimals = 6 - -[DROGO] -peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 -decimals = 6 - -[DUCK] -peggy_denom = factory/inj12vqaz34lk6s7jrtgnhcd53ffya8vrx67m7cev2/DUCK -decimals = 6 - -[DUDE] -peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/dude -decimals = 6 - -[DUNE] -peggy_denom = factory/inj1zg54atp2u4f69fqjyxxx2v8pkzkrw47e3f6akr/DUNE -decimals = 6 - -[DV] -peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/dv -decimals = 6 - -[DZZY] -peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/DZZY -decimals = 6 - -[Denz] -peggy_denom = factory/inj1geky3rlgv7ycg8hnf8dzj475c0zmdkqstk9k37/Denz -decimals = 6 - -[Dojo Token] -peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 -decimals = 18 - -[ELON] -peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 -decimals = 6 - -[ENA] -peggy_denom = peggy0x57e114b691db790c35207b2e685d4a43181e6061 -decimals = 18 - -[ENJ] -peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c -decimals = 18 - -[ERIC] -peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric -decimals = 6 - -[ERJ] -peggy_denom = factory/inj17v462f55kkuhjhvw7vdcjzd2wdk85yh8js3ug9/ERJ -decimals = 6 - -[ETH] -peggy_denom = eth -decimals = 18 - -[ETHBTCTrend] -peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 -decimals = 18 - -[EUR] -peggy_denom = eur -decimals = 6 - -[EVAI] -peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c -decimals = 8 - -[EVIINDEX] -peggy_denom = eviindex -decimals = 18 - -[EVMOS] -peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 -decimals = 18 - -[EVOI] -peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/evoi -decimals = 6 - -[FACTORY/PRYZM15K9S9P0AR0CX27NAYRGK6VMHYEC3LJ7VKRY7RX/UUSDSIM] -peggy_denom = ibc/6653E89983FE4CAE0DF67DF2257451B396D413431F583306E26DC6D7949CE648 -decimals = 0 - -[FAMILY] -peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY -decimals = 6 - -[FET] -peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B -decimals = 18 - -[FGDE] -peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/fgdekghk -decimals = 6 - -[FGFGGW] -peggy_denom = factory/inj1p83xm4qnhww3twkcff3wdu6hgjn534j9jdry9d/FGFGGW -decimals = 6 - -[FIO] -peggy_denom = factory/inj133xeq92ak7p87hntvamgq3047kj8jfqhry92a8/FIO -decimals = 6 - -[FLG] -peggy_denom = factory/inj183k33z778ymd6lcjwa4nrjagnksxztzu37tsfe/FLG -decimals = 9 - -[FLG1] -peggy_denom = factory/inj10rtql872pq2lzhmv9sgpvjkdxxlj9zseeep8rh/FLG1 -decimals = 9 - -[FNLS] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheFinals -decimals = 6 - -[FTM] -peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 -decimals = 18 - -[FTTOKEN] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FTTOKEN -decimals = 6 - -[FUN] -peggy_denom = factory/inj1k6vxjqq7xxdn96ftx9u099su4lxquhuexphfeu/FUN -decimals = 6 - -[FZZY] -peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/FZZY -decimals = 6 - -[Fetch.ai] -peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 -decimals = 18 - -[Flm] -peggy_denom = factory/inj17ef2m8f9l8zypef5wxyrrxpdqyq4wd2rfl23d4/Flm -decimals = 6 - -[Fund7] -peggy_denom = factory/inj12vvs4rlxd54r0akenphq9pw286w39teejjanrj/Fund7 -decimals = 9 - -[GALA] -peggy_denom = factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA -decimals = 6 - -[GALAXY] -peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy -decimals = 6 - -[GBP] -peggy_denom = gbp -decimals = 6 - -[GF] -peggy_denom = peggy0xaaef88cea01475125522e117bfe45cf32044e238 -decimals = 18 - -[GFT] -peggy_denom = factory/inj1rw9z8q7l9xgffuu66e6w0eje3y7yvur452rst6/GFT -decimals = 6 - -[GGM] -peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/GGM -decimals = 6 - -[GIGA] -peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 -decimals = 5 - -[GINGER] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/ginger -decimals = 6 - -[GLD] -peggy_denom = factory/inj1kgtamley85yj7eeuntz7ctty5wgfla5n6z2t42/gld -decimals = 6 - -[GLTO] -peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 -decimals = 6 - -[GME] -peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 -decimals = 8 - -[GOLD] -peggy_denom = gold -decimals = 18 - -[GOLDIE] -peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/goldie -decimals = 6 - -[GRANJ] -peggy_denom = factory/inj1kprvcvuwkhpt33500guafzf09fr7p9yfklxlls/GRANJ -decimals = 6 - -[GRAY] -peggy_denom = factory/inj1g65a0tv2xl4vpu732k8u6yamq438t0lze8ksdx/GRAY -decimals = 6 - -[GROK] -peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/grok -decimals = 6 - -[GRT] -peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 -decimals = 18 - -[GTHLI] -peggy_denom = factory/inj1uhxex6xjm6dfzud44ectgpkgfhhyxthmux8vd4/GTHLI -decimals = 6 - -[GYEN] -peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 -decimals = 6 - -[God] -peggy_denom = factory/inj1x45ltvqzanx82wutwdxaayzzu0a7a8q5j3pz2f/God -decimals = 6 - -[HAPPY] -peggy_denom = factory/inj16ydu70t4s6z3lhcjh4aqkdpl9aag8pxve0kdyx/HAPPY -decimals = 6 - -[HDRO] -peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro -decimals = 6 - -[HDRO-INJ LP] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1afn8932y6f5v44eguf4tazn5f80uaxz4q603c9 -decimals = 18 - -[HERB] -peggy_denom = factory/inj1mh7efynqjvw3rt2ntty2unmxr6kwaec5g5050y/HERB -decimals = 6 - -[HHH] -peggy_denom = factory/inj15fdtwvzmn0gavesvx5xswdczksf2jh4ct7as2y/HHH -decimals = 9 - -[HILARI1] -peggy_denom = factory/inj1l92lr339wuqnwlvj8w405nu8t297k8ah8f24m3/HILARI1 -decimals = 18 - -[HNY2] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/HNY2 -decimals = 0 - -[HNY3] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/HNY3 -decimals = 0 - -[HS] -peggy_denom = factory/inj1ce9d2lma4tvady03fnsd5nck54xhfeazks0y8d/hs -decimals = 6 - -[HS1] -peggy_denom = factory/inj1qqpse7e9gqd3eersazra7z86gusm74tks6x787/HS1 -decimals = 9 - -[HS2] -peggy_denom = factory/inj1eprg7k96d67q3nk69kjfrk3kf6u0exxv4qya28/HS2 -decimals = 9 - -[HS3] -peggy_denom = factory/inj1nlud6jqvmkppqn2jk2cshqn5gcfhnqrcy9df9k/HS3 -decimals = 9 - -[HSC2UPDATETEST] -peggy_denom = factory/inj1ce9d2lma4tvady03fnsd5nck54xhfeazks0y8d/hs2 -decimals = 6 - -[HSen] -peggy_denom = factory/inj1u700lxt7wfzpjxtdprjrfq0q0yz2cr9jaaptcv/HSen -decimals = 9 - -[HSen2] -peggy_denom = factory/inj1mh9304vtvv0pfe4uznv0c7adx2d4q4samngffh/HSen2 -decimals = 9 - -[HT] -peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 -decimals = 18 - -[HUAHUA] -peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB -decimals = 6 - -[Hakmer] -peggy_denom = factory/inj1579jgr5gkv2h6z6wfwsmff2xvpuf4seyzx0xtn/Hakmer -decimals = 6 - -[Hallo123] -peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/hallo123 -decimals = 6 - -[Han] -peggy_denom = factory/inj1plrds0grtjapckk9etk2wn2en475q4gs0hux5s/Han -decimals = 9 - -[HarryPotterEricNinjaKiraInj10Inu] -peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj10Inu -decimals = 6 - -[HarryPotterEricNinjaKiraInj20Inu] -peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj20Inu -decimals = 6 - -[HarryPotterEricNinjaKiraInj30Inu] -peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj30Inu -decimals = 6 - -[Hue] -peggy_denom = factory/inj176w059tfx4agt8xny9sdw2z5mwqa7gquccjsx8/Hue -decimals = 9 - -[Hydro] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro -decimals = 6 - -[Hydro Wrapped INJ] -peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc -decimals = 18 - -[IBJ] -peggy_denom = factory/inj1czcqn0a8s0zud72p9zpfrkduljp0hhjjt927fe/IBJ -decimals = 6 - -[IDOGE] -peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/IDOGE -decimals = 6 - -[IIN] -peggy_denom = factory/inj1aeruvw7e4e90uqlegv52ttjtjdr60ndh2p5krq/IIN -decimals = 6 - -[IJTBOBI] -peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ijtbobi -decimals = 6 - -[IK] -peggy_denom = factory/inj1axtwu6xh6hzpayy7mm9qwyggp5adtjnnj6tmkj/injscribedtoken -decimals = 6 - -[IKINGS] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/ikings -decimals = 6 - -[ILEND] -peggy_denom = factory/inj19ae4ukagwrlprva55q9skskunv5ve7sr6myx7z/ilend-test-subdenom -decimals = 6 - -[ILL] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/ill -decimals = 0 - -[INC] -peggy_denom = factory/inj1nu7ftngqhuz6vazjj4wravdlweutam82rkt7j2/INC -decimals = 6 - -[INCEL] -peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel -decimals = 6 - -[IND] -peggy_denom = factory/inj1j0t7zeafazz33xx22a62esvghcyxwzzxeshv2z/IND -decimals = 6 - -[ING] -peggy_denom = factory/inj18x8g8gkc3kch72wtkh46a926634m784m3wnj50/ING -decimals = 6 - -[INJ] -peggy_denom = inj -decimals = 18 - -[INJ-USDT LP] -peggy_denom = factory//lpinj147dmmltelpvkjcfneg5r4q66glhe2rmr2hmm59 -decimals = 18 - -[INJ-USDT-PERP LP] -peggy_denom = factory//lpinj1v4s3v3nmsx6szyxqgcnqdfseucu4ccm65sh0xr -decimals = 18 - -[INJAmanullahTest1] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/INJAmanullahTest1 -decimals = 6 - -[INJBR] -peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/INJBR -decimals = 6 - -[INJECT] -peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/inject -decimals = 6 - -[INJER] -peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/injer -decimals = 6 - -[INJF] -peggy_denom = factory/inj190nefqygs79s3cpvgjzhf7w9d7pzkag4u7cdce/INJF -decimals = 18 - -[INJINU] -peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/injinu -decimals = 6 - -[INJKT] -peggy_denom = factory/inj19q4vqa9hxrnys04hc2se8axp5qkxf2u9qthewk/INJKT -decimals = 6 - -[INJOKI] -peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/INJOKI -decimals = 6 - -[INJPEPE] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/injpepe -decimals = 6 - -[INJS] -peggy_denom = factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/injs -decimals = 6 - -[INJSTKN] -peggy_denom = factory/inj1xx25yhe9ma0zy4ewyd0js8f4pm869gdek4g27j/injstkn -decimals = 6 - -[INJTEST] -peggy_denom = factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test -decimals = 6 - -[INJTEST2] -peggy_denom = factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test2 -decimals = 0 - -[INJTESTE] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/Injteste -decimals = 6 - -[INJX] -peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx -decimals = 6 - -[INJbsc] -peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 -decimals = 18 - -[INJet] -peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw -decimals = 18 - -[INO] -peggy_denom = factory/inj1fyanjlzhkcenneulrdjmuumc9njvzr08wxr4f6/INO -decimals = 6 - -[IOTX] -peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 -decimals = 18 - -[IPDAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai -decimals = 6 - -[IPEPE] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipepe -decimals = 6 - -[IPandaAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai -decimals = 6 - -[IPanther] -peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjectivePanther -decimals = 6 - -[IPantherN] -peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/injectivepanthernew -decimals = 6 - -[IPrint] -peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjectivePrinter -decimals = 6 - -[ITT] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/injtesttwo -decimals = 6 - -[ITTT] -peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/injectively-test-token -decimals = 6 - -[IUSD] -peggy_denom = factory/inj16020qlmmat0uwgjrj2nrcn3kglk6scj3e99uye/iusd -decimals = 6 - -[Inj] -peggy_denom = factory/inj1jcwlfkq76gvljfth56jjl360nxkzx8dlv6fjzr/Inj -decimals = 6 - -[InjDoge] -peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjDoge -decimals = 6 - -[Injective] -peggy_denom = peggy0x5512c04B6FF813f3571bDF64A1d74c98B5257332 -decimals = 18 - -[Injective Panda] -peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo -decimals = 6 - -[Internet Explorer] -peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb -decimals = 6 - -[J7J5] -peggy_denom = factory/inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5/J7J5 -decimals = 6 - -[JCLUB] -peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/JCLUB -decimals = 6 - -[JJJJ] -peggy_denom = factory/inj1eg83yq85cld5ngh2vynqlzmnzdplsallqrmlyd/JJJJ -decimals = 6 - -[JNI] -peggy_denom = factory/inj1q9mjtmhydvepcszp552lwyez52y7npjcvntprg/jni -decimals = 18 - -[JNI2] -peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni2 -decimals = 0 - -[JNI3] -peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni3 -decimals = 18 - -[JNI4] -peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni4 -decimals = 18 - -[JNI5] -peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni5 -decimals = 18 - -[JPY] -peggy_denom = jpy -decimals = 6 - -[JUL] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/JUL -decimals = 6 - -[JUNO] -peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 -decimals = 6 - -[JUP] -peggy_denom = jup -decimals = 6 - -[JUSSY] -peggy_denom = factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/INJUSSY -decimals = 6 - -[Jet] -peggy_denom = factory/inj18r765lvc3pf975cx0k3derdxl302trjjnpwjgf/Jet -decimals = 6 - -[KAGE] -peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 -decimals = 18 - -[KARATE] -peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate -decimals = 6 - -[KARMA] -peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma -decimals = 6 - -[KATANA] -peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana -decimals = 6 - -[KAVA] -peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 -decimals = 6 - -[KELON] -peggy_denom = factory/inj1fdd59gyrtfkn7cflupyqqcj0t5c4whj0dzhead/KELON -decimals = 6 - -[KEN] -peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ken -decimals = 6 - -[KFF] -peggy_denom = factory/inj10uen9k593sll79n9egwh80t09enk7gsaqqehuh/KFN -decimals = 6 - -[KGM1] -peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/inj-test1 -decimals = 6 - -[KIA] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/KIA -decimals = 18 - -[KIKI] -peggy_denom = factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki -decimals = 6 - -[KING] -peggy_denom = factory/inj156zqdswjfcttc8hrvwd5z3nv5n53l5xg9mqvht/KING -decimals = 6 - -[KINJA] -peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/kinja -decimals = 6 - -[KIRA] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/kira -decimals = 6 - -[KISH6] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH6 -decimals = 6 - -[KISHN1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISHN1 -decimals = 18 - -[KIWI] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/KIWI -decimals = 18 - -[KIWI-INJ LP] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1x9k567g0tmpamjkemvm703ff6kczjvz2nany2u -decimals = 18 - -[KNG] -peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/kennethii -decimals = 6 - -[KPEPE] -peggy_denom = kpepe -decimals = 18 - -[KRA] -peggy_denom = factory/inj1leuc4h7w5seyw4mc58xk6qtn2dm23hj79sdca9/korra -decimals = 6 - -[KRI] -peggy_denom = factory/inj17z0plmzyrz4zrrfaps99egwqk4xk6kpq4728xg/kril-test -decimals = 6 - -[KUJI] -peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 -decimals = 6 - -[KUSD] -peggy_denom = factory/inj1xmc078w8gv42v99a5mctsm2e4pldvu7jtd08ym/kusd -decimals = 6 - -[Koncga] -peggy_denom = factory/inj1hr4rj6k72emjh9u7l6zg58c0n0daezz68060aq/Koncga -decimals = 6 - -[LABS] -peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs -decimals = 6 - -[LADY] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/LADY -decimals = 18 - -[LAHN] -peggy_denom = factory/inj133xeq92ak7p87hntvamgq3047kj8jfqhry92a8/LAHN -decimals = 6 - -[LAMA] -peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA -decimals = 6 - -[LAMA2] -peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA2 -decimals = 6 - -[LAMBO] -peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 -decimals = 18 - -[LCK] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck -decimals = 18 - -[LDO] -peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy -decimals = 8 - -[LEO] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/LEO -decimals = 6 - -[LILI] -peggy_denom = factory/inj14l2vccns668jq3gp0hgwl5lcpatx9nqq3m7wyy/LILI -decimals = 8 - -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA -decimals = 18 - -[LIOR] -peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/lior -decimals = 6 - -[LOKI] -peggy_denom = ibc/49FFD5EA91774117260257E30924738A5A1ECBD00ABDBF0AF3FD51A63AE752CD -decimals = 0 - -[LOL] -peggy_denom = factory/inj19zqaa78d67xmzxp3e693n3zxwpc5fq587s2lyh/LOL -decimals = 6 - -[LUNA] -peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 -decimals = 6 - -[LVN] -peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 -decimals = 6 - -[LYM] -peggy_denom = peggy0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5 -decimals = 18 - -[Lenz] -peggy_denom = factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz -decimals = 6 - -[LenzTest] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest -decimals = 6 - -[LenzTestingTestnetFinal] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTestingTestnetFinal -decimals = 6 - -[LenzToken] -peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzToken -decimals = 6 - -[LenzTokenFinalTest] -peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTokenFinalTest -decimals = 6 - -[Lido DAO Token] -peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 -decimals = 18 - -[MADRA] -peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADAFAKA -decimals = 18 - -[MAGA] -peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 -decimals = 9 - -[MAN] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/MAN -decimals = 6 - -[MATIC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/matic -decimals = 18 - -[MBIST] -peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/MBIST -decimals = 6 - -[MBS] -peggy_denom = factory/inj1wazq0k74kqmll9kzzhy300tc7slxn4t2py2pz9/mysubdenom -decimals = 6 - -[MCN] -peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/mcn -decimals = 6 - -[MCN1] -peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/mcn1 -decimals = 6 - -[MEME] -peggy_denom = factory/inj1y2q2m0j65utqr3sr4fd0lh0httm2dv8z0h6qrk/MEME -decimals = 6 - -[MEMEME] -peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE -decimals = 18 - -[MFT] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft -decimals = 6 - -[MFZ] -peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MFZ -decimals = 6 - -[MHC] -peggy_denom = factory/inj1wqxweeera42jdgxaj44t9apth40t6q52uhadqv/MHC -decimals = 18 - -[MILA] -peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/mila -decimals = 6 - -[MILK] -peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/milk -decimals = 6 - -[MIRO] -peggy_denom = factory/inj14vn4n9czlvgpjueznux0a9g2xlqzmrzm4xyl4s/MIRO -decimals = 6 - -[MITHU] -peggy_denom = factory/inj1n50p90fllw0pae3663v6hqagwst063u3m2eczf/MITHU -decimals = 6 - -[MITO-APE-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1druk8gz469vyfgapvnxput8k5wf5vyu30fqryy -decimals = 18 - -[MITO-DEMO-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t2zqcm98epsmpy99mjzdczzx79cfy74kh2w35l -decimals = 18 - -[MITO-EUR-USDT-PERP] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qamlsmj22p3zkchgva2ydhegfwz3ls7m5sm7rs -decimals = 18 - -[MITO-FIO-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qdk7vpgmu3e5lj0cru7yyay38vff34tll789lr -decimals = 18 - -[MITO-GBP-USDT-PERP] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fgdlfyru0e0fk4tsxtdz6an7vfwz3g82w40qy6 -decimals = 18 - -[MITO-HDRO-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f77zn4hytk8w6qjtr7ks98m4yq6hwduzk8yvp4 -decimals = 18 - -[MITO-INJ-USDT] -peggy_denom = factory//lpinj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx -decimals = 18 - -[MITO-INJ-USDT-PERP] -peggy_denom = factory//lpinj1pwztvdkju9lcmw68t04n7vt7832s3w9clv59ws -decimals = 18 - -[MITO-KIWI-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1hwgrpwgs70cj7s5uc605jk832d6hlyq2pupw82 -decimals = 18 - -[MITO-LAHN-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1prqzp6q2nlw2984pyvut6fr5jg47kwkzduw8j2 -decimals = 18 - -[MITO-MITOTEST1-INJ] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15zhsj42y2p990m8j5uh2rym2fmqnalupmwuj9p -decimals = 18 - -[MITO-MT-INJ] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1jdthft9pq8s87n5x65g49z3rv9nqnvpwrjgfz4 -decimals = 18 - -[MITO-NLT-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1a2whf4gfe8c533m7zahs36c7zxpap2khtwvnjj -decimals = 18 - -[MITO-NLT2-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj160wzl4mnzqfxm9ux3mvs46uhqex0d5ewt9p8el -decimals = 18 - -[MITO-NLT3-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f2zrn6qw5wm27jkdje99538lahmsjy35pzx0zq -decimals = 18 - -[MITO-PROJ-INJ] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj13zf66kwwvmvr20sm5dh39p3x3pkw0ry3jrfus2 -decimals = 18 - -[MITO-PROJX-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1uqehwkl6m9gxjqlsf3yvwu528wtcjs00hyx08z -decimals = 18 - -[MITO-REKT-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj143qfst3qa3u5mqk9rk6f4zjv5syj5eja3mng0g -decimals = 18 - -[MITO-TALIS-INJ] -peggy_denom = factory/inj1k3pnnh5fyjuc6tmmupyp2042cryk59l7nx2pu3/lpinj17dw5ek2829evlwcepftlvv9r53rqmc72akrsdz -decimals = 18 - -[MITO-TALKS1N-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lw0u2rtl36y9tht0uts90fv5vy3vgpmuel27hc -decimals = 18 - -[MITO-TEST-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1u8j7h7n8tdt66mgp6c0a7f3wq088d3jttwz7sj -decimals = 18 - -[MITO-TEST1-INJ] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1ghzfg2v3jzqe3vrhw4wngs43mscpxx98fpjwga -decimals = 18 - -[MITO-TEST2-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1jtgygvq0ulstx55hwenk4a6uh5tn8vqhkah8gc -decimals = 18 - -[MITO-TEST3-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1xallacw6vz8p88qyrezmcyvkmrakacupkvvfvk -decimals = 18 - -[MITO-TEST4-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zngkg023f0fqlvpc026rr0pvd4rufw8d4ywke4 -decimals = 18 - -[MITO-TEST5-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1alv0wvzkul2zndjylt9gssqc0qnzztvf5mv52r -decimals = 18 - -[MITO-TRIP-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t3y9mu0zk5zuu4y34lfxkq8zx08latdxa5cff5 -decimals = 18 - -[MITO-TRIPP-INJ] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj18ax4p09y7k8quhslelkw6ktsj0c4n7dt4r67kf -decimals = 18 - -[MITO-USDC-USDT] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1dlywe8v0t9gv2ceasj6se387ke95env8lyf3j8 -decimals = 18 - -[MITO-USDT-USDC] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj182tjs70u33r7vssc8tfuwwed3x4ggfeutvk0sl -decimals = 18 - -[MITO-WBTC-USDT] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj17lt3vtgtpprn877gyd694hvtgn5p3c3mt6z39l -decimals = 18 - -[MITO-XAU-USDT-PERP] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xqsp96842fsht7m6p4slvrfhl53wfqft866sc7 -decimals = 18 - -[MITO-ZEN-INJ] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1w9hnzhlq26wdgw3d2gh9fvf3nwnvxe6ff5crdj -decimals = 18 - -[MITO-stINJ-INJ] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj196f5hz8x7laqyfykr6sf6f6qjkna2gd2eqvdcy -decimals = 18 - -[MITOKEN] -peggy_denom = factory/inj100z6tw8f2vs8ntrkd8fj4wj3cd6y9usg8dhpmc/subtoken -decimals = 0 - -[MITOTEST1-INJ LP] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sngs2wlfynj4y3vtw7pdfn4cm9xr83wc92vys7 -decimals = 18 - -[MJB] -peggy_denom = factory/inj17z0plmzyrz4zrrfaps99egwqk4xk6kpq4728xg/majin-buu-test -decimals = 6 - -[MKR] -peggy_denom = mkr -decimals = 18 - -[MM93] -peggy_denom = factory/inj1gpwhwhmeuk4pu7atg9t30e7jc5ywvc58jpe9kc/MM93 -decimals = 6 - -[MONI] -peggy_denom = factory/inj12ecryjw7km6a9w8lvlrlpqg7csl8ax3lgnav9d/MONI -decimals = 6 - -[MOONIFY] -peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify -decimals = 6 - -[MOONLY] -peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonly -decimals = 6 - -[MOR] -peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/MOR_test -decimals = 6 - -[MOTHER] -peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE -decimals = 6 - -[MPEPE] -peggy_denom = mpepe -decimals = 18 - -[MSTR] -peggy_denom = factory/inj176tn6dtrvak9vrqkj2ejysuy5kctc6nphw7sfz/MSTR -decimals = 6 - -[MT] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mt -decimals = 6 - -[MT-INJ LP] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nlhwnpeph9gwlng972j9zjwm8n523hx0n2kaj9 -decimals = 18 - -[MT2] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest2 -decimals = 6 - -[MTS] -peggy_denom = factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/MagicTest -decimals = 6 - -[MYTOKEN] -peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/Mytoken2 -decimals = 6 - -[MitoTest] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest1 -decimals = 18 - -[MyINJ] -peggy_denom = factory/inj1ddu9unqz0tfazh3js36q0lr0dnhcql8slm3hkg/inj-test -decimals = 6 - -[MytokenTest1] -peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/MytokenTest1 -decimals = 6 - -[NAFU] -peggy_denom = factory/inj14e53h3c6fmvxlwrzfaewd5p2x7em787s4kgc8g/NAFU -decimals = 6 - -[NANAS] -peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/NANAS -decimals = 6 - -[NANTA] -peggy_denom = factory/inj12ecryjw7km6a9w8lvlrlpqg7csl8ax3lgnav9d/NANTA -decimals = 6 - -[NBLA] -peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla -decimals = 6 - -[NBTC] -peggy_denom = factory/inj1fuvjhkhwn3352gggkfxkyaslh2xkp7zsjvc0r0/NBTC -decimals = 9 - -[NBZ] -peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D -decimals = 6 - -[NBZAIRDROP] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/nbzairdrop -decimals = 0 - -[NEOK] -peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 -decimals = 18 - -[NEPT] -peggy_denom = factory/inj166su00ldetxc3mrf6xrkpzg5fdwfz5jpcqufa0/nept -decimals = 6 - -[NEX] -peggy_denom = factory/inj1v5ae8r4ax90k75qk7yavfmsv96grynqwyl0xg6/NEX -decimals = 0 - -[NEXO] -peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 -decimals = 18 - -[NINJA] -peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja -decimals = 6 - -[NINJB] -peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb -decimals = 6 - -[NINJI] -peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninjainu -decimals = 18 - -[NIS] -peggy_denom = factory/inj1qrnmf8dufs4xfln8nmgdqpfn7nvdnz27ntret0/NIS -decimals = 6 - -[NInj] -peggy_denom = factory/inj1kchqyuuk6mnjf4ndqasrswsfngd7jkrpduuyjr/NInj -decimals = 6 - -[NLC] -peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 -decimals = 6 - -[NLT] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT -decimals = 6 - -[NLT2] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT2 -decimals = 6 - -[NLT3] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT3 -decimals = 6 - -[NOBI] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi -decimals = 6 - -[NOBITCHES] -peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches -decimals = 6 - -[NOIA] -peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca -decimals = 18 - -[NOIS] -peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A -decimals = 6 - -[NONE] -peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 -decimals = 18 - -[NONJA] -peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck -decimals = 18 - -[NPEPE] -peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/npepe -decimals = 6 - -[NPP] -peggy_denom = factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/npepe -decimals = 6 - -[NRL] -peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/NRL -decimals = 6 - -[NT] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/NewToken -decimals = 6 - -[NTR] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/NTR -decimals = 6 - -[Name1] -peggy_denom = factory/inj16jtracfdxwavy62nj77u8vrvraallgfup7c2vh/Name1 -decimals = 9 - -[Name2] -peggy_denom = factory/inj1savlwnm9pz704g67m27ptex7cn4253j3hmzxhg/Name2 -decimals = 9 - -[Neptune Receipt INJ] -peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f -decimals = 18 - -[OCEAN] -peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 -decimals = 18 - -[OLI] -peggy_denom = factory/inj1xhz824048f03pq9zr3dx72zck7fv0r4kg4nr6j/OLI -decimals = 6 - -[OMI] -peggy_denom = peggy0xed35af169af46a02ee13b9d79eb57d6d68c1749e -decimals = 18 - -[OMNI] -peggy_denom = peggy0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4 -decimals = 18 - -[ONE] -peggy_denom = factory/inj127fnqclnf2s2d3trhxc8yzuae6lq4zkfasehr0/ONE -decimals = 1 - -[OP] -peggy_denom = op -decimals = 18 - -[ORAI] -peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 -decimals = 6 - -[ORNE] -peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E -decimals = 6 - -[OSMO] -peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 -decimals = 6 - -[OX] -peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f -decimals = 18 - -[Oraichain] -peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 -decimals = 18 - -[PAIN] -peggy_denom = factory/inj1u6j86hy6a2z0ksuhuh54x6kh532e7esdfjd2k7/pain -decimals = 6 - -[PANZ] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/PANZ -decimals = 6 - -[PAXG] -peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 -decimals = 18 - -[PB] -peggy_denom = factory/inj124edzakrq96vwfxp996d0nkr3dzlcsy84c375w/PB -decimals = 0 - -[PED] -peggy_denom = factory/inj14x449v06kj4fw6s9wnx8ku23zzuazfpkz6a73v/PED -decimals = 6 - -[PENJY] -peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/penjy -decimals = 6 - -[PEPE] -peggy_denom = peggy0x6982508145454ce325ddbe47a25d4ec3d2311933 -decimals = 18 - -[PHUC] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/phuc -decimals = 6 - -[PHX] -peggy_denom = factory/inj1d9pn8qvfh75fpxw5lkcrmuwh94qlgctzuzp7hv/phoenix -decimals = 6 - -[PIKA] -peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/pika -decimals = 6 - -[PINJA] -peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja -decimals = 6 - -[PINKIE] -peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE -decimals = 6 - -[PKT] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/PKT -decimals = 6 - -[PLY] -peggy_denom = factory/inj1vumd9aald3efd8jjegwvppedyzmf7k4x3rv3zn/PLY -decimals = 6 - -[PMN] -peggy_denom = factory/inj1xwdmsf2pd3eg6axkdgkjpaq689f9mjun0qvrgt/PMN -decimals = 6 - -[POG] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/pog -decimals = 6 - -[POIL] -peggy_denom = factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/upoil -decimals = 6 - -[POINT] -peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point -decimals = 0 - -[POL] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/POL -decimals = 6 - -[POOL] -peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e -decimals = 18 - -[POOR] -peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 -decimals = 8 - -[POPCAT] -peggy_denom = popcat -decimals = 9 - -[PP] -peggy_denom = factory/inj1p5g2l4gknhnflr5qf0jdrp9snvx747nqttrh6k/pop -decimals = 6 - -[PPenguin] -peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/PPenguin -decimals = 6 - -[PRI] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/PRI -decimals = 6 - -[PROF] -peggy_denom = factory/inj1tnj7z7ufm5uwtf5n4nzlvxyy93p8shjanj9s8r/Prof -decimals = 6 - -[PROJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj -decimals = 18 - -[PROJ-INJ LP] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1f03c5r2nlsh390y97p776clvgm9pqmkecj92q3 -decimals = 18 - -[PROJX] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx -decimals = 18 - -[PROJX-INJ LP] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1xvlnfmq5672rmvn6576rvj389ezu9nxc9dpk8l -decimals = 18 - -[PTXE] -peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/PTXE -decimals = 6 - -[PUG] -peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b -decimals = 18 - -[PUNK] -peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/punk -decimals = 6 - -[PVP] -peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 -decimals = 8 - -[PWH] -peggy_denom = factory/inj1smk28fqgy0jztu066ngfcwqc3lv65xgq79wly8/PWH -decimals = 6 - -[PYTH] -peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 -decimals = 6 - -[PYTHlegacy] -peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy -decimals = 6 - -[PYUSD] -peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 -decimals = 6 - -[PZZ] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/pzz -decimals = 6 - -[Pep] -peggy_denom = factory/inj1zvy8xrlhe7ex9scer868clfstdv7j6vz790kwa/pepper -decimals = 6 - -[Pepe] -peggy_denom = pepe -decimals = 18 - -[Phuc] -peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc -decimals = 6 - -[Pikachu] -peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika -decimals = 6 - -[Polkadot] -peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf -decimals = 10 - -[Polygon] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 -decimals = 18 - -[Punk Token] -peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt -decimals = 18 - -[QAQA] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QAQA -decimals = 0 - -[QAT] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen -decimals = 8 - -[QATEST] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST -decimals = 6 - -[QATEST2] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST2 -decimals = 6 - -[QATEST3] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST3 -decimals = 6 - -[QATEST4] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST4 -decimals = 6 - -[QATS] -peggy_denom = factory/inj1navfuxj73mzrc8a28uwnwz4x4udzdsv9r5e279/qa-test -decimals = 0 - -[QN] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QN -decimals = 0 - -[QNA] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QNA -decimals = 6 - -[QNT] -peggy_denom = peggy0x4a220e6096b25eadb88358cb44068a3248254675 -decimals = 18 - -[QTUM] -peggy_denom = factory/inj1jgc9ptfwgyapfrr0kgdjjnwpdqck24pp59uma3/QTUM -decimals = 6 - -[QUK] -peggy_denom = factory/inj1y39rszzrs9hpfmt5uwkp6gxyvawrkt4krateru/QUK -decimals = 6 - -[QUNT] -peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt -decimals = 6 - -[RAI] -peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 -decimals = 18 - -[RAMEN] -peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen -decimals = 6 - -[RAMENV2] -peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2 -decimals = 6 - -[RAY] -peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/RAY -decimals = 6 - -[RBT] -peggy_denom = factory/inj130g9fldgdee4dcqazhuaqxhkr6rx75p8ufrl3m/robo-test -decimals = 6 - -[RD] -peggy_denom = factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/ak -decimals = 6 - -[RED] -peggy_denom = factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/ReactDev -decimals = 6 - -[REKT] -peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/REKT -decimals = 6 - -[RIBBINJ] -peggy_denom = factory/inj1kdcu73qfsaq37x6vfq05a8gqcxftepxyhcvyg5/RIBBINJ -decimals = 9 - -[RIBBIT] -peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe -decimals = 18 - -[RICE] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/RICE -decimals = 12 - -[RKO] -peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/RKO -decimals = 6 - -[RON] -peggy_denom = factory/inj1fe2cl7p79g469604u6x5elrphm7k5nruylms52/RON -decimals = 6 - -[ROOT] -peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 -decimals = 6 - -[ROUTE] -peggy_denom = ibc/90FE7A5C905DA053907AEEABAE0C57E64C76D5346EE46F0E3C994C5470D311C0 -decimals = 0 - -[RUNE] -peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb -decimals = 18 - -[RUNES] -peggy_denom = factory/inj1ewgk2lynac2aa45yldl8cnnyped3ed8y0t76wx/RUNES -decimals = 6 - -[RYN] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/RYN -decimals = 6 - -[SAE] -peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/sae -decimals = 6 - -[SAGA] -peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 -decimals = 6 - -[SAMOLEANS] -peggy_denom = ibc/6FFBDD9EACD2AC8C3CB7D3BEE5258813BC41AEEEA65C150ECB63E2DDAC8FB454 -decimals = 0 - -[SANTA] -peggy_denom = factory/inj1zvy8xrlhe7ex9scer868clfstdv7j6vz790kwa/santa -decimals = 6 - -[SCRT] -peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A -decimals = 6 - -[SDEX] -peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF -decimals = 18 - -[SEI] -peggy_denom = sei -decimals = 6 - -[SEX] -peggy_denom = factory/inj1hqlt3hl54m2qf86r3xzqa4fjsxrylr3sk9gdzq/SEX -decimals = 6 - -[SGINU] -peggy_denom = factory/inj17ejzl5zkkxqt73w7xq90vfta5typu2yk7uj3gw/SGINU -decimals = 6 - -[SHA] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa -decimals = 6 - -[SHIB] -peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE -decimals = 18 - -[SHIBAINU] -peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/SHIBAINU -decimals = 6 - -[SHITBIT] -peggy_denom = factory/inj169w99uj9psyvhu7zunc5tnp8jjflc53np7vw06/SHITBIT -decimals = 6 - -[SHROOM] -peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 -decimals = 18 - -[SHSA] -peggy_denom = factory/inj1t9em6lv5x94w0d66nng6tqkrtrlhcpj9penatm/SHSA -decimals = 6 - -[SHURIKEN] -peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken -decimals = 6 - -[SKIPBIDIDOBDOBDOBYESYESYESYES] -peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d -decimals = 9 - -[SKk] -peggy_denom = factory/inj10jzww6ws9djfuhpnq8exhzf6um039fcww99myr/SKk -decimals = 6 - -[SLZ] -peggy_denom = factory/inj176tn6dtrvak9vrqkj2ejysuy5kctc6nphw7sfz/SLZ -decimals = 6 - -[SMELLY] -peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/smelly -decimals = 6 - -[SMR] -peggy_denom = factory/inj105rtd2gweld3ecde79tg4k8f53pe3ekl8n5t3v/SMR -decimals = 6 - -[SNOWY] -peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/snowy -decimals = 6 - -[SNS] -peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 -decimals = 8 - -[SNX] -peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F -decimals = 18 - -[SOL] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 -decimals = 8 - -[SOLlegacy] -peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 -decimals = 8 - -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B -decimals = 6 - -[SPDR] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spdr -decimals = 6 - -[SPDR2] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spdr2 -decimals = 6 - -[SPNG] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spng -decimals = 6 - -[SPUUN] -peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/spuun -decimals = 6 - -[SS] -peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/SuperSonic -decimals = 6 - -[SS-INJ-test] -peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/SS-INJ-test -decimals = 6 - -[SS2] -peggy_denom = factory/inj1ganr36p0r0ptfe95kq29647n93xpl6dz5wqdcr/SS2 -decimals = 9 - -[SSS] -peggy_denom = factory/inj1pzd88r8te7x4pxza2ujcm8ysu4x276ya2le2mh/SSS -decimals = 9 - -[ST] -peggy_denom = factory/inj15gxryjn2m9yze97lem488qgq2q84vge8eksqfq/supertoken123 -decimals = 6 - -[STARS] -peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca -decimals = 18 - -[STINJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj -decimals = 18 - -[STRD] -peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 -decimals = 6 - -[STT] -peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd -decimals = 18 - -[STX] -peggy_denom = stx -decimals = 6 - -[SUDD] -peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD -decimals = 6 - -[SUDD2] -peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD2 -decimals = 6 - -[SUDD3] -peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD3 -decimals = 6 - -[SUI] -peggy_denom = sui -decimals = 9 - -[SUN] -peggy_denom = factory/inj1req36v30g4syj363zzgnvzsnfhhxqyfphut30x/SUN -decimals = 6 - -[SUR] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/SUR -decimals = 6 - -[SUSDT] -peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/susdt -decimals = 6 - -[SUSHI] -peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd -decimals = 18 - -[SWAP] -peggy_denom = peggy0xcc4304a31d09258b0029ea7fe63d032f52e44efe -decimals = 18 - -[SYN] -peggy_denom = factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/syn -decimals = 6 - -[Sea] -peggy_denom = factory/inj1xh6c9px2aqg09cnd8ls2wxykm70d7ygxce2czh/Sea -decimals = 6 - -[Sep13] -peggy_denom = factory/inj1yyudepk0dzwhqareamtcmvzslrm6txxt9n2m36/Sep13 -decimals = 9 - -[Shiba INJ] -peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj -decimals = 6 - -[Shinobi] -peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi -decimals = 6 - -[Shrute] -peggy_denom = factory/inj1dng0drt6hncescgh0vwz22wjlhysn804pxnlar/Shrute -decimals = 6 - -[Shuriken Token] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken -decimals = 6 - -[Solana] -peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 -decimals = 8 - -[Sommelier] -peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 -decimals = 6 - -[SteadyBTC] -peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d -decimals = 18 - -[SteadyETH] -peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 -decimals = 18 - -[Stride Staked Injective] -peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 -decimals = 18 - -[Summoners Arena Essence] -peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB -decimals = 8 - -[SushiSwap] -peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 -decimals = 18 - -[TAB] -peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD -decimals = 18 - -[TALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis -decimals = 6 - -[TALKS1N] -peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TALKS1N -decimals = 6 - -[TALKS1N-INJ LP] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qvk5p306aqfvus6e0lktqwfsp0u478ckfddmv9 -decimals = 18 - -[TALKSIN] -peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TALKSIN -decimals = 6 - -[TAO] -peggy_denom = tao -decimals = 18 - -[TBT] -peggy_denom = factory/inj1xyfrl7wrsczv7ah5tvvpcwnp3vlc3n9terc9d6/TBT -decimals = 18 - -[TCK] -peggy_denom = factory/inj1fcj6mmsj44wm04ff77kuncqx6vg4cl9qsgugkg/TCHUCA -decimals = 6 - -[TEST] -peggy_denom = factory/inj153aamk0zm4hfmv66pzgf629a9mjs2fyjr46y6q/TEST -decimals = 6 - -[TEST-INJ LP] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1z0rfjmyvhxmek2z6z702dypxtarphruww40fxr -decimals = 18 - -[TEST1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 -decimals = 6 - -[TEST1-INJ LP] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1lz5wufvx8qnvpwnw936dsgacdfqcrvrzn7z99f -decimals = 18 - -[TEST10] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test10 -decimals = 6 - -[TEST11] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test11 -decimals = 6 - -[TEST12] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test12 -decimals = 6 - -[TEST1234] -peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/test1234 -decimals = 6 - -[TEST13] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test13 -decimals = 6 - -[TEST14] -peggy_denom = factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST14 -decimals = 6 - -[TEST2] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test2 -decimals = 6 - -[TEST2-INJ LP] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nv62axs4mmxfcuwg6v9aayyevxr4z7p9u0vn4y -decimals = 18 - -[TEST3] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test3 -decimals = 6 - -[TEST3-INJ LP] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1gf9dpyjtc5gfnc69nj6e67a2wrsjpruk3caywc -decimals = 18 - -[TEST4] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test4 -decimals = 6 - -[TEST5] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/TEST5 -decimals = 9 - -[TEST6] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST6 -decimals = 6 - -[TEST9] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test9 -decimals = 6 - -[TESTES] -peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/Testess -decimals = 6 - -[TESTING] -peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TESTING -decimals = 6 - -[TESTINTERNAL1] -peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TESTINTERNAL1 -decimals = 6 - -[TESTIT] -peggy_denom = factory/inj18skkzztnku04f9cmscg2hwsj6xrau73lvjtklk/TESTIT -decimals = 6 - -[TESTNETMEMECOIN69] -peggy_denom = factory/inj1u4uuueup7p30zfl9xvslddnen45dg7pylsq4td/TESTNETMEMECOIN69 -decimals = 6 - -[TESTTOKEN] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken1 -decimals = 0 - -[TESTTT] -peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/TESTTT -decimals = 6 - -[TEZ] -peggy_denom = factory/inj10nzx9ke6em2lhsvzakut8tah53m6j3972g4yhm/TEZ -decimals = 6 - -[TEvmos] -peggy_denom = ibc/300B5A980CA53175DBAC918907B47A2885CADD17042AD58209E777217D64AF20 -decimals = 18 - -[TFC] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TFC -decimals = 1 - -[TFT] -peggy_denom = peggy0x05599Ff7e3FC3bbA01e3F378dC9C20CB5Bea2b75 -decimals = 18 - -[THS] -peggy_denom = factory/inj1fkdanwufd5xedtgxjkhkftxm2xr55jn9saggs5/THS -decimals = 9 - -[TIA] -peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 -decimals = 6 - -[TINJ] -peggy_denom = peggy0x85AbEac4F09762e28a49D7dA91260A46766F4F79 -decimals = 18 - -[TINJT] -peggy_denom = factory/inj1gdxcak50wsvltn3pmcan437kt5hdnm0y480pj0/TINJT -decimals = 6 - -[TITOU] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TITOU -decimals = 6 - -[TITS] -peggy_denom = factory/inj1uacfgkzyjqcwll6l4n5l23y9k0k80alsc2yt0k/TITS -decimals = 6 - -[TIX] -peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/tix -decimals = 6 - -[TKN] -peggy_denom = peggy0xA4eE602c16C448Dc0D1fc38E6FC12f0d6C672Cbe -decimals = 18 - -[TLKSN] -peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TLKSN -decimals = 6 - -[TMERC] -peggy_denom = factory/inj13xl0ffk4hugh48cpvtxxulvyelv758anhdruw0/TMERC -decimals = 6 - -[TMTT] -peggy_denom = factory/inj135fg9urn32jrddswnlqjuryvsz2l3z7w0xlc3g/TMTT -decimals = 6 - -[TNAM1QXVG64PSVHWUMV3MWRRJFCZ0H3T3274HWGGYZCEE] -peggy_denom = ibc/F5EAC29F246C99F56219AAF6F70A521B9AB0082D8FFC63648744C4BADD28976C -decimals = 0 - -[TOM] -peggy_denom = factory/inj10pdtl2nvatk5we2z8q7jx70mqgz244vwdeljnr/TOM -decimals = 6 - -[TON] -peggy_denom = peggy0x582d872a1b094fc48f5de31d3b73f2d9be47def1 -decimals = 9 - -[TOPE] -peggy_denom = factory/inj18jnrfl0w8j3r9mg0xhs53wqjfn26l4qrx3rw7u/TOPE -decimals = 6 - -[TOR] -peggy_denom = factory/inj18g3fzlzcvm869nfqx6vx3w569l2ehc2x7yd9zn/TOR -decimals = 6 - -[TPINKIE] -peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/TPINKIE -decimals = 6 - -[TREN] -peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/TREN -decimals = 6 - -[TRIP] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TRIP -decimals = 18 - -[TRIPP] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TRIPP -decimals = 6 - -[TRIPPY] -peggy_denom = factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TRIPPY -decimals = 18 - -[TRUCPI] -peggy_denom = trucpi -decimals = 18 - -[TS] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo12 -decimals = 6 - -[TSK] -peggy_denom = factory/inj1uqtnkdsteaxhsjy4xug2t3cklxdaz52nrjmgru/TSK -decimals = 6 - -[TST] -peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test -decimals = 10 - -[TST2] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST2 -decimals = 6 - -[TST3] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST3 -decimals = 6 - -[TST4] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TST4 -decimals = 0 - -[TST5] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TST5 -decimals = 0 - -[TST6] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST6 -decimals = 6 - -[TSTESTTOKEN] -peggy_denom = factory/inj12ufkkhdg0u5lzxkljdanwn4955ev4ty3nk7l08/TSTESTTOKEN -decimals = 6 - -[TT] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go -decimals = 18 - -[TTE] -peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go12 -decimals = 18 - -[TTN] -peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/TESTTOKEN -decimals = 6 - -[TTNY] -peggy_denom = factory/inj1uc2lndfg7qlvhnwkknlnqr37ekwf40xulf4cur/TTNY -decimals = 6 - -[TTT] -peggy_denom = factory/inj12zmnpx2hupr35xmuyzyg28xxmqlf3svl8zyaxh/TTT -decimals = 9 - -[TTTA] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/TTTA -decimals = 6 - -[TTX] -peggy_denom = factory/inj1ayjd8psv86kmfsg7k54rmr2hnrsnczqwc3ecrt/thanhtx -decimals = 6 - -[TUS] -peggy_denom = factory/inj1q3lwaq6wwfv69wdyga0f67vpk824g3a0uzqhqy/TUS -decimals = 6 - -[Terra] -peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 -decimals = 6 - -[TerraUSD] -peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD -decimals = 18 - -[Test] -peggy_denom = factory/inj172z2fxya77cfeknz93vv4hxegfdave6g7uz9y9/Test -decimals = 6 - -[Test QAT] -peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen -decimals = 8 - -[Test1] -peggy_denom = factory/inj1v2py2tvjpkntltgv79jj3mwe3hnqm2pvavu0ed/Test1 -decimals = 6 - -[Test2] -peggy_denom = factory/inj1v2py2tvjpkntltgv79jj3mwe3hnqm2pvavu0ed/Test2 -decimals = 6 - -[TestINJ91] -peggy_denom = factory/inj1yu5nmgrz0tzhlffmlmrff7zx3rfdwlju587vlc/TestINJ91 -decimals = 6 - -[TestInj] -peggy_denom = factory/inj172z2fxya77cfeknz93vv4hxegfdave6g7uz9y9/TestInj -decimals = 6 - -[TestOne] -peggy_denom = factory/inj1tu3en98ngtwlyszd55j50t0y6lpuf6dqf0rz4l/TestOne -decimals = 6 - -[Testeb] -peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/Testeb -decimals = 6 - -[Tether] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 -decimals = 6 - -[Token with fee on transfer] -peggy_denom = peggy0x290FB1D3CFA67A0305608E457B31e368d82F3153 -decimals = 18 - -[Torres] -peggy_denom = factory/inj18wy4ns607slpn728rm88zl6jlrkd5dx48ew6ke/Torres -decimals = 6 - -[UANDR] -peggy_denom = ibc/4EF7835F49907C402631998B8F54FAA007B01999708C54A0F8DAABFAA793DA56 -decimals = 0 - -[UATOM] -peggy_denom = ibc/1738C5DCDE442A5614652C57AEAD4C37BB2E167402A0661754A868F3AE70C1A0 -decimals = 0 - -[UCBC] -peggy_denom = factory/inj13vmnwk6hvhvzpptm0m80skphlq3pmq3gelcdjf/UCBC -decimals = 6 - -[ULUNA] -peggy_denom = ibc/3848612C1ADD343CF42B2B4D2D1B68BBE419BCF97E0B6DD29B6C412E2CD23DC5 -decimals = 0 - -[UMA] -peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 -decimals = 18 - -[UNI] -peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 -decimals = 18 - -[UNICORN] -peggy_denom = factory/inj1mrdkgz462sq0tvly8vzv0s320g8yyf67crxwdt/corn -decimals = 0 - -[UNOIS] -peggy_denom = ibc/A190CF3FC762D25A46A49E7CB0E998F4A494C7F64A356DA17C25A2D8B0069D3B -decimals = 0 - -[UOSMO] -peggy_denom = ibc/289D9B2071AD91C3E5529F68AF63497E723B506CE2480E0A39A2828D81A75739 -decimals = 0 - -[UPE] -peggy_denom = factory/inj1lahxt4xg8xu2dwjjsagjaj6lsg4q96uhnt2x6n/UPE -decimals = 6 - -[UPHOTON] -peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB -decimals = 6 - -[UPRYZM] -peggy_denom = ibc/89B44726816D9DB5C77B6D2E2A007A520C002355DA577001C56072EE5A903B05 -decimals = 0 - -[USD Coin] -peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E -decimals = 6 - -[USD Coin (legacy)] -peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk -decimals = 6 - -[USDC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc -decimals = 6 - -[USDC-MPL] -peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A -decimals = 6 - -[USDC-USDT LP] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1vd0mf8a39xwr9hav2g7e8lmur07utjrjv025kd -decimals = 18 - -[USDCarb] -peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r -decimals = 6 - -[USDCbsc] -peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu -decimals = 6 - -[USDCet] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw -decimals = 6 - -[USDCgateway] -peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 -decimals = 6 - -[USDClegacy] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 -decimals = 6 - -[USDCpoly] -peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 -decimals = 6 - -[USDCso] -peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu -decimals = 6 - -[USDT] -peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 -decimals = 6 - -[USDT-USDC LP] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1a9chuqkye3dytgzg4060nj4kglxt8tx3kr6mwv -decimals = 18 - -[USDT_31DEC23] -peggy_denom = factory/inj1m8vmsa84ha7up6cx3v7y7jj9egzl3u3vyzqml0/test_denom -decimals = 6 - -[USDTap] -peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 -decimals = 6 - -[USDTbsc] -peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj -decimals = 6 - -[USDTet] -peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 -decimals = 6 - -[USDTkv] -peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB -decimals = 6 - -[USDTso] -peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd -decimals = 6 - -[USDY] -peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 -decimals = 18 - -[USDYet] -peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C -decimals = 18 - -[USDe] -peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 -decimals = 18 - -[UST] -peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C -decimals = 18 - -[UTK] -peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c -decimals = 18 - -[UUSDC] -peggy_denom = ibc/9EBCC3CA961DED955B08D249B01DCB03E4C6D0D31BE98A477716C54CC5DDB51B -decimals = 0 - -[UXION] -peggy_denom = ibc/6AB81EFD48DC233A206FAD0FB6F2691A456246C4A7F98D0CD37E2853DD0493EA -decimals = 0 - -[Unknown] -peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 -decimals = 6 - -[V122] -peggy_denom = factory/inj14j92m8pyncutgk53ujpxcm2pewetez3yhmrdjw/V122 -decimals = 9 - -[VATRENI] -peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay -decimals = 8 - -[VDRR] -peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vaderr -decimals = 6 - -[VIC] -peggy_denom = factory/inj17l29rphqjy0fwud3xq4sf2zxhnhj4ue87df9u9/VIC -decimals = 6 - -[VICx] -peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VICx -decimals = 6 - -[VRD] -peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 -decimals = 18 - -[VVV] -peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/VVV -decimals = 6 - -[W] -peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 -decimals = 6 - -[W3B] -peggy_denom = factory/inj1m7l6lmuf889k6vexvx74wrzuht2u8veclvy9hs/W3B -decimals = 6 - -[WAGMI] -peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi -decimals = 9 - -[WAIFU] -peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu -decimals = 6 - -[WASSIE] -peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 -decimals = 18 - -[WBTC-USDT LP] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1t9c9yggeyxfd0x8jfu869xvyksg5ytjlhmv4fz -decimals = 18 - -[WFD] -peggy_denom = factory/inj1zj8dd6lu96lep97hguuch3lzwkcgr7edj0sjg2/WFD -decimals = 6 - -[WGMI] -peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/wgmi -decimals = 6 - -[WHALE] -peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 -decimals = 6 - -[WHAT] -peggy_denom = peggy0x69aa609A08ad451d45009834874C8c6D459d7731 -decimals = 9 - -[WIF] -peggy_denom = wif -decimals = 6 - -[WIZZ] -peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/wizz -decimals = 6 - -[WKLAY] -peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 -decimals = 8 - -[WMATIC] -peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC -decimals = 8 - -[WMATIClegacy] -peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h -decimals = 8 - -[WNINJ] -peggy_denom = factory/inj1gzg7vp5yds59hqw7swncz43zuktpx9jdmdlmmf/wnINJ -decimals = 18 - -[WONKA] -peggy_denom = factory/inj189hl8wqhf89r2l6x9arhtj2n8zx73cmsmts6pc/wonka -decimals = 6 - -[WOSMO] -peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 -decimals = 6 - -[WSB] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-WSB -decimals = 6 - -[WSTETH] -peggy_denom = peggy0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 -decimals = 18 - -[War] -peggy_denom = factory/inj10ehr7vet33h9ezphsk6uufm4wqg50sp93pqqe8/War -decimals = 6 - -[Wrapped Bitcoin] -peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku -decimals = 18 - -[Wrapped Ethereum] -peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc -decimals = 8 - -[XAC] -peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 -decimals = 8 - -[XAG] -peggy_denom = xag -decimals = 6 - -[XAU] -peggy_denom = xau -decimals = 6 - -[XBX] -peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 -decimals = 18 - -[XIII] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII -decimals = 6 - -[XIII-COMBINED] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII-COMBINED -decimals = 6 - -[XIII-FINAL] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII-FINAL -decimals = 6 - -[XIIItest] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIIItest -decimals = 6 - -[XION] -peggy_denom = ibc/DAB0823884DB5785F08EE136EE9EB362E166F4C7455716641B03E93CE7F14193 -decimals = 6 - -[XIV] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIV -decimals = 6 - -[XIV-TEST1] -peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIV-TEST1 -decimals = 6 - -[XNJ] -peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar -decimals = 18 - -[XPLA] -peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe -decimals = 8 - -[XPRT] -peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB -decimals = 6 - -[XRP] -peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe -decimals = 18 - -[XTALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis -decimals = 6 - -[XTBV4] -peggy_denom = peggy0x33132640fF610A2E362856530a2D1E5d60FAe191 -decimals = 18 - -[YFI] -peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e -decimals = 18 - -[YOHOHO] -peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/yoyo -decimals = 18 - -[YOLO] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/YOLO -decimals = 6 - -[YOMI] -peggy_denom = factory/inj1tlqtznd9gh0a53krerduzdsfadafamag0svccu/YoshiMitsu -decimals = 6 - -[YUE] -peggy_denom = factory/inj1la29j54twr2mucn2z6dewmhcpy3m20sud79fut/YUE -decimals = 15 - -[YUKI] -peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/yuki -decimals = 6 - -[ZEN] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen -decimals = 18 - -[ZIG] -peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 -decimals = 18 - -[ZIN] -peggy_denom = factory/inj1xqtgc8v3w5yzcr5w5f40k8exp5j4k0uhumn5fh/ZIN -decimals = 6 - -[ZIP] -peggy_denom = factory/inj169w99uj9psyvhu7zunc5tnp8jjflc53np7vw06/ZIP -decimals = 6 - -[ZK] -peggy_denom = zk -decimals = 18 - -[ZNA] -peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/ZNA -decimals = 18 - -[ZOZY] -peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/ZOZY -decimals = 6 - -[ZRO] -peggy_denom = zro -decimals = 6 - -[ZRX] -peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 -decimals = 18 - -[Zorro] -peggy_denom = factory/inj1v58n67dssmd5g3eva6dxmenm7g4qp2t7zkht94/Zorro -decimals = 0 - -[abc] -peggy_denom = factory/inj1lsg0lsz6rydfhu3x240nra037rk9w6uydlempj/abc -decimals = 9 - -[abcefz] -peggy_denom = factory/inj1wd3xjvya2tdvh3zscdu8sewdys4zv0ruqld06f/abcefz -decimals = 0 - -[abv] -peggy_denom = factory/inj1wrg096y69grgf8yg6tqxnh0tdwx4x47rsj8rs3/abv -decimals = 18 - -[adfadf] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/fadsf -decimals = 6 - -[adfasf] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/adfasf -decimals = 6 - -[afdf] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/afda -decimals = 6 - -[ahwtf] -peggy_denom = factory/inj1tvwa4ug70d26k84y2zkvzykyu3vuce5lp2f60d/ahwtf -decimals = 6 - -[ankara] -peggy_denom = factory/inj1hslxdwcszyjesl0e7q339qvqme8jtpkgvfw667/ankara -decimals = 6 - -[arkSYN] -peggy_denom = factory/inj17ghwrdm2u2xsv8emlltqz3h3s6wvqcsdptr38z/arkSYN -decimals = 18 - -[as] -peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/aaa2 -decimals = 0 - -[axlUSDC] -peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 -decimals = 6 - -[b123123] -peggy_denom = factory/inj18qxpzpkqpzuxqe37zr8jgc3f52mpv4nem9qhhe/b123123 -decimals = 9 - -[bINJ] -peggy_denom = factory/inj1dxp690rd86xltejgfq2fa7f2nxtgmm5cer3hvu/binj -decimals = 18 - -[bab] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/bab -decimals = 6 - -[band] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-0 -decimals = 6 - -[bbk] -peggy_denom = factory/inj19lpvmsjush9l03csrkky9xynejfv229h5mttut/bbk -decimals = 6 - -[bdlsj] -peggy_denom = factory/inj18skkzztnku04f9cmscg2hwsj6xrau73lvjtklk/bdlsj -decimals = 6 - -[bior] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nnn -decimals = 6 - -[bnUSD] -peggy_denom = inj1qspaxnztkkzahvp6scq6xfpgafejmj2td83r9j -decimals = 18 - -[btc] -peggy_denom = factory/inj1lklvs2hgkvdjzzltd4nqw9vtcqwdkjv74xgz4n/btc -decimals = 9 - -[bzb] -peggy_denom = factory/inj19lpvmsjush9l03csrkky9xynejfv229h5mttut/bzb -decimals = 6 - -[como] -peggy_denom = factory/inj1pp0vx4nd96fdqw2kyj44ytx6xx7yu0368m5lpv/como -decimals = 6 - -[cook] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/cook -decimals = 6 - -[cookie] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/cookie -decimals = 6 - -[cxld] -peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/cxld -decimals = 6 - -[cxlddd] -peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/cxlddd -decimals = 6 - -[dINJ] -peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 -decimals = 18 - -[dWIF] -peggy_denom = factory/inj1gdvjnrz6xx9ag293syafjjfk4t9pn73kmufxn3/dWIF -decimals = 6 - -[dYdX] -peggy_denom = peggy0x92d6c1e31e14520e676a687f0a93788b716beff5 -decimals = 18 - -[ddd] -peggy_denom = factory/inj1e3m5wx60p2q0tjyg976c805tnt60xdx4cqmskj/ddd -decimals = 6 - -[dfdf] -peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/dfdf -decimals = 6 - -[dffd] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/dffd -decimals = 6 - -[diesel] -peggy_denom = factory/inj14830p49gtge4tdxs2t8jujzlc3c08evgx0h9uv/diesel -decimals = 6 - -[duynt-1] -peggy_denom = factory/inj137tf29euf7spx5jdaax5eamsmuvg08sgauf9ad/duynt-1 -decimals = 9 - -[ezETH] -peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 -decimals = 18 - -[fINJ] -peggy_denom = factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test -decimals = 0 - -[fUSDT] -peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 -decimals = 8 - -[factory//lpinj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc] -peggy_denom = factory//lpinj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc -decimals = 18 - -[factory//lpinj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz] -peggy_denom = factory//lpinj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz -decimals = 18 - -[factory//lpinj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv] -peggy_denom = factory//lpinj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv -decimals = 18 - -[factory//lpinj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux] -peggy_denom = factory//lpinj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux -decimals = 18 - -[factory//lpinj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9] -peggy_denom = factory//lpinj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9 -decimals = 18 - -[factory//lpinj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m] -peggy_denom = factory//lpinj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m -decimals = 18 - -[factory//lpinj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl] -peggy_denom = factory//lpinj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl -decimals = 18 - -[factory//lpinj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn] -peggy_denom = factory//lpinj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn -decimals = 18 - -[factory/inj104lf4g3qelkz5w0vjhdesd4gp2nhsj9zy9zz0p/hoa6] -peggy_denom = factory/inj104lf4g3qelkz5w0vjhdesd4gp2nhsj9zy9zz0p/hoa6 -decimals = 0 - -[factory/inj104y00apw6uu26gthl7cafztdy67hhmwksekdem/position] -peggy_denom = factory/inj104y00apw6uu26gthl7cafztdy67hhmwksekdem/position -decimals = 0 - -[factory/inj106d64c09qyg6hrzdqx67spdqnp2pgrsd3sd7f8/position] -peggy_denom = factory/inj106d64c09qyg6hrzdqx67spdqnp2pgrsd3sd7f8/position -decimals = 0 - -[factory/inj106rseec0xmv5k06aaf8jsnr57ajw76rxa3gpwm/position] -peggy_denom = factory/inj106rseec0xmv5k06aaf8jsnr57ajw76rxa3gpwm/position -decimals = 0 - -[factory/inj107aqkjc3t5r3l9j4n9lgrma5tm3jav8qgppz6m/position] -peggy_denom = factory/inj107aqkjc3t5r3l9j4n9lgrma5tm3jav8qgppz6m/position -decimals = 0 - -[factory/inj107skcseta3egagj822d3qdgusx7a7ua7sepmcf/position] -peggy_denom = factory/inj107skcseta3egagj822d3qdgusx7a7ua7sepmcf/position -decimals = 0 - -[factory/inj107srzqksjtdevlpw888vuyrnqmlpjuv64ytm85/position] -peggy_denom = factory/inj107srzqksjtdevlpw888vuyrnqmlpjuv64ytm85/position -decimals = 0 - -[factory/inj108kv68d4x747v4ap0l66ckyn963gedc4qvwml7/position] -peggy_denom = factory/inj108kv68d4x747v4ap0l66ckyn963gedc4qvwml7/position -decimals = 0 - -[factory/inj108t3mlej0dph8er6ca2lq5cs9pdgzva5mqsn5p/position] -peggy_denom = factory/inj108t3mlej0dph8er6ca2lq5cs9pdgzva5mqsn5p/position -decimals = 0 - -[factory/inj109rcepnmg7ewjcc4my3448jm3h0yjdwcl6kmnl/position] -peggy_denom = factory/inj109rcepnmg7ewjcc4my3448jm3h0yjdwcl6kmnl/position -decimals = 0 - -[factory/inj10ajd3f46mp755wmhgke8w4vcegfjndwfzymf82/position] -peggy_denom = factory/inj10ajd3f46mp755wmhgke8w4vcegfjndwfzymf82/position -decimals = 0 - -[factory/inj10fz2cj00ee80y76pdzg06dxfamat8nfpr9vl5s/position] -peggy_denom = factory/inj10fz2cj00ee80y76pdzg06dxfamat8nfpr9vl5s/position -decimals = 0 - -[factory/inj10g45te2l6s77jzxszjp9q6tsnn23l5suhnqmdz/position] -peggy_denom = factory/inj10g45te2l6s77jzxszjp9q6tsnn23l5suhnqmdz/position -decimals = 0 - -[factory/inj10hmmvlqq6rrlf2c2v982d6xqsns4m3sy086r27/position] -peggy_denom = factory/inj10hmmvlqq6rrlf2c2v982d6xqsns4m3sy086r27/position -decimals = 0 - -[factory/inj10ngu4y3t2zvn4xjfsmm73gvf03mcscrtrgjp0t/ak] -peggy_denom = factory/inj10ngu4y3t2zvn4xjfsmm73gvf03mcscrtrgjp0t/ak -decimals = 6 - -[factory/inj10nv20xe4x325sq557ddcmsyla7zaj6pnssrfw9/position] -peggy_denom = factory/inj10nv20xe4x325sq557ddcmsyla7zaj6pnssrfw9/position -decimals = 0 - -[factory/inj10p8ma8z6nrwm4u7kjn8gcc3dcm490sgp0d24az/position] -peggy_denom = factory/inj10p8ma8z6nrwm4u7kjn8gcc3dcm490sgp0d24az/position -decimals = 0 - -[factory/inj10r5lmqqu7qznvpffxkpwgxk0d3yrj82nj8gukz/position] -peggy_denom = factory/inj10r5lmqqu7qznvpffxkpwgxk0d3yrj82nj8gukz/position -decimals = 0 - -[factory/inj10u2e7h04fxlklnk34kjwuwfexmq8g8fke8zye8/position] -peggy_denom = factory/inj10u2e7h04fxlklnk34kjwuwfexmq8g8fke8zye8/position -decimals = 0 - -[factory/inj10u9gdgvqm90uh2ry27phtp3enhcxkwrvw0upq4/position] -peggy_denom = factory/inj10u9gdgvqm90uh2ry27phtp3enhcxkwrvw0upq4/position -decimals = 0 - -[factory/inj10uycavvkc4uqr8tns3599r0t2xux4rz3y8apym/1684002313InjUsdt1d110C] -peggy_denom = factory/inj10uycavvkc4uqr8tns3599r0t2xux4rz3y8apym/1684002313InjUsdt1d110C -decimals = 0 - -[factory/inj10v8zx4v6sgv86v9gvrm8xuv82yut469jhgahch/position] -peggy_denom = factory/inj10v8zx4v6sgv86v9gvrm8xuv82yut469jhgahch/position -decimals = 0 - -[factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt] -peggy_denom = factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt -decimals = 6 - -[factory/inj10xw27amgy7lc55r4g3z2uyxqm0p0l5xyeajvq6/position] -peggy_denom = factory/inj10xw27amgy7lc55r4g3z2uyxqm0p0l5xyeajvq6/position -decimals = 0 - -[factory/inj120xfj9muh5x5kxujgz2xwqh70zc034jt4cpjl0/position] -peggy_denom = factory/inj120xfj9muh5x5kxujgz2xwqh70zc034jt4cpjl0/position -decimals = 0 - -[factory/inj12264e59fxnly8dlfyq8eyhx4nuqcfejukwkr0d/ak] -peggy_denom = factory/inj12264e59fxnly8dlfyq8eyhx4nuqcfejukwkr0d/ak -decimals = 0 - -[factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/am] -peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/am -decimals = 0 - -[factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/ma] -peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/ma -decimals = 0 - -[factory/inj123mw4nhxxm69rl9pvzdhrasjjqs6suyj2qjpyj/position] -peggy_denom = factory/inj123mw4nhxxm69rl9pvzdhrasjjqs6suyj2qjpyj/position -decimals = 0 - -[factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/DGNZ] -peggy_denom = factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/DGNZ -decimals = 6 - -[factory/inj1275nlajjvqllkeupd65raqq3jcnm68qtzr8x8w/position] -peggy_denom = factory/inj1275nlajjvqllkeupd65raqq3jcnm68qtzr8x8w/position -decimals = 0 - -[factory/inj12azw92dc7u7a2fy0ndvr4w57hlsl48xdsm49ym/123] -peggy_denom = factory/inj12azw92dc7u7a2fy0ndvr4w57hlsl48xdsm49ym/123 -decimals = 0 - -[factory/inj12chntfdjyk9juvy5rlhe8tg2240mu5ulysu0ap/123] -peggy_denom = factory/inj12chntfdjyk9juvy5rlhe8tg2240mu5ulysu0ap/123 -decimals = 0 - -[factory/inj12cpfpmnc6at9a67qvg6t7uqjaz9glexcl85xf5/test] -peggy_denom = factory/inj12cpfpmnc6at9a67qvg6t7uqjaz9glexcl85xf5/test -decimals = 0 - -[factory/inj12e7m2n4fspavdxm5c35wakwq54se9vadufytv3/position] -peggy_denom = factory/inj12e7m2n4fspavdxm5c35wakwq54se9vadufytv3/position -decimals = 0 - -[factory/inj12ey59nafu36zpn5n428qqqw0jcr2aukphk5up3/USDC] -peggy_denom = factory/inj12ey59nafu36zpn5n428qqqw0jcr2aukphk5up3/USDC -decimals = 0 - -[factory/inj12f9v6rpd937gl8rggjprtd8egnt82yjwc9nu67/position] -peggy_denom = factory/inj12f9v6rpd937gl8rggjprtd8egnt82yjwc9nu67/position -decimals = 0 - -[factory/inj12h28c3a97savf42w0tarnjh9wza2wyx8v00r0n/position] -peggy_denom = factory/inj12h28c3a97savf42w0tarnjh9wza2wyx8v00r0n/position -decimals = 0 - -[factory/inj12hlpupnx80wj2ummwrjuw99mvr8a2z7us28n0g/position] -peggy_denom = factory/inj12hlpupnx80wj2ummwrjuw99mvr8a2z7us28n0g/position -decimals = 0 - -[factory/inj12lhpaueukkvq6v77mk0weawffa2nq9fv7h39ls/123] -peggy_denom = factory/inj12lhpaueukkvq6v77mk0weawffa2nq9fv7h39ls/123 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew1] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew1 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew3] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew3 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward1] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward1 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward2] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward2 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward3] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward3 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward4] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward4 -decimals = 0 - -[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/test1] -peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/test1 -decimals = 0 - -[factory/inj12q3yjpr4rapsry7ccrmmrlgktn5dczca0c2upn/position] -peggy_denom = factory/inj12q3yjpr4rapsry7ccrmmrlgktn5dczca0c2upn/position -decimals = 0 - -[factory/inj12rh3d4xdhlvpqenrd04qhefcmxjsqpnewz3r6c/position] -peggy_denom = factory/inj12rh3d4xdhlvpqenrd04qhefcmxjsqpnewz3r6c/position -decimals = 0 - -[factory/inj12v9093vclva8930h4ptagh5pz7zg5wx5ch6d4g/position] -peggy_denom = factory/inj12v9093vclva8930h4ptagh5pz7zg5wx5ch6d4g/position -decimals = 0 - -[factory/inj12vdzxz9cngv3r250y0snwmc5w7u6dfpfvdw75s/SORA] -peggy_denom = factory/inj12vdzxz9cngv3r250y0snwmc5w7u6dfpfvdw75s/SORA -decimals = 0 - -[factory/inj12ve3saad36nr0jnj4whslpvct8adecydx8cxvh/position] -peggy_denom = factory/inj12ve3saad36nr0jnj4whslpvct8adecydx8cxvh/position -decimals = 0 - -[factory/inj12z248hyzzmpx57z7qfa075gv6mh6efqhfh9xda/position] -peggy_denom = factory/inj12z248hyzzmpx57z7qfa075gv6mh6efqhfh9xda/position -decimals = 0 - -[factory/inj12z5ym8nuu4g6xw48rjd25unkx3fa596qhvq7j3/position] -peggy_denom = factory/inj12z5ym8nuu4g6xw48rjd25unkx3fa596qhvq7j3/position -decimals = 0 - -[factory/inj130y99nqtke8hs2y7lksq8hq83rlvuf2ls8dxrw/ak] -peggy_denom = factory/inj130y99nqtke8hs2y7lksq8hq83rlvuf2ls8dxrw/ak -decimals = 6 - -[factory/inj1337ec3yzclg34usjeecs379jnngwsludf3ktc8/Fund3] -peggy_denom = factory/inj1337ec3yzclg34usjeecs379jnngwsludf3ktc8/Fund3 -decimals = 0 - -[factory/inj133psax2mn2sx3gwl2jz46mjye4ykf60tqktwsj/position] -peggy_denom = factory/inj133psax2mn2sx3gwl2jz46mjye4ykf60tqktwsj/position -decimals = 0 - -[factory/inj134g8gmtnp9d30k8kas06p2lu74pv73hwnj9acp/position] -peggy_denom = factory/inj134g8gmtnp9d30k8kas06p2lu74pv73hwnj9acp/position -decimals = 0 - -[factory/inj1372sy27ey4y7smdmxvqjqxd9zfvj0m92pndq37/position] -peggy_denom = factory/inj1372sy27ey4y7smdmxvqjqxd9zfvj0m92pndq37/position -decimals = 0 - -[factory/inj1379wdcffrl3k9peggxz90z2exra3xzyt4khpdq/position] -peggy_denom = factory/inj1379wdcffrl3k9peggxz90z2exra3xzyt4khpdq/position -decimals = 0 - -[factory/inj137ag64fnuy3t0eezuep6uzh5e54nmg6lh97vdn/position] -peggy_denom = factory/inj137ag64fnuy3t0eezuep6uzh5e54nmg6lh97vdn/position -decimals = 0 - -[factory/inj137kh22j9tevesy9qj2v783ysk23lc5pgl70u5f/BTC] -peggy_denom = factory/inj137kh22j9tevesy9qj2v783ysk23lc5pgl70u5f/BTC -decimals = 0 - -[factory/inj137ymec4et82mk456v287s90ktl3zneajhda02j/position] -peggy_denom = factory/inj137ymec4et82mk456v287s90ktl3zneajhda02j/position -decimals = 0 - -[factory/inj1389hh5y5vy9sycdpja6l8lddhxft80srafdvs5/bINJ] -peggy_denom = factory/inj1389hh5y5vy9sycdpja6l8lddhxft80srafdvs5/bINJ -decimals = 0 - -[factory/inj139f38e6tkdjva22gjvjs35h5d068pddssthp8k/duynt-1] -peggy_denom = factory/inj139f38e6tkdjva22gjvjs35h5d068pddssthp8k/duynt-1 -decimals = 9 - -[factory/inj13a3f3s2ts0vv6f07anaxrv8275hea5nydfy7mn/position] -peggy_denom = factory/inj13a3f3s2ts0vv6f07anaxrv8275hea5nydfy7mn/position -decimals = 0 - -[factory/inj13arjxgukmeadxuphhzfe3nc3m0e4prcjhyhq0v/position] -peggy_denom = factory/inj13arjxgukmeadxuphhzfe3nc3m0e4prcjhyhq0v/position -decimals = 0 - -[factory/inj13gcmxkhstgc932m5dw7t5nvsgq0xs4jjth02ru/position] -peggy_denom = factory/inj13gcmxkhstgc932m5dw7t5nvsgq0xs4jjth02ru/position -decimals = 0 - -[factory/inj13gpnyear408r74gz67tkufqxerzmleze4jpzk4/position] -peggy_denom = factory/inj13gpnyear408r74gz67tkufqxerzmleze4jpzk4/position -decimals = 0 - -[factory/inj13grw8z57336maklzmcrtqdavl3f0l2krdje7la/position] -peggy_denom = factory/inj13grw8z57336maklzmcrtqdavl3f0l2krdje7la/position -decimals = 0 - -[factory/inj13hvnqrr68qghfqqrnuupqapjf3jdcn8s3ydnd4/position] -peggy_denom = factory/inj13hvnqrr68qghfqqrnuupqapjf3jdcn8s3ydnd4/position -decimals = 0 - -[factory/inj13hzl5jn3snav6caduvs7nnu9aq29djqvvahmfl/position] -peggy_denom = factory/inj13hzl5jn3snav6caduvs7nnu9aq29djqvvahmfl/position -decimals = 0 - -[factory/inj13jktgp099d9nn05tapg2sk3p6lry5un3gt2khm/position] -peggy_denom = factory/inj13jktgp099d9nn05tapg2sk3p6lry5un3gt2khm/position -decimals = 0 - -[factory/inj13kg0eejq4cea4xrn6hgwxh9qejxpu3m66vgjg7/1716285818InjUsdt2d0.95P] -peggy_denom = factory/inj13kg0eejq4cea4xrn6hgwxh9qejxpu3m66vgjg7/1716285818InjUsdt2d0.95P -decimals = 0 - -[factory/inj13ll3ymyvcpx3psw0lw6eft7rvl8j59e5cgtrl6/position] -peggy_denom = factory/inj13ll3ymyvcpx3psw0lw6eft7rvl8j59e5cgtrl6/position -decimals = 0 - -[factory/inj13lpntvupm345s50ry2pqp0wanqgxqdt5d6p8lx/position] -peggy_denom = factory/inj13lpntvupm345s50ry2pqp0wanqgxqdt5d6p8lx/position -decimals = 0 - -[factory/inj13m8k8z8yprd8ml8nehgdgaszgpkdfj600hhnp9/test] -peggy_denom = factory/inj13m8k8z8yprd8ml8nehgdgaszgpkdfj600hhnp9/test -decimals = 0 - -[factory/inj13mk0qhujr7jrmfa6ythmu9am6kjnlh6c56v65x/position] -peggy_denom = factory/inj13mk0qhujr7jrmfa6ythmu9am6kjnlh6c56v65x/position -decimals = 0 - -[factory/inj13n6u7985zal9jdncfyqpk9mvk06gwnuscxdv9m/position] -peggy_denom = factory/inj13n6u7985zal9jdncfyqpk9mvk06gwnuscxdv9m/position -decimals = 0 - -[factory/inj13q53lemdwyzk075g0plmrxauk8xzl90rcnzvy3/position] -peggy_denom = factory/inj13q53lemdwyzk075g0plmrxauk8xzl90rcnzvy3/position -decimals = 0 - -[factory/inj13qw7vw4zwaup4l66d4x3nv237rp5lz76lry5rt/position] -peggy_denom = factory/inj13qw7vw4zwaup4l66d4x3nv237rp5lz76lry5rt/position -decimals = 0 - -[factory/inj13qyx2l223zuc6zuthzhqctqpj6pd2uehugueyu/BTC] -peggy_denom = factory/inj13qyx2l223zuc6zuthzhqctqpj6pd2uehugueyu/BTC -decimals = 9 - -[factory/inj13rrx4978c09yauvszy2k6velzpxj5u9wqmvzfa/position] -peggy_denom = factory/inj13rrx4978c09yauvszy2k6velzpxj5u9wqmvzfa/position -decimals = 0 - -[factory/inj13s80vf90lu5x0wh4p0uccshwaajhd0v9y58kxh/position] -peggy_denom = factory/inj13s80vf90lu5x0wh4p0uccshwaajhd0v9y58kxh/position -decimals = 0 - -[factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA] -peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA -decimals = 6 - -[factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/TEST] -peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/TEST -decimals = 6 - -[factory/inj13uegzntzhvesqgutkste6y483dznrlsc70ymvk/position] -peggy_denom = factory/inj13uegzntzhvesqgutkste6y483dznrlsc70ymvk/position -decimals = 0 - -[factory/inj13urjtxzgfy6g6x85ewpuq97jd9r7q92plp9s37/position] -peggy_denom = factory/inj13urjtxzgfy6g6x85ewpuq97jd9r7q92plp9s37/position -decimals = 0 - -[factory/inj13wp96prwk7dvh5ekrlld896xnawd38gn8jnydh/position] -peggy_denom = factory/inj13wp96prwk7dvh5ekrlld896xnawd38gn8jnydh/position -decimals = 0 - -[factory/inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx/lp] -peggy_denom = factory/inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx/lp -decimals = 0 - -[factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/ak] -peggy_denom = factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/ak -decimals = 0 - -[factory/inj140360nr9ttkv0ekts5vnmsdv55kfhacqpqsahe/test] -peggy_denom = factory/inj140360nr9ttkv0ekts5vnmsdv55kfhacqpqsahe/test -decimals = 0 - -[factory/inj144hz9eva0vg5e69lfe5c8j6jusm4z2mvjjc9vy/position] -peggy_denom = factory/inj144hz9eva0vg5e69lfe5c8j6jusm4z2mvjjc9vy/position -decimals = 0 - -[factory/inj14558npfqefc5e3qye4arcs49falh0vusyknz7m/position] -peggy_denom = factory/inj14558npfqefc5e3qye4arcs49falh0vusyknz7m/position -decimals = 0 - -[factory/inj1468yhun3ta93aqyasmwp3rmgjp5z4le4vfcmrh/test] -peggy_denom = factory/inj1468yhun3ta93aqyasmwp3rmgjp5z4le4vfcmrh/test -decimals = 0 - -[factory/inj146w955lesh75vampgn23eccy9yzaf46yaa60nh/position] -peggy_denom = factory/inj146w955lesh75vampgn23eccy9yzaf46yaa60nh/position -decimals = 0 - -[factory/inj147dmmltelpvkjcfneg5r4q66glhe2rmr2hmm59/lp] -peggy_denom = factory/inj147dmmltelpvkjcfneg5r4q66glhe2rmr2hmm59/lp -decimals = 0 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo13] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo13 -decimals = 6 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-erc] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-erc -decimals = 0 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-fct] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-fct -decimals = 0 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test -decimals = 0 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test2] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test2 -decimals = 0 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test3] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test3 -decimals = 6 - -[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test4] -peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test4 -decimals = 6 - -[factory/inj147z3gktuc897hg9hp9razjqyj9uxfhhlck8y45/usdt] -peggy_denom = factory/inj147z3gktuc897hg9hp9razjqyj9uxfhhlck8y45/usdt -decimals = 0 - -[factory/inj14arqtqs4g4k6l6xhm37ga7dnks4l5ctd8n7hvv/position] -peggy_denom = factory/inj14arqtqs4g4k6l6xhm37ga7dnks4l5ctd8n7hvv/position -decimals = 0 - -[factory/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku/phuc] -peggy_denom = factory/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku/phuc -decimals = 6 - -[factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/asg] -peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/asg -decimals = 8 - -[factory/inj14g9kg0smwfhmrg86sun8pegs5jemd0ngpnl0jr/position] -peggy_denom = factory/inj14g9kg0smwfhmrg86sun8pegs5jemd0ngpnl0jr/position -decimals = 0 - -[factory/inj14gtwrd65zehu99cka0j65597jglgvmdxcwmvps/position] -peggy_denom = factory/inj14gtwrd65zehu99cka0j65597jglgvmdxcwmvps/position -decimals = 0 - -[factory/inj14gzpam4a5cvy49g3kht9sj4rq4lxqcn50zh3zt/position] -peggy_denom = factory/inj14gzpam4a5cvy49g3kht9sj4rq4lxqcn50zh3zt/position -decimals = 0 - -[factory/inj14l850zpucene39qnkfqvtdlh6wz4cxphfn6uvx/duynt-1] -peggy_denom = factory/inj14l850zpucene39qnkfqvtdlh6wz4cxphfn6uvx/duynt-1 -decimals = 9 - -[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken -decimals = 0 - -[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken2] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken2 -decimals = 6 - -[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/test1] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/test1 -decimals = 0 - -[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst2] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst2 -decimals = 0 - -[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst3] -peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst3 -decimals = 0 - -[factory/inj14mm2x4azr024pte5pn74dpasxlvpf29s6k8gvj/uLP] -peggy_denom = factory/inj14mm2x4azr024pte5pn74dpasxlvpf29s6k8gvj/uLP -decimals = 0 - -[factory/inj14plz8hqaj4p7pghdg7c6xlglpyhg2s00j76kn8/Ann] -peggy_denom = factory/inj14plz8hqaj4p7pghdg7c6xlglpyhg2s00j76kn8/Ann -decimals = 9 - -[factory/inj14pr5qwg66mayechldze8dsm0garek6z4jng6et/position] -peggy_denom = factory/inj14pr5qwg66mayechldze8dsm0garek6z4jng6et/position -decimals = 0 - -[factory/inj14qzjk7c9a0wyl6kjhs74zg2hcv7vzc9025dwtu/position] -peggy_denom = factory/inj14qzjk7c9a0wyl6kjhs74zg2hcv7vzc9025dwtu/position -decimals = 0 - -[factory/inj14rzuvnd8al6f7jjfz3k54vkdtrrgvea8q8u0al/position] -peggy_denom = factory/inj14rzuvnd8al6f7jjfz3k54vkdtrrgvea8q8u0al/position -decimals = 0 - -[factory/inj14scx0fjp8m6ssn34ql8353yzpq3l4gmk9eycx3/position] -peggy_denom = factory/inj14scx0fjp8m6ssn34ql8353yzpq3l4gmk9eycx3/position -decimals = 0 - -[factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test2] -peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test2 -decimals = 10 - -[factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test3] -peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test3 -decimals = 10 - -[factory/inj14sxssk5tzx8ttq3msj2jl29kv60znk4c40nq59/position] -peggy_denom = factory/inj14sxssk5tzx8ttq3msj2jl29kv60znk4c40nq59/position -decimals = 0 - -[factory/inj14t478a7rap97aukq2da92qch7u7g2l5pfqjshc/position] -peggy_denom = factory/inj14t478a7rap97aukq2da92qch7u7g2l5pfqjshc/position -decimals = 0 - -[factory/inj14tccfnp5rfzhm6y6c97juheal6uancftmtpdvd/position] -peggy_denom = factory/inj14tccfnp5rfzhm6y6c97juheal6uancftmtpdvd/position -decimals = 0 - -[factory/inj14u5f88vmk2zl7xjjg8y57yek0sr9ardm0uac06/position] -peggy_denom = factory/inj14u5f88vmk2zl7xjjg8y57yek0sr9ardm0uac06/position -decimals = 0 - -[factory/inj14wqlxeezx4t5jm6vq6226a3exlaqc8r25kglns/inj1mf2mvsgd7rrcl5hlksnqx8uwkvzqlal7djyzkf] -peggy_denom = factory/inj14wqlxeezx4t5jm6vq6226a3exlaqc8r25kglns/inj1mf2mvsgd7rrcl5hlksnqx8uwkvzqlal7djyzkf -decimals = 18 - -[factory/inj14xya2gezzxnfy0mqtgl9uh3sk27tzfkt89ldhc/position] -peggy_denom = factory/inj14xya2gezzxnfy0mqtgl9uh3sk27tzfkt89ldhc/position -decimals = 0 - -[factory/inj14y95s7mdpke2jc7m4sqfykzwm3sujugz0dh5m7/position] -peggy_denom = factory/inj14y95s7mdpke2jc7m4sqfykzwm3sujugz0dh5m7/position -decimals = 0 - -[factory/inj14ywl5l5wsyaqx9g39sejvx7zqyecvvgktg5pxz/position] -peggy_denom = factory/inj14ywl5l5wsyaqx9g39sejvx7zqyecvvgktg5pxz/position -decimals = 0 - -[factory/inj14zw0njuejh9us94wdhg3msptzxpcjpq0anampd/ak] -peggy_denom = factory/inj14zw0njuejh9us94wdhg3msptzxpcjpq0anampd/ak -decimals = 6 - -[factory/inj150lje070zsehmdl4sesxxxjcc57200r9aqxk9c/test] -peggy_denom = factory/inj150lje070zsehmdl4sesxxxjcc57200r9aqxk9c/test -decimals = 0 - -[factory/inj152y0xa2s9w3txcaqsxu0zlzjak5gnvmxj7m09s/position] -peggy_denom = factory/inj152y0xa2s9w3txcaqsxu0zlzjak5gnvmxj7m09s/position -decimals = 0 - -[factory/inj1530p68vvxpn2jxj7v45wwf2acy99fu7pzlq66v/position] -peggy_denom = factory/inj1530p68vvxpn2jxj7v45wwf2acy99fu7pzlq66v/position -decimals = 0 - -[factory/inj153cngflyafkxxxycj23maguuh4nx2ny2k4phlt/position] -peggy_denom = factory/inj153cngflyafkxxxycj23maguuh4nx2ny2k4phlt/position -decimals = 0 - -[factory/inj154690wmz247j75at9ttvmf54h6drtwzq4lefa5/bINJ] -peggy_denom = factory/inj154690wmz247j75at9ttvmf54h6drtwzq4lefa5/bINJ -decimals = 0 - -[factory/inj157s8m4mf5tsjp5ttvhkta56lmu2wzfs6mxxrpk/position] -peggy_denom = factory/inj157s8m4mf5tsjp5ttvhkta56lmu2wzfs6mxxrpk/position -decimals = 0 - -[factory/inj1586dahe90a0xh4j56c8308pywxs0lmenhl4y2z/position] -peggy_denom = factory/inj1586dahe90a0xh4j56c8308pywxs0lmenhl4y2z/position -decimals = 0 - -[factory/inj159y4fgpwdu26mcc35dmqwr5dfxjvlhfzqccpss/test] -peggy_denom = factory/inj159y4fgpwdu26mcc35dmqwr5dfxjvlhfzqccpss/test -decimals = 9 - -[factory/inj15adq44kjk2xcc6tn27aqqwmawr4le6vshkcyut/position] -peggy_denom = factory/inj15adq44kjk2xcc6tn27aqqwmawr4le6vshkcyut/position -decimals = 0 - -[factory/inj15c2suzwxzh8h240e58ueu5w3egpvul28c7jdt8/BTC] -peggy_denom = factory/inj15c2suzwxzh8h240e58ueu5w3egpvul28c7jdt8/BTC -decimals = 9 - -[factory/inj15csnumyd59pv7sp4lmt8ycg0zaqwed8k474q79/position] -peggy_denom = factory/inj15csnumyd59pv7sp4lmt8ycg0zaqwed8k474q79/position -decimals = 0 - -[factory/inj15fywtwfmu7qx36x5sj84zcpgttmswa2g87jtz6/position] -peggy_denom = factory/inj15fywtwfmu7qx36x5sj84zcpgttmswa2g87jtz6/position -decimals = 0 - -[factory/inj15g0h6wgwm23cdunkttepuzqwmr8fy09p54lf4j/duynt-1] -peggy_denom = factory/inj15g0h6wgwm23cdunkttepuzqwmr8fy09p54lf4j/duynt-1 -decimals = 9 - -[factory/inj15gm26dm98zl9nkcgapfk88zfukzk5j2xxmmdxr/position] -peggy_denom = factory/inj15gm26dm98zl9nkcgapfk88zfukzk5j2xxmmdxr/position -decimals = 0 - -[factory/inj15j4dcc7s0f3mcnk06armj46rfljee9re46l6kw/test] -peggy_denom = factory/inj15j4dcc7s0f3mcnk06armj46rfljee9re46l6kw/test -decimals = 9 - -[factory/inj15jt57jdw43qyz27z4rsnng6y3zdkafutm6yf56/position] -peggy_denom = factory/inj15jt57jdw43qyz27z4rsnng6y3zdkafutm6yf56/position -decimals = 0 - -[factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/INJS] -peggy_denom = factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/INJS -decimals = 0 - -[factory/inj15k2fpq4s2ndtreg428qtl8ddhfpmrtsxcs43l3/position] -peggy_denom = factory/inj15k2fpq4s2ndtreg428qtl8ddhfpmrtsxcs43l3/position -decimals = 0 - -[factory/inj15km5dcny0x3meyl65w6ks6mlfqnjurk7yrl0k3/position] -peggy_denom = factory/inj15km5dcny0x3meyl65w6ks6mlfqnjurk7yrl0k3/position -decimals = 0 - -[factory/inj15ltws5j4any8ld6j589c9p0yet3cj305kfndeh/position] -peggy_denom = factory/inj15ltws5j4any8ld6j589c9p0yet3cj305kfndeh/position -decimals = 0 - -[factory/inj15ne7du4sve9cycegurcnxuk2v4mh8c6hwytxxs/position] -peggy_denom = factory/inj15ne7du4sve9cycegurcnxuk2v4mh8c6hwytxxs/position -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ctstn2s984k5lppnuwjg5asvw00tnpym3du23f] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ctstn2s984k5lppnuwjg5asvw00tnpym3du23f -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1d40cf938v7hjzva4rx8qj5drgw8ujmrll2rn5g] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1d40cf938v7hjzva4rx8qj5drgw8ujmrll2rn5g -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1glq4yyrg80x573ldx9k5889lndkgkzv40slncl] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1glq4yyrg80x573ldx9k5889lndkgkzv40slncl -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1k9r6nhxax73zhj9ll5wzylel8w0p7gm9e686r9] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1k9r6nhxax73zhj9ll5wzylel8w0p7gm9e686r9 -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ka8ftk2849330y6r86tcgmv8a3rhpxfrxtn7g5] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ka8ftk2849330y6r86tcgmv8a3rhpxfrxtn7g5 -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1kl57u9529z2ts3tlhv38mrtnfps0sy3vulevcr] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1kl57u9529z2ts3tlhv38mrtnfps0sy3vulevcr -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ljgxpde6zkh48lqfjsusaq5p32wqjycsrjdlk9] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ljgxpde6zkh48lqfjsusaq5p32wqjycsrjdlk9 -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1lxkn2vwetsdmw6v7s64m5r2kw6fgnew8suealn] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1lxkn2vwetsdmw6v7s64m5r2kw6fgnew8suealn -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1mknpkud4re5vasfcnx9k278f8lyr5ndaaka86p] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1mknpkud4re5vasfcnx9k278f8lyr5ndaaka86p -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1u6vdnft0qfzncpq6hvq42ck9pk6dz4qv74a0w9] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1u6vdnft0qfzncpq6hvq42ck9pk6dz4qv74a0w9 -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1xvqkdyqpmd2q74dfa95spjw2krg9nn6m865juk] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1xvqkdyqpmd2q74dfa95spjw2krg9nn6m865juk -decimals = 0 - -[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1yghk22j3l0nfaasmcs43x3t059ht8tsrm2rh6q] -peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1yghk22j3l0nfaasmcs43x3t059ht8tsrm2rh6q -decimals = 0 - -[factory/inj15slc2dwxku5553gaauxnz89zcsmq5uzjcevue4/test] -peggy_denom = factory/inj15slc2dwxku5553gaauxnz89zcsmq5uzjcevue4/test -decimals = 6 - -[factory/inj15ukq6ja8l99dk0j82efvh2znjqesdpfxstlppn/position] -peggy_denom = factory/inj15ukq6ja8l99dk0j82efvh2znjqesdpfxstlppn/position -decimals = 0 - -[factory/inj15yf0qdyn5ej4hqw809nmv5n9e33mnqvddp84e4/bINJ] -peggy_denom = factory/inj15yf0qdyn5ej4hqw809nmv5n9e33mnqvddp84e4/bINJ -decimals = 0 - -[factory/inj15z6d8f386awtd7qxjmknqfla6ty0ajkyuvu00p/symbol2] -peggy_denom = factory/inj15z6d8f386awtd7qxjmknqfla6ty0ajkyuvu00p/symbol2 -decimals = 0 - -[factory/inj162a76ehzty0rlqd2rthr3sf44vnjcgkrctakpv/position] -peggy_denom = factory/inj162a76ehzty0rlqd2rthr3sf44vnjcgkrctakpv/position -decimals = 0 - -[factory/inj162r4dwle5gaknz3ulsyk7r9mhgs3u2gy5vw7cw/position] -peggy_denom = factory/inj162r4dwle5gaknz3ulsyk7r9mhgs3u2gy5vw7cw/position -decimals = 0 - -[factory/inj1647wcz036pchv8fzz30r9wuw2uktaxfjcjll90/position] -peggy_denom = factory/inj1647wcz036pchv8fzz30r9wuw2uktaxfjcjll90/position -decimals = 0 - -[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/Lenz] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/Lenz -decimals = 0 - -[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest1] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest1 -decimals = 0 - -[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/inj-test1] -peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/inj-test1 -decimals = 0 - -[factory/inj164x6vellymtw8vyuq0pju6efspw3zfpjfkrtkh/symbol3] -peggy_denom = factory/inj164x6vellymtw8vyuq0pju6efspw3zfpjfkrtkh/symbol3 -decimals = 0 - -[factory/inj164zhe75ldeez54pd0m5wt598upws5pcxgsytsp/RC] -peggy_denom = factory/inj164zhe75ldeez54pd0m5wt598upws5pcxgsytsp/RC -decimals = 0 - -[factory/inj1686rnw0wpnf39umq9z92my2t3ge960nu0vgphc/nept] -peggy_denom = factory/inj1686rnw0wpnf39umq9z92my2t3ge960nu0vgphc/nept -decimals = 6 - -[factory/inj16ckgjaln883kpwkm0ddgqtdhg8u0ycpl2gucl3/TEST] -peggy_denom = factory/inj16ckgjaln883kpwkm0ddgqtdhg8u0ycpl2gucl3/TEST -decimals = 0 - -[factory/inj16dv5y968dnz8x4tjpmkt3jqxgs9u6kh79hfk5f/position] -peggy_denom = factory/inj16dv5y968dnz8x4tjpmkt3jqxgs9u6kh79hfk5f/position -decimals = 0 - -[factory/inj16e7sphvq7r0urvmkkgurqzgv78g09xx7987y2s/position] -peggy_denom = factory/inj16e7sphvq7r0urvmkkgurqzgv78g09xx7987y2s/position -decimals = 0 - -[factory/inj16g0sft9q7du9s982rjy2e8z4j5ywc494eu9j6p/test] -peggy_denom = factory/inj16g0sft9q7du9s982rjy2e8z4j5ywc494eu9j6p/test -decimals = 9 - -[factory/inj16jpcu46u9apqydpgx95dtcldgcgacv670epwgq/position] -peggy_denom = factory/inj16jpcu46u9apqydpgx95dtcldgcgacv670epwgq/position -decimals = 0 - -[factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj13772jvadyx4j0hrlfh4jzk0v39k8uyfxrfs540] -peggy_denom = factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj13772jvadyx4j0hrlfh4jzk0v39k8uyfxrfs540 -decimals = 0 - -[factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] -peggy_denom = factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 -decimals = 0 - -[factory/inj16mgv9d7n7pntsfdwvx6564qsyeuydf3366jcgc/test] -peggy_denom = factory/inj16mgv9d7n7pntsfdwvx6564qsyeuydf3366jcgc/test -decimals = 0 - -[factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/base_token] -peggy_denom = factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/base_token -decimals = 0 - -[factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/staking_token] -peggy_denom = factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/staking_token -decimals = 0 - -[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1k7ekkswq203cutjxn9h6qlhxx35v5jjqqydt95] -peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1k7ekkswq203cutjxn9h6qlhxx35v5jjqqydt95 -decimals = 0 - -[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1mp73mhsv4c8q4a27eu3nezas7m6zm7kag74lxt] -peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1mp73mhsv4c8q4a27eu3nezas7m6zm7kag74lxt -decimals = 0 - -[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1n7xdv06zmaramkr0nlm7n9rnr8grh8s5p5g6ah] -peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1n7xdv06zmaramkr0nlm7n9rnr8grh8s5p5g6ah -decimals = 0 - -[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1w6ghr4pkladye5x9zj4cmx7lpg7a8tg4x2t63f] -peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1w6ghr4pkladye5x9zj4cmx7lpg7a8tg4x2t63f -decimals = 0 - -[factory/inj16ptqr4z9wxafkx902uhk6vggwlhxf5nsxsda2q/position] -peggy_denom = factory/inj16ptqr4z9wxafkx902uhk6vggwlhxf5nsxsda2q/position -decimals = 0 - -[factory/inj16q5wdfrw0lgkvfezk5c99jdytahggp00ywn4ap/position] -peggy_denom = factory/inj16q5wdfrw0lgkvfezk5c99jdytahggp00ywn4ap/position -decimals = 0 - -[factory/inj16rcm5lgxahvt4rf8a0ngqdn3errswhvmt5yspl/position] -peggy_denom = factory/inj16rcm5lgxahvt4rf8a0ngqdn3errswhvmt5yspl/position -decimals = 0 - -[factory/inj16wyujswd2z99et0jl7fu4q4rrpgdtpp2msnw9v/position] -peggy_denom = factory/inj16wyujswd2z99et0jl7fu4q4rrpgdtpp2msnw9v/position -decimals = 0 - -[factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/ak] -peggy_denom = factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/ak -decimals = 6 - -[factory/inj173k7ym5yf7s27g5qkqjxnndzjqrv6pkvm0sxws/position] -peggy_denom = factory/inj173k7ym5yf7s27g5qkqjxnndzjqrv6pkvm0sxws/position -decimals = 0 - -[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lfl3y6z9vw3ceprnmxlxerrvgdkz42pm5vqsqy] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lfl3y6z9vw3ceprnmxlxerrvgdkz42pm5vqsqy -decimals = 18 - -[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1v3wvk6upf755pmpxlt8923ktfzrlcpc9fqlaq8] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1v3wvk6upf755pmpxlt8923ktfzrlcpc9fqlaq8 -decimals = 18 - -[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zn7unxezftv5ltfm5jpfv4s09aueg97dty0zrm] -peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zn7unxezftv5ltfm5jpfv4s09aueg97dty0zrm -decimals = 18 - -[factory/inj175jqkyrsl84x0u4smqy7cg9nrj5wsd6edkefpz/usdcet] -peggy_denom = factory/inj175jqkyrsl84x0u4smqy7cg9nrj5wsd6edkefpz/usdcet -decimals = 0 - -[factory/inj1766dfyjxn36cwj9jlzjj8lk22vtm7he7ym43et/position] -peggy_denom = factory/inj1766dfyjxn36cwj9jlzjj8lk22vtm7he7ym43et/position -decimals = 0 - -[factory/inj177p29pl5wfjpvvfv0l99340u49g4pwmqhqsy8f/duynt-1] -peggy_denom = factory/inj177p29pl5wfjpvvfv0l99340u49g4pwmqhqsy8f/duynt-1 -decimals = 0 - -[factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/ak] -peggy_denom = factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/ak -decimals = 6 - -[factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/poop] -peggy_denom = factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/poop -decimals = 0 - -[factory/inj17cx2lxl67mhxc966wl8syz4jyx9v764xgasyje/position] -peggy_denom = factory/inj17cx2lxl67mhxc966wl8syz4jyx9v764xgasyje/position -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj134fxd4hh6l568wdwsma937lalyadgtpaajnytd] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj134fxd4hh6l568wdwsma937lalyadgtpaajnytd -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj139yst2xf5yvesyzfmz6g6e57rczthyuwt7v4qk] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj139yst2xf5yvesyzfmz6g6e57rczthyuwt7v4qk -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj13ude3tmmg6q7042su3wz8eruflayw76xy2axad] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj13ude3tmmg6q7042su3wz8eruflayw76xy2axad -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj14r7u95c072s2sfkad6jugk9r8dnpg4ppc2jwr9] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj14r7u95c072s2sfkad6jugk9r8dnpg4ppc2jwr9 -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj159g4a8rjwdjsdgc6ea253v9rarcn5fuvf0dex8] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj159g4a8rjwdjsdgc6ea253v9rarcn5fuvf0dex8 -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj15j9cez59pdvf9kgv7jnfc6twzjdu9kwzf58ale] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj15j9cez59pdvf9kgv7jnfc6twzjdu9kwzf58ale -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj163qqvz2aygp42acacnpg6zvatn49x2xv8dksdx] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj163qqvz2aygp42acacnpg6zvatn49x2xv8dksdx -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj179acfjvr8sy7ewrdgmy2jm6a6dkgvx5xt4xfmh] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj179acfjvr8sy7ewrdgmy2jm6a6dkgvx5xt4xfmh -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj195rvg27lmdpejxncv9n9py8q60l3fwvwx8tcww] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj195rvg27lmdpejxncv9n9py8q60l3fwvwx8tcww -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1fwv0jgwhtq2peaxxrvp0ch4r6j22gftnqaxldx] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1fwv0jgwhtq2peaxxrvp0ch4r6j22gftnqaxldx -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1h4203fqnpm2dgze6e3h2muxpg3lyaaauwnk8tq] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1h4203fqnpm2dgze6e3h2muxpg3lyaaauwnk8tq -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1jvmgjhp9h9gynlxdgalcp42kz3e4zelqdc50mp] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1jvmgjhp9h9gynlxdgalcp42kz3e4zelqdc50mp -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nhzvghauypl56kyem8msqkntkqrsulg23574dk] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nhzvghauypl56kyem8msqkntkqrsulg23574dk -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nxcvm92a9htme7k6zt57u0tsy9ey2707a8apq7] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nxcvm92a9htme7k6zt57u0tsy9ey2707a8apq7 -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1r20szses3jy99gjz2qdw4gc9dvdavhwzdeches] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1r20szses3jy99gjz2qdw4gc9dvdavhwzdeches -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1tw5ed50hqnrul8zgdhz9rnjkwjmh25rh366csj] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1tw5ed50hqnrul8zgdhz9rnjkwjmh25rh366csj -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1xrg3lqha00tkllrma80jtvvxn77ce6ykhqur2q] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1xrg3lqha00tkllrma80jtvvxn77ce6ykhqur2q -decimals = 0 - -[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1zd8zg8xeerlsrsfzxhpe3xgncrp0txetqye9cl] -peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1zd8zg8xeerlsrsfzxhpe3xgncrp0txetqye9cl -decimals = 0 - -[factory/inj17d8znfm9xnrrjmfdhs3y2m3etsc27s6jhe2ggd/ak] -peggy_denom = factory/inj17d8znfm9xnrrjmfdhs3y2m3etsc27s6jhe2ggd/ak -decimals = 6 - -[factory/inj17da0fne9wqaq5yyshf4fx3223zlh9ckj5pjn2j/YOLO] -peggy_denom = factory/inj17da0fne9wqaq5yyshf4fx3223zlh9ckj5pjn2j/YOLO -decimals = 6 - -[factory/inj17dckyf9z5ns40adz6vytca7wpq9nxgftl9lzql/position] -peggy_denom = factory/inj17dckyf9z5ns40adz6vytca7wpq9nxgftl9lzql/position -decimals = 0 - -[factory/inj17dy06jvaz5gwhedqaje38kgp93p75pjy3res4k/position] -peggy_denom = factory/inj17dy06jvaz5gwhedqaje38kgp93p75pjy3res4k/position -decimals = 0 - -[factory/inj17exh9s5gv2ywtsthh2w95asv9n8z08jxgzgshz/position] -peggy_denom = factory/inj17exh9s5gv2ywtsthh2w95asv9n8z08jxgzgshz/position -decimals = 0 - -[factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/TEST] -peggy_denom = factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/TEST -decimals = 6 - -[factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/ak] -peggy_denom = factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/ak -decimals = 6 - -[factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen -decimals = 0 - -[factory/inj17je4snps2rfvsxtqd2rfe4fgknswhexggx55ns/holding] -peggy_denom = factory/inj17je4snps2rfvsxtqd2rfe4fgknswhexggx55ns/holding -decimals = 0 - -[factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/LIOR] -peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/LIOR -decimals = 6 - -[factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TEST] -peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TEST -decimals = 6 - -[factory/inj17mzwp7vpxglwyjp43zhq6h756q5gkkvg4jsd6l/position] -peggy_denom = factory/inj17mzwp7vpxglwyjp43zhq6h756q5gkkvg4jsd6l/position -decimals = 0 - -[factory/inj17nqu6hrdye8u2sa2u8l7smw5hu8ey76qee8ayt/position] -peggy_denom = factory/inj17nqu6hrdye8u2sa2u8l7smw5hu8ey76qee8ayt/position -decimals = 0 - -[factory/inj17nw48wdkx3lxl2zqjzjel3ayhy7lxffhfqr3ve/position] -peggy_denom = factory/inj17nw48wdkx3lxl2zqjzjel3ayhy7lxffhfqr3ve/position -decimals = 0 - -[factory/inj17q6g7a3a9zsx59m2n7nqg7pe3avjl6flfrvfzx/position] -peggy_denom = factory/inj17q6g7a3a9zsx59m2n7nqg7pe3avjl6flfrvfzx/position -decimals = 0 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1ajfruhkchstjzxwf0mnsc5c6gqw6s8jmptqgkg] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1ajfruhkchstjzxwf0mnsc5c6gqw6s8jmptqgkg -decimals = 18 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1g4exsdxg9gmme7a45lxgwv40ghrtl20vty0ynk] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1g4exsdxg9gmme7a45lxgwv40ghrtl20vty0ynk -decimals = 0 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1hc6d3ytp2axqkl5td3387wkg0n23he6rlrek82] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1hc6d3ytp2axqkl5td3387wkg0n23he6rlrek82 -decimals = 18 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1htdk4v3xd3tnvehecsuyqhc29gjtgxgg3ryej4] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1htdk4v3xd3tnvehecsuyqhc29gjtgxgg3ryej4 -decimals = 0 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1l9z45vvdpeggnctjr5dt0setaf8pfg965whl0d] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1l9z45vvdpeggnctjr5dt0setaf8pfg965whl0d -decimals = 18 - -[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1lm5kx8suv5kzmlfya2kscqyzaxflekmh8cwuqz] -peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1lm5kx8suv5kzmlfya2kscqyzaxflekmh8cwuqz -decimals = 18 - -[factory/inj17r2ycwhwp8p9xydx90clwphm6p9z4dxrt3m4pm/nept] -peggy_denom = factory/inj17r2ycwhwp8p9xydx90clwphm6p9z4dxrt3m4pm/nept -decimals = 6 - -[factory/inj17sjuxy3nsh3ytrckknztzl6gg0mmuyphmxp3pg/position] -peggy_denom = factory/inj17sjuxy3nsh3ytrckknztzl6gg0mmuyphmxp3pg/position -decimals = 0 - -[factory/inj17tuwsezzee35e2yacte7rnfl529pneuxt6q4h9/auction.0] -peggy_denom = factory/inj17tuwsezzee35e2yacte7rnfl529pneuxt6q4h9/auction.0 -decimals = 0 - -[factory/inj17u7w6x9upf8j4f98x4ftptkkwj8lumah0zhvy7/position] -peggy_denom = factory/inj17u7w6x9upf8j4f98x4ftptkkwj8lumah0zhvy7/position -decimals = 0 - -[factory/inj17v9lheupewm0kqdppp9cwwdlymfgqsefalleld/position] -peggy_denom = factory/inj17v9lheupewm0kqdppp9cwwdlymfgqsefalleld/position -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ABC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ABC -decimals = 6 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FT] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FT -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/GG] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/GG -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aave] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aave -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak -decimals = 6 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aptos] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aptos -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/art] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/art -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/avax] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/avax -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/bnb] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/bnb -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/crv] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/crv -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/cvx] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/cvx -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/gala] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/gala -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/hnt] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/hnt -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ldo] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ldo -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/op] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/op -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/shib] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/shib -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/sol] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/sol -decimals = 0 - -[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/tia] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/tia -decimals = 6 - -[factory/inj17wse3rmdlx7umwn7k3c6e3lagevfrps7yh0esz/BTC] -peggy_denom = factory/inj17wse3rmdlx7umwn7k3c6e3lagevfrps7yh0esz/BTC -decimals = 9 - -[factory/inj17wwa9nsg6k5adxck3uryud2qz380k3v06wne9k/position] -peggy_denom = factory/inj17wwa9nsg6k5adxck3uryud2qz380k3v06wne9k/position -decimals = 0 - -[factory/inj17yy8ajcqvhw4d0ssq8x7un8w4y3ql7nj3cgdy2/position] -peggy_denom = factory/inj17yy8ajcqvhw4d0ssq8x7un8w4y3ql7nj3cgdy2/position -decimals = 0 - -[factory/inj17z4scdds993lytxqj5s8kr8rjatkdcgchfqwfw/position] -peggy_denom = factory/inj17z4scdds993lytxqj5s8kr8rjatkdcgchfqwfw/position -decimals = 0 - -[factory/inj185r4jp5k8peg0kma3ln9j77hmqpn4dqjf5a05g/duynt-1] -peggy_denom = factory/inj185r4jp5k8peg0kma3ln9j77hmqpn4dqjf5a05g/duynt-1 -decimals = 9 - -[factory/inj186uvu7eal5fr9w7s3g3jlvas0sknkd0chkjejh/position] -peggy_denom = factory/inj186uvu7eal5fr9w7s3g3jlvas0sknkd0chkjejh/position -decimals = 0 - -[factory/inj1889vpk022tkzsm89pjukp8cfyjp6qz2rdl43fn/position] -peggy_denom = factory/inj1889vpk022tkzsm89pjukp8cfyjp6qz2rdl43fn/position -decimals = 0 - -[factory/inj1890mjxvw8g3qqu9wnkyr0hnan0mvtqaulcmp3p/position] -peggy_denom = factory/inj1890mjxvw8g3qqu9wnkyr0hnan0mvtqaulcmp3p/position -decimals = 0 - -[factory/inj1894t5lutrkf895ndxtkxcwux5nkh5ykq32lrvj/position] -peggy_denom = factory/inj1894t5lutrkf895ndxtkxcwux5nkh5ykq32lrvj/position -decimals = 0 - -[factory/inj18c087n0mulwrmedajt6jt0zaa9xed8n7qtjt9p/position] -peggy_denom = factory/inj18c087n0mulwrmedajt6jt0zaa9xed8n7qtjt9p/position -decimals = 0 - -[factory/inj18c0c2c5ght4ffanxggq3ce0g8va6q5xvt8znty/position] -peggy_denom = factory/inj18c0c2c5ght4ffanxggq3ce0g8va6q5xvt8znty/position -decimals = 0 - -[factory/inj18ep02wj2074ek0v0qh6lj0skh9v8rh92eea77g/INJ] -peggy_denom = factory/inj18ep02wj2074ek0v0qh6lj0skh9v8rh92eea77g/INJ -decimals = 6 - -[factory/inj18k45cjqerwgq8y98zre05yr65wx42kagcdax8y/position] -peggy_denom = factory/inj18k45cjqerwgq8y98zre05yr65wx42kagcdax8y/position -decimals = 0 - -[factory/inj18l5a7rtkc8yh4m37jrvl7hg7xkm44rsch9nsth/position] -peggy_denom = factory/inj18l5a7rtkc8yh4m37jrvl7hg7xkm44rsch9nsth/position -decimals = 0 - -[factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/NRL] -peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/NRL -decimals = 6 - -[factory/inj18n8ufg2v35u69phfe4c3h22sa2c0xsjmqk4yc3/BTC] -peggy_denom = factory/inj18n8ufg2v35u69phfe4c3h22sa2c0xsjmqk4yc3/BTC -decimals = 9 - -[factory/inj18pnq5dapjrvk6sp90f7stewu63rktmmhxuqx3m/position] -peggy_denom = factory/inj18pnq5dapjrvk6sp90f7stewu63rktmmhxuqx3m/position -decimals = 0 - -[factory/inj18sw8ljhpwm3289pz06hk79dgj0kdp6q288uey0/position] -peggy_denom = factory/inj18sw8ljhpwm3289pz06hk79dgj0kdp6q288uey0/position -decimals = 0 - -[factory/inj18uaqjlx6hw5dkd4lw4na6mynzfwufdlrv3kz7c/position] -peggy_denom = factory/inj18uaqjlx6hw5dkd4lw4na6mynzfwufdlrv3kz7c/position -decimals = 0 - -[factory/inj18udwms4qgh4wqv3g7754ur07wvl665n8uvemzz/position] -peggy_denom = factory/inj18udwms4qgh4wqv3g7754ur07wvl665n8uvemzz/position -decimals = 0 - -[factory/inj18uuznkdfcpltzhg07zj58gwsxyvp8vmqav2fvz/BTC] -peggy_denom = factory/inj18uuznkdfcpltzhg07zj58gwsxyvp8vmqav2fvz/BTC -decimals = 9 - -[factory/inj18vyfs7evrmtdawy9h3xjjv6y6mc42c3yt63qf8/position] -peggy_denom = factory/inj18vyfs7evrmtdawy9h3xjjv6y6mc42c3yt63qf8/position -decimals = 0 - -[factory/inj190hdezl52v7f98f3qfuq3kys5wa6lqfn3s2pek/duynt-1] -peggy_denom = factory/inj190hdezl52v7f98f3qfuq3kys5wa6lqfn3s2pek/duynt-1 -decimals = 9 - -[factory/inj1925pr7emqd3w3xt8ywctpmtc5tqs3alya6t2ap/position] -peggy_denom = factory/inj1925pr7emqd3w3xt8ywctpmtc5tqs3alya6t2ap/position -decimals = 0 - -[factory/inj1954pmp3y7whagxek6u5rgc0y4xan3n5cpgvq4p/position] -peggy_denom = factory/inj1954pmp3y7whagxek6u5rgc0y4xan3n5cpgvq4p/position -decimals = 0 - -[factory/inj195z3zm3z5uspvxuelrsfp60shq9cfykjhnlqyg/position] -peggy_denom = factory/inj195z3zm3z5uspvxuelrsfp60shq9cfykjhnlqyg/position -decimals = 0 - -[factory/inj1967pm6xz3x0w8uucx8pgl0w96qqdnkrflhkgsa/nUSD] -peggy_denom = factory/inj1967pm6xz3x0w8uucx8pgl0w96qqdnkrflhkgsa/nUSD -decimals = 18 - -[factory/inj196dtfgyrp0ugmsdla8m7kufu6pku2nxsj23htn/position] -peggy_denom = factory/inj196dtfgyrp0ugmsdla8m7kufu6pku2nxsj23htn/position -decimals = 0 - -[factory/inj197k0fk258qfwx67nwhsr7dvng2hhm8l2qnrqpw/position] -peggy_denom = factory/inj197k0fk258qfwx67nwhsr7dvng2hhm8l2qnrqpw/position -decimals = 0 - -[factory/inj19846n86rsmxdc4jccxtqezmexxwytzwrjxxu5u/position] -peggy_denom = factory/inj19846n86rsmxdc4jccxtqezmexxwytzwrjxxu5u/position -decimals = 0 - -[factory/inj199sgh70upvs6lpyd85s0v08lpxy4tx9redtlup/position] -peggy_denom = factory/inj199sgh70upvs6lpyd85s0v08lpxy4tx9redtlup/position -decimals = 0 - -[factory/inj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc/lp] -peggy_denom = factory/inj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc/lp -decimals = 0 - -[factory/inj19eauq5pxlxcta8ngn4436s7jw4p0gy5nrn0yla/1] -peggy_denom = factory/inj19eauq5pxlxcta8ngn4436s7jw4p0gy5nrn0yla/1 -decimals = 0 - -[factory/inj19ec03mpecsww2je83ph6cpn5u586ncec5qemyh/position] -peggy_denom = factory/inj19ec03mpecsww2je83ph6cpn5u586ncec5qemyh/position -decimals = 0 - -[factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/KIRA] -peggy_denom = factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/KIRA -decimals = 0 - -[factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/ak] -peggy_denom = factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/ak -decimals = 6 - -[factory/inj19g8hqphpah2ueqfc6lp0whe8ycegcchjtavakr/position] -peggy_denom = factory/inj19g8hqphpah2ueqfc6lp0whe8ycegcchjtavakr/position -decimals = 0 - -[factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/TooTOO] -peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/TooTOO -decimals = 6 - -[factory/inj19kfmq7r8mcfalfa8h3vwxw8xlq6vz9zj6y6xct/position] -peggy_denom = factory/inj19kfmq7r8mcfalfa8h3vwxw8xlq6vz9zj6y6xct/position -decimals = 0 - -[factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj2] -peggy_denom = factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj2 -decimals = 0 - -[factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] -peggy_denom = factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 -decimals = 0 - -[factory/inj19pyact4kpwn5jedpselllzdg9y9v9vj4hg35af/uLP] -peggy_denom = factory/inj19pyact4kpwn5jedpselllzdg9y9v9vj4hg35af/uLP -decimals = 0 - -[factory/inj19qxhsqgje6llmg7xkxkqk2q8xztxpue09p4pvz/position] -peggy_denom = factory/inj19qxhsqgje6llmg7xkxkqk2q8xztxpue09p4pvz/position -decimals = 0 - -[factory/inj19rhvya4gj8sur47y5wc9sgfjervum6wg8qe4gx/position] -peggy_denom = factory/inj19rhvya4gj8sur47y5wc9sgfjervum6wg8qe4gx/position -decimals = 0 - -[factory/inj19sg6yzf8dcz55e5y2wwtxg7zssa58jsgqk7gnv/position] -peggy_denom = factory/inj19sg6yzf8dcz55e5y2wwtxg7zssa58jsgqk7gnv/position -decimals = 0 - -[factory/inj19t2lrnwlztg8stpxd0tl4cvpkeaxrqv7a42jtz/position] -peggy_denom = factory/inj19t2lrnwlztg8stpxd0tl4cvpkeaxrqv7a42jtz/position -decimals = 0 - -[factory/inj19ucnm6n9eunuyxulv0hj0dkavn9ywut0dsnuml/utest] -peggy_denom = factory/inj19ucnm6n9eunuyxulv0hj0dkavn9ywut0dsnuml/utest -decimals = 6 - -[factory/inj19utmngz6ty3yjz7e7m8v37gqjlglgf3r9lkdx6/position] -peggy_denom = factory/inj19utmngz6ty3yjz7e7m8v37gqjlglgf3r9lkdx6/position -decimals = 0 - -[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/first-token] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/first-token -decimals = 0 - -[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck-1] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck-1 -decimals = 18 - -[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft-1] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft-1 -decimals = 18 - -[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mftt] -peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mftt -decimals = 6 - -[factory/inj19wpl5yqj68jf0esy2ss64a9vrwzwludrglck6u/position] -peggy_denom = factory/inj19wpl5yqj68jf0esy2ss64a9vrwzwludrglck6u/position -decimals = 0 - -[factory/inj19x3tplaa70fm420u48dwe7k0p4lypnaea0gm64/position] -peggy_denom = factory/inj19x3tplaa70fm420u48dwe7k0p4lypnaea0gm64/position -decimals = 0 - -[factory/inj19y64q35zwhxwsdzawhls8rrry7tmf50esvut7t/position] -peggy_denom = factory/inj19y64q35zwhxwsdzawhls8rrry7tmf50esvut7t/position -decimals = 0 - -[factory/inj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz/lp] -peggy_denom = factory/inj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz/lp -decimals = 0 - -[factory/inj19yzwyu8yklx68w94vscx8c2g86jqzfa6ksykln/Ann] -peggy_denom = factory/inj19yzwyu8yklx68w94vscx8c2g86jqzfa6ksykln/Ann -decimals = 9 - -[factory/inj1a30r8ef7l4hgwjcq3kuqtayez349ct68c6ttds/position] -peggy_denom = factory/inj1a30r8ef7l4hgwjcq3kuqtayez349ct68c6ttds/position -decimals = 0 - -[factory/inj1a3adz2q6ddsmswwh66u2yzs70wyjcfkd5d824c/position] -peggy_denom = factory/inj1a3adz2q6ddsmswwh66u2yzs70wyjcfkd5d824c/position -decimals = 0 - -[factory/inj1a46azyrr2uwgejvcf0dry7s0gjt8f0fzgp8kmj/position] -peggy_denom = factory/inj1a46azyrr2uwgejvcf0dry7s0gjt8f0fzgp8kmj/position -decimals = 0 - -[factory/inj1a5h0krl05ygsh3xyx8plmzm9anc7avvptp60v3/position] -peggy_denom = factory/inj1a5h0krl05ygsh3xyx8plmzm9anc7avvptp60v3/position -decimals = 0 - -[factory/inj1a5z8ae6nzemk8cnyjh326gu6py4n7jq8pz2x8e/position] -peggy_denom = factory/inj1a5z8ae6nzemk8cnyjh326gu6py4n7jq8pz2x8e/position -decimals = 0 - -[factory/inj1a8vtk998rq0mnd294527d4ufczshja85mcha4p/position] -peggy_denom = factory/inj1a8vtk998rq0mnd294527d4ufczshja85mcha4p/position -decimals = 0 - -[factory/inj1ae9wagmq456wm0rhlt0mpx4ea2w6q494y7gdml/position] -peggy_denom = factory/inj1ae9wagmq456wm0rhlt0mpx4ea2w6q494y7gdml/position -decimals = 0 - -[factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/SHURIKEN] -peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/SHURIKEN -decimals = 6 - -[factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox1] -peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox1 -decimals = 0 - -[factory/inj1aftq7re8s4d8s55l5aw4dgtt4ex837f2l5x0py/position] -peggy_denom = factory/inj1aftq7re8s4d8s55l5aw4dgtt4ex837f2l5x0py/position -decimals = 0 - -[factory/inj1agcntfljkxyjlqnvs07lym6ugtlcd2krvy2k4v/position] -peggy_denom = factory/inj1agcntfljkxyjlqnvs07lym6ugtlcd2krvy2k4v/position -decimals = 0 - -[factory/inj1agte07lxz2twqvt6upesxp4tc2z65mdshclgkh/position] -peggy_denom = factory/inj1agte07lxz2twqvt6upesxp4tc2z65mdshclgkh/position -decimals = 0 - -[factory/inj1ajydsjysrj932kp5yrth4c9fxpn5us8hanpfch/hoa8] -peggy_denom = factory/inj1ajydsjysrj932kp5yrth4c9fxpn5us8hanpfch/hoa8 -decimals = 0 - -[factory/inj1akalafk23jw2rrgkpdfwsv05g5wkzu03lnynyp/position] -peggy_denom = factory/inj1akalafk23jw2rrgkpdfwsv05g5wkzu03lnynyp/position -decimals = 0 - -[factory/inj1al5pu3h64gl9e555t8cfekxy59pk30e6r38t9f/nusd] -peggy_denom = factory/inj1al5pu3h64gl9e555t8cfekxy59pk30e6r38t9f/nusd -decimals = 0 - -[factory/inj1al78qgdyw69uq50exzmmnfjllm3t3wa8rzyzn3/position] -peggy_denom = factory/inj1al78qgdyw69uq50exzmmnfjllm3t3wa8rzyzn3/position -decimals = 0 - -[factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/karate] -peggy_denom = factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/karate -decimals = 6 - -[factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/testcoin] -peggy_denom = factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/testcoin -decimals = 6 - -[factory/inj1ampqmsdk2687jdael7x89fu59zfw3xm52tchn8/position] -peggy_denom = factory/inj1ampqmsdk2687jdael7x89fu59zfw3xm52tchn8/position -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj108uf9tsu4e8q3f45pt3ylc4wv5c8kvrt66azun] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj108uf9tsu4e8q3f45pt3ylc4wv5c8kvrt66azun -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj145lkwt43eq7u8vuw8h2schvycvt2ue03wm6s6x] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj145lkwt43eq7u8vuw8h2schvycvt2ue03wm6s6x -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15p3jd8svfp40ez9ckj4qzak209sdequhmpt5c2] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15p3jd8svfp40ez9ckj4qzak209sdequhmpt5c2 -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15pcxscn4s0g95trxd42jk6xnssnvs9sze472pu] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15pcxscn4s0g95trxd42jk6xnssnvs9sze472pu -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj18w7c5cj6ygmk2hxzu8d86husg8wyhgtd9n4fkf] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj18w7c5cj6ygmk2hxzu8d86husg8wyhgtd9n4fkf -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj19glgtxlvlmwuwdqyknn666arnxt4y88zgz3pnj] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj19glgtxlvlmwuwdqyknn666arnxt4y88zgz3pnj -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ecnn87skvhfm579ms6w46zpf2gk6neftujky4k] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ecnn87skvhfm579ms6w46zpf2gk6neftujky4k -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1favce2lmfgwzvzeavrt88cqn8vx7w9aexfsuld] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1favce2lmfgwzvzeavrt88cqn8vx7w9aexfsuld -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1fys254q0ktp4k9uys94f0l5ujljjjc86qf0gx3] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1fys254q0ktp4k9uys94f0l5ujljjjc86qf0gx3 -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1hzs0sdqrmt3vw9w0qaxhtqed3mlhpldurkv6ty] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1hzs0sdqrmt3vw9w0qaxhtqed3mlhpldurkv6ty -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1kc6aehzj3uhc90qjrgsemq5evyay3ys24se2wu] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1kc6aehzj3uhc90qjrgsemq5evyay3ys24se2wu -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1l070c6tav7a7xxyh3rmjpqdffkwgsw3jr5ypmj] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1l070c6tav7a7xxyh3rmjpqdffkwgsw3jr5ypmj -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1m6fus7a9mmrvz7ac7k0m8c94ywj2q64d7vnzzx] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1m6fus7a9mmrvz7ac7k0m8c94ywj2q64d7vnzzx -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1mxe5r73ne92yg4a207vvpe0mjvylv86ghdu4cp] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1mxe5r73ne92yg4a207vvpe0mjvylv86ghdu4cp -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ny8n2dlqn7s38tx8ljn9kn65t74tn6z3pe0l5u] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ny8n2dlqn7s38tx8ljn9kn65t74tn6z3pe0l5u -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1r3nfgtptufxsatdd3kdr6e3qwjcmnma9myg8nq] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1r3nfgtptufxsatdd3kdr6e3qwjcmnma9myg8nq -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1rzheq4hfad8x9vh6zlwe7rhw59gps6vnhywtds] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1rzheq4hfad8x9vh6zlwe7rhw59gps6vnhywtds -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1s4227045efy2t5lmw5nm0a082y75a0t50zh5lc] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1s4227045efy2t5lmw5nm0a082y75a0t50zh5lc -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sg25epqzk8g89wzlpx04mg5jphk0dk2eq2mkts] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sg25epqzk8g89wzlpx04mg5jphk0dk2eq2mkts -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1tl6rljef25zxtju0842w6vr0a20a8s9rdd25kj] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1tl6rljef25zxtju0842w6vr0a20a8s9rdd25kj -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1uu3llx95wl7u2pl44ltr45exdm5nja5r5c3hky] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1uu3llx95wl7u2pl44ltr45exdm5nja5r5c3hky -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1vczur6w8xaand2lzup2l8w7jjqy7e70md3xa7p] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1vczur6w8xaand2lzup2l8w7jjqy7e70md3xa7p -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wdjs5alt50mqc9wq5zek5j0kv8gkxwasady0cp] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wdjs5alt50mqc9wq5zek5j0kv8gkxwasady0cp -decimals = 0 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wrwpwkrhc6tyrm5px8xcmuv0ufgcqjngquw20h] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wrwpwkrhc6tyrm5px8xcmuv0ufgcqjngquw20h -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1x6ux4um7xlctx09fe60k258yr03d3npvpt07jv] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1x6ux4um7xlctx09fe60k258yr03d3npvpt07jv -decimals = 18 - -[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1z098f8syf3g2pmt606kqmsmwfy2z5rcgmzte0h] -peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1z098f8syf3g2pmt606kqmsmwfy2z5rcgmzte0h -decimals = 18 - -[factory/inj1aqk3tg4esz06cer9ajuswkpc9mftr0l6qm3zx0/BTC] -peggy_denom = factory/inj1aqk3tg4esz06cer9ajuswkpc9mftr0l6qm3zx0/BTC -decimals = 0 - -[factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test -decimals = 6 - -[factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/testa1] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/testa1 -decimals = 6 - -[factory/inj1astu9n8434xpd0h90gfgksp85324cd5kp6gs5q/position] -peggy_denom = factory/inj1astu9n8434xpd0h90gfgksp85324cd5kp6gs5q/position -decimals = 0 - -[factory/inj1au376u55jzxj3rxhk7e4q0pk2xz0xf6a0ww8me/position] -peggy_denom = factory/inj1au376u55jzxj3rxhk7e4q0pk2xz0xf6a0ww8me/position -decimals = 0 - -[factory/inj1audhvz4wweflplqpws7348w4tjj4lwdq8gs0g5/position] -peggy_denom = factory/inj1audhvz4wweflplqpws7348w4tjj4lwdq8gs0g5/position -decimals = 0 - -[factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1f42t9j379jm5sss0j9xarf0mmwzp69nugd6pzf] -peggy_denom = factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1f42t9j379jm5sss0j9xarf0mmwzp69nugd6pzf -decimals = 0 - -[factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1yvm6xz7ztv24ketpw8hsuns95z7nrtjm2ws6s7] -peggy_denom = factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1yvm6xz7ztv24ketpw8hsuns95z7nrtjm2ws6s7 -decimals = 0 - -[factory/inj1aus3al2tm7kd2kammhuvu7tae0gyn3vz4tmln2/position] -peggy_denom = factory/inj1aus3al2tm7kd2kammhuvu7tae0gyn3vz4tmln2/position -decimals = 0 - -[factory/inj1aw8kmum8xcnwramz0ekdy0pl0k7xfdydmhxr07/position] -peggy_denom = factory/inj1aw8kmum8xcnwramz0ekdy0pl0k7xfdydmhxr07/position -decimals = 0 - -[factory/inj1awvzukx5tfp6dzlc7v87jrtwg0m2z97gwgk2l7/position] -peggy_denom = factory/inj1awvzukx5tfp6dzlc7v87jrtwg0m2z97gwgk2l7/position -decimals = 0 - -[factory/inj1ayhegfjmnsnv5wcuuxk56c27zf0zhvcm659haz/position] -peggy_denom = factory/inj1ayhegfjmnsnv5wcuuxk56c27zf0zhvcm659haz/position -decimals = 0 - -[factory/inj1azh3q0uq5xhj856jfe7cq8g42vf0vqwe6q380d/position] -peggy_denom = factory/inj1azh3q0uq5xhj856jfe7cq8g42vf0vqwe6q380d/position -decimals = 0 - -[factory/inj1c2lt6srt2m7jwexe5qdhqef9ue05vfl2n33xqu/hoa2] -peggy_denom = factory/inj1c2lt6srt2m7jwexe5qdhqef9ue05vfl2n33xqu/hoa2 -decimals = 9 - -[factory/inj1c2re0tzy7lryrvlgfuus23989z49ns4st684f8/b123123] -peggy_denom = factory/inj1c2re0tzy7lryrvlgfuus23989z49ns4st684f8/b123123 -decimals = 9 - -[factory/inj1c36j9k3vrvxm5hg0p44n9lfmldmfughcr0yn9y/bINJ] -peggy_denom = factory/inj1c36j9k3vrvxm5hg0p44n9lfmldmfughcr0yn9y/bINJ -decimals = 0 - -[factory/inj1c588j3kkay3hk4np5xlqttrnzhqp7k2wfhg9jr/position] -peggy_denom = factory/inj1c588j3kkay3hk4np5xlqttrnzhqp7k2wfhg9jr/position -decimals = 0 - -[factory/inj1c6cxqpmpywwsjgegxwnah9j4mu8d3ndaevtu8s/duynt-1] -peggy_denom = factory/inj1c6cxqpmpywwsjgegxwnah9j4mu8d3ndaevtu8s/duynt-1 -decimals = 9 - -[factory/inj1c8fxfgjnqssuqwsfn5lyyjff20tmwpjgr9zavx/position] -peggy_denom = factory/inj1c8fxfgjnqssuqwsfn5lyyjff20tmwpjgr9zavx/position -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393090InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393090InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393190InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393190InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562440InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562440InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562475InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562475InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738289InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738289InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738335InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738335InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919059InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919059InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919103InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919103InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267553InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267553InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267590InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267590InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599333InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599333InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599371InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599371InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947444InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947444InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947488InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947488InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292884InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292884InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292943InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292943InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638281InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638281InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638318InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638318InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690977270InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690977270InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690985975InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690985975InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690986069InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690986069InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332939InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332939InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332966InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332966InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672834InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672834InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672874InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672874InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088340InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088340InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088377InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088377InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366264InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366264InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366299InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366299InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713323InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713323InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713423InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713423InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693059790InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693059790InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693061285InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693061285InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693314015InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693314015InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693400975InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693400975InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693401025InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693401025InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693573212InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693573212InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693668292InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693668292InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693918802InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693918802InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693919162InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693919162InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264419InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264419InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264444InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264444InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610004InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610004InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610034InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610034InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955601InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955601InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955631InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955631InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301201InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301201InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301775InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301775InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695646812InjUsdt14d130C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695646812InjUsdt14d130C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695651424InjUsdt14d80P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695651424InjUsdt14d80P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695911036InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695911036InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912528InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912528InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912582InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912582InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695922942InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695922942InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695924094InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695924094InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992413InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992413InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992443InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992443InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992458InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992458InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992533InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992533InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165211InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165211InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165241InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165241InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165255InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165255InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165331InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165331InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696182385InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696182385InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338011InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338011InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338040InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338040InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338055InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338055InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339261InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339261InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339298InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339298InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510811InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510811InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510841InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510841InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510871InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510871InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515587InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515587InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515618InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515618InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683611InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683611InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683641InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683641InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693437InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693437InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693477InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693477InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693515InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693515InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856403InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856403InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856433InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856433InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856448InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856448InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857075InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857075InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857115InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857115InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029205InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029205InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029235InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029235InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029250InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029250InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029808InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029808InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029853InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029853InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202011InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202011InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202035InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202035InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202050InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202050InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202096InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202096InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202125InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202125InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374809InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374809InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374839InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374839InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374854InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374854InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379492InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379492InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379504InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379504InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547614InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547614InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547643InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547643InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547658InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547658InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549059InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549059InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549075InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549075InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720411InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720411InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720438InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720438InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720453InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720453InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722452InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722452InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722512InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722512InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722541InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722541InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722572InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722572InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722633InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722633InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722693InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722693InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722754InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722754InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722766InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722766InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722781InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722781InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722796InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722796InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724339InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724339InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724387InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724387InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724390InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724390InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724475InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724475InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893205InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893205InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893234InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893234InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893249InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893249InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893294InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893294InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697895660InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697895660InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066012InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066012InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066056InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066056InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071468InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071468InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071537InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071537InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071660InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071660InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238813InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238813InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238853InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238853InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238868InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238868InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238913InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238913InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698240068InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698240068InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411615InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411615InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411656InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411656InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411673InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411673InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411686InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411686InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411717InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411717InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584414InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584414InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584458InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584458InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584475InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584475InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592535InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592535InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592576InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592576InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757215InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757215InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757256InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757256InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757273InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757273InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758802InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758802InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758832InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758832InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843614InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843614InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843674InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843674InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931135InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931135InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931139InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931139InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931146InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931146InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931150InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931150InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931183InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931183InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016403InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016403InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016433InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016433InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016448InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016448InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016463InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016463InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016583InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016583InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699103898InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699103898InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104579InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104579InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104609InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104609InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104624InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104624InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104639InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104639InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189213InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189213InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189258InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189258InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189273InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189273InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189303InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189303InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189363InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189363InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362005InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362005InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362047WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362047WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362062InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362062InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362092InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362092InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362107InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362107InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362137InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362137InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362152WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362152WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362182WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362182WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699363478WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699363478WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534816InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534816InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534856InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534856InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534873InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534873InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534901WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534901WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534916InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534916InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534946WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534946WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537637InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537637InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537689WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537689WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537827WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537827WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707612InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707612InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707642WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707642WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707672WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707672WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707702InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707702InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707717WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707717WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707747WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707747WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880411InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880411InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880440WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880440WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880455AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880455AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880470WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880470WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880472AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880472AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880515WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880515WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880531WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880531WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880546InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880546InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880591InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880591InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883358InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883358InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883418AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883418AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883465InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883465InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883507AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883507AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053208WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053208WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053237InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053237InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053252AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053252AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053268AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053268AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053297WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053297WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053313InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053313InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053358InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053358InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053403InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053403InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054233WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054233WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054322InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054322InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054425AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054425AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054460WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054460WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054540InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054540InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054603AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054603AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700055200InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700055200InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226004AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226004AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226032InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226032InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226047WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226047WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226065AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226065AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226093WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226093WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226108InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226108InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226123WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226123WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226214AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226214AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237848InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237848InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237905InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237905InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238026InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238026InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238071AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238071AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238126WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238126WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398810InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398810InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398838WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398838WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398853InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398853InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398871InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398871InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398929InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398929InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398944WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398944WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398974AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398974AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700399004WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700399004WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408075WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408075WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408140AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408140AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408200InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408200InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408248AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408248AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408289AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408289AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571609AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571609AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571632WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571632WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571647AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571647AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571666AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571666AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571677InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571677InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571692WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571692WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571707InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571707InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571723WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571723WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571768AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571768AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579392InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579392InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579439WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579439WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579479InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579479InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579489InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579489InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744414WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744414WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744455InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744455InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744473AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744473AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744485WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744485WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744500AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744500AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744515InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744515InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744561InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744561InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744591WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744591WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700748942WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700748942WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749133InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749133InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749179InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749179InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749219AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749219AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749252AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749252AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917204WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917204WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917232InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917232InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917247InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917247InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917262InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917262InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917292WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917292WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917308AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917308AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917323AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917323AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917338WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917338WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917353InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917353InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917488AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917488AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921448InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921448InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921481AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921481AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921520WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921520WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090009WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090009WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090052InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090052InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090066InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090066InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090081AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090081AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090096AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090096AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090111WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090111WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090141WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090141WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090171InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090171InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095493WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095493WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095532InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095532InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095557AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095557AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095607InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095607InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095626AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095626AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262817InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262817InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262857InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262857InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262872InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262872InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262875WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262875WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262902AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262902AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262933WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262933WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262963WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262963WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263083InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263083InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267248InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267248InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267412WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267412WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267494AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267494AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435613InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435613InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435655WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435655WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435675InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435675InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435684WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435684WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435775InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435775InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435790WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435790WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435880WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435880WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437080InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437080InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437560InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437560InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608413WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608413WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608438InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608438InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608471InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608471InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608513WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608513WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608574WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608574WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608589InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608589InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701614619WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701614619WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781204InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781204InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781258WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781258WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781262InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781262InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781303WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781303WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781409WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781409WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701782379InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701782379InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644910InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644910InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644912AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644912AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854512InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854512InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d85P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d85P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504InjUsdt10d84P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504InjUsdt10d84P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d111C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d111C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d86P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d86P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d124C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d124C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt10d128C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt10d128C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286506InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286506InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d113C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d113C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d91P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d91P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150514InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150514InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668906InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668906InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d82P -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d114C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d114C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d117C] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d117C -decimals = 0 - -[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d82P] -peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d82P -decimals = 0 - -[factory/inj1cdtyk74jm0qg5r0snkddqwl4d0r4vu54zakvkd/position] -peggy_denom = factory/inj1cdtyk74jm0qg5r0snkddqwl4d0r4vu54zakvkd/position -decimals = 0 - -[factory/inj1ce5nts6qntka3te9zqcgf6pgyczxjd8aul9dvp/PTG] -peggy_denom = factory/inj1ce5nts6qntka3te9zqcgf6pgyczxjd8aul9dvp/PTG -decimals = 0 - -[factory/inj1cepq3ezj4plltmnu3zkkzmnta56ur39pu9wssy/position] -peggy_denom = factory/inj1cepq3ezj4plltmnu3zkkzmnta56ur39pu9wssy/position -decimals = 0 - -[factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/dev] -peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/dev -decimals = 0 - -[factory/inj1cjcpjhrg2ame8u2358ufw4dk22uua0d75pf0rd/bpINJ] -peggy_denom = factory/inj1cjcpjhrg2ame8u2358ufw4dk22uua0d75pf0rd/bpINJ -decimals = 0 - -[factory/inj1cjju83m8tmzf48htuex6qgks3q6s3xzrdml4a2/position] -peggy_denom = factory/inj1cjju83m8tmzf48htuex6qgks3q6s3xzrdml4a2/position -decimals = 0 - -[factory/inj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv/lp] -peggy_denom = factory/inj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv/lp -decimals = 0 - -[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/AAA] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/AAA -decimals = 0 - -[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/APE] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/APE -decimals = 6 - -[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test -decimals = 6 - -[factory/inj1cq2uqxukggfktp5pqgchkxnjg4u5ct346wvyvr/position] -peggy_denom = factory/inj1cq2uqxukggfktp5pqgchkxnjg4u5ct346wvyvr/position -decimals = 0 - -[factory/inj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux/lp] -peggy_denom = factory/inj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux/lp -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj14gtevsjys2unq288w2trytk0e9cj7g45yq79fw] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj14gtevsjys2unq288w2trytk0e9cj7g45yq79fw -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15tcjh9c7je9auea2xdj0zm2d6285mg23f97vnt] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15tcjh9c7je9auea2xdj0zm2d6285mg23f97vnt -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15ydvx7ynwj3ztsuhmge5dluq7xt942mwpktg7m] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15ydvx7ynwj3ztsuhmge5dluq7xt942mwpktg7m -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj18kpc00ft4lmzk73wtw4a6lpny8plz6kmpzfmsa] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj18kpc00ft4lmzk73wtw4a6lpny8plz6kmpzfmsa -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19hpqtcajc82cquytuxgmw6lg3k0qwuru3t00n7] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19hpqtcajc82cquytuxgmw6lg3k0qwuru3t00n7 -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19kaqlc2xxku64esn5fuml8qpmd43qu7puyawnc] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19kaqlc2xxku64esn5fuml8qpmd43qu7puyawnc -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19ydmpse0244sue79yzvszkpkk32y53urtcjtm6] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19ydmpse0244sue79yzvszkpkk32y53urtcjtm6 -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1apapy3g66m52mmt2wkyjm6hpyd563t90u0dgmx] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1apapy3g66m52mmt2wkyjm6hpyd563t90u0dgmx -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c4ax6zup2w2v6nfh8f8gv4ks83lhv9hv53xf7a] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c4ax6zup2w2v6nfh8f8gv4ks83lhv9hv53xf7a -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c6ql7ladykug4f0ue3ht8qrrwqen3jmz2sxaf2] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c6ql7ladykug4f0ue3ht8qrrwqen3jmz2sxaf2 -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1dswjduvp7fq52ulcuqmv6caqs5ssxkspavhs4d] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1dswjduvp7fq52ulcuqmv6caqs5ssxkspavhs4d -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1g4cpf9jhqgfel02g94uguw332nvrtlp6dxjnkz] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1g4cpf9jhqgfel02g94uguw332nvrtlp6dxjnkz -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1hkuk3yf6apqqj93ay7e8cxx7tc88zdydm38c9u] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1hkuk3yf6apqqj93ay7e8cxx7tc88zdydm38c9u -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1jy6s387mwu2l96qqw3vxpzfgcyfleqy9r74uqp] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1jy6s387mwu2l96qqw3vxpzfgcyfleqy9r74uqp -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1kj5ynn7w4f8uymk4qdjythss8fkfrljh0wqlsz] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1kj5ynn7w4f8uymk4qdjythss8fkfrljh0wqlsz -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1nt9x2szk5dkgr7m8q60kxeg2we546ud0uqe276] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1nt9x2szk5dkgr7m8q60kxeg2we546ud0uqe276 -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1up4rl2q7n3fh785t9ej78xhvfah9mxt8u24n32] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1up4rl2q7n3fh785t9ej78xhvfah9mxt8u24n32 -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1ve5rqgz5l2fytd22egw5tgs79pa7l5zzzdt0ys] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1ve5rqgz5l2fytd22egw5tgs79pa7l5zzzdt0ys -decimals = 0 - -[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1y3cmnn0plm4vt6j2nyf5plg48rlywn7cuygv62] -peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1y3cmnn0plm4vt6j2nyf5plg48rlywn7cuygv62 -decimals = 0 - -[factory/inj1ctm2sly0qdgftlw92meej3dr4l30t248takx9g/test] -peggy_denom = factory/inj1ctm2sly0qdgftlw92meej3dr4l30t248takx9g/test -decimals = 0 - -[factory/inj1cuwygvhqcxgjhudslflfxwxhge8d265tc0uqq5/position] -peggy_denom = factory/inj1cuwygvhqcxgjhudslflfxwxhge8d265tc0uqq5/position -decimals = 0 - -[factory/inj1cvdpxpwlggytumd9ydkvq7z3y0pp75wawnznqp/position] -peggy_denom = factory/inj1cvdpxpwlggytumd9ydkvq7z3y0pp75wawnznqp/position -decimals = 0 - -[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1fzm58vwmtsn4vxuajvhsdqrjqrdhhdlqfd9lfd] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1fzm58vwmtsn4vxuajvhsdqrjqrdhhdlqfd9lfd -decimals = 18 - -[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nrlveguv98ag7hf3xepd3aycrm8mp7rnhek9av] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nrlveguv98ag7hf3xepd3aycrm8mp7rnhek9av -decimals = 18 - -[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1v26u44zh87fvvdpayzvw8t9vrydz25mp6kdkru] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1v26u44zh87fvvdpayzvw8t9vrydz25mp6kdkru -decimals = 18 - -[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1yj6rs33p42t6qx6j43z8d4zqx5egr76wdpz44t] -peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1yj6rs33p42t6qx6j43z8d4zqx5egr76wdpz44t -decimals = 18 - -[factory/inj1cxjmxnuul7fcwt5jfgn87gf3u9yq74trgn2h64/position] -peggy_denom = factory/inj1cxjmxnuul7fcwt5jfgn87gf3u9yq74trgn2h64/position -decimals = 0 - -[factory/inj1cxx7gcy35zce6x869mvq7af4e3gnka5m8yr9xm/bpINJ] -peggy_denom = factory/inj1cxx7gcy35zce6x869mvq7af4e3gnka5m8yr9xm/bpINJ -decimals = 0 - -[factory/inj1cyp93g4eq3l4xknl803x3je4k5xr9fdr5qp78h/position] -peggy_denom = factory/inj1cyp93g4eq3l4xknl803x3je4k5xr9fdr5qp78h/position -decimals = 0 - -[factory/inj1d0646us3wrcw6a77qmth6sc539vplaqdya55zh/nUSD] -peggy_denom = factory/inj1d0646us3wrcw6a77qmth6sc539vplaqdya55zh/nUSD -decimals = 18 - -[factory/inj1d0szmqhnk3t59xdultphrrtlgwe68fjuexjvw7/hoa5] -peggy_denom = factory/inj1d0szmqhnk3t59xdultphrrtlgwe68fjuexjvw7/hoa5 -decimals = 0 - -[factory/inj1d2fz729s6egfvaf0ucg9pwecatkyp3s4zns0qq/position] -peggy_denom = factory/inj1d2fz729s6egfvaf0ucg9pwecatkyp3s4zns0qq/position -decimals = 0 - -[factory/inj1d37eu9nq4l3za205cswnt9qwcp256cp4g6f2wl/position] -peggy_denom = factory/inj1d37eu9nq4l3za205cswnt9qwcp256cp4g6f2wl/position -decimals = 0 - -[factory/inj1d3jc5pr6nsf9twyzjh9w5nj7nn235ysllwtpq7/frcoin] -peggy_denom = factory/inj1d3jc5pr6nsf9twyzjh9w5nj7nn235ysllwtpq7/frcoin -decimals = 0 - -[factory/inj1d3zazwsqnsg29srlc52vp70gnxzr0njun8z79r/position] -peggy_denom = factory/inj1d3zazwsqnsg29srlc52vp70gnxzr0njun8z79r/position -decimals = 0 - -[factory/inj1d42m7tzg46rm986d4khfr4khvtlp5nuynqa258/position] -peggy_denom = factory/inj1d42m7tzg46rm986d4khfr4khvtlp5nuynqa258/position -decimals = 0 - -[factory/inj1d47wsg95r9nwr564y3c8q6f3du4fvvucuhkcy7/position] -peggy_denom = factory/inj1d47wsg95r9nwr564y3c8q6f3du4fvvucuhkcy7/position -decimals = 0 - -[factory/inj1d4ajy0e7ykpem7zq3ur7e56uff9zspk8rfuvl8/position] -peggy_denom = factory/inj1d4ajy0e7ykpem7zq3ur7e56uff9zspk8rfuvl8/position -decimals = 0 - -[factory/inj1d4gfk3ychy9qcklj7azay6djhfytmalj7e0yax/bpINJ] -peggy_denom = factory/inj1d4gfk3ychy9qcklj7azay6djhfytmalj7e0yax/bpINJ -decimals = 0 - -[factory/inj1d4q5kja5dy95ss0yxkk5zlfj6zc49f40yh3wd5/position] -peggy_denom = factory/inj1d4q5kja5dy95ss0yxkk5zlfj6zc49f40yh3wd5/position -decimals = 0 - -[factory/inj1d5a4g5h3ew2e5sta9fjk42t2pp2azaw96hu8r5/position] -peggy_denom = factory/inj1d5a4g5h3ew2e5sta9fjk42t2pp2azaw96hu8r5/position -decimals = 0 - -[factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/injx] -peggy_denom = factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/injx -decimals = 6 - -[factory/inj1d7lk876s6gcklt3vazfprd3pgnq6pl6j087jwd/USDT] -peggy_denom = factory/inj1d7lk876s6gcklt3vazfprd3pgnq6pl6j087jwd/USDT -decimals = 0 - -[factory/inj1d8je3vv9k4639et8asyypgyjrffxvj4me5zzdp/position] -peggy_denom = factory/inj1d8je3vv9k4639et8asyypgyjrffxvj4me5zzdp/position -decimals = 0 - -[factory/inj1d989u8frnyh7p07n3vrkml6ny65h0jd7508zvt/test] -peggy_denom = factory/inj1d989u8frnyh7p07n3vrkml6ny65h0jd7508zvt/test -decimals = 9 - -[factory/inj1dam3n6v90ky7l6emgv4v2zgzcxrmchssryzs7c/position] -peggy_denom = factory/inj1dam3n6v90ky7l6emgv4v2zgzcxrmchssryzs7c/position -decimals = 0 - -[factory/inj1dc6rrxhfjaxexzdcrec5w3ryl4jn6x5t7t9j3z/foobar] -peggy_denom = factory/inj1dc6rrxhfjaxexzdcrec5w3ryl4jn6x5t7t9j3z/foobar -decimals = 0 - -[factory/inj1dcnefm2zyx5gcuz4fduwyujluhzlrqskng9qhe/Ann] -peggy_denom = factory/inj1dcnefm2zyx5gcuz4fduwyujluhzlrqskng9qhe/Ann -decimals = 9 - -[factory/inj1ddp0ltux6sx2j2hh7q6uvqfhesyk0lwymzas6x/WIZZ] -peggy_denom = factory/inj1ddp0ltux6sx2j2hh7q6uvqfhesyk0lwymzas6x/WIZZ -decimals = 6 - -[factory/inj1dfvy2pcrk5cc3ypljed5f39xj75fpku38c09nr/position] -peggy_denom = factory/inj1dfvy2pcrk5cc3ypljed5f39xj75fpku38c09nr/position -decimals = 0 - -[factory/inj1dlfft5qkmmyhgvsrhalg5ncrxtsek4uggtsqcm/position] -peggy_denom = factory/inj1dlfft5qkmmyhgvsrhalg5ncrxtsek4uggtsqcm/position -decimals = 0 - -[factory/inj1dlyumvy7rfmq534hnh8et2ft58zpm0d84vjkfd/auction.0] -peggy_denom = factory/inj1dlyumvy7rfmq534hnh8et2ft58zpm0d84vjkfd/auction.0 -decimals = 0 - -[factory/inj1dlyumvy7rfmq534hnh8et2ft58zpm0d84vjkfd/auction.1] -peggy_denom = factory/inj1dlyumvy7rfmq534hnh8et2ft58zpm0d84vjkfd/auction.1 -decimals = 0 - -[factory/inj1dmfq9frxl7p3ym4w6lu8jj73ev7l35r5fwp2mu/position] -peggy_denom = factory/inj1dmfq9frxl7p3ym4w6lu8jj73ev7l35r5fwp2mu/position -decimals = 0 - -[factory/inj1dphl5v4j93lndzpeag8274aew870c425fdren7/position] -peggy_denom = factory/inj1dphl5v4j93lndzpeag8274aew870c425fdren7/position -decimals = 0 - -[factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDL] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDL -decimals = 6 - -[factory/inj1dtv4sfv6kp72tsk8y4dz6s8w3lkjga9clx99jg/position] -peggy_denom = factory/inj1dtv4sfv6kp72tsk8y4dz6s8w3lkjga9clx99jg/position -decimals = 0 - -[factory/inj1du8933kzqm6zqq7kz93c5kv28e7ffqy9lmdgr9/position] -peggy_denom = factory/inj1du8933kzqm6zqq7kz93c5kv28e7ffqy9lmdgr9/position -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683106600InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683106600InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107230InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107230InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107439InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107439InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108418InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108418InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108796InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108796InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683109853AtomUsdt7d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683109853AtomUsdt7d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136047InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136047InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136243InjUsdt14d80P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136243InjUsdt14d80P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136518AtomUsdt7d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136518AtomUsdt7d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136988InjUsdt14d130C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136988InjUsdt14d130C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138126InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138126InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138306AtomUsdt21d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138306AtomUsdt21d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138463AtomUsdt21d115C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138463AtomUsdt21d115C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139006InjUsdt21d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139006InjUsdt21d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139147InjUsdt21d88P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139147InjUsdt21d88P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302884InjUsdt21d88P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302884InjUsdt21d88P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302928InjUsdt14d80P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302928InjUsdt14d80P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303047InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303047InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303087AtomUsdt21d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303087AtomUsdt21d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303122AtomUsdt21d115C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303122AtomUsdt21d115C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303156InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303156InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303211InjUsdt14d130C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303211InjUsdt14d130C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303495InjUsdt21d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303495InjUsdt21d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476746InjUsdt21d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476746InjUsdt21d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476780InjUsdt14d130C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476780InjUsdt14d130C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476814InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476814InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476835AtomUsdt21d115C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476835AtomUsdt21d115C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476858AtomUsdt21d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476858AtomUsdt21d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476891InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476891InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476927InjUsdt14d80P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476927InjUsdt14d80P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476949InjUsdt21d88P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476949InjUsdt21d88P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650472InjUsdt21d88P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650472InjUsdt21d88P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650539InjUsdt14d80P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650539InjUsdt14d80P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650574InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650574InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650640AtomUsdt21d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650640AtomUsdt21d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650659AtomUsdt21d115C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650659AtomUsdt21d115C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650692InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650692InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650715InjUsdt14d130C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650715InjUsdt14d130C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650740InjUsdt21d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650740InjUsdt21d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820836InjUsdt3d112C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820836InjUsdt3d112C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820868InjUsdt21d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820868InjUsdt21d110C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820948InjUsdt14d130C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820948InjUsdt14d130C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821009InjUsdt7d120C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821009InjUsdt7d120C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821053AtomUsdt21d115C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821053AtomUsdt21d115C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821079AtomUsdt21d90P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821079AtomUsdt21d90P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821101InjUsdt7d85P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821101InjUsdt7d85P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821126InjUsdt14d80P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821126InjUsdt14d80P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821144InjUsdt21d88P] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821144InjUsdt21d88P -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683822139InjUsdt3d112C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683822139InjUsdt3d112C -decimals = 0 - -[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683883060InjUsdt1d110C] -peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683883060InjUsdt1d110C -decimals = 0 - -[factory/inj1dur2nnfx0mezw0yt80pzcvzacrs5dea3xmjmk0/position] -peggy_denom = factory/inj1dur2nnfx0mezw0yt80pzcvzacrs5dea3xmjmk0/position -decimals = 0 - -[factory/inj1dygmwx7n7ume7qldcsdhplzty5v5hlqkef9jwr/position] -peggy_denom = factory/inj1dygmwx7n7ume7qldcsdhplzty5v5hlqkef9jwr/position -decimals = 0 - -[factory/inj1dyzjct7twr54hnmvlgejaxz7uppzygp7hehrnu/iUSD] -peggy_denom = factory/inj1dyzjct7twr54hnmvlgejaxz7uppzygp7hehrnu/iUSD -decimals = 18 - -[factory/inj1e2muv4qz6fcj294hl8lmca62ujwavlvz4qm3hq/position] -peggy_denom = factory/inj1e2muv4qz6fcj294hl8lmca62ujwavlvz4qm3hq/position -decimals = 0 - -[factory/inj1e3h2tku2sj0chapk0dcmawqqkpp6u5tttxquk8/position] -peggy_denom = factory/inj1e3h2tku2sj0chapk0dcmawqqkpp6u5tttxquk8/position -decimals = 0 - -[factory/inj1e53379hwfxcsaa6lmf2m08d66wm9ddc4u5sh25/position] -peggy_denom = factory/inj1e53379hwfxcsaa6lmf2m08d66wm9ddc4u5sh25/position -decimals = 0 - -[factory/inj1e7m63dmrcz6t3x73n6dtpt6swwamyk04g97qlg/injpepe] -peggy_denom = factory/inj1e7m63dmrcz6t3x73n6dtpt6swwamyk04g97qlg/injpepe -decimals = 6 - -[factory/inj1ecx85kv6yhj7x4s5yt5qaqlt5xtpvpgmmvf92u/position] -peggy_denom = factory/inj1ecx85kv6yhj7x4s5yt5qaqlt5xtpvpgmmvf92u/position -decimals = 0 - -[factory/inj1efnh0jp95r6kwsved6y0k6pj8080gxuek2jrnk/ampINJ] -peggy_denom = factory/inj1efnh0jp95r6kwsved6y0k6pj8080gxuek2jrnk/ampINJ -decimals = 0 - -[factory/inj1eg6m8y4x74f9eq4e4754g2wva3pkr6vv3dmax5/position] -peggy_denom = factory/inj1eg6m8y4x74f9eq4e4754g2wva3pkr6vv3dmax5/position -decimals = 0 - -[factory/inj1ehjperv4y4tsmuzn76zg7asxxsgy9n3h97m4nw/position] -peggy_denom = factory/inj1ehjperv4y4tsmuzn76zg7asxxsgy9n3h97m4nw/position -decimals = 0 - -[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test] -peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test -decimals = 0 - -[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test12] -peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test12 -decimals = 0 - -[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test1234] -peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test1234 -decimals = 0 - -[factory/inj1ejueaduc9qmlhvq8nzg4eltuhv9eg022t9pkqz/Fund1] -peggy_denom = factory/inj1ejueaduc9qmlhvq8nzg4eltuhv9eg022t9pkqz/Fund1 -decimals = 0 - -[factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/UNI] -peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/UNI -decimals = 18 - -[factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninji] -peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninji -decimals = 0 - -[factory/inj1em24m6ujruu8pan9fkcsvf25rw46gyzks55mtl/position] -peggy_denom = factory/inj1em24m6ujruu8pan9fkcsvf25rw46gyzks55mtl/position -decimals = 0 - -[factory/inj1ers87xhm27jtgg3tru3zlfqzz882jlql38ky36/position] -peggy_denom = factory/inj1ers87xhm27jtgg3tru3zlfqzz882jlql38ky36/position -decimals = 0 - -[factory/inj1es8t7hpuuhamym96camsumq8f2p7s67ex6ekuk/position] -peggy_denom = factory/inj1es8t7hpuuhamym96camsumq8f2p7s67ex6ekuk/position -decimals = 0 - -[factory/inj1ettpy46cd5rgvghntdzkgtzfxtylx8apuqn993/position] -peggy_denom = factory/inj1ettpy46cd5rgvghntdzkgtzfxtylx8apuqn993/position -decimals = 0 - -[factory/inj1eumzsffrxg4n86n08z4udltdvjw2audeq3ml4r/position] -peggy_denom = factory/inj1eumzsffrxg4n86n08z4udltdvjw2audeq3ml4r/position -decimals = 0 - -[factory/inj1euqtqjkuer85sajsd9jssxfqh6xk0hl79x3kr9/1] -peggy_denom = factory/inj1euqtqjkuer85sajsd9jssxfqh6xk0hl79x3kr9/1 -decimals = 0 - -[factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/inj-test] -peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/inj-test -decimals = 6 - -[factory/inj1euzdefun9xrhm5985wyqycz337cy72jqepsvpz/position] -peggy_denom = factory/inj1euzdefun9xrhm5985wyqycz337cy72jqepsvpz/position -decimals = 0 - -[factory/inj1ev0r4jdrp32595r4dsep5glfz8r29ltn9f6fn8/position] -peggy_denom = factory/inj1ev0r4jdrp32595r4dsep5glfz8r29ltn9f6fn8/position -decimals = 0 - -[factory/inj1ew0nxyp0wvw34qzdc7catsvd2sc5kv400g5jp6/FLG] -peggy_denom = factory/inj1ew0nxyp0wvw34qzdc7catsvd2sc5kv400g5jp6/FLG -decimals = 9 - -[factory/inj1expnflv5vkdjglnstsmywdaeenlr7kmw3am9cd/bINJ] -peggy_denom = factory/inj1expnflv5vkdjglnstsmywdaeenlr7kmw3am9cd/bINJ -decimals = 0 - -[factory/inj1ezgwxucda3qv6ss9sgmn5tke55n7razrka4nxf/position] -peggy_denom = factory/inj1ezgwxucda3qv6ss9sgmn5tke55n7razrka4nxf/position -decimals = 0 - -[factory/inj1eznzrkxw0ajqerwg780nae52tnv6mf6vc53c8m/position] -peggy_denom = factory/inj1eznzrkxw0ajqerwg780nae52tnv6mf6vc53c8m/position -decimals = 0 - -[factory/inj1f34r70r5mn3ecgqh6z0r425ujfjf0z0ssh97wz/position] -peggy_denom = factory/inj1f34r70r5mn3ecgqh6z0r425ujfjf0z0ssh97wz/position -decimals = 0 - -[factory/inj1f3ydxnfr3gzzaj9tdwza80p83n9ahaslcx383s/BTC] -peggy_denom = factory/inj1f3ydxnfr3gzzaj9tdwza80p83n9ahaslcx383s/BTC -decimals = 9 - -[factory/inj1f5nlcumww7lzunw9l8jkm0hu6ml77fr9rxlqyt/position] -peggy_denom = factory/inj1f5nlcumww7lzunw9l8jkm0hu6ml77fr9rxlqyt/position -decimals = 0 - -[factory/inj1f5p279aznnd8wst2rasw46gf9wmdnspx3ymml8/DUCK] -peggy_denom = factory/inj1f5p279aznnd8wst2rasw46gf9wmdnspx3ymml8/DUCK -decimals = 6 - -[factory/inj1f76ard420a76f9kjyy3pte0z0jgmz3m7fmm25l/kd] -peggy_denom = factory/inj1f76ard420a76f9kjyy3pte0z0jgmz3m7fmm25l/kd -decimals = 0 - -[factory/inj1f8qce3t94xjattfldlrt8txkdajj4wp5e77wd5/position] -peggy_denom = factory/inj1f8qce3t94xjattfldlrt8txkdajj4wp5e77wd5/position -decimals = 0 - -[factory/inj1faj8wsfpwyyn5758j2ycjhy2v0kt6n8jl65yy5/test] -peggy_denom = factory/inj1faj8wsfpwyyn5758j2ycjhy2v0kt6n8jl65yy5/test -decimals = 0 - -[factory/inj1fcjg8rsr3uzusq9uk80accx45cajqh7tfu0z09/position] -peggy_denom = factory/inj1fcjg8rsr3uzusq9uk80accx45cajqh7tfu0z09/position -decimals = 0 - -[factory/inj1fcmgj8zhutjyq3rs649nmhl7nl64vshvedq5ac/position] -peggy_denom = factory/inj1fcmgj8zhutjyq3rs649nmhl7nl64vshvedq5ac/position -decimals = 0 - -[factory/inj1fcv9exmq8kqkqlch5cxgqnrmqnsmp99m5k42q7/position] -peggy_denom = factory/inj1fcv9exmq8kqkqlch5cxgqnrmqnsmp99m5k42q7/position -decimals = 0 - -[factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/ak] -peggy_denom = factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/ak -decimals = 6 - -[factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/test] -peggy_denom = factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/test -decimals = 6 - -[factory/inj1ff8anga339wvstvskeu2t9wngl99e2ddyu37en/position] -peggy_denom = factory/inj1ff8anga339wvstvskeu2t9wngl99e2ddyu37en/position -decimals = 0 - -[factory/inj1ff9ux5kc9tx534zjzlfttwqhe0y2v97acgpj6p/duynt-1] -peggy_denom = factory/inj1ff9ux5kc9tx534zjzlfttwqhe0y2v97acgpj6p/duynt-1 -decimals = 9 - -[factory/inj1fhtkg9tga7wdvll35cprd9wyzztp2cdl0qmv69/position] -peggy_denom = factory/inj1fhtkg9tga7wdvll35cprd9wyzztp2cdl0qmv69/position -decimals = 0 - -[factory/inj1fl8vrwlcd9m8hfwdctwcwvmztut8wuclxrsc28/position] -peggy_denom = factory/inj1fl8vrwlcd9m8hfwdctwcwvmztut8wuclxrsc28/position -decimals = 0 - -[factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding] -peggy_denom = factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding -decimals = 0 - -[factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding2] -peggy_denom = factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding2 -decimals = 0 - -[factory/inj1fnlg4mqsz7swspeakkkkzedscx3wl74psgg42a/position] -peggy_denom = factory/inj1fnlg4mqsz7swspeakkkkzedscx3wl74psgg42a/position -decimals = 0 - -[factory/inj1fpmd6x8yk9trh9xl2n65emmcp53m82tenla0gs/position] -peggy_denom = factory/inj1fpmd6x8yk9trh9xl2n65emmcp53m82tenla0gs/position -decimals = 0 - -[factory/inj1fuhdsfutrh647ls7agk9hj37qqxdkr63xc54n9/position] -peggy_denom = factory/inj1fuhdsfutrh647ls7agk9hj37qqxdkr63xc54n9/position -decimals = 0 - -[factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/Magic-Test] -peggy_denom = factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/Magic-Test -decimals = 6 - -[factory/inj1fvqjyqul2jlnj7xkpz4a7u0jsn8erf2fh3lzzn/position] -peggy_denom = factory/inj1fvqjyqul2jlnj7xkpz4a7u0jsn8erf2fh3lzzn/position -decimals = 0 - -[factory/inj1fvrauqfuqluvhazephwtcgjqvwxsp5x8jhxsnx/ak] -peggy_denom = factory/inj1fvrauqfuqluvhazephwtcgjqvwxsp5x8jhxsnx/ak -decimals = 0 - -[factory/inj1fw7tkwmwma9eawavzh5kthhkhu9uuhstdczgky/position] -peggy_denom = factory/inj1fw7tkwmwma9eawavzh5kthhkhu9uuhstdczgky/position -decimals = 0 - -[factory/inj1fwa63dj2c9lpjnewdsgulwxllvka96h6z93yaz/position] -peggy_denom = factory/inj1fwa63dj2c9lpjnewdsgulwxllvka96h6z93yaz/position -decimals = 0 - -[factory/inj1fzpdfqd67grg38r3yy5983uke0mzf5mzhhckux/1] -peggy_denom = factory/inj1fzpdfqd67grg38r3yy5983uke0mzf5mzhhckux/1 -decimals = 0 - -[factory/inj1g2pyrpdutgp8gynad0meweplj0hu08nnj6mwps/position] -peggy_denom = factory/inj1g2pyrpdutgp8gynad0meweplj0hu08nnj6mwps/position -decimals = 0 - -[factory/inj1g3jpwhw2xxwn9qjwjtp80r839pfm8vyc9lpvfm/position] -peggy_denom = factory/inj1g3jpwhw2xxwn9qjwjtp80r839pfm8vyc9lpvfm/position -decimals = 0 - -[factory/inj1g3tflajrul49kh2l4lr6mqzu2tvrz6agmxqt0c/position] -peggy_denom = factory/inj1g3tflajrul49kh2l4lr6mqzu2tvrz6agmxqt0c/position -decimals = 0 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AKK] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AKK -decimals = 6 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BC] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BC -decimals = 0 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BCT] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BCT -decimals = 0 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa1] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa1 -decimals = 6 - -[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT] -peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT -decimals = 0 - -[factory/inj1g5793ypr3w8pp4qd75cuupwr6l27uwh4kwxtyp/position] -peggy_denom = factory/inj1g5793ypr3w8pp4qd75cuupwr6l27uwh4kwxtyp/position -decimals = 0 - -[factory/inj1g5lyftjq6zvj2vd4vhna4850ecjdw332sp7ah9/position] -peggy_denom = factory/inj1g5lyftjq6zvj2vd4vhna4850ecjdw332sp7ah9/position -decimals = 0 - -[factory/inj1g96xktmqzm89kz0cd3xr2mzhtzgyeyamhn4uy5/position] -peggy_denom = factory/inj1g96xktmqzm89kz0cd3xr2mzhtzgyeyamhn4uy5/position -decimals = 0 - -[factory/inj1gae0ejy3nhsc7zhujagrp9r86u5wwsq00te6sa/lpinj1v5dwwcnxdglerm3r8dgjy8a3scd7lwu7ffg5kc] -peggy_denom = factory/inj1gae0ejy3nhsc7zhujagrp9r86u5wwsq00te6sa/lpinj1v5dwwcnxdglerm3r8dgjy8a3scd7lwu7ffg5kc -decimals = 0 - -[factory/inj1gaq65qpckkamqqjjk92we2atekcu7z64jgms03/position] -peggy_denom = factory/inj1gaq65qpckkamqqjjk92we2atekcu7z64jgms03/position -decimals = 0 - -[factory/inj1gaz0m54z8excyw7lrnll865rmzm9tpzq7qltdy/ak] -peggy_denom = factory/inj1gaz0m54z8excyw7lrnll865rmzm9tpzq7qltdy/ak -decimals = 6 - -[factory/inj1gcvxhqqzfhc67283pv9zlwajfszn4zjmnvrt6f/position] -peggy_denom = factory/inj1gcvxhqqzfhc67283pv9zlwajfszn4zjmnvrt6f/position -decimals = 0 - -[factory/inj1ge7am845evnwukyfpkn90dysaxhp9wkfuayqwe/position] -peggy_denom = factory/inj1ge7am845evnwukyfpkn90dysaxhp9wkfuayqwe/position -decimals = 0 - -[factory/inj1gel3l0a7j4g9ph8lrfl97gwjrfu40hp8gt8laf/position] -peggy_denom = factory/inj1gel3l0a7j4g9ph8lrfl97gwjrfu40hp8gt8laf/position -decimals = 0 - -[factory/inj1gevmkpqjxgc8s0y8e6lvcdehfqc0e68ppq32df/position] -peggy_denom = factory/inj1gevmkpqjxgc8s0y8e6lvcdehfqc0e68ppq32df/position -decimals = 0 - -[factory/inj1gg3uw8u22f3223m7yryu8k9tgvgkwfr6pj630h/position] -peggy_denom = factory/inj1gg3uw8u22f3223m7yryu8k9tgvgkwfr6pj630h/position -decimals = 0 - -[factory/inj1ghtvh6juxudspvrh9tdlz0p4d4u6k8xxd6jkgx/auction.0] -peggy_denom = factory/inj1ghtvh6juxudspvrh9tdlz0p4d4u6k8xxd6jkgx/auction.0 -decimals = 0 - -[factory/inj1ghuveva04c5ev9q20w4swt362n4sh49wya0fxl/position] -peggy_denom = factory/inj1ghuveva04c5ev9q20w4swt362n4sh49wya0fxl/position -decimals = 0 - -[factory/inj1gjjpzwvlak7kmqucl92g2car56r3zxjzysxuz8/foobar] -peggy_denom = factory/inj1gjjpzwvlak7kmqucl92g2car56r3zxjzysxuz8/foobar -decimals = 0 - -[factory/inj1gl0uf9nky7l6z280sle7x086pvgfd9e5tx932x/galaxy] -peggy_denom = factory/inj1gl0uf9nky7l6z280sle7x086pvgfd9e5tx932x/galaxy -decimals = 6 - -[factory/inj1gn6xfmxf6n9lu82892lyfwh4drxmwc2hmqef7u/position] -peggy_denom = factory/inj1gn6xfmxf6n9lu82892lyfwh4drxmwc2hmqef7u/position -decimals = 0 - -[factory/inj1gnqdy89s5q360f0j7rxsukxy0x343l6x4ferlt/position] -peggy_denom = factory/inj1gnqdy89s5q360f0j7rxsukxy0x343l6x4ferlt/position -decimals = 0 - -[factory/inj1gpux5gt63wn46yyfqh8cthugl9yqfrcnefmemm/position] -peggy_denom = factory/inj1gpux5gt63wn46yyfqh8cthugl9yqfrcnefmemm/position -decimals = 0 - -[factory/inj1gpvuqskf8jet67r4vah3f9p4dzt67d9rr8u2y2/123] -peggy_denom = factory/inj1gpvuqskf8jet67r4vah3f9p4dzt67d9rr8u2y2/123 -decimals = 0 - -[factory/inj1gpxaq5mgd4ydhyxfdgcjwn5sm9qed7skpnrlj2/bINJ] -peggy_denom = factory/inj1gpxaq5mgd4ydhyxfdgcjwn5sm9qed7skpnrlj2/bINJ -decimals = 0 - -[factory/inj1grz7n07nu48jv8m5gpxsjlac3lqq5x3yspz9ck/position] -peggy_denom = factory/inj1grz7n07nu48jv8m5gpxsjlac3lqq5x3yspz9ck/position -decimals = 0 - -[factory/inj1gsfzd0l2xxkkvsrhedt7lnhrgydkp3argcwad3/position] -peggy_denom = factory/inj1gsfzd0l2xxkkvsrhedt7lnhrgydkp3argcwad3/position -decimals = 0 - -[factory/inj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9/lp] -peggy_denom = factory/inj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9/lp -decimals = 0 - -[factory/inj1gvftjh39gp6akdxm6l5yrwx426hu7l0fkd3yry/ak] -peggy_denom = factory/inj1gvftjh39gp6akdxm6l5yrwx426hu7l0fkd3yry/ak -decimals = 6 - -[factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test -decimals = 18 - -[factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test2] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test2 -decimals = 6 - -[factory/inj1gvskqyvy4y2630mn7lswylsyrvzq8xnp06mrn6/position] -peggy_denom = factory/inj1gvskqyvy4y2630mn7lswylsyrvzq8xnp06mrn6/position -decimals = 0 - -[factory/inj1gvsx78tja0wfqq9e2tddhlky4ydc2w3wx2zkrd/position] -peggy_denom = factory/inj1gvsx78tja0wfqq9e2tddhlky4ydc2w3wx2zkrd/position -decimals = 0 - -[factory/inj1gy6kakuaatzkd4hw6urjx05t73pr6mc9zngqn5/position] -peggy_denom = factory/inj1gy6kakuaatzkd4hw6urjx05t73pr6mc9zngqn5/position -decimals = 0 - -[factory/inj1h0z5hthmecgz47954j6ykcapeq4rfv52thdjw0/test] -peggy_denom = factory/inj1h0z5hthmecgz47954j6ykcapeq4rfv52thdjw0/test -decimals = 0 - -[factory/inj1h7nwgw6fzhnjlxen0cgrpaceewlrf5ppfsjzkp/FLG] -peggy_denom = factory/inj1h7nwgw6fzhnjlxen0cgrpaceewlrf5ppfsjzkp/FLG -decimals = 9 - -[factory/inj1h8ahs9d035fxp0gmyyq84rqjy4kgjydk3wvhdn/position] -peggy_denom = factory/inj1h8ahs9d035fxp0gmyyq84rqjy4kgjydk3wvhdn/position -decimals = 0 - -[factory/inj1h8qes5tdp86c0r8kg76xxs9yt8d47kemz8huwr/symbol2] -peggy_denom = factory/inj1h8qes5tdp86c0r8kg76xxs9yt8d47kemz8huwr/symbol2 -decimals = 0 - -[factory/inj1hadwz2rpsccxdpyv04nmqevtrss35lenmz8dzw/position] -peggy_denom = factory/inj1hadwz2rpsccxdpyv04nmqevtrss35lenmz8dzw/position -decimals = 0 - -[factory/inj1hajw3kjyrn2xr42eu7t7ywtydlm0p6nma4m6qh/test] -peggy_denom = factory/inj1hajw3kjyrn2xr42eu7t7ywtydlm0p6nma4m6qh/test -decimals = 0 - -[factory/inj1hd6vlkzzxvwr8n5x6pd2ctsl34l063ednu0uxl/test] -peggy_denom = factory/inj1hd6vlkzzxvwr8n5x6pd2ctsl34l063ednu0uxl/test -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj10f4x5azxg58tfykzntcj4edazh3g3fnslut9vc] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj10f4x5azxg58tfykzntcj4edazh3g3fnslut9vc -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15466xjsqhh0l60kwx44h5hnzm5dy069mhpgcvk] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15466xjsqhh0l60kwx44h5hnzm5dy069mhpgcvk -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15dph6ndevrvvzec8wzdv9ahegndfcqs6922kkf] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15dph6ndevrvvzec8wzdv9ahegndfcqs6922kkf -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj16e0ahu2q8u3teqk3z8ngr2nufslvsl5ru5ydt0] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj16e0ahu2q8u3teqk3z8ngr2nufslvsl5ru5ydt0 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj18lh2du7f0mayz7cmyjm487eudc48m3d24jltpc] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj18lh2du7f0mayz7cmyjm487eudc48m3d24jltpc -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj192ta9slx6l7ftreft5mds90pmpavmsu9n6vhr6] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj192ta9slx6l7ftreft5mds90pmpavmsu9n6vhr6 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1avns4wyef63l4scsxj2e6cf56fnt3m2lv9tgnk] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1avns4wyef63l4scsxj2e6cf56fnt3m2lv9tgnk -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1f5sksszg9uphrapwthjrrcpdmyr5r4guk5fq5x] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1f5sksszg9uphrapwthjrrcpdmyr5r4guk5fq5x -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1hhpqhlpch0h5xhufhlvl6xs95ccx2l8l4nk4un] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1hhpqhlpch0h5xhufhlvl6xs95ccx2l8l4nk4un -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1j58xf5f09u98jxvqyqsjhacdepepwxy67sg5dh] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1j58xf5f09u98jxvqyqsjhacdepepwxy67sg5dh -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1jrpf2rzsr9hfn7uaqgqjae6lx8vhfk00tjvvzw] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1jrpf2rzsr9hfn7uaqgqjae6lx8vhfk00tjvvzw -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1kfxppjerh6u36le9378zpu6da688v59y8qdjk2] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1kfxppjerh6u36le9378zpu6da688v59y8qdjk2 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lhfrehpyfgf5sx80z2qx7y4f6xqdwrf4y09znz] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lhfrehpyfgf5sx80z2qx7y4f6xqdwrf4y09znz -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lu4uvsxf2dar0xsuvxargvtr9370jzwek43vn7] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lu4uvsxf2dar0xsuvxargvtr9370jzwek43vn7 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m70qfh8wte92l55lrddn2gzsscc97ve79ccdtc] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m70qfh8wte92l55lrddn2gzsscc97ve79ccdtc -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1me0ydc5m8ggwuaerwt67tg4zh8yc6zgn39kz6k] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1me0ydc5m8ggwuaerwt67tg4zh8yc6zgn39kz6k -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mvlsa3azvj05xe68szp3jrzeg8p5lakeh40rkj] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mvlsa3azvj05xe68szp3jrzeg8p5lakeh40rkj -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1n9hcmejg2mfkkyyzze82nk9fdls5g32ykga47l] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1n9hcmejg2mfkkyyzze82nk9fdls5g32ykga47l -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1nkdq6elhmu0cv3ucy5zql7uakr05g94jx3nv0p] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1nkdq6elhmu0cv3ucy5zql7uakr05g94jx3nv0p -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1npj6nv6kxcyqjtjn8sguqsyc60ghr3j48pjj7x] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1npj6nv6kxcyqjtjn8sguqsyc60ghr3j48pjj7x -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1p9qrra4k3pt6ts3larlguucpw0urlc8jyq2ddg] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1p9qrra4k3pt6ts3larlguucpw0urlc8jyq2ddg -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1pmv03tjwu798ry6dyss4a2qn5dnmh7m7t9ljqe] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1pmv03tjwu798ry6dyss4a2qn5dnmh7m7t9ljqe -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1qdnxd73mfvj6uu6h08yk8h7zwvzpqx35ycnupf] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1qdnxd73mfvj6uu6h08yk8h7zwvzpqx35ycnupf -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1s5y4wz7yyzkp4pthylm84uyswnsfmqyayx22w3] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1s5y4wz7yyzkp4pthylm84uyswnsfmqyayx22w3 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1tzvk3zjxd7jjcnugz6jhufaqsn8c5llhjj3x67] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1tzvk3zjxd7jjcnugz6jhufaqsn8c5llhjj3x67 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1u5zugw73cvcj43efq5j3ns4y7tqvq52u4nvqu9] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1u5zugw73cvcj43efq5j3ns4y7tqvq52u4nvqu9 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1ufmjm7stkuhlzma23ypzgvlvtgqjweatkztq0c] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1ufmjm7stkuhlzma23ypzgvlvtgqjweatkztq0c -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1uqnsq33sjwhyhsc7wjh2d2tc40lu0tfrktes5v] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1uqnsq33sjwhyhsc7wjh2d2tc40lu0tfrktes5v -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1wrtwcee23p0k9z5tveerx8tyesvjs4k8vlf4en] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1wrtwcee23p0k9z5tveerx8tyesvjs4k8vlf4en -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1yhz4e7df95908jhs9erl87vdzjkdsc24q7afjf] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1yhz4e7df95908jhs9erl87vdzjkdsc24q7afjf -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zav98x9dlswwttdjmz7qg9fqhdvauc8smfqhvs] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zav98x9dlswwttdjmz7qg9fqhdvauc8smfqhvs -decimals = 0 - -[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zflmjmg0qt02s0l0vlcg8zlyplsapefzy6ej3t] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zflmjmg0qt02s0l0vlcg8zlyplsapefzy6ej3t -decimals = 0 - -[factory/inj1he7245j7my7f6470a94g0drsw86xajwzhr4ah9/position] -peggy_denom = factory/inj1he7245j7my7f6470a94g0drsw86xajwzhr4ah9/position -decimals = 0 - -[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9] -peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 -decimals = 0 - -[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj17wnnyqxj57y3crf5nn72krhx7w35zect2srfe2] -peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj17wnnyqxj57y3crf5nn72krhx7w35zect2srfe2 -decimals = 0 - -[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj19axs93f4hk8cansmhj372m96v2zhdmdqdd5fnm] -peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj19axs93f4hk8cansmhj372m96v2zhdmdqdd5fnm -decimals = 0 - -[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1wme3afmfl94l83jzekcm3j0h544ussu0x68wnl] -peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1wme3afmfl94l83jzekcm3j0h544ussu0x68wnl -decimals = 0 - -[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] -peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 -decimals = 0 - -[factory/inj1hg36aw2pm9988jxd0pu8lnfwg533vcs5weakx6/position] -peggy_denom = factory/inj1hg36aw2pm9988jxd0pu8lnfwg533vcs5weakx6/position -decimals = 0 - -[factory/inj1hh4ngvv0l7tlt5gcpwwauzuthrmzwyutxkxq0x/position] -peggy_denom = factory/inj1hh4ngvv0l7tlt5gcpwwauzuthrmzwyutxkxq0x/position -decimals = 0 - -[factory/inj1hhezfw883am7xk86jkxauf92kg8wm9xsv5hymd/position] -peggy_denom = factory/inj1hhezfw883am7xk86jkxauf92kg8wm9xsv5hymd/position -decimals = 0 - -[factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TEST2] -peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TEST2 -decimals = 6 - -[factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/test1] -peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/test1 -decimals = 0 - -[factory/inj1hjujvtzpwqfm76tkmg6qr2vlsp2drzph6n3n4n/position] -peggy_denom = factory/inj1hjujvtzpwqfm76tkmg6qr2vlsp2drzph6n3n4n/position -decimals = 0 - -[factory/inj1hk8w93z3rw6aznyvnc537qn9aht6gxlxn80j0h/position] -peggy_denom = factory/inj1hk8w93z3rw6aznyvnc537qn9aht6gxlxn80j0h/position -decimals = 0 - -[factory/inj1hkng9xr75yqg6yf6ela40k58n7cw0a2vgsty64/HOA9] -peggy_denom = factory/inj1hkng9xr75yqg6yf6ela40k58n7cw0a2vgsty64/HOA9 -decimals = 0 - -[factory/inj1hlgmzgxzxzyjxu6394328vf0fmwd74pcc6cztc/position] -peggy_denom = factory/inj1hlgmzgxzxzyjxu6394328vf0fmwd74pcc6cztc/position -decimals = 0 - -[factory/inj1hljrl5cx0gcd8gdxmqm4tsuqkxchysdakyfhan/position] -peggy_denom = factory/inj1hljrl5cx0gcd8gdxmqm4tsuqkxchysdakyfhan/position -decimals = 0 - -[factory/inj1hm9qgpe4ksgat77xjstkhhcns0xex770t4crr3/bpINJ] -peggy_denom = factory/inj1hm9qgpe4ksgat77xjstkhhcns0xex770t4crr3/bpINJ -decimals = 0 - -[factory/inj1hms4dradmmdjlgrnh4dywg897g3hpcc5n7hxgk/position] -peggy_denom = factory/inj1hms4dradmmdjlgrnh4dywg897g3hpcc5n7hxgk/position -decimals = 0 - -[factory/inj1hnnwzsudnmtshgky0xfts8zm637skect2prc2l/position] -peggy_denom = factory/inj1hnnwzsudnmtshgky0xfts8zm637skect2prc2l/position -decimals = 0 - -[factory/inj1hr0hpnh95jdf2w8rax063mrqxcgesq4jeazg34/position] -peggy_denom = factory/inj1hr0hpnh95jdf2w8rax063mrqxcgesq4jeazg34/position -decimals = 0 - -[factory/inj1hr2aj9frer4n50j64ew6j4n434du4etv65t25h/position] -peggy_denom = factory/inj1hr2aj9frer4n50j64ew6j4n434du4etv65t25h/position -decimals = 0 - -[factory/inj1hs6te9qe40mzr4qayc9hhngv4tzn07a3cujshr/position] -peggy_denom = factory/inj1hs6te9qe40mzr4qayc9hhngv4tzn07a3cujshr/position -decimals = 0 - -[factory/inj1ht67n9wwrf8pkd2dupwsjqfe2wzaelaz2dsqj7/position] -peggy_denom = factory/inj1ht67n9wwrf8pkd2dupwsjqfe2wzaelaz2dsqj7/position -decimals = 0 - -[factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ak] -peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ak -decimals = 6 - -[factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/inj-test] -peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/inj-test -decimals = 0 - -[factory/inj1hu80gaauahnfnd0pwfa97xzge7td6e4atu29jw/position] -peggy_denom = factory/inj1hu80gaauahnfnd0pwfa97xzge7td6e4atu29jw/position -decimals = 0 - -[factory/inj1hwaycepzld9rvsqzkeyjtflumzlu37n4xj8f3a/position] -peggy_denom = factory/inj1hwaycepzld9rvsqzkeyjtflumzlu37n4xj8f3a/position -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193599InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193599InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193683AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193683AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707InjUsdt2d110C -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103AtomUsdt2d90P] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103AtomUsdt2d90P -decimals = 0 - -[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103InjUsdt2d110C] -peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103InjUsdt2d110C -decimals = 0 - -[factory/inj1hz74vt433t870r4ywnk7l9j483u6w6a6yl8uqt/BTC] -peggy_denom = factory/inj1hz74vt433t870r4ywnk7l9j483u6w6a6yl8uqt/BTC -decimals = 9 - -[factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/1] -peggy_denom = factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/1 -decimals = 0 - -[factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/2] -peggy_denom = factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/2 -decimals = 0 - -[factory/inj1j07z60sprgkzqtqtq2lxtnpdxly25xj44h22nr/test] -peggy_denom = factory/inj1j07z60sprgkzqtqtq2lxtnpdxly25xj44h22nr/test -decimals = 0 - -[factory/inj1j3593zd3nx9gygnfxkqw5e7gr6wgl403yh3ydl/position] -peggy_denom = factory/inj1j3593zd3nx9gygnfxkqw5e7gr6wgl403yh3ydl/position -decimals = 0 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TEST] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TEST -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TST] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TST -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TSTTT] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TSTTT -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testigg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testigg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testiggg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testiggg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggggg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggggg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstigg] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstigg -decimals = 6 - -[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt] -peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt -decimals = 6 - -[factory/inj1j5uwfmqj9wcm8tu4ltva673wv03f884cpvurq8/position] -peggy_denom = factory/inj1j5uwfmqj9wcm8tu4ltva673wv03f884cpvurq8/position -decimals = 0 - -[factory/inj1j5z0r7sqkznj44u3u7hkq6k0nl8kpq493zt9ar/BTC] -peggy_denom = factory/inj1j5z0r7sqkznj44u3u7hkq6k0nl8kpq493zt9ar/BTC -decimals = 9 - -[factory/inj1j64299hq4a8yfd5qmpxkwu24t3as2xs9q78md0/position] -peggy_denom = factory/inj1j64299hq4a8yfd5qmpxkwu24t3as2xs9q78md0/position -decimals = 0 - -[factory/inj1j77avxp50lt766ezvad59nyk0qzddfh69dsegt/position] -peggy_denom = factory/inj1j77avxp50lt766ezvad59nyk0qzddfh69dsegt/position -decimals = 0 - -[factory/inj1j7ehe6pdmp92zs2gqz67tp4ukv9p323yk7qacy/RAMENV2] -peggy_denom = factory/inj1j7ehe6pdmp92zs2gqz67tp4ukv9p323yk7qacy/RAMENV2 -decimals = 6 - -[factory/inj1j9k4l9fep89pgaqecc5h9hpghjsa4ffwg8mjcr/position] -peggy_denom = factory/inj1j9k4l9fep89pgaqecc5h9hpghjsa4ffwg8mjcr/position -decimals = 0 - -[factory/inj1j9nc88lw725mapgvu27edd6qxwnaf9qdcdhjnj/NTH] -peggy_denom = factory/inj1j9nc88lw725mapgvu27edd6qxwnaf9qdcdhjnj/NTH -decimals = 0 - -[factory/inj1jc7jj2wx6mlgy2umkw03duflgvf5h77cc0cqjr/ak] -peggy_denom = factory/inj1jc7jj2wx6mlgy2umkw03duflgvf5h77cc0cqjr/ak -decimals = 6 - -[factory/inj1jcgs0vmqg5jyuz2y53w06prtwdhq0q3gyecfrl/position] -peggy_denom = factory/inj1jcgs0vmqg5jyuz2y53w06prtwdhq0q3gyecfrl/position -decimals = 0 - -[factory/inj1jd6tjedh3a8fcervaec5ftn463504k0d6d0ftg/position] -peggy_denom = factory/inj1jd6tjedh3a8fcervaec5ftn463504k0d6d0ftg/position -decimals = 0 - -[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/ak] -peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/ak -decimals = 6 - -[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira] -peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira -decimals = 6 - -[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kirat] -peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kirat -decimals = 0 - -[factory/inj1jfzpfkqlnesfwmg4ewyaurkddavawwtgc20ksx/test] -peggy_denom = factory/inj1jfzpfkqlnesfwmg4ewyaurkddavawwtgc20ksx/test -decimals = 0 - -[factory/inj1jjlw9gfgn4kq2cpw2dlcz77z9dxuypg7dpfl2g/position] -peggy_denom = factory/inj1jjlw9gfgn4kq2cpw2dlcz77z9dxuypg7dpfl2g/position -decimals = 0 - -[factory/inj1jnu67egy9gex77d2fafz36nse6sg4sml7r3vv7/position] -peggy_denom = factory/inj1jnu67egy9gex77d2fafz36nse6sg4sml7r3vv7/position -decimals = 0 - -[factory/inj1jp8c8sup584tdw9jl0jfrx78crp5ufcwuax78g/symbol3] -peggy_denom = factory/inj1jp8c8sup584tdw9jl0jfrx78crp5ufcwuax78g/symbol3 -decimals = 0 - -[factory/inj1jq267957yt6h7987szcrf5e8asfrzu86ayr568/1684001277InjUsdt1d110C] -peggy_denom = factory/inj1jq267957yt6h7987szcrf5e8asfrzu86ayr568/1684001277InjUsdt1d110C -decimals = 0 - -[factory/inj1jqccfrzpfhx9pvtxtrz0ufh6vl72uft7v5r360/position] -peggy_denom = factory/inj1jqccfrzpfhx9pvtxtrz0ufh6vl72uft7v5r360/position -decimals = 0 - -[factory/inj1jrjsn947qrmlujlpjahmg67qv9dcxkvyx6rl97/position] -peggy_denom = factory/inj1jrjsn947qrmlujlpjahmg67qv9dcxkvyx6rl97/position -decimals = 0 - -[factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/test] -peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/test -decimals = 0 - -[factory/inj1jtkk33paqrupr39tchhdavw2vmk5m09ymfq8xx/position] -peggy_denom = factory/inj1jtkk33paqrupr39tchhdavw2vmk5m09ymfq8xx/position -decimals = 0 - -[factory/inj1jwt093rt0puraancqzahm02eh5ffpqd8wyxqel/duynt-1] -peggy_denom = factory/inj1jwt093rt0puraancqzahm02eh5ffpqd8wyxqel/duynt-1 -decimals = 9 - -[factory/inj1jx8akujhkqe88fm7juf9qr3r5m74z5lcyffzlf/position] -peggy_denom = factory/inj1jx8akujhkqe88fm7juf9qr3r5m74z5lcyffzlf/position -decimals = 0 - -[factory/inj1jxcx0qljtdzps58an4r66zn8hg5hv4z2694y2v/position] -peggy_denom = factory/inj1jxcx0qljtdzps58an4r66zn8hg5hv4z2694y2v/position -decimals = 0 - -[factory/inj1jy0zw3cpctqrhcg7qc0yglnljcsk89sr046rnj/position] -peggy_denom = factory/inj1jy0zw3cpctqrhcg7qc0yglnljcsk89sr046rnj/position -decimals = 0 - -[factory/inj1jykz2vaea5382hd7r76wvjv56v69h4agr52v2e/position] -peggy_denom = factory/inj1jykz2vaea5382hd7r76wvjv56v69h4agr52v2e/position -decimals = 0 - -[factory/inj1jzdvaf5n54mgepq04c5lqvfxmm5xckw04hz2fy/test] -peggy_denom = factory/inj1jzdvaf5n54mgepq04c5lqvfxmm5xckw04hz2fy/test -decimals = 9 - -[factory/inj1k2z5rumpc53854hzq5chxyayrqcrqm9uwad308/position] -peggy_denom = factory/inj1k2z5rumpc53854hzq5chxyayrqcrqm9uwad308/position -decimals = 0 - -[factory/inj1k4ytv0a9xhrxedsjsn9e92v4333a5n33u8zpwj/position] -peggy_denom = factory/inj1k4ytv0a9xhrxedsjsn9e92v4333a5n33u8zpwj/position -decimals = 0 - -[factory/inj1k6dvrkjvgwlzgc0vk54hkyjvp2llrp0mvdrpt3/duynt-1] -peggy_denom = factory/inj1k6dvrkjvgwlzgc0vk54hkyjvp2llrp0mvdrpt3/duynt-1 -decimals = 9 - -[factory/inj1k7mc760g739rmxv8yhvya5mtpvymrs3vf98s4m/position] -peggy_denom = factory/inj1k7mc760g739rmxv8yhvya5mtpvymrs3vf98s4m/position -decimals = 0 - -[factory/inj1k8jzdcvvjv6tt5zeprtwt4aewv5c264mhj228u/hoa1] -peggy_denom = factory/inj1k8jzdcvvjv6tt5zeprtwt4aewv5c264mhj228u/hoa1 -decimals = 9 - -[factory/inj1kagzsefacxy5p765q8upkjj9fwkjczlhe580ar/position] -peggy_denom = factory/inj1kagzsefacxy5p765q8upkjj9fwkjczlhe580ar/position -decimals = 0 - -[factory/inj1kar690fes35rm0dx5zcjwt5pjhtvcf572w3ffe/auction.0] -peggy_denom = factory/inj1kar690fes35rm0dx5zcjwt5pjhtvcf572w3ffe/auction.0 -decimals = 0 - -[factory/inj1kchw3uh70ujhmvrkx7phjayaswnpf7sde67uzw/position] -peggy_denom = factory/inj1kchw3uh70ujhmvrkx7phjayaswnpf7sde67uzw/position -decimals = 0 - -[factory/inj1kd6l4mq8kt23n05mzagdcyegzfstddygwglkyv/hoa3] -peggy_denom = factory/inj1kd6l4mq8kt23n05mzagdcyegzfstddygwglkyv/hoa3 -decimals = 9 - -[factory/inj1kdksyv2jv3nnmenqfvxxe38q4drwn8e7wj5pcx/position] -peggy_denom = factory/inj1kdksyv2jv3nnmenqfvxxe38q4drwn8e7wj5pcx/position -decimals = 0 - -[factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/inj-test] -peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/inj-test -decimals = 0 - -[factory/inj1kfjpk47586cdkagusn58y2jqd4vu5kckkyq9rh/FLG] -peggy_denom = factory/inj1kfjpk47586cdkagusn58y2jqd4vu5kckkyq9rh/FLG -decimals = 9 - -[factory/inj1kg5qz6vfxxz7l6d8qh5spgjdjuwusarcmf447y/position] -peggy_denom = factory/inj1kg5qz6vfxxz7l6d8qh5spgjdjuwusarcmf447y/position -decimals = 0 - -[factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cook] -peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cook -decimals = 6 - -[factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cookie] -peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cookie -decimals = 6 - -[factory/inj1kgzm28dyl9sh9atz5ms9wmv0tmp72dg3s4eezz/position] -peggy_denom = factory/inj1kgzm28dyl9sh9atz5ms9wmv0tmp72dg3s4eezz/position -decimals = 0 - -[factory/inj1kjcc00fu0ven6khmdrx8kmzsa3w03mxrzlvp66/position] -peggy_denom = factory/inj1kjcc00fu0ven6khmdrx8kmzsa3w03mxrzlvp66/position -decimals = 0 - -[factory/inj1kjy08x977nekv2fv20skhqhde7t396la4yy3m3/nept] -peggy_denom = factory/inj1kjy08x977nekv2fv20skhqhde7t396la4yy3m3/nept -decimals = 6 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go1] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go1 -decimals = 18 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-main] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-main -decimals = 18 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-test] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-test -decimals = 0 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdc] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdc -decimals = 6 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdt] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdt -decimals = 6 - -[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdt-demo] -peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-usdt-demo -decimals = 6 - -[factory/inj1kp5z0kxyrnwzt3mgwl0klanx8yty6lnne25stk/position] -peggy_denom = factory/inj1kp5z0kxyrnwzt3mgwl0klanx8yty6lnne25stk/position -decimals = 0 - -[factory/inj1kpamjvx4cuty7vnlnkf3ycurlhzhqjjygwcmzu/BTYC] -peggy_denom = factory/inj1kpamjvx4cuty7vnlnkf3ycurlhzhqjjygwcmzu/BTYC -decimals = 9 - -[factory/inj1kq8ya3knwcwscs9quunwz5hnrc4ya2utf3uzw3/symbol] -peggy_denom = factory/inj1kq8ya3knwcwscs9quunwz5hnrc4ya2utf3uzw3/symbol -decimals = 9 - -[factory/inj1kql9xt6essgccf594ypqdu690wnjkdksp75d7r/position] -peggy_denom = factory/inj1kql9xt6essgccf594ypqdu690wnjkdksp75d7r/position -decimals = 0 - -[factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go1] -peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go1 -decimals = 18 - -[factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-main] -peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-main -decimals = 0 - -[factory/inj1kscpq7lqluusxhmzv0z2eluaj9yf2njayudlcs/TAB] -peggy_denom = factory/inj1kscpq7lqluusxhmzv0z2eluaj9yf2njayudlcs/TAB -decimals = 6 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/inj-test] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/inj-test -decimals = 0 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikena] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikena -decimals = 6 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikeng] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikeng -decimals = 6 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenk] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenk -decimals = 6 - -[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenl] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenl -decimals = 0 - -[factory/inj1ku42wlmwuznlzeywnsvjkr5mf00hg4u72qau7y/position] -peggy_denom = factory/inj1ku42wlmwuznlzeywnsvjkr5mf00hg4u72qau7y/position -decimals = 0 - -[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/AKK] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/AKK -decimals = 0 - -[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY -decimals = 6 - -[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/ak] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/ak -decimals = 0 - -[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/hdro] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/hdro -decimals = 6 - -[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/sl] -peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/sl -decimals = 0 - -[factory/inj1kvd2huvd2tjrmh94pr0823uemrqm3wr56pk4e6/BTC] -peggy_denom = factory/inj1kvd2huvd2tjrmh94pr0823uemrqm3wr56pk4e6/BTC -decimals = 9 - -[factory/inj1kvsuv80cz74znps8jpm7td9gxnd6zyjhs379rd/position] -peggy_denom = factory/inj1kvsuv80cz74znps8jpm7td9gxnd6zyjhs379rd/position -decimals = 0 - -[factory/inj1kw7hdjnneatd2mgc9snqhehhm8wkvmym9c3a37/position] -peggy_denom = factory/inj1kw7hdjnneatd2mgc9snqhehhm8wkvmym9c3a37/position -decimals = 0 - -[factory/inj1kygt3qa7rjux7wjmp3r2p29aq8zerz8zjcml8l/position] -peggy_denom = factory/inj1kygt3qa7rjux7wjmp3r2p29aq8zerz8zjcml8l/position -decimals = 0 - -[factory/inj1kzfya35nclmpzj95m3yhc0zht93k0xvdn2zgtj/position] -peggy_denom = factory/inj1kzfya35nclmpzj95m3yhc0zht93k0xvdn2zgtj/position -decimals = 0 - -[factory/inj1l08w00ngs4twqa7mhaavnjgs8sdym7l0pv57mn/position] -peggy_denom = factory/inj1l08w00ngs4twqa7mhaavnjgs8sdym7l0pv57mn/position -decimals = 0 - -[factory/inj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m/lp] -peggy_denom = factory/inj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m/lp -decimals = 0 - -[factory/inj1l5u0qphqa02dl257e2h6te07szdlnsjfuggf7d/position] -peggy_denom = factory/inj1l5u0qphqa02dl257e2h6te07szdlnsjfuggf7d/position -decimals = 0 - -[factory/inj1l67cg8jf97gxsxrf8cfz5khmutwh392c7hdlyp/position] -peggy_denom = factory/inj1l67cg8jf97gxsxrf8cfz5khmutwh392c7hdlyp/position -decimals = 0 - -[factory/inj1l7frwkpwkpx5ulleqz9tuj754m9z02rfdsmsqp/uLP] -peggy_denom = factory/inj1l7frwkpwkpx5ulleqz9tuj754m9z02rfdsmsqp/uLP -decimals = 0 - -[factory/inj1l8r30dpqq98l97wwwdxkkwdnpzu02aj0r6mnrw/banana] -peggy_denom = factory/inj1l8r30dpqq98l97wwwdxkkwdnpzu02aj0r6mnrw/banana -decimals = 0 - -[factory/inj1l92lfj2wudxpawj7rkta6kqvxr7twg7kah9zq9/position] -peggy_denom = factory/inj1l92lfj2wudxpawj7rkta6kqvxr7twg7kah9zq9/position -decimals = 0 - -[factory/inj1l96mcs69en0u4y423m4k5z8k6u48e25wnd4zpu/position] -peggy_denom = factory/inj1l96mcs69en0u4y423m4k5z8k6u48e25wnd4zpu/position -decimals = 0 - -[factory/inj1la5tx5xccss5ku6j8rk7erwukzl40q29mk97am/position] -peggy_denom = factory/inj1la5tx5xccss5ku6j8rk7erwukzl40q29mk97am/position -decimals = 0 - -[factory/inj1lc0htcdf9xdj3jnfstkjlul3j6fzjftw9k2vqc/hoa1] -peggy_denom = factory/inj1lc0htcdf9xdj3jnfstkjlul3j6fzjftw9k2vqc/hoa1 -decimals = 9 - -[factory/inj1lcg53t8y8a9lq70fknwclqece2clglke42yrw2/BTC] -peggy_denom = factory/inj1lcg53t8y8a9lq70fknwclqece2clglke42yrw2/BTC -decimals = 9 - -[factory/inj1lg4ycnwe3xt9x9wsc2tfe0v9lm9kdxkyj760nw/position] -peggy_denom = factory/inj1lg4ycnwe3xt9x9wsc2tfe0v9lm9kdxkyj760nw/position -decimals = 0 - -[factory/inj1lg9sysgklc6tt85ax54k7fd28lx26prg5guunl/position] -peggy_denom = factory/inj1lg9sysgklc6tt85ax54k7fd28lx26prg5guunl/position -decimals = 0 - -[factory/inj1lgcxyyvmnhtp42apwgvhhvlqvezwlqly998eex/nUSD] -peggy_denom = factory/inj1lgcxyyvmnhtp42apwgvhhvlqvezwlqly998eex/nUSD -decimals = 18 - -[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj] -peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj -decimals = 6 - -[factory/inj1ljsmrpm3hlth5zk347lqr23rdzm2ktd4aathkl/position] -peggy_denom = factory/inj1ljsmrpm3hlth5zk347lqr23rdzm2ktd4aathkl/position -decimals = 0 - -[factory/inj1lm6prvcxdq5e32f0eeq3nuvq6g9zk0k6787sas/lp] -peggy_denom = factory/inj1lm6prvcxdq5e32f0eeq3nuvq6g9zk0k6787sas/lp -decimals = 0 - -[factory/inj1lpcrac7g7dketq89ttxn86whqz65zuhe37zwnt/BTC] -peggy_denom = factory/inj1lpcrac7g7dketq89ttxn86whqz65zuhe37zwnt/BTC -decimals = 9 - -[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TEST] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TEST -decimals = 6 - -[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom -decimals = 0 - -[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/t1] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/t1 -decimals = 0 - -[factory/inj1lqt0nl9xuvprp2l2x0x6htln8cu7zrc39q0td4/position] -peggy_denom = factory/inj1lqt0nl9xuvprp2l2x0x6htln8cu7zrc39q0td4/position -decimals = 0 - -[factory/inj1lr2vhedf3a285rx5ms84w576g3hkktn7d8dx70/position] -peggy_denom = factory/inj1lr2vhedf3a285rx5ms84w576g3hkktn7d8dx70/position -decimals = 0 - -[factory/inj1lskj3yp5gdzyq5w8vqh82d9lhcu5xaq85tuewa/position] -peggy_denom = factory/inj1lskj3yp5gdzyq5w8vqh82d9lhcu5xaq85tuewa/position -decimals = 0 - -[factory/inj1lssnhhl6npy0v2wd6jm5575u06nu8a68ged88m/position] -peggy_denom = factory/inj1lssnhhl6npy0v2wd6jm5575u06nu8a68ged88m/position -decimals = 0 - -[factory/inj1ludhv2cz6xs53sayfhf7ykypq99akrxha3esw6/position] -peggy_denom = factory/inj1ludhv2cz6xs53sayfhf7ykypq99akrxha3esw6/position -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1703682000InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1703682000InjUsdt1d85P -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705510171InjUsdt1d105C] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705510171InjUsdt1d105C -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705555894InjUsdt1d105C] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705555894InjUsdt1d105C -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705569976InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705569976InjUsdt1d85P -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705588200000000001InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705588200000000001InjUsdt1d85P -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932000InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932000InjUsdt1d85P -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932001InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932001InjUsdt1d85P -decimals = 0 - -[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932002InjUsdt1d85P] -peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932002InjUsdt1d85P -decimals = 0 - -[factory/inj1lvj3thsvqlkps32mkrwptc4qyryrdt99k64f4m/position] -peggy_denom = factory/inj1lvj3thsvqlkps32mkrwptc4qyryrdt99k64f4m/position -decimals = 0 - -[factory/inj1lw7w3yfp8mrp4klef0y3y7fenap46kkrytav8v/position] -peggy_denom = factory/inj1lw7w3yfp8mrp4klef0y3y7fenap46kkrytav8v/position -decimals = 0 - -[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding] -peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding -decimals = 0 - -[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding2] -peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding2 -decimals = 0 - -[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding3] -peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding3 -decimals = 0 - -[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding4] -peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding4 -decimals = 0 - -[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding5] -peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding5 -decimals = 0 - -[factory/inj1lwhr9t3aha4qc2p6rdvj6n5q9jwt4pf8czlhhn/ak] -peggy_denom = factory/inj1lwhr9t3aha4qc2p6rdvj6n5q9jwt4pf8czlhhn/ak -decimals = 6 - -[factory/inj1lxxt0kcw8fnc8y3svem9fpyhmelqccx5lk83fd/position] -peggy_denom = factory/inj1lxxt0kcw8fnc8y3svem9fpyhmelqccx5lk83fd/position -decimals = 0 - -[factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonify] -peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonify -decimals = 6 - -[factory/inj1lz2zgagnwgpzepxk6ny3amludjzajg98uhehwq/position] -peggy_denom = factory/inj1lz2zgagnwgpzepxk6ny3amludjzajg98uhehwq/position -decimals = 0 - -[factory/inj1m0a3h8dvz88xgf5v36tqm6kydeuu79te7sar05/upinj] -peggy_denom = factory/inj1m0a3h8dvz88xgf5v36tqm6kydeuu79te7sar05/upinj -decimals = 0 - -[factory/inj1m2ql579ycmrxcceg9ytmt97vr3zth05hq3uypy/btc] -peggy_denom = factory/inj1m2ql579ycmrxcceg9ytmt97vr3zth05hq3uypy/btc -decimals = 0 - -[factory/inj1m2v8rhhrma5207d5s6vmtxd9hajk559wdtc9lh/position] -peggy_denom = factory/inj1m2v8rhhrma5207d5s6vmtxd9hajk559wdtc9lh/position -decimals = 0 - -[factory/inj1m3c4lxq6gstpgd5f0ll7jln8fyweec5xxd7phy/TEST] -peggy_denom = factory/inj1m3c4lxq6gstpgd5f0ll7jln8fyweec5xxd7phy/TEST -decimals = 9 - -[factory/inj1m65rqkqvzmzeplzy3wl2mfrurku9hyxrpla2eq/position] -peggy_denom = factory/inj1m65rqkqvzmzeplzy3wl2mfrurku9hyxrpla2eq/position -decimals = 0 - -[factory/inj1m8hxczuf4gq8z5nvjw4nmcmnyfa5ch8kgkjuqp/position] -peggy_denom = factory/inj1m8hxczuf4gq8z5nvjw4nmcmnyfa5ch8kgkjuqp/position -decimals = 0 - -[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC] -peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC -decimals = 6 - -[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/nlc] -peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/nlc -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-007] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-007 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-2] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-2 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-3] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-3 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-4] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-4 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-007] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-007 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token10] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token10 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token2] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token2 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token3] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token3 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token4] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token4 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token5] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token5 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token6] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token6 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token7] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token7 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token8] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token8 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token9] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token9 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-5] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-5 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-6] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-6 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-7] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-7 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-8] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-8 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token10] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token10 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token2] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token2 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token3] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token3 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token4] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token4 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token5] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token5 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token6] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token6 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token7] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token7 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token8] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token8 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token9] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token9 -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis-4] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis-4 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xbanana] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xbanana -decimals = 18 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-5] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-5 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-6] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-6 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-7] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-7 -decimals = 6 - -[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-8] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-8 -decimals = 6 - -[factory/inj1mea0kyuezl2ky54qtagsv7xlp0dxgqfs0cum8z/position] -peggy_denom = factory/inj1mea0kyuezl2ky54qtagsv7xlp0dxgqfs0cum8z/position -decimals = 0 - -[factory/inj1mecfy6gg944yt5mkwp34petqdd9dd37yu5yd5t/position] -peggy_denom = factory/inj1mecfy6gg944yt5mkwp34petqdd9dd37yu5yd5t/position -decimals = 0 - -[factory/inj1mf3x77h5ynafa57ga92rkp3hhwru5l63awf59v/tix] -peggy_denom = factory/inj1mf3x77h5ynafa57ga92rkp3hhwru5l63awf59v/tix -decimals = 6 - -[factory/inj1mfthw7jt2hzqq24exq66sregqwp8varmsdtyae/position] -peggy_denom = factory/inj1mfthw7jt2hzqq24exq66sregqwp8varmsdtyae/position -decimals = 0 - -[factory/inj1mg7www3nqcyaxaa82hf8vfx2jx39hj5qfkw3h3/position] -peggy_denom = factory/inj1mg7www3nqcyaxaa82hf8vfx2jx39hj5qfkw3h3/position -decimals = 0 - -[factory/inj1mhvjhmxs5fwnp3ladqehrsa8k8dhjfnaup9uhf/position] -peggy_denom = factory/inj1mhvjhmxs5fwnp3ladqehrsa8k8dhjfnaup9uhf/position -decimals = 0 - -[factory/inj1mlcqn2e3v6w0tum7ef5lkhqjjtnv5rzrzrh7rj/position] -peggy_denom = factory/inj1mlcqn2e3v6w0tum7ef5lkhqjjtnv5rzrzrh7rj/position -decimals = 0 - -[factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/boobs] -peggy_denom = factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/boobs -decimals = 0 - -[factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN] -peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN -decimals = 6 - -[factory/inj1mq9zzzhdaza60pytwxkzd05grq963cgkkvpuez/position] -peggy_denom = factory/inj1mq9zzzhdaza60pytwxkzd05grq963cgkkvpuez/position -decimals = 0 - -[factory/inj1mt4qz5ytxeja23fn5ugpgqafut6lycj2jw58j2/injx] -peggy_denom = factory/inj1mt4qz5ytxeja23fn5ugpgqafut6lycj2jw58j2/injx -decimals = 18 - -[factory/inj1mu99lzv5z9cfm03xg3fryacxkgcsq6vh3x7ar7/position] -peggy_denom = factory/inj1mu99lzv5z9cfm03xg3fryacxkgcsq6vh3x7ar7/position -decimals = 0 - -[factory/inj1mwvx58l903kjlnjd0lmm3da7yw5tyl3jy85rfu/bINJ] -peggy_denom = factory/inj1mwvx58l903kjlnjd0lmm3da7yw5tyl3jy85rfu/bINJ -decimals = 0 - -[factory/inj1mwwj8qh2u4epa6v9t0fz5cwtt7a2vcnhwtarvu/123] -peggy_denom = factory/inj1mwwj8qh2u4epa6v9t0fz5cwtt7a2vcnhwtarvu/123 -decimals = 0 - -[factory/inj1mxe7fkhprdmyv5tjlhwwcceyq5hcaqky82u0q9/position] -peggy_denom = factory/inj1mxe7fkhprdmyv5tjlhwwcceyq5hcaqky82u0q9/position -decimals = 0 - -[factory/inj1myspe4s4x800spny2c8v3z7ft5uvw5r0dxpjul/position] -peggy_denom = factory/inj1myspe4s4x800spny2c8v3z7ft5uvw5r0dxpjul/position -decimals = 0 - -[factory/inj1mznfy9hfq2ltcqfdaht4hk2dj7mvrfkucq6w8v/test] -peggy_denom = factory/inj1mznfy9hfq2ltcqfdaht4hk2dj7mvrfkucq6w8v/test -decimals = 6 - -[factory/inj1n0zpsl7shvw2ccyex45qs769rkmksuy90fpwpu/position] -peggy_denom = factory/inj1n0zpsl7shvw2ccyex45qs769rkmksuy90fpwpu/position -decimals = 0 - -[factory/inj1n4jprtth7dyd4y99g08pehyue7yy0nkhs8lugm/position] -peggy_denom = factory/inj1n4jprtth7dyd4y99g08pehyue7yy0nkhs8lugm/position -decimals = 0 - -[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/KEKW] -peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/KEKW -decimals = 0 - -[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/ak] -peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/ak -decimals = 0 - -[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/xxxaaxxx] -peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/xxxaaxxx -decimals = 6 - -[factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/ak] -peggy_denom = factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/ak -decimals = 0 - -[factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/btc] -peggy_denom = factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/btc -decimals = 6 - -[factory/inj1n75yp8epalhnzgwdp4esaakte8ymhjyqlqmujt/1683106055InjUsdt7d120C] -peggy_denom = factory/inj1n75yp8epalhnzgwdp4esaakte8ymhjyqlqmujt/1683106055InjUsdt7d120C -decimals = 0 - -[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA] -peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA -decimals = 0 - -[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRA] -peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRA -decimals = 0 - -[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRAA] -peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRAA -decimals = 0 - -[factory/inj1n9753c33nxml0er69zmvz4cc8s4xzx7jt4v2ga/position] -peggy_denom = factory/inj1n9753c33nxml0er69zmvz4cc8s4xzx7jt4v2ga/position -decimals = 0 - -[factory/inj1nahz98w2aqu9wlra68umlk7qmqmyqe0s00e7p7/position] -peggy_denom = factory/inj1nahz98w2aqu9wlra68umlk7qmqmyqe0s00e7p7/position -decimals = 0 - -[factory/inj1naplth79ncag2f5ts9q0rwprt6mqh7us0htlqp/BTYC] -peggy_denom = factory/inj1naplth79ncag2f5ts9q0rwprt6mqh7us0htlqp/BTYC -decimals = 9 - -[factory/inj1naq6rga6q9d94ale8elwt3kt55d5fxafe6trk5/position] -peggy_denom = factory/inj1naq6rga6q9d94ale8elwt3kt55d5fxafe6trk5/position -decimals = 0 - -[factory/inj1nd89fx0tn7twr6l5zfzdjex2ufgldxj7u3srd8/position] -peggy_denom = factory/inj1nd89fx0tn7twr6l5zfzdjex2ufgldxj7u3srd8/position -decimals = 0 - -[factory/inj1ndxqvkk6xv224z8uegusqr2jupa70ffg06n24r/position] -peggy_denom = factory/inj1ndxqvkk6xv224z8uegusqr2jupa70ffg06n24r/position -decimals = 0 - -[factory/inj1nevh00xgty6275ljqz6rlh66wmwhnqus9702td/BTC] -peggy_denom = factory/inj1nevh00xgty6275ljqz6rlh66wmwhnqus9702td/BTC -decimals = 9 - -[factory/inj1nfhnq3awj43m7fr76a39x2mrc96l95wm39hfcm/position] -peggy_denom = factory/inj1nfhnq3awj43m7fr76a39x2mrc96l95wm39hfcm/position -decimals = 0 - -[factory/inj1nfxhcjda4mn929gwtnk40mj9lce5m9rsun73qk/position] -peggy_denom = factory/inj1nfxhcjda4mn929gwtnk40mj9lce5m9rsun73qk/position -decimals = 0 - -[factory/inj1ng33rlfhcqrte7q70yvugkmsmhzslu247yxjlv/position] -peggy_denom = factory/inj1ng33rlfhcqrte7q70yvugkmsmhzslu247yxjlv/position -decimals = 0 - -[factory/inj1ng7cp4u2e3dsvd58uraw6vkz8qkxrw8trd9qd3/position] -peggy_denom = factory/inj1ng7cp4u2e3dsvd58uraw6vkz8qkxrw8trd9qd3/position -decimals = 0 - -[factory/inj1nm95w69a42qgnkw0hf8krvdt4eucqnyp0rwfwc/position] -peggy_denom = factory/inj1nm95w69a42qgnkw0hf8krvdt4eucqnyp0rwfwc/position -decimals = 0 - -[factory/inj1nmk2djc8hlv5eyxaqlys9w0klgh042r7g5n0nq/position] -peggy_denom = factory/inj1nmk2djc8hlv5eyxaqlys9w0klgh042r7g5n0nq/position -decimals = 0 - -[factory/inj1nnpa506h2ev0tn4csd5mk957hvggjfj5crt20c/position] -peggy_denom = factory/inj1nnpa506h2ev0tn4csd5mk957hvggjfj5crt20c/position -decimals = 0 - -[factory/inj1npas8uzgdhqul5wddw7fg2ym6yz6h9desduxlg/position] -peggy_denom = factory/inj1npas8uzgdhqul5wddw7fg2ym6yz6h9desduxlg/position -decimals = 0 - -[factory/inj1npmexmukus8uznafm4cnf7kp4lm7jzskfxc9px/position] -peggy_denom = factory/inj1npmexmukus8uznafm4cnf7kp4lm7jzskfxc9px/position -decimals = 0 - -[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZ] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZ -decimals = 6 - -[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnz] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnz -decimals = 0 - -[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzzz] -peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzzz -decimals = 0 - -[factory/inj1nprnh57tgavs4dgdvqetkfn0xmjn99dvgnmwlq/ak] -peggy_denom = factory/inj1nprnh57tgavs4dgdvqetkfn0xmjn99dvgnmwlq/ak -decimals = 0 - -[factory/inj1npsfelk7ul73wp77q3gqvxm94eyfzy3320t0j0/injshit] -peggy_denom = factory/inj1npsfelk7ul73wp77q3gqvxm94eyfzy3320t0j0/injshit -decimals = 0 - -[factory/inj1nqhkjfzm0mgv278d2ahxhy9wy4xy5fagnz7khp/BTC] -peggy_denom = factory/inj1nqhkjfzm0mgv278d2ahxhy9wy4xy5fagnz7khp/BTC -decimals = 9 - -[factory/inj1nqnmkah2rcyesy7l0kafhppwqmjh4egmeamx2k/position] -peggy_denom = factory/inj1nqnmkah2rcyesy7l0kafhppwqmjh4egmeamx2k/position -decimals = 0 - -[factory/inj1nr2gsxj4mfzd6qlwsay3y6kf5kfdh5h5x5xn7p/position] -peggy_denom = factory/inj1nr2gsxj4mfzd6qlwsay3y6kf5kfdh5h5x5xn7p/position -decimals = 0 - -[factory/inj1nscw9jx4pzg3sa7ynmrn0xf7vf3zpqt3usd7n6/position] -peggy_denom = factory/inj1nscw9jx4pzg3sa7ynmrn0xf7vf3zpqt3usd7n6/position -decimals = 0 - -[factory/inj1nshc8fmkku4q8f47z7fagdh0fxyexva9vnc5yn/position] -peggy_denom = factory/inj1nshc8fmkku4q8f47z7fagdh0fxyexva9vnc5yn/position -decimals = 0 - -[factory/inj1nwk46lyvhmdj5hr8ynwdvz0jaa4men9ce2gt58/TEST] -peggy_denom = factory/inj1nwk46lyvhmdj5hr8ynwdvz0jaa4men9ce2gt58/TEST -decimals = 6 - -[factory/inj1nwqrpzzxd2w266u28vhq5cmhf9y6u6zvlg4e6c/position] -peggy_denom = factory/inj1nwqrpzzxd2w266u28vhq5cmhf9y6u6zvlg4e6c/position -decimals = 0 - -[factory/inj1nydlk930aypjgh8k6rsrdj5lulzvf295r4sxpu/nUSD] -peggy_denom = factory/inj1nydlk930aypjgh8k6rsrdj5lulzvf295r4sxpu/nUSD -decimals = 0 - -[factory/inj1nzvf3w7h345qzz3scf7et5ad8r0a4gn4u0jtf4/position] -peggy_denom = factory/inj1nzvf3w7h345qzz3scf7et5ad8r0a4gn4u0jtf4/position -decimals = 0 - -[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/CRE] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/CRE -decimals = 6 - -[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST -decimals = 6 - -[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST4] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST4 -decimals = 6 - -[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST5] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST5 -decimals = 6 - -[factory/inj1p3j46g9p9ha2h5696kcq4z9l6e04ywnrskmyqa/position] -peggy_denom = factory/inj1p3j46g9p9ha2h5696kcq4z9l6e04ywnrskmyqa/position -decimals = 0 - -[factory/inj1p52h0yc5c9qz8hrdklc9pqwutfh9hr9dh4th5a/position] -peggy_denom = factory/inj1p52h0yc5c9qz8hrdklc9pqwutfh9hr9dh4th5a/position -decimals = 0 - -[factory/inj1p5d0k52d5p4tk9dlz67fn9329n820g55p0w7a4/test] -peggy_denom = factory/inj1p5d0k52d5p4tk9dlz67fn9329n820g55p0w7a4/test -decimals = 0 - -[factory/inj1p5w72hfax0ums3rnagtl6zr0e33pnyv20qut8a/position] -peggy_denom = factory/inj1p5w72hfax0ums3rnagtl6zr0e33pnyv20qut8a/position -decimals = 0 - -[factory/inj1p6g5aa4h0r7pae69y5rzs9ce60fn7ddsf4fynl/position] -peggy_denom = factory/inj1p6g5aa4h0r7pae69y5rzs9ce60fn7ddsf4fynl/position -decimals = 0 - -[factory/inj1p6qq59lapujkvyyfem4qe4xwkfqncxpwkr65yv/position] -peggy_denom = factory/inj1p6qq59lapujkvyyfem4qe4xwkfqncxpwkr65yv/position -decimals = 0 - -[factory/inj1pdckalz3dknkr7vqrrd40tg56gapya99u8t90t/position] -peggy_denom = factory/inj1pdckalz3dknkr7vqrrd40tg56gapya99u8t90t/position -decimals = 0 - -[factory/inj1pdutmxa3f7q4mtu42ynndx0p9lxfxvdf60swc9/position] -peggy_denom = factory/inj1pdutmxa3f7q4mtu42ynndx0p9lxfxvdf60swc9/position -decimals = 0 - -[factory/inj1pe4uuptfqzydz89eh27an4hrnd8eslwc2c6efe/position] -peggy_denom = factory/inj1pe4uuptfqzydz89eh27an4hrnd8eslwc2c6efe/position -decimals = 0 - -[factory/inj1ped5vf305cwv50z9y296jh8klglxt7ayj7p6dk/position] -peggy_denom = factory/inj1ped5vf305cwv50z9y296jh8klglxt7ayj7p6dk/position -decimals = 0 - -[factory/inj1pexvmkvp84hmh8zl0qzmhy2thh2zvr6m6z5ekw/BTC] -peggy_denom = factory/inj1pexvmkvp84hmh8zl0qzmhy2thh2zvr6m6z5ekw/BTC -decimals = 9 - -[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/inj-test] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/inj-test -decimals = 6 - -[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/utest] -peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/utest -decimals = 0 - -[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test1] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test1 -decimals = 6 - -[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2 -decimals = 6 - -[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2323432] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2323432 -decimals = 0 - -[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test3] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test3 -decimals = 6 - -[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/test1] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/test1 -decimals = 0 - -[factory/inj1pk9rw4sz4sgmceu3pxjtd7dwvylgxmceff63qn/position] -peggy_denom = factory/inj1pk9rw4sz4sgmceu3pxjtd7dwvylgxmceff63qn/position -decimals = 0 - -[factory/inj1pku63t54ms3dl8agka5q60qlqgtztcghm3rjkm/hoa2] -peggy_denom = factory/inj1pku63t54ms3dl8agka5q60qlqgtztcghm3rjkm/hoa2 -decimals = 9 - -[factory/inj1pl4tr94sghdmel5wqq2c82rm6dv2dnrg9vahsp/duynt-1] -peggy_denom = factory/inj1pl4tr94sghdmel5wqq2c82rm6dv2dnrg9vahsp/duynt-1 -decimals = 9 - -[factory/inj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl/lp] -peggy_denom = factory/inj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl/lp -decimals = 0 - -[factory/inj1pmr64rmtj9tlnz3ueeagcm9ja4ej3emkpdkr6x/position] -peggy_denom = factory/inj1pmr64rmtj9tlnz3ueeagcm9ja4ej3emkpdkr6x/position -decimals = 0 - -[factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/pussy] -peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/pussy -decimals = 0 - -[factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/testtoken] -peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/testtoken -decimals = 0 - -[factory/inj1pnmmnc975hlv8svm38swcvhdxrv4scych0js4m/nept] -peggy_denom = factory/inj1pnmmnc975hlv8svm38swcvhdxrv4scych0js4m/nept -decimals = 6 - -[factory/inj1pnqp8rzsdd3vjhgqp2jwmt93u4g9p607chv3m4/SHARE] -peggy_denom = factory/inj1pnqp8rzsdd3vjhgqp2jwmt93u4g9p607chv3m4/SHARE -decimals = 0 - -[factory/inj1ppqx8xqhc7kexgwkpkll57lns49qxr96rhupps/kUSD] -peggy_denom = factory/inj1ppqx8xqhc7kexgwkpkll57lns49qxr96rhupps/kUSD -decimals = 0 - -[factory/inj1pqclmwep3m2x0e4asajm0t57cs9xwqnl4u7u7g/SS2] -peggy_denom = factory/inj1pqclmwep3m2x0e4asajm0t57cs9xwqnl4u7u7g/SS2 -decimals = 9 - -[factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS-1] -peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS-1 -decimals = 0 - -[factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS1] -peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS1 -decimals = 0 - -[factory/inj1psjmkh8edtywpelhgh6knwy6fsqdrm9fet4ht7/position] -peggy_denom = factory/inj1psjmkh8edtywpelhgh6knwy6fsqdrm9fet4ht7/position -decimals = 0 - -[factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDLTest] -peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDLTest -decimals = 6 - -[factory/inj1puwsgl5qfv5z8z6ljfztcfc82euz063j655xlg/position] -peggy_denom = factory/inj1puwsgl5qfv5z8z6ljfztcfc82euz063j655xlg/position -decimals = 0 - -[factory/inj1pv08lylmeyumalmy6kejgrk8uu49w8t8lckwu6/duynt-1] -peggy_denom = factory/inj1pv08lylmeyumalmy6kejgrk8uu49w8t8lckwu6/duynt-1 -decimals = 0 - -[factory/inj1pvs8adl72tdcwn5rty4pfmqpjfkxs6atkvzfy4/position] -peggy_denom = factory/inj1pvs8adl72tdcwn5rty4pfmqpjfkxs6atkvzfy4/position -decimals = 0 - -[factory/inj1pwjch4d8snnt3xkakdhn5xuzpp6n2v5ye8wnth/utest] -peggy_denom = factory/inj1pwjch4d8snnt3xkakdhn5xuzpp6n2v5ye8wnth/utest -decimals = 0 - -[factory/inj1pwztvdkju9lcmw68t04n7vt7832s3w9clv59ws/lp] -peggy_denom = factory/inj1pwztvdkju9lcmw68t04n7vt7832s3w9clv59ws/lp -decimals = 0 - -[factory/inj1pxnj6sh6njq66d2rffnth032ct07qatmr6fer3/position] -peggy_denom = factory/inj1pxnj6sh6njq66d2rffnth032ct07qatmr6fer3/position -decimals = 0 - -[factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/ak] -peggy_denom = factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/ak -decimals = 6 - -[factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TEST] -peggy_denom = factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TEST -decimals = 6 - -[factory/inj1q3c3sar5uq02xus9j6a7vxrpdqwya4xfkdj0wv/position] -peggy_denom = factory/inj1q3c3sar5uq02xus9j6a7vxrpdqwya4xfkdj0wv/position -decimals = 0 - -[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK] -peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK -decimals = 0 - -[factory/inj1q68d59g49swmem50c9p4dzywc9claeymts3sns/auction.0] -peggy_denom = factory/inj1q68d59g49swmem50c9p4dzywc9claeymts3sns/auction.0 -decimals = 0 - -[factory/inj1q93mmsamngewa35nhfmutrqpnv6ta9v9hqp8l2/BTC] -peggy_denom = factory/inj1q93mmsamngewa35nhfmutrqpnv6ta9v9hqp8l2/BTC -decimals = 9 - -[factory/inj1qau4ax7mlyxam8f4xrz02tqydus4h8n5pt0zue/position] -peggy_denom = factory/inj1qau4ax7mlyxam8f4xrz02tqydus4h8n5pt0zue/position -decimals = 0 - -[factory/inj1qc5kqy83ksr0xtd08vjv9eyv3d72kcc93e740s/position] -peggy_denom = factory/inj1qc5kqy83ksr0xtd08vjv9eyv3d72kcc93e740s/position -decimals = 0 - -[factory/inj1qemlmtltmk7rhzk0wzwrhnp0ystlvx3mx046xs/position] -peggy_denom = factory/inj1qemlmtltmk7rhzk0wzwrhnp0ystlvx3mx046xs/position -decimals = 0 - -[factory/inj1qgs3yrd6h4dq4funlk5a5u4xxp7njt05uegkqx/test] -peggy_denom = factory/inj1qgs3yrd6h4dq4funlk5a5u4xxp7njt05uegkqx/test -decimals = 9 - -[factory/inj1qh6h56lfum2fxpvweukyx83m8q96s7lj03hxtg/position] -peggy_denom = factory/inj1qh6h56lfum2fxpvweukyx83m8q96s7lj03hxtg/position -decimals = 0 - -[factory/inj1qhw695hnxrg8nk8krat53jva7jctlxp576pq4x/position] -peggy_denom = factory/inj1qhw695hnxrg8nk8krat53jva7jctlxp576pq4x/position -decimals = 0 - -[factory/inj1qhx3w0663ta9tmu330vljhfs6r2qcfnklyqfe0/position] -peggy_denom = factory/inj1qhx3w0663ta9tmu330vljhfs6r2qcfnklyqfe0/position -decimals = 0 - -[factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/Lenz] -peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/Lenz -decimals = 6 - -[factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTestingTestnetFinal] -peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTestingTestnetFinal -decimals = 6 - -[factory/inj1qn2t30yflmrkmtxyc348jhmvnypsd2xk4lk74s/position] -peggy_denom = factory/inj1qn2t30yflmrkmtxyc348jhmvnypsd2xk4lk74s/position -decimals = 0 - -[factory/inj1qnymwcy78ty0ldvfcxk6ksfct9ndgpj0p06zak/position] -peggy_denom = factory/inj1qnymwcy78ty0ldvfcxk6ksfct9ndgpj0p06zak/position -decimals = 0 - -[factory/inj1qplngxl3zt3j6n0r3ryx6d8k58wu38t8amfpv3/position] -peggy_denom = factory/inj1qplngxl3zt3j6n0r3ryx6d8k58wu38t8amfpv3/position -decimals = 0 - -[factory/inj1qpr7c23qy3usjy3hem2wr2e9vuz39sau9032lr/position] -peggy_denom = factory/inj1qpr7c23qy3usjy3hem2wr2e9vuz39sau9032lr/position -decimals = 0 - -[factory/inj1quptgzfh2z6258sh3yckklyg7gys569rmp5s3e/kUSD] -peggy_denom = factory/inj1quptgzfh2z6258sh3yckklyg7gys569rmp5s3e/kUSD -decimals = 6 - -[factory/inj1qusz42g00le4gvqu6cej3qsf4n383dr4f2c4gj/position] -peggy_denom = factory/inj1qusz42g00le4gvqu6cej3qsf4n383dr4f2c4gj/position -decimals = 0 - -[factory/inj1qvacvmwepwqqh4asfemypqfng3zew8jjeqm7ay/HS2] -peggy_denom = factory/inj1qvacvmwepwqqh4asfemypqfng3zew8jjeqm7ay/HS2 -decimals = 9 - -[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/AA] -peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/AA -decimals = 0 - -[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/ape] -peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/ape -decimals = 6 - -[factory/inj1qxwtvk3ctdrctnmyen9v2wvcr026rpauc0q25g/position] -peggy_denom = factory/inj1qxwtvk3ctdrctnmyen9v2wvcr026rpauc0q25g/position -decimals = 0 - -[factory/inj1qy5wmnjahh8aek5cjmgkupcu9dxkksfelkllae/position] -peggy_denom = factory/inj1qy5wmnjahh8aek5cjmgkupcu9dxkksfelkllae/position -decimals = 0 - -[factory/inj1qyz0463rsew039f2lny2vzx0c0mhc6ru6jfarz/position] -peggy_denom = factory/inj1qyz0463rsew039f2lny2vzx0c0mhc6ru6jfarz/position -decimals = 0 - -[factory/inj1r2964d6pf76jpylnyc447jv67ddc4dflqrqk4m/position] -peggy_denom = factory/inj1r2964d6pf76jpylnyc447jv67ddc4dflqrqk4m/position -decimals = 0 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Life-Token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Life-Token -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Lifeless-Token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Lifeless-Token -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquifier] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquifier -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquify] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquify -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Savior-Token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Savior-Token -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Tested-Token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Tested-Token -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lifedd] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lifedd -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lord-stone-token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lord-stone-token -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/saramon] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/saramon -decimals = 6 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token -decimals = 0 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token2] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token2 -decimals = 0 - -[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-tokens] -peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-tokens -decimals = 0 - -[factory/inj1r3qaemv4lnht42z8mynzfcfjrlyhlupx76le90/position] -peggy_denom = factory/inj1r3qaemv4lnht42z8mynzfcfjrlyhlupx76le90/position -decimals = 0 - -[factory/inj1r3u5yl5u5twct896xm2nhk8e8f2d3vvz28uuen/position] -peggy_denom = factory/inj1r3u5yl5u5twct896xm2nhk8e8f2d3vvz28uuen/position -decimals = 0 - -[factory/inj1r4fje8a30glg7fmr3uqnk4fl0sm67s6dpvgrg3/testToken] -peggy_denom = factory/inj1r4fje8a30glg7fmr3uqnk4fl0sm67s6dpvgrg3/testToken -decimals = 6 - -[factory/inj1r6mje70a37k8c5ata5g42pp87ncdxfv23vzzu7/position] -peggy_denom = factory/inj1r6mje70a37k8c5ata5g42pp87ncdxfv23vzzu7/position -decimals = 0 - -[factory/inj1r6tj96lrtn6jtyjq8xa39ny2j2spqajm43awu4/position] -peggy_denom = factory/inj1r6tj96lrtn6jtyjq8xa39ny2j2spqajm43awu4/position -decimals = 0 - -[factory/inj1r8dwjecdv7z9dk6kl4mgqtvt2e3g002z8ptvvm/position] -peggy_denom = factory/inj1r8dwjecdv7z9dk6kl4mgqtvt2e3g002z8ptvvm/position -decimals = 0 - -[factory/inj1r9qmt3gh265wgfrenr8n4myag39ln3mpczw6uw/BTC] -peggy_denom = factory/inj1r9qmt3gh265wgfrenr8n4myag39ln3mpczw6uw/BTC -decimals = 9 - -[factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1477ukmxx47mgsfe09qwd6gyp98ftecjytrqdrc] -peggy_denom = factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1477ukmxx47mgsfe09qwd6gyp98ftecjytrqdrc -decimals = 0 - -[factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1u67283zzclfr4pvxc9svwn7jurxm4aku46tjtt] -peggy_denom = factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1u67283zzclfr4pvxc9svwn7jurxm4aku46tjtt -decimals = 0 - -[factory/inj1rc38yz7hvvdygad44lfz0xe8ymf0mt539p6u8l/position] -peggy_denom = factory/inj1rc38yz7hvvdygad44lfz0xe8ymf0mt539p6u8l/position -decimals = 0 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/LIOR] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/LIOR -decimals = 6 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/ak] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/ak -decimals = 6 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/factory/bior] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/factory/bior -decimals = 0 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/libor] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/libor -decimals = 0 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/lior] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/lior -decimals = 6 - -[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nain] -peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nain -decimals = 0 - -[factory/inj1rl8xukts6h729y2l3s29k5v95fur7nj6d5kerm/DREAM] -peggy_denom = factory/inj1rl8xukts6h729y2l3s29k5v95fur7nj6d5kerm/DREAM -decimals = 6 - -[factory/inj1rlg44s9tmzsecj7fnxzd5p7tzptrfwqt8cgewf/shuriken] -peggy_denom = factory/inj1rlg44s9tmzsecj7fnxzd5p7tzptrfwqt8cgewf/shuriken -decimals = 0 - -[factory/inj1rmfvy5j4fhqlfzlutz26hynhhpt7xyf8r3vsxu/position] -peggy_denom = factory/inj1rmfvy5j4fhqlfzlutz26hynhhpt7xyf8r3vsxu/position -decimals = 0 - -[factory/inj1rn4cagrvcgl49d7n60vnxpftnaqw7xtuxerh23/position] -peggy_denom = factory/inj1rn4cagrvcgl49d7n60vnxpftnaqw7xtuxerh23/position -decimals = 0 - -[factory/inj1rpl2j4dk6ewjgvddade2s9rryr4t293dhzrh5m/test] -peggy_denom = factory/inj1rpl2j4dk6ewjgvddade2s9rryr4t293dhzrh5m/test -decimals = 0 - -[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/TTKC] -peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/TTKC -decimals = 6 - -[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ak] -peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ak -decimals = 6 - -[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/bINJ] -peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/bINJ -decimals = 6 - -[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ninja] -peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ninja -decimals = 6 - -[factory/inj1rqj66y7r9j8g3nu7t5fgn53eqe9ukl69jv8uuv/HS3] -peggy_denom = factory/inj1rqj66y7r9j8g3nu7t5fgn53eqe9ukl69jv8uuv/HS3 -decimals = 9 - -[factory/inj1rqn67w2cm3uxxvnjxvsm9889zyrtxxpjl56g7p/nUSD] -peggy_denom = factory/inj1rqn67w2cm3uxxvnjxvsm9889zyrtxxpjl56g7p/nUSD -decimals = 18 - -[factory/inj1rr08xq9plxjyyj5thykpct95uv3sjz75270f0r/test] -peggy_denom = factory/inj1rr08xq9plxjyyj5thykpct95uv3sjz75270f0r/test -decimals = 0 - -[factory/inj1rr23r9ysrtg0jat8ljm5lfc9g0nz8y0ts27fhg/position] -peggy_denom = factory/inj1rr23r9ysrtg0jat8ljm5lfc9g0nz8y0ts27fhg/position -decimals = 0 - -[factory/inj1rrw6l34tzj8nwxrg2u6ra78jlcykrz763ltp9d/position] -peggy_denom = factory/inj1rrw6l34tzj8nwxrg2u6ra78jlcykrz763ltp9d/position -decimals = 0 - -[factory/inj1rsvh5w3pzs9ta8v484agjzyfsq4c42nlaetmnv/position] -peggy_denom = factory/inj1rsvh5w3pzs9ta8v484agjzyfsq4c42nlaetmnv/position -decimals = 0 - -[factory/inj1ruljx4vla6qq08ejml5syehqf40xh3q7365dee/position] -peggy_denom = factory/inj1ruljx4vla6qq08ejml5syehqf40xh3q7365dee/position -decimals = 0 - -[factory/inj1rw057xldmte58t9jqljn3gyzck07lyy7stmqnu/position] -peggy_denom = factory/inj1rw057xldmte58t9jqljn3gyzck07lyy7stmqnu/position -decimals = 0 - -[factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/test] -peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/test -decimals = 0 - -[factory/inj1rw702wrwl33enyccs2h84cwwpahhmwmwa5em7x/test] -peggy_denom = factory/inj1rw702wrwl33enyccs2h84cwwpahhmwmwa5em7x/test -decimals = 0 - -[factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/INJDOGE] -peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/INJDOGE -decimals = 0 - -[factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ak] -peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ak -decimals = 0 - -[factory/inj1s0sl8egfgc29scvlj2x3v5cj73xhkm90237u97/position] -peggy_denom = factory/inj1s0sl8egfgc29scvlj2x3v5cj73xhkm90237u97/position -decimals = 0 - -[factory/inj1s4s8tmcfc43y0mfxm8cwhf3wehsxw6za8k3x4c/position] -peggy_denom = factory/inj1s4s8tmcfc43y0mfxm8cwhf3wehsxw6za8k3x4c/position -decimals = 0 - -[factory/inj1s5ravma5zhdsfx8ppzys9nv4grnpk6lr83hqau/HAI] -peggy_denom = factory/inj1s5ravma5zhdsfx8ppzys9nv4grnpk6lr83hqau/HAI -decimals = 0 - -[factory/inj1s68jy58pdf4l6kjfj3748x8yazh9chmdvs8wj0/test] -peggy_denom = factory/inj1s68jy58pdf4l6kjfj3748x8yazh9chmdvs8wj0/test -decimals = 0 - -[factory/inj1s6yq89jvdq3ps4h8wx8jk60c2r0jwczes4sgl6/position] -peggy_denom = factory/inj1s6yq89jvdq3ps4h8wx8jk60c2r0jwczes4sgl6/position -decimals = 0 - -[factory/inj1s8cp9up483f30cxpd7saxp935evy70fd4jddzg/iUSD] -peggy_denom = factory/inj1s8cp9up483f30cxpd7saxp935evy70fd4jddzg/iUSD -decimals = 18 - -[factory/inj1s8knaspkz9s5cphxxx62j5saxr923mqy4vsycz/position] -peggy_denom = factory/inj1s8knaspkz9s5cphxxx62j5saxr923mqy4vsycz/position -decimals = 0 - -[factory/inj1s92j8qw73qhhuhlecj3ekux8ck60wj93ry5haw/position] -peggy_denom = factory/inj1s92j8qw73qhhuhlecj3ekux8ck60wj93ry5haw/position -decimals = 0 - -[factory/inj1s99jggs9nu3tkqcltfhs4j6rtg4ltgzdvgxaf3/Test] -peggy_denom = factory/inj1s99jggs9nu3tkqcltfhs4j6rtg4ltgzdvgxaf3/Test -decimals = 9 - -[factory/inj1s9dzsqrrq09z46ye7ffa9fldg3dt0e2cvx6yla/auction.0] -peggy_denom = factory/inj1s9dzsqrrq09z46ye7ffa9fldg3dt0e2cvx6yla/auction.0 -decimals = 0 - -[factory/inj1sa2wmd8zhf893ex6da8jgnp06pcj2tv59mq457/position] -peggy_denom = factory/inj1sa2wmd8zhf893ex6da8jgnp06pcj2tv59mq457/position -decimals = 0 - -[factory/inj1sa5g8q4egwzy09942675r0az9tftac9tnrz2kr/JCLUB] -peggy_denom = factory/inj1sa5g8q4egwzy09942675r0az9tftac9tnrz2kr/JCLUB -decimals = 6 - -[factory/inj1sclqgctp0hxenfgvh59y8reppg5gssjw8p078u/position] -peggy_denom = factory/inj1sclqgctp0hxenfgvh59y8reppg5gssjw8p078u/position -decimals = 0 - -[factory/inj1sdpk4n3zw4n70uxg83ep3sj5x2ynh608lqxcw0/ak] -peggy_denom = factory/inj1sdpk4n3zw4n70uxg83ep3sj5x2ynh608lqxcw0/ak -decimals = 6 - -[factory/inj1sf0dsdnsvtf06fdwsy800ysne2cemlkfwe3duq/position] -peggy_denom = factory/inj1sf0dsdnsvtf06fdwsy800ysne2cemlkfwe3duq/position -decimals = 0 - -[factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/ak] -peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/ak -decimals = 0 - -[factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/test123] -peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/test123 -decimals = 6 - -[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior] -peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior -decimals = 6 - -[factory/inj1sg9htcd8tqgxlnsl9qe2mm5y4l9zq0mq6qhph9/position] -peggy_denom = factory/inj1sg9htcd8tqgxlnsl9qe2mm5y4l9zq0mq6qhph9/position -decimals = 0 - -[factory/inj1sgh3equhfwqpscgcxksnz69r67qu4yfcvlreyj/position] -peggy_denom = factory/inj1sgh3equhfwqpscgcxksnz69r67qu4yfcvlreyj/position -decimals = 0 - -[factory/inj1sh5n5v86gmugkq8za8gh2flfsurymmha4fvw2x/at-token] -peggy_denom = factory/inj1sh5n5v86gmugkq8za8gh2flfsurymmha4fvw2x/at-token -decimals = 0 - -[factory/inj1sj9xzvxq2fmfwmaffueymlmrdmgcsfzexlnxzl/bINJ] -peggy_denom = factory/inj1sj9xzvxq2fmfwmaffueymlmrdmgcsfzexlnxzl/bINJ -decimals = 0 - -[factory/inj1sjgzywux3snnkz74r5sul04vk44zfrfdq6yx9g/iUSD] -peggy_denom = factory/inj1sjgzywux3snnkz74r5sul04vk44zfrfdq6yx9g/iUSD -decimals = 18 - -[factory/inj1skkzrk8x56lz2t0908tsgywyq9u63l7633z47d/position] -peggy_denom = factory/inj1skkzrk8x56lz2t0908tsgywyq9u63l7633z47d/position -decimals = 0 - -[factory/inj1skpv9emvexywcg42mne4lugd6xjwglzsqxu888/position] -peggy_denom = factory/inj1skpv9emvexywcg42mne4lugd6xjwglzsqxu888/position -decimals = 0 - -[factory/inj1sm0ccywqn6nmzjgrptlauzpzrjz42rt9uq2vlr/position] -peggy_denom = factory/inj1sm0ccywqn6nmzjgrptlauzpzrjz42rt9uq2vlr/position -decimals = 0 - -[factory/inj1sm8mpx3e4p2z4ryzhp6t2gdzwrzdwxnf447dnx/position] -peggy_denom = factory/inj1sm8mpx3e4p2z4ryzhp6t2gdzwrzdwxnf447dnx/position -decimals = 0 - -[factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/TEST] -peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/TEST -decimals = 6 - -[factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/CAT] -peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/CAT -decimals = 6 - -[factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vader] -peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vader -decimals = 0 - -[factory/inj1sr2xzh29g9uf5qdsd4ksdr62z2dfhu2nz4a9gp/auction.0] -peggy_denom = factory/inj1sr2xzh29g9uf5qdsd4ksdr62z2dfhu2nz4a9gp/auction.0 -decimals = 0 - -[factory/inj1sr4jakhjmur7hc3j9n3tv72uu9dwv9756sgpwq/position] -peggy_denom = factory/inj1sr4jakhjmur7hc3j9n3tv72uu9dwv9756sgpwq/position -decimals = 0 - -[factory/inj1ss277vzv95cllcl5q4wy4jrmpxk093xgltmphw/position] -peggy_denom = factory/inj1ss277vzv95cllcl5q4wy4jrmpxk093xgltmphw/position -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485AtomUsdt2d0.93P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485AtomUsdt2d0.93P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230AtomUsdt2d0.93P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230AtomUsdt2d0.93P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969190.664112751InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969190.664112751InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969205.325387195InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969205.325387195InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969261.401032761InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969261.401032761InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969341.520964599AtomUsdt2d0.93P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969341.520964599AtomUsdt2d0.93P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405AtomUsdt2d0.93P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405AtomUsdt2d0.93P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1708611446.026416584InjUsdt2d1.08C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1708611446.026416584InjUsdt2d1.08C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1709902288.058267150InjUsdt24d1.17C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1709902288.058267150InjUsdt24d1.17C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1711621611InjUsdt1d1.06C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1711621611InjUsdt1d1.06C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712154662InjUsdt1d1.06C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712154662InjUsdt1d1.06C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738450InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738450InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738484InjUsdt28d0.85P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738484InjUsdt28d0.85P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738818InjUsdt28d0.85P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738818InjUsdt28d0.85P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712739110InjUsdt28d0.86P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712739110InjUsdt28d0.86P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713965158InjUsdt28d0.86P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713965158InjUsdt28d0.86P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966058InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966058InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966386InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966386InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066545InjUsdt24d1.17C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066545InjUsdt24d1.17C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066761InjUsdt16d0.89P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066761InjUsdt16d0.89P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d1.1C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d1.1C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d1.1C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d1.1C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717647176InjUsdt2d1.1C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717647176InjUsdt2d1.1C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749427InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749427InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749631InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749631InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718699872InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718699872InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718764795InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718764795InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718766318InjUsdt24d1.19C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718766318InjUsdt24d1.19C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718779878InjUsdt26d1.19C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718779878InjUsdt26d1.19C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719297355InjUsdt26d1.19C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719297355InjUsdt26d1.19C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719306854InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719306854InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719393332InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719393332InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719918905InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719918905InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719921133InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719921133InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720000120InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720000120InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513336InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513336InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513965InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513965InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721199238InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721199238InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721736957InjUsdt26d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721736957InjUsdt26d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721737329InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721737329InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1722499668InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1722499668InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1722499668InjUsdt2d0.95P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1722499668InjUsdt2d0.95P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1723726250InjUsdt28d0.86P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1723726250InjUsdt28d0.86P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1723726250InjUsdt28d1.2C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1723726250InjUsdt28d1.2C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725277445InjUsdt26d18C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725277445InjUsdt26d18C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725277891InjUsdt28d0.86P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725277891InjUsdt28d0.86P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725283106InjUsdt26d18C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725283106InjUsdt26d18C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725289898InjUsdt26d18C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725289898InjUsdt26d18C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725290652InjUsdt26d15P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725290652InjUsdt26d15P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725292353InjUsdt26d15P] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725292353InjUsdt26d15P -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725292353InjUsdt26d18C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725292353InjUsdt26d18C -decimals = 0 - -[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725353054InjUsdt26d18C] -peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1725353054InjUsdt26d18C -decimals = 0 - -[factory/inj1ssgejyek2pzgsvy2u4y838qj3jnh7m4ujg8zsl/symbol2] -peggy_denom = factory/inj1ssgejyek2pzgsvy2u4y838qj3jnh7m4ujg8zsl/symbol2 -decimals = 0 - -[factory/inj1ssysf4uhqa4nndser07cvgfzlqtvsg3l0y8vvn/position] -peggy_denom = factory/inj1ssysf4uhqa4nndser07cvgfzlqtvsg3l0y8vvn/position -decimals = 0 - -[factory/inj1st6pj5nvz429dkmz3t0papc3273j5xnzjan8sm/position] -peggy_denom = factory/inj1st6pj5nvz429dkmz3t0papc3273j5xnzjan8sm/position -decimals = 0 - -[factory/inj1svtmsxdu47vc0kd0eppxnq9khky324wjfxa0yg/position] -peggy_denom = factory/inj1svtmsxdu47vc0kd0eppxnq9khky324wjfxa0yg/position -decimals = 0 - -[factory/inj1t3kcptjlvg8vjpedkr2y7pe0cwlkkjmtn8p5w7/position] -peggy_denom = factory/inj1t3kcptjlvg8vjpedkr2y7pe0cwlkkjmtn8p5w7/position -decimals = 0 - -[factory/inj1t3p0szvrgxax3zf7c02w673axrut9mu5vw342u/position] -peggy_denom = factory/inj1t3p0szvrgxax3zf7c02w673axrut9mu5vw342u/position -decimals = 0 - -[factory/inj1t6jgdm6ullrxazu2g6hl7493qcacefyver6ltq/position] -peggy_denom = factory/inj1t6jgdm6ullrxazu2g6hl7493qcacefyver6ltq/position -decimals = 0 - -[factory/inj1t6ur7kmu7vu2k6lja2ng9ayrqfdmsqzks7se0q/position] -peggy_denom = factory/inj1t6ur7kmu7vu2k6lja2ng9ayrqfdmsqzks7se0q/position -decimals = 0 - -[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1c0rh80uc9v4frwh00zvmkr2qx0599z78lm7jxj] -peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1c0rh80uc9v4frwh00zvmkr2qx0599z78lm7jxj -decimals = 0 - -[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1hl2qkjhs5t8xqa7yetjghr4x3yxnlja7wemzy8] -peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1hl2qkjhs5t8xqa7yetjghr4x3yxnlja7wemzy8 -decimals = 0 - -[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1nzpletdxtcznj0xlu75y0dtly8acvm253kaj07] -peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1nzpletdxtcznj0xlu75y0dtly8acvm253kaj07 -decimals = 0 - -[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1r6zj9v8c4hyj64uzdhe844ncwd0vspy0lhrke4] -peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1r6zj9v8c4hyj64uzdhe844ncwd0vspy0lhrke4 -decimals = 0 - -[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1yne8ww7fahfjvadqkasld3vkj597gsysk06dym] -peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1yne8ww7fahfjvadqkasld3vkj597gsysk06dym -decimals = 0 - -[factory/inj1t70s0zcf7twcm7qm0lv7f7u5j3yd7v4mttxnvn/position] -peggy_denom = factory/inj1t70s0zcf7twcm7qm0lv7f7u5j3yd7v4mttxnvn/position -decimals = 0 - -[factory/inj1t80nlw8w36am2575rfd5z2yn4m46v2gsch9aj5/position] -peggy_denom = factory/inj1t80nlw8w36am2575rfd5z2yn4m46v2gsch9aj5/position -decimals = 0 - -[factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST] -peggy_denom = factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST -decimals = 6 - -[factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST2] -peggy_denom = factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST2 -decimals = 6 - -[factory/inj1t9cx33dk3tywjct6f6lq8d3j5yg7cg5jtarmkz/position] -peggy_denom = factory/inj1t9cx33dk3tywjct6f6lq8d3j5yg7cg5jtarmkz/position -decimals = 0 - -[factory/inj1ta3276waes6jnnu3fk8gw4dt86ujtrptrl4902/HS1] -peggy_denom = factory/inj1ta3276waes6jnnu3fk8gw4dt86ujtrptrl4902/HS1 -decimals = 9 - -[factory/inj1ta3rgat7k3s9jehqfr3lv4dpwsytrqejdstv5m/position] -peggy_denom = factory/inj1ta3rgat7k3s9jehqfr3lv4dpwsytrqejdstv5m/position -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj12yhwzv3wvh0lgwft5n5x4q382d7q4fj2am62y6] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj12yhwzv3wvh0lgwft5n5x4q382d7q4fj2am62y6 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj13g2ry3dwj49jd3hdyq2xvyd4eghtkr5dnejhff] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj13g2ry3dwj49jd3hdyq2xvyd4eghtkr5dnejhff -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj14dz74tz06lxz2pl4e5vcv3v62lst8d43rp6hy4] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj14dz74tz06lxz2pl4e5vcv3v62lst8d43rp6hy4 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj176anlxqyz6289gf0dg0xvd3qja7ahs3cnsda63] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj176anlxqyz6289gf0dg0xvd3qja7ahs3cnsda63 -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj17kjkepym5j8xss5nmud6gq4c47xt0xf02wgsms] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj17kjkepym5j8xss5nmud6gq4c47xt0xf02wgsms -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1dycczj4m8gwdj4m2fv7xm396u8tq9lp9w363zj] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1dycczj4m8gwdj4m2fv7xm396u8tq9lp9w363zj -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fde04yn4n8skenekdth633922qajlk8yk730re] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fde04yn4n8skenekdth633922qajlk8yk730re -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fujkefqpzz8crmm655q2x24y7gp7p9ppnph495] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fujkefqpzz8crmm655q2x24y7gp7p9ppnph495 -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1gruytagt6wcqarncm5ske8y3zevgqv8u6mkgyx] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1gruytagt6wcqarncm5ske8y3zevgqv8u6mkgyx -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1jmqvf9eypak3hh85gfpcpm7d8jjzd7jnnhr0xw] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1jmqvf9eypak3hh85gfpcpm7d8jjzd7jnnhr0xw -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1kxdfjs4tnu88aaqhvl9caja9qq9fs4r5qmpwqj] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1kxdfjs4tnu88aaqhvl9caja9qq9fs4r5qmpwqj -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1l9cu77ay8wlyh7mxlgh0dpazw70w4f3y26g5v5] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1l9cu77ay8wlyh7mxlgh0dpazw70w4f3y26g5v5 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1lz280526tw8r06jtpxkzxajqmfsjkt57963kfr] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1lz280526tw8r06jtpxkzxajqmfsjkt57963kfr -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1q37rs9cmgqz5vnvwmr5v2a4sdzez0xfs2lvl63] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1q37rs9cmgqz5vnvwmr5v2a4sdzez0xfs2lvl63 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1tzkdzjq28sjp2rn6053rg9526w8sc2tm8jh0u4] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1tzkdzjq28sjp2rn6053rg9526w8sc2tm8jh0u4 -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1uavssa4h4s73h5fdqlheytyl6c8mvl89yfuuq9] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1uavssa4h4s73h5fdqlheytyl6c8mvl89yfuuq9 -decimals = 0 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1urvjvfzgmrvj79tk97t22whkwdfg7qng32rjjz] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1urvjvfzgmrvj79tk97t22whkwdfg7qng32rjjz -decimals = 18 - -[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xwk6glum68vdqdnx5gs0mkp909vdhx6uwhfr4y] -peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xwk6glum68vdqdnx5gs0mkp909vdhx6uwhfr4y -decimals = 18 - -[factory/inj1td2vzcjnhwmzfd9ky9mxtwmnfrv0a3keytv2y3/position] -peggy_denom = factory/inj1td2vzcjnhwmzfd9ky9mxtwmnfrv0a3keytv2y3/position -decimals = 0 - -[factory/inj1tf8twtqwfew5hu985tt9qgjhym0ejqahg46xdy/symbol1] -peggy_denom = factory/inj1tf8twtqwfew5hu985tt9qgjhym0ejqahg46xdy/symbol1 -decimals = 0 - -[factory/inj1tg5f2vykdt4sweqgsm3q8lva30wry955hwdvju/position] -peggy_denom = factory/inj1tg5f2vykdt4sweqgsm3q8lva30wry955hwdvju/position -decimals = 0 - -[factory/inj1tgjzqr4kcfnzx5anw5wqf8mucjl8ehlxe9657e/test] -peggy_denom = factory/inj1tgjzqr4kcfnzx5anw5wqf8mucjl8ehlxe9657e/test -decimals = 9 - -[factory/inj1tgn4tyjf0y20mxpydwv3454l3ze0uwdl3cgpaf/position] -peggy_denom = factory/inj1tgn4tyjf0y20mxpydwv3454l3ze0uwdl3cgpaf/position -decimals = 0 - -[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] -peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior -decimals = 6 - -[factory/inj1tk4ml8fce5ghx7y2gtnqhw57e9m59ep27497xv/uLP] -peggy_denom = factory/inj1tk4ml8fce5ghx7y2gtnqhw57e9m59ep27497xv/uLP -decimals = 0 - -[factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1kjpg9p0h6g5zuwdzhgn7atleqeuqnysxs9xvtv] -peggy_denom = factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1kjpg9p0h6g5zuwdzhgn7atleqeuqnysxs9xvtv -decimals = 0 - -[factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1qscnau8y47upvhc7rs5c2kkpkrpqc0a0crp6av] -peggy_denom = factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1qscnau8y47upvhc7rs5c2kkpkrpqc0a0crp6av -decimals = 0 - -[factory/inj1tlrwn7cm5hgpttyjkrw94qvwapeck2f7u855hn/position] -peggy_denom = factory/inj1tlrwn7cm5hgpttyjkrw94qvwapeck2f7u855hn/position -decimals = 0 - -[factory/inj1tlxsr4ezttv242jh3tdt675s2kemvcqx9yn4m3/position] -peggy_denom = factory/inj1tlxsr4ezttv242jh3tdt675s2kemvcqx9yn4m3/position -decimals = 0 - -[factory/inj1tmag9j5qnresq97efzkxer9evvyhuzaqjlmxvj/duynt-1] -peggy_denom = factory/inj1tmag9j5qnresq97efzkxer9evvyhuzaqjlmxvj/duynt-1 -decimals = 0 - -[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test] -peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test -decimals = 0 - -[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test2] -peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test2 -decimals = 0 - -[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test3] -peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test3 -decimals = 0 - -[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/your-token-subdenom] -peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/your-token-subdenom -decimals = 0 - -[factory/inj1tnwe94x7n52vs70rsawvcs0fnktqp2h38vje26/BOND] -peggy_denom = factory/inj1tnwe94x7n52vs70rsawvcs0fnktqp2h38vje26/BOND -decimals = 0 - -[factory/inj1tp9vhnurjqj54lrrt5eqr8gdf8zq77llpkfp5e/Ann] -peggy_denom = factory/inj1tp9vhnurjqj54lrrt5eqr8gdf8zq77llpkfp5e/Ann -decimals = 9 - -[factory/inj1tq80yx8jmw48wjzpaajqpyd7pe849vsz20qwsk/position] -peggy_denom = factory/inj1tq80yx8jmw48wjzpaajqpyd7pe849vsz20qwsk/position -decimals = 0 - -[factory/inj1tqw2laydve0l92fvkel5l6cdjgzm8ek5k6w7yq/position] -peggy_denom = factory/inj1tqw2laydve0l92fvkel5l6cdjgzm8ek5k6w7yq/position -decimals = 0 - -[factory/inj1trs377m67pndeu0sxptzuptcrzua5k4jya9rc3/position] -peggy_denom = factory/inj1trs377m67pndeu0sxptzuptcrzua5k4jya9rc3/position -decimals = 0 - -[factory/inj1trsaswl5c0xuuc8gpukkmze5qfmspv5nc9cpzd/byc] -peggy_denom = factory/inj1trsaswl5c0xuuc8gpukkmze5qfmspv5nc9cpzd/byc -decimals = 0 - -[factory/inj1tsqkcae8d6azqn6587d0e28prw682954y22ejs/position] -peggy_denom = factory/inj1tsqkcae8d6azqn6587d0e28prw682954y22ejs/position -decimals = 0 - -[factory/inj1ttl0waagrdapm4pdlzmlww2kftad4vkknsze9w/position] -peggy_denom = factory/inj1ttl0waagrdapm4pdlzmlww2kftad4vkknsze9w/position -decimals = 0 - -[factory/inj1tvgmd4hmxt4synazauj02v044dwenmucljzm3h/kin] -peggy_denom = factory/inj1tvgmd4hmxt4synazauj02v044dwenmucljzm3h/kin -decimals = 0 - -[factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-test] -peggy_denom = factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-test -decimals = 0 - -[factory/inj1tvzvzmhp5wnryf6dph2w5alkweqy4jj4w9fxwc/position] -peggy_denom = factory/inj1tvzvzmhp5wnryf6dph2w5alkweqy4jj4w9fxwc/position -decimals = 0 - -[factory/inj1twteeyr3xuvckejmu9z4728qdasavaq0z32gkd/position] -peggy_denom = factory/inj1twteeyr3xuvckejmu9z4728qdasavaq0z32gkd/position -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheJanitor] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheJanitor -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/mtsc] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/mtsc -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rfl] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rfl -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rflf] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rflf -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tst] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tst -decimals = 0 - -[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tstt] -peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tstt -decimals = 0 - -[factory/inj1tx7alx5j6xl3zr03ywjqvuvjrf0kwwtlq8rqk0/btc] -peggy_denom = factory/inj1tx7alx5j6xl3zr03ywjqvuvjrf0kwwtlq8rqk0/btc -decimals = 0 - -[factory/inj1txpchnswwz7qnwgx4ew5enwalwkxl0wm7fwjfp/position] -peggy_denom = factory/inj1txpchnswwz7qnwgx4ew5enwalwkxl0wm7fwjfp/position -decimals = 0 - -[factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1ylxjl6qvr3efug3950rn9z2atdp02fyejlpsgx] -peggy_denom = factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1ylxjl6qvr3efug3950rn9z2atdp02fyejlpsgx -decimals = 0 - -[factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1yzv093zw480v5q3vmy275xyvp4x9q98k029ezd] -peggy_denom = factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1yzv093zw480v5q3vmy275xyvp4x9q98k029ezd -decimals = 0 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/KIWI] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/KIWI -decimals = 6 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST -decimals = 6 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST2] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST2 -decimals = 6 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST3] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST3 -decimals = 6 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST4] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST4 -decimals = 6 - -[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST5] -peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST5 -decimals = 18 - -[factory/inj1u0yfajq9e5huyylh4tllxvswdsgp3d2eum7za5/position] -peggy_denom = factory/inj1u0yfajq9e5huyylh4tllxvswdsgp3d2eum7za5/position -decimals = 0 - -[factory/inj1u2gzmedq4suw64ulpu7uwehy2mqaysfrt0nq0q/position] -peggy_denom = factory/inj1u2gzmedq4suw64ulpu7uwehy2mqaysfrt0nq0q/position -decimals = 0 - -[factory/inj1u4d97wd4mya77h6mxk8q7grz6smc4esmjawhv9/position] -peggy_denom = factory/inj1u4d97wd4mya77h6mxk8q7grz6smc4esmjawhv9/position -decimals = 0 - -[factory/inj1u4h04v3kp8yk6kx3l0yc8ckea7t7533x55ltl0/b123123] -peggy_denom = factory/inj1u4h04v3kp8yk6kx3l0yc8ckea7t7533x55ltl0/b123123 -decimals = 9 - -[factory/inj1u4h6wt3rcctpcrmpcctmkhvxqt3aj5ugmm5hlj/position] -peggy_denom = factory/inj1u4h6wt3rcctpcrmpcctmkhvxqt3aj5ugmm5hlj/position -decimals = 0 - -[factory/inj1u64862u7plt539jm79eqnm4redcke8nszdy504/position] -peggy_denom = factory/inj1u64862u7plt539jm79eqnm4redcke8nszdy504/position -decimals = 0 - -[factory/inj1u6czgmqjcpku02z5hgnqd8c8z647lhzx07r8vd/position] -peggy_denom = factory/inj1u6czgmqjcpku02z5hgnqd8c8z647lhzx07r8vd/position -decimals = 0 - -[factory/inj1u6kx7cmvay8pv74d5xk07wtdergjcmhm5yfuxa/tp] -peggy_denom = factory/inj1u6kx7cmvay8pv74d5xk07wtdergjcmhm5yfuxa/tp -decimals = 0 - -[factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/TEST] -peggy_denom = factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/TEST -decimals = 6 - -[factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/Test] -peggy_denom = factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/Test -decimals = 6 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684004788InjUsdt1d110C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684004788InjUsdt1d110C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684160754InjUsdt1d110C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684160754InjUsdt1d110C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684161043InjUsdt7d85P] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684161043InjUsdt7d85P -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342128InjUsdt21d110C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342128InjUsdt21d110C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342228InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342228InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342259InjUsdt7d120C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342259InjUsdt7d120C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342288AtomUsdt21d115C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342288AtomUsdt21d115C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342323AtomUsdt21d90P] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342323AtomUsdt21d90P -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342562InjUsdt14d80P] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342562InjUsdt14d80P -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342583InjUsdt21d88P] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342583InjUsdt21d88P -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342627InjUsdt7d85P] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342627InjUsdt7d85P -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684519105InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684519105InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684730927InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684730927InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684902871InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684902871InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685029827InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685029827InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685200859InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685200859InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685201782InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685201782InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685379415InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685379415InjUsdt14d130C -decimals = 0 - -[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685547447InjUsdt14d130C] -peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685547447InjUsdt14d130C -decimals = 0 - -[factory/inj1ue7fhf4gm9et2j8c74pf3j6mpq6zfr0ss9pymj/position] -peggy_denom = factory/inj1ue7fhf4gm9et2j8c74pf3j6mpq6zfr0ss9pymj/position -decimals = 0 - -[factory/inj1uegc6g6gvjeq3efkevha8a26lruku53j2tm6ez/nusd] -peggy_denom = factory/inj1uegc6g6gvjeq3efkevha8a26lruku53j2tm6ez/nusd -decimals = 0 - -[factory/inj1ueq4h3gh8v2wdq6nk97d4ucxutdkqz7uma7twy/position] -peggy_denom = factory/inj1ueq4h3gh8v2wdq6nk97d4ucxutdkqz7uma7twy/position -decimals = 0 - -[factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/ak] -peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/ak -decimals = 6 - -[factory/inj1ul38prrls0g4g6xy7ljn8p5f7ag465nsjg7x3f/nept] -peggy_denom = factory/inj1ul38prrls0g4g6xy7ljn8p5f7ag465nsjg7x3f/nept -decimals = 6 - -[factory/inj1unjzfc767mt3ddln99h3u7gqccq4ktnkqxssgn/position] -peggy_denom = factory/inj1unjzfc767mt3ddln99h3u7gqccq4ktnkqxssgn/position -decimals = 0 - -[factory/inj1up4y7jqyz0vxqpzky20jve5837thglaccfu80m/position] -peggy_denom = factory/inj1up4y7jqyz0vxqpzky20jve5837thglaccfu80m/position -decimals = 0 - -[factory/inj1urpyedgvqtfutghgd9pygsa9n9df6nahjygjfc/position] -peggy_denom = factory/inj1urpyedgvqtfutghgd9pygsa9n9df6nahjygjfc/position -decimals = 0 - -[factory/inj1usgjy0d22uetxkrw7wk7ghdwcje5mldjlahf9u/position] -peggy_denom = factory/inj1usgjy0d22uetxkrw7wk7ghdwcje5mldjlahf9u/position -decimals = 0 - -[factory/inj1ut4dqsjmy359rtcm2c968kju22j3auejw227yk/position] -peggy_denom = factory/inj1ut4dqsjmy359rtcm2c968kju22j3auejw227yk/position -decimals = 0 - -[factory/inj1utgap8ev5g4f97t5qta6fz2vreea6kh49x7d57/position] -peggy_denom = factory/inj1utgap8ev5g4f97t5qta6fz2vreea6kh49x7d57/position -decimals = 0 - -[factory/inj1uumx6djsue8reph7zqxvct9qh5ymfkewrlrvkh/position] -peggy_denom = factory/inj1uumx6djsue8reph7zqxvct9qh5ymfkewrlrvkh/position -decimals = 0 - -[factory/inj1uv23c02y8kyst63gmd9s90xnusxm082cz75svm/position] -peggy_denom = factory/inj1uv23c02y8kyst63gmd9s90xnusxm082cz75svm/position -decimals = 0 - -[factory/inj1uv6psuupldve0c9n3uezqlecadszqexv5vxx04/position] -peggy_denom = factory/inj1uv6psuupldve0c9n3uezqlecadszqexv5vxx04/position -decimals = 0 - -[factory/inj1uvhnfynmzakn5w9hy0lx4ekjg2n43l6wn589yn/position] -peggy_denom = factory/inj1uvhnfynmzakn5w9hy0lx4ekjg2n43l6wn589yn/position -decimals = 0 - -[factory/inj1uxfds27smnfldzeqvw9sxe9ezmsn76vf36y8mu/position] -peggy_denom = factory/inj1uxfds27smnfldzeqvw9sxe9ezmsn76vf36y8mu/position -decimals = 0 - -[factory/inj1uyv6e9u30eckntsa5y968mvzh53482stcmhuqp/position] -peggy_denom = factory/inj1uyv6e9u30eckntsa5y968mvzh53482stcmhuqp/position -decimals = 0 - -[factory/inj1v0ryp6qedj40zgnypqj0et0m8r40n9wunus47z/nept] -peggy_denom = factory/inj1v0ryp6qedj40zgnypqj0et0m8r40n9wunus47z/nept -decimals = 6 - -[factory/inj1v382yx63cyv4ezs0auh4h3c4u7rv766wsqx8et/INJ] -peggy_denom = factory/inj1v382yx63cyv4ezs0auh4h3c4u7rv766wsqx8et/INJ -decimals = 18 - -[factory/inj1v382yx63cyv4ezs0auh4h3c4u7rv766wsqx8et/USDT] -peggy_denom = factory/inj1v382yx63cyv4ezs0auh4h3c4u7rv766wsqx8et/USDT -decimals = 6 - -[factory/inj1v3nvact8rvv23fc5ql8ghv46s8gxajwynddsgf/position] -peggy_denom = factory/inj1v3nvact8rvv23fc5ql8ghv46s8gxajwynddsgf/position -decimals = 0 - -[factory/inj1v3t83cl8jg2g9rxxzzyz663sx2md7mkap48qpw/position] -peggy_denom = factory/inj1v3t83cl8jg2g9rxxzzyz663sx2md7mkap48qpw/position -decimals = 0 - -[factory/inj1v4rt4k8c92m2e39xnrp0rur23ch24vlraeqrnj/position] -peggy_denom = factory/inj1v4rt4k8c92m2e39xnrp0rur23ch24vlraeqrnj/position -decimals = 0 - -[factory/inj1v4s3v3nmsx6szyxqgcnqdfseucu4ccm65sh0xr/lp] -peggy_denom = factory/inj1v4s3v3nmsx6szyxqgcnqdfseucu4ccm65sh0xr/lp -decimals = 0 - -[factory/inj1v50298l9a3p8zq3hm6sfa02sj3h4l40m2e85sg/position] -peggy_denom = factory/inj1v50298l9a3p8zq3hm6sfa02sj3h4l40m2e85sg/position -decimals = 0 - -[factory/inj1v6f2f8gqyk9u5pquxqvsxamjfmu0anlqty0tck/position] -peggy_denom = factory/inj1v6f2f8gqyk9u5pquxqvsxamjfmu0anlqty0tck/position -decimals = 0 - -[factory/inj1v6j600fchr65djzwg32pwn0wrmumayk7wz3045/position] -peggy_denom = factory/inj1v6j600fchr65djzwg32pwn0wrmumayk7wz3045/position -decimals = 0 - -[factory/inj1v9dh0z7vmn8aa6rjssertmh65q6zu43vu4lzqg/position] -peggy_denom = factory/inj1v9dh0z7vmn8aa6rjssertmh65q6zu43vu4lzqg/position -decimals = 0 - -[factory/inj1v9efws63c8luhqqcxxyjv5yn84tw4an528avmn/position] -peggy_denom = factory/inj1v9efws63c8luhqqcxxyjv5yn84tw4an528avmn/position -decimals = 0 - -[factory/inj1v9m8ra08jmvgf7r086wjs660gaz4qman79068v/position] -peggy_denom = factory/inj1v9m8ra08jmvgf7r086wjs660gaz4qman79068v/position -decimals = 0 - -[factory/inj1v9u88x6364g7mgyhywe6k5mgmwh9hrmzgfqkga/position] -peggy_denom = factory/inj1v9u88x6364g7mgyhywe6k5mgmwh9hrmzgfqkga/position -decimals = 0 - -[factory/inj1vam3mucqmr3jq8g8tlyvwpg2d6n5saepvjqm9j/position] -peggy_denom = factory/inj1vam3mucqmr3jq8g8tlyvwpg2d6n5saepvjqm9j/position -decimals = 0 - -[factory/inj1vcmkd8uq6acykfuu37d3s440nse74l66ah5ntt/hoa1] -peggy_denom = factory/inj1vcmkd8uq6acykfuu37d3s440nse74l66ah5ntt/hoa1 -decimals = 9 - -[factory/inj1vcsdfppak6fuawvpujdg4l89jelr8yqsx7c2zv/nept] -peggy_denom = factory/inj1vcsdfppak6fuawvpujdg4l89jelr8yqsx7c2zv/nept -decimals = 6 - -[factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj167fk7vydv5sc3yvdlhrrnrh236qusaaunsrlaw] -peggy_denom = factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj167fk7vydv5sc3yvdlhrrnrh236qusaaunsrlaw -decimals = 0 - -[factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj1jl72nssaq64u6ze7ducpvne4k3knd7p4e38wmv] -peggy_denom = factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj1jl72nssaq64u6ze7ducpvne4k3knd7p4e38wmv -decimals = 0 - -[factory/inj1vfnt60cm3h5aevax84a3pe9lh7qpdgfelms26u/minh1] -peggy_denom = factory/inj1vfnt60cm3h5aevax84a3pe9lh7qpdgfelms26u/minh1 -decimals = 9 - -[factory/inj1vfwt0zwcx60sk3rlszfwezygd35lq9kjh6g9df/ak] -peggy_denom = factory/inj1vfwt0zwcx60sk3rlszfwezygd35lq9kjh6g9df/ak -decimals = 6 - -[factory/inj1vgg9a0fgt03s6naw4y8kpeqrxaftvjx7n729x9/position] -peggy_denom = factory/inj1vgg9a0fgt03s6naw4y8kpeqrxaftvjx7n729x9/position -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/ABC] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/ABC -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/INJ] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/INJ -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TOK] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TOK -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TST] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TST -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TYC] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TYC -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWG] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWG -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWWG] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWWG -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWwGG] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWwGG -decimals = 0 - -[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/your-token-subdenom] -peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/your-token-subdenom -decimals = 0 - -[factory/inj1vh87n639uwq0smzzxj82mqlyu5yxzn7l7fjcs0/position] -peggy_denom = factory/inj1vh87n639uwq0smzzxj82mqlyu5yxzn7l7fjcs0/position -decimals = 0 - -[factory/inj1vjjppnr2gws0e678uhegmcruhyx55nk6w2hg2k/position] -peggy_denom = factory/inj1vjjppnr2gws0e678uhegmcruhyx55nk6w2hg2k/position -decimals = 0 - -[factory/inj1vjjzzlev5u0hzzh4lju29mhv9efte87w5czs39/position] -peggy_denom = factory/inj1vjjzzlev5u0hzzh4lju29mhv9efte87w5czs39/position -decimals = 0 - -[factory/inj1vjyvqyhvd00zzpwrr6v3keydp43z8pnsl48cx3/Testone] -peggy_denom = factory/inj1vjyvqyhvd00zzpwrr6v3keydp43z8pnsl48cx3/Testone -decimals = 6 - -[factory/inj1vkrnanqvwve8ugvhkrk6mdzw45xevvrlskfnh8/hoa4hoa4hoa4hoa4hoa4hoa4] -peggy_denom = factory/inj1vkrnanqvwve8ugvhkrk6mdzw45xevvrlskfnh8/hoa4hoa4hoa4hoa4hoa4hoa4 -decimals = 0 - -[factory/inj1vkrp72xd67plcggcfjtjelqa4t5a093xljf2vj/inj1spw6nd0pj3kd3fgjljhuqpc8tv72a9v89myuja] -peggy_denom = factory/inj1vkrp72xd67plcggcfjtjelqa4t5a093xljf2vj/inj1spw6nd0pj3kd3fgjljhuqpc8tv72a9v89myuja -decimals = 0 - -[factory/inj1vlkpm04nu8dssskal6xkssfz6rl4zayg2pq7yu/position] -peggy_denom = factory/inj1vlkpm04nu8dssskal6xkssfz6rl4zayg2pq7yu/position -decimals = 0 - -[factory/inj1vmch9emlwa49ersxh7svqjckkjwuzrm76xuyqq/position] -peggy_denom = factory/inj1vmch9emlwa49ersxh7svqjckkjwuzrm76xuyqq/position -decimals = 0 - -[factory/inj1vmcrwdcymjkz8djsp04ya95xcux6utvp4dvwch/position] -peggy_denom = factory/inj1vmcrwdcymjkz8djsp04ya95xcux6utvp4dvwch/position -decimals = 0 - -[factory/inj1vnw2qhycavcehry6a9sex07nr76axev5s59x96/position] -peggy_denom = factory/inj1vnw2qhycavcehry6a9sex07nr76axev5s59x96/position -decimals = 0 - -[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cook] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cook -decimals = 6 - -[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cookie] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cookie -decimals = 6 - -[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test213] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test213 -decimals = 6 - -[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test9] -peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test9 -decimals = 6 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BONK] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BONK -decimals = 18 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BOY] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BOY -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAD] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAD -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADARA] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADARA -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADRAA] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADRAA -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAY] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAY -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MUD] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MUD -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/TTS] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/TTS -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/bou] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/bou -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/lyl] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/lyl -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/ruk] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/ruk -decimals = 0 - -[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/tis] -peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/tis -decimals = 0 - -[factory/inj1vu3ywmx6jhknclgjetxftdf2fpgyxsndh9xy4t/ugop] -peggy_denom = factory/inj1vu3ywmx6jhknclgjetxftdf2fpgyxsndh9xy4t/ugop -decimals = 0 - -[factory/inj1vursge2u0xq88ff5dc9zl3wzxpaed6498pyurc/position] -peggy_denom = factory/inj1vursge2u0xq88ff5dc9zl3wzxpaed6498pyurc/position -decimals = 0 - -[factory/inj1vypjl0lxse2hpkpff9jpjcfpexnwhjhrl4jtxg/position] -peggy_denom = factory/inj1vypjl0lxse2hpkpff9jpjcfpexnwhjhrl4jtxg/position -decimals = 0 - -[factory/inj1vzup2kfsrsevjcesq3pyzc6dyz07ve8jc6m4kf/tv-t1] -peggy_denom = factory/inj1vzup2kfsrsevjcesq3pyzc6dyz07ve8jc6m4kf/tv-t1 -decimals = 0 - -[factory/inj1w0dj787d00t9t53vz9aszkcmdt0he6cmall5lz/position] -peggy_denom = factory/inj1w0dj787d00t9t53vz9aszkcmdt0he6cmall5lz/position -decimals = 0 - -[factory/inj1w2p89vprfp4rk9ql22fcat579jw6lcndaqenxk/position] -peggy_denom = factory/inj1w2p89vprfp4rk9ql22fcat579jw6lcndaqenxk/position -decimals = 0 - -[factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/inj-test] -peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/inj-test -decimals = 0 - -[factory/inj1w64pxulxdnjnsgg88yg0wv4xtltuvdt60dxx52/usdcet] -peggy_denom = factory/inj1w64pxulxdnjnsgg88yg0wv4xtltuvdt60dxx52/usdcet -decimals = 0 - -[factory/inj1wcgxfkevadmdvrnfj6arpm0dulaap778gdfydy/position] -peggy_denom = factory/inj1wcgxfkevadmdvrnfj6arpm0dulaap778gdfydy/position -decimals = 0 - -[factory/inj1wdlaxz5j2kuvvw6j6zapkhst03w99uqu4qzjqr/position] -peggy_denom = factory/inj1wdlaxz5j2kuvvw6j6zapkhst03w99uqu4qzjqr/position -decimals = 0 - -[factory/inj1weg6gph4cwe7mnk06h7r640r9kjz3aah5vd8q2/position] -peggy_denom = factory/inj1weg6gph4cwe7mnk06h7r640r9kjz3aah5vd8q2/position -decimals = 0 - -[factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/ak] -peggy_denom = factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/ak -decimals = 0 - -[factory/inj1wg70ms44pv0zlr2j8fvupx65fpsw65hhv4hx00/Fund2] -peggy_denom = factory/inj1wg70ms44pv0zlr2j8fvupx65fpsw65hhv4hx00/Fund2 -decimals = 0 - -[factory/inj1wkjsuffr2caaf5000r70acd9hk9s4ur24hpdjq/auction.0] -peggy_denom = factory/inj1wkjsuffr2caaf5000r70acd9hk9s4ur24hpdjq/auction.0 -decimals = 0 - -[factory/inj1wljgztgggw6a96hgyypyl8fwmtgtedzkekhnxn/position] -peggy_denom = factory/inj1wljgztgggw6a96hgyypyl8fwmtgtedzkekhnxn/position -decimals = 0 - -[factory/inj1wlygmaypnsznpvnzjmlcfntua0k9smduh9ps3k/position] -peggy_denom = factory/inj1wlygmaypnsznpvnzjmlcfntua0k9smduh9ps3k/position -decimals = 0 - -[factory/inj1wn5jk6wn52c3lcz7tj2syt3tye7s7hzn49gnk7/position] -peggy_denom = factory/inj1wn5jk6wn52c3lcz7tj2syt3tye7s7hzn49gnk7/position -decimals = 0 - -[factory/inj1wpuctnwfks0c9wu8cysq8lj056a07h4lk8pffc/position] -peggy_denom = factory/inj1wpuctnwfks0c9wu8cysq8lj056a07h4lk8pffc/position -decimals = 0 - -[factory/inj1wqk89jknq4z4vk247r7qw83e3efq79pr0gcrac/TEST] -peggy_denom = factory/inj1wqk89jknq4z4vk247r7qw83e3efq79pr0gcrac/TEST -decimals = 18 - -[factory/inj1wr9djhlgvu6ssy9aw2f6xnzr6edl8p3fmdxvr5/position] -peggy_denom = factory/inj1wr9djhlgvu6ssy9aw2f6xnzr6edl8p3fmdxvr5/position -decimals = 0 - -[factory/inj1wtkwu7263hrj6qsyq59dvjtfq7eg3n97zmyew7/position] -peggy_denom = factory/inj1wtkwu7263hrj6qsyq59dvjtfq7eg3n97zmyew7/position -decimals = 0 - -[factory/inj1ww0njtv5man6as3evjy4aq3t08dnapf8wgvvpx/kusd] -peggy_denom = factory/inj1ww0njtv5man6as3evjy4aq3t08dnapf8wgvvpx/kusd -decimals = 0 - -[factory/inj1wyuxew5u8tdv2fcrjxqtewa75a0nhud26yx322/position] -peggy_denom = factory/inj1wyuxew5u8tdv2fcrjxqtewa75a0nhud26yx322/position -decimals = 0 - -[factory/inj1wz4c7eq2kqzchry9ppc5nv0llcr56v8s8xy3qy/ak] -peggy_denom = factory/inj1wz4c7eq2kqzchry9ppc5nv0llcr56v8s8xy3qy/ak -decimals = 0 - -[factory/inj1x098l8f3uxkfslk02n8ekct867qft2q9a43pez/position] -peggy_denom = factory/inj1x098l8f3uxkfslk02n8ekct867qft2q9a43pez/position -decimals = 0 - -[factory/inj1x0y2k45p8g4c5k09z6y4s62ann48td8dmmtr7p/position] -peggy_denom = factory/inj1x0y2k45p8g4c5k09z6y4s62ann48td8dmmtr7p/position -decimals = 0 - -[factory/inj1x33pdf4m2d89klwevndvdv408em5fskarss4j4/position] -peggy_denom = factory/inj1x33pdf4m2d89klwevndvdv408em5fskarss4j4/position -decimals = 0 - -[factory/inj1x36xltunr3hczrzzcjgsdz8a4rjrxvl3lwnyxx/position] -peggy_denom = factory/inj1x36xltunr3hczrzzcjgsdz8a4rjrxvl3lwnyxx/position -decimals = 0 - -[factory/inj1x52kjrdrfxlsgnfu67cstxfcf33ax97anne4qw/position] -peggy_denom = factory/inj1x52kjrdrfxlsgnfu67cstxfcf33ax97anne4qw/position -decimals = 0 - -[factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/Test] -peggy_denom = factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/Test -decimals = 0 - -[factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/test] -peggy_denom = factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/test -decimals = 6 - -[factory/inj1x5w6ggv3p67kpj9n6teprx3uqxfn4e5rpq82fv/position] -peggy_denom = factory/inj1x5w6ggv3p67kpj9n6teprx3uqxfn4e5rpq82fv/position -decimals = 0 - -[factory/inj1x63pwwsuwpmgnm3jjgm8v4cva05358082tqysd/position] -peggy_denom = factory/inj1x63pwwsuwpmgnm3jjgm8v4cva05358082tqysd/position -decimals = 0 - -[factory/inj1x66srsf7gnm0fz3p6ceazp7h9p60hyxmxqh0s3/position] -peggy_denom = factory/inj1x66srsf7gnm0fz3p6ceazp7h9p60hyxmxqh0s3/position -decimals = 0 - -[factory/inj1x7c4naavu5g6325xkxgaffll6q033prgpe86q3/nUSD] -peggy_denom = factory/inj1x7c4naavu5g6325xkxgaffll6q033prgpe86q3/nUSD -decimals = 18 - -[factory/inj1x8lczzuhxpp5nhf72nfv0e74vkjxvqag05clpn/position] -peggy_denom = factory/inj1x8lczzuhxpp5nhf72nfv0e74vkjxvqag05clpn/position -decimals = 0 - -[factory/inj1x8rucyh7paah9dlldcfcfuscl3scdtus26m822/position] -peggy_denom = factory/inj1x8rucyh7paah9dlldcfcfuscl3scdtus26m822/position -decimals = 0 - -[factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test] -peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test -decimals = 18 - -[factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test1] -peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test1 -decimals = 8 - -[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] -peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi -decimals = 6 - -[factory/inj1xaxtu5t78dyd4hja2zsehezmlsrzj665td770x/test] -peggy_denom = factory/inj1xaxtu5t78dyd4hja2zsehezmlsrzj665td770x/test -decimals = 0 - -[factory/inj1xcj5al0gdrs7mwcn84jhsj5a2kgsqj4c9qk5en/injMiam] -peggy_denom = factory/inj1xcj5al0gdrs7mwcn84jhsj5a2kgsqj4c9qk5en/injMiam -decimals = 0 - -[factory/inj1xcmem6znjw0tevhewzaj9vgck3j5jggfc47ue0/position] -peggy_denom = factory/inj1xcmem6znjw0tevhewzaj9vgck3j5jggfc47ue0/position -decimals = 0 - -[factory/inj1xcn064p3w42wmuple0tqxv2zgkv2pyuzl3u5px/position] -peggy_denom = factory/inj1xcn064p3w42wmuple0tqxv2zgkv2pyuzl3u5px/position -decimals = 0 - -[factory/inj1xfjnl464vcmwzx82tcjmgkde68hra4rhetq2c5/position] -peggy_denom = factory/inj1xfjnl464vcmwzx82tcjmgkde68hra4rhetq2c5/position -decimals = 0 - -[factory/inj1xgeswrlancy8ma7e8reynzx4l22qwrrxwdvupg/hk1] -peggy_denom = factory/inj1xgeswrlancy8ma7e8reynzx4l22qwrrxwdvupg/hk1 -decimals = 9 - -[factory/inj1xgf4n9sa7rpedzngd66m49wd74aywptnujwqeq/position] -peggy_denom = factory/inj1xgf4n9sa7rpedzngd66m49wd74aywptnujwqeq/position -decimals = 0 - -[factory/inj1xh3ced9w5hkak0te7gcqejlg0uskv3xsqw6nqr/position] -peggy_denom = factory/inj1xh3ced9w5hkak0te7gcqejlg0uskv3xsqw6nqr/position -decimals = 0 - -[factory/inj1xh928v0zwy54nv3d9m9splk0nu9jfnugg8pmkk/asg] -peggy_denom = factory/inj1xh928v0zwy54nv3d9m9splk0nu9jfnugg8pmkk/asg -decimals = 0 - -[factory/inj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn/lp] -peggy_denom = factory/inj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn/lp -decimals = 0 - -[factory/inj1xlkkl7hvcvk2thxn6gf706eykx5j4j57mak7hp/position] -peggy_denom = factory/inj1xlkkl7hvcvk2thxn6gf706eykx5j4j57mak7hp/position -decimals = 0 - -[factory/inj1xmgw5eyauaftulpu0xaeafhre33q02vf6pc4ts/position] -peggy_denom = factory/inj1xmgw5eyauaftulpu0xaeafhre33q02vf6pc4ts/position -decimals = 0 - -[factory/inj1xpx6s84xjvlgz63y0nkw8nw66zu3ezzxwwx8wh/position] -peggy_denom = factory/inj1xpx6s84xjvlgz63y0nkw8nw66zu3ezzxwwx8wh/position -decimals = 0 - -[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/PUGGO] -peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/PUGGO -decimals = 0 - -[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test1] -peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test1 -decimals = 0 - -[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test2] -peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test2 -decimals = 0 - -[factory/inj1xsadv6kc7v6jhauunr8qy8angg9ttx752j4ama/position] -peggy_denom = factory/inj1xsadv6kc7v6jhauunr8qy8angg9ttx752j4ama/position -decimals = 0 - -[factory/inj1xu5vejfxv7pjq8afdt0pgnn2v90z839kw8murw/hoa7] -peggy_denom = factory/inj1xu5vejfxv7pjq8afdt0pgnn2v90z839kw8murw/hoa7 -decimals = 0 - -[factory/inj1xug34v8e887uzcc9mr2pql06h2ztvhxxm6asll/utest] -peggy_denom = factory/inj1xug34v8e887uzcc9mr2pql06h2ztvhxxm6asll/utest -decimals = 0 - -[factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/INJECT] -peggy_denom = factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/INJECT -decimals = 6 - -[factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/ak] -peggy_denom = factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/ak -decimals = 0 - -[factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DGNZ] -peggy_denom = factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DGNZ -decimals = 6 - -[factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DREAM] -peggy_denom = factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DREAM -decimals = 6 - -[factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/kira] -peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/kira -decimals = 6 - -[factory/inj1xyr5tt9ltrdm9uvnerwtv4sz9hllqvgt3pkea2/position] -peggy_denom = factory/inj1xyr5tt9ltrdm9uvnerwtv4sz9hllqvgt3pkea2/position -decimals = 0 - -[factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/testtoken] -peggy_denom = factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/testtoken -decimals = 6 - -[factory/inj1xzfme2xzc2zcwdvkhkklssudaeyeax5mpfu45c/kira] -peggy_denom = factory/inj1xzfme2xzc2zcwdvkhkklssudaeyeax5mpfu45c/kira -decimals = 6 - -[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/IPDAI] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/IPDAI -decimals = 0 - -[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Ipdai] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Ipdai -decimals = 0 - -[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Test1] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Test1 -decimals = 6 - -[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ak] -peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ak -decimals = 0 - -[factory/inj1y3g6p8hsdk2tx85nhftujuz2femtztwpzwxlun/position] -peggy_denom = factory/inj1y3g6p8hsdk2tx85nhftujuz2femtztwpzwxlun/position -decimals = 0 - -[factory/inj1y3uz825u9x4yr440x7dpfpz9p93k2ua3mfsj8m/position] -peggy_denom = factory/inj1y3uz825u9x4yr440x7dpfpz9p93k2ua3mfsj8m/position -decimals = 0 - -[factory/inj1y40ej8fymv3y3002y7vs38ad8wmkfx70x6p9fl/position] -peggy_denom = factory/inj1y40ej8fymv3y3002y7vs38ad8wmkfx70x6p9fl/position -decimals = 0 - -[factory/inj1y5869da9fkn54gz389fnf7xm937uxjncjjpcag/Ann] -peggy_denom = factory/inj1y5869da9fkn54gz389fnf7xm937uxjncjjpcag/Ann -decimals = 9 - -[factory/inj1y8mflyjjgrtmtmufn9cpt9snkyaksv8yyjfn7e/position] -peggy_denom = factory/inj1y8mflyjjgrtmtmufn9cpt9snkyaksv8yyjfn7e/position -decimals = 0 - -[factory/inj1y8n40n0r4qhpv03refwjf2w8qeskn7wz9papy9/position] -peggy_denom = factory/inj1y8n40n0r4qhpv03refwjf2w8qeskn7wz9papy9/position -decimals = 0 - -[factory/inj1y9ns569xn73s2dez3edfl8x9rldhlnmf342x2v/uLP] -peggy_denom = factory/inj1y9ns569xn73s2dez3edfl8x9rldhlnmf342x2v/uLP -decimals = 0 - -[factory/inj1ye40enxslv7ae0xdu2f7sjueet5ahewc6uzp5w/test] -peggy_denom = factory/inj1ye40enxslv7ae0xdu2f7sjueet5ahewc6uzp5w/test -decimals = 0 - -[factory/inj1yflxv3tzd0ya8rsqzl8y5e2fanzmwczzlzrh96/position] -peggy_denom = factory/inj1yflxv3tzd0ya8rsqzl8y5e2fanzmwczzlzrh96/position -decimals = 0 - -[factory/inj1yfxejgk5n6jljvf9f5sxex7k22td5vkqnugnvm/ak] -peggy_denom = factory/inj1yfxejgk5n6jljvf9f5sxex7k22td5vkqnugnvm/ak -decimals = 6 - -[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] -peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk -decimals = 6 - -[factory/inj1ygcvq2vzldwq0vr7mr0ha3cgjkhe5q8ahfckhw/duynt-1] -peggy_denom = factory/inj1ygcvq2vzldwq0vr7mr0ha3cgjkhe5q8ahfckhw/duynt-1 -decimals = 9 - -[factory/inj1yhssz5sjmea8cfa6waykwtpa29qdd7f43260fx/nept] -peggy_denom = factory/inj1yhssz5sjmea8cfa6waykwtpa29qdd7f43260fx/nept -decimals = 6 - -[factory/inj1yhyhvdj0lsjnvvrsv6r0wplzvg5w3ye5nskecp/position] -peggy_denom = factory/inj1yhyhvdj0lsjnvvrsv6r0wplzvg5w3ye5nskecp/position -decimals = 0 - -[factory/inj1ykvprwchmpgm632hsqwwmnwquazrpxmdykap3m/position] -peggy_denom = factory/inj1ykvprwchmpgm632hsqwwmnwquazrpxmdykap3m/position -decimals = 0 - -[factory/inj1yl97tnwqftg37d6ccjvd4zq3vh4mxynp6e2ldp/position] -peggy_denom = factory/inj1yl97tnwqftg37d6ccjvd4zq3vh4mxynp6e2ldp/position -decimals = 0 - -[factory/inj1ym7sl98neeh4t7gq8z4we3ugp4s68ghpvvkyas/position] -peggy_denom = factory/inj1ym7sl98neeh4t7gq8z4we3ugp4s68ghpvvkyas/position -decimals = 0 - -[factory/inj1ymah0zcd9ujkgaqaldfks6drttmxhwun05fvpv/kUSD] -peggy_denom = factory/inj1ymah0zcd9ujkgaqaldfks6drttmxhwun05fvpv/kUSD -decimals = 0 - -[factory/inj1ymqf6eyt00yxxqg40c8jrn9ey3ydms52ep39wh/position] -peggy_denom = factory/inj1ymqf6eyt00yxxqg40c8jrn9ey3ydms52ep39wh/position -decimals = 0 - -[factory/inj1yn4sntvmxmmzejlq7uer85g0jn0qr884qnhhkk/position] -peggy_denom = factory/inj1yn4sntvmxmmzejlq7uer85g0jn0qr884qnhhkk/position -decimals = 0 - -[factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VIC] -peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VIC -decimals = 6 - -[factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/injtokens] -peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/injtokens -decimals = 0 - -[factory/inj1yrcescuerfwmuk9fcsmzrcqxjk0l2crkva7w7q/position] -peggy_denom = factory/inj1yrcescuerfwmuk9fcsmzrcqxjk0l2crkva7w7q/position -decimals = 0 - -[factory/inj1yreaxfwm7hrnft6qckl9g8xc3p827qm06c90sp/position] -peggy_denom = factory/inj1yreaxfwm7hrnft6qckl9g8xc3p827qm06c90sp/position -decimals = 0 - -[factory/inj1yrhrhqxg8f9nd4eakydm6rmt62yr49q87me6d8/symbol] -peggy_denom = factory/inj1yrhrhqxg8f9nd4eakydm6rmt62yr49q87me6d8/symbol -decimals = 9 - -[factory/inj1ysw6mfrdusl7t68axsjzva7uf805zjrf35uzf4/position] -peggy_denom = factory/inj1ysw6mfrdusl7t68axsjzva7uf805zjrf35uzf4/position -decimals = 0 - -[factory/inj1ysym7p26k099yftp7pecfefefqu6y8lpg5380e/position] -peggy_denom = factory/inj1ysym7p26k099yftp7pecfefefqu6y8lpg5380e/position -decimals = 0 - -[factory/inj1ytsgm4785kt2knde6zs9dr24w0vhsaqptma6wh/position] -peggy_denom = factory/inj1ytsgm4785kt2knde6zs9dr24w0vhsaqptma6wh/position -decimals = 0 - -[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/test] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/test -decimals = 6 - -[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtt] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtt -decimals = 6 - -[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testttt] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testttt -decimals = 6 - -[factory/inj1yuhlreumk975lw4ne3qp0r3cvp4zphvpjm0x3a/bINJ] -peggy_denom = factory/inj1yuhlreumk975lw4ne3qp0r3cvp4zphvpjm0x3a/bINJ -decimals = 0 - -[factory/inj1yvfgszkzz5elj0vt8zwnua9fqkgmep83kety09/position] -peggy_denom = factory/inj1yvfgszkzz5elj0vt8zwnua9fqkgmep83kety09/position -decimals = 0 - -[factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIOR] -peggy_denom = factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIOR -decimals = 6 - -[factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIORi] -peggy_denom = factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIORi -decimals = 6 - -[factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/ak] -peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/ak -decimals = 0 - -[factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk2] -peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk2 -decimals = 0 - -[factory/inj1yy6u35zlmjz9wr3judrakha5t896y2zu8l96ld/position] -peggy_denom = factory/inj1yy6u35zlmjz9wr3judrakha5t896y2zu8l96ld/position -decimals = 0 - -[factory/inj1yzctp4r2g9phkam9zhensdasar83h0u4hrq0ap/MEME] -peggy_denom = factory/inj1yzctp4r2g9phkam9zhensdasar83h0u4hrq0ap/MEME -decimals = 6 - -[factory/inj1yzl27sewa2447vtvnp00r02fca8sw3vyc57fkl/position] -peggy_denom = factory/inj1yzl27sewa2447vtvnp00r02fca8sw3vyc57fkl/position -decimals = 0 - -[factory/inj1z2mvkyphlykuayz5jk5geujpc2s5h6x5p40gkq/position] -peggy_denom = factory/inj1z2mvkyphlykuayz5jk5geujpc2s5h6x5p40gkq/position -decimals = 0 - -[factory/inj1z2yh32tk3gu8z9shasyrhh42vwsuljmcft82ut/position] -peggy_denom = factory/inj1z2yh32tk3gu8z9shasyrhh42vwsuljmcft82ut/position -decimals = 0 - -[factory/inj1z3ke3q2p0zz5hdfjngxndu4n6y8xfk4scm342y/auction.0] -peggy_denom = factory/inj1z3ke3q2p0zz5hdfjngxndu4n6y8xfk4scm342y/auction.0 -decimals = 0 - -[factory/inj1z3qduw4n3uq549xx47sertmrclyratf498x63e/position] -peggy_denom = factory/inj1z3qduw4n3uq549xx47sertmrclyratf498x63e/position -decimals = 0 - -[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken] -peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken -decimals = 6 - -[factory/inj1z4phq0clwmns79duanyg7nk2eankp3we7h4sdk/position] -peggy_denom = factory/inj1z4phq0clwmns79duanyg7nk2eankp3we7h4sdk/position -decimals = 0 - -[factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/cuongprohello] -peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/cuongprohello -decimals = 0 - -[factory/inj1z7jcqanqnw969ad6wlucxn9v0t3z3j6swnunvs/lp] -peggy_denom = factory/inj1z7jcqanqnw969ad6wlucxn9v0t3z3j6swnunvs/lp -decimals = 0 - -[factory/inj1z8hv3ad5uskyk8rqtm7aje8gnml5y4rrs97txq/position] -peggy_denom = factory/inj1z8hv3ad5uskyk8rqtm7aje8gnml5y4rrs97txq/position -decimals = 0 - -[factory/inj1z9vd7p6pjgun9h8g0c8snuu03nrqer0sjuuhdf/position] -peggy_denom = factory/inj1z9vd7p6pjgun9h8g0c8snuu03nrqer0sjuuhdf/position -decimals = 0 - -[factory/inj1zcd6q9pgvlqg77uap9fy89a0ljpwm2wnaskf0g/position] -peggy_denom = factory/inj1zcd6q9pgvlqg77uap9fy89a0ljpwm2wnaskf0g/position -decimals = 0 - -[factory/inj1zdhmeaydxdhdd35wa4edrf748rpma662vrenk3/position] -peggy_denom = factory/inj1zdhmeaydxdhdd35wa4edrf748rpma662vrenk3/position -decimals = 0 - -[factory/inj1zf6dferymtlutcycrlddy9gy979sgsp6wj9046/position] -peggy_denom = factory/inj1zf6dferymtlutcycrlddy9gy979sgsp6wj9046/position -decimals = 0 - -[factory/inj1zgrjmn0ak8w566fvruttuzu22lyuqgm0gwtn6x/ninja] -peggy_denom = factory/inj1zgrjmn0ak8w566fvruttuzu22lyuqgm0gwtn6x/ninja -decimals = 0 - -[factory/inj1zhwkngnvdh6wewmp75ka7q6jn3c4z8sglrvfgl/position] -peggy_denom = factory/inj1zhwkngnvdh6wewmp75ka7q6jn3c4z8sglrvfgl/position -decimals = 0 - -[factory/inj1zjjt92jzn7r2qfwuza67jhgjr79xfjdjy29ae8/BTC] -peggy_denom = factory/inj1zjjt92jzn7r2qfwuza67jhgjr79xfjdjy29ae8/BTC -decimals = 0 - -[factory/inj1zmunv4qvrnl5023drl008kqnm5dp5luwxylf4p/position] -peggy_denom = factory/inj1zmunv4qvrnl5023drl008kqnm5dp5luwxylf4p/position -decimals = 0 - -[factory/inj1zmy72r0sl4q85kxszv5jljqsvqsq4geqg8yvcz/position] -peggy_denom = factory/inj1zmy72r0sl4q85kxszv5jljqsvqsq4geqg8yvcz/position -decimals = 0 - -[factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test3] -peggy_denom = factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test3 -decimals = 0 - -[factory/inj1zr0qfmzlputn5x8g62l383wasj6tsqvu9l6fcv/position] -peggy_denom = factory/inj1zr0qfmzlputn5x8g62l383wasj6tsqvu9l6fcv/position -decimals = 0 - -[factory/inj1zszapyz8f2meqqccarkervwtcqq6994n6e4uce/position] -peggy_denom = factory/inj1zszapyz8f2meqqccarkervwtcqq6994n6e4uce/position -decimals = 0 - -[factory/inj1ztude0usp9vkxmaeh7pggx5lcc80rrwj97l3pz/position] -peggy_denom = factory/inj1ztude0usp9vkxmaeh7pggx5lcc80rrwj97l3pz/position -decimals = 0 - -[factory/inj1ztz8ftj8c87xczhfa24t0enntz86e0u4dp7sp3/position] -peggy_denom = factory/inj1ztz8ftj8c87xczhfa24t0enntz86e0u4dp7sp3/position -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj10khun6rk82dp2wdajh6z3vjsrac6wpuywt22yy] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj10khun6rk82dp2wdajh6z3vjsrac6wpuywt22yy -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj12yzugqf4uchk7y3j4mw5epwh88rw7hc7k79x2y] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj12yzugqf4uchk7y3j4mw5epwh88rw7hc7k79x2y -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj144r9lg7zjsmxkz34wa9cjj83mamfav3yr7pguc] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj144r9lg7zjsmxkz34wa9cjj83mamfav3yr7pguc -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1989lj26y5jcartkvj2x55vnef8kf5ayl6p67gw] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1989lj26y5jcartkvj2x55vnef8kf5ayl6p67gw -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1etyvn2kgsgl0fwlcwljsq7l85cep878v7n0n3z] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1etyvn2kgsgl0fwlcwljsq7l85cep878v7n0n3z -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1fm2wjk79v79qdm5nprxrevnmjxlnhpvclg84rq] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1fm2wjk79v79qdm5nprxrevnmjxlnhpvclg84rq -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1haaudm8yme03h45aflzerlsng098prk83pxany] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1haaudm8yme03h45aflzerlsng098prk83pxany -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1j3twfggy7t48hq3rkwnt9lf3q7q3ud58jzdnx6] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1j3twfggy7t48hq3rkwnt9lf3q7q3ud58jzdnx6 -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1jd2sq5eh25dszupf08dgnhha5dufmp5u85zhgj] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1jd2sq5eh25dszupf08dgnhha5dufmp5u85zhgj -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1juujgtcttsykxmqn0rr5whsr0djc73pgawr622] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1juujgtcttsykxmqn0rr5whsr0djc73pgawr622 -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1l0ge2pwpr74ck23p99f29p7tpkuj6uuhxrvt5x] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1l0ge2pwpr74ck23p99f29p7tpkuj6uuhxrvt5x -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1pllmhm80hnlh56u4aledjqye989cf83hhfwrxk] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1pllmhm80hnlh56u4aledjqye989cf83hhfwrxk -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1qpha543j56js3nfx0ywd3m5av7qhl68qcad8h4] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1qpha543j56js3nfx0ywd3m5av7qhl68qcad8h4 -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rejyjsu3rdgx0w9l3v07ar220n5s7tawg48p2a] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rejyjsu3rdgx0w9l3v07ar220n5s7tawg48p2a -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rltxjlvs4wz53jldufklaaxar73n5ytpcpacfp] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rltxjlvs4wz53jldufklaaxar73n5ytpcpacfp -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1ru65qlj534a8wu4guw9txetpkev43ausxdsv3s] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1ru65qlj534a8wu4guw9txetpkev43ausxdsv3s -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1s5v5rmqmplwa68fj26rztlyh0dzy83sqd255xq] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1s5v5rmqmplwa68fj26rztlyh0dzy83sqd255xq -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1sln84pshkreuvash6js0vu2gzcnwfg34lugwt7] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1sln84pshkreuvash6js0vu2gzcnwfg34lugwt7 -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1stjq2xyc7mtxp3ms60rauw2v6fvpfdl04d2qxj] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1stjq2xyc7mtxp3ms60rauw2v6fvpfdl04d2qxj -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1wm6uhg9ht6089c8h3yev2mt454s54v8kanxmcf] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1wm6uhg9ht6089c8h3yev2mt454s54v8kanxmcf -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1xdc8dhazn69vt4u6elpcn0kwxlmq0hjtjwytq5] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1xdc8dhazn69vt4u6elpcn0kwxlmq0hjtjwytq5 -decimals = 0 - -[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1y3pkfkrr3nr23320a3w4t2x5qlfk0l5w0s6rwl] -peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1y3pkfkrr3nr23320a3w4t2x5qlfk0l5w0s6rwl -decimals = 0 - -[factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj136zzmzanrgth7hw4f4z09eqym5ur76wr664la2] -peggy_denom = factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj136zzmzanrgth7hw4f4z09eqym5ur76wr664la2 -decimals = 0 - -[factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj1rfl7neqrtmhmujrktpll075latrq760c96emkc] -peggy_denom = factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj1rfl7neqrtmhmujrktpll075latrq760c96emkc -decimals = 0 - -[fund0409] -peggy_denom = factory/inj1q9zul5e6j58gyfz0yym35wvtdmwzeevcnrs443/fund0409 -decimals = 9 - -[good] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/good -decimals = 6 - -[hINJ] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc -decimals = 18 - -[hk1] -peggy_denom = factory/inj1phj8tp8nul9cglg2unuu9dp43v8m0aptx7a8gd/hk1 -decimals = 9 - -[hk2] -peggy_denom = factory/inj143698t5gp32ykkhrhhcf2v684htuhqt0t9amwd/hk2 -decimals = 9 - -[hng] -peggy_denom = factory/inj1hslxdwcszyjesl0e7q339qvqme8jtpkgvfw667/hng -decimals = 6 - -[hoa] -peggy_denom = factory/inj1wy4jy5u9agsc6le2cp6lx8p77uxdyuuha256vp/hoa -decimals = 9 - -[hoa1] -peggy_denom = factory/inj1d4eex70m7pzvv73993gepxzxxt35z4z6k3vyy6/hoa1 -decimals = 9 - -[hoa2] -peggy_denom = factory/inj1a6xs3gyhzrtm86f3jentj5fgeydjfq4q9zl6m2/hoa2 -decimals = 9 - -[hoa3] -peggy_denom = factory/inj1cjmxve82ylt7rmk4py8uvty9ccyrmg6ut0fdz3/hoa3 -decimals = 9 - -[hoa4] -peggy_denom = factory/inj1dwrgqjl2t5fsdchfvq9z5f20etl9rhtmrjde3z/hoa4 -decimals = 9 - -[hoa5] -peggy_denom = factory/inj150tu4havpyu7lr9sl2khsaznny2ta4qcxg2ux2/hoa5 -decimals = 9 - -[iUSD] -peggy_denom = factory/inj16a2uxar2v8uyj3xanx6tyvzaqmlqj6jj03829u/nUSD -decimals = 18 - -[ibc/2CD6478D5AFA173C86448E008B760934166AED04C3968874EA6E44D2ECEA236D] -peggy_denom = ibc/2CD6478D5AFA173C86448E008B760934166AED04C3968874EA6E44D2ECEA236D -decimals = 0 - -[ibc/45B1C97F9EF078E4E4E0DEBA0CCE451F7CCA62C051DD29A4C57B7C31F8EBF87D] -peggy_denom = ibc/45B1C97F9EF078E4E4E0DEBA0CCE451F7CCA62C051DD29A4C57B7C31F8EBF87D -decimals = 0 - -[ibc/51EF06F0C3D94C42CBB77F2E9FD853862B29D8524D69A389F761C94F12DDABFB] -peggy_denom = ibc/51EF06F0C3D94C42CBB77F2E9FD853862B29D8524D69A389F761C94F12DDABFB -decimals = 0 - -[ibc/6767A6D74DE6E67F282BF0DA664960588594E10FAE25C7568D0E9714854A614A] -peggy_denom = ibc/6767A6D74DE6E67F282BF0DA664960588594E10FAE25C7568D0E9714854A614A -decimals = 0 - -[ibc/728275E9A4A5485F9EE43886013B01426A4A5C6E9747C8F0F422492B74BF0DD5] -peggy_denom = ibc/728275E9A4A5485F9EE43886013B01426A4A5C6E9747C8F0F422492B74BF0DD5 -decimals = 0 - -[ibc/85F860A9556E285E2F5E6CBC39F04E8E7A497488B9E7D11912030EB49D5E2CCB] -peggy_denom = ibc/85F860A9556E285E2F5E6CBC39F04E8E7A497488B9E7D11912030EB49D5E2CCB -decimals = 0 - -[ibc/86D3C0CC2008F9254902A58D2B24237BEFB9194F8CF1FF7E29312D932C31E841] -peggy_denom = ibc/86D3C0CC2008F9254902A58D2B24237BEFB9194F8CF1FF7E29312D932C31E841 -decimals = 0 - -[ibc/8D50C7D7F9EE586BC705D088C68601ACA5D192C63F6043B785676963074774B3] -peggy_denom = ibc/8D50C7D7F9EE586BC705D088C68601ACA5D192C63F6043B785676963074774B3 -decimals = 0 - -[ibc/97498452BF27CC90656FD7D6EFDA287FA2BFFFF3E84691C84CB9E0451F6DF0A4] -peggy_denom = ibc/97498452BF27CC90656FD7D6EFDA287FA2BFFFF3E84691C84CB9E0451F6DF0A4 -decimals = 0 - -[ibc/9E7EA73E3A4BA56CE72A4E574F529D43DABFEB1BDE5451515A21D6828E52EED5] -peggy_denom = ibc/9E7EA73E3A4BA56CE72A4E574F529D43DABFEB1BDE5451515A21D6828E52EED5 -decimals = 0 - -[ibc/9EBB1486F41AC90325E2BDB23F1EBE57BD6B0DDE25CC9E3051A5EAE2A589B032] -peggy_denom = ibc/9EBB1486F41AC90325E2BDB23F1EBE57BD6B0DDE25CC9E3051A5EAE2A589B032 -decimals = 0 - -[ibc/A2BBF23BE4234FD27AEF7269B30A124B91E3EB2D7F33E756B5EC2FC1F3DCF0B3] -peggy_denom = ibc/A2BBF23BE4234FD27AEF7269B30A124B91E3EB2D7F33E756B5EC2FC1F3DCF0B3 -decimals = 0 - -[ibc/B0D9A85855FFB4C6472AD514B48C91275453B2AFC501472EE29895C400463E6B] -peggy_denom = ibc/B0D9A85855FFB4C6472AD514B48C91275453B2AFC501472EE29895C400463E6B -decimals = 0 - -[ibc/B8F94CEDA547914DC365232034474E8AFE503304BDE91D281C3AB5024060A491] -peggy_denom = ibc/B8F94CEDA547914DC365232034474E8AFE503304BDE91D281C3AB5024060A491 -decimals = 0 - -[ibc/BE8B9A10C7F6E014F617E4C883D24A8E34A4399C2E18D583DD9506CEADF0D7E5] -peggy_denom = ibc/BE8B9A10C7F6E014F617E4C883D24A8E34A4399C2E18D583DD9506CEADF0D7E5 -decimals = 0 - -[ibc/C738E90C95E4D7A405B7D3D8992EC554DDCC2079991AB5FF67051A99E02C95A1] -peggy_denom = ibc/C738E90C95E4D7A405B7D3D8992EC554DDCC2079991AB5FF67051A99E02C95A1 -decimals = 0 - -[ibc/C877F38C8B5172A906FBFDEBB243B8313C58CCF2F534C1EC5DD6819662051DDE] -peggy_denom = ibc/C877F38C8B5172A906FBFDEBB243B8313C58CCF2F534C1EC5DD6819662051DDE -decimals = 0 - -[ibc/D9C20413CBBD2CD0AA87141639F7048597F2A90A80F63D155A91F483BD04CFA3] -peggy_denom = ibc/D9C20413CBBD2CD0AA87141639F7048597F2A90A80F63D155A91F483BD04CFA3 -decimals = 0 - -[ibc/E1932BA371D397A1FD6066792D585348090F3764E2BA4F08298803ED8A76F226] -peggy_denom = ibc/E1932BA371D397A1FD6066792D585348090F3764E2BA4F08298803ED8A76F226 -decimals = 0 - -[ibc/E40FBDD3CB829D3A57D8A5588783C39620B4E4F26B08970DE0F8173D60E3E6E1] -peggy_denom = ibc/E40FBDD3CB829D3A57D8A5588783C39620B4E4F26B08970DE0F8173D60E3E6E1 -decimals = 0 - -[ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839] -peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 -decimals = 6 - -[ibc/F14B1670FD61AC2BA511C6260D940A120A47B27AAF8322FCDBBAD8E9967BB518] -peggy_denom = ibc/F14B1670FD61AC2BA511C6260D940A120A47B27AAF8322FCDBBAD8E9967BB518 -decimals = 0 - -[inj-test] -peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/inj-test -decimals = 6 - -[inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9] -peggy_denom = inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 -decimals = 8 - -[inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw] -peggy_denom = inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw -decimals = 6 - -[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] -peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp -decimals = 6 - -[inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc] -peggy_denom = inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc -decimals = 18 - -[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] -peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 -decimals = 8 - -[injjj] -peggy_denom = factory/inj1dqagu9cx72lph0rg3ghhuwj20cw9f8x7rq2zz6/injjj -decimals = 6 - -[injo] -peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/injo -decimals = 6 - -[injtest1] -peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/inj-test1 -decimals = 6 - -[jhd] -peggy_denom = factory/inj18pj77a29y9v40npsj59fvasa0frs69ljnsugm4/jhd -decimals = 9 - -[juj] -peggy_denom = factory/inj19da3yxdtxzdrzdg9vxwp0g68npthnttzvk72eh/juj -decimals = 9 - -[kUSD] -peggy_denom = factory/inj1kheekln6ukwx36hwa3d4u05a0yjnf97kjkes4h/kUSD -decimals = 6 - -[lol] -peggy_denom = factory/inj1x5h2d974gqwcskvk4pdtf25f7heml469e756ez/lol -decimals = 6 - -[lootbox1] -peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 -decimals = 0 - -[lootbox22] -peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox22 -decimals = 0 - -[lym] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/lym -decimals = 6 - -[mINJo] -peggy_denom = factory/inj1tnphav95y6ekpvnta3ztsdyhla0543mkrfy7af/mINJo -decimals = 6 - -[mani] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/mani -decimals = 6 - -[minh1] -peggy_denom = factory/inj1muny6gyqj3mkpkksnyfag6v3l2dss8zgrpevft/minh1 -decimals = 9 - -[minh2] -peggy_denom = factory/inj1pyw2pkgp88fd7nfegecyynzs2n9305ccd4qxsa/minh2 -decimals = 9 - -[mmm] -peggy_denom = factory/inj1cv82kfsc0h4hd0q28d8zzrrn3hh42z2g4mn6tn/mmm -decimals = 9 - -[mnk] -peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/mnk -decimals = 6 - -[nATOM] -peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 -decimals = 6 - -[nINJ] -peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf -decimals = 18 - -[nTIA] -peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv -decimals = 6 - -[nUSD] -peggy_denom = factory/inj13l36tutxv09s72adll47g3jykymj305zuw42r0/nUSD -decimals = 18 - -[nUSDT] -peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s -decimals = 6 - -[nWETH] -peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt -decimals = 18 - -[napejas] -peggy_denom = factory/inj148sjw9h9n3n8gjw37reetwdlc7v4hfhl8r7vv3/napejas -decimals = 6 - -[ninja] -peggy_denom = factory/inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0/ninja -decimals = 6 - -[pal] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pal -decimals = 6 - -[peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9] -peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 -decimals = 18 - -[peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599] -peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 -decimals = 8 - -[peggy0x43123e1d077351267113ada8bE85A058f5D492De] -peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De -decimals = 6 - -[peggy0x43871C5e85144EC340A3A63109F3F11C3745FE4E] -peggy_denom = peggy0x43871C5e85144EC340A3A63109F3F11C3745FE4E -decimals = 18 - -[peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7] -peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 -decimals = 0 - -[peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369] -peggy_denom = peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369 -decimals = 18 - -[peggy0x6F3050fa31c4CC2bB4A213B7d53c220Ac04Dd59D] -peggy_denom = peggy0x6F3050fa31c4CC2bB4A213B7d53c220Ac04Dd59D -decimals = 18 - -[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] -peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 -decimals = 6 - -[peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB] -peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB -decimals = 6 - -[peggy0x91Efc46E7C52ab1fFca310Ca7972AeA48891E5CD] -peggy_denom = peggy0x91Efc46E7C52ab1fFca310Ca7972AeA48891E5CD -decimals = 18 - -[peggy0x9ff0b0dA21e77D775eB27A4845eCbF9700bfCF0B] -peggy_denom = peggy0x9ff0b0dA21e77D775eB27A4845eCbF9700bfCF0B -decimals = 18 - -[peggy0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6] -peggy_denom = peggy0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6 -decimals = 18 - -[peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c] -peggy_denom = peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c -decimals = 18 - -[peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] -peggy_denom = peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 -decimals = 18 - -[peggy0xC2C527C0CACF457746Bd31B2a698Fe89de2b6d49] -peggy_denom = peggy0xC2C527C0CACF457746Bd31B2a698Fe89de2b6d49 -decimals = 6 - -[peggy0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C] -peggy_denom = peggy0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C -decimals = 6 - -[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] -peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 -decimals = 10 - -[peggy0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0] -peggy_denom = peggy0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0 -decimals = 6 - -[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] -peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 -decimals = 18 - -[peggy0xf9152067989BDc8783fF586624124C05A529A5D1] -peggy_denom = peggy0xf9152067989BDc8783fF586624124C05A529A5D1 -decimals = 6 - -[pip] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pip -decimals = 6 - -[pli] -peggy_denom = factory/inj1jx7r5vjr7ykdg4weseluq7ta90emw02jyz5mt5/pli -decimals = 6 - -[pop] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pop -decimals = 6 - -[pot] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pot -decimals = 6 - -[pqc] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pqc -decimals = 6 - -[pvs] -peggy_denom = factory/inj1rc34aepsrw03kczyskra9dlk9fzkx9jf48ccjc/pvs -decimals = 6 - -[red] -peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/red -decimals = 6 - -[rereerre] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/rereerre -decimals = 6 - -[rpo] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/rpo -decimals = 6 - -[rrrt] -peggy_denom = factory/inj13rgc9jwc3q7day42a7r2znhyvvvaauvlpuxwvh/rrrt -decimals = 6 - -[s] -peggy_denom = factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-fuckingcomeon -decimals = 6 - -[sUSDE] -peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 -decimals = 18 - -[share1] -peggy_denom = share1 -decimals = 18 - -[share10] -peggy_denom = share10 -decimals = 18 - -[share100] -peggy_denom = share100 -decimals = 18 - -[share101] -peggy_denom = share101 -decimals = 18 - -[share102] -peggy_denom = share102 -decimals = 18 - -[share103] -peggy_denom = share103 -decimals = 18 - -[share104] -peggy_denom = share104 -decimals = 18 - -[share105] -peggy_denom = share105 -decimals = 18 - -[share106] -peggy_denom = share106 -decimals = 18 - -[share107] -peggy_denom = share107 -decimals = 18 - -[share108] -peggy_denom = share108 -decimals = 18 - -[share109] -peggy_denom = share109 -decimals = 18 - -[share11] -peggy_denom = share11 -decimals = 18 - -[share110] -peggy_denom = share110 -decimals = 18 - -[share111] -peggy_denom = share111 -decimals = 18 - -[share112] -peggy_denom = share112 -decimals = 18 - -[share113] -peggy_denom = share113 -decimals = 18 - -[share114] -peggy_denom = share114 -decimals = 18 - -[share115] -peggy_denom = share115 -decimals = 18 - -[share116] -peggy_denom = share116 -decimals = 18 - -[share117] -peggy_denom = share117 -decimals = 18 - -[share118] -peggy_denom = share118 -decimals = 18 - -[share119] -peggy_denom = share119 -decimals = 18 - -[share12] -peggy_denom = share12 -decimals = 18 - -[share120] -peggy_denom = share120 -decimals = 18 - -[share121] -peggy_denom = share121 -decimals = 18 - -[share122] -peggy_denom = share122 -decimals = 18 - -[share123] -peggy_denom = share123 -decimals = 18 - -[share124] -peggy_denom = share124 -decimals = 18 - -[share125] -peggy_denom = share125 -decimals = 18 - -[share126] -peggy_denom = share126 -decimals = 18 - -[share127] -peggy_denom = share127 -decimals = 18 - -[share128] -peggy_denom = share128 -decimals = 18 - -[share129] -peggy_denom = share129 -decimals = 18 - -[share13] -peggy_denom = share13 -decimals = 18 - -[share130] -peggy_denom = share130 -decimals = 18 - -[share131] -peggy_denom = share131 -decimals = 18 - -[share132] -peggy_denom = share132 -decimals = 18 - -[share133] -peggy_denom = share133 -decimals = 18 - -[share134] -peggy_denom = share134 -decimals = 18 - -[share135] -peggy_denom = share135 -decimals = 18 - -[share136] -peggy_denom = share136 -decimals = 18 - -[share137] -peggy_denom = share137 -decimals = 18 - -[share138] -peggy_denom = share138 -decimals = 18 - -[share139] -peggy_denom = share139 -decimals = 18 - -[share14] -peggy_denom = share14 -decimals = 18 - -[share140] -peggy_denom = share140 -decimals = 18 - -[share141] -peggy_denom = share141 -decimals = 18 - -[share142] -peggy_denom = share142 -decimals = 18 - -[share143] -peggy_denom = share143 -decimals = 18 - -[share144] -peggy_denom = share144 -decimals = 18 - -[share145] -peggy_denom = share145 -decimals = 18 - -[share146] -peggy_denom = share146 -decimals = 18 - -[share147] -peggy_denom = share147 -decimals = 18 - -[share148] -peggy_denom = share148 -decimals = 18 - -[share149] -peggy_denom = share149 -decimals = 18 - -[share15] -peggy_denom = share15 -decimals = 18 - -[share150] -peggy_denom = share150 -decimals = 18 - -[share151] -peggy_denom = share151 -decimals = 18 - -[share152] -peggy_denom = share152 -decimals = 18 - -[share153] -peggy_denom = share153 -decimals = 18 - -[share154] -peggy_denom = share154 -decimals = 18 - -[share155] -peggy_denom = share155 -decimals = 18 - -[share156] -peggy_denom = share156 -decimals = 18 - -[share157] -peggy_denom = share157 -decimals = 18 - -[share158] -peggy_denom = share158 -decimals = 18 - -[share159] -peggy_denom = share159 -decimals = 18 - -[share16] -peggy_denom = share16 -decimals = 18 - -[share160] -peggy_denom = share160 -decimals = 18 - -[share17] -peggy_denom = share17 -decimals = 18 - -[share18] -peggy_denom = share18 -decimals = 18 - -[share19] -peggy_denom = share19 -decimals = 18 - -[share2] -peggy_denom = share2 -decimals = 18 - -[share20] -peggy_denom = share20 -decimals = 18 - -[share21] -peggy_denom = share21 -decimals = 18 - -[share22] -peggy_denom = share22 -decimals = 18 - -[share23] -peggy_denom = share23 -decimals = 18 - -[share24] -peggy_denom = share24 -decimals = 18 - -[share25] -peggy_denom = share25 -decimals = 18 - -[share27] -peggy_denom = share27 -decimals = 18 - -[share28] -peggy_denom = share28 -decimals = 18 - -[share29] -peggy_denom = share29 -decimals = 18 - -[share3] -peggy_denom = share3 -decimals = 18 - -[share30] -peggy_denom = share30 -decimals = 18 - -[share31] -peggy_denom = share31 -decimals = 18 - -[share32] -peggy_denom = share32 -decimals = 18 - -[share33] -peggy_denom = share33 -decimals = 18 - -[share34] -peggy_denom = share34 -decimals = 18 - -[share35] -peggy_denom = share35 -decimals = 18 - -[share36] -peggy_denom = share36 -decimals = 18 - -[share37] -peggy_denom = share37 -decimals = 18 - -[share38] -peggy_denom = share38 -decimals = 18 - -[share39] -peggy_denom = share39 -decimals = 18 - -[share4] -peggy_denom = share4 -decimals = 18 - -[share40] -peggy_denom = share40 -decimals = 18 - -[share41] -peggy_denom = share41 -decimals = 18 - -[share42] -peggy_denom = share42 -decimals = 18 - -[share43] -peggy_denom = share43 -decimals = 18 - -[share44] -peggy_denom = share44 -decimals = 18 - -[share45] -peggy_denom = share45 -decimals = 18 - -[share46] -peggy_denom = share46 -decimals = 18 - -[share47] -peggy_denom = share47 -decimals = 18 - -[share48] -peggy_denom = share48 -decimals = 18 - -[share49] -peggy_denom = share49 -decimals = 18 - -[share5] -peggy_denom = share5 -decimals = 18 - -[share50] -peggy_denom = share50 -decimals = 18 - -[share51] -peggy_denom = share51 -decimals = 18 - -[share52] -peggy_denom = share52 -decimals = 18 - -[share53] -peggy_denom = share53 -decimals = 18 - -[share54] -peggy_denom = share54 -decimals = 18 - -[share55] -peggy_denom = share55 -decimals = 18 - -[share56] -peggy_denom = share56 -decimals = 18 - -[share57] -peggy_denom = share57 -decimals = 18 - -[share58] -peggy_denom = share58 -decimals = 18 - -[share59] -peggy_denom = share59 -decimals = 18 - -[share6] -peggy_denom = share6 -decimals = 18 - -[share60] -peggy_denom = share60 -decimals = 18 - -[share61] -peggy_denom = share61 -decimals = 18 - -[share62] -peggy_denom = share62 -decimals = 18 - -[share63] -peggy_denom = share63 -decimals = 18 - -[share64] -peggy_denom = share64 -decimals = 18 - -[share65] -peggy_denom = share65 -decimals = 18 - -[share66] -peggy_denom = share66 -decimals = 18 - -[share67] -peggy_denom = share67 -decimals = 18 - -[share68] -peggy_denom = share68 -decimals = 18 - -[share69] -peggy_denom = share69 -decimals = 18 - -[share7] -peggy_denom = share7 -decimals = 18 - -[share70] -peggy_denom = share70 -decimals = 18 - -[share71] -peggy_denom = share71 -decimals = 18 - -[share72] -peggy_denom = share72 -decimals = 18 - -[share73] -peggy_denom = share73 -decimals = 18 - -[share74] -peggy_denom = share74 -decimals = 18 - -[share75] -peggy_denom = share75 -decimals = 18 - -[share76] -peggy_denom = share76 -decimals = 18 - -[share77] -peggy_denom = share77 -decimals = 18 - -[share78] -peggy_denom = share78 -decimals = 18 - -[share79] -peggy_denom = share79 -decimals = 18 - -[share8] -peggy_denom = share8 -decimals = 18 - -[share80] -peggy_denom = share80 -decimals = 18 - -[share81] -peggy_denom = share81 -decimals = 18 - -[share82] -peggy_denom = share82 -decimals = 18 - -[share83] -peggy_denom = share83 -decimals = 18 - -[share84] -peggy_denom = share84 -decimals = 18 - -[share85] -peggy_denom = share85 -decimals = 18 - -[share86] -peggy_denom = share86 -decimals = 18 - -[share87] -peggy_denom = share87 -decimals = 18 - -[share88] -peggy_denom = share88 -decimals = 18 - -[share89] -peggy_denom = share89 -decimals = 18 - -[share9] -peggy_denom = share9 -decimals = 18 - -[share90] -peggy_denom = share90 -decimals = 18 - -[share91] -peggy_denom = share91 -decimals = 18 - -[share92] -peggy_denom = share92 -decimals = 18 - -[share93] -peggy_denom = share93 -decimals = 18 - -[share94] -peggy_denom = share94 -decimals = 18 - -[share95] -peggy_denom = share95 -decimals = 18 - -[share96] -peggy_denom = share96 -decimals = 18 - -[share97] -peggy_denom = share97 -decimals = 18 - -[share98] -peggy_denom = share98 -decimals = 18 - -[share99] -peggy_denom = share99 -decimals = 18 - -[shroom1] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom1 -decimals = 18 - -[shroom2] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom2 -decimals = 18 - -[sis] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/sis -decimals = 6 - -[sms] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/sms -decimals = 6 - -[snake] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/snake -decimals = 18 - -[spore] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore -decimals = 18 - -[ssINJ] -peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/ssainj -decimals = 0 - -[sssyn] -peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/sssyn -decimals = 0 - -[stETH] -peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 -decimals = 18 - -[syl] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/syl -decimals = 6 - -[symbol] -peggy_denom = factory/inj1cdugmt5t0mgfsmfc99eyhe4fzps0937ae0jgqh/subdenom -decimals = 0 - -[symbol1] -peggy_denom = factory/inj14wj620xr3jgdc3p8yw0ravkmcyuac809xzmlys/symbol1 -decimals = 9 - -[symbol2] -peggy_denom = factory/inj1huarspl3twhrq8gdgakhlnw2kq7lv8mrhc5k3e/symbol2 -decimals = 9 - -[tclub] -peggy_denom = factory/inj10knx7vr764l30lwckhsk6ahwzg52akrrngccfh/tclub -decimals = 6 - -[test] -peggy_denom = factory/inj106ul9gd8vf0rdhs7gvul4e5eqju8uyr62twp6v/test -decimals = 6 - -[test123] -peggy_denom = factory/inj1kle8tjn2z2rq4vy6y2getsva6vd3n3j7uh2tds/test123 -decimals = 6 - -[test2] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test2 -decimals = 6 - -[test213] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test213 -decimals = 6 - -[test2134] -peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test2134 -decimals = 6 - -[test3] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test222 -decimals = 0 - -[test5] -peggy_denom = factory/inj1k4wfy3kjmhczjzttwatrpapdgpvaqxchr7gk7a/test7555 -decimals = 0 - -[testcoin21] -peggy_denom = factory/inj1rgetw4w58wy9p74ckx6lph5p8qg20md8u9z9eq/testcoin21 -decimals = 6 - -[testdokwon] -peggy_denom = factory/inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0/testdokwon -decimals = 6 - -[teste] -peggy_denom = factory/inj1fcj6mmsj44wm04ff77kuncqx6vg4cl9qsgugkg/teste -decimals = 6 - -[teste3] -peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/teste3 -decimals = 8 - -[testestse] -peggy_denom = factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/TooTOO -decimals = 6 - -[testff] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testff -decimals = 6 - -[testt] -peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/testt -decimals = 6 - -[testtoken] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtoken -decimals = 6 - -[testtt] -peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/testtt -decimals = 6 - -[testttt] -peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/testttt -decimals = 6 - -[testtttt] -peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtttt -decimals = 6 - -[testy] -peggy_denom = factory/inj1d86g3stvh4jhypce4wfdl6gwa0zr9emq4445c5/test -decimals = 6 - -[tet] -peggy_denom = factory/inj1e5yundzcqr77d8nkswgxn9qyrhmr4hdk6qq9pl/tet -decimals = 6 - -[toby] -peggy_denom = factory/inj1temu696g738vldkgnn7fqmgvkq2l36qsng5ea7/toby -decimals = 6 - -[token-symbol] -peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/token-symbol -decimals = 6 - -[tol] -peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/tol -decimals = 6 - -[tst] -peggy_denom = factory/inj1s2n5rq58sp9cak8808q0c0qtdpu5xhfgeu2y97/inj-icon -decimals = 6 - -[tst1] -peggy_denom = factory/inj1wt8aa8ct7eap805lsz9jh8spezf6mkxe0ejp79/tst1 -decimals = 6 - -[unknown] -peggy_denom = unknown -decimals = 0 - -[usssyn] -peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/usssyn -decimals = 0 - -[uyO] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uyO -decimals = 0 - -[vui] -peggy_denom = factory/inj103u7nu8pfhrudhl8ydylxlcsuwtw228gnt35x7/vui -decimals = 9 - -[wBTC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc -decimals = 8 - -[wETH] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth -decimals = 8 - -[wUSDM] -peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 -decimals = 18 - -[xband] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-0 -decimals = 6 - -[yolo] -peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/yolo -decimals = 6 diff --git a/pyinjective/orderhash.py b/pyinjective/orderhash.py index dd6a43c6..a90147bb 100644 --- a/pyinjective/orderhash.py +++ b/pyinjective/orderhash.py @@ -5,6 +5,8 @@ from eth_account.messages import _hash_eip191_message as hash_eip191_message from hexbytes import HexBytes +from pyinjective.core.token import Token + class OrderInfo(EIP712Type): SubaccountId: "string" # noqa: F821 @@ -94,9 +96,9 @@ def compute_order_hashes(self, spot_orders, derivative_orders, subaccount_index) return order_hashes -def param_to_backend_go(param) -> int: - go_param = Decimal(param) / pow(10, 18) - return format(go_param, ".18f") +def param_to_backend_go(param: str) -> str: + go_param = Token.convert_value_from_chain_format(value=Decimal(param)) + return f"{go_param.normalize():.18f}" def parse_order_type(order): diff --git a/pyinjective/utils/denom.py b/pyinjective/utils/denom.py index b53fd4db..3c083fce 100644 --- a/pyinjective/utils/denom.py +++ b/pyinjective/utils/denom.py @@ -1,6 +1,3 @@ -from pyinjective.constant import devnet_config, mainnet_config, testnet_config - - class Denom: def __init__( self, @@ -17,33 +14,3 @@ def __init__( self.min_price_tick_size = min_price_tick_size self.min_quantity_tick_size = min_quantity_tick_size self.min_notional = min_notional - - @classmethod - def load_market(cls, network, market_id): - if network == "devnet": - config = devnet_config - elif network == "testnet": - config = testnet_config - else: - config = mainnet_config - - return cls( - description=config[market_id]["description"], - base=int(config[market_id]["base"]), - quote=int(config[market_id]["quote"]), - min_price_tick_size=float(config[market_id]["min_price_tick_size"]), - min_quantity_tick_size=float(config[market_id]["min_quantity_tick_size"]), - min_notional=float(config[market_id]["min_notional"]), - ) - - @classmethod - def load_peggy_denom(cls, network, symbol): - if network == "devnet": - config = devnet_config - elif network == "local": - config = devnet_config - elif network == "testnet": - config = testnet_config - else: - config = mainnet_config - return config[symbol]["peggy_denom"], int(config[symbol]["decimals"]) diff --git a/pyinjective/utils/fetch_metadata.py b/pyinjective/utils/fetch_metadata.py deleted file mode 100644 index 59efb99d..00000000 --- a/pyinjective/utils/fetch_metadata.py +++ /dev/null @@ -1,101 +0,0 @@ -import asyncio -from decimal import Decimal - -from pyinjective.async_client import AsyncClient -from pyinjective.core.network import Network - -metadata_template = """[{}] -description = '{} {} {}' -base = {} -quote = {} -min_price_tick_size = {} -min_display_price_tick_size = {} -min_quantity_tick_size = {} -min_display_quantity_tick_size = {} -min_notional = {} - -""" - -symbol_template = """[{}] -peggy_denom = {} -decimals = {} - -""" - -testnet_denom_output = "" -mainnet_denom_output = "" - - -async def fetch_denom(network) -> str: - denom_output = "" - - # fetch meta data for spot markets - client = AsyncClient(network) - spot_markets = await client.all_spot_markets() - for market in spot_markets.values(): - min_display_price_tick_size = market.min_price_tick_size / Decimal( - f"1e{market.quote_token.decimals - market.base_token.decimals}" - ) - min_display_quantity_tick_size = market.min_quantity_tick_size / Decimal(f"1e{market.base_token.decimals}") - config = metadata_template.format( - market.id, - network.string().capitalize(), - "Spot", - market.ticker, - market.base_token.decimals, - market.quote_token.decimals, - f"{market.min_price_tick_size.normalize():f}", - f"{min_display_price_tick_size.normalize():f}", - f"{market.min_quantity_tick_size.normalize():f}", - f"{min_display_quantity_tick_size.normalize():f}", - f"{market.min_notional.normalize():f}", - ) - denom_output += config - - # fetch meta data for derivative markets - client = AsyncClient(network) - derivative_markets = await client.all_derivative_markets() - for market in derivative_markets.values(): - min_display_price_tick_size = market.min_price_tick_size / Decimal(f"1e{market.quote_token.decimals}") - config = metadata_template.format( - market.id, - network.string().capitalize(), - "Derivative", - market.ticker, - 0, - market.quote_token.decimals, - f"{market.min_price_tick_size.normalize():f}", - f"{min_display_price_tick_size.normalize():f}", - f"{market.min_quantity_tick_size.normalize():f}", - f"{market.min_quantity_tick_size.normalize():f}", - f"{market.min_notional.normalize():f}", - ) - denom_output += config - - tokens = await client.all_tokens() - for token_symbol, token in sorted(tokens.items(), key=lambda dict_item: dict_item[0]): - symbol = symbol_template.format(token_symbol, token.denom, token.decimals) - denom_output += symbol - - return denom_output - - -async def main() -> None: - devnet = Network.devnet() - data = await fetch_denom(devnet) - with open("../denoms_devnet.ini", "w") as text_file: - text_file.write(data) - - testnet = Network.testnet() - data = await fetch_denom(testnet) - with open("../denoms_testnet.ini", "w") as text_file: - text_file.write(data) - - mainnet = Network.mainnet() - data = await fetch_denom(mainnet) - with open("../denoms_mainnet.ini", "w") as text_file: - text_file.write(data) - - -if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) diff --git a/pyinjective/utils/metadata_validation.py b/pyinjective/utils/metadata_validation.py deleted file mode 100644 index 772d84fb..00000000 --- a/pyinjective/utils/metadata_validation.py +++ /dev/null @@ -1,158 +0,0 @@ -import asyncio -from decimal import Decimal -from typing import Any, List, Tuple - -import pyinjective.constant as constant -import pyinjective.utils.denom -from pyinjective.async_client import AsyncClient -from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket -from pyinjective.core.network import Network - - -def find_metadata_inconsistencies(network: Network) -> Tuple[List[Any]]: - client = AsyncClient(network) - ini_config = constant.CONFIGS[network.string()] - - spot_markets = asyncio.get_event_loop().run_until_complete(client.all_spot_markets()) - derivative_markets = asyncio.get_event_loop().run_until_complete(client.all_derivative_markets()) - binary_option_markets = asyncio.get_event_loop().run_until_complete(client.all_binary_option_markets()) - all_tokens = asyncio.get_event_loop().run_until_complete(client.all_tokens()) - - markets_not_found = [] - markets_with_diffs = [] - peggy_denoms_not_found = [] - peggy_denoms_with_diffs = [] - - for config_key in ini_config: - if config_key.startswith("0x"): - denom = pyinjective.utils.denom.Denom.load_market(network=network.string(), market_id=config_key) - if config_key in spot_markets: - market: SpotMarket = spot_markets[config_key] - if ( - market.base_token.decimals != denom.base - or market.quote_token.decimals != denom.quote - or market.min_price_tick_size != Decimal(str(denom.min_price_tick_size)) - or market.min_quantity_tick_size != Decimal(str(denom.min_quantity_tick_size)) - or market.min_notional != Decimal(str(denom.min_notional)) - ): - markets_with_diffs.append( - [ - { - "denom-market": config_key, - "base_decimals": denom.base, - "quote_decimals": denom.quote, - "min_quantity_tick_size": denom.min_quantity_tick_size, - "min_price_tick_size": denom.min_price_tick_size, - "min_notional": denom.min_notional, - }, - { - "newer-market": market.id, - "base_decimals": market.base_token.decimals, - "quote_decimals": market.quote_token.decimals, - "min_quantity_tick_size": float(market.min_quantity_tick_size), - "min_price_tick_size": float(market.min_price_tick_size), - "min_notional": float(market.min_notional), - "ticker": market.ticker, - }, - ] - ) - elif config_key in derivative_markets: - market: DerivativeMarket = derivative_markets[config_key] - if ( - market.quote_token.decimals != denom.quote - or market.min_price_tick_size != Decimal(str(denom.min_price_tick_size)) - or market.min_quantity_tick_size != Decimal(str(denom.min_quantity_tick_size)) - or market.min_notional != Decimal(str(denom.min_notional)) - ): - markets_with_diffs.append( - [ - { - "denom-market": config_key, - "quote_decimals": denom.quote, - "min_quantity_tick_size": denom.min_quantity_tick_size, - "min_price_tick_size": denom.min_price_tick_size, - "min_notional": denom.min_notional, - }, - { - "newer-market": market.id, - "quote_decimals": market.quote_token.decimals, - "min_quantity_tick_size": float(market.min_quantity_tick_size), - "min_price_tick_size": float(market.min_price_tick_size), - "min_notional": float(market.min_notional), - "ticker": market.ticker, - }, - ] - ) - elif config_key in binary_option_markets: - market: BinaryOptionMarket = binary_option_markets[config_key] - if ( - market.quote_token.decimals != denom.quote - or market.min_price_tick_size != Decimal(str(denom.min_price_tick_size)) - or market.min_quantity_tick_size != Decimal(str(denom.min_quantity_tick_size)) - or market.min_notional != Decimal(str(denom.min_notional)) - ): - markets_with_diffs.append( - [ - { - "denom-market": config_key, - "quote_decimals": denom.quote, - "min_quantity_tick_size": denom.min_quantity_tick_size, - "min_price_tick_size": denom.min_price_tick_size, - "min_notional": denom.min_notional, - }, - { - "newer-market": market.id, - "quote_decimals": market.quote_token.decimals, - "min_quantity_tick_size": float(market.min_quantity_tick_size), - "min_price_tick_size": float(market.min_price_tick_size), - "min_notional": float(market.min_notional), - "ticker": market.ticker, - }, - ] - ) - else: - markets_not_found.append({"denom-market": config_key, "description": denom.description}) - - elif config_key == "DEFAULT": - continue - else: - # the configuration is a token - peggy_denom, decimals = pyinjective.utils.denom.Denom.load_peggy_denom( - network=network.string(), symbol=config_key - ) - if config_key in all_tokens: - token = all_tokens[config_key] - if token.denom != peggy_denom or token.decimals != decimals: - peggy_denoms_with_diffs.append( - [ - {"denom_token": config_key, "peggy_denom": peggy_denom, "decimals": decimals}, - {"newer_token": token.symbol, "peggy_denom": token.denom, "decimals": token.decimals}, - ] - ) - else: - peggy_denoms_not_found.append( - {"denom_token": config_key, "peggy_denom": peggy_denom, "decimals": decimals} - ) - - return markets_with_diffs, markets_not_found, peggy_denoms_with_diffs, peggy_denoms_not_found - - -def print_metadata_mismatches(network: Network): - ( - markets_with_diffs, - markets_not_found, - peggy_denoms_with_diffs, - peggy_denoms_not_found, - ) = find_metadata_inconsistencies(network=network) - - for diff_pair in markets_with_diffs: - print(f"{diff_pair[0]}\n{diff_pair[1]}") - print("\n\n") - for missing_market in markets_not_found: - print(f"{missing_market}") - print("\n\n") - for diff_token in peggy_denoms_with_diffs: - print(f"{diff_token[0]}\n{diff_token[1]}") - print("\n\n") - for missing_peggy in peggy_denoms_not_found: - print(f"{missing_peggy}") diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index c3cff5ef..72b10ab4 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -1,5 +1,7 @@ from decimal import Decimal +import pytest + from pyinjective.composer import Composer from pyinjective.core.gas_limit_estimator import ( DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT, @@ -15,9 +17,15 @@ GasLimitEstimator, ) from pyinjective.core.market import BinaryOptionMarket +from pyinjective.core.network import Network 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 @@ -71,11 +79,26 @@ def test_estimation_for_governance_message(self): class TestGasLimitEstimatorForV1ExchangeMessages: - def test_estimation_for_batch_create_spot_limit_orders(self): - spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + @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_estimation_for_batch_create_spot_limit_orders(self, basic_composer): + spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.spot_order( + basic_composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -83,7 +106,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.spot_order( + basic_composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -92,7 +115,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): order_type="BUY", ), ] - message = composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT @@ -100,27 +123,26 @@ def test_estimation_for_batch_create_spot_limit_orders(self): 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_without_mask( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data_without_mask( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data_without_mask( + 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 @@ -128,11 +150,10 @@ def test_estimation_for_batch_cancel_spot_orders(self): 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") + def test_estimation_for_batch_create_derivative_limit_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - composer.derivative_order( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -141,7 +162,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.derivative_order( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -151,7 +172,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): order_type="SELL", ), ] - message = composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT @@ -159,27 +180,26 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): 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_without_mask( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data_without_mask( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data_without_mask( + 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 @@ -187,11 +207,10 @@ def test_estimation_for_batch_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_create_spot_orders(self): - market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.spot_order( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -199,7 +218,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.spot_order( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -208,7 +227,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): order_type="BUY", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, @@ -222,11 +241,10 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - composer.derivative_order( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -235,7 +253,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.derivative_order( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -245,7 +263,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): order_type="SELL", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=orders, spot_orders_to_create=[], @@ -259,9 +277,8 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): 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", @@ -280,9 +297,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", @@ -291,7 +308,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", @@ -301,7 +318,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=[], @@ -316,27 +333,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_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data_without_mask( + 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=[], @@ -350,27 +366,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_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data_without_mask( + 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=[], @@ -384,27 +399,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_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data_without_mask( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data_without_mask( + 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=[], @@ -479,11 +493,10 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar 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") + def test_estimation_for_exec_message(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.spot_order( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -492,14 +505,14 @@ def test_estimation_for_exec_message(self): order_type="BUY", ), ] - inner_message = composer.msg_batch_update_orders( + inner_message = basic_composer.msg_batch_update_orders( 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]) + message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) estimator = GasLimitEstimator.for_message(message=message) @@ -512,11 +525,11 @@ def test_estimation_for_exec_message(self): == estimator.gas_limit() ) - def test_estimation_for_generic_exchange_message(self): - composer = Composer(network="testnet") - message = composer.msg_create_spot_limit_order( + 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="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), diff --git a/tests/rpc_fixtures/markets_fixtures.py b/tests/rpc_fixtures/markets_fixtures.py index 2b14bb63..b4e35dfd 100644 --- a/tests/rpc_fixtures/markets_fixtures.py +++ b/tests/rpc_fixtures/markets_fixtures.py @@ -108,23 +108,25 @@ def usdt_perp_token_meta(): @pytest.fixture -def ape_usdt_spot_market_meta(ape_token_meta, usdt_token_meta_second_denom): - from pyinjective.proto.exchange import injective_spot_exchange_rpc_pb2 as spot_exchange_pb +def ape_usdt_spot_market_meta(): + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = spot_exchange_pb.SpotMarketInfo( - market_id="0x8b67e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e000", - market_status="active", + market = market_pb.SpotMarket( ticker="APE/USDT", base_denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", - base_token_meta=ape_token_meta, - quote_denom="factory/peggy0x87aB3B4C8661e07D6372361211B96ed4Dc300000", - quote_token_meta=usdt_token_meta_second_denom, + quote_denom="factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt", maker_fee_rate="-0.0001", taker_fee_rate="0.001", - service_provider_fee="0.4", - min_price_tick_size="0.000000000000001", - min_quantity_tick_size="1000000000000000", - min_notional="0.000000000001", + relayer_fee_share_rate="0.4", + market_id="0x8b67e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e000", + status=1, + min_price_tick_size="0.01", + min_quantity_tick_size="1", + min_notional="5", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) return market @@ -132,22 +134,24 @@ def ape_usdt_spot_market_meta(ape_token_meta, usdt_token_meta_second_denom): @pytest.fixture def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): - from pyinjective.proto.exchange import injective_spot_exchange_rpc_pb2 as spot_exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = spot_exchange_pb.SpotMarketInfo( - market_id="0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", - market_status="active", + market = market_pb.SpotMarket( ticker="INJ/USDT", base_denom="inj", - base_token_meta=inj_token_meta, quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", - quote_token_meta=usdt_token_meta, maker_fee_rate="-0.0001", taker_fee_rate="0.001", - service_provider_fee="0.4", - min_price_tick_size="0.000000000000001", - min_quantity_tick_size="1000000000000000", - min_notional="0.000000000001", + relayer_fee_share_rate="0.4", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + status=1, + min_price_tick_size="0.01", + min_quantity_tick_size="1", + min_notional="5", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + base_decimals=18, + quote_decimals=6, ) return market @@ -155,67 +159,90 @@ 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.exchange import injective_derivative_exchange_rpc_pb2 as derivative_exchange_pb - - perpetual_market_info = derivative_exchange_pb.PerpetualMarketInfo( - hourly_funding_rate_cap="0.0000625", - hourly_interest_rate="0.00000416666", - next_funding_timestamp=1684764000, - funding_interval=3600, - ) - perpetual_market_funding = derivative_exchange_pb.PerpetualMarketFunding( - cumulative_funding="6880500093.266083891331674194", - cumulative_price="-0.952642601240470199", - last_timestamp=1684763442, + from pyinjective.proto.injective.exchange.v2 import ( + exchange_pb2 as exchange_pb, + market_pb2 as market_pb, + query_pb2 as exchange_query_pb, ) - market = derivative_exchange_pb.DerivativeMarketInfo( - market_id="0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", - market_status="active", + market = market_pb.DerivativeMarket( ticker="BTC/USDT PERP", oracle_base="BTC", oracle_quote="USDT", - oracle_type="bandibc", + oracle_type=10, oracle_scale_factor=6, + quote_denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + market_id="0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", initial_margin_ratio="0.095", maintenance_margin_ratio="0.025", - quote_denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", - quote_token_meta=usdt_perp_token_meta, maker_fee_rate="-0.0001", taker_fee_rate="0.001", - service_provider_fee="0.4", - is_perpetual=True, - min_price_tick_size="1000000", - min_quantity_tick_size="0.0001", - perpetual_market_info=perpetual_market_info, - perpetual_market_funding=perpetual_market_funding, - min_notional="0.000001", + relayer_fee_share_rate="0.4", + isPerpetual=True, + status=1, + min_price_tick_size="0.01", + min_quantity_tick_size="1", + min_notional="5", + admin="inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr", + admin_permissions=1, + quote_decimals=6, + ) + 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 = 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, ) - return market + return full_market @pytest.fixture def first_match_bet_market_meta(inj_usdt_spot_market_meta): - from pyinjective.proto.exchange import injective_derivative_exchange_rpc_pb2 as derivative_exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = derivative_exchange_pb.BinaryOptionsMarketInfo( - market_id="0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957", - market_status="active", + market = market_pb.BinaryOptionsMarket( ticker="5fdbe0b1-1707800399-WAS", oracle_symbol="Frontrunner", oracle_provider="Frontrunner", - oracle_type="provider", + oracle_type=11, oracle_scale_factor=6, - expiration_timestamp=1707800399, - settlement_timestamp=1707843599, + expiration_timestamp=1708099200, + settlement_timestamp=1707099200, + admin="inj1zlh5sqevkfphtwnu9cul8p89vseme2eqt0snn9", quote_denom=inj_usdt_spot_market_meta.quote_denom, + market_id="0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957", maker_fee_rate="0", taker_fee_rate="0", - service_provider_fee="0.4", - min_price_tick_size="10000", + relayer_fee_share_rate="0.4", + status=1, + min_price_tick_size="0.01", min_quantity_tick_size="1", - min_notional="0", + 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 b67ed799..46e30d4b 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -6,13 +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.exchange import ( - injective_derivative_exchange_rpc_pb2 as derivative_exchange_pb, - injective_spot_exchange_rpc_pb2 as spot_exchange_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.indexer.configurable_derivative_query_servicer import ConfigurableDerivativeQueryServicer -from tests.client.indexer.configurable_spot_query_servicer import ConfigurableSpotQueryServicer +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, @@ -33,13 +29,8 @@ def bank_servicer(): @pytest.fixture -def spot_servicer(): - return ConfigurableSpotQueryServicer() - - -@pytest.fixture -def derivative_servicer(): - return ConfigurableDerivativeQueryServicer() +def exchange_servicer(): + return ConfigurableExchangeV2QueryServicer() class TestAsyncClient: @@ -82,8 +73,7 @@ async def test_get_account_logs_exception(self, caplog): @pytest.mark.asyncio async def test_initialize_tokens_and_markets( self, - spot_servicer, - derivative_servicer, + exchange_servicer, inj_usdt_spot_market_meta, ape_usdt_spot_market_meta, btc_usdt_perp_market_meta, @@ -91,24 +81,88 @@ async def test_initialize_tokens_and_markets( aioresponses, ): test_network = Network.local() - aioresponses.get(test_network.official_tokens_list_url, payload=[]) + tokens_list = [ + { + "address": "0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + "isNative": False, + "tokenVerification": "verified", + "decimals": 6, + "symbol": "APE", + "name": "Ape", + "logo": "https://imagedelivery.net/lPzngbR8EltRfBOi_WYaXw/6f015260-c589-499f-b692-a57964af9900/public", + "coinGeckoId": "", + "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", + "tokenType": "erc20", + "externalLogo": "unknown.png", + }, + { + "address": "0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + "isNative": False, + "tokenVerification": "verified", + "decimals": 6, + "symbol": "USDT", + "name": "Tether", + "logo": "https://imagedelivery.net/lPzngbR8EltRfBOi_WYaXw/a0bd252b-1005-47ef-d209-7c1c4a3cbf00/public", + "coinGeckoId": "tether", + "denom": "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + "tokenType": "erc20", + "externalLogo": "usdt.png", + }, + { + "decimals": 6, + "symbol": "USDT", + "name": "Other USDT", + "logo": "https://imagedelivery.net/lPzngbR8EltRfBOi_WYaXw/6f015260-c589-499f-b692-a57964af9900/public", + "coinGeckoId": "", + "address": "factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt", + "denom": "factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt", + "externalLogo": "unknown.png", + "tokenType": "tokenFactory", + "tokenVerification": "internal", + }, + { + "address": "inj", + "isNative": True, + "tokenVerification": "verified", + "decimals": 18, + "symbol": "INJ", + "name": "Injective", + "logo": "https://imagedelivery.net/lPzngbR8EltRfBOi_WYaXw/18984c0b-3e61-431d-241d-dfbb60b57600/public", + "coinGeckoId": "injective-protocol", + "denom": "inj", + "tokenType": "native", + "externalLogo": "injective-v3.png", + }, + { + "decimals": 6, + "symbol": "USDTPERP", + "name": "USDT PERP", + "logo": "https://static.alchemyapi.io/images/assets/825.png", + "coinGeckoId": "", + "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "denom": "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + "externalLogo": "unknown.png", + "tokenType": "tokenFactory", + "tokenVerification": "internal", + }, + ] + aioresponses.get(test_network.official_tokens_list_url, payload=tokens_list) - spot_servicer.markets_responses.append( - spot_exchange_pb.MarketsResponse(markets=[inj_usdt_spot_market_meta, ape_usdt_spot_market_meta]) + exchange_servicer.spot_markets_responses.append( + exchange_query_pb.QuerySpotMarketsResponse(markets=[inj_usdt_spot_market_meta, ape_usdt_spot_market_meta]) ) - derivative_servicer.markets_responses.append( - derivative_exchange_pb.MarketsResponse(markets=[btc_usdt_perp_market_meta]) + exchange_servicer.derivative_markets_responses.append( + exchange_query_pb.QueryDerivativeMarketsResponse(markets=[btc_usdt_perp_market_meta]) ) - derivative_servicer.binary_options_markets_responses.append( - derivative_exchange_pb.BinaryOptionsMarketsResponse(markets=[first_match_bet_market_meta]) + exchange_servicer.binary_options_markets_responses.append( + exchange_query_pb.QueryBinaryMarketsResponse(markets=[first_match_bet_market_meta]) ) client = AsyncClient( network=test_network, ) - client.exchange_spot_api._stub = spot_servicer - client.exchange_derivative_api._stub = derivative_servicer + client.chain_exchange_v2_api._stub = exchange_servicer await client._initialize_tokens_and_markets() @@ -116,8 +170,8 @@ async def test_initialize_tokens_and_markets( assert 5 == len(all_tokens) inj_symbol, usdt_symbol = inj_usdt_spot_market_meta.ticker.split("/") ape_symbol, _ = ape_usdt_spot_market_meta.ticker.split("/") - alternative_usdt_name = ape_usdt_spot_market_meta.quote_token_meta.name - usdt_perp_symbol = btc_usdt_perp_market_meta.quote_token_meta.symbol + alternative_usdt_name = "Other USDT" + usdt_perp_symbol = "USDTPERP" assert inj_symbol in all_tokens assert usdt_symbol in all_tokens assert alternative_usdt_name in all_tokens @@ -131,7 +185,9 @@ async def test_initialize_tokens_and_markets( all_derivative_markets = await client.all_derivative_markets() assert 1 == len(all_derivative_markets) - assert any((btc_usdt_perp_market_meta.market_id == market.id for market in all_derivative_markets.values())) + assert any( + (btc_usdt_perp_market_meta.market.market_id == market.id for market in all_derivative_markets.values()) + ) all_binary_option_markets = await client.all_binary_option_markets() assert 1 == len(all_binary_option_markets) @@ -142,8 +198,7 @@ async def test_initialize_tokens_and_markets( @pytest.mark.asyncio async def test_tokens_and_markets_initialization_read_tokens_from_official_list( self, - spot_servicer, - derivative_servicer, + exchange_servicer, inj_usdt_spot_market_meta, ape_usdt_spot_market_meta, btc_usdt_perp_market_meta, @@ -187,18 +242,19 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( ] aioresponses.get(test_network.official_tokens_list_url, payload=tokens_list) - spot_servicer.markets_responses.append(spot_exchange_pb.MarketsResponse(markets=[])) - derivative_servicer.markets_responses.append(derivative_exchange_pb.MarketsResponse(markets=[])) - derivative_servicer.binary_options_markets_responses.append( - derivative_exchange_pb.BinaryOptionsMarketsResponse(markets=[]) + exchange_servicer.spot_markets_responses.append(exchange_query_pb.QuerySpotMarketsResponse(markets=[])) + exchange_servicer.derivative_markets_responses.append( + exchange_query_pb.QueryDerivativeMarketsResponse(markets=[]) + ) + exchange_servicer.binary_options_markets_responses.append( + exchange_query_pb.QueryBinaryMarketsResponse(markets=[]) ) client = AsyncClient( network=test_network, ) - client.exchange_spot_api._stub = spot_servicer - client.exchange_derivative_api._stub = derivative_servicer + client.chain_exchange_v2_api._stub = exchange_servicer await client._initialize_tokens_and_markets() @@ -210,8 +266,7 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( async def test_initialize_tokens_from_chain_denoms( self, bank_servicer, - spot_servicer, - derivative_servicer, + exchange_servicer, smart_denom_metadata, aioresponses, ): @@ -229,19 +284,20 @@ async def test_initialize_tokens_from_chain_denoms( ) ) - spot_servicer.markets_responses.append(spot_exchange_pb.MarketsResponse(markets=[])) - derivative_servicer.markets_responses.append(derivative_exchange_pb.MarketsResponse(markets=[])) - derivative_servicer.binary_options_markets_responses.append( - derivative_exchange_pb.BinaryOptionsMarketsResponse(markets=[]) + exchange_servicer.spot_markets_responses.append(exchange_query_pb.QuerySpotMarketsResponse(markets=[])) + exchange_servicer.derivative_markets_responses.append( + exchange_query_pb.QueryDerivativeMarketsResponse(markets=[]) + ) + exchange_servicer.binary_options_markets_responses.append( + exchange_query_pb.QueryBinaryMarketsResponse(markets=[]) ) client = AsyncClient( network=test_network, ) + client.chain_exchange_v2_api._stub = exchange_servicer client.bank_api._stub = bank_servicer - client.exchange_spot_api._stub = spot_servicer - client.exchange_derivative_api._stub = derivative_servicer await client._initialize_tokens_and_markets() await client.initialize_tokens_from_chain_denoms() diff --git a/tests/test_composer.py b/tests/test_composer.py index d1eaa8f0..85a02d2e 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 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 @@ -36,26 +37,6 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return composer - def test_composer_initialization_from_ini_files(self): - composer = Composer(network=Network.devnet().string()) - - inj_token = composer.tokens["INJ"] - inj_usdt_spot_market = next( - (market for market in composer.spot_markets.values() if market.ticker == "'Devnet Spot INJ/USDT'") - ) - inj_usdt_perp_market = next( - ( - market - for market in composer.derivative_markets.values() - if market.ticker == "'Devnet Derivative INJ/USDT PERP'" - ) - ) - - assert 18 == inj_token.decimals - assert 18 == inj_usdt_spot_market.base_token.decimals - assert 6 == inj_usdt_spot_market.quote_token.decimals - assert 6 == inj_usdt_perp_market.quote_token.decimals - def test_msg_create_denom(self, basic_composer: Composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subdenom = "inj-test" @@ -247,7 +228,7 @@ def test_msg_deposit(self, basic_composer): amount = 100 denom = "inj" - expected_amount = basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))) + expected_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) message = basic_composer.msg_deposit_v2( sender=sender, @@ -287,7 +268,7 @@ def test_msg_withdraw(self, basic_composer): "sender": sender, "subaccountId": subaccount_id, "amount": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))):f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))):f}", "denom": denom, }, } @@ -320,9 +301,9 @@ def test_msg_instant_spot_market_launch(self, basic_composer): quote_decimals=quote_decimals, ) - chain_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_chain_format(value=min_notional) expected_message = { "sender": sender, @@ -421,13 +402,13 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): maintenance_margin_ratio = Decimal("0.03") min_notional = Decimal("2") - expected_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_maker_fee_rate = basic_composer.convert_value_to_chain_format(value=maker_fee_rate) - expected_taker_fee_rate = basic_composer.convert_value_to_chain_format(value=taker_fee_rate) - expected_initial_margin_ratio = basic_composer.convert_value_to_chain_format(value=initial_margin_ratio) - expected_maintenance_margin_ratio = basic_composer.convert_value_to_chain_format(value=maintenance_margin_ratio) - expected_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + expected_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) + expected_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) + expected_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) + expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) message = basic_composer.msg_instant_expiry_futures_market_launch_v2( sender=sender, @@ -583,9 +564,9 @@ def test_msg_create_spot_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = basic_composer.convert_value_to_chain_format(value=price) - expected_quantity = basic_composer.convert_value_to_chain_format(value=quantity) - expected_trigger_price = basic_composer.convert_value_to_chain_format(value=trigger_price) + expected_price = Token.convert_value_to_chain_format(value=price) + expected_quantity = Token.convert_value_to_chain_format(value=quantity) + expected_trigger_price = Token.convert_value_to_chain_format(value=trigger_price) assert "injective.exchange.v2.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name expected_message = { @@ -677,12 +658,12 @@ def test_msg_create_spot_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", + "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, "orderType": order_type, - "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -906,13 +887,13 @@ def test_msg_create_derivative_limit_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", + "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -991,13 +972,13 @@ def test_msg_create_derivative_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", + "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1108,9 +1089,9 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): min_notional=min_notional, ) - chain_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + chain_min_notional = Token.convert_value_to_chain_format(value=min_notional) expected_message = { "sender": sender, @@ -1119,8 +1100,8 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): "oracleProvider": oracle_provider, "oracleType": oracle_type, "oracleScaleFactor": oracle_scale_factor, - "makerFeeRate": f"{basic_composer.convert_value_to_chain_format(value=maker_fee_rate).normalize():f}", - "takerFeeRate": f"{basic_composer.convert_value_to_chain_format(value=taker_fee_rate).normalize():f}", + "makerFeeRate": f"{Token.convert_value_to_chain_format(value=maker_fee_rate).normalize():f}", + "takerFeeRate": f"{Token.convert_value_to_chain_format(value=taker_fee_rate).normalize():f}", "expirationTimestamp": str(expiration_timestamp), "settlementTimestamp": str(settlement_timestamp), "admin": admin, @@ -1160,10 +1141,10 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = basic_composer.convert_value_to_chain_format(value=price) - expected_quantity = basic_composer.convert_value_to_chain_format(value=quantity) - expected_margin = basic_composer.convert_value_to_chain_format(value=margin) - expected_trigger_price = basic_composer.convert_value_to_chain_format(value=trigger_price) + expected_price = Token.convert_value_to_chain_format(value=price) + expected_quantity = Token.convert_value_to_chain_format(value=quantity) + expected_margin = Token.convert_value_to_chain_format(value=margin) + expected_trigger_price = Token.convert_value_to_chain_format(value=trigger_price) expected_message = { "sender": sender, @@ -1219,13 +1200,13 @@ def test_msg_create_binary_options_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{basic_composer.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{basic_composer.convert_value_to_chain_format(value=quantity).normalize():f}", + "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", + "quantity": f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}", "cid": cid, }, - "margin": f"{basic_composer.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_chain_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{basic_composer.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1295,7 +1276,7 @@ def test_msg_subaccount_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", "denom": denom, }, } @@ -1325,7 +1306,7 @@ def test_msg_external_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", "denom": denom, }, } @@ -1397,7 +1378,7 @@ def test_msg_increase_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = basic_composer.convert_value_to_chain_format(value=amount) + expected_amount = Token.convert_value_to_chain_format(value=amount) message = basic_composer.msg_increase_position_margin_v2( sender=sender, @@ -1427,7 +1408,7 @@ def test_msg_decrease_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = basic_composer.convert_value_to_chain_format(value=amount) + expected_amount = Token.convert_value_to_chain_format(value=amount) message = basic_composer.msg_decrease_position_margin_v2( sender=sender, @@ -1474,7 +1455,7 @@ def test_msg_admin_update_binary_options_market(self, basic_composer): expiration_timestamp = 1630000000 settlement_timestamp = 1660000000 - expected_settlement_price = basic_composer.convert_value_to_chain_format(value=settlement_price) + expected_settlement_price = Token.convert_value_to_chain_format(value=settlement_price) message = basic_composer.msg_admin_update_binary_options_market_v2( sender=sender, @@ -1507,9 +1488,9 @@ def test_msg_update_spot_market(self, basic_composer): min_quantity_tick_size = Decimal("10") min_notional = Decimal("5") - expected_min_price_tick_size = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) + expected_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) message = basic_composer.msg_update_spot_market_v2( admin=sender, @@ -1544,11 +1525,11 @@ 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 = basic_composer.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = basic_composer.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_min_notional = basic_composer.convert_value_to_chain_format(value=min_notional) - expected_initial_margin_ratio = basic_composer.convert_value_to_chain_format(value=initial_margin_ratio) - expected_maintenance_margin_ratio = basic_composer.convert_value_to_chain_format(value=maintenance_margin_ratio) + expected_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) + expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) + expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) + expected_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) + expected_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) message = basic_composer.msg_update_derivative_market_v2( admin=sender, @@ -1957,7 +1938,7 @@ def test_msg_create_insurance_fund(self, basic_composer): "oracleType": "Band", "expiry": "-1", "initialDeposit": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -1980,11 +1961,11 @@ def test_msg_send_to_eth_fund(self, basic_composer): "sender": "sender", "ethDest": "eth_dest", "amount": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal(1)).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal(1)).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, "bridgeFee": { - "amount": f"{basic_composer.convert_value_to_chain_format(value=Decimal(2)).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(value=Decimal(2)).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -2006,7 +1987,7 @@ def test_msg_underwrite(self, basic_composer): "sender": "sender", "marketId": "market_id", "deposit": { - "amount": f"{basic_composer.convert_value_to_chain_format(Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -2029,7 +2010,7 @@ def test_msg_send(self, basic_composer): "toAddress": "to_address", "amount": [ { - "amount": f"{basic_composer.convert_value_to_chain_format(Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_chain_format(Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, ], diff --git a/tests/test_orderhash.py b/tests/test_orderhash.py index c2940d8d..d98dfa00 100644 --- a/tests/test_orderhash.py +++ b/tests/test_orderhash.py @@ -24,7 +24,7 @@ def test_spot_order_hash(self, requests_mock): fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - composer.spot_order( + composer.create_v2_spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -32,7 +32,7 @@ def test_spot_order_hash(self, requests_mock): quantity=Decimal("0.01"), order_type="BUY", ), - composer.spot_order( + composer.create_v2_spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -48,5 +48,5 @@ def test_spot_order_hash(self, requests_mock): assert len(order_hashes_response.spot) == 2 assert len(order_hashes_response.derivative) == 0 - assert order_hashes_response.spot[0] == "0x6b1e4d1fb3012735dd5e386175eb4541c024e0d8dbfeb452767b973d70ae0924" - assert order_hashes_response.spot[1] == "0xb36146f913955d989269732d167ec554e6d0d544411d82d7f86aef18350b252b" + assert order_hashes_response.spot[0] == "0x4f70723b33db271e6c56201e42c5911dd97a9f5345c7fcf12eb69c2689f94e78" + assert order_hashes_response.spot[1] == "0x2cc1acacf0e576ea41e9381725f4c78fc5c191f9df4e3e98402c09b8ad2c82e8" From a05a00cc7452fd2de24c948a38a507ad57f42e9f Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 4 Nov 2024 12:26:33 -0300 Subject: [PATCH 06/35] (fix) Renamed two methods to make the intent more clear --- pyinjective/async_client.py | 58 +++++++++++------- pyinjective/composer.py | 108 +++++++++++++++++---------------- pyinjective/core/token.py | 4 +- pyinjective/orderhash.py | 2 +- tests/test_composer.py | 118 +++++++++++++++++++----------------- 5 files changed, 157 insertions(+), 133 deletions(-) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 05e43589..d4be6c96 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -2808,14 +2808,18 @@ async def _initialize_tokens_and_markets(self): ticker=market_info["ticker"], base_token=base_token, quote_token=quote_token, - maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["makerFeeRate"])), - taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["takerFeeRate"])), - service_provider_fee=Token.convert_value_from_chain_format(Decimal(market_info["relayerFeeShareRate"])), - min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market_info["minPriceTickSize"])), - min_quantity_tick_size=Token.convert_value_from_chain_format( + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( Decimal(market_info["minQuantityTickSize"]) ), - min_notional=Token.convert_value_from_chain_format(Decimal(market_info["minNotional"])), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market_info["minNotional"])), ) spot_markets[market.id] = market @@ -2835,17 +2839,25 @@ async def _initialize_tokens_and_markets(self): oracle_quote=market["oracleQuote"], oracle_type=market["oracleType"], oracle_scale_factor=market["oracleScaleFactor"], - initial_margin_ratio=Token.convert_value_from_chain_format(Decimal(market["initialMarginRatio"])), - maintenance_margin_ratio=Token.convert_value_from_chain_format( + initial_margin_ratio=Token.convert_value_from_extended_decimal_format( + Decimal(market["initialMarginRatio"]) + ), + maintenance_margin_ratio=Token.convert_value_from_extended_decimal_format( Decimal(market["maintenanceMarginRatio"]) ), quote_token=quote_token, - maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market["makerFeeRate"])), - taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market["takerFeeRate"])), - service_provider_fee=Token.convert_value_from_chain_format(Decimal(market["relayerFeeShareRate"])), - min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market["minPriceTickSize"])), - min_quantity_tick_size=Token.convert_value_from_chain_format(Decimal(market["minQuantityTickSize"])), - min_notional=Token.convert_value_from_chain_format(Decimal(market["minNotional"])), + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market["minNotional"])), ) derivative_markets[derivative_market.id] = derivative_market @@ -2865,17 +2877,21 @@ async def _initialize_tokens_and_markets(self): expiration_timestamp=market_info["expirationTimestamp"], settlement_timestamp=market_info["settlementTimestamp"], quote_token=quote_token, - maker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["makerFeeRate"])), - taker_fee_rate=Token.convert_value_from_chain_format(Decimal(market_info["takerFeeRate"])), - service_provider_fee=Token.convert_value_from_chain_format(Decimal(market_info["relayerFeeShareRate"])), - min_price_tick_size=Token.convert_value_from_chain_format(Decimal(market_info["minPriceTickSize"])), - min_quantity_tick_size=Token.convert_value_from_chain_format( + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( Decimal(market_info["minQuantityTickSize"]) ), - min_notional=Token.convert_value_from_chain_format(Decimal(market_info["minNotional"])), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market_info["minNotional"])), settlement_price=None if market_info["settlementPrice"] == "" - else Token.convert_value_from_chain_format(Decimal(market_info["settlementPrice"])), + else Token.convert_value_from_extended_decimal_format(Decimal(market_info["settlementPrice"])), ) binary_option_markets[market.id] = market diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 7f8d0bcc..d3c0ad15 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -493,9 +493,9 @@ def create_v2_spot_order( ) -> injective_order_v2_pb.SpotOrder: trigger_price = trigger_price or Decimal(0) chain_order_type = injective_order_v2_pb.OrderType.Value(order_type) - chain_quantity = f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}" - chain_price = f"{Token.convert_value_to_chain_format(value=price).normalize():f}" - chain_trigger_price = f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}" + 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_order_v2_pb.SpotOrder( market_id=market_id, @@ -655,7 +655,7 @@ def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective # region Auction module def MsgBid(self, sender: str, bid_amount: float, round: float): - be_amount = Token.convert_value_to_chain_format(value=Decimal(str(bid_amount))) + be_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bid_amount))) return injective_auction_tx_pb.MsgBid( sender=sender, @@ -718,7 +718,7 @@ def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) ) def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return cosmos_bank_tx_pb.MsgSend( @@ -749,7 +749,7 @@ def msg_deposit( def msg_deposit_v2( self, sender: str, subaccount_id: str, amount: int, denom: str ) -> injective_exchange_tx_v2_pb.MsgDeposit: - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgDeposit( @@ -781,7 +781,7 @@ def msg_withdraw_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgWithdraw: - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgWithdraw( @@ -846,11 +846,13 @@ def msg_instant_spot_market_launch_v2( base_decimals: int, quote_decimals: int, ) -> injective_exchange_tx_v2_pb.MsgInstantSpotMarketLaunch: - chain_min_price_tick_size = f"{Token.convert_value_to_chain_format(value=min_price_tick_size).normalize():f}" + 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_chain_format(value=min_quantity_tick_size).normalize():f}" + f"{Token.convert_value_to_extended_decimal_format(value=min_quantity_tick_size).normalize():f}" ) - chain_min_notional = f"{Token.convert_value_to_chain_format(value=min_notional).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, @@ -938,13 +940,13 @@ def msg_instant_perpetual_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) - chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) - chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) - chain_min_notional = Token.convert_value_to_chain_format(value=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_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, @@ -1041,13 +1043,13 @@ def msg_instant_expiry_futures_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) - chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) - chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) - chain_min_notional = Token.convert_value_to_chain_format(value=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_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, @@ -1650,11 +1652,11 @@ def msg_instant_binary_options_market_launch_v2( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch: - chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) - chain_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) - chain_min_notional = Token.convert_value_to_chain_format(value=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_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, @@ -1893,7 +1895,7 @@ def msg_subaccount_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) amount_coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( @@ -1933,7 +1935,7 @@ def msg_external_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=denom) return injective_exchange_tx_v2_pb.MsgExternalTransfer( @@ -2027,7 +2029,7 @@ def msg_increase_position_margin_v2( market_id: str, amount: Decimal, ) -> injective_exchange_tx_v2_pb.MsgIncreasePositionMargin: - additional_margin = Token.convert_value_to_chain_format(value=amount) + 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, @@ -2093,7 +2095,7 @@ def msg_admin_update_binary_options_market_v2( ) if settlement_price is not None: - chain_settlement_price = Token.convert_value_to_chain_format(value=settlement_price) + chain_settlement_price = Token.convert_value_to_extended_decimal_format(value=settlement_price) message.settlement_price = f"{chain_settlement_price.normalize():f}" return message @@ -2130,7 +2132,7 @@ def msg_decrease_position_margin_v2( market_id: str, amount: Decimal, ) -> injective_exchange_tx_v2_pb.MsgDecreasePositionMargin: - additional_margin = Token.convert_value_to_chain_format(value=amount) + additional_margin = Token.convert_value_to_extended_decimal_format(value=amount) return injective_exchange_tx_v2_pb.MsgDecreasePositionMargin( sender=sender, source_subaccount_id=source_subaccount_id, @@ -2183,9 +2185,9 @@ def msg_update_spot_market_v2( 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_chain_format(value=new_min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=new_min_quantity_tick_size) - chain_min_notional = Token.convert_value_to_chain_format(value=new_min_notional) + 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, @@ -2246,11 +2248,13 @@ def msg_update_derivative_market_v2( 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_chain_format(value=new_min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=new_min_quantity_tick_size) - chain_min_notional = Token.convert_value_to_chain_format(value=new_min_notional) - chain_initial_margin_ratio = Token.convert_value_to_chain_format(value=new_initial_margin_ratio) - chain_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=new_maintenance_margin_ratio) + 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, @@ -2321,7 +2325,7 @@ def msg_create_insurance_fund( expiry: int, initial_deposit: int, ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: - chain_initial_deposit = Token.convert_value_to_chain_format(value=Decimal(str(initial_deposit))) + chain_initial_deposit = Token.convert_value_to_extended_decimal_format(value=Decimal(str(initial_deposit))) deposit = self.coin(amount=int(chain_initial_deposit), denom=quote_denom) return injective_insurance_tx_pb.MsgCreateInsuranceFund( @@ -2362,7 +2366,7 @@ def msg_underwrite( quote_denom: str, amount: int, ): - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) coin = self.coin(amount=int(chain_amount), denom=quote_denom) return injective_insurance_tx_pb.MsgUnderwrite( @@ -2378,7 +2382,7 @@ def MsgRequestRedemption( share_denom: str, amount: int, ): - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + 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, @@ -2423,8 +2427,8 @@ def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, br ) def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, bridge_fee: int): - chain_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) - chain_bridge_fee = Token.convert_value_to_chain_format(value=Decimal(str(bridge_fee))) + chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) + chain_bridge_fee = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bridge_fee))) amount_coin = self.coin(amount=int(chain_amount), denom=denom) bridge_fee_coin = self.coin(amount=int(chain_bridge_fee), denom=denom) @@ -2439,7 +2443,7 @@ def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, b # region Staking module def MsgDelegate(self, delegator_address: str, validator_address: str, amount: float): - be_amount = Token.convert_value_to_chain_format(Decimal(str(amount))) + be_amount = Token.convert_value_to_extended_decimal_format(Decimal(str(amount))) return cosmos_staking_tx_pb.MsgDelegate( delegator_address=delegator_address, @@ -3172,10 +3176,10 @@ def _basic_v2_derivative_order( trigger_price: Optional[Decimal] = None, ) -> injective_order_v2_pb.DerivativeOrder: trigger_price = trigger_price or Decimal(0) - chain_quantity = f"{Token.convert_value_to_chain_format(value=quantity).normalize():f}" - chain_price = f"{Token.convert_value_to_chain_format(value=price).normalize():f}" - chain_margin = f"{Token.convert_value_to_chain_format(value=margin).normalize():f}" - chain_trigger_price = f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}" + 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( diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index 8c0f3561..bdeace85 100644 --- a/pyinjective/core/token.py +++ b/pyinjective/core/token.py @@ -15,11 +15,11 @@ class Token: updated: int @staticmethod - def convert_value_to_chain_format(value: Decimal) -> Decimal: + def convert_value_to_extended_decimal_format(value: Decimal) -> Decimal: return value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") @staticmethod - def convert_value_from_chain_format(value: Decimal) -> Decimal: + def convert_value_from_extended_decimal_format(value: Decimal) -> Decimal: return value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") def chain_formatted_value(self, human_readable_value: Decimal) -> Decimal: diff --git a/pyinjective/orderhash.py b/pyinjective/orderhash.py index a90147bb..1d7f91cf 100644 --- a/pyinjective/orderhash.py +++ b/pyinjective/orderhash.py @@ -97,7 +97,7 @@ def compute_order_hashes(self, spot_orders, derivative_orders, subaccount_index) def param_to_backend_go(param: str) -> str: - go_param = Token.convert_value_from_chain_format(value=Decimal(param)) + go_param = Token.convert_value_from_extended_decimal_format(value=Decimal(param)) return f"{go_param.normalize():.18f}" diff --git a/tests/test_composer.py b/tests/test_composer.py index 85a02d2e..4c8ba01f 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -228,7 +228,7 @@ def test_msg_deposit(self, basic_composer): amount = 100 denom = "inj" - expected_amount = Token.convert_value_to_chain_format(value=Decimal(str(amount))) + expected_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) message = basic_composer.msg_deposit_v2( sender=sender, @@ -268,7 +268,7 @@ def test_msg_withdraw(self, basic_composer): "sender": sender, "subaccountId": subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))):f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))):f}", "denom": denom, }, } @@ -301,9 +301,9 @@ def test_msg_instant_spot_market_launch(self, basic_composer): quote_decimals=quote_decimals, ) - chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_min_notional = Token.convert_value_to_chain_format(value=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, @@ -402,13 +402,15 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): maintenance_margin_ratio = Decimal("0.03") min_notional = Decimal("2") - expected_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_maker_fee_rate = Token.convert_value_to_chain_format(value=maker_fee_rate) - expected_taker_fee_rate = Token.convert_value_to_chain_format(value=taker_fee_rate) - expected_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) - expected_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) - expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) + 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_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) message = basic_composer.msg_instant_expiry_futures_market_launch_v2( sender=sender, @@ -564,9 +566,9 @@ def test_msg_create_spot_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = Token.convert_value_to_chain_format(value=price) - expected_quantity = Token.convert_value_to_chain_format(value=quantity) - expected_trigger_price = Token.convert_value_to_chain_format(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.v2.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name expected_message = { @@ -658,12 +660,12 @@ def test_msg_create_spot_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{Token.convert_value_to_chain_format(value=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"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -887,13 +889,13 @@ def test_msg_create_derivative_limit_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{Token.convert_value_to_chain_format(value=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"{Token.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -972,13 +974,13 @@ def test_msg_create_derivative_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{Token.convert_value_to_chain_format(value=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"{Token.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1089,9 +1091,9 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): min_notional=min_notional, ) - chain_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - chain_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - chain_min_notional = Token.convert_value_to_chain_format(value=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, @@ -1100,8 +1102,8 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): "oracleProvider": oracle_provider, "oracleType": oracle_type, "oracleScaleFactor": oracle_scale_factor, - "makerFeeRate": f"{Token.convert_value_to_chain_format(value=maker_fee_rate).normalize():f}", - "takerFeeRate": f"{Token.convert_value_to_chain_format(value=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, @@ -1141,10 +1143,10 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): trigger_price=trigger_price, ) - expected_price = Token.convert_value_to_chain_format(value=price) - expected_quantity = Token.convert_value_to_chain_format(value=quantity) - expected_margin = Token.convert_value_to_chain_format(value=margin) - expected_trigger_price = Token.convert_value_to_chain_format(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, @@ -1200,13 +1202,13 @@ def test_msg_create_binary_options_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "price": f"{Token.convert_value_to_chain_format(value=price).normalize():f}", - "quantity": f"{Token.convert_value_to_chain_format(value=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"{Token.convert_value_to_chain_format(value=margin).normalize():f}", + "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_chain_format(value=trigger_price).normalize():f}", + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1276,7 +1278,7 @@ def test_msg_subaccount_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))).normalize():f}", "denom": denom, }, } @@ -1306,7 +1308,7 @@ def test_msg_external_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))).normalize():f}", "denom": denom, }, } @@ -1378,7 +1380,7 @@ def test_msg_increase_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = Token.convert_value_to_chain_format(value=amount) + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) message = basic_composer.msg_increase_position_margin_v2( sender=sender, @@ -1408,7 +1410,7 @@ def test_msg_decrease_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = Token.convert_value_to_chain_format(value=amount) + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) message = basic_composer.msg_decrease_position_margin_v2( sender=sender, @@ -1455,7 +1457,7 @@ def test_msg_admin_update_binary_options_market(self, basic_composer): expiration_timestamp = 1630000000 settlement_timestamp = 1660000000 - expected_settlement_price = Token.convert_value_to_chain_format(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_v2( sender=sender, @@ -1488,9 +1490,9 @@ def test_msg_update_spot_market(self, basic_composer): min_quantity_tick_size = Decimal("10") min_notional = Decimal("5") - expected_min_price_tick_size = Token.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) + 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_v2( admin=sender, @@ -1525,11 +1527,13 @@ 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 = Token.convert_value_to_chain_format(value=min_price_tick_size) - expected_min_quantity_tick_size = Token.convert_value_to_chain_format(value=min_quantity_tick_size) - expected_min_notional = Token.convert_value_to_chain_format(value=min_notional) - expected_initial_margin_ratio = Token.convert_value_to_chain_format(value=initial_margin_ratio) - expected_maintenance_margin_ratio = Token.convert_value_to_chain_format(value=maintenance_margin_ratio) + 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 + ) message = basic_composer.msg_update_derivative_market_v2( admin=sender, @@ -1938,7 +1942,7 @@ def test_msg_create_insurance_fund(self, basic_composer): "oracleType": "Band", "expiry": "-1", "initialDeposit": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -1961,11 +1965,11 @@ def test_msg_send_to_eth_fund(self, basic_composer): "sender": "sender", "ethDest": "eth_dest", "amount": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal(1)).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(1)).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, "bridgeFee": { - "amount": f"{Token.convert_value_to_chain_format(value=Decimal(2)).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(2)).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -1987,7 +1991,7 @@ def test_msg_underwrite(self, basic_composer): "sender": "sender", "marketId": "market_id", "deposit": { - "amount": f"{Token.convert_value_to_chain_format(Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -2010,7 +2014,7 @@ def test_msg_send(self, basic_composer): "toAddress": "to_address", "amount": [ { - "amount": f"{Token.convert_value_to_chain_format(Decimal('1')).normalize():f}", + "amount": f"{Token.convert_value_to_extended_decimal_format(Decimal('1')).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, ], From 7d7fc080ce288cc18028144a65a7c6d4acf26401 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:08:18 -0300 Subject: [PATCH 07/35] (fix) Removed support for chain stream V2, since it was decided we are not going to include that in chain core --- buf.gen.yaml | 2 +- examples/chain_client/7_ChainStream.py | 22 +- pyinjective/async_client.py | 33 -- .../grpc_stream/chain_grpc_chain_stream.py | 42 -- pyinjective/composer.py | 107 ----- pyinjective/proto/google/api/client_pb2.py | 78 +-- .../proto/injective/exchange/v2/events_pb2.py | 30 +- .../injective/stream/v1beta1/query_pb2.py | 87 ++-- .../proto/injective/stream/v2/query_pb2.py | 132 ------ .../injective/stream/v2/query_pb2_grpc.py | 80 ---- ...onfigurable_chain_stream_query_servicer.py | 14 - .../test_chain_grpc_chain_stream.py | 443 +----------------- tests/test_composer_deprecation_warnings.py | 91 ---- 13 files changed, 146 insertions(+), 1015 deletions(-) delete mode 100644 pyinjective/proto/injective/stream/v2/query_pb2.py delete mode 100644 pyinjective/proto/injective/stream/v2/query_pb2_grpc.py diff --git a/buf.gen.yaml b/buf.gen.yaml index 4c9a0415..0464ad6d 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -24,6 +24,6 @@ inputs: # tag: v1.13.0 # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - branch: feat/chain_stream_exchange_v2 + branch: feat/update_chain_stream_for_exchange_v2 subdir: proto - directory: proto diff --git a/examples/chain_client/7_ChainStream.py b/examples/chain_client/7_ChainStream.py index d63ff6ea..05a5bbdc 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_v2_filter( + bank_balances_filter = composer.chain_stream_bank_balances_filter( accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"] ) - 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_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_ids=["*"], market_ids=[inj_usdt_perp_market] ) - spot_orders_filter = composer.chain_stream_orders_v2_filter( + spot_orders_filter = composer.chain_stream_orders_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_market] ) - derivative_orders_filter = composer.chain_stream_orders_v2_filter( + derivative_orders_filter = composer.chain_stream_orders_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - 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( + 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( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - oracle_price_filter = composer.chain_stream_oracle_price_v2_filter(symbols=["INJ", "USDT"]) + oracle_price_filter = composer.chain_stream_oracle_price_filter(symbols=["INJ", "USDT"]) task = asyncio.get_event_loop().create_task( - client.listen_chain_stream_v2_updates( + client.listen_chain_stream_updates( callback=chain_stream_event_processor, on_end_callback=stream_closed_processor, on_status_callback=stream_error_processor, diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index d4be6c96..edcd7052 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -56,7 +56,6 @@ tendermint_pb2 as ibc_tendermint, ) 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 @@ -2503,38 +2502,6 @@ async def listen_chain_stream_updates( oracle_price_filter=oracle_price_filter, ) - 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_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_v2( - 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, - 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, - ) - # region IBC Transfer module async def fetch_denom_trace(self, hash: str) -> Dict[str, Any]: return await self.ibc_transfer_api.fetch_denom_trace(hash=hash) 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 4f86599a..3b34ae4d 100644 --- a/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py +++ b/pyinjective/client/chain/grpc_stream/chain_grpc_chain_stream.py @@ -4,17 +4,12 @@ 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 = chain_stream_grpc.StreamStub(channel) - self._stub_v2 = chain_stream_v2_grpc.StreamStub(channel) self._assistant = GrpcApiStreamAssistant(cookie_assistant=cookie_assistant) async def stream( @@ -53,40 +48,3 @@ 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 d3c0ad15..534c7335 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -46,7 +46,6 @@ 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 @@ -2713,15 +2712,6 @@ def MsgVote( 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) @@ -2729,16 +2719,6 @@ 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) @@ -2747,11 +2727,6 @@ 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) @@ -2761,11 +2736,6 @@ 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) @@ -2774,13 +2744,6 @@ 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) @@ -2789,13 +2752,6 @@ 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) @@ -2804,72 +2760,9 @@ 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 # ------------------------------------------------ diff --git a/pyinjective/proto/google/api/client_pb2.py b/pyinjective/proto/google/api/client_pb2.py index 57d8f80c..5acd81af 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\"\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\"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=3666 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=3829 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=3831 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=3934 _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=2369 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_start=2296 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2369 + _globals['_NODESETTINGS']._serialized_start=2371 + _globals['_NODESETTINGS']._serialized_end=2445 + _globals['_DOTNETSETTINGS']._serialized_start=2448 + _globals['_DOTNETSETTINGS']._serialized_end=3006 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=2871 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=2937 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=2939 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=3006 + _globals['_RUBYSETTINGS']._serialized_start=3008 + _globals['_RUBYSETTINGS']._serialized_end=3082 + _globals['_GOSETTINGS']._serialized_start=3084 + _globals['_GOSETTINGS']._serialized_end=3156 + _globals['_METHODSETTINGS']._serialized_start=3159 + _globals['_METHODSETTINGS']._serialized_end=3609 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3333 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3609 + _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3611 + _globals['_SELECTIVEGAPICGENERATION']._serialized_end=3663 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/events_pb2.py b/pyinjective/proto/injective/exchange/v2/events_pb2.py index 04428a8f..de2274e5 100644 --- a/pyinjective/proto/injective/exchange/v2/events_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -20,7 +20,7 @@ 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\x65scriptionB\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') +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) @@ -76,6 +76,24 @@ _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 @@ -148,4 +166,14 @@ _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/stream/v1beta1/query_pb2.py b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py index 380cce40..d5f8bc56 100644 --- a/pyinjective/proto/injective/stream/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py @@ -14,11 +14,12 @@ 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.v1beta1 import events_pb2 as injective_dot_exchange_dot_v1beta1_dot_events__pb2 -from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as injective_dot_exchange_dot_v1beta1_dot_exchange__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$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/v2/events.proto\x1a$injective/exchange/v2/exchange.proto\x1a!injective/exchange/v2/order.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\"\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\"\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\"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\"\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\"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\"\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\"\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\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) @@ -80,29 +81,29 @@ _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=5450 - _globals['_ORDERUPDATESTATUS']._serialized_end=5526 - _globals['_STREAMREQUEST']._serialized_start=205 - _globals['_STREAMREQUEST']._serialized_end=1243 - _globals['_STREAMRESPONSE']._serialized_start=1246 - _globals['_STREAMRESPONSE']._serialized_end=2175 - _globals['_ORDERBOOKUPDATE']._serialized_start=2177 - _globals['_ORDERBOOKUPDATE']._serialized_end=2279 - _globals['_ORDERBOOK']._serialized_start=2282 - _globals['_ORDERBOOK']._serialized_end=2456 - _globals['_BANKBALANCE']._serialized_start=2459 - _globals['_BANKBALANCE']._serialized_end=2603 - _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2606 - _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2742 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2744 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2854 - _globals['_SPOTORDERUPDATE']._serialized_start=2857 - _globals['_SPOTORDERUPDATE']._serialized_end=3051 - _globals['_SPOTORDER']._serialized_start=3053 - _globals['_SPOTORDER']._serialized_end=3165 - _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3168 - _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3374 - _globals['_DERIVATIVEORDER']._serialized_start=3377 + _globals['_ORDERUPDATESTATUS']._serialized_start=5445 + _globals['_ORDERUPDATESTATUS']._serialized_end=5521 + _globals['_STREAMREQUEST']._serialized_start=230 + _globals['_STREAMREQUEST']._serialized_end=1268 + _globals['_STREAMRESPONSE']._serialized_start=1271 + _globals['_STREAMRESPONSE']._serialized_end=2200 + _globals['_ORDERBOOKUPDATE']._serialized_start=2202 + _globals['_ORDERBOOKUPDATE']._serialized_end=2304 + _globals['_ORDERBOOK']._serialized_start=2307 + _globals['_ORDERBOOK']._serialized_end=2471 + _globals['_BANKBALANCE']._serialized_start=2474 + _globals['_BANKBALANCE']._serialized_end=2618 + _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2621 + _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2757 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2759 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2864 + _globals['_SPOTORDERUPDATE']._serialized_start=2867 + _globals['_SPOTORDERUPDATE']._serialized_end=3061 + _globals['_SPOTORDER']._serialized_start=3063 + _globals['_SPOTORDER']._serialized_end=3170 + _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3173 + _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3379 + _globals['_DERIVATIVEORDER']._serialized_start=3382 _globals['_DERIVATIVEORDER']._serialized_end=3530 _globals['_POSITION']._serialized_start=3533 _globals['_POSITION']._serialized_end=3924 @@ -111,21 +112,21 @@ _globals['_SPOTTRADE']._serialized_start=4045 _globals['_SPOTTRADE']._serialized_end=4496 _globals['_DERIVATIVETRADE']._serialized_start=4499 - _globals['_DERIVATIVETRADE']._serialized_end=4975 - _globals['_TRADESFILTER']._serialized_start=4977 - _globals['_TRADESFILTER']._serialized_end=5061 - _globals['_POSITIONSFILTER']._serialized_start=5063 - _globals['_POSITIONSFILTER']._serialized_end=5150 - _globals['_ORDERSFILTER']._serialized_start=5152 - _globals['_ORDERSFILTER']._serialized_end=5236 - _globals['_ORDERBOOKFILTER']._serialized_start=5238 - _globals['_ORDERBOOKFILTER']._serialized_end=5286 - _globals['_BANKBALANCESFILTER']._serialized_start=5288 - _globals['_BANKBALANCESFILTER']._serialized_end=5336 - _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5338 - _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5403 - _globals['_ORACLEPRICEFILTER']._serialized_start=5405 - _globals['_ORACLEPRICEFILTER']._serialized_end=5448 - _globals['_STREAM']._serialized_start=5528 - _globals['_STREAM']._serialized_end=5631 + _globals['_DERIVATIVETRADE']._serialized_end=4970 + _globals['_TRADESFILTER']._serialized_start=4972 + _globals['_TRADESFILTER']._serialized_end=5056 + _globals['_POSITIONSFILTER']._serialized_start=5058 + _globals['_POSITIONSFILTER']._serialized_end=5145 + _globals['_ORDERSFILTER']._serialized_start=5147 + _globals['_ORDERSFILTER']._serialized_end=5231 + _globals['_ORDERBOOKFILTER']._serialized_start=5233 + _globals['_ORDERBOOKFILTER']._serialized_end=5281 + _globals['_BANKBALANCESFILTER']._serialized_start=5283 + _globals['_BANKBALANCESFILTER']._serialized_end=5331 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5333 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5398 + _globals['_ORACLEPRICEFILTER']._serialized_start=5400 + _globals['_ORACLEPRICEFILTER']._serialized_end=5443 + _globals['_STREAM']._serialized_start=5523 + _globals['_STREAM']._serialized_end=5626 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/stream/v2/query_pb2.py b/pyinjective/proto/injective/stream/v2/query_pb2.py deleted file mode 100644 index 65d5ff53..00000000 --- a/pyinjective/proto/injective/stream/v2/query_pb2.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- 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(\x0cR\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(\x0cR\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(\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\"\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 deleted file mode 100644 index ebb3b134..00000000 --- a/pyinjective/proto/injective/stream/v2/query_pb2_grpc.py +++ /dev/null @@ -1,80 +0,0 @@ -# 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/stream_grpc/configurable_chain_stream_query_servicer.py b/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py index 943b91c0..8e7a5963 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,10 +1,6 @@ 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): @@ -16,13 +12,3 @@ def __init__(self): 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 bbbcad52..da22aec1 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 @@ -8,14 +8,9 @@ from pyinjective.composer import Composer 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 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, -) +from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer @pytest.fixture @@ -23,17 +18,11 @@ 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 @@ -45,7 +34,7 @@ async def test_stream( account="inj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4", balances=[balance_coin], ) - deposit = exchange_pb.Deposit( + deposit = exchange_v2_pb.Deposit( available_balance="112292968420000000000000", total_balance="73684013968420000000000000", ) @@ -65,12 +54,12 @@ 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", ) - position_delta = exchange_pb.PositionDelta( + position_delta = exchange_v2_pb.PositionDelta( is_long=True, execution_quantity="5000000", execution_price="13945600", @@ -89,16 +78,16 @@ async def test_stream( cid="cid1", trade_id=f"{block_height}_1", ) - spot_order_info = exchange_pb.OrderInfo( + spot_order_info = order_v2_pb.OrderInfo( subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", price="18775000", quantity="54606542000000000000000000000000000000000", cid="cid2", ) - spot_limit_order = exchange_pb.SpotLimitOrder( + spot_limit_order = order_v2_pb.SpotLimitOrder( order_info=spot_order_info, - order_type=exchange_pb.OrderType.SELL_PO, + order_type=order_v2_pb.OrderType.SELL_PO, fillable="54606542000000000000000000000000000000000", trigger_price="", order_hash=( @@ -111,22 +100,20 @@ 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, ) - derivative_order_info = exchange_pb.OrderInfo( + derivative_order_info = order_v2_pb.OrderInfo( subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", price="18775000", quantity="54606542000000000000000000000000000000000", cid="cid2", ) - derivative_limit_order = exchange_pb.DerivativeLimitOrder( + derivative_limit_order = order_v2_pb.DerivativeLimitOrder( order_info=derivative_order_info, - order_type=exchange_pb.OrderType.SELL_PO, + order_type=order_v2_pb.OrderType.SELL_PO, margin="54606542000000000000000000000000000000000", fillable="54606542000000000000000000000000000000000", trigger_price="", @@ -139,12 +126,12 @@ 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, ) - spot_buy_level = exchange_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") - spot_sell_level = exchange_pb.Level( + spot_buy_level = exchange_v2_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") + spot_sell_level = exchange_v2_pb.Level( p="18207000", q="22196395000000000000000000000000000000000", ) @@ -157,8 +144,8 @@ async def test_stream( seq=6645013, orderbook=spot_orderbook, ) - derivative_buy_level = exchange_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") - derivative_sell_level = exchange_pb.Level( + derivative_buy_level = exchange_v2_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") + derivative_sell_level = exchange_v2_pb.Level( p="18207000", q="22196395000000000000000000000000000000000", ) @@ -205,7 +192,7 @@ async def test_stream( network = Network.devnet() composer = Composer(network=network.string()) - api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) + api = self._api_instance(servicer=chain_stream_servicer) events = asyncio.Queue() end_event = asyncio.Event() @@ -262,7 +249,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, @@ -291,7 +278,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, @@ -314,7 +301,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, @@ -416,400 +403,12 @@ async def test_stream( assert first_update == expected_update assert end_event.is_set() - @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=b"\xaa\xb0Ju\xa3)@\xfe\xd58N\xba\xdfG\xfd\xd8}\xe4\r\xf4\xf8a\xd9\n\xa9\xd6x+V\x9b\x02&", - 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=( - b"\xf9\xc7\xd8v8\x84-\x9b\x99s\xf5\xdfX\xc9\xf9V\x9a\xf7\xf9\xc3\xa1\x00h\t\xc17<\xd1k\x9d\x12\xed" - ), - 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=b"\x03\xc9\xf8G*Q-G%\xf1\xbcF3\xe89g\xbe\xeag\xd8Y\x7f\x87\x8a\xa5\xac\x8ew\x8a\x91\xa2F", - 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": base64.b64encode(spot_trade.order_hash).decode(), - "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": base64.b64encode(spot_order_update.order_hash).decode(), - "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": base64.b64encode(derivative_order_update.order_hash).decode(), - "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): + def _api_instance(self, servicer): 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/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index e21c48a6..190bc02e 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -30,97 +30,6 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return 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: - 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 chain_stream_bank_balances_v2_filter instead" - ) - - def test_chain_stream_subaccount_deposits_filter_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - 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 chain_stream_subaccount_deposits_v2_filter instead" - ) - - 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.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 chain_stream_orders_v2_filter instead" - ) - - 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.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()) From 4980b41826e55d794e911c05c3bca83810123205 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 13 Nov 2024 00:22:37 -0300 Subject: [PATCH 08/35] (fix) Rename all methods having v2 in the middle of the name to have v2 as suffix --- examples/chain_client/1_LocalOrderHash.py | 8 +-- examples/chain_client/3_MessageBroadcaster.py | 4 +- .../5_MessageBroadcasterWithoutSimulation.py | 4 +- .../exchange/19_MsgLiquidatePosition.py | 2 +- .../exchange/9_MsgBatchUpdateOrders.py | 16 +++--- pyinjective/composer.py | 28 +++++----- tests/core/test_gas_limit_estimator.py | 52 +++++++++---------- tests/test_composer.py | 26 +++++----- tests/test_orderhash.py | 4 +- 9 files changed, 72 insertions(+), 72 deletions(-) diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index 6b34c4e3..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.create_v2_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.create_v2_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.create_v2_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.create_v2_derivative_order( + composer.create_derivative_order_v2( market_id=deriv_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/examples/chain_client/3_MessageBroadcaster.py b/examples/chain_client/3_MessageBroadcaster.py index 39bbe5d5..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.create_v2_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.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index 601b595d..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.create_v2_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.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/examples/chain_client/exchange/19_MsgLiquidatePosition.py b/examples/chain_client/exchange/19_MsgLiquidatePosition.py index 9f2b6df8..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.create_v2_derivative_order( + order = composer.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py index 5b00562c..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.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=derivative_market_id_cancel, subaccount_id=subaccount_id, order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", ), - composer.create_v2_order_data_without_mask( + 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.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id_cancel, subaccount_id=subaccount_id, cid="0e5c3ad5-2cc4-4a2a-bbe5-b12697739163", ), - composer.create_v2_order_data_without_mask( + 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.create_v2_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.create_v2_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.create_v2_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.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 534c7335..f78a9d57 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -405,7 +405,7 @@ def order_data_without_mask( cid=cid, ) - def create_v2_order_data( + def create_order_data_v2( self, market_id: str, subaccount_id: str, @@ -425,7 +425,7 @@ def create_v2_order_data( cid=cid, ) - def create_v2_order_data_without_mask( + def create_order_data_without_mask_v2( self, market_id: str, subaccount_id: str, @@ -479,7 +479,7 @@ def spot_order( trigger_price=chain_trigger_price, ) - def create_v2_spot_order( + def create_spot_order_v2( self, market_id: str, subaccount_id: str, @@ -557,7 +557,7 @@ def derivative_order( chain_trigger_price=chain_trigger_price, ) - def create_v2_derivative_order( + def create_derivative_order_v2( self, market_id: str, subaccount_id: str, @@ -571,7 +571,7 @@ def create_v2_derivative_order( ) -> injective_order_v2_pb.DerivativeOrder: trigger_price = trigger_price or Decimal(0) - return self._basic_v2_derivative_order( + return self._basic_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -622,7 +622,7 @@ def binary_options_order( chain_trigger_price=chain_trigger_price, ) - def create_v2_binary_options_order( + def create_binary_options_order_v2( self, market_id: str, subaccount_id: str, @@ -636,7 +636,7 @@ def create_v2_binary_options_order( ) -> injective_order_v2_pb.DerivativeOrder: trigger_price = trigger_price or Decimal(0) - return self._basic_v2_derivative_order( + return self._basic_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1113,7 +1113,7 @@ def msg_create_spot_limit_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( sender=sender, - order=self.create_v2_spot_order( + order=self.create_spot_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1189,7 +1189,7 @@ def msg_create_spot_market_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder: return injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder( sender=sender, - order=self.create_v2_spot_order( + order=self.create_spot_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1404,7 +1404,7 @@ def msg_create_derivative_limit_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, - order=self.create_v2_derivative_order( + order=self.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1493,7 +1493,7 @@ def msg_create_derivative_market_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder: return injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder( sender=sender, - order=self.create_v2_derivative_order( + order=self.create_derivative_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1730,7 +1730,7 @@ def msg_create_binary_options_limit_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, - order=self.create_v2_binary_options_order( + order=self.create_binary_options_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1798,7 +1798,7 @@ def msg_create_binary_options_market_order_v2( ) -> injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder: return injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder( sender=sender, - order=self.create_v2_binary_options_order( + order=self.create_binary_options_order_v2( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -3056,7 +3056,7 @@ def _basic_derivative_order( trigger_price=formatted_trigger_price, ) - def _basic_v2_derivative_order( + def _basic_derivative_order_v2( self, market_id: str, subaccount_id: str, diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index 72b10ab4..d43093cb 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -548,7 +548,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -556,7 +556,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -577,17 +577,17 @@ def test_estimation_for_batch_cancel_spot_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -605,7 +605,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.create_v2_derivative_order( + composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -614,7 +614,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.create_v2_derivative_order( + composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -636,17 +636,17 @@ def test_estimation_for_batch_cancel_derivative_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -664,7 +664,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -672,7 +672,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -699,7 +699,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.create_v2_derivative_order( + composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -708,7 +708,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.create_v2_derivative_order( + composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -755,7 +755,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t ) composer.binary_option_markets[market.id] = market orders = [ - composer.create_v2_binary_options_order( + composer.create_binary_options_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -764,7 +764,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t margin=Decimal(3), order_type="BUY", ), - composer.create_v2_binary_options_order( + composer.create_binary_options_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -793,17 +793,17 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -827,17 +827,17 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -861,17 +861,17 @@ def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_v2_order_data_without_mask( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -956,7 +956,7 @@ def test_estimation_for_exec_message(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", diff --git a/tests/test_composer.py b/tests/test_composer.py index 4c8ba01f..54711765 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -603,7 +603,7 @@ def test_msg_batch_create_spot_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_v2_spot_order( + order = basic_composer.create_spot_order_v2( market_id=spot_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -707,7 +707,7 @@ def test_msg_batch_cancel_spot_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.create_v2_order_data_without_mask( + order_data = basic_composer.create_order_data_without_mask_v2( market_id=spot_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", @@ -739,22 +739,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.create_v2_order_data_without_mask( + 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.create_v2_order_data_without_mask( + 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.create_v2_order_data_without_mask( + 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.create_v2_spot_order( + spot_order_to_create = basic_composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -764,7 +764,7 @@ def test_msg_batch_update_orders(self, basic_composer): cid="test_cid", trigger_price=Decimal("43.5"), ) - derivative_order_to_create = basic_composer.create_v2_derivative_order( + derivative_order_to_create = basic_composer.create_derivative_order_v2( market_id=derivative_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -773,7 +773,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.create_v2_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", @@ -915,7 +915,7 @@ def test_msg_batch_create_derivative_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_v2_derivative_order( + order = basic_composer.create_derivative_order_v2( market_id=derivative_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1035,7 +1035,7 @@ def test_msg_batch_cancel_derivative_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.create_v2_order_data_without_mask( + order_data = basic_composer.create_order_data_without_mask_v2( market_id=derivative_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", @@ -1322,7 +1322,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.create_v2_derivative_order( + order = basic_composer.create_derivative_order_v2( market_id=market.id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -1874,8 +1874,8 @@ def test_msg_claim_voucher(self, basic_composer): ) assert dict_message == expected_message - def test_create_v2_order_data_without_mask(self, basic_composer): - order_data = basic_composer.create_v2_order_data_without_mask( + 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", diff --git a/tests/test_orderhash.py b/tests/test_orderhash.py index d98dfa00..7e21c7f5 100644 --- a/tests/test_orderhash.py +++ b/tests/test_orderhash.py @@ -24,7 +24,7 @@ def test_spot_order_hash(self, requests_mock): fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -32,7 +32,7 @@ def test_spot_order_hash(self, requests_mock): quantity=Decimal("0.01"), order_type="BUY", ), - composer.create_v2_spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, From 407067a14dbf47c42a22e72b0fc2d5357de357db Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 13 Nov 2024 23:23:03 -0300 Subject: [PATCH 09/35] (fix) Solved a couple of warnings --- pyinjective/composer.py | 2 +- tests/test_composer_deprecation_warnings.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pyinjective/composer.py b/pyinjective/composer.py index f78a9d57..c7739ab1 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -2395,7 +2395,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) diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index d0e38530..153ede52 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -5,6 +5,7 @@ from pyinjective.composer import Composer from pyinjective.core.network import Network +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, @@ -481,7 +482,7 @@ def test_msg_create_insurance_fund_deprecation_warning(self, basic_composer): quote_denom="INJ", oracle_base="oracle_base", oracle_quote="oracle_quote", - oracle_type="Band", + oracle_type=oracle_pb.OracleType.Band, expiry=-1, initial_deposit=1, ) From b8beed23b2c661e63defa76c6f2caa68804f051f Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:50:07 -0300 Subject: [PATCH 10/35] (fix) Fixed issues in the V2 messages with Coin parameters, to not add the extra digits in the amounts --- pyinjective/async_client.py | 5 - pyinjective/composer.py | 55 ++++---- pyinjective/constant.py | 2 +- pyinjective/core/market.py | 59 ++++---- tests/core/test_market.py | 126 +++++++++--------- tests/model_fixtures/markets_fixtures.py | 12 +- .../test_async_client_deprecation_warnings.py | 25 ---- tests/test_composer.py | 18 +-- tests/test_composer_deprecation_warnings.py | 12 +- 9 files changed, 134 insertions(+), 180 deletions(-) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index edcd7052..911c6474 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -2481,11 +2481,6 @@ async def listen_chain_stream_updates( positions_filter: Optional[chain_stream_query.PositionsFilter] = None, oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, ): - """ - 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_v2_updates instead", DeprecationWarning, stacklevel=2) - return await self.chain_stream_api.stream( callback=callback, on_end_callback=on_end_callback, diff --git a/pyinjective/composer.py b/pyinjective/composer.py index c7739ab1..839052cd 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -369,9 +369,9 @@ def order_data( is_market_order: Optional[bool] = False, ) -> injective_exchange_tx_pb.OrderData: """ - This method is deprecated and will be removed soon. Please use `create_v2_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 create_v2_order_data instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use create_order_data_v2 instead", DeprecationWarning, stacklevel=2) order_mask = self._order_mask(is_conditional=is_conditional, is_buy=is_buy, is_market_order=is_market_order) @@ -391,10 +391,10 @@ def order_data_without_mask( cid: Optional[str] = None, ) -> injective_exchange_tx_pb.OrderData: """ - This method is deprecated and will be removed soon. Please use `create_v2_order_data_without_mask` instead + 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_v2_order_data_without_mask instead", DeprecationWarning, stacklevel=2 + "This method is deprecated. Use create_order_data_without_mask_v2 instead", DeprecationWarning, stacklevel=2 ) return injective_exchange_tx_pb.OrderData( @@ -452,9 +452,9 @@ def spot_order( trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.SpotOrder: """ - This method is deprecated and will be removed soon. Please use `create_v2_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 create_v2_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] @@ -532,9 +532,9 @@ def derivative_order( trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.DerivativeOrder: """ - This method is deprecated and will be removed soon. Please use `create_v2_derivative_order` instead + This method is deprecated and will be removed soon. Please use `create_derivative_order_v2` instead """ - warn("This method is deprecated. Use create_v2_derivative_order instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use create_derivative_order_v2 instead", DeprecationWarning, stacklevel=2) market = self.derivative_markets[market_id] @@ -597,9 +597,9 @@ def binary_options_order( denom: Optional[Denom] = None, ) -> injective_exchange_pb.DerivativeOrder: """ - This method is deprecated and will be removed soon. Please use `create_v2_binary_options_order` instead + This method is deprecated and will be removed soon. Please use `create_binary_options_order_v2` instead """ - warn("This method is deprecated. Use create_v2_binary_options_order instead", DeprecationWarning, stacklevel=2) + warn("This method is deprecated. Use create_binary_options_order_v2 instead", DeprecationWarning, stacklevel=2) market = self.binary_option_markets[market_id] @@ -717,8 +717,7 @@ def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) ) def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - coin = self.coin(amount=int(chain_amount), denom=denom) + coin = self.coin(amount=int(amount), denom=denom) return cosmos_bank_tx_pb.MsgSend( from_address=from_address, @@ -748,8 +747,7 @@ def msg_deposit( def msg_deposit_v2( self, sender: str, subaccount_id: str, amount: int, denom: str ) -> injective_exchange_tx_v2_pb.MsgDeposit: - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - coin = self.coin(amount=int(chain_amount), denom=denom) + coin = self.coin(amount=int(amount), denom=denom) return injective_exchange_tx_v2_pb.MsgDeposit( sender=sender, @@ -780,8 +778,7 @@ def msg_withdraw_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgWithdraw: - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - coin = self.coin(amount=int(chain_amount), denom=denom) + coin = self.coin(amount=int(amount), denom=denom) return injective_exchange_tx_v2_pb.MsgWithdraw( sender=sender, @@ -1894,8 +1891,7 @@ def msg_subaccount_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - amount_coin = self.coin(amount=int(chain_amount), denom=denom) + amount_coin = self.coin(amount=int(amount), denom=denom) return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( sender=sender, @@ -1934,8 +1930,7 @@ def msg_external_transfer_v2( amount: int, denom: str, ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - coin = self.coin(amount=int(chain_amount), denom=denom) + coin = self.coin(amount=int(amount), denom=denom) return injective_exchange_tx_v2_pb.MsgExternalTransfer( sender=sender, @@ -2131,13 +2126,13 @@ def msg_decrease_position_margin_v2( market_id: str, amount: Decimal, ) -> injective_exchange_tx_v2_pb.MsgDecreasePositionMargin: - additional_margin = Token.convert_value_to_extended_decimal_format(value=amount) + 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=f"{additional_margin.normalize():f}", + amount=f"{margin_to_remove.normalize():f}", ) def msg_update_spot_market( @@ -2324,8 +2319,7 @@ def msg_create_insurance_fund( expiry: int, initial_deposit: int, ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: - chain_initial_deposit = Token.convert_value_to_extended_decimal_format(value=Decimal(str(initial_deposit))) - deposit = self.coin(amount=int(chain_initial_deposit), denom=quote_denom) + deposit = self.coin(amount=int(initial_deposit), denom=quote_denom) return injective_insurance_tx_pb.MsgCreateInsuranceFund( sender=sender, @@ -2365,8 +2359,7 @@ def msg_underwrite( quote_denom: str, amount: int, ): - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - coin = self.coin(amount=int(chain_amount), denom=quote_denom) + coin = self.coin(amount=int(amount), denom=quote_denom) return injective_insurance_tx_pb.MsgUnderwrite( sender=sender, @@ -2426,10 +2419,8 @@ def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, br ) def msg_send_to_eth(self, denom: str, sender: str, eth_dest: str, amount: int, bridge_fee: int): - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) - chain_bridge_fee = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bridge_fee))) - amount_coin = self.coin(amount=int(chain_amount), denom=denom) - bridge_fee_coin = self.coin(amount=int(chain_bridge_fee), denom=denom) + 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, @@ -3029,9 +3020,9 @@ def _basic_derivative_order( chain_trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.DerivativeOrder: """ - This method is deprecated and will be removed soon. Please use `_basic_v2_derivative_order` instead + This method is deprecated and will be removed soon. Please use `_basic_derivative_order_v2` instead """ - warn("This method is deprecated. Use _basic_v2_derivative_order instead", DeprecationWarning, stacklevel=2) + 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}" 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/tests/core/test_market.py b/tests/core/test_market.py index 67263d02..1f631ff3 100644 --- a/tests/core/test_market.py +++ b/tests/core/test_market.py @@ -18,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 @@ -31,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 @@ -131,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 @@ -250,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 @@ -285,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( @@ -295,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 @@ -308,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 @@ -322,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( @@ -332,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 @@ -345,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 @@ -360,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( @@ -372,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 @@ -395,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 @@ -415,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 @@ -440,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}") @@ -470,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}") @@ -508,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 = ( @@ -544,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/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/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py index 425a60b9..04900871 100644 --- a/tests/test_async_client_deprecation_warnings.py +++ b/tests/test_async_client_deprecation_warnings.py @@ -5,7 +5,6 @@ from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network 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 tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer @@ -21,30 +20,6 @@ def exchange_servicer(): class TestAsyncClientDeprecationWarnings: - @pytest.mark.asyncio - async def test_listen_chain_stream_updates_deprecation_warning( - self, - chain_stream_servicer, - ): - async def callback(event): - pass - - client = AsyncClient( - network=Network.local(), - ) - 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.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 listen_chain_stream_v2_updates instead" - ) - @pytest.mark.asyncio async def test_fetch_aggregate_volume_deprecation_warning( self, diff --git a/tests/test_composer.py b/tests/test_composer.py index a18f9a73..673a4099 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -230,7 +230,7 @@ def test_msg_deposit(self, basic_composer): amount = 100 denom = "inj" - expected_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) + expected_amount = Decimal(str(amount)) message = basic_composer.msg_deposit_v2( sender=sender, @@ -270,7 +270,7 @@ def test_msg_withdraw(self, basic_composer): "sender": sender, "subaccountId": subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))):f}", + "amount": f"{Decimal(str(amount)):f}", "denom": denom, }, } @@ -1280,7 +1280,7 @@ def test_msg_subaccount_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Decimal(str(amount)).normalize():f}", "denom": denom, }, } @@ -1310,7 +1310,7 @@ def test_msg_external_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))).normalize():f}", + "amount": f"{Decimal(str(amount)).normalize():f}", "denom": denom, }, } @@ -1944,7 +1944,7 @@ def test_msg_create_insurance_fund(self, basic_composer): "oracleType": "Band", "expiry": "-1", "initialDeposit": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal('1')).normalize():f}", + "amount": f"{Decimal('1').normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -1967,11 +1967,11 @@ def test_msg_send_to_eth_fund(self, basic_composer): "sender": "sender", "ethDest": "eth_dest", "amount": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(1)).normalize():f}", + "amount": f"{Decimal(1).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, "bridgeFee": { - "amount": f"{Token.convert_value_to_extended_decimal_format(value=Decimal(2)).normalize():f}", + "amount": f"{Decimal(2).normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -1993,7 +1993,7 @@ def test_msg_underwrite(self, basic_composer): "sender": "sender", "marketId": "market_id", "deposit": { - "amount": f"{Token.convert_value_to_extended_decimal_format(Decimal('1')).normalize():f}", + "amount": f"{Decimal('1').normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, } @@ -2016,7 +2016,7 @@ def test_msg_send(self, basic_composer): "toAddress": "to_address", "amount": [ { - "amount": f"{Token.convert_value_to_extended_decimal_format(Decimal('1')).normalize():f}", + "amount": f"{Decimal('1').normalize():f}", "denom": "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", }, ], diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index 153ede52..48ff32d1 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -63,7 +63,7 @@ def test_spot_order_deprecation_warning(self, basic_composer): 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_v2_spot_order instead" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use create_spot_order_v2 instead" def test_basic_derivative_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: @@ -81,7 +81,7 @@ def test_basic_derivative_order_deprecation_warning(self, basic_composer): 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 _basic_v2_derivative_order instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use _basic_derivative_order_v2 instead" ) def test_derivative_order_deprecation_warning(self, basic_composer): @@ -100,7 +100,7 @@ def test_derivative_order_deprecation_warning(self, basic_composer): 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 create_v2_derivative_order instead" + 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): @@ -120,7 +120,7 @@ def test_binary_options_order_deprecation_warning(self, basic_composer): assert len(deprecation_warnings) == 2 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use create_v2_binary_options_order instead" + == "This method is deprecated. Use create_binary_options_order_v2 instead" ) def test_msg_batch_create_spot_limit_orders_deprecation_warning(self, basic_composer): @@ -206,7 +206,7 @@ def test_order_data_deprecation_warning(self, basic_composer): 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_v2_order_data instead" + 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: @@ -220,7 +220,7 @@ def test_order_data_without_mask_deprecation_warning(self, basic_composer): assert len(deprecation_warnings) == 1 assert ( str(deprecation_warnings[0].message) - == "This method is deprecated. Use create_v2_order_data_without_mask instead" + == "This method is deprecated. Use create_order_data_without_mask_v2 instead" ) def test_msg_batch_update_orders_deprecation_warning(self, basic_composer): From 0e6a4cab3c46b6c841fbe698008ff4157833927a Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:59:56 -0300 Subject: [PATCH 11/35] (fix) Updated pyproject.toml version number --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 024cbe31..3614df6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.9.0-pre" +version = "1.9.0-pre1" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" From 52c798fa9a86ea3c5d6954d2c6e73a1fa01517dd Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 19 Nov 2024 09:48:06 -0300 Subject: [PATCH 12/35] (feat) Added again support for chain stream V2 --- buf.gen.yaml | 2 +- examples/chain_client/7_ChainStream.py | 22 +- pyinjective/async_client.py | 38 ++ .../grpc_stream/chain_grpc_chain_stream.py | 42 ++ pyinjective/composer.py | 105 +++++ pyinjective/proto/google/api/client_pb2.py | 52 +-- pyinjective/proto/google/api/httpbody_pb2.py | 4 +- .../google/longrunning/operations_pb2.py | 4 +- .../google/longrunning/operations_pb2_grpc.py | 49 +- .../injective/stream/v1beta1/query_pb2.py | 87 ++-- .../proto/injective/stream/v2/query_pb2.py | 132 ++++++ .../injective/stream/v2/query_pb2_grpc.py | 80 ++++ ...onfigurable_chain_stream_query_servicer.py | 14 + .../test_chain_grpc_chain_stream.py | 427 +++++++++++++++++- .../test_async_client_deprecation_warnings.py | 25 + tests/test_composer_deprecation_warnings.py | 91 ++++ 16 files changed, 1045 insertions(+), 129 deletions(-) create mode 100644 pyinjective/proto/injective/stream/v2/query_pb2.py create mode 100644 pyinjective/proto/injective/stream/v2/query_pb2_grpc.py diff --git a/buf.gen.yaml b/buf.gen.yaml index 0464ad6d..7151c257 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -24,6 +24,6 @@ inputs: # tag: v1.13.0 # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - branch: feat/update_chain_stream_for_exchange_v2 + branch: feat/add_exchange_v1_compatibility_to_chain_stream subdir: proto - directory: proto 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/pyinjective/async_client.py b/pyinjective/async_client.py index 911c6474..d4be6c96 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -56,6 +56,7 @@ tendermint_pb2 as ibc_tendermint, ) 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 @@ -2481,6 +2482,11 @@ async def listen_chain_stream_updates( positions_filter: Optional[chain_stream_query.PositionsFilter] = None, oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, ): + """ + 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_v2_updates instead", DeprecationWarning, stacklevel=2) + return await self.chain_stream_api.stream( callback=callback, on_end_callback=on_end_callback, @@ -2497,6 +2503,38 @@ async def listen_chain_stream_updates( oracle_price_filter=oracle_price_filter, ) + 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_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_v2( + 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, + 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, + ) + # region IBC Transfer module async def fetch_denom_trace(self, hash: str) -> Dict[str, Any]: return await self.ibc_transfer_api.fetch_denom_trace(hash=hash) 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 3b34ae4d..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 = 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 839052cd..64c9251c 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -46,6 +46,7 @@ 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 @@ -2703,6 +2704,14 @@ def MsgVote( 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) @@ -2710,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) @@ -2718,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) @@ -2727,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) @@ -2735,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) @@ -2743,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) @@ -2751,9 +2793,72 @@ 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 # ------------------------------------------------ diff --git a/pyinjective/proto/google/api/client_pb2.py b/pyinjective/proto/google/api/client_pb2.py index 5acd81af..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\"\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\"\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\"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') +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,10 +33,10 @@ _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=3666 - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=3829 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=3831 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=3934 + _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=385 _globals['_CLIENTLIBRARYSETTINGS']._serialized_start=388 @@ -52,25 +52,25 @@ _globals['_PHPSETTINGS']._serialized_start=2040 _globals['_PHPSETTINGS']._serialized_end=2113 _globals['_PYTHONSETTINGS']._serialized_start=2116 - _globals['_PYTHONSETTINGS']._serialized_end=2369 - _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_start=2296 - _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2369 - _globals['_NODESETTINGS']._serialized_start=2371 - _globals['_NODESETTINGS']._serialized_end=2445 - _globals['_DOTNETSETTINGS']._serialized_start=2448 - _globals['_DOTNETSETTINGS']._serialized_end=3006 - _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=2871 - _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=2937 - _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=2939 - _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=3006 - _globals['_RUBYSETTINGS']._serialized_start=3008 - _globals['_RUBYSETTINGS']._serialized_end=3082 - _globals['_GOSETTINGS']._serialized_start=3084 - _globals['_GOSETTINGS']._serialized_end=3156 - _globals['_METHODSETTINGS']._serialized_start=3159 - _globals['_METHODSETTINGS']._serialized_end=3609 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3333 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3609 - _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3611 - _globals['_SELECTIVEGAPICGENERATION']._serialized_end=3663 + _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/stream/v1beta1/query_pb2.py b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py index d5f8bc56..20d2bdd5 100644 --- a/pyinjective/proto/injective/stream/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/stream/v1beta1/query_pb2.py @@ -14,12 +14,11 @@ 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 +from pyinjective.proto.injective.exchange.v1beta1 import events_pb2 as injective_dot_exchange_dot_v1beta1_dot_events__pb2 +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/v2/events.proto\x1a$injective/exchange/v2/exchange.proto\x1a!injective/exchange/v2/order.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\"\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\"\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\"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\"\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\"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\"\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\"\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\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) @@ -81,29 +80,29 @@ _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=5445 - _globals['_ORDERUPDATESTATUS']._serialized_end=5521 - _globals['_STREAMREQUEST']._serialized_start=230 - _globals['_STREAMREQUEST']._serialized_end=1268 - _globals['_STREAMRESPONSE']._serialized_start=1271 - _globals['_STREAMRESPONSE']._serialized_end=2200 - _globals['_ORDERBOOKUPDATE']._serialized_start=2202 - _globals['_ORDERBOOKUPDATE']._serialized_end=2304 - _globals['_ORDERBOOK']._serialized_start=2307 - _globals['_ORDERBOOK']._serialized_end=2471 - _globals['_BANKBALANCE']._serialized_start=2474 - _globals['_BANKBALANCE']._serialized_end=2618 - _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2621 - _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2757 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2759 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2864 - _globals['_SPOTORDERUPDATE']._serialized_start=2867 - _globals['_SPOTORDERUPDATE']._serialized_end=3061 - _globals['_SPOTORDER']._serialized_start=3063 - _globals['_SPOTORDER']._serialized_end=3170 - _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3173 - _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3379 - _globals['_DERIVATIVEORDER']._serialized_start=3382 + _globals['_ORDERUPDATESTATUS']._serialized_start=5450 + _globals['_ORDERUPDATESTATUS']._serialized_end=5526 + _globals['_STREAMREQUEST']._serialized_start=205 + _globals['_STREAMREQUEST']._serialized_end=1243 + _globals['_STREAMRESPONSE']._serialized_start=1246 + _globals['_STREAMRESPONSE']._serialized_end=2175 + _globals['_ORDERBOOKUPDATE']._serialized_start=2177 + _globals['_ORDERBOOKUPDATE']._serialized_end=2279 + _globals['_ORDERBOOK']._serialized_start=2282 + _globals['_ORDERBOOK']._serialized_end=2456 + _globals['_BANKBALANCE']._serialized_start=2459 + _globals['_BANKBALANCE']._serialized_end=2603 + _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2606 + _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2742 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2744 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2854 + _globals['_SPOTORDERUPDATE']._serialized_start=2857 + _globals['_SPOTORDERUPDATE']._serialized_end=3051 + _globals['_SPOTORDER']._serialized_start=3053 + _globals['_SPOTORDER']._serialized_end=3165 + _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3168 + _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3374 + _globals['_DERIVATIVEORDER']._serialized_start=3377 _globals['_DERIVATIVEORDER']._serialized_end=3530 _globals['_POSITION']._serialized_start=3533 _globals['_POSITION']._serialized_end=3924 @@ -112,21 +111,21 @@ _globals['_SPOTTRADE']._serialized_start=4045 _globals['_SPOTTRADE']._serialized_end=4496 _globals['_DERIVATIVETRADE']._serialized_start=4499 - _globals['_DERIVATIVETRADE']._serialized_end=4970 - _globals['_TRADESFILTER']._serialized_start=4972 - _globals['_TRADESFILTER']._serialized_end=5056 - _globals['_POSITIONSFILTER']._serialized_start=5058 - _globals['_POSITIONSFILTER']._serialized_end=5145 - _globals['_ORDERSFILTER']._serialized_start=5147 - _globals['_ORDERSFILTER']._serialized_end=5231 - _globals['_ORDERBOOKFILTER']._serialized_start=5233 - _globals['_ORDERBOOKFILTER']._serialized_end=5281 - _globals['_BANKBALANCESFILTER']._serialized_start=5283 - _globals['_BANKBALANCESFILTER']._serialized_end=5331 - _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5333 - _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5398 - _globals['_ORACLEPRICEFILTER']._serialized_start=5400 - _globals['_ORACLEPRICEFILTER']._serialized_end=5443 - _globals['_STREAM']._serialized_start=5523 - _globals['_STREAM']._serialized_end=5626 + _globals['_DERIVATIVETRADE']._serialized_end=4975 + _globals['_TRADESFILTER']._serialized_start=4977 + _globals['_TRADESFILTER']._serialized_end=5061 + _globals['_POSITIONSFILTER']._serialized_start=5063 + _globals['_POSITIONSFILTER']._serialized_end=5150 + _globals['_ORDERSFILTER']._serialized_start=5152 + _globals['_ORDERSFILTER']._serialized_end=5236 + _globals['_ORDERBOOKFILTER']._serialized_start=5238 + _globals['_ORDERBOOKFILTER']._serialized_end=5286 + _globals['_BANKBALANCESFILTER']._serialized_start=5288 + _globals['_BANKBALANCESFILTER']._serialized_end=5336 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5338 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5403 + _globals['_ORACLEPRICEFILTER']._serialized_start=5405 + _globals['_ORACLEPRICEFILTER']._serialized_end=5448 + _globals['_STREAM']._serialized_start=5528 + _globals['_STREAM']._serialized_end=5631 # @@protoc_insertion_point(module_scope) 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/stream_grpc/configurable_chain_stream_query_servicer.py b/tests/client/chain/stream_grpc/configurable_chain_stream_query_servicer.py index 8e7a5963..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,6 +1,10 @@ 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): @@ -12,3 +16,13 @@ def __init__(self): 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 da22aec1..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 @@ -8,9 +8,14 @@ from pyinjective.composer import Composer 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 @@ -34,7 +45,7 @@ async def test_stream( account="inj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4", balances=[balance_coin], ) - deposit = exchange_v2_pb.Deposit( + deposit = exchange_pb.Deposit( available_balance="112292968420000000000000", total_balance="73684013968420000000000000", ) @@ -59,7 +70,7 @@ async def test_stream( cid="HBOTSIJUT60b77b9c56f0456af96c5c6c0d8", trade_id=f"{block_height}_0", ) - position_delta = exchange_v2_pb.PositionDelta( + position_delta = exchange_pb.PositionDelta( is_long=True, execution_quantity="5000000", execution_price="13945600", @@ -78,16 +89,16 @@ async def test_stream( cid="cid1", trade_id=f"{block_height}_1", ) - spot_order_info = order_v2_pb.OrderInfo( + spot_order_info = exchange_pb.OrderInfo( subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", price="18775000", quantity="54606542000000000000000000000000000000000", cid="cid2", ) - spot_limit_order = order_v2_pb.SpotLimitOrder( + spot_limit_order = exchange_pb.SpotLimitOrder( order_info=spot_order_info, - order_type=order_v2_pb.OrderType.SELL_PO, + order_type=exchange_pb.OrderType.SELL_PO, fillable="54606542000000000000000000000000000000000", trigger_price="", order_hash=( @@ -104,16 +115,16 @@ async def test_stream( cid="cid2", order=spot_order, ) - derivative_order_info = order_v2_pb.OrderInfo( + derivative_order_info = exchange_pb.OrderInfo( subaccount_id="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000004", fee_recipient="inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy", price="18775000", quantity="54606542000000000000000000000000000000000", cid="cid2", ) - derivative_limit_order = order_v2_pb.DerivativeLimitOrder( + derivative_limit_order = exchange_pb.DerivativeLimitOrder( order_info=derivative_order_info, - order_type=order_v2_pb.OrderType.SELL_PO, + order_type=exchange_pb.OrderType.SELL_PO, margin="54606542000000000000000000000000000000000", fillable="54606542000000000000000000000000000000000", trigger_price="", @@ -130,8 +141,8 @@ async def test_stream( cid="cid3", order=derivative_order, ) - spot_buy_level = exchange_v2_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") - spot_sell_level = exchange_v2_pb.Level( + spot_buy_level = exchange_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") + spot_sell_level = exchange_pb.Level( p="18207000", q="22196395000000000000000000000000000000000", ) @@ -144,8 +155,8 @@ async def test_stream( seq=6645013, orderbook=spot_orderbook, ) - derivative_buy_level = exchange_v2_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") - derivative_sell_level = exchange_v2_pb.Level( + derivative_buy_level = exchange_pb.Level(p="17280000", q="44557734000000000000000000000000000000000") + derivative_sell_level = exchange_pb.Level( p="18207000", q="22196395000000000000000000000000000000000", ) @@ -192,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() @@ -403,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/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py index 04900871..425a60b9 100644 --- a/tests/test_async_client_deprecation_warnings.py +++ b/tests/test_async_client_deprecation_warnings.py @@ -5,6 +5,7 @@ from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network 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 tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer @@ -20,6 +21,30 @@ def exchange_servicer(): class TestAsyncClientDeprecationWarnings: + @pytest.mark.asyncio + async def test_listen_chain_stream_updates_deprecation_warning( + self, + chain_stream_servicer, + ): + async def callback(event): + pass + + client = AsyncClient( + network=Network.local(), + ) + 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.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 listen_chain_stream_v2_updates instead" + ) + @pytest.mark.asyncio async def test_fetch_aggregate_volume_deprecation_warning( self, diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index 48ff32d1..a0bee361 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -33,6 +33,97 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return 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: + 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 chain_stream_bank_balances_v2_filter instead" + ) + + def test_chain_stream_subaccount_deposits_filter_deprecation_warning(self): + composer = Composer(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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 chain_stream_subaccount_deposits_v2_filter instead" + ) + + 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.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 chain_stream_orders_v2_filter instead" + ) + + 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.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()) From 3c3b2e4298e986da1e973485f096c7d3f00ff289 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 20 Nov 2024 11:12:06 -0300 Subject: [PATCH 13/35] (fix) Updated version in pyproject.toml to publish a new alpha version --- poetry.lock | 2378 +++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 1237 insertions(+), 1143 deletions(-) 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/pyproject.toml b/pyproject.toml index 3614df6d..1ab4da95 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.9.0-pre1" +version = "1.9.0-pre2" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" From 398e52392063fe903b533bf1332b99f5288ada18 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 20 Nov 2024 12:25:09 -0300 Subject: [PATCH 14/35] (fix) Updated incorrect deprecation comment --- pyinjective/composer.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 64c9251c..6b89473a 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -2559,7 +2559,7 @@ def MsgGrantTyped( **kwargs, ): """ - This method is deprecated and will be removed soon. Please use `fetch_l3_spot_orderbook_v2` instead + 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) diff --git a/pyproject.toml b/pyproject.toml index 1ab4da95..024cbe31 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.9.0-pre2" +version = "1.9.0-pre" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" From 950a00141e37f403062f667ca46a79b9ce5a949d Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Fri, 28 Feb 2025 09:28:07 -0300 Subject: [PATCH 15/35] fix: renamed fetch_subaccount_orders_list to fetch_derivative_subaccount_orders_list --- .../derivative_exchange_rpc/13_SubaccountOrdersList.py | 2 +- pyinjective/async_client.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py index d219a0a2..91efc4d4 100644 --- a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py +++ b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py @@ -14,7 +14,7 @@ async def main() -> None: skip = 1 limit = 2 pagination = PaginationOption(skip=skip, limit=limit) - orders = await client.fetch_subaccount_orders_list( + orders = await client.fetch_derivative_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) print(orders) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 3c19c774..5327c6f3 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -1978,7 +1978,7 @@ async def fetch_derivative_liquidable_positions( pagination=pagination, ) - async def fetch_subaccount_orders_list( + async def fetch_derivative_subaccount_orders_list( self, subaccount_id: str, market_id: Optional[str] = None, From c8a30f5b03e88ed1ca52ecb2e4b6dc319b751f9f Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 8 Apr 2025 05:09:13 +0200 Subject: [PATCH 16/35] Cp 235/update gas estimator for fixed exchange gas (#375) * feat: updated changelog and version number for v1.9.0 release * fix: updated the oracle stream prices script to send the oracle type always in lowercase * fix: added quantization in the functions that convert notional values to chain format * cp-235: updated the gas limit estimator logic to reflect the new logic for gas heuristics in exchange module (chain v1.15) * cp-235: updated all proto definitions with the candidate indexer and chain core versions for v1.15 chain upgrade * feat: added a new message based fee calculator supporting the Exchange module gas heuristics * fix: fix broadcaster creation example scripts * fix: pointed to the correct injective-core branch for the proto generation * fix: updated gas heuristics per message gas cost to sync with latest changes on chain * fix: added cleanup code in AsyncClient for the object destruction phase * feat: updated proto definitions for chain v1.15 upgrade and Indexer v1.14.48 * feat: made the gas calculator using gas heuristics the default one for the MsgBroadcasterWithPk when broadcasting without simulation * fix: fixed gas calculation using heuristics to not duplicate the required gas for post only orders --- CHANGELOG.md | 10 +- Makefile | 2 +- buf.gen.yaml | 14 +- examples/chain_client/1_LocalOrderHash.py | 20 +- examples/chain_client/3_MessageBroadcaster.py | 21 +- .../4_MessageBroadcasterWithGranteeAccount.py | 18 +- .../5_MessageBroadcasterWithoutSimulation.py | 22 +- ...sterWithGranteeAccountWithoutSimulation.py | 19 +- examples/chain_client/auction/1_MsgBid.py | 7 +- examples/chain_client/authz/1_MsgGrant.py | 7 +- examples/chain_client/authz/2_MsgExec.py | 7 +- examples/chain_client/authz/3_MsgRevoke.py | 7 +- examples/chain_client/bank/1_MsgSend.py | 7 +- .../distribution/1_SetWithdrawAddress.py | 13 +- .../distribution/2_WithdrawDelegatorReward.py | 13 +- .../3_WithdrawValidatorCommission.py | 13 +- .../distribution/4_FundCommunityPool.py | 13 +- .../10_MsgCreateDerivativeLimitOrder.py | 7 +- .../11_MsgCreateDerivativeMarketOrder.py | 7 +- .../exchange/12_MsgCancelDerivativeOrder.py | 7 +- .../13_MsgInstantBinaryOptionsMarketLaunch.py | 16 +- .../14_MsgCreateBinaryOptionsLimitOrder.py | 7 +- .../15_MsgCreateBinaryOptionsMarketOrder.py | 7 +- .../16_MsgCancelBinaryOptionsOrder.py | 7 +- .../exchange/17_MsgSubaccountTransfer.py | 7 +- .../exchange/18_MsgExternalTransfer.py | 7 +- .../exchange/19_MsgLiquidatePosition.py | 7 +- .../chain_client/exchange/1_MsgDeposit.py | 7 +- .../exchange/20_MsgIncreasePositionMargin.py | 7 +- .../exchange/21_MsgRewardsOptOut.py | 7 +- .../22_MsgAdminUpdateBinaryOptionsMarket.py | 7 +- .../exchange/23_MsgDecreasePositionMargin.py | 16 +- .../exchange/24_MsgUpdateSpotMarket.py | 16 +- .../exchange/25_MsgUpdateDerivativeMarket.py | 16 +- .../exchange/26_MsgAuthorizeStakeGrants.py | 16 +- .../exchange/27_MsgActivateStakeGrant.py | 16 +- .../chain_client/exchange/2_MsgWithdraw.py | 7 +- .../exchange/3_MsgInstantSpotMarketLaunch.py | 16 +- .../4_MsgInstantPerpetualMarketLaunch.py | 16 +- .../5_MsgInstantExpiryFuturesMarketLaunch.py | 16 +- .../exchange/6_MsgCreateSpotLimitOrder.py | 7 +- .../exchange/7_MsgCreateSpotMarketOrder.py | 7 +- .../exchange/8_MsgCancelSpotOrder.py | 7 +- .../exchange/9_MsgBatchUpdateOrders.py | 7 +- .../ibc/transfer/1_MsgTransfer.py | 13 +- .../insurance/1_MsgCreateInsuranceFund.py | 7 +- .../chain_client/insurance/2_MsgUnderwrite.py | 7 +- .../insurance/3_MsgRequestRedemption.py | 7 +- .../oracle/1_MsgRelayPriceFeedPrice.py | 7 +- .../oracle/2_MsgRelayProviderPrices.py | 7 +- examples/chain_client/peggy/1_MsgSendToEth.py | 7 +- .../permissions/1_MsgCreateNamespace.py | 20 +- .../permissions/2_MsgUpdateNamespace.py | 21 +- .../permissions/3_MsgUpdateActorRoles.py | 21 +- .../permissions/4_MsgClaimVoucher.py | 21 +- .../chain_client/staking/1_MsgDelegate.py | 7 +- .../tokenfactory/1_CreateDenom.py | 21 +- .../chain_client/tokenfactory/2_MsgMint.py | 21 +- .../chain_client/tokenfactory/3_MsgBurn.py | 21 +- .../tokenfactory/4_MsgChangeAdmin.py | 21 +- .../tokenfactory/5_MsgSetDenomMetadata.py | 21 +- .../txfees/query/1_GetEipBaseFee.py | 16 + .../chain_client/wasm/1_MsgExecuteContract.py | 7 +- .../wasmx/1_MsgExecuteContractCompat.py | 7 +- .../oracle_rpc/1_StreamPrices.py | 2 +- .../portfolio_rpc/1_AccountPortfolio.py | 2 +- pyinjective/async_client.py | 66 +- .../grpc/chain_grpc_token_factory_api.py | 2 - .../chain/grpc/chain_grpc_txfees_api.py | 28 + .../grpc/indexer_grpc_portfolio_api.py | 8 +- pyinjective/core/broadcaster.py | 276 +++++- .../gas_heuristics_gas_limit_estimator.py | 506 +++++++++++ pyinjective/core/market.py | 11 +- pyinjective/ofac.json | 96 +- .../exchange/injective_accounts_rpc_pb2.py | 142 +-- .../exchange/injective_archiver_rpc_pb2.py | 28 +- .../exchange/injective_auction_rpc_pb2.py | 36 +- .../exchange/injective_campaign_rpc_pb2.py | 72 +- .../proto/exchange/injective_chart_rpc_pb2.py | 34 +- .../exchange/injective_chart_rpc_pb2_grpc.py | 178 ++++ .../exchange/injective_explorer_rpc_pb2.py | 262 +++--- .../injective_explorer_rpc_pb2_grpc.py | 88 ++ .../exchange/injective_portfolio_rpc_pb2.py | 44 +- .../exchange/injective_referral_rpc_pb2.py | 41 + .../injective_referral_rpc_pb2_grpc.py | 170 ++++ .../injective_spot_exchange_rpc_pb2.py | 8 +- .../exchange/injective_trading_rpc_pb2.py | 30 +- pyinjective/proto/google/api/client_pb2.py | 54 +- pyinjective/proto/google/api/http_pb2.py | 4 +- pyinjective/proto/google/api/resource_pb2.py | 4 +- .../proto/google/api/visibility_pb2.py | 4 +- .../proto/ibc/core/connection/v1/tx_pb2.py | 56 +- .../exchange/v1beta1/exchange_pb2.py | 228 ++--- .../injective/exchange/v1beta1/query_pb2.py | 46 +- .../permissions/v1beta1/query_pb2_grpc.py | 24 +- .../injective/txfees/v1beta1/genesis_pb2.py | 31 + .../txfees/v1beta1/genesis_pb2_grpc.py | 4 + .../injective/txfees/v1beta1/query_pb2.py | 48 + .../txfees/v1beta1/query_pb2_grpc.py | 123 +++ .../proto/injective/txfees/v1beta1/tx_pb2.py | 44 + .../injective/txfees/v1beta1/tx_pb2_grpc.py | 80 ++ .../injective/txfees/v1beta1/txfees_pb2.py | 58 ++ .../txfees/v1beta1/txfees_pb2_grpc.py | 4 + .../proto/osmosis/txfees/v1beta1/query_pb2.py | 38 + .../osmosis/txfees/v1beta1/query_pb2_grpc.py | 78 ++ pyproject.toml | 2 +- .../configurable_txfees_query_servicer.py | 16 + .../grpc/test_chain_grpc_exchange_api.py | 16 +- .../chain/grpc/test_chain_grpc_txfees_api.py | 85 ++ .../grpc/test_indexer_grpc_account_api.py | 10 + .../grpc/test_indexer_grpc_auction_api.py | 4 + .../grpc/test_indexer_grpc_explorer_api.py | 8 + .../grpc/test_indexer_grpc_portfolio_api.py | 16 +- .../grpc/test_indexer_grpc_spot_api.py | 22 +- .../test_indexer_grpc_account_stream.py | 4 + .../test_indexer_grpc_explorer_stream.py | 2 + ...test_gas_heuristics_gas_limit_estimator.py | 850 ++++++++++++++++++ ...essage_based_transaction_fee_calculator.py | 14 +- 118 files changed, 4078 insertions(+), 792 deletions(-) create mode 100644 examples/chain_client/txfees/query/1_GetEipBaseFee.py create mode 100644 pyinjective/client/chain/grpc/chain_grpc_txfees_api.py create mode 100644 pyinjective/core/gas_heuristics_gas_limit_estimator.py create mode 100644 pyinjective/proto/exchange/injective_referral_rpc_pb2.py create mode 100644 pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/query_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py create mode 100644 pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py create mode 100644 pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py create mode 100644 tests/client/chain/grpc/configurable_txfees_query_servicer.py create mode 100644 tests/client/chain/grpc/test_chain_grpc_txfees_api.py create mode 100644 tests/core/test_gas_heuristics_gas_limit_estimator.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 322c61d2..1cec70fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,15 @@ All notable changes to this project will be documented in this file. -## [1.9.0] - 9999-99-99 +## [1.10.0] - 9999-99-99 +### Changed +- Update in the implementation of the gas limit estimator to use the same values as the chain for the fixed gas messages + +## [1.9.1] - 2025-03-03 +### Fixed +- Added quantization in the functions that convert notional values to chain format + +## [1.9.0] - 2025-02-13 ### Added - Added support for all new queries and messages from the new Permissions module diff --git a/Makefile b/Makefile index ca05f4cc..c221826a 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.117_RC1 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.14.48 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/buf.gen.yaml b/buf.gen.yaml index 580c2310..53d077bf 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.9-inj-2 + tag: v0.50.9-inj-4 - git_repo: https://github.com/InjectiveLabs/ibc-go - tag: v8.3.2-inj-0 + tag: v8.6.1-inj - git_repo: https://github.com/InjectiveLabs/wasmd - tag: v0.53.2-inj-1 + tag: v0.53.2-inj.2 # - 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: testnet + tag: v1.15.0-beta.2 subdir: proto +# - git_repo: https://github.com/InjectiveLabs/injective-core +# branch: release/v1.15.x +# subdir: proto - directory: proto diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index fbec8988..ec47bf63 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -6,7 +6,7 @@ import dotenv from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.orderhash import OrderHashManager from pyinjective.transaction import Transaction @@ -111,7 +111,11 @@ async def main() -> None: .with_account_num(client.get_number()) .with_chain_id(network.chain_id) ) - gas_price = GAS_PRICE + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + base_gas = 85000 gas_limit = base_gas + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") @@ -148,7 +152,11 @@ async def main() -> None: .with_account_num(client.get_number()) .with_chain_id(network.chain_id) ) - gas_price = GAS_PRICE + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + base_gas = 85000 gas_limit = base_gas + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") @@ -240,7 +248,11 @@ async def main() -> None: .with_account_num(client.get_number()) .with_chain_id(network.chain_id) ) - gas_price = GAS_PRICE + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + base_gas = 85000 gas_limit = base_gas + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") diff --git a/examples/chain_client/3_MessageBroadcaster.py b/examples/chain_client/3_MessageBroadcaster.py index 735b92e3..0415a932 100644 --- a/examples/chain_client/3_MessageBroadcaster.py +++ b/examples/chain_client/3_MessageBroadcaster.py @@ -1,11 +1,12 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -17,11 +18,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -64,7 +74,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([msg]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py index 4e08397b..4a4a11ab 100644 --- a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py +++ b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py @@ -1,4 +1,5 @@ import asyncio +import json import os import uuid from decimal import Decimal @@ -6,7 +7,6 @@ import dotenv from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer as ProtoMsgComposer from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import Address, PrivateKey @@ -19,10 +19,10 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) # initialize grpc client client = AsyncClient(network) + composer = await client.composer() await client.sync_timeout_height() # load account @@ -30,9 +30,16 @@ async def main() -> None: pub_key = priv_key.to_public_key() address = pub_key.to_address() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_for_grantee_account_using_simulation( network=network, grantee_private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) # prepare tx msg @@ -55,7 +62,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([msg]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index 8c4f685f..c463b699 100644 --- a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py +++ b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py @@ -1,11 +1,12 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -17,11 +18,21 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -64,7 +75,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([msg]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py index 4b7fbd2e..5bfb75ce 100644 --- a/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py +++ b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py @@ -1,4 +1,5 @@ import asyncio +import json import os import uuid from decimal import Decimal @@ -6,7 +7,6 @@ import dotenv from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer as ProtoMsgComposer from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import Address, PrivateKey @@ -19,20 +19,26 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) # initialize grpc client client = AsyncClient(network) - await client.sync_timeout_height() + composer = await client.composer() # load account priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_for_grantee_account_without_simulation( network=network, grantee_private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) # prepare tx msg @@ -54,7 +60,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([msg]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/auction/1_MsgBid.py b/examples/chain_client/auction/1_MsgBid.py index 1efaa3e3..858195e6 100644 --- a/examples/chain_client/auction/1_MsgBid.py +++ b/examples/chain_client/auction/1_MsgBid.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -52,7 +52,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/authz/1_MsgGrant.py b/examples/chain_client/authz/1_MsgGrant.py index 111a050c..ed6ef08c 100644 --- a/examples/chain_client/authz/1_MsgGrant.py +++ b/examples/chain_client/authz/1_MsgGrant.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -72,7 +72,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/authz/2_MsgExec.py b/examples/chain_client/authz/2_MsgExec.py index 8d9891a5..a2eae9d7 100644 --- a/examples/chain_client/authz/2_MsgExec.py +++ b/examples/chain_client/authz/2_MsgExec.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import Address, PrivateKey @@ -79,7 +79,10 @@ async def main() -> None: print(unpacked_msg_res) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/authz/3_MsgRevoke.py b/examples/chain_client/authz/3_MsgRevoke.py index 91bb192d..86a659cf 100644 --- a/examples/chain_client/authz/3_MsgRevoke.py +++ b/examples/chain_client/authz/3_MsgRevoke.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/bank/1_MsgSend.py b/examples/chain_client/bank/1_MsgSend.py index 1d926898..a08a9d37 100644 --- a/examples/chain_client/bank/1_MsgSend.py +++ b/examples/chain_client/bank/1_MsgSend.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/distribution/1_SetWithdrawAddress.py b/examples/chain_client/distribution/1_SetWithdrawAddress.py index b317a998..a8dd3973 100644 --- a/examples/chain_client/distribution/1_SetWithdrawAddress.py +++ b/examples/chain_client/distribution/1_SetWithdrawAddress.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -17,9 +18,14 @@ async def main() -> None: client = AsyncClient(network) composer = await client.composer() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, client=client, composer=composer, ) @@ -39,7 +45,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py index 02facdc7..d560556c 100644 --- a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py +++ b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -18,9 +19,14 @@ async def main() -> None: client = AsyncClient(network) composer = await client.composer() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, client=client, composer=composer, ) @@ -40,7 +46,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py index cd351d1f..c0c86bbc 100644 --- a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py +++ b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -18,9 +19,14 @@ async def main() -> None: client = AsyncClient(network) composer = await client.composer() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, client=client, composer=composer, ) @@ -38,7 +44,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/4_FundCommunityPool.py b/examples/chain_client/distribution/4_FundCommunityPool.py index c60475c8..2b78af9a 100644 --- a/examples/chain_client/distribution/4_FundCommunityPool.py +++ b/examples/chain_client/distribution/4_FundCommunityPool.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -18,9 +19,14 @@ async def main() -> None: client = AsyncClient(network) composer = await client.composer() + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, client=client, composer=composer, ) @@ -40,7 +46,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py index 4e0ff327..3e5f44f2 100644 --- a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -75,7 +75,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py index 7b561970..6db44951 100644 --- a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py +++ b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -75,7 +75,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py index 20be2bd0..f0215781 100644 --- a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py +++ b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -59,7 +59,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py index c5786e8a..69f06e63 100644 --- a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py +++ b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -20,11 +21,17 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -55,7 +62,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py index c15711b2..f628bf02 100644 --- a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.utils.denom import Denom @@ -85,7 +85,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py index 9b68bc85..247c6883 100644 --- a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py +++ b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -73,7 +73,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py index 582c6dc6..54b00845 100644 --- a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py +++ b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -62,7 +62,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py index a50fc0cf..a77959e1 100644 --- a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py +++ b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -61,7 +61,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/18_MsgExternalTransfer.py b/examples/chain_client/exchange/18_MsgExternalTransfer.py index 2bcc86a1..e1abfc19 100644 --- a/examples/chain_client/exchange/18_MsgExternalTransfer.py +++ b/examples/chain_client/exchange/18_MsgExternalTransfer.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -61,7 +61,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/19_MsgLiquidatePosition.py b/examples/chain_client/exchange/19_MsgLiquidatePosition.py index 9788b865..bac9f90e 100644 --- a/examples/chain_client/exchange/19_MsgLiquidatePosition.py +++ b/examples/chain_client/exchange/19_MsgLiquidatePosition.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -82,7 +82,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/1_MsgDeposit.py b/examples/chain_client/exchange/1_MsgDeposit.py index bbf64710..2af750e8 100644 --- a/examples/chain_client/exchange/1_MsgDeposit.py +++ b/examples/chain_client/exchange/1_MsgDeposit.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -55,7 +55,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py index 276276e7..dd89e7b6 100644 --- a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py +++ b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -63,7 +63,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/21_MsgRewardsOptOut.py b/examples/chain_client/exchange/21_MsgRewardsOptOut.py index 2306b541..0730fe76 100644 --- a/examples/chain_client/exchange/21_MsgRewardsOptOut.py +++ b/examples/chain_client/exchange/21_MsgRewardsOptOut.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -52,7 +52,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py index b638b28a..7114fb6a 100644 --- a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py +++ b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -71,7 +71,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py index 5914063d..06f02e1f 100644 --- a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py +++ b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -20,11 +21,17 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -49,7 +56,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([msg]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py index 67d73a4d..1d303ad0 100644 --- a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py +++ b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -47,7 +54,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py index da2aa593..e5ec3697 100644 --- a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py +++ b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -49,7 +56,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py b/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py index 91d52808..d84f0629 100644 --- a/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py +++ b/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -44,7 +51,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/27_MsgActivateStakeGrant.py b/examples/chain_client/exchange/27_MsgActivateStakeGrant.py index c0ca5d3b..1a799231 100644 --- a/examples/chain_client/exchange/27_MsgActivateStakeGrant.py +++ b/examples/chain_client/exchange/27_MsgActivateStakeGrant.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -20,11 +21,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -41,7 +48,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/2_MsgWithdraw.py b/examples/chain_client/exchange/2_MsgWithdraw.py index 1070d28c..c542172d 100644 --- a/examples/chain_client/exchange/2_MsgWithdraw.py +++ b/examples/chain_client/exchange/2_MsgWithdraw.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -53,7 +53,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py index 53459eeb..a1a50606 100644 --- a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py +++ b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -50,7 +57,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py index 1cda2f20..9b71269f 100644 --- a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py +++ b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -55,7 +62,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py index 78d25d6c..c4c3a083 100644 --- a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py +++ b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,11 +22,17 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, ) # load account @@ -56,7 +63,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py index 5b3b966a..9b7827dc 100644 --- a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py +++ b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -73,7 +73,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py index 36ea27de..57ea2409 100644 --- a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py +++ b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -72,7 +72,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py index 4bcedda8..3f927097 100644 --- a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py +++ b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -59,7 +59,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py index ac490216..1e3216c6 100644 --- a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py +++ b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py @@ -7,7 +7,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -150,7 +150,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/ibc/transfer/1_MsgTransfer.py b/examples/chain_client/ibc/transfer/1_MsgTransfer.py index 604ece6e..346961c7 100644 --- a/examples/chain_client/ibc/transfer/1_MsgTransfer.py +++ b/examples/chain_client/ibc/transfer/1_MsgTransfer.py @@ -1,4 +1,5 @@ import asyncio +import json import os from decimal import Decimal @@ -21,7 +22,10 @@ async def main() -> None: client = AsyncClient(network) await client.initialize_tokens_from_chain_denoms() composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, @@ -54,7 +58,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py index 99c10fc0..1bed1031 100644 --- a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py +++ b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -61,7 +61,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/insurance/2_MsgUnderwrite.py b/examples/chain_client/insurance/2_MsgUnderwrite.py index 16b75e70..01cff5e9 100644 --- a/examples/chain_client/insurance/2_MsgUnderwrite.py +++ b/examples/chain_client/insurance/2_MsgUnderwrite.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/insurance/3_MsgRequestRedemption.py b/examples/chain_client/insurance/3_MsgRequestRedemption.py index ecc2793c..b1cc3762 100644 --- a/examples/chain_client/insurance/3_MsgRequestRedemption.py +++ b/examples/chain_client/insurance/3_MsgRequestRedemption.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py index b59b34a3..6a0de597 100644 --- a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py +++ b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py index 1e3b9c8f..74400ec7 100644 --- a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py +++ b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -62,7 +62,10 @@ async def main() -> None: print(sim_res_msg) # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/peggy/1_MsgSendToEth.py b/examples/chain_client/peggy/1_MsgSendToEth.py index 06e2d78c..5a8550d2 100644 --- a/examples/chain_client/peggy/1_MsgSendToEth.py +++ b/examples/chain_client/peggy/1_MsgSendToEth.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -66,7 +66,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/permissions/1_MsgCreateNamespace.py b/examples/chain_client/permissions/1_MsgCreateNamespace.py index 25dca4e3..f7f071a9 100644 --- a/examples/chain_client/permissions/1_MsgCreateNamespace.py +++ b/examples/chain_client/permissions/1_MsgCreateNamespace.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,19 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.devnet() - composer = ProtoMsgComposer(network=network.string()) + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -93,7 +102,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/permissions/2_MsgUpdateNamespace.py b/examples/chain_client/permissions/2_MsgUpdateNamespace.py index aefc13d4..688413ba 100644 --- a/examples/chain_client/permissions/2_MsgUpdateNamespace.py +++ b/examples/chain_client/permissions/2_MsgUpdateNamespace.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.devnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -75,7 +85,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/permissions/3_MsgUpdateActorRoles.py b/examples/chain_client/permissions/3_MsgUpdateActorRoles.py index 7ab3e86a..af69f4b5 100644 --- a/examples/chain_client/permissions/3_MsgUpdateActorRoles.py +++ b/examples/chain_client/permissions/3_MsgUpdateActorRoles.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.devnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -55,7 +65,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/permissions/4_MsgClaimVoucher.py b/examples/chain_client/permissions/4_MsgClaimVoucher.py index 6e480e5a..90b10180 100644 --- a/examples/chain_client/permissions/4_MsgClaimVoucher.py +++ b/examples/chain_client/permissions/4_MsgClaimVoucher.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.devnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -36,7 +46,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/staking/1_MsgDelegate.py b/examples/chain_client/staking/1_MsgDelegate.py index e32f6691..c532a1d6 100644 --- a/examples/chain_client/staking/1_MsgDelegate.py +++ b/examples/chain_client/staking/1_MsgDelegate.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -57,7 +57,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/tokenfactory/1_CreateDenom.py b/examples/chain_client/tokenfactory/1_CreateDenom.py index a4bd2ef3..870e68b7 100644 --- a/examples/chain_client/tokenfactory/1_CreateDenom.py +++ b/examples/chain_client/tokenfactory/1_CreateDenom.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -38,7 +48,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tokenfactory/2_MsgMint.py b/examples/chain_client/tokenfactory/2_MsgMint.py index 4534ad1c..78b79a74 100644 --- a/examples/chain_client/tokenfactory/2_MsgMint.py +++ b/examples/chain_client/tokenfactory/2_MsgMint.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -37,7 +47,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tokenfactory/3_MsgBurn.py b/examples/chain_client/tokenfactory/3_MsgBurn.py index 790bfbf3..e65c0f5f 100644 --- a/examples/chain_client/tokenfactory/3_MsgBurn.py +++ b/examples/chain_client/tokenfactory/3_MsgBurn.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -37,7 +47,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py index d1a1ba46..f2939c78 100644 --- a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py +++ b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -35,7 +45,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py index 367649e0..a0cba885 100644 --- a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py +++ b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.composer import Composer as ProtoMsgComposer +from pyinjective.async_client import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -15,11 +16,20 @@ async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - composer = ProtoMsgComposer(network=network.string()) + + client = AsyncClient(network) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( network=network, private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, ) priv_key = PrivateKey.from_hex(private_key_in_hexa) @@ -51,7 +61,12 @@ async def main() -> None: # broadcast the transaction result = await message_broadcaster.broadcast([message]) print("---Transaction Response---") - print(result) + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/txfees/query/1_GetEipBaseFee.py b/examples/chain_client/txfees/query/1_GetEipBaseFee.py new file mode 100644 index 00000000..4d3cc2eb --- /dev/null +++ b/examples/chain_client/txfees/query/1_GetEipBaseFee.py @@ -0,0 +1,16 @@ +import asyncio +import json + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + metadata = await client.fetch_eip_base_fee() + print(json.dumps(metadata, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/wasm/1_MsgExecuteContract.py b/examples/chain_client/wasm/1_MsgExecuteContract.py index d18c6398..a711f1b8 100644 --- a/examples/chain_client/wasm/1_MsgExecuteContract.py +++ b/examples/chain_client/wasm/1_MsgExecuteContract.py @@ -5,7 +5,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -67,7 +67,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py index a195c7c4..1b271961 100644 --- a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py +++ b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py @@ -6,7 +6,7 @@ from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT, GAS_PRICE +from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -64,7 +64,10 @@ async def main() -> None: return # build tx - gas_price = GAS_PRICE + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") fee = [ diff --git a/examples/exchange_client/oracle_rpc/1_StreamPrices.py b/examples/exchange_client/oracle_rpc/1_StreamPrices.py index 91465207..f4f98274 100644 --- a/examples/exchange_client/oracle_rpc/1_StreamPrices.py +++ b/examples/exchange_client/oracle_rpc/1_StreamPrices.py @@ -29,7 +29,7 @@ async def main() -> None: base_symbol = market.oracle_base quote_symbol = market.oracle_quote - oracle_type = market.oracle_type + oracle_type = market.oracle_type.lower() task = asyncio.get_event_loop().create_task( client.listen_oracle_prices_updates( diff --git a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py index ea6ef020..f1cf0739 100644 --- a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py +++ b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py @@ -9,7 +9,7 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) account_address = "inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt" - portfolio = await client.fetch_account_portfolio_balances(account_address=account_address) + portfolio = await client.fetch_account_portfolio_balances(account_address=account_address, usd=False) print(portfolio) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 5327c6f3..62811380 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -13,6 +13,7 @@ from pyinjective.client.chain.grpc.chain_grpc_exchange_api import ChainGrpcExchangeApi 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_txfees_api import ChainGrpcTxfeesApi from pyinjective.client.chain.grpc.chain_grpc_wasm_api import ChainGrpcWasmApi from pyinjective.client.chain.grpc_stream.chain_grpc_chain_stream import ChainGrpcChainStream from pyinjective.client.indexer.grpc.indexer_grpc_account_api import IndexerGrpcAccountApi @@ -34,6 +35,7 @@ from pyinjective.client.indexer.grpc_stream.indexer_grpc_spot_stream import IndexerGrpcSpotStream from pyinjective.client.model.pagination import PaginationOption from pyinjective.composer import Composer +from pyinjective.constant import GAS_PRICE from pyinjective.core.ibc.channel.grpc.ibc_channel_grpc_api import IBCChannelGrpcApi from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi @@ -183,6 +185,10 @@ def __init__( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, ) + self.txfees_api = ChainGrpcTxfeesApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) self.wasm_api = ChainGrpcWasmApi( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, @@ -264,6 +270,21 @@ def __init__( cookie_assistant=network.explorer_cookie_assistant, ) + def __del__(self): + self._cancel_timeout_height_sync_task() + + async def close_exchange_channel(self): + await self.exchange_channel.close() + self._cancel_timeout_height_sync_task() + + async def close_chain_channel(self): + await self.chain_channel.close() + self._cancel_timeout_height_sync_task() + + async def close_chain_stream_channel(self): + await self.chain_stream_channel.close() + self._cancel_timeout_height_sync_task() + async def all_tokens(self) -> Dict[str, Token]: if self._tokens_by_symbol is None: async with self._tokens_and_markets_initialization_lock: @@ -303,14 +324,6 @@ def get_number(self): async def fetch_tx(self, hash: str) -> Dict[str, Any]: return await self.tx_api.fetch_tx(hash=hash) - async def close_exchange_channel(self): - await self.exchange_channel.close() - self._cancel_timeout_height_sync_task() - - async def close_chain_channel(self): - await self.chain_channel.close() - self._cancel_timeout_height_sync_task() - async def sync_timeout_height(self): try: block = await self.fetch_latest_block() @@ -2037,8 +2050,12 @@ 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 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 fetch_account_portfolio_balances( + self, account_address: str, usd: Optional[bool] = None + ) -> Dict[str, Any]: + return await self.exchange_portfolio_api.fetch_account_portfolio_balances( + account_address=account_address, usd=usd + ) async def listen_account_portfolio_updates( self, @@ -2310,6 +2327,13 @@ async def fetch_permissions_module_state(self) -> Dict[str, Any]: # endregion + # ------------------------- + # region IBC Channel module + async def fetch_eip_base_fee(self) -> Dict[str, Any]: + return await self.txfees_api.fetch_eip_base_fee() + + # endregion + async def composer(self): return Composer( network=self.network.string(), @@ -2319,6 +2343,20 @@ async def composer(self): tokens=await self.all_tokens(), ) + async def current_chain_gas_price(self) -> int: + gas_price = GAS_PRICE + try: + eip_base_fee_response = await self.fetch_eip_base_fee() + gas_price = int( + Token.convert_value_from_extended_decimal_format(Decimal(eip_base_fee_response["baseFee"]["baseFee"])) + ) + except Exception as e: + logger = LoggerProvider().logger_for_class(logging_class=self.__class__) + logger.error("an error occurred when querying the gas price from the chain, using the default gas price") + logger.debug(f"error querying the gas price from chain {e}") + + return gas_price + async def initialize_tokens_from_chain_denoms(self): # force initialization of markets and tokens await self.all_tokens() @@ -2537,5 +2575,11 @@ async def _timeout_height_sync_process(self): def _cancel_timeout_height_sync_task(self): if self._timeout_height_sync_task is not None: - self._timeout_height_sync_task.cancel() + try: + self._timeout_height_sync_task.cancel() + asyncio.get_event_loop().run_until_complete(asyncio.wait_for(self._timeout_height_sync_task, timeout=1)) + except Exception as e: + logger = LoggerProvider().logger_for_class(logging_class=self.__class__) + logger.warning("error canceling timeout height sync task") + logger.debug("error canceling timeout height sync task", exc_info=e) self._timeout_height_sync_task = None diff --git a/pyinjective/client/chain/grpc/chain_grpc_token_factory_api.py b/pyinjective/client/chain/grpc/chain_grpc_token_factory_api.py index 457f6f1b..60cc8e0a 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_token_factory_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_token_factory_api.py @@ -6,7 +6,6 @@ from pyinjective.proto.injective.tokenfactory.v1beta1 import ( query_pb2 as token_factory_query_pb, query_pb2_grpc as token_factory_query_grpc, - tx_pb2_grpc as token_factory_tx_grpc, ) from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant @@ -14,7 +13,6 @@ class ChainGrpcTokenFactoryApi: def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): self._query_stub = token_factory_query_grpc.QueryStub(channel) - self._tx_stub = token_factory_tx_grpc.MsgStub(channel) self._assistant = GrpcApiRequestAssistant(cookie_assistant=cookie_assistant) async def fetch_module_params(self) -> Dict[str, Any]: diff --git a/pyinjective/client/chain/grpc/chain_grpc_txfees_api.py b/pyinjective/client/chain/grpc/chain_grpc_txfees_api.py new file mode 100644 index 00000000..3a020311 --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_txfees_api.py @@ -0,0 +1,28 @@ +from typing import Any, Callable, Dict + +from grpc.aio import Channel + +from pyinjective.core.network import CookieAssistant +from pyinjective.proto.injective.txfees.v1beta1 import query_pb2 as txfees_query_pb, query_pb2_grpc as txfees_query_grpc +from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant + + +class ChainGrpcTxfeesApi: + def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): + self._query_stub = txfees_query_grpc.QueryStub(channel) + self._assistant = GrpcApiRequestAssistant(cookie_assistant=cookie_assistant) + + async def fetch_module_params(self) -> Dict[str, Any]: + request = txfees_query_pb.QueryParamsRequest() + response = await self._execute_call(call=self._query_stub.Params, request=request) + + return response + + async def fetch_eip_base_fee(self) -> Dict[str, Any]: + request = txfees_query_pb.QueryEipBaseFeeRequest() + response = await self._execute_call(call=self._query_stub.GetEipBaseFee, 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/indexer/grpc/indexer_grpc_portfolio_api.py b/pyinjective/client/indexer/grpc/indexer_grpc_portfolio_api.py index d9d7460c..4a5cab86 100644 --- a/pyinjective/client/indexer/grpc/indexer_grpc_portfolio_api.py +++ b/pyinjective/client/indexer/grpc/indexer_grpc_portfolio_api.py @@ -1,4 +1,4 @@ -from typing import Any, Callable, Dict +from typing import Any, Callable, Dict, Optional from grpc.aio import Channel @@ -21,8 +21,10 @@ async def fetch_account_portfolio(self, account_address: str) -> Dict[str, Any]: return response - async def fetch_account_portfolio_balances(self, account_address: str) -> Dict[str, Any]: - request = exchange_portfolio_pb.AccountPortfolioBalancesRequest(account_address=account_address) + async def fetch_account_portfolio_balances( + self, account_address: str, usd: Optional[bool] = None + ) -> Dict[str, Any]: + request = exchange_portfolio_pb.AccountPortfolioBalancesRequest(account_address=account_address, usd=usd) response = await self._execute_call(call=self._stub.AccountPortfolioBalances, request=request) return response diff --git a/pyinjective/core/broadcaster.py b/pyinjective/core/broadcaster.py index 778bc4c9..030547ed 100644 --- a/pyinjective/core/broadcaster.py +++ b/pyinjective/core/broadcaster.py @@ -1,7 +1,7 @@ import math from abc import ABC, abstractmethod from decimal import Decimal -from typing import List, Optional +from typing import List, Optional, Type from google.protobuf import any_pb2 from grpc import RpcError @@ -10,6 +10,7 @@ from pyinjective.async_client import AsyncClient from pyinjective.composer import Composer from pyinjective.constant import GAS_PRICE +from pyinjective.core.gas_heuristics_gas_limit_estimator import GasHeuristicsGasLimitEstimator from pyinjective.core.gas_limit_estimator import GasLimitEstimator from pyinjective.core.network import Network from pyinjective.ofac import OfacChecker @@ -48,6 +49,15 @@ async def configure_gas_fee_for_transaction( ): ... + @abstractmethod + def update_gas_price(self, gas_price: int): + """Updates the gas price used for transaction fee calculation. + + Args: + gas_price (int): The new gas price value in chain format (e.g. 500000000000000000 for 0.5 INJ) + """ + ... + class MsgBroadcasterWithPk: def __init__( @@ -73,13 +83,27 @@ def new_using_simulation( cls, network: Network, private_key: str, + gas_price: Optional[int] = None, client: Optional[AsyncClient] = None, composer: Optional[Composer] = None, ): + """Creates a new broadcaster instance that uses transaction simulation for gas estimation. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + private_key (str): The private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using simulation-based fee calculation + """ client = client or AsyncClient(network=network) composer = composer or Composer(network=client.network.string()) account_config = StandardAccountBroadcasterConfig(private_key=private_key) - fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer) + fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer, gas_price=gas_price) instance = cls( network=network, account_config=account_config, @@ -94,13 +118,100 @@ def new_without_simulation( cls, network: Network, private_key: str, + gas_price: Optional[int] = None, + client: Optional[AsyncClient] = None, + composer: Optional[Composer] = None, + ): + """Creates a new broadcaster instance that uses message-based gas estimation without simulation. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + private_key (str): The private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation + """ + return cls.new_using_gas_heuristics( + network=network, + private_key=private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + @classmethod + def new_using_gas_heuristics( + cls, + network: Network, + private_key: str, + gas_price: Optional[int] = None, + client: Optional[AsyncClient] = None, + composer: Optional[Composer] = None, + ): + """Creates a new broadcaster instance that uses gas heuristics for gas calculation + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + private_key (str): The private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation + """ + client = client or AsyncClient(network=network) + composer = composer or Composer(network=client.network.string()) + account_config = StandardAccountBroadcasterConfig(private_key=private_key) + fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_heuristics( + client=client, + composer=composer, + gas_price=gas_price, + ) + instance = cls( + network=network, + account_config=account_config, + client=client, + composer=composer, + fee_calculator=fee_calculator, + ) + return instance + + @classmethod + def new_using_estimate_gas( + cls, + network: Network, + private_key: str, + gas_price: Optional[int] = None, client: Optional[AsyncClient] = None, composer: Optional[Composer] = None, ): + """Creates a new broadcaster instance that uses message-based gas estimation without simulation. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + private_key (str): The private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation + """ client = client or AsyncClient(network=network) composer = composer or Composer(network=client.network.string()) account_config = StandardAccountBroadcasterConfig(private_key=private_key) - fee_calculator = MessageBasedTransactionFeeCalculator(client=client, composer=composer) + fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_estimation( + client=client, + composer=composer, + gas_price=gas_price, + ) instance = cls( network=network, account_config=account_config, @@ -115,13 +226,28 @@ def new_for_grantee_account_using_simulation( cls, network: Network, grantee_private_key: str, + gas_price: Optional[int] = None, client: Optional[AsyncClient] = None, composer: Optional[Composer] = None, ): + """Creates a new broadcaster instance for a grantee account that uses transaction simulation for gas estimation. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + grantee_private_key (str): The grantee's private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using simulation-based fee calculation for a grantee + account + """ client = client or AsyncClient(network=network) composer = composer or Composer(network=client.network.string()) account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) - fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer) + fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer, gas_price=gas_price) instance = cls( network=network, account_config=account_config, @@ -136,13 +262,104 @@ def new_for_grantee_account_without_simulation( cls, network: Network, grantee_private_key: str, + gas_price: Optional[int] = None, client: Optional[AsyncClient] = None, composer: Optional[Composer] = None, ): + """Creates a new broadcaster instance for a grantee account that uses gas estimator using gas heuristics. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + grantee_private_key (str): The grantee's private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee + account + """ + return cls.new_for_grantee_account_using_gas_heuristics( + network=network, + grantee_private_key=grantee_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + @classmethod + def new_for_grantee_account_using_gas_heuristics( + cls, + network: Network, + grantee_private_key: str, + gas_price: Optional[int] = None, + client: Optional[AsyncClient] = None, + composer: Optional[Composer] = None, + ): + """Creates a new broadcaster instance for a grantee account that uses gas heuristics. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + grantee_private_key (str): The grantee's private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee + account + """ client = client or AsyncClient(network=network) composer = composer or Composer(network=client.network.string()) account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) - fee_calculator = MessageBasedTransactionFeeCalculator(client=client, composer=composer) + fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_heuristics( + client=client, + composer=composer, + gas_price=gas_price, + ) + instance = cls( + network=network, + account_config=account_config, + client=client, + composer=composer, + fee_calculator=fee_calculator, + ) + return instance + + @classmethod + def new_for_grantee_account_using_estimated_gas( + cls, + network: Network, + grantee_private_key: str, + gas_price: Optional[int] = None, + client: Optional[AsyncClient] = None, + composer: Optional[Composer] = None, + ): + """Creates a new broadcaster instance for a grantee account that uses message-based gas estimation without + simulation. + + Args: + network (Network): The network configuration to use (mainnet, testnet, etc.) + grantee_private_key (str): The grantee's private key in hex format for signing transactions + gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). + Defaults to None + client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None + composer (Optional[Composer]): Custom Composer instance. Defaults to None + + Returns: + MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee + account + """ + client = client or AsyncClient(network=network) + composer = composer or Composer(network=client.network.string()) + account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) + fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_estimation( + client=client, + composer=composer, + gas_price=gas_price, + ) instance = cls( network=network, account_config=account_config, @@ -185,6 +402,14 @@ async def broadcast(self, messages: List[any_pb2.Any]): return transaction_result + def update_gas_price(self, gas_price: int): + """Updates the gas price used for transaction fee calculation. + + Args: + gas_price (int): The new gas price value in chain format (e.g. 500000000 for 0.5 INJ) + """ + self._fee_calculator.update_gas_price(gas_price=gas_price) + class StandardAccountBroadcasterConfig(BroadcasterAccountConfig): def __init__(self, private_key: str): @@ -278,14 +503,39 @@ async def configure_gas_fee_for_transaction( transaction.with_gas(gas=gas_limit) transaction.with_fee(fee=fee) + def update_gas_price(self, gas_price: int): + """Updates the gas price used for transaction fee calculation. + + Args: + gas_price (int): The new gas price value in chain format (e.g. 500000000 for 0.5 INJ) + """ + self._gas_price = gas_price + class MessageBasedTransactionFeeCalculator(TransactionFeeCalculator): - TRANSACTION_GAS_LIMIT = 60_000 + TRANSACTION_ANTE_GAS_LIMIT = 105_000 - def __init__(self, client: AsyncClient, composer: Composer, gas_price: Optional[int] = None): + def __init__( + self, + client: AsyncClient, + composer: Composer, + gas_price: Optional[int] = None, + estimator_class: Optional[Type] = None, + ): self._client = client self._composer = composer self._gas_price = gas_price or self.DEFAULT_GAS_PRICE + self._estimator_class = estimator_class or GasLimitEstimator + + @classmethod + def new_using_gas_heuristics(cls, client: AsyncClient, composer: Composer, gas_price: Optional[int] = None): + return cls( + client=client, composer=composer, gas_price=gas_price, estimator_class=GasHeuristicsGasLimitEstimator + ) + + @classmethod + def new_using_gas_estimation(cls, client: AsyncClient, composer: Composer, gas_price: Optional[int] = None): + return cls(client=client, composer=composer, gas_price=gas_price, estimator_class=GasLimitEstimator) async def configure_gas_fee_for_transaction( self, @@ -294,7 +544,7 @@ async def configure_gas_fee_for_transaction( public_key: PublicKey, ): messages_gas_limit = math.ceil(self._calculate_gas_limit(messages=transaction.msgs)) - transaction_gas_limit = messages_gas_limit + self.TRANSACTION_GAS_LIMIT + transaction_gas_limit = messages_gas_limit + self.TRANSACTION_ANTE_GAS_LIMIT fee = [ self._composer.coin( @@ -317,7 +567,15 @@ def _calculate_gas_limit(self, messages: List[any_pb2.Any]) -> int: total_gas_limit = Decimal("0") for message in messages: - estimator = GasLimitEstimator.for_message(message=message) + estimator = self._estimator_class.for_message(message=message) total_gas_limit += estimator.gas_limit() return math.ceil(total_gas_limit) + + def update_gas_price(self, gas_price: int): + """Updates the gas price used for transaction fee calculation. + + Args: + gas_price (int): The new gas price value in chain format (e.g. 500000000 for 0.5 INJ) + """ + self._gas_price = gas_price diff --git a/pyinjective/core/gas_heuristics_gas_limit_estimator.py b/pyinjective/core/gas_heuristics_gas_limit_estimator.py new file mode 100644 index 00000000..10a4da5c --- /dev/null +++ b/pyinjective/core/gas_heuristics_gas_limit_estimator.py @@ -0,0 +1,506 @@ +import math +from abc import ABC, abstractmethod +from typing import List, Union + +from google.protobuf import any_pb2 + +from pyinjective.core.gas_limit_estimator import GasLimitEstimator +from pyinjective.proto.cosmos.authz.v1beta1 import tx_pb2 as cosmos_authz_tx_pb +from pyinjective.proto.injective.exchange.v1beta1 import ( + exchange_pb2 as injective_exchange_pb, + tx_pb2 as injective_exchange_tx_pb, +) + +SPOT_ORDER_CREATION_GAS_LIMIT = 100_000 +SPOT_MARKET_ORDER_CREATION_GAS_LIMIT = 50_000 +POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT = 120_000 +DERIVATIVE_ORDER_CREATION_GAS_LIMIT = 120_000 +DERIVATIVE_MARKET_ORDER_CREATION_GAS_LIMIT = 105_000 +POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT = 140_000 +BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT = DERIVATIVE_ORDER_CREATION_GAS_LIMIT +BINARY_OPTIONS_MARKET_ORDER_CREATION_GAS_LIMIT = DERIVATIVE_MARKET_ORDER_CREATION_GAS_LIMIT +POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT = POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT +SPOT_ORDER_CANCELATION_GAS_LIMIT = 65_000 +DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT = 70_000 +BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + +DEPOSIT_GAS_LIMIT = 38_000 +WITHDRAW_GAS_LIMIT = 35_000 +SUBACCOUNT_TRANSFER_GAS_LIMIT = 15_000 +EXTERNAL_TRANSFER_GAS_LIMIT = 40_000 +INCREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT = 51_000 +DECREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT = 60_000 + + +class GasHeuristicsGasLimitEstimator(ABC): + GENERAL_MESSAGE_GAS_LIMIT = 25_000 + BASIC_REFERENCE_GAS_LIMIT = 150_000 + + @classmethod + @abstractmethod + def applies_to(cls, message: any_pb2.Any) -> bool: + ... + + @classmethod + def for_message(cls, message: any_pb2.Any): + estimator_class = next( + ( + estimator_subclass + for estimator_subclass in cls.__subclasses__() + if estimator_subclass.applies_to(message=message) + ), + None, + ) + if estimator_class is None: + estimator = GasLimitEstimator.for_message(message=message) + else: + estimator = estimator_class(message=message) + + return estimator + + @abstractmethod + def gas_limit(self) -> int: + ... + + @staticmethod + def message_type(message: any_pb2.Any) -> str: + if isinstance(message, any_pb2.Any): + message_type = message.type_url + else: + message_type = message.DESCRIPTOR.full_name + return message_type + + @abstractmethod + def _message_class(self, message: any_pb2.Any): + ... + + def _parsed_message(self, message: any_pb2.Any) -> any_pb2.Any: + if isinstance(message, any_pb2.Any): + parsed_message = self._message_class(message=message).FromString(message.value) + else: + parsed_message = message + return parsed_message + + def _select_post_only_orders( + self, + orders: List[Union[injective_exchange_pb.SpotOrder, injective_exchange_pb.DerivativeOrder]], + ) -> List[Union[injective_exchange_pb.SpotOrder, injective_exchange_pb.DerivativeOrder]]: + return [ + order + for order in orders + if order.order_type in [injective_exchange_pb.OrderType.BUY_PO, injective_exchange_pb.OrderType.SELL_PO] + ] + + +class CreateSpotLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateSpotLimitOrder") + + def gas_limit(self) -> int: + if self._message.order.order_type in [ + injective_exchange_pb.OrderType.BUY_PO, + injective_exchange_pb.OrderType.SELL_PO, + ]: + total = POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT + else: + total = SPOT_ORDER_CREATION_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateSpotLimitOrder + + +class CreateSpotMarketOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateSpotMarketOrder") + + def gas_limit(self) -> int: + return SPOT_MARKET_ORDER_CREATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateSpotMarketOrder + + +class CancelSpotOrderGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCancelSpotOrder") + + def gas_limit(self) -> int: + return SPOT_ORDER_CANCELATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCancelSpotOrder + + +class CreateDerivativeLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateDerivativeLimitOrder") + + def gas_limit(self) -> int: + if self._message.order.order_type in [ + injective_exchange_pb.OrderType.BUY_PO, + injective_exchange_pb.OrderType.SELL_PO, + ]: + total = POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT + else: + total = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder + + +class CreateDerivativeMarketOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateDerivativeMarketOrder") + + def gas_limit(self) -> int: + return DERIVATIVE_MARKET_ORDER_CREATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder + + +class CancelDerivativeOrderGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCancelDerivativeOrder") + + def gas_limit(self) -> int: + return DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCancelDerivativeOrder + + +class CreateBinaryOptionsLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateBinaryOptionsLimitOrder") + + def gas_limit(self) -> int: + if self._message.order.order_type in [ + injective_exchange_pb.OrderType.BUY_PO, + injective_exchange_pb.OrderType.SELL_PO, + ]: + total = POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + else: + total = BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrder + + +class CreateBinaryOptionsMarketOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCreateBinaryOptionsMarketOrder") + + def gas_limit(self) -> int: + return BINARY_OPTIONS_MARKET_ORDER_CREATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder + + +class CancelBinaryOptionsOrderGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgCancelBinaryOptionsOrder") + + def gas_limit(self) -> int: + return BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgCancelBinaryOptionsOrder + + +class BatchCreateSpotLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgBatchCreateSpotLimitOrders") + + def gas_limit(self) -> int: + post_only_orders = self._select_post_only_orders(orders=self._message.orders) + + total = 0 + total += (len(self._message.orders) - len(post_only_orders)) * SPOT_ORDER_CREATION_GAS_LIMIT + total += math.ceil(len(post_only_orders) * POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT) + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgBatchCreateSpotLimitOrders + + +class BatchCancelSpotOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgBatchCancelSpotOrders") + + def gas_limit(self) -> int: + total = 0 + total += len(self._message.data) * SPOT_ORDER_CANCELATION_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgBatchCancelSpotOrders + + +class BatchCreateDerivativeLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgBatchCreateDerivativeLimitOrders") + + def gas_limit(self) -> int: + post_only_orders = self._select_post_only_orders(orders=self._message.orders) + + total = 0 + total += (len(self._message.orders) - len(post_only_orders)) * DERIVATIVE_ORDER_CREATION_GAS_LIMIT + total += math.ceil(len(post_only_orders) * POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT) + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgBatchCreateDerivativeLimitOrders + + +class BatchCancelDerivativeOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgBatchCancelDerivativeOrders") + + def gas_limit(self) -> int: + total = 0 + total += len(self._message.data) * DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders + + +class BatchUpdateOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): + AVERAGE_CANCEL_ALL_AFFECTED_ORDERS = 20 + + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + return cls.message_type(message=message).endswith("MsgBatchUpdateOrders") + + def gas_limit(self) -> int: + post_only_spot_orders = self._select_post_only_orders(orders=self._message.spot_orders_to_create) + post_only_derivative_orders = self._select_post_only_orders(orders=self._message.derivative_orders_to_create) + post_only_binary_options_orders = self._select_post_only_orders( + orders=self._message.binary_options_orders_to_create + ) + + total = 0 + total += (len(self._message.spot_orders_to_create) - len(post_only_spot_orders)) * SPOT_ORDER_CREATION_GAS_LIMIT + total += ( + len(self._message.derivative_orders_to_create) - len(post_only_derivative_orders) + ) * DERIVATIVE_ORDER_CREATION_GAS_LIMIT + total += ( + len(self._message.binary_options_orders_to_create) - len(post_only_binary_options_orders) + ) * BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + + total += math.ceil(len(post_only_spot_orders) * POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT) + total += math.ceil(len(post_only_derivative_orders) * POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT) + total += math.ceil(len(post_only_binary_options_orders) * POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT) + + total += len(self._message.spot_orders_to_cancel) * SPOT_ORDER_CANCELATION_GAS_LIMIT + total += len(self._message.derivative_orders_to_cancel) * DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + total += len(self._message.binary_options_orders_to_cancel) * BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + + total += ( + len(self._message.spot_market_ids_to_cancel_all) + * SPOT_ORDER_CANCELATION_GAS_LIMIT + * self.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS + ) + total += ( + len(self._message.derivative_market_ids_to_cancel_all) + * DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + * self.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS + ) + total += ( + len(self._message.binary_options_market_ids_to_cancel_all) + * BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + * self.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS + ) + + return total + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgBatchUpdateOrders + + +class DepositGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgDeposit") + + def gas_limit(self) -> int: + return DEPOSIT_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgDeposit + + +class WithdrawGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgWithdraw") + + def gas_limit(self) -> int: + return WITHDRAW_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgWithdraw + + +class SubaccountTransferGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgSubaccountTransfer") + + def gas_limit(self) -> int: + return SUBACCOUNT_TRANSFER_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgSubaccountTransfer + + +class ExternalTransferGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgExternalTransfer") + + def gas_limit(self) -> int: + return EXTERNAL_TRANSFER_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgExternalTransfer + + +class IncreasePositionMarginGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgIncreasePositionMargin") + + def gas_limit(self) -> int: + return INCREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgIncreasePositionMargin + + +class DecreasePositionMarginGasLimitEstimator(GasHeuristicsGasLimitEstimator): + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any): + message_type = cls.message_type(message=message) + return ".exchange." in message_type and message_type.endswith("MsgDecreasePositionMargin") + + def gas_limit(self) -> int: + return DECREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT + + def _message_class(self, message: any_pb2.Any): + return injective_exchange_tx_pb.MsgDecreasePositionMargin + + +class ExecGasLimitEstimator(GasHeuristicsGasLimitEstimator): + DEFAULT_GAS_LIMIT = 20_000 + + def __init__(self, message: any_pb2.Any): + self._message = self._parsed_message(message=message) + + @classmethod + def applies_to(cls, message: any_pb2.Any) -> bool: + return cls.message_type(message=message).endswith("MsgExec") + + def gas_limit(self) -> int: + total = sum( + [ + GasHeuristicsGasLimitEstimator.for_message(message=inner_message).gas_limit() + for inner_message in self._message.msgs + ] + ) + total += self.DEFAULT_GAS_LIMIT + + return total + + def _message_class(self, message: any_pb2.Any): + return cosmos_authz_tx_pb.MsgExec diff --git a/pyinjective/core/market.py b/pyinjective/core/market.py index 3824232f..01973dc8 100644 --- a/pyinjective/core/market.py +++ b/pyinjective/core/market.py @@ -1,5 +1,5 @@ from dataclasses import dataclass -from decimal import Decimal +from decimal import ROUND_UP, Decimal from typing import Optional from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS @@ -39,7 +39,8 @@ def price_to_chain_format(self, human_readable_value: Decimal) -> Decimal: def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: decimals = self.quote_token.decimals chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_balue = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_balue * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -120,7 +121,8 @@ def calculate_margin_in_chain_format( def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: decimals = self.quote_token.decimals chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_notional = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value @@ -230,7 +232,8 @@ def calculate_margin_in_chain_format( def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: decimals = self.quote_token.decimals chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") - extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_value = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_value diff --git a/pyinjective/ofac.json b/pyinjective/ofac.json index 90751074..b90e59cd 100644 --- a/pyinjective/ofac.json +++ b/pyinjective/ofac.json @@ -1,161 +1,75 @@ [ - "0x01e2919679362dfbc9ee1644ba9c6da6d6245bb1", - "0x03893a7c7463ae47d46bc7f091665f1893656003", "0x04dba1194ee10112fe6c3207c0687def0e78bacf", - "0x05e0b5b40b7b66098c2161a5ee11c5740a3a7c45", - "0x07687e702b410fa43f4cb4af7fa097918ffd2730", - "0x0836222f2b2b24a3f36f98668ed8f0b38d1a872f", "0x08723392ed15743cc38513c4925f5e6be5c17243", "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", - "0x09193888b3f38c82dedfda55259a82c0e7de875e", "0x0931ca4d13bb4ba75d9b7132ab690265d749a5e7", "0x098b716b8aaf21512996dc57eb0615e2383e2f96", - "0x0e3a09dda6b20afbb34ac7cd4a6881493f3e7bf7", "0x0ee5067b06776a89ccc7dc8ee369984ad7db5e06", - "0x12d66f87a04a9e220743712ce6d9bb1b5616b8fc", - "0x1356c899d8c9467c7f71c195612f8a395abf2f0a", - "0x169ad27a470d064dede56a2d3ff727986b15d52b", "0x175d44451403edf28469df03a9280c1197adb92c", - "0x178169b423a011fff22b9e3f3abea13414ddd0f1", - "0x179f48c78f57a3a78f0608cc9197b8972921d1d2", "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", + "0x1999ef52700c34de7ec2b68a28aafb37db0c5ade", "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", - "0x1e34a77868e19a6647b1f2f47b51ed72dede95dd", "0x21b8d56bda776bbe68655a16895afd96f5534fed", - "0x22aaa7720ddd5388a3c0a3333430953c68f1849b", - "0x23173fe8b96a4ad8d2e17fb83ea5dcccdca1ae52", - "0x23773e65ed146a459791799d01336db287f25334", - "0x242654336ca2205714071898f67e254eb49acdce", - "0x2573bac39ebe2901b4389cd468f2872cf7767faf", - "0x26903a5a198d571422b2b4ea08b56a37cbd68c89", - "0x2717c5e28cf931547b621a5dddb772ab6a35b701", "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", - "0x2f50508a8a3d323b91336fa3ea6ae50e55f32185", - "0x2fc93484614a34f26f7970cbb94615ba109bb4bf", "0x308ed4b7b49797e1a98d3818bff6fe5385410370", - "0x330bdfade01ee9bf63c209ee33102dd334618e0a", "0x35fb6f6db4fb05e6a4ce86f2c93691425626d4b1", "0x38735f03b30fbc022ddd06abed01f0ca823c6a94", "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29", - "0x3aac1cc67c2ec5db4ea850957b967ba153ad6279", "0x3ad9db589d201a710ed237c829c7860ba86510fc", "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d", "0x3cffd56b47b7b41c56258d9c7731abadc360e073", "0x3e37627deaa754090fbfbb8bd226c1ce66d255e9", - "0x3efa30704d2b8bbac821307230376556cf8cc39e", - "0x407cceeaa7c95d2fe2250bf9f2c105aa7aafb512", "0x43fa21d92141ba9db43052492e0deee5aa5f0a93", - "0x4736dcf1b7a3d580672cce6e7c65cd5cc9cfba9d", - "0x47ce0c6ed5b0ce3d3a51fdb1c52dc66a7c3c2936", "0x48549a34ae37b12f6a30566245176994e17c6b4a", "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", "0x502371699497d08d5339c870851898d6d72521dd", - "0x527653ea119f3e6a1f5bd18fbf4714081d7b31ce", "0x530a64c0ce595026a4a556b703644228179e2d57", - "0x538ab61e8a9fc1b2f93b3dd9011d662d89be6fe6", "0x53b6936513e738f44fb50d2b9476730c0ab3bfc1", "0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0", - "0x57b2b8c82f065de8ef5573f9730fc1449b403c9f", - "0x58e8dcc13be9780fc42e8723d8ead4cf46943df2", "0x5a14e72060c11313e38738009254a90968f58f51", "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f", - "0x5cab7692d4e94096462119ab7bf57319726eed2a", - "0x5efda50f22d34f262c29268506c5fa42cb56a1ce", "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2", - "0x5f6c97c6ad7bdd0ae7e0dd4ca33a4ed3fdabd4d7", - "0x610b717796ad172b316836ac95a2ffad065ceab4", - "0x653477c392c16b0765603074f157314cc4f40c32", "0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45", "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", - "0x6bf694a291df3fec1f7e69701e3ab6c592435ae7", "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", - "0x722122df12d4e14e13ac3b6895a86e84145b6967", - "0x723b78e67497e85279cb204544566f4dc5d2aca0", "0x72a5843cc08275c8171e582972aa4fda8c397b2a", - "0x743494b60097a2230018079c02fe21a7b687eaa5", - "0x746aebc06d2ae31b71ac51429a19d54e797878e9", - "0x756c4628e57f7e7f8a459ec2752968360cf4d1aa", - "0x76d85b4c0fc497eecc38902397ac608000a06607", - "0x776198ccf446dfa168347089d7338879273172cf", - "0x77777feddddffc19ff86db637967013e6c6a116c", "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", "0x7f19720a857f834887fc9a7bc0a0fbe7fc7f8102", "0x7f367cc41522ce07553e823bf3be79a889debe1b", "0x7ff9cfad3877f21d41da833e2f775db0569ee3d9", - "0x8281aa6795ade17c8973e1aedca380258bc124f9", - "0x833481186f16cece3f1eeea1a694c42034c3a0db", "0x83e5bc4ffa856bb84bb88581f5dd62a433a25e0d", - "0x84443cfd09a48af6ef360c6976c5392ac5023a1f", "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c", - "0x8589427373d6d84e98730d7795d8f6f8731fda16", - "0x88fd245fedec4a936e700f9173454d1931b4c307", "0x901bb9583b24d97e995513c6778dc6888ab6870e", - "0x910cbd523d972eb0a6f4cae4618ad62622b39dbf", "0x931546d9e66836abf687d2bc64b30407bac8c568", - "0x94a1b5cdb22c43faab4abeb5c74999895464ddaf", - "0x94be88213a387e992dd87de56950a9aef34b9448", - "0x94c92f096437ab9958fc0a37f09348f30389ae79", "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", "0x97b1043abd9e6fc31681635166d430a458d14f9c", "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", - "0x9ad122c22b14202b4490edaf288fdb3c7cb3ff5e", "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", - "0xa160cdab225685da1d56aa342ad8841c3b53f291", - "0xa5c2254e4253490c54cef0a4347fddb8f75a4998", - "0xa60c772958a3ed56c1f15dd055ba37ac8e523a0d", "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", - "0xaeaac358560e11f52454d997aaff2c5731b6f8a6", - "0xaf4c0b70b2ea9fb7487c7cbb37ada259579fe040", - "0xaf8d1839c3c67cf571aa74b5c12398d4901147b3", - "0xb04e030140b30c27bcdfaafffa98c57d80eda7b4", - "0xb1c8094b234dce6e03f10a5b673c1d8c69739a00", - "0xb20c66c4de72433f3ce747b58b86830c459ca911", - "0xb541fc07bc7619fd4062a54d96268525cbc6ffef", "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", - "0xba214c1c1928a32bffe790263e38b4af9bfcd659", - "0xbb93e510bbcd0b7beb5a853875f9ec60275cf498", "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", - "0xca0840578f57fe71599d29375e16783424023357", - "0xcc84179ffd19a1627e79f8648d09e095252bc418", - "0xcee71753c9820f063b38fdbe4cfdaf1d3d928a80", "0xd0975b32cea532eadddfc9c60481976e39db3472", - "0xd21be7248e0197ee08e0c20d4a96debdac3d20af", - "0xd47438c816c9e7f2e2888e060936a499af9582b3", - "0xd4b88df4d29f5cedd6857912842cff3b20c8cfa3", - "0xd5d6f8d9e784d0e26222ad3834500801a68d027d", - "0xd691f27f38b395864ea86cfc7253969b409c362d", - "0xd692fd2d0b2fbd2e52cfa5b5b9424bc981c30696", - "0xd82ed8786d7c69dc7e052f7a542ab047971e73d2", "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", - "0xd8d7de3349ccaa0fde6298fe6d7b7d0d34586193", - "0xd90e2f925da726b50c4ed8d0fb90ad053324f31b", - "0xd96f2b1c14db8458374d9aca76e26c3d18364307", "0xdcbeffbecce100cce9e4b153c4e15cb885643193", - "0xdd4c48c0b24039969fc16d1cdf626eab821d3384", - "0xdf231d99ff8b6c6cbf4e9b9a945cbacef9339178", - "0xdf3a408c53e5078af6e8fb2a85088d46ee09a61b", "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", "0xe7aa314c77f4233c18c6cc84384a9247c0cf367b", "0xe950dc316b836e4eefb8308bf32bf7c72a1358ff", "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921", - "0xedc5d01286f99a066559f60a585406f3878a033e", "0xefe301d259f525ca1ba74a7977b80d5b060b3cca", "0xf3701f445b6bdafedbca97d1e477357839e4120d", - "0xf4b067dd14e95bab89be928c07cb22e3c94e0daa", - "0xf60dd140cff0706bae9cd734ac3ae76ad9ebc32a", - "0xf67721a2d8f736e75a49fdd7fad2e31d8676542a", "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", "0xfac583c0cf07ea434052c49115a4682172ab6b4f", - "0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144", "0xfec8a60023265364d066a1212fde3930f6ae8da7", - "0xffbac21a641dcfe4552920138d90f3638b3c9fba", "0xc5801cd781d168e2d3899ad9c39d8a2541871298", "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", - "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb" + "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb", + "0xb9436d76e8fe08859d042e41b4a21c85715e1176", + "0x7bc5cb059f21553af489d2b2df3d40aaae9b44e8", + "0x430ab3c698b3210548b6ac9f72936b43b15ebe9b" ] diff --git a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py index c393e7af..232fb9bd 100644 --- a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"e\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xdd\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xdd\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,74 +46,74 @@ _globals['_SUBACCOUNTBALANCESLISTRESPONSE']._serialized_end=1720 _globals['_SUBACCOUNTBALANCE']._serialized_start=1723 _globals['_SUBACCOUNTBALANCE']._serialized_end=1911 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1913 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2014 - _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_start=2016 - _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_end=2109 - _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_start=2111 - _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_end=2215 - _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_start=2217 - _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_end=2310 - _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_start=2313 - _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_end=2445 - _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_start=2448 - _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_end=2641 - _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_start=2644 - _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_end=2808 - _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_start=2811 - _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_end=3152 - _globals['_COSMOSCOIN']._serialized_start=3154 - _globals['_COSMOSCOIN']._serialized_end=3212 - _globals['_PAGING']._serialized_start=3215 - _globals['_PAGING']._serialized_end=3349 - _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_start=3352 - _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_end=3490 - _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_start=3493 - _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_end=3625 - _globals['_REWARDSREQUEST']._serialized_start=3627 - _globals['_REWARDSREQUEST']._serialized_end=3706 - _globals['_REWARDSRESPONSE']._serialized_start=3708 - _globals['_REWARDSRESPONSE']._serialized_end=3783 - _globals['_REWARD']._serialized_start=3786 - _globals['_REWARD']._serialized_end=3930 - _globals['_COIN']._serialized_start=3932 - _globals['_COIN']._serialized_end=3984 - _globals['_STREAMACCOUNTDATAREQUEST']._serialized_start=3986 - _globals['_STREAMACCOUNTDATAREQUEST']._serialized_end=4053 - _globals['_STREAMACCOUNTDATARESPONSE']._serialized_start=4056 - _globals['_STREAMACCOUNTDATARESPONSE']._serialized_end=4534 - _globals['_SUBACCOUNTBALANCERESULT']._serialized_start=4536 - _globals['_SUBACCOUNTBALANCERESULT']._serialized_end=4660 - _globals['_POSITIONSRESULT']._serialized_start=4662 - _globals['_POSITIONSRESULT']._serialized_end=4771 - _globals['_POSITION']._serialized_start=4774 - _globals['_POSITION']._serialized_end=5127 - _globals['_TRADERESULT']._serialized_start=5130 - _globals['_TRADERESULT']._serialized_end=5375 - _globals['_SPOTTRADE']._serialized_start=5378 - _globals['_SPOTTRADE']._serialized_end=5807 - _globals['_PRICELEVEL']._serialized_start=5809 - _globals['_PRICELEVEL']._serialized_end=5901 - _globals['_DERIVATIVETRADE']._serialized_start=5904 - _globals['_DERIVATIVETRADE']._serialized_end=6381 - _globals['_POSITIONDELTA']._serialized_start=6384 - _globals['_POSITIONDELTA']._serialized_end=6571 - _globals['_ORDERRESULT']._serialized_start=6574 - _globals['_ORDERRESULT']._serialized_end=6829 - _globals['_SPOTLIMITORDER']._serialized_start=6832 - _globals['_SPOTLIMITORDER']._serialized_end=7272 - _globals['_DERIVATIVELIMITORDER']._serialized_start=7275 - _globals['_DERIVATIVELIMITORDER']._serialized_end=8002 - _globals['_ORDERHISTORYRESULT']._serialized_start=8005 - _globals['_ORDERHISTORYRESULT']._serialized_end=8309 - _globals['_SPOTORDERHISTORY']._serialized_start=8312 - _globals['_SPOTORDERHISTORY']._serialized_end=8811 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8814 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9495 - _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9498 - _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9672 - _globals['_FUNDINGPAYMENT']._serialized_start=9675 - _globals['_FUNDINGPAYMENT']._serialized_end=9811 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9814 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11058 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1914 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2111 + _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_start=2113 + _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_end=2206 + _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_start=2208 + _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_end=2312 + _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_start=2314 + _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_end=2407 + _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_start=2410 + _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_end=2542 + _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_start=2545 + _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_end=2738 + _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_start=2741 + _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_end=2905 + _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_start=2908 + _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_end=3249 + _globals['_COSMOSCOIN']._serialized_start=3251 + _globals['_COSMOSCOIN']._serialized_end=3309 + _globals['_PAGING']._serialized_start=3312 + _globals['_PAGING']._serialized_end=3446 + _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_start=3449 + _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_end=3587 + _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_start=3590 + _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_end=3722 + _globals['_REWARDSREQUEST']._serialized_start=3724 + _globals['_REWARDSREQUEST']._serialized_end=3803 + _globals['_REWARDSRESPONSE']._serialized_start=3805 + _globals['_REWARDSRESPONSE']._serialized_end=3880 + _globals['_REWARD']._serialized_start=3883 + _globals['_REWARD']._serialized_end=4027 + _globals['_COIN']._serialized_start=4029 + _globals['_COIN']._serialized_end=4110 + _globals['_STREAMACCOUNTDATAREQUEST']._serialized_start=4112 + _globals['_STREAMACCOUNTDATAREQUEST']._serialized_end=4179 + _globals['_STREAMACCOUNTDATARESPONSE']._serialized_start=4182 + _globals['_STREAMACCOUNTDATARESPONSE']._serialized_end=4660 + _globals['_SUBACCOUNTBALANCERESULT']._serialized_start=4662 + _globals['_SUBACCOUNTBALANCERESULT']._serialized_end=4786 + _globals['_POSITIONSRESULT']._serialized_start=4788 + _globals['_POSITIONSRESULT']._serialized_end=4897 + _globals['_POSITION']._serialized_start=4900 + _globals['_POSITION']._serialized_end=5253 + _globals['_TRADERESULT']._serialized_start=5256 + _globals['_TRADERESULT']._serialized_end=5501 + _globals['_SPOTTRADE']._serialized_start=5504 + _globals['_SPOTTRADE']._serialized_end=5933 + _globals['_PRICELEVEL']._serialized_start=5935 + _globals['_PRICELEVEL']._serialized_end=6027 + _globals['_DERIVATIVETRADE']._serialized_start=6030 + _globals['_DERIVATIVETRADE']._serialized_end=6507 + _globals['_POSITIONDELTA']._serialized_start=6510 + _globals['_POSITIONDELTA']._serialized_end=6697 + _globals['_ORDERRESULT']._serialized_start=6700 + _globals['_ORDERRESULT']._serialized_end=6955 + _globals['_SPOTLIMITORDER']._serialized_start=6958 + _globals['_SPOTLIMITORDER']._serialized_end=7398 + _globals['_DERIVATIVELIMITORDER']._serialized_start=7401 + _globals['_DERIVATIVELIMITORDER']._serialized_end=8128 + _globals['_ORDERHISTORYRESULT']._serialized_start=8131 + _globals['_ORDERHISTORYRESULT']._serialized_end=8435 + _globals['_SPOTORDERHISTORY']._serialized_start=8438 + _globals['_SPOTORDERHISTORY']._serialized_end=8937 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8940 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9621 + _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9624 + _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9798 + _globals['_FUNDINGPAYMENT']._serialized_start=9801 + _globals['_FUNDINGPAYMENT']._serialized_end=9937 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9940 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11184 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py index e5b50906..8ddf1bb1 100644 --- a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"\x81\x01\n\x15PnlLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16PnlLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"h\n\x0eLeaderboardRow\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\x12\x12\n\x04rank\x18\x04 \x01(\x11R\x04rank\"\x81\x01\n\x15VolLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16VolLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$PnlLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%PnlLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$VolLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%VolLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"W\n\x13\x44\x65nomHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"d\n\x14\x44\x65nomHoldersResponse\x12\x38\n\x07holders\x18\x01 \x03(\x0b\x32\x1e.injective_archiver_rpc.HolderR\x07holders\x12\x12\n\x04next\x18\x02 \x03(\tR\x04next\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"\xd8\x01\n\x17HistoricalTradesRequest\x12\x1d\n\nfrom_block\x18\x01 \x01(\x04R\tfromBlock\x12\x1b\n\tend_block\x18\x02 \x01(\x04R\x08\x65ndBlock\x12\x1b\n\tfrom_time\x18\x03 \x01(\x12R\x08\x66romTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x18\n\x07\x61\x63\x63ount\x18\x07 \x01(\tR\x07\x61\x63\x63ount\"\xad\x01\n\x18HistoricalTradesResponse\x12?\n\x06trades\x18\x01 \x03(\x0b\x32\'.injective_archiver_rpc.HistoricalTradeR\x06trades\x12\x1f\n\x0blast_height\x18\x02 \x01(\x04R\nlastHeight\x12\x1b\n\tlast_time\x18\x03 \x01(\x12R\x08lastTime\x12\x12\n\x04next\x18\x04 \x03(\tR\x04next\"\xcc\x03\n\x0fHistoricalTrade\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\'\n\x0ftrade_direction\x18\x04 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x05 \x01(\x0b\x32\".injective_archiver_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x06 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\x12\'\n\x0f\x65xecuted_height\x18\x08 \x01(\x04R\x0e\x65xecutedHeight\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12%\n\x0e\x65xecution_side\x18\n \x01(\tR\rexecutionSide\x12\x1b\n\tusd_value\x18\x0b \x01(\tR\x08usdValue\x12\x14\n\x05\x66lags\x18\x0c \x03(\tR\x05\x66lags\x12\x1f\n\x0bmarket_type\x18\r \x01(\tR\nmarketType\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xa3\x08\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponse\x12o\n\x0ePnlLeaderboard\x12-.injective_archiver_rpc.PnlLeaderboardRequest\x1a..injective_archiver_rpc.PnlLeaderboardResponse\x12o\n\x0eVolLeaderboard\x12-.injective_archiver_rpc.VolLeaderboardRequest\x1a..injective_archiver_rpc.VolLeaderboardResponse\x12\x9c\x01\n\x1dPnlLeaderboardFixedResolution\x12<.injective_archiver_rpc.PnlLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.PnlLeaderboardFixedResolutionResponse\x12\x9c\x01\n\x1dVolLeaderboardFixedResolution\x12<.injective_archiver_rpc.VolLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.VolLeaderboardFixedResolutionResponse\x12i\n\x0c\x44\x65nomHolders\x12+.injective_archiver_rpc.DenomHoldersRequest\x1a,.injective_archiver_rpc.DenomHoldersResponse\x12u\n\x10HistoricalTrades\x12/.injective_archiver_rpc.HistoricalTradesRequest\x1a\x30.injective_archiver_rpc.HistoricalTradesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"\x81\x01\n\x15PnlLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16PnlLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"h\n\x0eLeaderboardRow\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\x12\x12\n\x04rank\x18\x04 \x01(\x11R\x04rank\"\x81\x01\n\x15VolLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16VolLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$PnlLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%PnlLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$VolLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%VolLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"W\n\x13\x44\x65nomHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"z\n\x14\x44\x65nomHoldersResponse\x12\x38\n\x07holders\x18\x01 \x03(\x0b\x32\x1e.injective_archiver_rpc.HolderR\x07holders\x12\x12\n\x04next\x18\x02 \x03(\tR\x04next\x12\x14\n\x05total\x18\x03 \x01(\x11R\x05total\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"\xd8\x01\n\x17HistoricalTradesRequest\x12\x1d\n\nfrom_block\x18\x01 \x01(\x04R\tfromBlock\x12\x1b\n\tend_block\x18\x02 \x01(\x04R\x08\x65ndBlock\x12\x1b\n\tfrom_time\x18\x03 \x01(\x12R\x08\x66romTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x18\n\x07\x61\x63\x63ount\x18\x07 \x01(\tR\x07\x61\x63\x63ount\"\xad\x01\n\x18HistoricalTradesResponse\x12?\n\x06trades\x18\x01 \x03(\x0b\x32\'.injective_archiver_rpc.HistoricalTradeR\x06trades\x12\x1f\n\x0blast_height\x18\x02 \x01(\x04R\nlastHeight\x12\x1b\n\tlast_time\x18\x03 \x01(\x12R\x08lastTime\x12\x12\n\x04next\x18\x04 \x03(\tR\x04next\"\xe7\x03\n\x0fHistoricalTrade\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\'\n\x0ftrade_direction\x18\x04 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x05 \x01(\x0b\x32\".injective_archiver_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x06 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\x12\'\n\x0f\x65xecuted_height\x18\x08 \x01(\x04R\x0e\x65xecutedHeight\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12%\n\x0e\x65xecution_side\x18\n \x01(\tR\rexecutionSide\x12\x1b\n\tusd_value\x18\x0b \x01(\tR\x08usdValue\x12\x14\n\x05\x66lags\x18\x0c \x03(\tR\x05\x66lags\x12\x1f\n\x0bmarket_type\x18\r \x01(\tR\nmarketType\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xa3\x08\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponse\x12o\n\x0ePnlLeaderboard\x12-.injective_archiver_rpc.PnlLeaderboardRequest\x1a..injective_archiver_rpc.PnlLeaderboardResponse\x12o\n\x0eVolLeaderboard\x12-.injective_archiver_rpc.VolLeaderboardRequest\x1a..injective_archiver_rpc.VolLeaderboardResponse\x12\x9c\x01\n\x1dPnlLeaderboardFixedResolution\x12<.injective_archiver_rpc.PnlLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.PnlLeaderboardFixedResolutionResponse\x12\x9c\x01\n\x1dVolLeaderboardFixedResolution\x12<.injective_archiver_rpc.VolLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.VolLeaderboardFixedResolutionResponse\x12i\n\x0c\x44\x65nomHolders\x12+.injective_archiver_rpc.DenomHoldersRequest\x1a,.injective_archiver_rpc.DenomHoldersResponse\x12u\n\x10HistoricalTrades\x12/.injective_archiver_rpc.HistoricalTradesRequest\x1a\x30.injective_archiver_rpc.HistoricalTradesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -61,17 +61,17 @@ _globals['_DENOMHOLDERSREQUEST']._serialized_start=2293 _globals['_DENOMHOLDERSREQUEST']._serialized_end=2380 _globals['_DENOMHOLDERSRESPONSE']._serialized_start=2382 - _globals['_DENOMHOLDERSRESPONSE']._serialized_end=2482 - _globals['_HOLDER']._serialized_start=2484 - _globals['_HOLDER']._serialized_end=2559 - _globals['_HISTORICALTRADESREQUEST']._serialized_start=2562 - _globals['_HISTORICALTRADESREQUEST']._serialized_end=2778 - _globals['_HISTORICALTRADESRESPONSE']._serialized_start=2781 - _globals['_HISTORICALTRADESRESPONSE']._serialized_end=2954 - _globals['_HISTORICALTRADE']._serialized_start=2957 - _globals['_HISTORICALTRADE']._serialized_end=3417 - _globals['_PRICELEVEL']._serialized_start=3419 - _globals['_PRICELEVEL']._serialized_end=3511 - _globals['_INJECTIVEARCHIVERRPC']._serialized_start=3514 - _globals['_INJECTIVEARCHIVERRPC']._serialized_end=4573 + _globals['_DENOMHOLDERSRESPONSE']._serialized_end=2504 + _globals['_HOLDER']._serialized_start=2506 + _globals['_HOLDER']._serialized_end=2581 + _globals['_HISTORICALTRADESREQUEST']._serialized_start=2584 + _globals['_HISTORICALTRADESREQUEST']._serialized_end=2800 + _globals['_HISTORICALTRADESRESPONSE']._serialized_start=2803 + _globals['_HISTORICALTRADESRESPONSE']._serialized_end=2976 + _globals['_HISTORICALTRADE']._serialized_start=2979 + _globals['_HISTORICALTRADE']._serialized_end=3466 + _globals['_PRICELEVEL']._serialized_start=3468 + _globals['_PRICELEVEL']._serialized_end=3560 + _globals['_INJECTIVEARCHIVERRPC']._serialized_start=3563 + _globals['_INJECTIVEARCHIVERRPC']._serialized_end=4622 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_auction_rpc_pb2.py b/pyinjective/proto/exchange/injective_auction_rpc_pb2.py index 61c64b52..ca07f0bc 100644 --- a/pyinjective/proto/exchange/injective_auction_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_auction_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_auction_rpc.proto\x12\x15injective_auction_rpc\".\n\x16\x41uctionEndpointRequest\x12\x14\n\x05round\x18\x01 \x01(\x12R\x05round\"\x83\x01\n\x17\x41uctionEndpointResponse\x12\x38\n\x07\x61uction\x18\x01 \x01(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x07\x61uction\x12.\n\x04\x62ids\x18\x02 \x03(\x0b\x32\x1a.injective_auction_rpc.BidR\x04\x62ids\"\xde\x01\n\x07\x41uction\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x33\n\x06\x62\x61sket\x18\x02 \x03(\x0b\x32\x1b.injective_auction_rpc.CoinR\x06\x62\x61sket\x12,\n\x12winning_bid_amount\x18\x03 \x01(\tR\x10winningBidAmount\x12\x14\n\x05round\x18\x04 \x01(\x04R\x05round\x12#\n\rend_timestamp\x18\x05 \x01(\x12R\x0c\x65ndTimestamp\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"S\n\x03\x42id\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x11\n\x0f\x41uctionsRequest\"N\n\x10\x41uctionsResponse\x12:\n\x08\x61uctions\x18\x01 \x03(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x08\x61uctions\"\x13\n\x11StreamBidsRequest\"\x7f\n\x12StreamBidsResponse\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x1d\n\nbid_amount\x18\x02 \x01(\tR\tbidAmount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x19\n\x17InjBurntEndpointRequest\"B\n\x18InjBurntEndpointResponse\x12&\n\x0ftotal_inj_burnt\x18\x01 \x01(\tR\rtotalInjBurnt2\xbe\x03\n\x13InjectiveAuctionRPC\x12p\n\x0f\x41uctionEndpoint\x12-.injective_auction_rpc.AuctionEndpointRequest\x1a..injective_auction_rpc.AuctionEndpointResponse\x12[\n\x08\x41uctions\x12&.injective_auction_rpc.AuctionsRequest\x1a\'.injective_auction_rpc.AuctionsResponse\x12\x63\n\nStreamBids\x12(.injective_auction_rpc.StreamBidsRequest\x1a).injective_auction_rpc.StreamBidsResponse0\x01\x12s\n\x10InjBurntEndpoint\x12..injective_auction_rpc.InjBurntEndpointRequest\x1a/.injective_auction_rpc.InjBurntEndpointResponseB\xbb\x01\n\x19\x63om.injective_auction_rpcB\x18InjectiveAuctionRpcProtoP\x01Z\x18/injective_auction_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveAuctionRpc\xca\x02\x13InjectiveAuctionRpc\xe2\x02\x1fInjectiveAuctionRpc\\GPBMetadata\xea\x02\x13InjectiveAuctionRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_auction_rpc.proto\x12\x15injective_auction_rpc\".\n\x16\x41uctionEndpointRequest\x12\x14\n\x05round\x18\x01 \x01(\x12R\x05round\"\x83\x01\n\x17\x41uctionEndpointResponse\x12\x38\n\x07\x61uction\x18\x01 \x01(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x07\x61uction\x12.\n\x04\x62ids\x18\x02 \x03(\x0b\x32\x1a.injective_auction_rpc.BidR\x04\x62ids\"\xde\x01\n\x07\x41uction\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x33\n\x06\x62\x61sket\x18\x02 \x03(\x0b\x32\x1b.injective_auction_rpc.CoinR\x06\x62\x61sket\x12,\n\x12winning_bid_amount\x18\x03 \x01(\tR\x10winningBidAmount\x12\x14\n\x05round\x18\x04 \x01(\x04R\x05round\x12#\n\rend_timestamp\x18\x05 \x01(\x12R\x0c\x65ndTimestamp\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"S\n\x03\x42id\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x11\n\x0f\x41uctionsRequest\"N\n\x10\x41uctionsResponse\x12:\n\x08\x61uctions\x18\x01 \x03(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x08\x61uctions\"\x13\n\x11StreamBidsRequest\"\x7f\n\x12StreamBidsResponse\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x1d\n\nbid_amount\x18\x02 \x01(\tR\tbidAmount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x19\n\x17InjBurntEndpointRequest\"B\n\x18InjBurntEndpointResponse\x12&\n\x0ftotal_inj_burnt\x18\x01 \x01(\tR\rtotalInjBurnt2\xbe\x03\n\x13InjectiveAuctionRPC\x12p\n\x0f\x41uctionEndpoint\x12-.injective_auction_rpc.AuctionEndpointRequest\x1a..injective_auction_rpc.AuctionEndpointResponse\x12[\n\x08\x41uctions\x12&.injective_auction_rpc.AuctionsRequest\x1a\'.injective_auction_rpc.AuctionsResponse\x12\x63\n\nStreamBids\x12(.injective_auction_rpc.StreamBidsRequest\x1a).injective_auction_rpc.StreamBidsResponse0\x01\x12s\n\x10InjBurntEndpoint\x12..injective_auction_rpc.InjBurntEndpointRequest\x1a/.injective_auction_rpc.InjBurntEndpointResponseB\xbb\x01\n\x19\x63om.injective_auction_rpcB\x18InjectiveAuctionRpcProtoP\x01Z\x18/injective_auction_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveAuctionRpc\xca\x02\x13InjectiveAuctionRpc\xe2\x02\x1fInjectiveAuctionRpc\\GPBMetadata\xea\x02\x13InjectiveAuctionRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,21 +29,21 @@ _globals['_AUCTION']._serialized_start=246 _globals['_AUCTION']._serialized_end=468 _globals['_COIN']._serialized_start=470 - _globals['_COIN']._serialized_end=522 - _globals['_BID']._serialized_start=524 - _globals['_BID']._serialized_end=607 - _globals['_AUCTIONSREQUEST']._serialized_start=609 - _globals['_AUCTIONSREQUEST']._serialized_end=626 - _globals['_AUCTIONSRESPONSE']._serialized_start=628 - _globals['_AUCTIONSRESPONSE']._serialized_end=706 - _globals['_STREAMBIDSREQUEST']._serialized_start=708 - _globals['_STREAMBIDSREQUEST']._serialized_end=727 - _globals['_STREAMBIDSRESPONSE']._serialized_start=729 - _globals['_STREAMBIDSRESPONSE']._serialized_end=856 - _globals['_INJBURNTENDPOINTREQUEST']._serialized_start=858 - _globals['_INJBURNTENDPOINTREQUEST']._serialized_end=883 - _globals['_INJBURNTENDPOINTRESPONSE']._serialized_start=885 - _globals['_INJBURNTENDPOINTRESPONSE']._serialized_end=951 - _globals['_INJECTIVEAUCTIONRPC']._serialized_start=954 - _globals['_INJECTIVEAUCTIONRPC']._serialized_end=1400 + _globals['_COIN']._serialized_end=551 + _globals['_BID']._serialized_start=553 + _globals['_BID']._serialized_end=636 + _globals['_AUCTIONSREQUEST']._serialized_start=638 + _globals['_AUCTIONSREQUEST']._serialized_end=655 + _globals['_AUCTIONSRESPONSE']._serialized_start=657 + _globals['_AUCTIONSRESPONSE']._serialized_end=735 + _globals['_STREAMBIDSREQUEST']._serialized_start=737 + _globals['_STREAMBIDSREQUEST']._serialized_end=756 + _globals['_STREAMBIDSRESPONSE']._serialized_start=758 + _globals['_STREAMBIDSRESPONSE']._serialized_end=885 + _globals['_INJBURNTENDPOINTREQUEST']._serialized_start=887 + _globals['_INJBURNTENDPOINTREQUEST']._serialized_end=912 + _globals['_INJBURNTENDPOINTRESPONSE']._serialized_start=914 + _globals['_INJBURNTENDPOINTRESPONSE']._serialized_end=980 + _globals['_INJECTIVEAUCTIONRPC']._serialized_start=983 + _globals['_INJECTIVEAUCTIONRPC']._serialized_end=1429 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py b/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py index 1bea8314..db68a320 100644 --- a/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_campaign_rpc.proto\x12\x16injective_campaign_rpc\"\xcc\x01\n\x0eRankingRequest\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\"\xc3\x01\n\x0fRankingResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32 .injective_campaign_rpc.CampaignR\x08\x63\x61mpaign\x12:\n\x05users\x18\x02 \x03(\x0b\x32$.injective_campaign_rpc.CampaignUserR\x05users\x12\x36\n\x06paging\x18\x03 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\"\xb2\x04\n\x08\x43\x61mpaign\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12!\n\x0clast_updated\x18\x05 \x01(\x12R\x0blastUpdated\x12\x1d\n\nstart_date\x18\x06 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x07 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\x08 \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\t \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\n \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x1d\n\nuser_score\x18\x0c \x01(\tR\tuserScore\x12!\n\x0cuser_claimed\x18\r \x01(\x08R\x0buserClaimed\x12\x30\n\x14subaccount_id_suffix\x18\x0e \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0f \x01(\tR\x0erewardContract\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04type\x18\x11 \x01(\tR\x04type\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xef\x02\n\x0c\x43\x61mpaignUser\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05score\x18\x04 \x01(\tR\x05score\x12)\n\x10\x63ontract_updated\x18\x05 \x01(\x08R\x0f\x63ontractUpdated\x12!\n\x0c\x62lock_height\x18\x06 \x01(\x12R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x07 \x01(\x12R\tblockTime\x12)\n\x10purchased_amount\x18\x08 \x01(\tR\x0fpurchasedAmount\x12#\n\rgalxe_updated\x18\t \x01(\x08R\x0cgalxeUpdated\x12%\n\x0ereward_claimed\x18\n \x01(\x08R\rrewardClaimed\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xb5\x01\n\x10\x43\x61mpaignsRequest\x12\x19\n\x08round_id\x18\x01 \x01(\x12R\x07roundId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x1e\n\x0bto_round_id\x18\x03 \x01(\x11R\ttoRoundId\x12)\n\x10\x63ontract_address\x18\x04 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\"\xc5\x01\n\x11\x43\x61mpaignsResponse\x12>\n\tcampaigns\x18\x01 \x03(\x0b\x32 .injective_campaign_rpc.CampaignR\tcampaigns\x12M\n\x13\x61\x63\x63umulated_rewards\x18\x02 \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x12\x61\x63\x63umulatedRewards\x12!\n\x0creward_count\x18\x03 \x01(\x11R\x0brewardCount\"\x96\x02\n\x12\x43\x61mpaignsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x16\n\x06\x63ursor\x18\x04 \x01(\tR\x06\x63ursor\x12&\n\x0f\x66rom_start_date\x18\x05 \x01(\x12R\rfromStartDate\x12\"\n\rto_start_date\x18\x06 \x01(\x12R\x0btoStartDate\x12\"\n\rfrom_end_date\x18\x07 \x01(\x12R\x0b\x66romEndDate\x12\x1e\n\x0bto_end_date\x18\x08 \x01(\x12R\ttoEndDate\x12\x16\n\x06status\x18\t \x01(\tR\x06status\"o\n\x13\x43\x61mpaignsV2Response\x12@\n\tcampaigns\x18\x01 \x03(\x0b\x32\".injective_campaign_rpc.CampaignV2R\tcampaigns\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\"\xc3\x04\n\nCampaignV2\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12\x1d\n\ncreated_at\x18\x05 \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\x12\x1d\n\nstart_date\x18\x07 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x08 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\t \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\n \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\x0b \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0c \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x30\n\x14subaccount_id_suffix\x18\r \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0e \x01(\tR\x0erewardContract\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04name\x18\x11 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x12 \x01(\tR\x0b\x64\x65scription\"\x83\x01\n\x11ListGuildsRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x17\n\x07sort_by\x18\x04 \x01(\tR\x06sortBy\"\xf6\x01\n\x12ListGuildsResponse\x12\x35\n\x06guilds\x18\x01 \x03(\x0b\x32\x1d.injective_campaign_rpc.GuildR\x06guilds\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12\x1d\n\nupdated_at\x18\x03 \x01(\x12R\tupdatedAt\x12R\n\x10\x63\x61mpaign_summary\x18\x04 \x01(\x0b\x32\'.injective_campaign_rpc.CampaignSummaryR\x0f\x63\x61mpaignSummary\"\xe5\x03\n\x05Guild\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12%\n\x0emaster_address\x18\x03 \x01(\tR\rmasterAddress\x12\x1d\n\ncreated_at\x18\x04 \x01(\x12R\tcreatedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12$\n\x0erank_by_volume\x18\x07 \x01(\x11R\x0crankByVolume\x12\x1e\n\x0brank_by_tvl\x18\x08 \x01(\x11R\trankByTvl\x12\x12\n\x04logo\x18\t \x01(\tR\x04logo\x12\x1b\n\ttotal_tvl\x18\n \x01(\tR\x08totalTvl\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x12\n\x04name\x18\x0e \x01(\tR\x04name\x12\x1b\n\tis_active\x18\r \x01(\x08R\x08isActive\x12%\n\x0emaster_balance\x18\x0f \x01(\tR\rmasterBalance\x12 \n\x0b\x64\x65scription\x18\x10 \x01(\tR\x0b\x64\x65scription\"\x82\x03\n\x0f\x43\x61mpaignSummary\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12+\n\x11\x63\x61mpaign_contract\x18\x02 \x01(\tR\x10\x63\x61mpaignContract\x12,\n\x12total_guilds_count\x18\x03 \x01(\x11R\x10totalGuildsCount\x12\x1b\n\ttotal_tvl\x18\x04 \x01(\tR\x08totalTvl\x12*\n\x11total_average_tvl\x18\x05 \x01(\tR\x0ftotalAverageTvl\x12!\n\x0ctotal_volume\x18\x06 \x01(\tR\x0btotalVolume\x12\x1d\n\nupdated_at\x18\x07 \x01(\x12R\tupdatedAt\x12.\n\x13total_members_count\x18\x08 \x01(\x11R\x11totalMembersCount\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\"\xd2\x01\n\x17ListGuildMembersRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x11R\x04skip\x12,\n\x12include_guild_info\x18\x05 \x01(\x08R\x10includeGuildInfo\x12\x17\n\x07sort_by\x18\x06 \x01(\tR\x06sortBy\"\xcf\x01\n\x18ListGuildMembersResponse\x12=\n\x07members\x18\x01 \x03(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x07members\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12<\n\nguild_info\x18\x03 \x01(\x0b\x32\x1d.injective_campaign_rpc.GuildR\tguildInfo\"\xd3\x03\n\x0bGuildMember\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x1b\n\tjoined_at\x18\x04 \x01(\x12R\x08joinedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12\x1b\n\ttotal_tvl\x18\x07 \x01(\tR\x08totalTvl\x12\x36\n\x17volume_score_percentage\x18\x08 \x01(\x01R\x15volumeScorePercentage\x12\x30\n\x14tvl_score_percentage\x18\t \x01(\x01R\x12tvlScorePercentage\x12;\n\ntvl_reward\x18\n \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\ttvlReward\x12\x41\n\rvolume_reward\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x0cvolumeReward\"^\n\x15GetGuildMemberRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"Q\n\x16GetGuildMemberResponse\x12\x37\n\x04info\x18\x01 \x01(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x04info2\x89\x05\n\x14InjectiveCampaignRPC\x12Z\n\x07Ranking\x12&.injective_campaign_rpc.RankingRequest\x1a\'.injective_campaign_rpc.RankingResponse\x12`\n\tCampaigns\x12(.injective_campaign_rpc.CampaignsRequest\x1a).injective_campaign_rpc.CampaignsResponse\x12\x66\n\x0b\x43\x61mpaignsV2\x12*.injective_campaign_rpc.CampaignsV2Request\x1a+.injective_campaign_rpc.CampaignsV2Response\x12\x63\n\nListGuilds\x12).injective_campaign_rpc.ListGuildsRequest\x1a*.injective_campaign_rpc.ListGuildsResponse\x12u\n\x10ListGuildMembers\x12/.injective_campaign_rpc.ListGuildMembersRequest\x1a\x30.injective_campaign_rpc.ListGuildMembersResponse\x12o\n\x0eGetGuildMember\x12-.injective_campaign_rpc.GetGuildMemberRequest\x1a..injective_campaign_rpc.GetGuildMemberResponseB\xc2\x01\n\x1a\x63om.injective_campaign_rpcB\x19InjectiveCampaignRpcProtoP\x01Z\x19/injective_campaign_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveCampaignRpc\xca\x02\x14InjectiveCampaignRpc\xe2\x02 InjectiveCampaignRpc\\GPBMetadata\xea\x02\x14InjectiveCampaignRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_campaign_rpc.proto\x12\x16injective_campaign_rpc\"\xcc\x01\n\x0eRankingRequest\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\"\xc3\x01\n\x0fRankingResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32 .injective_campaign_rpc.CampaignR\x08\x63\x61mpaign\x12:\n\x05users\x18\x02 \x03(\x0b\x32$.injective_campaign_rpc.CampaignUserR\x05users\x12\x36\n\x06paging\x18\x03 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\"\xb2\x04\n\x08\x43\x61mpaign\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12!\n\x0clast_updated\x18\x05 \x01(\x12R\x0blastUpdated\x12\x1d\n\nstart_date\x18\x06 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x07 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\x08 \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\t \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\n \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x1d\n\nuser_score\x18\x0c \x01(\tR\tuserScore\x12!\n\x0cuser_claimed\x18\r \x01(\x08R\x0buserClaimed\x12\x30\n\x14subaccount_id_suffix\x18\x0e \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0f \x01(\tR\x0erewardContract\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04type\x18\x11 \x01(\tR\x04type\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\xef\x02\n\x0c\x43\x61mpaignUser\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05score\x18\x04 \x01(\tR\x05score\x12)\n\x10\x63ontract_updated\x18\x05 \x01(\x08R\x0f\x63ontractUpdated\x12!\n\x0c\x62lock_height\x18\x06 \x01(\x12R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x07 \x01(\x12R\tblockTime\x12)\n\x10purchased_amount\x18\x08 \x01(\tR\x0fpurchasedAmount\x12#\n\rgalxe_updated\x18\t \x01(\x08R\x0cgalxeUpdated\x12%\n\x0ereward_claimed\x18\n \x01(\x08R\rrewardClaimed\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xb5\x01\n\x10\x43\x61mpaignsRequest\x12\x19\n\x08round_id\x18\x01 \x01(\x12R\x07roundId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x1e\n\x0bto_round_id\x18\x03 \x01(\x11R\ttoRoundId\x12)\n\x10\x63ontract_address\x18\x04 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\"\xc5\x01\n\x11\x43\x61mpaignsResponse\x12>\n\tcampaigns\x18\x01 \x03(\x0b\x32 .injective_campaign_rpc.CampaignR\tcampaigns\x12M\n\x13\x61\x63\x63umulated_rewards\x18\x02 \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x12\x61\x63\x63umulatedRewards\x12!\n\x0creward_count\x18\x03 \x01(\x11R\x0brewardCount\"\x96\x02\n\x12\x43\x61mpaignsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x16\n\x06\x63ursor\x18\x04 \x01(\tR\x06\x63ursor\x12&\n\x0f\x66rom_start_date\x18\x05 \x01(\x12R\rfromStartDate\x12\"\n\rto_start_date\x18\x06 \x01(\x12R\x0btoStartDate\x12\"\n\rfrom_end_date\x18\x07 \x01(\x12R\x0b\x66romEndDate\x12\x1e\n\x0bto_end_date\x18\x08 \x01(\x12R\ttoEndDate\x12\x16\n\x06status\x18\t \x01(\tR\x06status\"o\n\x13\x43\x61mpaignsV2Response\x12@\n\tcampaigns\x18\x01 \x03(\x0b\x32\".injective_campaign_rpc.CampaignV2R\tcampaigns\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\"\xc3\x04\n\nCampaignV2\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12\x1d\n\ncreated_at\x18\x05 \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\x12\x1d\n\nstart_date\x18\x07 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x08 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\t \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\n \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\x0b \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0c \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x30\n\x14subaccount_id_suffix\x18\r \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0e \x01(\tR\x0erewardContract\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04name\x18\x11 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x12 \x01(\tR\x0b\x64\x65scription\"\x83\x01\n\x11ListGuildsRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x17\n\x07sort_by\x18\x04 \x01(\tR\x06sortBy\"\xf6\x01\n\x12ListGuildsResponse\x12\x35\n\x06guilds\x18\x01 \x03(\x0b\x32\x1d.injective_campaign_rpc.GuildR\x06guilds\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12\x1d\n\nupdated_at\x18\x03 \x01(\x12R\tupdatedAt\x12R\n\x10\x63\x61mpaign_summary\x18\x04 \x01(\x0b\x32\'.injective_campaign_rpc.CampaignSummaryR\x0f\x63\x61mpaignSummary\"\xe5\x03\n\x05Guild\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12%\n\x0emaster_address\x18\x03 \x01(\tR\rmasterAddress\x12\x1d\n\ncreated_at\x18\x04 \x01(\x12R\tcreatedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12$\n\x0erank_by_volume\x18\x07 \x01(\x11R\x0crankByVolume\x12\x1e\n\x0brank_by_tvl\x18\x08 \x01(\x11R\trankByTvl\x12\x12\n\x04logo\x18\t \x01(\tR\x04logo\x12\x1b\n\ttotal_tvl\x18\n \x01(\tR\x08totalTvl\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x12\n\x04name\x18\x0e \x01(\tR\x04name\x12\x1b\n\tis_active\x18\r \x01(\x08R\x08isActive\x12%\n\x0emaster_balance\x18\x0f \x01(\tR\rmasterBalance\x12 \n\x0b\x64\x65scription\x18\x10 \x01(\tR\x0b\x64\x65scription\"\x82\x03\n\x0f\x43\x61mpaignSummary\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12+\n\x11\x63\x61mpaign_contract\x18\x02 \x01(\tR\x10\x63\x61mpaignContract\x12,\n\x12total_guilds_count\x18\x03 \x01(\x11R\x10totalGuildsCount\x12\x1b\n\ttotal_tvl\x18\x04 \x01(\tR\x08totalTvl\x12*\n\x11total_average_tvl\x18\x05 \x01(\tR\x0ftotalAverageTvl\x12!\n\x0ctotal_volume\x18\x06 \x01(\tR\x0btotalVolume\x12\x1d\n\nupdated_at\x18\x07 \x01(\x12R\tupdatedAt\x12.\n\x13total_members_count\x18\x08 \x01(\x11R\x11totalMembersCount\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\"\xd2\x01\n\x17ListGuildMembersRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x11R\x04skip\x12,\n\x12include_guild_info\x18\x05 \x01(\x08R\x10includeGuildInfo\x12\x17\n\x07sort_by\x18\x06 \x01(\tR\x06sortBy\"\xcf\x01\n\x18ListGuildMembersResponse\x12=\n\x07members\x18\x01 \x03(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x07members\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12<\n\nguild_info\x18\x03 \x01(\x0b\x32\x1d.injective_campaign_rpc.GuildR\tguildInfo\"\xd3\x03\n\x0bGuildMember\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x1b\n\tjoined_at\x18\x04 \x01(\x12R\x08joinedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12\x1b\n\ttotal_tvl\x18\x07 \x01(\tR\x08totalTvl\x12\x36\n\x17volume_score_percentage\x18\x08 \x01(\x01R\x15volumeScorePercentage\x12\x30\n\x14tvl_score_percentage\x18\t \x01(\x01R\x12tvlScorePercentage\x12;\n\ntvl_reward\x18\n \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\ttvlReward\x12\x41\n\rvolume_reward\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x0cvolumeReward\"^\n\x15GetGuildMemberRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"Q\n\x16GetGuildMemberResponse\x12\x37\n\x04info\x18\x01 \x01(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x04info2\x89\x05\n\x14InjectiveCampaignRPC\x12Z\n\x07Ranking\x12&.injective_campaign_rpc.RankingRequest\x1a\'.injective_campaign_rpc.RankingResponse\x12`\n\tCampaigns\x12(.injective_campaign_rpc.CampaignsRequest\x1a).injective_campaign_rpc.CampaignsResponse\x12\x66\n\x0b\x43\x61mpaignsV2\x12*.injective_campaign_rpc.CampaignsV2Request\x1a+.injective_campaign_rpc.CampaignsV2Response\x12\x63\n\nListGuilds\x12).injective_campaign_rpc.ListGuildsRequest\x1a*.injective_campaign_rpc.ListGuildsResponse\x12u\n\x10ListGuildMembers\x12/.injective_campaign_rpc.ListGuildMembersRequest\x1a\x30.injective_campaign_rpc.ListGuildMembersResponse\x12o\n\x0eGetGuildMember\x12-.injective_campaign_rpc.GetGuildMemberRequest\x1a..injective_campaign_rpc.GetGuildMemberResponseB\xc2\x01\n\x1a\x63om.injective_campaign_rpcB\x19InjectiveCampaignRpcProtoP\x01Z\x19/injective_campaign_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveCampaignRpc\xca\x02\x14InjectiveCampaignRpc\xe2\x02 InjectiveCampaignRpc\\GPBMetadata\xea\x02\x14InjectiveCampaignRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,39 +29,39 @@ _globals['_CAMPAIGN']._serialized_start=471 _globals['_CAMPAIGN']._serialized_end=1033 _globals['_COIN']._serialized_start=1035 - _globals['_COIN']._serialized_end=1087 - _globals['_CAMPAIGNUSER']._serialized_start=1090 - _globals['_CAMPAIGNUSER']._serialized_end=1457 - _globals['_PAGING']._serialized_start=1460 - _globals['_PAGING']._serialized_end=1594 - _globals['_CAMPAIGNSREQUEST']._serialized_start=1597 - _globals['_CAMPAIGNSREQUEST']._serialized_end=1778 - _globals['_CAMPAIGNSRESPONSE']._serialized_start=1781 - _globals['_CAMPAIGNSRESPONSE']._serialized_end=1978 - _globals['_CAMPAIGNSV2REQUEST']._serialized_start=1981 - _globals['_CAMPAIGNSV2REQUEST']._serialized_end=2259 - _globals['_CAMPAIGNSV2RESPONSE']._serialized_start=2261 - _globals['_CAMPAIGNSV2RESPONSE']._serialized_end=2372 - _globals['_CAMPAIGNV2']._serialized_start=2375 - _globals['_CAMPAIGNV2']._serialized_end=2954 - _globals['_LISTGUILDSREQUEST']._serialized_start=2957 - _globals['_LISTGUILDSREQUEST']._serialized_end=3088 - _globals['_LISTGUILDSRESPONSE']._serialized_start=3091 - _globals['_LISTGUILDSRESPONSE']._serialized_end=3337 - _globals['_GUILD']._serialized_start=3340 - _globals['_GUILD']._serialized_end=3825 - _globals['_CAMPAIGNSUMMARY']._serialized_start=3828 - _globals['_CAMPAIGNSUMMARY']._serialized_end=4214 - _globals['_LISTGUILDMEMBERSREQUEST']._serialized_start=4217 - _globals['_LISTGUILDMEMBERSREQUEST']._serialized_end=4427 - _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_start=4430 - _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_end=4637 - _globals['_GUILDMEMBER']._serialized_start=4640 - _globals['_GUILDMEMBER']._serialized_end=5107 - _globals['_GETGUILDMEMBERREQUEST']._serialized_start=5109 - _globals['_GETGUILDMEMBERREQUEST']._serialized_end=5203 - _globals['_GETGUILDMEMBERRESPONSE']._serialized_start=5205 - _globals['_GETGUILDMEMBERRESPONSE']._serialized_end=5286 - _globals['_INJECTIVECAMPAIGNRPC']._serialized_start=5289 - _globals['_INJECTIVECAMPAIGNRPC']._serialized_end=5938 + _globals['_COIN']._serialized_end=1116 + _globals['_CAMPAIGNUSER']._serialized_start=1119 + _globals['_CAMPAIGNUSER']._serialized_end=1486 + _globals['_PAGING']._serialized_start=1489 + _globals['_PAGING']._serialized_end=1623 + _globals['_CAMPAIGNSREQUEST']._serialized_start=1626 + _globals['_CAMPAIGNSREQUEST']._serialized_end=1807 + _globals['_CAMPAIGNSRESPONSE']._serialized_start=1810 + _globals['_CAMPAIGNSRESPONSE']._serialized_end=2007 + _globals['_CAMPAIGNSV2REQUEST']._serialized_start=2010 + _globals['_CAMPAIGNSV2REQUEST']._serialized_end=2288 + _globals['_CAMPAIGNSV2RESPONSE']._serialized_start=2290 + _globals['_CAMPAIGNSV2RESPONSE']._serialized_end=2401 + _globals['_CAMPAIGNV2']._serialized_start=2404 + _globals['_CAMPAIGNV2']._serialized_end=2983 + _globals['_LISTGUILDSREQUEST']._serialized_start=2986 + _globals['_LISTGUILDSREQUEST']._serialized_end=3117 + _globals['_LISTGUILDSRESPONSE']._serialized_start=3120 + _globals['_LISTGUILDSRESPONSE']._serialized_end=3366 + _globals['_GUILD']._serialized_start=3369 + _globals['_GUILD']._serialized_end=3854 + _globals['_CAMPAIGNSUMMARY']._serialized_start=3857 + _globals['_CAMPAIGNSUMMARY']._serialized_end=4243 + _globals['_LISTGUILDMEMBERSREQUEST']._serialized_start=4246 + _globals['_LISTGUILDMEMBERSREQUEST']._serialized_end=4456 + _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_start=4459 + _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_end=4666 + _globals['_GUILDMEMBER']._serialized_start=4669 + _globals['_GUILDMEMBER']._serialized_end=5136 + _globals['_GETGUILDMEMBERREQUEST']._serialized_start=5138 + _globals['_GETGUILDMEMBERREQUEST']._serialized_end=5232 + _globals['_GETGUILDMEMBERRESPONSE']._serialized_start=5234 + _globals['_GETGUILDMEMBERRESPONSE']._serialized_end=5315 + _globals['_INJECTIVECAMPAIGNRPC']._serialized_start=5318 + _globals['_INJECTIVECAMPAIGNRPC']._serialized_end=5967 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py index dd17fc23..acf2edf7 100644 --- a/pyinjective/proto/exchange/injective_chart_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"exchange/injective_chart_rpc.proto\x12\x13injective_chart_rpc\"\xb1\x01\n\x18SpotMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"o\n\x19SpotMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\"\xb7\x01\n\x1e\x44\x65rivativeMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"u\n\x1f\x44\x65rivativeMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v2\x8e\x02\n\x11InjectiveChartRPC\x12r\n\x11SpotMarketHistory\x12-.injective_chart_rpc.SpotMarketHistoryRequest\x1a..injective_chart_rpc.SpotMarketHistoryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketHistory\x12\x33.injective_chart_rpc.DerivativeMarketHistoryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketHistoryResponseB\xad\x01\n\x17\x63om.injective_chart_rpcB\x16InjectiveChartRpcProtoP\x01Z\x16/injective_chart_rpcpb\xa2\x02\x03IXX\xaa\x02\x11InjectiveChartRpc\xca\x02\x11InjectiveChartRpc\xe2\x02\x1dInjectiveChartRpc\\GPBMetadata\xea\x02\x11InjectiveChartRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"exchange/injective_chart_rpc.proto\x12\x13injective_chart_rpc\"\xb1\x01\n\x18SpotMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"}\n\x19SpotMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"\xb7\x01\n\x1e\x44\x65rivativeMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"\x83\x01\n\x1f\x44\x65rivativeMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"W\n\x18SpotMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"\xb8\x01\n\x19SpotMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"=\n\x1b\x41llSpotMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"\\\n\x1c\x41llSpotMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield\"\xb0\x01\n\x11MarketSummaryResp\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"~\n\x1e\x44\x65rivativeMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1f\n\x0bindex_price\x18\x02 \x01(\x08R\nindexPrice\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\"\xbe\x01\n\x1f\x44\x65rivativeMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"C\n!AllDerivativeMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"b\n\"AllDerivativeMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield2\x96\x06\n\x11InjectiveChartRPC\x12r\n\x11SpotMarketHistory\x12-.injective_chart_rpc.SpotMarketHistoryRequest\x1a..injective_chart_rpc.SpotMarketHistoryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketHistory\x12\x33.injective_chart_rpc.DerivativeMarketHistoryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketHistoryResponse\x12r\n\x11SpotMarketSummary\x12-.injective_chart_rpc.SpotMarketSummaryRequest\x1a..injective_chart_rpc.SpotMarketSummaryResponse\x12{\n\x14\x41llSpotMarketSummary\x12\x30.injective_chart_rpc.AllSpotMarketSummaryRequest\x1a\x31.injective_chart_rpc.AllSpotMarketSummaryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketSummary\x12\x33.injective_chart_rpc.DerivativeMarketSummaryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketSummaryResponse\x12\x8d\x01\n\x1a\x41llDerivativeMarketSummary\x12\x36.injective_chart_rpc.AllDerivativeMarketSummaryRequest\x1a\x37.injective_chart_rpc.AllDerivativeMarketSummaryResponseB\xad\x01\n\x17\x63om.injective_chart_rpcB\x16InjectiveChartRpcProtoP\x01Z\x16/injective_chart_rpcpb\xa2\x02\x03IXX\xaa\x02\x11InjectiveChartRpc\xca\x02\x11InjectiveChartRpc\xe2\x02\x1dInjectiveChartRpc\\GPBMetadata\xea\x02\x11InjectiveChartRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,11 +25,29 @@ _globals['_SPOTMARKETHISTORYREQUEST']._serialized_start=60 _globals['_SPOTMARKETHISTORYREQUEST']._serialized_end=237 _globals['_SPOTMARKETHISTORYRESPONSE']._serialized_start=239 - _globals['_SPOTMARKETHISTORYRESPONSE']._serialized_end=350 - _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_start=353 - _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_end=536 - _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_start=538 - _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_end=655 - _globals['_INJECTIVECHARTRPC']._serialized_start=658 - _globals['_INJECTIVECHARTRPC']._serialized_end=928 + _globals['_SPOTMARKETHISTORYRESPONSE']._serialized_end=364 + _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_start=367 + _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_end=550 + _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_start=553 + _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_end=684 + _globals['_SPOTMARKETSUMMARYREQUEST']._serialized_start=686 + _globals['_SPOTMARKETSUMMARYREQUEST']._serialized_end=773 + _globals['_SPOTMARKETSUMMARYRESPONSE']._serialized_start=776 + _globals['_SPOTMARKETSUMMARYRESPONSE']._serialized_end=960 + _globals['_ALLSPOTMARKETSUMMARYREQUEST']._serialized_start=962 + _globals['_ALLSPOTMARKETSUMMARYREQUEST']._serialized_end=1023 + _globals['_ALLSPOTMARKETSUMMARYRESPONSE']._serialized_start=1025 + _globals['_ALLSPOTMARKETSUMMARYRESPONSE']._serialized_end=1117 + _globals['_MARKETSUMMARYRESP']._serialized_start=1120 + _globals['_MARKETSUMMARYRESP']._serialized_end=1296 + _globals['_DERIVATIVEMARKETSUMMARYREQUEST']._serialized_start=1298 + _globals['_DERIVATIVEMARKETSUMMARYREQUEST']._serialized_end=1424 + _globals['_DERIVATIVEMARKETSUMMARYRESPONSE']._serialized_start=1427 + _globals['_DERIVATIVEMARKETSUMMARYRESPONSE']._serialized_end=1617 + _globals['_ALLDERIVATIVEMARKETSUMMARYREQUEST']._serialized_start=1619 + _globals['_ALLDERIVATIVEMARKETSUMMARYREQUEST']._serialized_end=1686 + _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_start=1688 + _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_end=1786 + _globals['_INJECTIVECHARTRPC']._serialized_start=1789 + _globals['_INJECTIVECHARTRPC']._serialized_end=2579 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py index 76acb524..f99e2f75 100644 --- a/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py @@ -25,6 +25,26 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryRequest.SerializeToString, response_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryResponse.FromString, _registered_method=True) + self.SpotMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/SpotMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.FromString, + _registered_method=True) + self.AllSpotMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/AllSpotMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.FromString, + _registered_method=True) + self.DerivativeMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/DerivativeMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.FromString, + _registered_method=True) + self.AllDerivativeMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/AllDerivativeMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.FromString, + _registered_method=True) class InjectiveChartRPCServicer(object): @@ -45,6 +65,36 @@ def DerivativeMarketHistory(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def SpotMarketSummary(self, request, context): + """Gets spot market summary for the latest interval (hour, day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllSpotMarketSummary(self, request, context): + """Gets batch summary for all active markets, for the latest interval (hour, + day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarketSummary(self, request, context): + """Gets derivative market summary for the latest interval (hour, day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllDerivativeMarketSummary(self, request, context): + """Gets batch summary for all active markets, for the latest interval (hour, + day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveChartRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -58,6 +108,26 @@ def add_InjectiveChartRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryRequest.FromString, response_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryResponse.SerializeToString, ), + 'SpotMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.SerializeToString, + ), + 'AllSpotMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.AllSpotMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.SerializeToString, + ), + 'DerivativeMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.SerializeToString, + ), + 'AllDerivativeMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.AllDerivativeMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_chart_rpc.InjectiveChartRPC', rpc_method_handlers) @@ -123,3 +193,111 @@ def DerivativeMarketHistory(request, timeout, metadata, _registered_method=True) + + @staticmethod + def SpotMarketSummary(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_chart_rpc.InjectiveChartRPC/SpotMarketSummary', + exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AllSpotMarketSummary(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_chart_rpc.InjectiveChartRPC/AllSpotMarketSummary', + exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarketSummary(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_chart_rpc.InjectiveChartRPC/DerivativeMarketSummary', + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AllDerivativeMarketSummary(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_chart_rpc.InjectiveChartRPC/AllDerivativeMarketSummary', + exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py index fd21e15c..e98abec5 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x9b\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"h\n\x18GetContractTxsV2Response\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xad\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xcd\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\"\x96\x03\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\x12\x41\n\nsignatures\x18\r \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xd1\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xb8\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\"\x11\n\x0fGetStatsRequest\"\x9c\x02\n\x10GetStatsResponse\x12\x1c\n\taddresses\x18\x01 \x01(\x04R\taddresses\x12\x16\n\x06\x61ssets\x18\x02 \x01(\x04R\x06\x61ssets\x12\x1d\n\ninj_supply\x18\x03 \x01(\x04R\tinjSupply\x12\x1c\n\ntxs_ps24_h\x18\x04 \x01(\x04R\x08txsPs24H\x12\x1e\n\x0btxs_ps100_b\x18\x05 \x01(\x04R\ttxsPs100B\x12\x1b\n\ttxs_total\x18\x06 \x01(\x04R\x08txsTotal\x12\x17\n\x07txs24_h\x18\x07 \x01(\x04R\x06txs24H\x12\x17\n\x07txs30_d\x18\x08 \x01(\x04R\x06txs30D\x12&\n\x0f\x62lock_count24_h\x18\t \x01(\x04R\rblockCount24H2\xa5\x14\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x12]\n\x08GetStats\x12\'.injective_explorer_rpc.GetStatsRequest\x1a(.injective_explorer_rpc.GetStatsResponseB\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x9b\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"h\n\x18GetContractTxsV2Response\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xdf\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"E\n\x12GetBlocksV2Request\x12\x19\n\x08per_page\x18\x01 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x84\x01\n\x13GetBlocksV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"V\n\x06\x43ursor\x12\x12\n\x04\x66rom\x18\x01 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x02 \x01(\x11R\x02to\x12\x12\n\x04next\x18\x03 \x03(\tR\x04next\x12\x14\n\x05total\x18\x04 \x01(\x12R\x05total\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xcd\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\"\xc8\x03\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\x12\x41\n\nsignatures\x18\r \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0e \x01(\x04R\x12\x62lockUnixTimestamp\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"\x90\x01\n\x0fGetTxsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nstart_time\x18\x02 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x03 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x04 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\"~\n\x10GetTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xd1\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xea\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\x11\n\x0fGetStatsRequest\"\x9c\x02\n\x10GetStatsResponse\x12\x1c\n\taddresses\x18\x01 \x01(\x04R\taddresses\x12\x16\n\x06\x61ssets\x18\x02 \x01(\x04R\x06\x61ssets\x12\x1d\n\ninj_supply\x18\x03 \x01(\x04R\tinjSupply\x12\x1c\n\ntxs_ps24_h\x18\x04 \x01(\x04R\x08txsPs24H\x12\x1e\n\x0btxs_ps100_b\x18\x05 \x01(\x04R\ttxsPs100B\x12\x1b\n\ttxs_total\x18\x06 \x01(\x04R\x08txsTotal\x12\x17\n\x07txs24_h\x18\x07 \x01(\x04R\x06txs24H\x12\x17\n\x07txs30_d\x18\x08 \x01(\x04R\x06txs30D\x12&\n\x0f\x62lock_count24_h\x18\t \x01(\x04R\rblockCount24H2\xec\x15\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12\x66\n\x0bGetBlocksV2\x12*.injective_explorer_rpc.GetBlocksV2Request\x1a+.injective_explorer_rpc.GetBlocksV2Response\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12]\n\x08GetTxsV2\x12\'.injective_explorer_rpc.GetTxsV2Request\x1a(.injective_explorer_rpc.GetTxsV2Response\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x12]\n\x08GetStats\x12\'.injective_explorer_rpc.GetStatsRequest\x1a(.injective_explorer_rpc.GetStatsResponseB\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -55,129 +55,139 @@ _globals['_GETBLOCKSRESPONSE']._serialized_start=2542 _globals['_GETBLOCKSRESPONSE']._serialized_end=2672 _globals['_BLOCKINFO']._serialized_start=2675 - _globals['_BLOCKINFO']._serialized_end=2976 - _globals['_TXDATARPC']._serialized_start=2979 - _globals['_TXDATARPC']._serialized_end=3267 - _globals['_GETBLOCKREQUEST']._serialized_start=3269 - _globals['_GETBLOCKREQUEST']._serialized_end=3302 - _globals['_GETBLOCKRESPONSE']._serialized_start=3304 - _globals['_GETBLOCKRESPONSE']._serialized_end=3421 - _globals['_BLOCKDETAILINFO']._serialized_start=3424 - _globals['_BLOCKDETAILINFO']._serialized_end=3757 - _globals['_TXDATA']._serialized_start=3760 - _globals['_TXDATA']._serialized_end=4166 - _globals['_GETVALIDATORSREQUEST']._serialized_start=4168 - _globals['_GETVALIDATORSREQUEST']._serialized_end=4190 - _globals['_GETVALIDATORSRESPONSE']._serialized_start=4192 - _globals['_GETVALIDATORSRESPONSE']._serialized_end=4308 - _globals['_VALIDATOR']._serialized_start=4311 - _globals['_VALIDATOR']._serialized_end=5260 - _globals['_VALIDATORDESCRIPTION']._serialized_start=5263 - _globals['_VALIDATORDESCRIPTION']._serialized_end=5463 - _globals['_VALIDATORUPTIME']._serialized_start=5465 - _globals['_VALIDATORUPTIME']._serialized_end=5541 - _globals['_SLASHINGEVENT']._serialized_start=5544 - _globals['_SLASHINGEVENT']._serialized_end=5768 - _globals['_GETVALIDATORREQUEST']._serialized_start=5770 - _globals['_GETVALIDATORREQUEST']._serialized_end=5817 - _globals['_GETVALIDATORRESPONSE']._serialized_start=5819 - _globals['_GETVALIDATORRESPONSE']._serialized_end=5934 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=5936 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=5989 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=5991 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6118 - _globals['_GETTXSREQUEST']._serialized_start=6121 - _globals['_GETTXSREQUEST']._serialized_end=6412 - _globals['_GETTXSRESPONSE']._serialized_start=6414 - _globals['_GETTXSRESPONSE']._serialized_end=6538 - _globals['_GETTXBYTXHASHREQUEST']._serialized_start=6540 - _globals['_GETTXBYTXHASHREQUEST']._serialized_end=6582 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=6584 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=6703 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=6705 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=6826 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=6828 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=6918 - _globals['_PEGGYDEPOSITTX']._serialized_start=6921 - _globals['_PEGGYDEPOSITTX']._serialized_end=7298 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=7300 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=7424 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=7426 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=7522 - _globals['_PEGGYWITHDRAWALTX']._serialized_start=7525 - _globals['_PEGGYWITHDRAWALTX']._serialized_end=8044 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=8047 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=8291 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=8293 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=8381 - _globals['_IBCTRANSFERTX']._serialized_start=8384 - _globals['_IBCTRANSFERTX']._serialized_end=8926 - _globals['_GETWASMCODESREQUEST']._serialized_start=8928 - _globals['_GETWASMCODESREQUEST']._serialized_end=9033 - _globals['_GETWASMCODESRESPONSE']._serialized_start=9036 - _globals['_GETWASMCODESRESPONSE']._serialized_end=9168 - _globals['_WASMCODE']._serialized_start=9171 - _globals['_WASMCODE']._serialized_end=9653 - _globals['_CHECKSUM']._serialized_start=9655 - _globals['_CHECKSUM']._serialized_end=9715 - _globals['_CONTRACTPERMISSION']._serialized_start=9717 - _globals['_CONTRACTPERMISSION']._serialized_end=9796 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=9798 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=9847 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=9850 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=10347 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=10350 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=10559 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=10562 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=10702 - _globals['_WASMCONTRACT']._serialized_start=10705 - _globals['_WASMCONTRACT']._serialized_end=11322 - _globals['_CONTRACTFUND']._serialized_start=11324 - _globals['_CONTRACTFUND']._serialized_end=11384 - _globals['_CW20METADATA']._serialized_start=11387 - _globals['_CW20METADATA']._serialized_end=11553 - _globals['_CW20TOKENINFO']._serialized_start=11555 - _globals['_CW20TOKENINFO']._serialized_end=11677 - _globals['_CW20MARKETINGINFO']._serialized_start=11680 - _globals['_CW20MARKETINGINFO']._serialized_end=11809 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=11811 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=11887 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=11890 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=12527 - _globals['_GETCW20BALANCEREQUEST']._serialized_start=12529 - _globals['_GETCW20BALANCEREQUEST']._serialized_end=12600 - _globals['_GETCW20BALANCERESPONSE']._serialized_start=12602 - _globals['_GETCW20BALANCERESPONSE']._serialized_end=12689 - _globals['_WASMCW20BALANCE']._serialized_start=12692 - _globals['_WASMCW20BALANCE']._serialized_end=12910 - _globals['_RELAYERSREQUEST']._serialized_start=12912 - _globals['_RELAYERSREQUEST']._serialized_end=12961 - _globals['_RELAYERSRESPONSE']._serialized_start=12963 - _globals['_RELAYERSRESPONSE']._serialized_end=13043 - _globals['_RELAYERMARKETS']._serialized_start=13045 - _globals['_RELAYERMARKETS']._serialized_end=13151 - _globals['_RELAYER']._serialized_start=13153 - _globals['_RELAYER']._serialized_end=13200 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=13203 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=13520 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=13523 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=13663 - _globals['_BANKTRANSFER']._serialized_start=13666 - _globals['_BANKTRANSFER']._serialized_end=13866 - _globals['_COIN']._serialized_start=13868 - _globals['_COIN']._serialized_end=13920 - _globals['_STREAMTXSREQUEST']._serialized_start=13922 - _globals['_STREAMTXSREQUEST']._serialized_end=13940 - _globals['_STREAMTXSRESPONSE']._serialized_start=13943 - _globals['_STREAMTXSRESPONSE']._serialized_end=14239 - _globals['_STREAMBLOCKSREQUEST']._serialized_start=14241 - _globals['_STREAMBLOCKSREQUEST']._serialized_end=14262 - _globals['_STREAMBLOCKSRESPONSE']._serialized_start=14265 - _globals['_STREAMBLOCKSRESPONSE']._serialized_end=14577 - _globals['_GETSTATSREQUEST']._serialized_start=14579 - _globals['_GETSTATSREQUEST']._serialized_end=14596 - _globals['_GETSTATSRESPONSE']._serialized_start=14599 - _globals['_GETSTATSRESPONSE']._serialized_end=14883 - _globals['_INJECTIVEEXPLORERRPC']._serialized_start=14886 - _globals['_INJECTIVEEXPLORERRPC']._serialized_end=17483 + _globals['_BLOCKINFO']._serialized_end=3026 + _globals['_TXDATARPC']._serialized_start=3029 + _globals['_TXDATARPC']._serialized_end=3317 + _globals['_GETBLOCKSV2REQUEST']._serialized_start=3319 + _globals['_GETBLOCKSV2REQUEST']._serialized_end=3388 + _globals['_GETBLOCKSV2RESPONSE']._serialized_start=3391 + _globals['_GETBLOCKSV2RESPONSE']._serialized_end=3523 + _globals['_CURSOR']._serialized_start=3525 + _globals['_CURSOR']._serialized_end=3611 + _globals['_GETBLOCKREQUEST']._serialized_start=3613 + _globals['_GETBLOCKREQUEST']._serialized_end=3646 + _globals['_GETBLOCKRESPONSE']._serialized_start=3648 + _globals['_GETBLOCKRESPONSE']._serialized_end=3765 + _globals['_BLOCKDETAILINFO']._serialized_start=3768 + _globals['_BLOCKDETAILINFO']._serialized_end=4101 + _globals['_TXDATA']._serialized_start=4104 + _globals['_TXDATA']._serialized_end=4560 + _globals['_GETVALIDATORSREQUEST']._serialized_start=4562 + _globals['_GETVALIDATORSREQUEST']._serialized_end=4584 + _globals['_GETVALIDATORSRESPONSE']._serialized_start=4586 + _globals['_GETVALIDATORSRESPONSE']._serialized_end=4702 + _globals['_VALIDATOR']._serialized_start=4705 + _globals['_VALIDATOR']._serialized_end=5654 + _globals['_VALIDATORDESCRIPTION']._serialized_start=5657 + _globals['_VALIDATORDESCRIPTION']._serialized_end=5857 + _globals['_VALIDATORUPTIME']._serialized_start=5859 + _globals['_VALIDATORUPTIME']._serialized_end=5935 + _globals['_SLASHINGEVENT']._serialized_start=5938 + _globals['_SLASHINGEVENT']._serialized_end=6162 + _globals['_GETVALIDATORREQUEST']._serialized_start=6164 + _globals['_GETVALIDATORREQUEST']._serialized_end=6211 + _globals['_GETVALIDATORRESPONSE']._serialized_start=6213 + _globals['_GETVALIDATORRESPONSE']._serialized_end=6328 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=6330 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=6383 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=6385 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6512 + _globals['_GETTXSREQUEST']._serialized_start=6515 + _globals['_GETTXSREQUEST']._serialized_end=6806 + _globals['_GETTXSRESPONSE']._serialized_start=6808 + _globals['_GETTXSRESPONSE']._serialized_end=6932 + _globals['_GETTXSV2REQUEST']._serialized_start=6935 + _globals['_GETTXSV2REQUEST']._serialized_end=7079 + _globals['_GETTXSV2RESPONSE']._serialized_start=7081 + _globals['_GETTXSV2RESPONSE']._serialized_end=7207 + _globals['_GETTXBYTXHASHREQUEST']._serialized_start=7209 + _globals['_GETTXBYTXHASHREQUEST']._serialized_end=7251 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=7253 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=7372 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=7374 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=7495 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=7497 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=7587 + _globals['_PEGGYDEPOSITTX']._serialized_start=7590 + _globals['_PEGGYDEPOSITTX']._serialized_end=7967 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=7969 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=8093 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=8095 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=8191 + _globals['_PEGGYWITHDRAWALTX']._serialized_start=8194 + _globals['_PEGGYWITHDRAWALTX']._serialized_end=8713 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=8716 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=8960 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=8962 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=9050 + _globals['_IBCTRANSFERTX']._serialized_start=9053 + _globals['_IBCTRANSFERTX']._serialized_end=9595 + _globals['_GETWASMCODESREQUEST']._serialized_start=9597 + _globals['_GETWASMCODESREQUEST']._serialized_end=9702 + _globals['_GETWASMCODESRESPONSE']._serialized_start=9705 + _globals['_GETWASMCODESRESPONSE']._serialized_end=9837 + _globals['_WASMCODE']._serialized_start=9840 + _globals['_WASMCODE']._serialized_end=10322 + _globals['_CHECKSUM']._serialized_start=10324 + _globals['_CHECKSUM']._serialized_end=10384 + _globals['_CONTRACTPERMISSION']._serialized_start=10386 + _globals['_CONTRACTPERMISSION']._serialized_end=10465 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=10467 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=10516 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=10519 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=11016 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=11019 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=11228 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=11231 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=11371 + _globals['_WASMCONTRACT']._serialized_start=11374 + _globals['_WASMCONTRACT']._serialized_end=11991 + _globals['_CONTRACTFUND']._serialized_start=11993 + _globals['_CONTRACTFUND']._serialized_end=12053 + _globals['_CW20METADATA']._serialized_start=12056 + _globals['_CW20METADATA']._serialized_end=12222 + _globals['_CW20TOKENINFO']._serialized_start=12224 + _globals['_CW20TOKENINFO']._serialized_end=12346 + _globals['_CW20MARKETINGINFO']._serialized_start=12349 + _globals['_CW20MARKETINGINFO']._serialized_end=12478 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=12480 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=12556 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=12559 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=13196 + _globals['_GETCW20BALANCEREQUEST']._serialized_start=13198 + _globals['_GETCW20BALANCEREQUEST']._serialized_end=13269 + _globals['_GETCW20BALANCERESPONSE']._serialized_start=13271 + _globals['_GETCW20BALANCERESPONSE']._serialized_end=13358 + _globals['_WASMCW20BALANCE']._serialized_start=13361 + _globals['_WASMCW20BALANCE']._serialized_end=13579 + _globals['_RELAYERSREQUEST']._serialized_start=13581 + _globals['_RELAYERSREQUEST']._serialized_end=13630 + _globals['_RELAYERSRESPONSE']._serialized_start=13632 + _globals['_RELAYERSRESPONSE']._serialized_end=13712 + _globals['_RELAYERMARKETS']._serialized_start=13714 + _globals['_RELAYERMARKETS']._serialized_end=13820 + _globals['_RELAYER']._serialized_start=13822 + _globals['_RELAYER']._serialized_end=13869 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=13872 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=14189 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=14192 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=14332 + _globals['_BANKTRANSFER']._serialized_start=14335 + _globals['_BANKTRANSFER']._serialized_end=14535 + _globals['_COIN']._serialized_start=14537 + _globals['_COIN']._serialized_end=14618 + _globals['_STREAMTXSREQUEST']._serialized_start=14620 + _globals['_STREAMTXSREQUEST']._serialized_end=14638 + _globals['_STREAMTXSRESPONSE']._serialized_start=14641 + _globals['_STREAMTXSRESPONSE']._serialized_end=14937 + _globals['_STREAMBLOCKSREQUEST']._serialized_start=14939 + _globals['_STREAMBLOCKSREQUEST']._serialized_end=14960 + _globals['_STREAMBLOCKSRESPONSE']._serialized_start=14963 + _globals['_STREAMBLOCKSRESPONSE']._serialized_end=15325 + _globals['_GETSTATSREQUEST']._serialized_start=15327 + _globals['_GETSTATSREQUEST']._serialized_end=15344 + _globals['_GETSTATSRESPONSE']._serialized_start=15347 + _globals['_GETSTATSRESPONSE']._serialized_end=15631 + _globals['_INJECTIVEEXPLORERRPC']._serialized_start=15634 + _globals['_INJECTIVEEXPLORERRPC']._serialized_end=18430 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py index 948df135..b58490a8 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py @@ -35,6 +35,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksResponse.FromString, _registered_method=True) + self.GetBlocksV2 = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocksV2', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.FromString, + _registered_method=True) self.GetBlock = channel.unary_unary( '/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock', request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlockRequest.SerializeToString, @@ -60,6 +65,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsResponse.FromString, _registered_method=True) + self.GetTxsV2 = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.FromString, + _registered_method=True) self.GetTxByTxHash = channel.unary_unary( '/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash', request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxByTxHashRequest.SerializeToString, @@ -164,6 +174,13 @@ def GetBlocks(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetBlocksV2(self, request, context): + """GetBlocks returns blocks based upon the request params + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def GetBlock(self, request, context): """GetBlock returns block based upon the height or hash """ @@ -199,6 +216,13 @@ def GetTxs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetTxsV2(self, request, context): + """GetTxs returns transactions based upon the request params + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def GetTxByTxHash(self, request, context): """GetTxByTxHash returns certain transaction information by its tx hash. """ @@ -324,6 +348,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksResponse.SerializeToString, ), + 'GetBlocksV2': grpc.unary_unary_rpc_method_handler( + servicer.GetBlocksV2, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.SerializeToString, + ), 'GetBlock': grpc.unary_unary_rpc_method_handler( servicer.GetBlock, request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlockRequest.FromString, @@ -349,6 +378,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsResponse.SerializeToString, ), + 'GetTxsV2': grpc.unary_unary_rpc_method_handler( + servicer.GetTxsV2, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.SerializeToString, + ), 'GetTxByTxHash': grpc.unary_unary_rpc_method_handler( servicer.GetTxByTxHash, request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxByTxHashRequest.FromString, @@ -539,6 +573,33 @@ def GetBlocks(request, metadata, _registered_method=True) + @staticmethod + def GetBlocksV2(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_explorer_rpc.InjectiveExplorerRPC/GetBlocksV2', + exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetBlock(request, target, @@ -674,6 +735,33 @@ def GetTxs(request, metadata, _registered_method=True) + @staticmethod + def GetTxsV2(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_explorer_rpc.InjectiveExplorerRPC/GetTxsV2', + exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetTxByTxHash(request, target, diff --git a/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py b/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py index 37dcb8f9..9bdb1b30 100644 --- a/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exchange/injective_portfolio_rpc.proto\x12\x17injective_portfolio_rpc\"Y\n\x13TokenHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"t\n\x14TokenHoldersResponse\x12\x39\n\x07holders\x18\x01 \x03(\x0b\x32\x1f.injective_portfolio_rpc.HolderR\x07holders\x12!\n\x0cnext_cursors\x18\x02 \x03(\tR\x0bnextCursors\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"B\n\x17\x41\x63\x63ountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\\\n\x18\x41\x63\x63ountPortfolioResponse\x12@\n\tportfolio\x18\x01 \x01(\x0b\x32\".injective_portfolio_rpc.PortfolioR\tportfolio\"\xa4\x02\n\tPortfolio\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12Z\n\x13positions_with_upnl\x18\x04 \x03(\x0b\x32*.injective_portfolio_rpc.PositionsWithUPNLR\x11positionsWithUpnl\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x96\x01\n\x13SubaccountBalanceV2\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x44\n\x07\x64\x65posit\x18\x03 \x01(\x0b\x32*.injective_portfolio_rpc.SubaccountDepositR\x07\x64\x65posit\"e\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\"\x83\x01\n\x11PositionsWithUPNL\x12G\n\x08position\x18\x01 \x01(\x0b\x32+.injective_portfolio_rpc.DerivativePositionR\x08position\x12%\n\x0eunrealized_pnl\x18\x02 \x01(\tR\runrealizedPnl\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"J\n\x1f\x41\x63\x63ountPortfolioBalancesRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"l\n AccountPortfolioBalancesResponse\x12H\n\tportfolio\x18\x01 \x01(\x0b\x32*.injective_portfolio_rpc.PortfolioBalancesR\tportfolio\"\xd0\x01\n\x11PortfolioBalances\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\"\x81\x01\n\x1dStreamAccountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xa5\x01\n\x1eStreamAccountPortfolioResponse\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x1c\n\ttimestamp\x18\x05 \x01(\x12R\ttimestamp2\x9d\x04\n\x15InjectivePortfolioRPC\x12k\n\x0cTokenHolders\x12,.injective_portfolio_rpc.TokenHoldersRequest\x1a-.injective_portfolio_rpc.TokenHoldersResponse\x12w\n\x10\x41\x63\x63ountPortfolio\x12\x30.injective_portfolio_rpc.AccountPortfolioRequest\x1a\x31.injective_portfolio_rpc.AccountPortfolioResponse\x12\x8f\x01\n\x18\x41\x63\x63ountPortfolioBalances\x12\x38.injective_portfolio_rpc.AccountPortfolioBalancesRequest\x1a\x39.injective_portfolio_rpc.AccountPortfolioBalancesResponse\x12\x8b\x01\n\x16StreamAccountPortfolio\x12\x36.injective_portfolio_rpc.StreamAccountPortfolioRequest\x1a\x37.injective_portfolio_rpc.StreamAccountPortfolioResponse0\x01\x42\xc9\x01\n\x1b\x63om.injective_portfolio_rpcB\x1aInjectivePortfolioRpcProtoP\x01Z\x1a/injective_portfolio_rpcpb\xa2\x02\x03IXX\xaa\x02\x15InjectivePortfolioRpc\xca\x02\x15InjectivePortfolioRpc\xe2\x02!InjectivePortfolioRpc\\GPBMetadata\xea\x02\x15InjectivePortfolioRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exchange/injective_portfolio_rpc.proto\x12\x17injective_portfolio_rpc\"Y\n\x13TokenHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"t\n\x14TokenHoldersResponse\x12\x39\n\x07holders\x18\x01 \x03(\x0b\x32\x1f.injective_portfolio_rpc.HolderR\x07holders\x12!\n\x0cnext_cursors\x18\x02 \x03(\tR\x0bnextCursors\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"B\n\x17\x41\x63\x63ountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\\\n\x18\x41\x63\x63ountPortfolioResponse\x12@\n\tportfolio\x18\x01 \x01(\x0b\x32\".injective_portfolio_rpc.PortfolioR\tportfolio\"\xa4\x02\n\tPortfolio\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12Z\n\x13positions_with_upnl\x18\x04 \x03(\x0b\x32*.injective_portfolio_rpc.PositionsWithUPNLR\x11positionsWithUpnl\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x96\x01\n\x13SubaccountBalanceV2\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x44\n\x07\x64\x65posit\x18\x03 \x01(\x0b\x32*.injective_portfolio_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"\x83\x01\n\x11PositionsWithUPNL\x12G\n\x08position\x18\x01 \x01(\x0b\x32+.injective_portfolio_rpc.DerivativePositionR\x08position\x12%\n\x0eunrealized_pnl\x18\x02 \x01(\tR\runrealizedPnl\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\\\n\x1f\x41\x63\x63ountPortfolioBalancesRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03usd\x18\x02 \x01(\x08R\x03usd\"l\n AccountPortfolioBalancesResponse\x12H\n\tportfolio\x18\x01 \x01(\x0b\x32*.injective_portfolio_rpc.PortfolioBalancesR\tportfolio\"\xed\x01\n\x11PortfolioBalances\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12\x1b\n\ttotal_usd\x18\x04 \x01(\tR\x08totalUsd\"\x81\x01\n\x1dStreamAccountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xa5\x01\n\x1eStreamAccountPortfolioResponse\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x1c\n\ttimestamp\x18\x05 \x01(\x12R\ttimestamp2\x9d\x04\n\x15InjectivePortfolioRPC\x12k\n\x0cTokenHolders\x12,.injective_portfolio_rpc.TokenHoldersRequest\x1a-.injective_portfolio_rpc.TokenHoldersResponse\x12w\n\x10\x41\x63\x63ountPortfolio\x12\x30.injective_portfolio_rpc.AccountPortfolioRequest\x1a\x31.injective_portfolio_rpc.AccountPortfolioResponse\x12\x8f\x01\n\x18\x41\x63\x63ountPortfolioBalances\x12\x38.injective_portfolio_rpc.AccountPortfolioBalancesRequest\x1a\x39.injective_portfolio_rpc.AccountPortfolioBalancesResponse\x12\x8b\x01\n\x16StreamAccountPortfolio\x12\x36.injective_portfolio_rpc.StreamAccountPortfolioRequest\x1a\x37.injective_portfolio_rpc.StreamAccountPortfolioResponse0\x01\x42\xc9\x01\n\x1b\x63om.injective_portfolio_rpcB\x1aInjectivePortfolioRpcProtoP\x01Z\x1a/injective_portfolio_rpcpb\xa2\x02\x03IXX\xaa\x02\x15InjectivePortfolioRpc\xca\x02\x15InjectivePortfolioRpc\xe2\x02!InjectivePortfolioRpc\\GPBMetadata\xea\x02\x15InjectivePortfolioRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,25 +35,25 @@ _globals['_PORTFOLIO']._serialized_start=516 _globals['_PORTFOLIO']._serialized_end=808 _globals['_COIN']._serialized_start=810 - _globals['_COIN']._serialized_end=862 - _globals['_SUBACCOUNTBALANCEV2']._serialized_start=865 - _globals['_SUBACCOUNTBALANCEV2']._serialized_end=1015 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1017 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=1118 - _globals['_POSITIONSWITHUPNL']._serialized_start=1121 - _globals['_POSITIONSWITHUPNL']._serialized_end=1252 - _globals['_DERIVATIVEPOSITION']._serialized_start=1255 - _globals['_DERIVATIVEPOSITION']._serialized_end=1687 - _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_start=1689 - _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_end=1763 - _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_start=1765 - _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_end=1873 - _globals['_PORTFOLIOBALANCES']._serialized_start=1876 - _globals['_PORTFOLIOBALANCES']._serialized_end=2084 - _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_start=2087 - _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_end=2216 - _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_start=2219 - _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_end=2384 - _globals['_INJECTIVEPORTFOLIORPC']._serialized_start=2387 - _globals['_INJECTIVEPORTFOLIORPC']._serialized_end=2928 + _globals['_COIN']._serialized_end=891 + _globals['_SUBACCOUNTBALANCEV2']._serialized_start=894 + _globals['_SUBACCOUNTBALANCEV2']._serialized_end=1044 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1047 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=1244 + _globals['_POSITIONSWITHUPNL']._serialized_start=1247 + _globals['_POSITIONSWITHUPNL']._serialized_end=1378 + _globals['_DERIVATIVEPOSITION']._serialized_start=1381 + _globals['_DERIVATIVEPOSITION']._serialized_end=1813 + _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_start=1815 + _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_end=1907 + _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_start=1909 + _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_end=2017 + _globals['_PORTFOLIOBALANCES']._serialized_start=2020 + _globals['_PORTFOLIOBALANCES']._serialized_end=2257 + _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_start=2260 + _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_end=2389 + _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_start=2392 + _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_end=2557 + _globals['_INJECTIVEPORTFOLIORPC']._serialized_start=2560 + _globals['_INJECTIVEPORTFOLIORPC']._serialized_end=3101 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_referral_rpc_pb2.py b/pyinjective/proto/exchange/injective_referral_rpc_pb2.py new file mode 100644 index 00000000..189f038c --- /dev/null +++ b/pyinjective/proto/exchange/injective_referral_rpc_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: exchange/injective_referral_rpc.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_referral_rpc.proto\x12\x16injective_referral_rpc\"F\n\x19GetReferrerDetailsRequest\x12)\n\x10referrer_address\x18\x01 \x01(\tR\x0freferrerAddress\"\xe3\x01\n\x1aGetReferrerDetailsResponse\x12\x43\n\x08invitees\x18\x01 \x03(\x0b\x32\'.injective_referral_rpc.ReferralInviteeR\x08invitees\x12)\n\x10total_commission\x18\x02 \x01(\tR\x0ftotalCommission\x12\x30\n\x14total_trading_volume\x18\x03 \x01(\tR\x12totalTradingVolume\x12#\n\rreferrer_code\x18\x04 \x01(\tR\x0creferrerCode\"\x8f\x01\n\x0fReferralInvitee\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x1e\n\ncommission\x18\x02 \x01(\tR\ncommission\x12%\n\x0etrading_volume\x18\x03 \x01(\tR\rtradingVolume\x12\x1b\n\tjoin_date\x18\x04 \x01(\tR\x08joinDate\"C\n\x18GetInviteeDetailsRequest\x12\'\n\x0finvitee_address\x18\x01 \x01(\tR\x0einviteeAddress\"\xb0\x01\n\x19GetInviteeDetailsResponse\x12\x1a\n\x08referrer\x18\x01 \x01(\tR\x08referrer\x12\x1b\n\tused_code\x18\x02 \x01(\tR\x08usedCode\x12%\n\x0etrading_volume\x18\x03 \x01(\tR\rtradingVolume\x12\x1b\n\tjoined_at\x18\x04 \x01(\tR\x08joinedAt\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\"?\n\x18GetReferrerByCodeRequest\x12#\n\rreferral_code\x18\x01 \x01(\tR\x0creferralCode\"F\n\x19GetReferrerByCodeResponse\x12)\n\x10referrer_address\x18\x01 \x01(\tR\x0freferrerAddress2\x87\x03\n\x14InjectiveReferralRPC\x12{\n\x12GetReferrerDetails\x12\x31.injective_referral_rpc.GetReferrerDetailsRequest\x1a\x32.injective_referral_rpc.GetReferrerDetailsResponse\x12x\n\x11GetInviteeDetails\x12\x30.injective_referral_rpc.GetInviteeDetailsRequest\x1a\x31.injective_referral_rpc.GetInviteeDetailsResponse\x12x\n\x11GetReferrerByCode\x12\x30.injective_referral_rpc.GetReferrerByCodeRequest\x1a\x31.injective_referral_rpc.GetReferrerByCodeResponseB\xc2\x01\n\x1a\x63om.injective_referral_rpcB\x19InjectiveReferralRpcProtoP\x01Z\x19/injective_referral_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveReferralRpc\xca\x02\x14InjectiveReferralRpc\xe2\x02 InjectiveReferralRpc\\GPBMetadata\xea\x02\x14InjectiveReferralRpcb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exchange.injective_referral_rpc_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.injective_referral_rpcB\031InjectiveReferralRpcProtoP\001Z\031/injective_referral_rpcpb\242\002\003IXX\252\002\024InjectiveReferralRpc\312\002\024InjectiveReferralRpc\342\002 InjectiveReferralRpc\\GPBMetadata\352\002\024InjectiveReferralRpc' + _globals['_GETREFERRERDETAILSREQUEST']._serialized_start=65 + _globals['_GETREFERRERDETAILSREQUEST']._serialized_end=135 + _globals['_GETREFERRERDETAILSRESPONSE']._serialized_start=138 + _globals['_GETREFERRERDETAILSRESPONSE']._serialized_end=365 + _globals['_REFERRALINVITEE']._serialized_start=368 + _globals['_REFERRALINVITEE']._serialized_end=511 + _globals['_GETINVITEEDETAILSREQUEST']._serialized_start=513 + _globals['_GETINVITEEDETAILSREQUEST']._serialized_end=580 + _globals['_GETINVITEEDETAILSRESPONSE']._serialized_start=583 + _globals['_GETINVITEEDETAILSRESPONSE']._serialized_end=759 + _globals['_GETREFERRERBYCODEREQUEST']._serialized_start=761 + _globals['_GETREFERRERBYCODEREQUEST']._serialized_end=824 + _globals['_GETREFERRERBYCODERESPONSE']._serialized_start=826 + _globals['_GETREFERRERBYCODERESPONSE']._serialized_end=896 + _globals['_INJECTIVEREFERRALRPC']._serialized_start=899 + _globals['_INJECTIVEREFERRALRPC']._serialized_end=1290 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py new file mode 100644 index 00000000..64f0ae10 --- /dev/null +++ b/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py @@ -0,0 +1,170 @@ +# 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.exchange import injective_referral_rpc_pb2 as exchange_dot_injective__referral__rpc__pb2 + + +class InjectiveReferralRPCStub(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetReferrerDetails = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetReferrerDetails', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.FromString, + _registered_method=True) + self.GetInviteeDetails = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetInviteeDetails', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.FromString, + _registered_method=True) + self.GetReferrerByCode = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetReferrerByCode', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.FromString, + _registered_method=True) + + +class InjectiveReferralRPCServicer(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + def GetReferrerDetails(self, request, context): + """Get referrer details including their invitees, commissions and trading + volumes + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetInviteeDetails(self, request, context): + """Get invitee details including their referrer, trading volume and join date + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetReferrerByCode(self, request, context): + """Get referrer details by their referral code + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_InjectiveReferralRPCServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetReferrerDetails': grpc.unary_unary_rpc_method_handler( + servicer.GetReferrerDetails, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.SerializeToString, + ), + 'GetInviteeDetails': grpc.unary_unary_rpc_method_handler( + servicer.GetInviteeDetails, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.SerializeToString, + ), + 'GetReferrerByCode': grpc.unary_unary_rpc_method_handler( + servicer.GetReferrerByCode, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective_referral_rpc.InjectiveReferralRPC', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective_referral_rpc.InjectiveReferralRPC', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class InjectiveReferralRPC(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + @staticmethod + def GetReferrerDetails(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_referral_rpc.InjectiveReferralRPC/GetReferrerDetails', + exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetInviteeDetails(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_referral_rpc.InjectiveReferralRPC/GetInviteeDetails', + exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetReferrerByCode(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_referral_rpc.InjectiveReferralRPC/GetReferrerByCode', + exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py index b585b272..4babfd85 100644 --- a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -119,7 +119,7 @@ _globals['_ATOMICSWAP']._serialized_start=10289 _globals['_ATOMICSWAP']._serialized_end=10769 _globals['_COIN']._serialized_start=10771 - _globals['_COIN']._serialized_end=10823 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10826 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=13032 + _globals['_COIN']._serialized_end=10852 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10855 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=13061 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py index f2e6dfbf..35a90018 100644 --- a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\x9c\x04\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\x12,\n\x12last_executed_time\x18\x0c \x01(\x12R\x10lastExecutedTime\x12\x19\n\x08with_tvl\x18\r \x01(\x08R\x07withTvl\x12\x30\n\x14is_trailing_strategy\x18\x0e \x01(\x08R\x12isTrailingStrategy\x12)\n\x10with_performance\x18\x0f \x01(\x08R\x0fwithPerformance\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\xd6\x0f\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\x12(\n\x10last_executed_at\x18\" \x01(\x12R\x0elastExecutedAt\x12$\n\x0etrail_up_price\x18# \x01(\tR\x0ctrailUpPrice\x12(\n\x10trail_down_price\x18$ \x01(\tR\x0etrailDownPrice\x12(\n\x10trail_up_counter\x18% \x01(\x12R\x0etrailUpCounter\x12,\n\x12trail_down_counter\x18& \x01(\x12R\x10trailDownCounter\x12\x10\n\x03tvl\x18\' \x01(\tR\x03tvl\x12\x10\n\x03pnl\x18( \x01(\tR\x03pnl\x12\x19\n\x08pnl_perc\x18) \x01(\tR\x07pnlPerc\x12$\n\x0epnl_updated_at\x18* \x01(\x12R\x0cpnlUpdatedAt\x12 \n\x0bperformance\x18+ \x01(\tR\x0bperformance\x12\x10\n\x03roi\x18, \x01(\tR\x03roi\x12,\n\x12initial_base_price\x18- \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18. \x01(\tR\x11initialQuotePrice\x12,\n\x12\x63urrent_base_price\x18/ \x01(\tR\x10\x63urrentBasePrice\x12.\n\x13\x63urrent_quote_price\x18\x30 \x01(\tR\x11\x63urrentQuotePrice\x12(\n\x10\x66inal_base_price\x18\x31 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x32 \x01(\tR\x0f\x66inalQuotePrice\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x18\n\x16GetTradingStatsRequest\"\xf4\x01\n\x17GetTradingStatsResponse\x12:\n\x19\x61\x63tive_trading_strategies\x18\x01 \x01(\x04R\x17\x61\x63tiveTradingStrategies\x12G\n total_trading_strategies_created\x18\x02 \x01(\x04R\x1dtotalTradingStrategiesCreated\x12\x1b\n\ttotal_tvl\x18\x03 \x01(\tR\x08totalTvl\x12\x37\n\x07markets\x18\x04 \x03(\x0b\x32\x1d.injective_trading_rpc.MarketR\x07markets\"a\n\x06Market\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12:\n\x19\x61\x63tive_trading_strategies\x18\x02 \x01(\x04R\x17\x61\x63tiveTradingStrategies2\x8c\x02\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponse\x12p\n\x0fGetTradingStats\x12-.injective_trading_rpc.GetTradingStatsRequest\x1a..injective_trading_rpc.GetTradingStatsResponseB\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\x9c\x04\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\x12,\n\x12last_executed_time\x18\x0c \x01(\x12R\x10lastExecutedTime\x12\x19\n\x08with_tvl\x18\r \x01(\x08R\x07withTvl\x12\x30\n\x14is_trailing_strategy\x18\x0e \x01(\x08R\x12isTrailingStrategy\x12)\n\x10with_performance\x18\x0f \x01(\x08R\x0fwithPerformance\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\x9f\x10\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\x12(\n\x10last_executed_at\x18\" \x01(\x12R\x0elastExecutedAt\x12$\n\x0etrail_up_price\x18# \x01(\tR\x0ctrailUpPrice\x12(\n\x10trail_down_price\x18$ \x01(\tR\x0etrailDownPrice\x12(\n\x10trail_up_counter\x18% \x01(\x12R\x0etrailUpCounter\x12,\n\x12trail_down_counter\x18& \x01(\x12R\x10trailDownCounter\x12\x10\n\x03tvl\x18\' \x01(\tR\x03tvl\x12\x10\n\x03pnl\x18( \x01(\tR\x03pnl\x12\x19\n\x08pnl_perc\x18) \x01(\tR\x07pnlPerc\x12$\n\x0epnl_updated_at\x18* \x01(\x12R\x0cpnlUpdatedAt\x12 \n\x0bperformance\x18+ \x01(\tR\x0bperformance\x12\x10\n\x03roi\x18, \x01(\tR\x03roi\x12,\n\x12initial_base_price\x18- \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18. \x01(\tR\x11initialQuotePrice\x12,\n\x12\x63urrent_base_price\x18/ \x01(\tR\x10\x63urrentBasePrice\x12.\n\x13\x63urrent_quote_price\x18\x30 \x01(\tR\x11\x63urrentQuotePrice\x12(\n\x10\x66inal_base_price\x18\x31 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x32 \x01(\tR\x0f\x66inalQuotePrice\x12G\n\nfinal_data\x18\x33 \x01(\x0b\x32(.injective_trading_rpc.StrategyFinalDataR\tfinalData\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x83\x03\n\x11StrategyFinalData\x12.\n\x13initial_base_amount\x18\x01 \x01(\tR\x11initialBaseAmount\x12\x30\n\x14initial_quote_amount\x18\x02 \x01(\tR\x12initialQuoteAmount\x12*\n\x11\x66inal_base_amount\x18\x03 \x01(\tR\x0f\x66inalBaseAmount\x12,\n\x12\x66inal_quote_amount\x18\x04 \x01(\tR\x10\x66inalQuoteAmount\x12,\n\x12initial_base_price\x18\x05 \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18\x06 \x01(\tR\x11initialQuotePrice\x12(\n\x10\x66inal_base_price\x18\x07 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x08 \x01(\tR\x0f\x66inalQuotePrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x18\n\x16GetTradingStatsRequest\"\xf4\x01\n\x17GetTradingStatsResponse\x12:\n\x19\x61\x63tive_trading_strategies\x18\x01 \x01(\x04R\x17\x61\x63tiveTradingStrategies\x12G\n total_trading_strategies_created\x18\x02 \x01(\x04R\x1dtotalTradingStrategiesCreated\x12\x1b\n\ttotal_tvl\x18\x03 \x01(\tR\x08totalTvl\x12\x37\n\x07markets\x18\x04 \x03(\x0b\x32\x1d.injective_trading_rpc.MarketR\x07markets\"a\n\x06Market\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12:\n\x19\x61\x63tive_trading_strategies\x18\x02 \x01(\x04R\x17\x61\x63tiveTradingStrategies2\x8c\x02\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponse\x12p\n\x0fGetTradingStats\x12-.injective_trading_rpc.GetTradingStatsRequest\x1a..injective_trading_rpc.GetTradingStatsResponseB\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,17 +27,19 @@ _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_start=607 _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_end=765 _globals['_TRADINGSTRATEGY']._serialized_start=768 - _globals['_TRADINGSTRATEGY']._serialized_end=2774 - _globals['_EXITCONFIG']._serialized_start=2776 - _globals['_EXITCONFIG']._serialized_end=2848 - _globals['_PAGING']._serialized_start=2851 - _globals['_PAGING']._serialized_end=2985 - _globals['_GETTRADINGSTATSREQUEST']._serialized_start=2987 - _globals['_GETTRADINGSTATSREQUEST']._serialized_end=3011 - _globals['_GETTRADINGSTATSRESPONSE']._serialized_start=3014 - _globals['_GETTRADINGSTATSRESPONSE']._serialized_end=3258 - _globals['_MARKET']._serialized_start=3260 - _globals['_MARKET']._serialized_end=3357 - _globals['_INJECTIVETRADINGRPC']._serialized_start=3360 - _globals['_INJECTIVETRADINGRPC']._serialized_end=3628 + _globals['_TRADINGSTRATEGY']._serialized_end=2847 + _globals['_EXITCONFIG']._serialized_start=2849 + _globals['_EXITCONFIG']._serialized_end=2921 + _globals['_STRATEGYFINALDATA']._serialized_start=2924 + _globals['_STRATEGYFINALDATA']._serialized_end=3311 + _globals['_PAGING']._serialized_start=3314 + _globals['_PAGING']._serialized_end=3448 + _globals['_GETTRADINGSTATSREQUEST']._serialized_start=3450 + _globals['_GETTRADINGSTATSREQUEST']._serialized_end=3474 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_start=3477 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_end=3721 + _globals['_MARKET']._serialized_start=3723 + _globals['_MARKET']._serialized_end=3820 + _globals['_INJECTIVETRADINGRPC']._serialized_start=3823 + _globals['_INJECTIVETRADINGRPC']._serialized_end=4091 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/api/client_pb2.py b/pyinjective/proto/google/api/client_pb2.py index db55b0ba..aab7d140 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\"\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\"\xe4\x01\n\nGoSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12V\n\x10renamed_services\x18\x02 \x03(\x0b\x32+.google.api.GoSettings.RenamedServicesEntryR\x0frenamedServices\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\"\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') +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\"\x87\x03\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\xd2\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\x12@\n\x1cunversioned_package_disabled\x18\x03 \x01(\x08R\x1aunversionedPackageDisabled\"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\"\xe4\x01\n\nGoSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12V\n\x10renamed_services\x18\x02 \x03(\x0b\x32+.google.api.GoSettings.RenamedServicesEntryR\x0frenamedServices\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\"\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\"u\n\x18SelectiveGapicGeneration\x12\x18\n\x07methods\x18\x01 \x03(\tR\x07methods\x12?\n\x1cgenerate_omitted_as_internal\x18\x02 \x01(\x08R\x19generateOmittedAsInternal*\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) @@ -35,10 +35,10 @@ _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_options = b'8\001' _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._loaded_options = None _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_options = b'8\001' - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_start=3895 - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=4058 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=4060 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=4163 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_start=4026 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=4189 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=4191 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=4294 _globals['_COMMONLANGUAGESETTINGS']._serialized_start=137 _globals['_COMMONLANGUAGESETTINGS']._serialized_end=385 _globals['_CLIENTLIBRARYSETTINGS']._serialized_start=388 @@ -54,27 +54,27 @@ _globals['_PHPSETTINGS']._serialized_start=2040 _globals['_PHPSETTINGS']._serialized_end=2113 _globals['_PYTHONSETTINGS']._serialized_start=2116 - _globals['_PYTHONSETTINGS']._serialized_end=2441 + _globals['_PYTHONSETTINGS']._serialized_end=2507 _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=3157 - _globals['_GOSETTINGS']._serialized_end=3385 - _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=2943 - _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3009 - _globals['_METHODSETTINGS']._serialized_start=3388 - _globals['_METHODSETTINGS']._serialized_end=3838 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3562 - _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3838 - _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3840 - _globals['_SELECTIVEGAPICGENERATION']._serialized_end=3892 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2507 + _globals['_NODESETTINGS']._serialized_start=2509 + _globals['_NODESETTINGS']._serialized_end=2583 + _globals['_DOTNETSETTINGS']._serialized_start=2586 + _globals['_DOTNETSETTINGS']._serialized_end=3144 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=3009 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3075 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=3077 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=3144 + _globals['_RUBYSETTINGS']._serialized_start=3146 + _globals['_RUBYSETTINGS']._serialized_end=3220 + _globals['_GOSETTINGS']._serialized_start=3223 + _globals['_GOSETTINGS']._serialized_end=3451 + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=3009 + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3075 + _globals['_METHODSETTINGS']._serialized_start=3454 + _globals['_METHODSETTINGS']._serialized_end=3904 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3628 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3904 + _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3906 + _globals['_SELECTIVEGAPICGENERATION']._serialized_end=4023 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/api/http_pb2.py b/pyinjective/proto/google/api/http_pb2.py index a2003b27..a0dc8f5f 100644 --- a/pyinjective/proto/google/api/http_pb2.py +++ b/pyinjective/proto/google/api/http_pb2.py @@ -14,14 +14,14 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15google/api/http.proto\x12\ngoogle.api\"y\n\x04Http\x12*\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRuleR\x05rules\x12\x45\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08R\x1c\x66ullyDecodeReservedExpansion\"\xda\x02\n\x08HttpRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12\x12\n\x03get\x18\x02 \x01(\tH\x00R\x03get\x12\x12\n\x03put\x18\x03 \x01(\tH\x00R\x03put\x12\x14\n\x04post\x18\x04 \x01(\tH\x00R\x04post\x12\x18\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00R\x06\x64\x65lete\x12\x16\n\x05patch\x18\x06 \x01(\tH\x00R\x05patch\x12\x37\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00R\x06\x63ustom\x12\x12\n\x04\x62ody\x18\x07 \x01(\tR\x04\x62ody\x12#\n\rresponse_body\x18\x0c \x01(\tR\x0cresponseBody\x12\x45\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleR\x12\x61\x64\x64itionalBindingsB\t\n\x07pattern\";\n\x11\x43ustomHttpPattern\x12\x12\n\x04kind\x18\x01 \x01(\tR\x04kind\x12\x12\n\x04path\x18\x02 \x01(\tR\x04pathB\xaa\x01\n\x0e\x63om.google.apiB\tHttpProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\x15google/api/http.proto\x12\ngoogle.api\"y\n\x04Http\x12*\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRuleR\x05rules\x12\x45\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08R\x1c\x66ullyDecodeReservedExpansion\"\xda\x02\n\x08HttpRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12\x12\n\x03get\x18\x02 \x01(\tH\x00R\x03get\x12\x12\n\x03put\x18\x03 \x01(\tH\x00R\x03put\x12\x14\n\x04post\x18\x04 \x01(\tH\x00R\x04post\x12\x18\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00R\x06\x64\x65lete\x12\x16\n\x05patch\x18\x06 \x01(\tH\x00R\x05patch\x12\x37\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00R\x06\x63ustom\x12\x12\n\x04\x62ody\x18\x07 \x01(\tR\x04\x62ody\x12#\n\rresponse_body\x18\x0c \x01(\tR\x0cresponseBody\x12\x45\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleR\x12\x61\x64\x64itionalBindingsB\t\n\x07pattern\";\n\x11\x43ustomHttpPattern\x12\x12\n\x04kind\x18\x01 \x01(\tR\x04kind\x12\x12\n\x04path\x18\x02 \x01(\tR\x04pathB\xa7\x01\n\x0e\x63om.google.apiB\tHttpProtoP\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) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.api.http_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_HTTP']._serialized_start=37 _globals['_HTTP']._serialized_end=158 _globals['_HTTPRULE']._serialized_start=161 diff --git a/pyinjective/proto/google/api/resource_pb2.py b/pyinjective/proto/google/api/resource_pb2.py index c7f27cc2..b7cc3692 100644 --- a/pyinjective/proto/google/api/resource_pb2.py +++ b/pyinjective/proto/google/api/resource_pb2.py @@ -15,14 +15,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19google/api/resource.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"\xaa\x03\n\x12ResourceDescriptor\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07pattern\x18\x02 \x03(\tR\x07pattern\x12\x1d\n\nname_field\x18\x03 \x01(\tR\tnameField\x12@\n\x07history\x18\x04 \x01(\x0e\x32&.google.api.ResourceDescriptor.HistoryR\x07history\x12\x16\n\x06plural\x18\x05 \x01(\tR\x06plural\x12\x1a\n\x08singular\x18\x06 \x01(\tR\x08singular\x12:\n\x05style\x18\n \x03(\x0e\x32$.google.api.ResourceDescriptor.StyleR\x05style\"[\n\x07History\x12\x17\n\x13HISTORY_UNSPECIFIED\x10\x00\x12\x1d\n\x19ORIGINALLY_SINGLE_PATTERN\x10\x01\x12\x18\n\x14\x46UTURE_MULTI_PATTERN\x10\x02\"8\n\x05Style\x12\x15\n\x11STYLE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44\x45\x43LARATIVE_FRIENDLY\x10\x01\"F\n\x11ResourceReference\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nchild_type\x18\x02 \x01(\tR\tchildType:l\n\x12resource_reference\x12\x1d.google.protobuf.FieldOptions\x18\x9f\x08 \x01(\x0b\x32\x1d.google.api.ResourceReferenceR\x11resourceReference:n\n\x13resource_definition\x12\x1c.google.protobuf.FileOptions\x18\x9d\x08 \x03(\x0b\x32\x1e.google.api.ResourceDescriptorR\x12resourceDefinition:\\\n\x08resource\x12\x1f.google.protobuf.MessageOptions\x18\x9d\x08 \x01(\x0b\x32\x1e.google.api.ResourceDescriptorR\x08resourceB\xae\x01\n\x0e\x63om.google.apiB\rResourceProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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/resource.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"\xaa\x03\n\x12ResourceDescriptor\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07pattern\x18\x02 \x03(\tR\x07pattern\x12\x1d\n\nname_field\x18\x03 \x01(\tR\tnameField\x12@\n\x07history\x18\x04 \x01(\x0e\x32&.google.api.ResourceDescriptor.HistoryR\x07history\x12\x16\n\x06plural\x18\x05 \x01(\tR\x06plural\x12\x1a\n\x08singular\x18\x06 \x01(\tR\x08singular\x12:\n\x05style\x18\n \x03(\x0e\x32$.google.api.ResourceDescriptor.StyleR\x05style\"[\n\x07History\x12\x17\n\x13HISTORY_UNSPECIFIED\x10\x00\x12\x1d\n\x19ORIGINALLY_SINGLE_PATTERN\x10\x01\x12\x18\n\x14\x46UTURE_MULTI_PATTERN\x10\x02\"8\n\x05Style\x12\x15\n\x11STYLE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44\x45\x43LARATIVE_FRIENDLY\x10\x01\"F\n\x11ResourceReference\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nchild_type\x18\x02 \x01(\tR\tchildType:l\n\x12resource_reference\x12\x1d.google.protobuf.FieldOptions\x18\x9f\x08 \x01(\x0b\x32\x1d.google.api.ResourceReferenceR\x11resourceReference:n\n\x13resource_definition\x12\x1c.google.protobuf.FileOptions\x18\x9d\x08 \x03(\x0b\x32\x1e.google.api.ResourceDescriptorR\x12resourceDefinition:\\\n\x08resource\x12\x1f.google.protobuf.MessageOptions\x18\x9d\x08 \x01(\x0b\x32\x1e.google.api.ResourceDescriptorR\x08resourceB\xab\x01\n\x0e\x63om.google.apiB\rResourceProtoP\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) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.api.resource_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\rResourceProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\rResourceProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_RESOURCEDESCRIPTOR']._serialized_start=76 _globals['_RESOURCEDESCRIPTOR']._serialized_end=502 _globals['_RESOURCEDESCRIPTOR_HISTORY']._serialized_start=353 diff --git a/pyinjective/proto/google/api/visibility_pb2.py b/pyinjective/proto/google/api/visibility_pb2.py index 1e557b82..59d234e8 100644 --- a/pyinjective/proto/google/api/visibility_pb2.py +++ b/pyinjective/proto/google/api/visibility_pb2.py @@ -15,14 +15,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bgoogle/api/visibility.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\">\n\nVisibility\x12\x30\n\x05rules\x18\x01 \x03(\x0b\x32\x1a.google.api.VisibilityRuleR\x05rules\"N\n\x0eVisibilityRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12 \n\x0brestriction\x18\x02 \x01(\tR\x0brestriction:d\n\x0f\x65num_visibility\x12\x1c.google.protobuf.EnumOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0e\x65numVisibility:k\n\x10value_visibility\x12!.google.protobuf.EnumValueOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0fvalueVisibility:g\n\x10\x66ield_visibility\x12\x1d.google.protobuf.FieldOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0f\x66ieldVisibility:m\n\x12message_visibility\x12\x1f.google.protobuf.MessageOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x11messageVisibility:j\n\x11method_visibility\x12\x1e.google.protobuf.MethodOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x10methodVisibility:e\n\x0e\x61pi_visibility\x12\x1f.google.protobuf.ServiceOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\rapiVisibilityB\xae\x01\n\x0e\x63om.google.apiB\x0fVisibilityProtoP\x01Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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\x1bgoogle/api/visibility.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\">\n\nVisibility\x12\x30\n\x05rules\x18\x01 \x03(\x0b\x32\x1a.google.api.VisibilityRuleR\x05rules\"N\n\x0eVisibilityRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12 \n\x0brestriction\x18\x02 \x01(\tR\x0brestriction:d\n\x0f\x65num_visibility\x12\x1c.google.protobuf.EnumOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0e\x65numVisibility:k\n\x10value_visibility\x12!.google.protobuf.EnumValueOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0fvalueVisibility:g\n\x10\x66ield_visibility\x12\x1d.google.protobuf.FieldOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0f\x66ieldVisibility:m\n\x12message_visibility\x12\x1f.google.protobuf.MessageOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x11messageVisibility:j\n\x11method_visibility\x12\x1e.google.protobuf.MethodOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x10methodVisibility:e\n\x0e\x61pi_visibility\x12\x1f.google.protobuf.ServiceOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\rapiVisibilityB\xab\x01\n\x0e\x63om.google.apiB\x0fVisibilityProtoP\x01Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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.visibility_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\017VisibilityProtoP\001Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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\017VisibilityProtoP\001Z?google.golang.org/genproto/googleapis/api/visibility;visibility\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_VISIBILITY']._serialized_start=77 _globals['_VISIBILITY']._serialized_end=139 _globals['_VISIBILITYRULE']._serialized_start=141 diff --git a/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py b/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py index 4f263d64..0d9cb6d9 100644 --- a/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py +++ b/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py @@ -19,7 +19,7 @@ from pyinjective.proto.ibc.core.connection.v1 import connection_pb2 as ibc_dot_core_dot_connection_dot_v1_dot_connection__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fibc/core/connection/v1/tx.proto\x12\x16ibc.core.connection.v1\x1a\x14gogoproto/gogo.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19google/protobuf/any.proto\x1a\x1fibc/core/client/v1/client.proto\x1a\'ibc/core/connection/v1/connection.proto\"\x8b\x02\n\x15MsgConnectionOpenInit\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12N\n\x0c\x63ounterparty\x18\x02 \x01(\x0b\x32$.ibc.core.connection.v1.CounterpartyB\x04\xc8\xde\x1f\x00R\x0c\x63ounterparty\x12\x39\n\x07version\x18\x03 \x01(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x07version\x12!\n\x0c\x64\x65lay_period\x18\x04 \x01(\x04R\x0b\x64\x65layPeriod\x12\x16\n\x06signer\x18\x05 \x01(\tR\x06signer:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1f\n\x1dMsgConnectionOpenInitResponse\"\xd2\x05\n\x14MsgConnectionOpenTry\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12\x38\n\x16previous_connection_id\x18\x02 \x01(\tB\x02\x18\x01R\x14previousConnectionId\x12\x37\n\x0c\x63lient_state\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x63lientState\x12N\n\x0c\x63ounterparty\x18\x04 \x01(\x0b\x32$.ibc.core.connection.v1.CounterpartyB\x04\xc8\xde\x1f\x00R\x0c\x63ounterparty\x12!\n\x0c\x64\x65lay_period\x18\x05 \x01(\x04R\x0b\x64\x65layPeriod\x12T\n\x15\x63ounterparty_versions\x18\x06 \x03(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x14\x63ounterpartyVersions\x12\x43\n\x0cproof_height\x18\x07 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x1d\n\nproof_init\x18\x08 \x01(\x0cR\tproofInit\x12!\n\x0cproof_client\x18\t \x01(\x0cR\x0bproofClient\x12\'\n\x0fproof_consensus\x18\n \x01(\x0cR\x0eproofConsensus\x12K\n\x10\x63onsensus_height\x18\x0b \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusHeight\x12\x16\n\x06signer\x18\x0c \x01(\tR\x06signer\x12;\n\x1ahost_consensus_state_proof\x18\r \x01(\x0cR\x17hostConsensusStateProof:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1e\n\x1cMsgConnectionOpenTryResponse\"\xce\x04\n\x14MsgConnectionOpenAck\x12#\n\rconnection_id\x18\x01 \x01(\tR\x0c\x63onnectionId\x12<\n\x1a\x63ounterparty_connection_id\x18\x02 \x01(\tR\x18\x63ounterpartyConnectionId\x12\x39\n\x07version\x18\x03 \x01(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x07version\x12\x37\n\x0c\x63lient_state\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x63lientState\x12\x43\n\x0cproof_height\x18\x05 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x1b\n\tproof_try\x18\x06 \x01(\x0cR\x08proofTry\x12!\n\x0cproof_client\x18\x07 \x01(\x0cR\x0bproofClient\x12\'\n\x0fproof_consensus\x18\x08 \x01(\x0cR\x0eproofConsensus\x12K\n\x10\x63onsensus_height\x18\t \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusHeight\x12\x16\n\x06signer\x18\n \x01(\tR\x06signer\x12;\n\x1ahost_consensus_state_proof\x18\x0b \x01(\x0cR\x17hostConsensusStateProof:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1e\n\x1cMsgConnectionOpenAckResponse\"\xca\x01\n\x18MsgConnectionOpenConfirm\x12#\n\rconnection_id\x18\x01 \x01(\tR\x0c\x63onnectionId\x12\x1b\n\tproof_ack\x18\x02 \x01(\x0cR\x08proofAck\x12\x43\n\x0cproof_height\x18\x03 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x16\n\x06signer\x18\x04 \x01(\tR\x06signer:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\"\n MsgConnectionOpenConfirmResponse\"x\n\x0fMsgUpdateParams\x12\x16\n\x06signer\x18\x01 \x01(\tR\x06signer\x12<\n\x06params\x18\x02 \x01(\x0b\x32\x1e.ibc.core.connection.v1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x19\n\x17MsgUpdateParamsResponse2\xf4\x04\n\x03Msg\x12z\n\x12\x43onnectionOpenInit\x12-.ibc.core.connection.v1.MsgConnectionOpenInit\x1a\x35.ibc.core.connection.v1.MsgConnectionOpenInitResponse\x12w\n\x11\x43onnectionOpenTry\x12,.ibc.core.connection.v1.MsgConnectionOpenTry\x1a\x34.ibc.core.connection.v1.MsgConnectionOpenTryResponse\x12w\n\x11\x43onnectionOpenAck\x12,.ibc.core.connection.v1.MsgConnectionOpenAck\x1a\x34.ibc.core.connection.v1.MsgConnectionOpenAckResponse\x12\x83\x01\n\x15\x43onnectionOpenConfirm\x12\x30.ibc.core.connection.v1.MsgConnectionOpenConfirm\x1a\x38.ibc.core.connection.v1.MsgConnectionOpenConfirmResponse\x12r\n\x16UpdateConnectionParams\x12\'.ibc.core.connection.v1.MsgUpdateParams\x1a/.ibc.core.connection.v1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xde\x01\n\x1a\x63om.ibc.core.connection.v1B\x07TxProtoP\x01Z\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\"8\n\x19QueryMarketBalanceRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"[\n\x1aQueryMarketBalanceResponse\x12=\n\x07\x62\x61lance\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x07\x62\x61lance\"\x1c\n\x1aQueryMarketBalancesRequest\"d\n\x1bQueryMarketBalancesResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.MarketBalanceR\x08\x62\x61lances\"k\n\rMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12=\n\x07\x62\x61lance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x07\x62\x61lance\"4\n\x1cQueryDenomMinNotionalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"\\\n\x1dQueryDenomMinNotionalResponse\x12;\n\x06\x61mount\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount\"\x1f\n\x1dQueryDenomMinNotionalsRequest\"~\n\x1eQueryDenomMinNotionalsResponse\x12\\\n\x13\x64\x65nom_min_notionals\x18\x01 \x03(\x0b\x32,.injective.exchange.v1beta1.DenomMinNotionalR\x11\x64\x65nomMinNotionals*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\x89o\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}\x12\xbe\x01\n\rMarketBalance\x12\x35.injective.exchange.v1beta1.QueryMarketBalanceRequest\x1a\x36.injective.exchange.v1beta1.QueryMarketBalanceResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/market_balance/{market_id}\x12\xb6\x01\n\x0eMarketBalances\x12\x36.injective.exchange.v1beta1.QueryMarketBalancesRequest\x1a\x37.injective.exchange.v1beta1.QueryMarketBalancesResponse\"3\x82\xd3\xe4\x93\x02-\x12+/injective/exchange/v1beta1/market_balances\x12\xc7\x01\n\x10\x44\x65nomMinNotional\x12\x38.injective.exchange.v1beta1.QueryDenomMinNotionalRequest\x1a\x39.injective.exchange.v1beta1.QueryDenomMinNotionalResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/denom_min_notional/{denom}\x12\xc3\x01\n\x11\x44\x65nomMinNotionals\x12\x39.injective.exchange.v1beta1.QueryDenomMinNotionalsRequest\x1a:.injective.exchange.v1beta1.QueryDenomMinNotionalsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v1beta1/denom_min_notionalsB\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\"8\n\x19QueryMarketBalanceRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x1aQueryMarketBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective.exchange.v1beta1.MarketBalanceR\x07\x62\x61lance\"\x1c\n\x1aQueryMarketBalancesRequest\"d\n\x1bQueryMarketBalancesResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.MarketBalanceR\x08\x62\x61lances\"k\n\rMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12=\n\x07\x62\x61lance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x07\x62\x61lance\"4\n\x1cQueryDenomMinNotionalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"\\\n\x1dQueryDenomMinNotionalResponse\x12;\n\x06\x61mount\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount\"\x1f\n\x1dQueryDenomMinNotionalsRequest\"~\n\x1eQueryDenomMinNotionalsResponse\x12\\\n\x13\x64\x65nom_min_notionals\x18\x01 \x03(\x0b\x32,.injective.exchange.v1beta1.DenomMinNotionalR\x11\x64\x65nomMinNotionals*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\x89o\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}\x12\xbe\x01\n\rMarketBalance\x12\x35.injective.exchange.v1beta1.QueryMarketBalanceRequest\x1a\x36.injective.exchange.v1beta1.QueryMarketBalanceResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/market_balance/{market_id}\x12\xb6\x01\n\x0eMarketBalances\x12\x36.injective.exchange.v1beta1.QueryMarketBalancesRequest\x1a\x37.injective.exchange.v1beta1.QueryMarketBalancesResponse\"3\x82\xd3\xe4\x93\x02-\x12+/injective/exchange/v1beta1/market_balances\x12\xc7\x01\n\x10\x44\x65nomMinNotional\x12\x38.injective.exchange.v1beta1.QueryDenomMinNotionalRequest\x1a\x39.injective.exchange.v1beta1.QueryDenomMinNotionalResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/denom_min_notional/{denom}\x12\xc3\x01\n\x11\x44\x65nomMinNotionals\x12\x39.injective.exchange.v1beta1.QueryDenomMinNotionalsRequest\x1a:.injective.exchange.v1beta1.QueryDenomMinNotionalsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v1beta1/denom_min_notionalsB\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) @@ -161,8 +161,6 @@ _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['_QUERYMARKETBALANCERESPONSE'].fields_by_name['balance']._loaded_options = None - _globals['_QUERYMARKETBALANCERESPONSE'].fields_by_name['balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_MARKETBALANCE'].fields_by_name['balance']._loaded_options = None _globals['_MARKETBALANCE'].fields_by_name['balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _globals['_QUERYDENOMMINNOTIONALRESPONSE'].fields_by_name['amount']._loaded_options = None @@ -299,10 +297,10 @@ _globals['_QUERY'].methods_by_name['DenomMinNotional']._serialized_options = b'\202\323\344\223\0028\0226/injective/exchange/v1beta1/denom_min_notional/{denom}' _globals['_QUERY'].methods_by_name['DenomMinNotionals']._loaded_options = None _globals['_QUERY'].methods_by_name['DenomMinNotionals']._serialized_options = b'\202\323\344\223\0021\022//injective/exchange/v1beta1/denom_min_notionals' - _globals['_ORDERSIDE']._serialized_start=18713 - _globals['_ORDERSIDE']._serialized_end=18765 - _globals['_CANCELLATIONSTRATEGY']._serialized_start=18767 - _globals['_CANCELLATIONSTRATEGY']._serialized_end=18853 + _globals['_ORDERSIDE']._serialized_start=18719 + _globals['_ORDERSIDE']._serialized_end=18771 + _globals['_CANCELLATIONSTRATEGY']._serialized_start=18773 + _globals['_CANCELLATIONSTRATEGY']._serialized_end=18859 _globals['_SUBACCOUNT']._serialized_start=246 _globals['_SUBACCOUNT']._serialized_end=325 _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_start=327 @@ -578,21 +576,21 @@ _globals['_QUERYMARKETBALANCEREQUEST']._serialized_start=18012 _globals['_QUERYMARKETBALANCEREQUEST']._serialized_end=18068 _globals['_QUERYMARKETBALANCERESPONSE']._serialized_start=18070 - _globals['_QUERYMARKETBALANCERESPONSE']._serialized_end=18161 - _globals['_QUERYMARKETBALANCESREQUEST']._serialized_start=18163 - _globals['_QUERYMARKETBALANCESREQUEST']._serialized_end=18191 - _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_start=18193 - _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_end=18293 - _globals['_MARKETBALANCE']._serialized_start=18295 - _globals['_MARKETBALANCE']._serialized_end=18402 - _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_start=18404 - _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_end=18456 - _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_start=18458 - _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_end=18550 - _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_start=18552 - _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_end=18583 - _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_start=18585 - _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_end=18711 - _globals['_QUERY']._serialized_start=18856 - _globals['_QUERY']._serialized_end=33073 + _globals['_QUERYMARKETBALANCERESPONSE']._serialized_end=18167 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_start=18169 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_end=18197 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_start=18199 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_end=18299 + _globals['_MARKETBALANCE']._serialized_start=18301 + _globals['_MARKETBALANCE']._serialized_end=18408 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_start=18410 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_end=18462 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_start=18464 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_end=18556 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_start=18558 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_end=18589 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_start=18591 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_end=18717 + _globals['_QUERY']._serialized_start=18862 + _globals['_QUERY']._serialized_end=33079 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/permissions/v1beta1/query_pb2_grpc.py b/pyinjective/proto/injective/permissions/v1beta1/query_pb2_grpc.py index 28c65e04..abddc190 100644 --- a/pyinjective/proto/injective/permissions/v1beta1/query_pb2_grpc.py +++ b/pyinjective/proto/injective/permissions/v1beta1/query_pb2_grpc.py @@ -95,7 +95,8 @@ def Params(self, request, context): raise NotImplementedError('Method not implemented!') def NamespaceDenoms(self, request, context): - """NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + """NamespaceDenoms defines a gRPC query method that returns the denoms for + which a namespace exists """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -118,42 +119,48 @@ def Namespace(self, request, context): raise NotImplementedError('Method not implemented!') def RolesByActor(self, request, context): - """RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + """RolesByActor defines a gRPC query method that returns roles for the actor + in the namespace """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ActorsByRole(self, request, context): - """ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + """ActorsByRole defines a gRPC query method that returns a namespace's roles + associated with the provided actor. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def RoleManagers(self, request, context): - """RoleManagers defines a gRPC query method that returns a namespace's role managers + """RoleManagers defines a gRPC query method that returns a namespace's role + managers """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def RoleManager(self, request, context): - """RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + """RoleManager defines a gRPC query method that returns the roles a given role + manager manages for a given namespace """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def PolicyStatuses(self, request, context): - """PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + """PolicyStatuses defines a gRPC query method that returns a namespace's + policy statuses """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def PolicyManagerCapabilities(self, request, context): - """PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + """PolicyManagerCapabilities defines a gRPC query method that returns a + namespace's policy manager capabilities """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -167,7 +174,8 @@ def Vouchers(self, request, context): raise NotImplementedError('Method not implemented!') def Voucher(self, request, context): - """Voucher defines a gRPC query method for the vouchers for a given denom and address + """Voucher defines a gRPC query method for the vouchers for a given denom and + address """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py new file mode 100644 index 00000000..843cb633 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.injective.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/txfees/v1beta1/genesis.proto\x12\x18injective.txfees.v1beta1\x1a%injective/txfees/v1beta1/txfees.proto\x1a\x14gogoproto/gogo.proto\"N\n\x0cGenesisState\x12>\n\x06params\x18\x01 \x01(\x0b\x32 .injective.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06paramsB\xfc\x01\n\x1c\x63om.injective.txfees.v1beta1B\x0cGenesisProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.genesis_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\014GenesisProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _globals['_GENESISSTATE'].fields_by_name['params']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE']._serialized_start=129 + _globals['_GENESISSTATE']._serialized_end=207 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/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/txfees/v1beta1/query_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/query_pb2.py new file mode 100644 index 00000000..90e05b1f --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/query_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/txfees/v1beta1/query.proto\x12\x18injective.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a%injective/txfees/v1beta1/txfees.proto\"_\n\nEipBaseFee\x12Q\n\x08\x62\x61se_fee\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x0fyaml:\"base_fee\"R\x07\x62\x61seFee\"\x14\n\x12QueryParamsRequest\"U\n\x13QueryParamsResponse\x12>\n\x06params\x18\x01 \x01(\x0b\x32 .injective.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x18\n\x16QueryEipBaseFeeRequest\"Z\n\x17QueryEipBaseFeeResponse\x12?\n\x08\x62\x61se_fee\x18\x01 \x01(\x0b\x32$.injective.txfees.v1beta1.EipBaseFeeR\x07\x62\x61seFee2\xc4\x02\n\x05Query\x12\x8f\x01\n\x06Params\x12,.injective.txfees.v1beta1.QueryParamsRequest\x1a-.injective.txfees.v1beta1.QueryParamsResponse\"(\x82\xd3\xe4\x93\x02\"\x12 /injective/txfees/v1beta1/params\x12\xa8\x01\n\rGetEipBaseFee\x12\x30.injective.txfees.v1beta1.QueryEipBaseFeeRequest\x1a\x31.injective.txfees.v1beta1.QueryEipBaseFeeResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/txfees/v1beta1/cur_eip_base_feeB\xfa\x01\n\x1c\x63om.injective.txfees.v1beta1B\nQueryProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\nQueryProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _globals['_EIPBASEFEE'].fields_by_name['base_fee']._loaded_options = None + _globals['_EIPBASEFEE'].fields_by_name['base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\017yaml:\"base_fee\"' + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_QUERY'].methods_by_name['Params']._loaded_options = None + _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002\"\022 /injective/txfees/v1beta1/params' + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._loaded_options = None + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._serialized_options = b'\202\323\344\223\002,\022*/injective/txfees/v1beta1/cur_eip_base_fee' + _globals['_EIPBASEFEE']._serialized_start=157 + _globals['_EIPBASEFEE']._serialized_end=252 + _globals['_QUERYPARAMSREQUEST']._serialized_start=254 + _globals['_QUERYPARAMSREQUEST']._serialized_end=274 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=276 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=361 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_start=363 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_end=387 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_start=389 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_end=479 + _globals['_QUERY']._serialized_start=482 + _globals['_QUERY']._serialized_end=806 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py new file mode 100644 index 00000000..6c7a0eeb --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py @@ -0,0 +1,123 @@ +# 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.txfees.v1beta1 import query_pb2 as injective_dot_txfees_dot_v1beta1_dot_query__pb2 + + +class QueryStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Params = channel.unary_unary( + '/injective.txfees.v1beta1.Query/Params', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + _registered_method=True) + self.GetEipBaseFee = channel.unary_unary( + '/injective.txfees.v1beta1.Query/GetEipBaseFee', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Missing associated documentation comment in .proto file.""" + + def Params(self, request, context): + """Params defines a gRPC query method that returns the tokenfactory module's + parameters. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetEipBaseFee(self, request, context): + """Returns the current fee market EIP fee. + """ + 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 = { + 'Params': grpc.unary_unary_rpc_method_handler( + servicer.Params, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.SerializeToString, + ), + 'GetEipBaseFee': grpc.unary_unary_rpc_method_handler( + servicer.GetEipBaseFee, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.txfees.v1beta1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.txfees.v1beta1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def Params(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.txfees.v1beta1.Query/Params', + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetEipBaseFee(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.txfees.v1beta1.Query/GetEipBaseFee', + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py new file mode 100644 index 00000000..4a6c5d99 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.gogoproto import gogo_pb2 as gogoproto_dot_gogo__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.injective.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/txfees/v1beta1/tx.proto\x12\x18injective.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a%injective/txfees/v1beta1/txfees.proto\x1a\x11\x61mino/amino.proto\"\xb4\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.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:)\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x16txfees/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2z\n\x03Msg\x12l\n\x0cUpdateParams\x12).injective.txfees.v1beta1.MsgUpdateParams\x1a\x31.injective.txfees.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xf7\x01\n\x1c\x63om.injective.txfees.v1beta1B\x07TxProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.tx_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\007TxProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _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*\026txfees/MsgUpdateParams' + _globals['_MSG']._loaded_options = None + _globals['_MSG']._serialized_options = b'\200\347\260*\001' + _globals['_MSGUPDATEPARAMS']._serialized_start=196 + _globals['_MSGUPDATEPARAMS']._serialized_end=376 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=378 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=403 + _globals['_MSG']._serialized_start=405 + _globals['_MSG']._serialized_end=527 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py new file mode 100644 index 00000000..b121e219 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/tx_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.txfees.v1beta1 import tx_pb2 as injective_dot_txfees_dot_v1beta1_dot_tx__pb2 + + +class MsgStub(object): + """Msg defines the auction Msg service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UpdateParams = channel.unary_unary( + '/injective.txfees.v1beta1.Msg/UpdateParams', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + _registered_method=True) + + +class MsgServicer(object): + """Msg defines the auction Msg service. + """ + + 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 add_MsgServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UpdateParams': grpc.unary_unary_rpc_method_handler( + servicer.UpdateParams, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.txfees.v1beta1.Msg', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.txfees.v1beta1.Msg', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Msg(object): + """Msg defines the auction Msg service. + """ + + @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.txfees.v1beta1.Msg/UpdateParams', + injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py new file mode 100644 index 00000000..d337eafd --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/txfees.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.amino import amino_pb2 as amino_dot_amino__pb2 +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 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%injective/txfees/v1beta1/txfees.proto\x12\x18injective.txfees.v1beta1\x1a\x11\x61mino/amino.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\"\x99\x0c\n\x06Params\x12R\n\x15max_gas_wanted_per_tx\x18\x01 \x01(\x04\x42 \xf2\xde\x1f\x1cyaml:\"max_gas_wanted_per_tx\"R\x11maxGasWantedPerTx\x12S\n\x15high_gas_tx_threshold\x18\x02 \x01(\x04\x42 \xf2\xde\x1f\x1cyaml:\"high_gas_tx_threshold\"R\x12highGasTxThreshold\x12\x8b\x01\n\x1dmin_gas_price_for_high_gas_tx\x18\x03 \x01(\tBK\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f$yaml:\"min_gas_price_for_high_gas_tx\"R\x17minGasPriceForHighGasTx\x12O\n\x13mempool1559_enabled\x18\x04 \x01(\x08\x42\x1e\xf2\xde\x1f\x1ayaml:\"mempool1559_enabled\"R\x12mempool1559Enabled\x12_\n\rmin_gas_price\x18\x05 \x01(\tB;\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x14yaml:\"min_gas_price\"R\x0bminGasPrice\x12\x88\x01\n\x1b\x64\x65\x66\x61ult_base_fee_multiplier\x18\x06 \x01(\tBI\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\"yaml:\"default_base_fee_multiplier\"R\x18\x64\x65\x66\x61ultBaseFeeMultiplier\x12|\n\x17max_base_fee_multiplier\x18\x07 \x01(\tBE\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1eyaml:\"max_base_fee_multiplier\"R\x14maxBaseFeeMultiplier\x12@\n\x0ereset_interval\x18\x08 \x01(\x03\x42\x19\xf2\xde\x1f\x15yaml:\"reset_interval\"R\rresetInterval\x12v\n\x15max_block_change_rate\x18\t \x01(\tBC\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1cyaml:\"max_block_change_rate\"R\x12maxBlockChangeRate\x12\x93\x01\n\x1ftarget_block_space_percent_rate\x18\n \x01(\tBM\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f&yaml:\"target_block_space_percent_rate\"R\x1btargetBlockSpacePercentRate\x12~\n\x18recheck_fee_low_base_fee\x18\x0b \x01(\tBF\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1fyaml:\"recheck_fee_low_base_fee\"R\x14recheckFeeLowBaseFee\x12\x81\x01\n\x19recheck_fee_high_base_fee\x18\x0c \x01(\tBG\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f yaml:\"recheck_fee_high_base_fee\"R\x15recheckFeeHighBaseFee\x12\xb0\x01\n)recheck_fee_base_fee_threshold_multiplier\x18\r \x01(\tBW\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x30yaml:\"recheck_fee_base_fee_threshold_multiplier\"R$recheckFeeBaseFeeThresholdMultiplier:\x16\xe8\xa0\x1f\x01\x8a\xe7\xb0*\rtxfees/ParamsB\xff\x01\n\x1c\x63om.injective.txfees.v1beta1B\x0bTxfeesProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1\xc0\xe3\x1e\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.txfees_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\013TxfeesProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1\300\343\036\001' + _globals['_PARAMS'].fields_by_name['max_gas_wanted_per_tx']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_gas_wanted_per_tx']._serialized_options = b'\362\336\037\034yaml:\"max_gas_wanted_per_tx\"' + _globals['_PARAMS'].fields_by_name['high_gas_tx_threshold']._loaded_options = None + _globals['_PARAMS'].fields_by_name['high_gas_tx_threshold']._serialized_options = b'\362\336\037\034yaml:\"high_gas_tx_threshold\"' + _globals['_PARAMS'].fields_by_name['min_gas_price_for_high_gas_tx']._loaded_options = None + _globals['_PARAMS'].fields_by_name['min_gas_price_for_high_gas_tx']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037$yaml:\"min_gas_price_for_high_gas_tx\"' + _globals['_PARAMS'].fields_by_name['mempool1559_enabled']._loaded_options = None + _globals['_PARAMS'].fields_by_name['mempool1559_enabled']._serialized_options = b'\362\336\037\032yaml:\"mempool1559_enabled\"' + _globals['_PARAMS'].fields_by_name['min_gas_price']._loaded_options = None + _globals['_PARAMS'].fields_by_name['min_gas_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\024yaml:\"min_gas_price\"' + _globals['_PARAMS'].fields_by_name['default_base_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_base_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\"yaml:\"default_base_fee_multiplier\"' + _globals['_PARAMS'].fields_by_name['max_base_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_base_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\036yaml:\"max_base_fee_multiplier\"' + _globals['_PARAMS'].fields_by_name['reset_interval']._loaded_options = None + _globals['_PARAMS'].fields_by_name['reset_interval']._serialized_options = b'\362\336\037\025yaml:\"reset_interval\"' + _globals['_PARAMS'].fields_by_name['max_block_change_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_block_change_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\034yaml:\"max_block_change_rate\"' + _globals['_PARAMS'].fields_by_name['target_block_space_percent_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['target_block_space_percent_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037&yaml:\"target_block_space_percent_rate\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_low_base_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_low_base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\037yaml:\"recheck_fee_low_base_fee\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_high_base_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_high_base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037 yaml:\"recheck_fee_high_base_fee\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_base_fee_threshold_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_base_fee_threshold_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\0370yaml:\"recheck_fee_base_fee_threshold_multiplier\"' + _globals['_PARAMS']._loaded_options = None + _globals['_PARAMS']._serialized_options = b'\350\240\037\001\212\347\260*\rtxfees/Params' + _globals['_PARAMS']._serialized_start=139 + _globals['_PARAMS']._serialized_end=1700 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/txfees_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/osmosis/txfees/v1beta1/query_pb2.py b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py new file mode 100644 index 00000000..26b8e89f --- /dev/null +++ b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: osmosis/txfees/v1beta1/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 google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"osmosis/txfees/v1beta1/query.proto\x12\x16osmosis.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\"\x18\n\x16QueryEipBaseFeeRequest\"l\n\x17QueryEipBaseFeeResponse\x12Q\n\x08\x62\x61se_fee\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x0fyaml:\"base_fee\"R\x07\x62\x61seFee2\xac\x01\n\x05Query\x12\xa2\x01\n\rGetEipBaseFee\x12..osmosis.txfees.v1beta1.QueryEipBaseFeeRequest\x1a/.osmosis.txfees.v1beta1.QueryEipBaseFeeResponse\"0\x82\xd3\xe4\x93\x02*\x12(/osmosis/txfees/v1beta1/cur_eip_base_feeB\xf8\x01\n\x1a\x63om.osmosis.txfees.v1beta1B\nQueryProtoP\x01ZTgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/osmosis/types\xa2\x02\x03OTX\xaa\x02\x16Osmosis.Txfees.V1beta1\xca\x02\x16Osmosis\\Txfees\\V1beta1\xe2\x02\"Osmosis\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x18Osmosis::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'osmosis.txfees.v1beta1.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.osmosis.txfees.v1beta1B\nQueryProtoP\001ZTgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/osmosis/types\242\002\003OTX\252\002\026Osmosis.Txfees.V1beta1\312\002\026Osmosis\\Txfees\\V1beta1\342\002\"Osmosis\\Txfees\\V1beta1\\GPBMetadata\352\002\030Osmosis::Txfees::V1beta1' + _globals['_QUERYEIPBASEFEERESPONSE'].fields_by_name['base_fee']._loaded_options = None + _globals['_QUERYEIPBASEFEERESPONSE'].fields_by_name['base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\017yaml:\"base_fee\"' + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._loaded_options = None + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._serialized_options = b'\202\323\344\223\002*\022(/osmosis/txfees/v1beta1/cur_eip_base_fee' + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_start=146 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_end=170 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_start=172 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_end=280 + _globals['_QUERY']._serialized_start=283 + _globals['_QUERY']._serialized_end=455 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py new file mode 100644 index 00000000..7c8cdd9b --- /dev/null +++ b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from osmosis.txfees.v1beta1 import query_pb2 as osmosis_dot_txfees_dot_v1beta1_dot_query__pb2 + + +class QueryStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetEipBaseFee = channel.unary_unary( + '/osmosis.txfees.v1beta1.Query/GetEipBaseFee', + request_serializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + response_deserializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetEipBaseFee(self, request, context): + """Returns the current fee market EIP fee. + """ + 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 = { + 'GetEipBaseFee': grpc.unary_unary_rpc_method_handler( + servicer.GetEipBaseFee, + request_deserializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.FromString, + response_serializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'osmosis.txfees.v1beta1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('osmosis.txfees.v1beta1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetEipBaseFee(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, + '/osmosis.txfees.v1beta1.Query/GetEipBaseFee', + osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyproject.toml b/pyproject.toml index ab868fe1..bc6ee607 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.9.0-rc3" +version = "1.10.0-rc1" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" diff --git a/tests/client/chain/grpc/configurable_txfees_query_servicer.py b/tests/client/chain/grpc/configurable_txfees_query_servicer.py new file mode 100644 index 00000000..ef288a72 --- /dev/null +++ b/tests/client/chain/grpc/configurable_txfees_query_servicer.py @@ -0,0 +1,16 @@ +from collections import deque + +from pyinjective.proto.injective.txfees.v1beta1 import query_pb2 as txfees_query_pb, query_pb2_grpc as txfees_query_grpc + + +class ConfigurableTxfeesQueryServicer(txfees_query_grpc.QueryServicer): + def __init__(self): + super().__init__() + self.params_responses = deque() + self.eip_base_fee_responses = deque() + + async def Params(self, request: txfees_query_pb.QueryParamsRequest, context=None, metadata=None): + return self.params_responses.pop() + + async def GetEipBaseFee(self, request: txfees_query_pb.QueryEipBaseFeeRequest, context=None, metadata=None): + return self.eip_base_fee_responses.pop() 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 c594650e..64ed3a25 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py @@ -60,6 +60,7 @@ async def test_fetch_exchange_params( margin_decrease_price_timestamp_threshold_seconds=10, exchange_admins=[admin], inj_auction_max_cap="1000000000000000000000", + fixed_gas_enabled=True, ) exchange_servicer.exchange_params.append(exchange_query_pb.QueryExchangeParamsResponse(params=params)) @@ -109,6 +110,7 @@ async def test_fetch_exchange_params( ), "exchangeAdmins": [admin], "injAuctionMaxCap": params.inj_auction_max_cap, + "fixedGasEnabled": params.fixed_gas_enabled, } } @@ -2547,9 +2549,12 @@ async def test_fetch_market_balance( self, exchange_servicer, ): - balance = "1000000000000000000" # Decimal as a string + market_balance = exchange_query_pb.MarketBalance( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + balance="1000000000000000000", + ) response = exchange_query_pb.QueryMarketBalanceResponse( - balance=balance, + balance=market_balance, ) exchange_servicer.market_balance_responses.append(response) @@ -2558,7 +2563,12 @@ async def test_fetch_market_balance( market_balance_response = await api.fetch_market_balance( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" ) - expected_market_balance = {"balance": balance} + expected_market_balance = { + "balance": { + "marketId": market_balance.market_id, + "balance": market_balance.balance, + } + } assert market_balance_response == expected_market_balance diff --git a/tests/client/chain/grpc/test_chain_grpc_txfees_api.py b/tests/client/chain/grpc/test_chain_grpc_txfees_api.py new file mode 100644 index 00000000..512a7c2f --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_txfees_api.py @@ -0,0 +1,85 @@ +import grpc +import pytest + +from pyinjective.client.chain.grpc.chain_grpc_txfees_api import ChainGrpcTxfeesApi +from pyinjective.core.network import DisabledCookieAssistant, Network +from pyinjective.proto.injective.txfees.v1beta1 import query_pb2 as txfees_query_pb, txfees_pb2 as txfees_pb +from tests.client.chain.grpc.configurable_txfees_query_servicer import ConfigurableTxfeesQueryServicer + + +@pytest.fixture +def txfees_query_servicer(): + return ConfigurableTxfeesQueryServicer() + + +class TestChainGrpcTxfeesApi: + @pytest.mark.asyncio + async def test_fetch_module_params( + self, + txfees_query_servicer, + ): + params = txfees_pb.Params( + max_gas_wanted_per_tx=10, + high_gas_tx_threshold=20, + min_gas_price_for_high_gas_tx="30", + mempool1559_enabled=True, + min_gas_price="40", + default_base_fee_multiplier="1.5", + max_base_fee_multiplier="1.9", + reset_interval=100, + max_block_change_rate="0.75", + target_block_space_percent_rate="0.4", + recheck_fee_low_base_fee="0.15", + recheck_fee_high_base_fee="0.25", + recheck_fee_base_fee_threshold_multiplier="0.9", + ) + txfees_query_servicer.params_responses.append(txfees_query_pb.QueryParamsResponse(params=params)) + + api = self._api_instance(servicer=txfees_query_servicer) + + module_params = await api.fetch_module_params() + expected_params = { + "params": { + "maxGasWantedPerTx": str(params.max_gas_wanted_per_tx), + "highGasTxThreshold": str(params.high_gas_tx_threshold), + "minGasPriceForHighGasTx": str(params.min_gas_price_for_high_gas_tx), + "mempool1559Enabled": params.mempool1559_enabled, + "minGasPrice": str(params.min_gas_price), + "defaultBaseFeeMultiplier": str(params.default_base_fee_multiplier), + "maxBaseFeeMultiplier": str(params.max_base_fee_multiplier), + "resetInterval": str(params.reset_interval), + "maxBlockChangeRate": str(params.max_block_change_rate), + "targetBlockSpacePercentRate": str(params.target_block_space_percent_rate), + "recheckFeeLowBaseFee": str(params.recheck_fee_low_base_fee), + "recheckFeeHighBaseFee": str(params.recheck_fee_high_base_fee), + "recheckFeeBaseFeeThresholdMultiplier": str(params.recheck_fee_base_fee_threshold_multiplier), + } + } + + assert module_params == expected_params + + @pytest.mark.asyncio + async def test_fetch_eip_base_fee(self, txfees_query_servicer): + eip_base_fee = txfees_query_pb.EipBaseFee( + base_fee="1000000000000000000", + ) + txfees_query_servicer.eip_base_fee_responses.append( + txfees_query_pb.QueryEipBaseFeeResponse(base_fee=eip_base_fee) + ) + + api = self._api_instance(servicer=txfees_query_servicer) + + eip_base_fee_response = await api.fetch_eip_base_fee() + expected_eip_base_fee = {"baseFee": {"baseFee": str(eip_base_fee.base_fee)}} + + assert eip_base_fee_response == expected_eip_base_fee + + def _api_instance(self, servicer): + network = Network.devnet() + channel = grpc.aio.insecure_channel(network.grpc_endpoint) + cookie_assistant = DisabledCookieAssistant() + + api = ChainGrpcTxfeesApi(channel=channel, cookie_assistant=cookie_assistant) + api._query_stub = servicer + + return api diff --git a/tests/client/indexer/grpc/test_indexer_grpc_account_api.py b/tests/client/indexer/grpc/test_indexer_grpc_account_api.py index 85443837..e3e2df71 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_account_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_account_api.py @@ -133,6 +133,8 @@ async def test_subaccount_balances_list( deposit = exchange_accounts_pb.SubaccountDeposit( total_balance="20", available_balance="10", + total_balance_usd="100", + available_balance_usd="50", ) balance = exchange_accounts_pb.SubaccountBalance( subaccount_id="0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", @@ -158,6 +160,8 @@ async def test_subaccount_balances_list( "deposit": { "totalBalance": deposit.total_balance, "availableBalance": deposit.available_balance, + "totalBalanceUsd": deposit.total_balance_usd, + "availableBalanceUsd": deposit.available_balance_usd, }, }, ] @@ -173,6 +177,8 @@ async def test_subaccount_balance( deposit = exchange_accounts_pb.SubaccountDeposit( total_balance="20", available_balance="10", + total_balance_usd="100", + available_balance_usd="50", ) balance = exchange_accounts_pb.SubaccountBalance( subaccount_id="0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", @@ -198,6 +204,8 @@ async def test_subaccount_balance( "deposit": { "totalBalance": deposit.total_balance, "availableBalance": deposit.available_balance, + "totalBalanceUsd": deposit.total_balance_usd, + "availableBalanceUsd": deposit.available_balance_usd, }, }, } @@ -330,6 +338,7 @@ async def test_fetch_rewards( single_reward = exchange_accounts_pb.Coin( denom="inj", amount="2000000000000000000", + usd_value="3000000000000000000", ) reward = exchange_accounts_pb.Reward( @@ -351,6 +360,7 @@ async def test_fetch_rewards( { "denom": single_reward.denom, "amount": single_reward.amount, + "usdValue": single_reward.usd_value, } ], "distributedAt": str(reward.distributed_at), diff --git a/tests/client/indexer/grpc/test_indexer_grpc_auction_api.py b/tests/client/indexer/grpc/test_indexer_grpc_auction_api.py index 9553491a..346a503d 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_auction_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_auction_api.py @@ -21,6 +21,7 @@ async def test_fetch_auction( coin = exchange_auction_pb.Coin( denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", amount="2322098", + usd_value="1000000000000000000", ) auction = exchange_auction_pb.Auction( winner="inj1uyk56r3xdcf60jwrmn7p9rgla9dc4gam56ajrq", @@ -54,6 +55,7 @@ async def test_fetch_auction( { "denom": coin.denom, "amount": coin.amount, + "usdValue": coin.usd_value, } ], "winningBidAmount": auction.winning_bid_amount, @@ -74,6 +76,7 @@ async def test_fetch_auctions( coin = exchange_auction_pb.Coin( denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", amount="2322098", + usd_value="1000000000000000000", ) auction = exchange_auction_pb.Auction( winner="inj1uyk56r3xdcf60jwrmn7p9rgla9dc4gam56ajrq", @@ -97,6 +100,7 @@ async def test_fetch_auctions( { "denom": coin.denom, "amount": coin.amount, + "usdValue": coin.usd_value, } ], "winningBidAmount": auction.winning_bid_amount, diff --git a/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py b/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py index ead944df..c7e2ec93 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py @@ -461,6 +461,7 @@ async def test_fetch_blocks( num_pre_commits=20, num_txs=4, timestamp="2023-11-29 20:23:33.842 +0000 UTC", + block_unix_timestamp=1699744939364, ) paging = exchange_explorer_pb.Paging(total=5, to=5, count_by_subaccount=10, next=["next1", "next2"]) @@ -494,6 +495,7 @@ async def test_fetch_blocks( "numTxs": str(block_info.num_txs), "txs": [], "timestamp": block_info.timestamp, + "blockUnixTimestamp": str(block_info.block_unix_timestamp), }, ], "paging": { @@ -527,6 +529,7 @@ async def test_fetch_block( tx_number=994979, tx_msg_types=b'["/injective.exchange.v1beta1.MsgCreateBinaryOptionsLimitOrder"]', signatures=[signature], + block_unix_timestamp=1699744939364, ) block_info = exchange_explorer_pb.BlockDetailInfo( height=19034578, @@ -586,6 +589,7 @@ async def test_fetch_block( "signature": signature.signature, } ], + "blockUnixTimestamp": str(tx_data.block_unix_timestamp), } ], "timestamp": block_info.timestamp, @@ -834,6 +838,7 @@ async def test_fetch_txs( b'{"key":"sender","value":"inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex"}]}]}]', claim_ids=[claim_id], signatures=[signature], + block_unix_timestamp=1699744939364, ) paging = exchange_explorer_pb.Paging(total=5, to=5, count_by_subaccount=10, next=["next1", "next2"]) @@ -886,6 +891,7 @@ async def test_fetch_txs( "signature": signature.signature, } ], + "blockUnixTimestamp": str(tx_data.block_unix_timestamp), }, ], "paging": { @@ -1610,6 +1616,7 @@ async def test_fetch_bank_transfers( coin = exchange_explorer_pb.Coin( denom="inj", amount="200000000000000", + usd_value="300000000000000", ) bank_transfer = exchange_explorer_pb.BankTransfer( sender="inj17xpfvakm2amg962yls6f84z3kell8c5l6s5ye9", @@ -1651,6 +1658,7 @@ async def test_fetch_bank_transfers( { "denom": coin.denom, "amount": coin.amount, + "usdValue": coin.usd_value, } ], "blockNumber": str(bank_transfer.block_number), diff --git a/tests/client/indexer/grpc/test_indexer_grpc_portfolio_api.py b/tests/client/indexer/grpc/test_indexer_grpc_portfolio_api.py index 45d5ea62..c2db343d 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_portfolio_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_portfolio_api.py @@ -21,10 +21,13 @@ async def test_fetch_account_portfolio( coin = exchange_portfolio_pb.Coin( denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", amount="2322098", + usd_value="1000000000000000000", ) subaccount_deposit = exchange_portfolio_pb.SubaccountDeposit( total_balance="0.170858923182467801", available_balance="0.170858923182467801", + total_balance_usd="200.000000000000000000", + available_balance_usd="112.000000000000000000", ) subaccount_balance = exchange_portfolio_pb.SubaccountBalanceV2( subaccount_id="0xc7dca7c15c364865f77a4fb67ab11dc95502e6fe000000000000000000000000", @@ -73,6 +76,7 @@ async def test_fetch_account_portfolio( { "denom": coin.denom, "amount": coin.amount, + "usdValue": coin.usd_value, } ], "subaccounts": [ @@ -82,6 +86,8 @@ async def test_fetch_account_portfolio( "deposit": { "totalBalance": subaccount_deposit.total_balance, "availableBalance": subaccount_deposit.available_balance, + "totalBalanceUsd": subaccount_deposit.total_balance_usd, + "availableBalanceUsd": subaccount_deposit.available_balance_usd, }, } ], @@ -117,10 +123,13 @@ async def test_fetch_account_portfolio_balances( coin = exchange_portfolio_pb.Coin( denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", amount="2322098", + usd_value="120.000000000000000000", ) subaccount_deposit = exchange_portfolio_pb.SubaccountDeposit( total_balance="0.170858923182467801", available_balance="0.170858923182467801", + total_balance_usd="120.000000000000000000", + available_balance_usd="120.000000000000000000", ) subaccount_balance = exchange_portfolio_pb.SubaccountBalanceV2( subaccount_id="0xc7dca7c15c364865f77a4fb67ab11dc95502e6fe000000000000000000000000", @@ -132,6 +141,7 @@ async def test_fetch_account_portfolio_balances( account_address="inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt", bank_balances=[coin], subaccounts=[subaccount_balance], + total_usd="300.000000000000000000", ) portfolio_servicer.account_portfolio_balances_responses.append( @@ -142,7 +152,7 @@ async def test_fetch_account_portfolio_balances( api = self._api_instance(servicer=portfolio_servicer) - result_auction = await api.fetch_account_portfolio_balances(account_address=portfolio.account_address) + result_auction = await api.fetch_account_portfolio_balances(account_address=portfolio.account_address, usd=True) expected_auction = { "portfolio": { "accountAddress": portfolio.account_address, @@ -150,6 +160,7 @@ async def test_fetch_account_portfolio_balances( { "denom": coin.denom, "amount": coin.amount, + "usdValue": coin.usd_value, } ], "subaccounts": [ @@ -159,9 +170,12 @@ async def test_fetch_account_portfolio_balances( "deposit": { "totalBalance": subaccount_deposit.total_balance, "availableBalance": subaccount_deposit.available_balance, + "totalBalanceUsd": subaccount_deposit.total_balance_usd, + "availableBalanceUsd": subaccount_deposit.available_balance_usd, }, } ], + "totalUsd": portfolio.total_usd, } } diff --git a/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py b/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py index 923af7dc..fe891743 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py @@ -701,8 +701,16 @@ async def test_fetch_atomic_swap_history( self, spot_servicer, ): - source_coin = exchange_spot_pb.Coin(denom="inj", amount="988987297011197594664") - dest_coin = exchange_spot_pb.Coin(denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", amount="54497408") + source_coin = exchange_spot_pb.Coin( + denom="inj", + amount="988987297011197594664", + usd_value="1000000000000000000000", + ) + dest_coin = exchange_spot_pb.Coin( + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + amount="54497408", + usd_value="200000000000000000", + ) fee = exchange_spot_pb.Coin(denom="inj", amount="100000") atomic_swap = exchange_spot_pb.AtomicSwap( @@ -744,15 +752,19 @@ async def test_fetch_atomic_swap_history( "data": [ { "contractAddress": atomic_swap.contract_address, - "destCoin": {"amount": dest_coin.amount, "denom": dest_coin.denom}, + "destCoin": {"amount": dest_coin.amount, "denom": dest_coin.denom, "usdValue": dest_coin.usd_value}, "executedAt": str(atomic_swap.executed_at), - "fees": [{"amount": fee.amount, "denom": fee.denom}], + "fees": [{"amount": fee.amount, "denom": fee.denom, "usdValue": fee.usd_value}], "indexBySender": atomic_swap.index_by_sender, "indexBySenderContract": atomic_swap.index_by_sender_contract, "refundAmount": atomic_swap.refund_amount, "route": atomic_swap.route, "sender": atomic_swap.sender, - "sourceCoin": {"amount": source_coin.amount, "denom": source_coin.denom}, + "sourceCoin": { + "amount": source_coin.amount, + "denom": source_coin.denom, + "usdValue": source_coin.usd_value, + }, "txHash": atomic_swap.tx_hash, } ], diff --git a/tests/client/indexer/stream_grpc/test_indexer_grpc_account_stream.py b/tests/client/indexer/stream_grpc/test_indexer_grpc_account_stream.py index 925e85c8..9aca1a8e 100644 --- a/tests/client/indexer/stream_grpc/test_indexer_grpc_account_stream.py +++ b/tests/client/indexer/stream_grpc/test_indexer_grpc_account_stream.py @@ -23,6 +23,8 @@ async def test_fetch_portfolio( deposit = exchange_accounts_pb.SubaccountDeposit( total_balance="20", available_balance="10", + total_balance_usd="1000000000000000000", + available_balance_usd="500000000000000000", ) balance = exchange_accounts_pb.SubaccountBalance( subaccount_id="0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", @@ -59,6 +61,8 @@ async def test_fetch_portfolio( "deposit": { "availableBalance": balance.deposit.available_balance, "totalBalance": balance.deposit.total_balance, + "totalBalanceUsd": balance.deposit.total_balance_usd, + "availableBalanceUsd": balance.deposit.available_balance_usd, }, "subaccountId": balance.subaccount_id, }, diff --git a/tests/client/indexer/stream_grpc/test_indexer_grpc_explorer_stream.py b/tests/client/indexer/stream_grpc/test_indexer_grpc_explorer_stream.py index b960076a..59fe9f2d 100644 --- a/tests/client/indexer/stream_grpc/test_indexer_grpc_explorer_stream.py +++ b/tests/client/indexer/stream_grpc/test_indexer_grpc_explorer_stream.py @@ -89,6 +89,7 @@ async def test_stream_blocks( num_pre_commits=20, num_txs=4, timestamp="2023-11-29 20:23:33.842 +0000 UTC", + block_unix_timestamp=1699744939364, ) explorer_servicer.stream_blocks_responses.append(block_info) @@ -119,6 +120,7 @@ async def test_stream_blocks( "numTxs": str(block_info.num_txs), "txs": [], "timestamp": block_info.timestamp, + "blockUnixTimestamp": str(block_info.block_unix_timestamp), } first_update = await asyncio.wait_for(blocks_updates.get(), timeout=1) diff --git a/tests/core/test_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py new file mode 100644 index 00000000..32d0cc95 --- /dev/null +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -0,0 +1,850 @@ +from decimal import Decimal + +import pytest + +from pyinjective.composer import Composer +from pyinjective.core.gas_heuristics_gas_limit_estimator import ( + BINARY_OPTIONS_MARKET_ORDER_CREATION_GAS_LIMIT, + BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT, + BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT, + DECREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT, + DEPOSIT_GAS_LIMIT, + DERIVATIVE_MARKET_ORDER_CREATION_GAS_LIMIT, + DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT, + DERIVATIVE_ORDER_CREATION_GAS_LIMIT, + EXTERNAL_TRANSFER_GAS_LIMIT, + INCREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT, + POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT, + POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT, + POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT, + SPOT_MARKET_ORDER_CREATION_GAS_LIMIT, + SPOT_ORDER_CANCELATION_GAS_LIMIT, + SPOT_ORDER_CREATION_GAS_LIMIT, + SUBACCOUNT_TRANSFER_GAS_LIMIT, + WITHDRAW_GAS_LIMIT, + BatchUpdateOrdersGasLimitEstimator, + GasHeuristicsGasLimitEstimator, +) +from pyinjective.core.gas_limit_estimator import ExecGasLimitEstimator +from pyinjective.core.market import BinaryOptionMarket +from pyinjective.core.network import Network +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 + + +class TestGasLimitEstimator: + @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_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 = GasHeuristicsGasLimitEstimator.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 = [ + basic_composer.spot_order( + market_id=spot_market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + basic_composer.spot_order( + market_id=spot_market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("4"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + message = basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + + assert (expected_order_gas_limit * 2) == estimator.gas_limit() + + def test_estimation_for_batch_cancel_spot_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT + + assert (expected_order_gas_limit * 3) == estimator.gas_limit() + + def test_estimation_for_batch_create_derivative_limit_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] + orders = [ + basic_composer.derivative_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(3), + quantity=Decimal(1), + margin=Decimal(3), + order_type="BUY", + ), + basic_composer.derivative_order( + 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 = basic_composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + + assert (expected_order_gas_limit * 2) == estimator.gas_limit() + + def test_estimation_for_batch_cancel_derivative_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + + assert (expected_order_gas_limit * 3) == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] + orders = [ + basic_composer.spot_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + basic_composer.spot_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("4"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + message = basic_composer.msg_batch_update_orders( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=orders, + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + + assert (expected_order_gas_limit * 2) == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] + orders = [ + basic_composer.derivative_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal(3), + quantity=Decimal(1), + margin=Decimal(3), + order_type="BUY", + ), + basic_composer.derivative_order( + 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 = basic_composer.msg_batch_update_orders( + sender="senders", + derivative_orders_to_create=orders, + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + + assert (expected_order_gas_limit * 2) == estimator.gas_limit() + + 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.binary_options_order( + 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.binary_options_order( + 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( + 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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + + assert (expected_order_gas_limit * 2) == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = Composer(network="testnet") + orders = [ + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=[], + spot_orders_to_cancel=orders, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT + + assert (expected_order_gas_limit * 3) == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=[], + derivative_orders_to_cancel=orders, + spot_orders_to_cancel=[], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + + assert (expected_order_gas_limit * 3) == estimator.gas_limit() + + def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + composer = Composer(network="testnet") + orders = [ + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ), + ] + message = composer.msg_batch_update_orders( + 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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + + assert (expected_order_gas_limit * 3) == 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( + 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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_limit = ( + BatchUpdateOrdersGasLimitEstimator.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS * SPOT_ORDER_CANCELATION_GAS_LIMIT + ) + + assert expected_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( + 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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_limit = ( + BatchUpdateOrdersGasLimitEstimator.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS + * DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + ) + + assert expected_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( + 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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_limit = ( + BatchUpdateOrdersGasLimitEstimator.AVERAGE_CANCEL_ALL_AFFECTED_ORDERS + * BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + ) + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_spot_market): + composer = basic_composer + market_id = inj_usdt_spot_market.id + + message = composer.msg_create_spot_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = SPOT_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_spot_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY_PO", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_create_spot_market_order(self, basic_composer, inj_usdt_spot_market): + composer = basic_composer + market_id = inj_usdt_spot_market.id + + message = composer.msg_create_spot_market_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = SPOT_MARKET_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_cancel_spot_order(self, basic_composer, inj_usdt_spot_market): + composer = basic_composer + market_id = inj_usdt_spot_market.id + + message = composer.msg_cancel_spot_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + cid="cid", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = SPOT_ORDER_CANCELATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + market_id = btc_usdt_perp_market.id + + message = composer.msg_create_derivative_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + margin=Decimal("7.523") * Decimal("0.01"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_derivative_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + margin=Decimal("7.523") * Decimal("0.01"), + order_type="BUY_PO", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_create_derivative_market_order(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + market_id = btc_usdt_perp_market.id + + message = composer.msg_create_derivative_market_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + margin=Decimal("7.523") * Decimal("0.01"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = DERIVATIVE_MARKET_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_cancel_derivative_order(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + market_id = btc_usdt_perp_market.id + + message = composer.msg_cancel_derivative_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + cid="cid", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_create_binary_options_limit_order(self, basic_composer, first_match_bet_market): + composer = basic_composer + market_id = first_match_bet_market.id + + message = composer.msg_create_binary_options_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("0.5"), + quantity=Decimal("10"), + margin=Decimal("0.5") * Decimal("10"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_binary_options_limit_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("0.5"), + quantity=Decimal("10"), + margin=Decimal("0.5") * Decimal("10"), + order_type="BUY_PO", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_create_binary_options_market_order(self, basic_composer, first_match_bet_market): + composer = basic_composer + market_id = first_match_bet_market.id + + message = composer.msg_create_binary_options_market_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("0.5"), + quantity=Decimal("10"), + margin=Decimal("0.5") * Decimal("10"), + order_type="BUY", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = BINARY_OPTIONS_MARKET_ORDER_CREATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_cancel_binary_options_order(self, basic_composer, first_match_bet_market): + composer = basic_composer + market_id = first_match_bet_market.id + + message = composer.msg_cancel_binary_options_order( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + cid="cid", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_deposit(self, basic_composer): + composer = basic_composer + + message = composer.msg_deposit( + sender="senders", + subaccount_id="subaccount_id", + amount=Decimal("10"), + denom=list(composer.tokens.keys())[0], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = DEPOSIT_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_withdraw(self, basic_composer): + composer = basic_composer + + message = composer.msg_withdraw( + sender="senders", + subaccount_id="subaccount_id", + amount=Decimal("10"), + denom=list(composer.tokens.keys())[0], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = WITHDRAW_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_subaccount_transfer(self, basic_composer): + composer = basic_composer + + message = composer.msg_subaccount_transfer( + sender="senders", + source_subaccount_id="subaccount_id", + destination_subaccount_id="destination_subaccount_id", + amount=Decimal("10"), + denom=list(composer.tokens.keys())[0], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = SUBACCOUNT_TRANSFER_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_external_transfer(self, basic_composer): + composer = basic_composer + + message = composer.msg_external_transfer( + sender="senders", + source_subaccount_id="subaccount_id", + destination_subaccount_id="destination_subaccount_id", + amount=Decimal("10"), + denom=list(composer.tokens.keys())[0], + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = EXTERNAL_TRANSFER_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_increase_position_margin(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + + message = composer.msg_increase_position_margin( + sender="senders", + source_subaccount_id="subaccount_id", + destination_subaccount_id="destination_subaccount_id", + market_id=btc_usdt_perp_market.id, + amount=Decimal("10"), + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = INCREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_decrease_position_margin(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + + message = composer.msg_decrease_position_margin( + sender="senders", + source_subaccount_id="subaccount_id", + destination_subaccount_id="destination_subaccount_id", + market_id=btc_usdt_perp_market.id, + amount=Decimal("10"), + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = DECREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT + + assert expected_gas_cost == estimator.gas_limit() + + def test_estimation_for_exec_message(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] + orders = [ + basic_composer.spot_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + ] + inner_message = basic_composer.msg_batch_update_orders( + sender="senders", + derivative_orders_to_create=[], + spot_orders_to_create=orders, + derivative_orders_to_cancel=[], + spot_orders_to_cancel=[], + ) + message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT + expected_exec_message_gas_limit = ExecGasLimitEstimator.DEFAULT_GAS_LIMIT + + assert expected_order_gas_limit + expected_exec_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_privileged_execute_contract_message(self): + message = injective_exchange_tx_pb.MsgPrivilegedExecuteContract() + estimator = GasHeuristicsGasLimitEstimator.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 = GasHeuristicsGasLimitEstimator.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 = GasHeuristicsGasLimitEstimator.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 = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_limit = 2_250_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_generic_exchange_message(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] + message = basic_composer.msg_liquidate_position( + sender="sender", + market_id=market_id, + subaccount_id="subaccount_id", + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_limit = 120_000 + + assert expected_gas_limit == estimator.gas_limit() diff --git a/tests/core/test_message_based_transaction_fee_calculator.py b/tests/core/test_message_based_transaction_fee_calculator.py index 303aa1c9..13465f77 100644 --- a/tests/core/test_message_based_transaction_fee_calculator.py +++ b/tests/core/test_message_based_transaction_fee_calculator.py @@ -59,7 +59,7 @@ async def test_gas_fee_for_privileged_execute_contract_message(self): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_gas_limit = math.ceil( PrivilegedExecuteContractGasLimitEstimator.BASIC_REFERENCE_GAS_LIMIT * 6 + expected_transaction_gas_limit ) @@ -87,7 +87,7 @@ async def test_gas_fee_for_execute_contract_message(self): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_gas_limit = math.ceil(Decimal(2.5) * 150_000 + expected_transaction_gas_limit) assert expected_gas_limit == transaction.fee.gas_limit assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @@ -109,7 +109,7 @@ async def test_gas_fee_for_wasm_message(self): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_gas_limit = math.ceil(Decimal(1.5) * 150_000 + expected_transaction_gas_limit) assert expected_gas_limit == transaction.fee.gas_limit assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @@ -131,7 +131,7 @@ async def test_gas_fee_for_governance_message(self): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_gas_limit = math.ceil(Decimal(15) * 150_000 + expected_transaction_gas_limit) assert expected_gas_limit == transaction.fee.gas_limit assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @@ -162,7 +162,7 @@ async def test_gas_fee_for_exchange_message(self, basic_composer): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_gas_limit = math.ceil(Decimal(1) * 120_000 + expected_transaction_gas_limit) assert expected_gas_limit == transaction.fee.gas_limit assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @@ -194,7 +194,7 @@ async def test_gas_fee_for_msg_exec_message(self, basic_composer): await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_inner_message_gas_limit = GenericExchangeGasLimitEstimator.BASIC_REFERENCE_GAS_LIMIT expected_exec_message_gas_limit = ExecGasLimitEstimator.DEFAULT_GAS_LIMIT expected_gas_limit = math.ceil( @@ -233,7 +233,7 @@ async def test_gas_fee_for_two_messages_in_one_transaction(self, basic_composer) await calculator.configure_gas_fee_for_transaction(transaction=transaction, private_key=None, public_key=None) - expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_GAS_LIMIT + expected_transaction_gas_limit = MessageBasedTransactionFeeCalculator.TRANSACTION_ANTE_GAS_LIMIT expected_inner_message_gas_limit = GenericExchangeGasLimitEstimator.BASIC_REFERENCE_GAS_LIMIT expected_exec_message_gas_limit = ExecGasLimitEstimator.DEFAULT_GAS_LIMIT expected_send_message_gas_limit = DefaultGasLimitEstimator.DEFAULT_GAS_LIMIT From c9cfcc05821091fbf895677b35488eb43ef08dae Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 20 May 2025 14:27:33 -0300 Subject: [PATCH 17/35] chore: update proto definitions from injective-core master branch (v1.16 candidate) --- Makefile | 4 +- buf.gen.yaml | 12 +- pyinjective/composer.py | 119 +-- .../proto/cometbft/abci/v1/service_pb2.py | 28 + .../abci/v1/service_pb2_grpc.py} | 330 ++++---- .../proto/cometbft/abci/v1/types_pb2.py | 206 +++++ .../abci/v1}/types_pb2_grpc.py | 0 .../proto/cometbft/abci/v1beta1/types_pb2.py | 169 ++++ .../cometbft/abci/v1beta1/types_pb2_grpc.py | 706 ++++++++++++++++ .../proto/cometbft/abci/v1beta2/types_pb2.py | 122 +++ .../cometbft/abci/v1beta2/types_pb2_grpc.py | 751 +++++++++++++++++ .../proto/cometbft/abci/v1beta3/types_pb2.py | 123 +++ .../cometbft/abci/v1beta3/types_pb2_grpc.py | 752 ++++++++++++++++++ .../proto/cometbft/blocksync/v1/types_pb2.py | 39 + .../blocksync/v1}/types_pb2_grpc.py | 0 .../cometbft/blocksync/v1beta1/types_pb2.py | 38 + .../blocksync/v1beta1}/types_pb2_grpc.py | 0 .../proto/cometbft/consensus/v1/types_pb2.py | 64 ++ .../consensus/v1}/types_pb2_grpc.py | 0 .../proto/cometbft/consensus/v1/wal_pb2.py | 50 ++ .../consensus/v1/wal_pb2_grpc.py} | 0 .../cometbft/consensus/v1beta1/types_pb2.py | 62 ++ .../consensus/v1beta1/types_pb2_grpc.py} | 0 .../cometbft/consensus/v1beta1/wal_pb2.py | 48 ++ .../consensus/v1beta1/wal_pb2_grpc.py} | 0 .../proto/cometbft/crypto/v1/keys_pb2.py | 30 + .../crypto/v1/keys_pb2_grpc.py} | 0 .../proto/cometbft/crypto/v1/proof_pb2.py | 38 + .../crypto/v1/proof_pb2_grpc.py} | 0 .../proto/cometbft/libs/bits/v1/types_pb2.py | 27 + .../libs/bits/v1/types_pb2_grpc.py} | 0 .../proto/cometbft/mempool/v1/types_pb2.py | 29 + .../cometbft/mempool/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/mempool/v2/types_pb2.py | 33 + .../cometbft/mempool/v2/types_pb2_grpc.py | 4 + pyinjective/proto/cometbft/p2p/v1/conn_pb2.py | 43 + .../proto/cometbft/p2p/v1/conn_pb2_grpc.py | 4 + pyinjective/proto/cometbft/p2p/v1/pex_pb2.py | 35 + .../proto/cometbft/p2p/v1/pex_pb2_grpc.py | 4 + .../proto/cometbft/p2p/v1/types_pb2.py | 48 ++ .../proto/cometbft/p2p/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/privval/v1/types_pb2.py | 55 ++ .../cometbft/privval/v1/types_pb2_grpc.py | 4 + .../cometbft/privval/v1beta1/types_pb2.py | 56 ++ .../privval/v1beta1/types_pb2_grpc.py | 4 + .../cometbft/privval/v1beta2/types_pb2.py | 56 ++ .../privval/v1beta2/types_pb2_grpc.py | 4 + .../cometbft/rpc/grpc/v1beta1/types_pb2.py | 36 + .../rpc/grpc/v1beta1/types_pb2_grpc.py | 125 +++ .../cometbft/rpc/grpc/v1beta2/types_pb2.py | 31 + .../rpc/grpc/v1beta2/types_pb2_grpc.py | 126 +++ .../cometbft/rpc/grpc/v1beta3/types_pb2.py | 31 + .../rpc/grpc/v1beta3/types_pb2_grpc.py | 135 ++++ .../cometbft/services/block/v1/block_pb2.py | 35 + .../services/block/v1/block_pb2_grpc.py | 4 + .../services/block/v1/block_service_pb2.py | 28 + .../block/v1/block_service_pb2_grpc.py | 128 +++ .../block_results/v1/block_results_pb2.py | 31 + .../v1/block_results_pb2_grpc.py | 4 + .../v1/block_results_service_pb2.py | 28 + .../v1/block_results_service_pb2_grpc.py | 84 ++ .../services/pruning/v1/pruning_pb2.py | 57 ++ .../services/pruning/v1/pruning_pb2_grpc.py | 4 + .../services/pruning/v1/service_pb2.py | 28 + .../services/pruning/v1/service_pb2_grpc.py | 407 ++++++++++ .../services/version/v1/version_pb2.py | 29 + .../services/version/v1/version_pb2_grpc.py | 4 + .../version/v1/version_service_pb2.py | 28 + .../version/v1/version_service_pb2_grpc.py | 100 +++ .../proto/cometbft/state/v1/types_pb2.py | 68 ++ .../proto/cometbft/state/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/state/v1beta1/types_pb2.py | 58 ++ .../cometbft/state/v1beta1/types_pb2_grpc.py | 4 + .../proto/cometbft/state/v1beta2/types_pb2.py | 52 ++ .../cometbft/state/v1beta2/types_pb2_grpc.py | 4 + .../proto/cometbft/state/v1beta3/types_pb2.py | 64 ++ .../cometbft/state/v1beta3/types_pb2_grpc.py | 4 + .../proto/cometbft/statesync/v1/types_pb2.py | 35 + .../cometbft/statesync/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/store/v1/types_pb2.py | 27 + .../proto/cometbft/store/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/block_pb2.py | 36 + .../proto/cometbft/types/v1/block_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/canonical_pb2.py | 54 ++ .../cometbft/types/v1/canonical_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/events_pb2.py | 27 + .../cometbft/types/v1/events_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/evidence_pb2.py | 43 + .../cometbft/types/v1/evidence_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/params_pb2.py | 64 ++ .../cometbft/types/v1/params_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/types_pb2.py | 108 +++ .../proto/cometbft/types/v1/types_pb2_grpc.py | 4 + .../proto/cometbft/types/v1/validator_pb2.py | 47 ++ .../cometbft/types/v1/validator_pb2_grpc.py | 4 + .../proto/cometbft/types/v1beta1/block_pb2.py | 36 + .../cometbft/types/v1beta1/block_pb2_grpc.py | 4 + .../cometbft/types/v1beta1/canonical_pb2.py | 52 ++ .../types/v1beta1/canonical_pb2_grpc.py | 4 + .../cometbft/types/v1beta1/events_pb2.py | 27 + .../cometbft/types/v1beta1/events_pb2_grpc.py | 4 + .../cometbft/types/v1beta1/evidence_pb2.py | 43 + .../types/v1beta1/evidence_pb2_grpc.py | 4 + .../cometbft/types/v1beta1/params_pb2.py | 53 ++ .../cometbft/types/v1beta1/params_pb2_grpc.py | 4 + .../proto/cometbft/types/v1beta1/types_pb2.py | 98 +++ .../cometbft/types/v1beta1/types_pb2_grpc.py | 4 + .../cometbft/types/v1beta1/validator_pb2.py | 47 ++ .../types/v1beta1/validator_pb2_grpc.py | 4 + .../cometbft/types/v1beta2/params_pb2.py | 31 + .../cometbft/types/v1beta2/params_pb2_grpc.py | 4 + .../proto/cometbft/version/v1/types_pb2.py | 32 + .../cometbft/version/v1/types_pb2_grpc.py | 4 + .../cosmos/app/runtime/v1alpha1/module_pb2.py | 8 +- .../proto/cosmos/autocli/v1/options_pb2.py | 24 +- .../cosmos/base/abci/v1beta1/abci_pb2.py | 51 +- .../base/tendermint/v1beta1/query_pb2.py | 88 +- .../base/tendermint/v1beta1/types_pb2.py | 16 +- .../proto/cosmos/consensus/v1/query_pb2.py | 16 +- .../proto/cosmos/consensus/v1/tx_pb2.py | 16 +- .../proto/cosmos/group/v1/events_pb2.py | 4 +- .../cosmos/staking/v1beta1/genesis_pb2.py | 10 +- .../proto/cosmos/staking/v1beta1/query_pb2.py | 64 +- .../cosmos/staking/v1beta1/query_pb2_grpc.py | 44 + .../cosmos/staking/v1beta1/staking_pb2.py | 98 +-- .../proto/cosmos/staking/v1beta1/tx_pb2.py | 52 +- .../cosmos/staking/v1beta1/tx_pb2_grpc.py | 45 ++ .../cosmos/store/streaming/abci/grpc_pb2.py | 24 +- .../cosmos/store/v1beta1/listening_pb2.py | 12 +- .../proto/cosmos/tx/v1beta1/service_pb2.py | 90 +-- .../proto/cosmwasm/wasm/v1/query_pb2.py | 6 +- .../proto/exchange/event_provider_api_pb2.py | 76 +- .../exchange/event_provider_api_pb2_grpc.py | 44 + pyinjective/proto/exchange/health_pb2.py | 8 +- .../exchange/injective_accounts_rpc_pb2.py | 142 ++-- .../exchange/injective_archiver_rpc_pb2.py | 38 +- .../injective_archiver_rpc_pb2_grpc.py | 264 ++++++ .../exchange/injective_auction_rpc_pb2.py | 32 +- .../injective_auction_rpc_pb2_grpc.py | 44 + .../exchange/injective_campaign_rpc_pb2.py | 72 +- .../proto/exchange/injective_chart_rpc_pb2.py | 53 ++ .../exchange/injective_chart_rpc_pb2_grpc.py | 303 +++++++ .../injective_derivative_exchange_rpc_pb2.py | 94 +-- ...ective_derivative_exchange_rpc_pb2_grpc.py | 47 +- .../exchange/injective_exchange_rpc_pb2.py | 46 +- .../injective_exchange_rpc_pb2_grpc.py | 44 + .../exchange/injective_explorer_rpc_pb2.py | 258 +++--- .../injective_explorer_rpc_pb2_grpc.py | 132 +++ .../exchange/injective_portfolio_rpc_pb2.py | 44 +- .../exchange/injective_referral_rpc_pb2.py | 41 + .../injective_referral_rpc_pb2_grpc.py | 170 ++++ .../injective_spot_exchange_rpc_pb2.py | 92 +-- .../exchange/injective_trading_rpc_pb2.py | 32 +- .../injective_trading_rpc_pb2_grpc.py | 44 + pyinjective/proto/google/api/client_pb2.py | 54 +- pyinjective/proto/google/api/http_pb2.py | 4 +- pyinjective/proto/google/api/resource_pb2.py | 4 +- .../proto/google/api/visibility_pb2.py | 4 +- .../proto/google/rpc/error_details_pb2.py | 48 +- .../proto/ibc/core/connection/v1/tx_pb2.py | 56 +- .../tendermint/v1/tendermint_pb2.py | 26 +- .../injective/erc20/v1beta1/erc20_pb2.py | 27 + .../injective/erc20/v1beta1/erc20_pb2_grpc.py | 4 + .../injective/erc20/v1beta1/events_pb2.py | 29 + .../erc20/v1beta1/events_pb2_grpc.py | 4 + .../injective/erc20/v1beta1/genesis_pb2.py | 34 + .../erc20/v1beta1/genesis_pb2_grpc.py | 4 + .../injective/erc20/v1beta1/params_pb2.py | 31 + .../erc20/v1beta1/params_pb2_grpc.py | 4 + .../injective/erc20/v1beta1/query_pb2.py | 60 ++ .../injective/erc20/v1beta1/query_pb2_grpc.py | 217 +++++ .../proto/injective/erc20/v1beta1/tx_pb2.py | 67 ++ .../injective/erc20/v1beta1/tx_pb2_grpc.py | 166 ++++ .../injective/evm/v1/access_tuple_pb2.py | 32 + .../injective/evm/v1/access_tuple_pb2_grpc.py | 4 + .../injective/evm/v1/chain_config_pb2.py | 70 ++ .../injective/evm/v1/chain_config_pb2_grpc.py | 4 + .../proto/injective/evm/v1/events_pb2.py | 33 + .../proto/injective/evm/v1/events_pb2_grpc.py | 4 + .../proto/injective/evm/v1/genesis_pb2.py | 38 + .../injective/evm/v1/genesis_pb2_grpc.py | 4 + pyinjective/proto/injective/evm/v1/log_pb2.py | 38 + .../proto/injective/evm/v1/log_pb2_grpc.py | 4 + .../proto/injective/evm/v1/params_pb2.py | 39 + .../proto/injective/evm/v1/params_pb2_grpc.py | 4 + .../proto/injective/evm/v1/query_pb2.py | 145 ++++ .../proto/injective/evm/v1/query_pb2_grpc.py | 615 ++++++++++++++ .../proto/injective/evm/v1/state_pb2.py | 27 + .../proto/injective/evm/v1/state_pb2_grpc.py | 4 + .../injective/evm/v1/trace_config_pb2.py | 43 + .../injective/evm/v1/trace_config_pb2_grpc.py | 4 + .../injective/evm/v1/transaction_logs_pb2.py | 28 + .../evm/v1/transaction_logs_pb2_grpc.py | 4 + pyinjective/proto/injective/evm/v1/tx_pb2.py | 109 +++ .../proto/injective/evm/v1/tx_pb2_grpc.py | 127 +++ .../proto/injective/evm/v1/tx_result_pb2.py | 35 + .../injective/evm/v1/tx_result_pb2_grpc.py | 4 + .../injective/exchange/v1beta1/authz_pb2.py | 54 +- .../injective/exchange/v1beta1/events_pb2.py | 130 +-- .../exchange/v1beta1/exchange_pb2.py | 228 +++--- .../injective/exchange/v1beta1/genesis_pb2.py | 68 +- .../exchange/v1beta1/proposal_pb2.py | 84 +- .../injective/exchange/v1beta1/query_pb2.py | 44 +- .../exchange/v1beta1/query_pb2_grpc.py | 176 ++++ .../injective/exchange/v1beta1/tx_pb2.py | 345 ++++---- .../injective/exchange/v1beta1/tx_pb2_grpc.py | 133 +--- .../proto/injective/exchange/v2/authz_pb2.py | 56 +- .../proto/injective/exchange/v2/events_pb2.py | 158 ++-- .../injective/exchange/v2/exchange_pb2.py | 150 ++-- .../injective/exchange/v2/genesis_pb2.py | 40 +- .../proto/injective/exchange/v2/market_pb2.py | 42 +- .../proto/injective/exchange/v2/order_pb2.py | 44 +- .../injective/exchange/v2/proposal_pb2.py | 90 ++- .../proto/injective/exchange/v2/query_pb2.py | 324 ++++---- .../injective/exchange/v2/query_pb2_grpc.py | 220 +++++ .../proto/injective/exchange/v2/tx_pb2.py | 417 ++++++---- .../injective/exchange/v2/tx_pb2_grpc.py | 688 ++++++++++++++++ .../proto/injective/peggy/v1/events_pb2.py | 12 +- .../proto/injective/peggy/v1/params_pb2.py | 4 +- .../permissions/v1beta1/genesis_pb2.py | 4 +- .../permissions/v1beta1/permissions_pb2.py | 40 +- .../permissions/v1beta1/query_pb2.py | 112 ++- .../permissions/v1beta1/query_pb2_grpc.py | 460 +++++++++-- .../injective/permissions/v1beta1/tx_pb2.py | 64 +- .../permissions/v1beta1/tx_pb2_grpc.py | 112 +-- .../v1beta1/authorityMetadata_pb2.py | 8 +- .../tokenfactory/v1beta1/events_pb2.py | 34 +- .../injective/tokenfactory/v1beta1/tx_pb2.py | 64 +- .../tokenfactory/v1beta1/tx_pb2_grpc.py | 6 +- .../injective/txfees/v1beta1/genesis_pb2.py | 31 + .../txfees/v1beta1/genesis_pb2_grpc.py | 4 + .../injective/txfees/v1beta1/query_pb2.py | 48 ++ .../txfees/v1beta1/query_pb2_grpc.py | 123 +++ .../proto/injective/txfees/v1beta1/tx_pb2.py | 44 + .../injective/txfees/v1beta1/tx_pb2_grpc.py | 80 ++ .../injective/txfees/v1beta1/txfees_pb2.py | 58 ++ .../txfees/v1beta1/txfees_pb2_grpc.py | 4 + .../injective/types/v1beta1/indexer_pb2.py | 30 + .../types/v1beta1/indexer_pb2_grpc.py | 4 + .../proto/injective/wasmx/v1/authz_pb2.py | 35 + .../injective/wasmx/v1/authz_pb2_grpc.py | 4 + .../proto/osmosis/txfees/v1beta1/query_pb2.py | 38 + .../osmosis/txfees/v1beta1/query_pb2_grpc.py | 78 ++ .../proto/tendermint/abci/types_pb2.py | 199 ----- .../proto/tendermint/crypto/keys_pb2.py | 30 - .../proto/tendermint/crypto/proof_pb2.py | 38 - .../proto/tendermint/libs/bits/types_pb2.py | 27 - pyinjective/proto/tendermint/p2p/types_pb2.py | 48 -- .../proto/tendermint/types/block_pb2.py | 36 - .../proto/tendermint/types/evidence_pb2.py | 43 - .../proto/tendermint/types/params_pb2.py | 47 -- .../proto/tendermint/types/types_pb2.py | 108 --- .../proto/tendermint/types/validator_pb2.py | 47 -- .../proto/tendermint/version/types_pb2.py | 32 - 254 files changed, 14293 insertions(+), 3182 deletions(-) create mode 100644 pyinjective/proto/cometbft/abci/v1/service_pb2.py rename pyinjective/proto/{tendermint/abci/types_pb2_grpc.py => cometbft/abci/v1/service_pb2_grpc.py} (56%) create mode 100644 pyinjective/proto/cometbft/abci/v1/types_pb2.py rename pyinjective/proto/{tendermint/libs/bits => cometbft/abci/v1}/types_pb2_grpc.py (100%) create mode 100644 pyinjective/proto/cometbft/abci/v1beta1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/abci/v1beta1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/abci/v1beta2/types_pb2.py create mode 100644 pyinjective/proto/cometbft/abci/v1beta2/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/abci/v1beta3/types_pb2.py create mode 100644 pyinjective/proto/cometbft/abci/v1beta3/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/blocksync/v1/types_pb2.py rename pyinjective/proto/{tendermint/p2p => cometbft/blocksync/v1}/types_pb2_grpc.py (100%) create mode 100644 pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2.py rename pyinjective/proto/{tendermint/types => cometbft/blocksync/v1beta1}/types_pb2_grpc.py (100%) create mode 100644 pyinjective/proto/cometbft/consensus/v1/types_pb2.py rename pyinjective/proto/{tendermint/version => cometbft/consensus/v1}/types_pb2_grpc.py (100%) create mode 100644 pyinjective/proto/cometbft/consensus/v1/wal_pb2.py rename pyinjective/proto/{tendermint/crypto/keys_pb2_grpc.py => cometbft/consensus/v1/wal_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/consensus/v1beta1/types_pb2.py rename pyinjective/proto/{tendermint/crypto/proof_pb2_grpc.py => cometbft/consensus/v1beta1/types_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2.py rename pyinjective/proto/{tendermint/types/block_pb2_grpc.py => cometbft/consensus/v1beta1/wal_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/crypto/v1/keys_pb2.py rename pyinjective/proto/{tendermint/types/evidence_pb2_grpc.py => cometbft/crypto/v1/keys_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/crypto/v1/proof_pb2.py rename pyinjective/proto/{tendermint/types/params_pb2_grpc.py => cometbft/crypto/v1/proof_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/libs/bits/v1/types_pb2.py rename pyinjective/proto/{tendermint/types/validator_pb2_grpc.py => cometbft/libs/bits/v1/types_pb2_grpc.py} (100%) create mode 100644 pyinjective/proto/cometbft/mempool/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/mempool/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/mempool/v2/types_pb2.py create mode 100644 pyinjective/proto/cometbft/mempool/v2/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/conn_pb2.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/conn_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/pex_pb2.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/pex_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/p2p/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/privval/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/privval/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/privval/v1beta1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/privval/v1beta1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/privval/v1beta2/types_pb2.py create mode 100644 pyinjective/proto/cometbft/privval/v1beta2/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2.py create mode 100644 pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/block/v1/block_pb2.py create mode 100644 pyinjective/proto/cometbft/services/block/v1/block_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/block/v1/block_service_pb2.py create mode 100644 pyinjective/proto/cometbft/services/block/v1/block_service_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2.py create mode 100644 pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2.py create mode 100644 pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2.py create mode 100644 pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/pruning/v1/service_pb2.py create mode 100644 pyinjective/proto/cometbft/services/pruning/v1/service_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/version/v1/version_pb2.py create mode 100644 pyinjective/proto/cometbft/services/version/v1/version_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/services/version/v1/version_service_pb2.py create mode 100644 pyinjective/proto/cometbft/services/version/v1/version_service_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/state/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/state/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/state/v1beta1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/state/v1beta1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/state/v1beta2/types_pb2.py create mode 100644 pyinjective/proto/cometbft/state/v1beta2/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/state/v1beta3/types_pb2.py create mode 100644 pyinjective/proto/cometbft/state/v1beta3/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/statesync/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/statesync/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/store/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/store/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/block_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/block_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/canonical_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/canonical_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/events_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/events_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/evidence_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/evidence_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/params_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/params_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1/validator_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1/validator_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/block_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/block_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/canonical_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/canonical_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/events_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/events_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/evidence_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/evidence_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/params_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/params_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/types_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/validator_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta1/validator_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/types/v1beta2/params_pb2.py create mode 100644 pyinjective/proto/cometbft/types/v1beta2/params_pb2_grpc.py create mode 100644 pyinjective/proto/cometbft/version/v1/types_pb2.py create mode 100644 pyinjective/proto/cometbft/version/v1/types_pb2_grpc.py create mode 100644 pyinjective/proto/exchange/injective_chart_rpc_pb2.py create mode 100644 pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py create mode 100644 pyinjective/proto/exchange/injective_referral_rpc_pb2.py create mode 100644 pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/erc20_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/erc20_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/events_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/events_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/genesis_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/genesis_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/params_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/params_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/query_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/query_pb2_grpc.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/tx_pb2.py create mode 100644 pyinjective/proto/injective/erc20/v1beta1/tx_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/access_tuple_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/access_tuple_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/chain_config_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/chain_config_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/events_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/events_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/genesis_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/genesis_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/log_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/log_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/params_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/params_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/query_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/query_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/state_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/state_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/trace_config_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/trace_config_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/transaction_logs_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/transaction_logs_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/tx_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/tx_pb2_grpc.py create mode 100644 pyinjective/proto/injective/evm/v1/tx_result_pb2.py create mode 100644 pyinjective/proto/injective/evm/v1/tx_result_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/query_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py create mode 100644 pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py create mode 100644 pyinjective/proto/injective/types/v1beta1/indexer_pb2.py create mode 100644 pyinjective/proto/injective/types/v1beta1/indexer_pb2_grpc.py create mode 100644 pyinjective/proto/injective/wasmx/v1/authz_pb2.py create mode 100644 pyinjective/proto/injective/wasmx/v1/authz_pb2_grpc.py create mode 100644 pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py create mode 100644 pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py delete mode 100644 pyinjective/proto/tendermint/abci/types_pb2.py delete mode 100644 pyinjective/proto/tendermint/crypto/keys_pb2.py delete mode 100644 pyinjective/proto/tendermint/crypto/proof_pb2.py delete mode 100644 pyinjective/proto/tendermint/libs/bits/types_pb2.py delete mode 100644 pyinjective/proto/tendermint/p2p/types_pb2.py delete mode 100644 pyinjective/proto/tendermint/types/block_pb2.py delete mode 100644 pyinjective/proto/tendermint/types/evidence_pb2.py delete mode 100644 pyinjective/proto/tendermint/types/params_pb2.py delete mode 100644 pyinjective/proto/tendermint/types/types_pb2.py delete mode 100644 pyinjective/proto/tendermint/types/validator_pb2.py delete mode 100644 pyinjective/proto/tendermint/version/types_pb2.py diff --git a/Makefile b/Makefile index 76e8dbc6..5e881d0f 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ gen-client: clone-all copy-proto $(call clean_repos) $(MAKE) fix-generated-proto-imports -PROTO_MODULES := cosmwasm exchange gogoproto cosmos_proto cosmos testpb ibc amino tendermint injective +PROTO_MODULES := cosmwasm exchange gogoproto cosmos_proto cosmos testpb ibc amino tendermint cometbft injective fix-generated-proto-imports: @touch pyinjective/proto/__init__.py @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.4 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.15.6 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/buf.gen.yaml b/buf.gen.yaml index 7151c257..e95a8a70 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -11,12 +11,14 @@ inputs: - module: buf.build/cosmos/gogo-proto - module: buf.build/googleapis/googleapis - module: buf.build/cosmos/ics23 - - git_repo: https://github.com/InjectiveLabs/cosmos-sdk - tag: v0.50.9-inj-2 - git_repo: https://github.com/InjectiveLabs/ibc-go - tag: v8.3.2-inj-0 + tag: v8.7.0-evm-comet1-inj - git_repo: https://github.com/InjectiveLabs/wasmd - tag: v0.52.0-inj-0 + tag: v0.53.2-evm-comet1-inj + - git_repo: https://github.com/InjectiveLabs/cometbft + tag: v1.0.1-inj + - git_repo: https://github.com/InjectiveLabs/cosmos-sdk + tag: v0.50.13-evm-comet1-inj.2 # - git_repo: https://github.com/InjectiveLabs/wasmd # branch: v0.51.x-inj # subdir: proto @@ -24,6 +26,6 @@ inputs: # tag: v1.13.0 # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - branch: feat/add_exchange_v1_compatibility_to_chain_stream + branch: master subdir: proto - directory: proto diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 6b89473a..f2d643da 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -863,63 +863,6 @@ def msg_instant_spot_market_launch_v2( quote_decimals=quote_decimals, ) - def msg_instant_perpetual_market_launch( - 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_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( - f"1e{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_initial_margin_ratio = initial_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - chain_maintenance_margin_ratio = maintenance_margin_ratio * 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.MsgInstantPerpetualMarketLaunch( - sender=sender, - ticker=ticker, - quote_denom=quote_token.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_perpetual_market_launch_v2( self, sender: str, @@ -962,66 +905,6 @@ def msg_instant_perpetual_market_launch_v2( min_notional=f"{chain_min_notional.normalize():f}", ) - def msg_instant_expiry_futures_market_launch( - self, - sender: str, - 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_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( - f"1e{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_initial_margin_ratio = initial_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - chain_maintenance_margin_ratio = maintenance_margin_ratio * 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.MsgInstantExpiryFuturesMarketLaunch( - sender=sender, - ticker=ticker, - quote_denom=quote_token.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_instant_expiry_futures_market_launch_v2( self, sender: str, @@ -1590,7 +1473,7 @@ 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: + ) -> injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch: """ This method is deprecated and will be removed soon. Please use `msg_instant_binary_options_market_launch_v2` instead diff --git a/pyinjective/proto/cometbft/abci/v1/service_pb2.py b/pyinjective/proto/cometbft/abci/v1/service_pb2.py new file mode 100644 index 00000000..4d4c5a63 --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1/service_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/abci/v1/service.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.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ometbft/abci/v1/service.proto\x12\x10\x63ometbft.abci.v1\x1a\x1c\x63ometbft/abci/v1/types.proto2\xc4\x0b\n\x0b\x41\x42\x43IService\x12\x45\n\x04\x45\x63ho\x12\x1d.cometbft.abci.v1.EchoRequest\x1a\x1e.cometbft.abci.v1.EchoResponse\x12H\n\x05\x46lush\x12\x1e.cometbft.abci.v1.FlushRequest\x1a\x1f.cometbft.abci.v1.FlushResponse\x12\x45\n\x04Info\x12\x1d.cometbft.abci.v1.InfoRequest\x1a\x1e.cometbft.abci.v1.InfoResponse\x12N\n\x07\x43heckTx\x12 .cometbft.abci.v1.CheckTxRequest\x1a!.cometbft.abci.v1.CheckTxResponse\x12H\n\x05Query\x12\x1e.cometbft.abci.v1.QueryRequest\x1a\x1f.cometbft.abci.v1.QueryResponse\x12K\n\x06\x43ommit\x12\x1f.cometbft.abci.v1.CommitRequest\x1a .cometbft.abci.v1.CommitResponse\x12T\n\tInitChain\x12\".cometbft.abci.v1.InitChainRequest\x1a#.cometbft.abci.v1.InitChainResponse\x12`\n\rListSnapshots\x12&.cometbft.abci.v1.ListSnapshotsRequest\x1a\'.cometbft.abci.v1.ListSnapshotsResponse\x12`\n\rOfferSnapshot\x12&.cometbft.abci.v1.OfferSnapshotRequest\x1a\'.cometbft.abci.v1.OfferSnapshotResponse\x12l\n\x11LoadSnapshotChunk\x12*.cometbft.abci.v1.LoadSnapshotChunkRequest\x1a+.cometbft.abci.v1.LoadSnapshotChunkResponse\x12o\n\x12\x41pplySnapshotChunk\x12+.cometbft.abci.v1.ApplySnapshotChunkRequest\x1a,.cometbft.abci.v1.ApplySnapshotChunkResponse\x12\x66\n\x0fPrepareProposal\x12(.cometbft.abci.v1.PrepareProposalRequest\x1a).cometbft.abci.v1.PrepareProposalResponse\x12\x66\n\x0fProcessProposal\x12(.cometbft.abci.v1.ProcessProposalRequest\x1a).cometbft.abci.v1.ProcessProposalResponse\x12W\n\nExtendVote\x12#.cometbft.abci.v1.ExtendVoteRequest\x1a$.cometbft.abci.v1.ExtendVoteResponse\x12r\n\x13VerifyVoteExtension\x12,.cometbft.abci.v1.VerifyVoteExtensionRequest\x1a-.cometbft.abci.v1.VerifyVoteExtensionResponse\x12`\n\rFinalizeBlock\x12&.cometbft.abci.v1.FinalizeBlockRequest\x1a\'.cometbft.abci.v1.FinalizeBlockResponseB\xb9\x01\n\x14\x63om.cometbft.abci.v1B\x0cServiceProtoP\x01Z1github.com/cometbft/cometbft/api/cometbft/abci/v1\xa2\x02\x03\x43\x41X\xaa\x02\x10\x43ometbft.Abci.V1\xca\x02\x10\x43ometbft\\Abci\\V1\xe2\x02\x1c\x43ometbft\\Abci\\V1\\GPBMetadata\xea\x02\x12\x43ometbft::Abci::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.abci.v1.service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.cometbft.abci.v1B\014ServiceProtoP\001Z1github.com/cometbft/cometbft/api/cometbft/abci/v1\242\002\003CAX\252\002\020Cometbft.Abci.V1\312\002\020Cometbft\\Abci\\V1\342\002\034Cometbft\\Abci\\V1\\GPBMetadata\352\002\022Cometbft::Abci::V1' + _globals['_ABCISERVICE']._serialized_start=83 + _globals['_ABCISERVICE']._serialized_end=1559 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/abci/types_pb2_grpc.py b/pyinjective/proto/cometbft/abci/v1/service_pb2_grpc.py similarity index 56% rename from pyinjective/proto/tendermint/abci/types_pb2_grpc.py rename to pyinjective/proto/cometbft/abci/v1/service_pb2_grpc.py index d18cc0b2..a0426588 100644 --- a/pyinjective/proto/tendermint/abci/types_pb2_grpc.py +++ b/pyinjective/proto/cometbft/abci/v1/service_pb2_grpc.py @@ -2,13 +2,11 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc -from pyinjective.proto.tendermint.abci import types_pb2 as tendermint_dot_abci_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 -class ABCIStub(object): - """NOTE: When using custom types, mind the warnings. - https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues - +class ABCIServiceStub(object): + """ABCIService is a service for an ABCI application. """ def __init__(self, channel): @@ -18,284 +16,296 @@ def __init__(self, channel): channel: A grpc.Channel. """ self.Echo = channel.unary_unary( - '/tendermint.abci.ABCI/Echo', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestEcho.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseEcho.FromString, + '/cometbft.abci.v1.ABCIService/Echo', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.EchoRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.EchoResponse.FromString, _registered_method=True) self.Flush = channel.unary_unary( - '/tendermint.abci.ABCI/Flush', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestFlush.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseFlush.FromString, + '/cometbft.abci.v1.ABCIService/Flush', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FlushRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FlushResponse.FromString, _registered_method=True) self.Info = channel.unary_unary( - '/tendermint.abci.ABCI/Info', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestInfo.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseInfo.FromString, + '/cometbft.abci.v1.ABCIService/Info', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InfoRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InfoResponse.FromString, _registered_method=True) self.CheckTx = channel.unary_unary( - '/tendermint.abci.ABCI/CheckTx', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestCheckTx.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseCheckTx.FromString, + '/cometbft.abci.v1.ABCIService/CheckTx', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxResponse.FromString, _registered_method=True) self.Query = channel.unary_unary( - '/tendermint.abci.ABCI/Query', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestQuery.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseQuery.FromString, + '/cometbft.abci.v1.ABCIService/Query', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.QueryRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.QueryResponse.FromString, _registered_method=True) self.Commit = channel.unary_unary( - '/tendermint.abci.ABCI/Commit', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestCommit.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseCommit.FromString, + '/cometbft.abci.v1.ABCIService/Commit', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CommitRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CommitResponse.FromString, _registered_method=True) self.InitChain = channel.unary_unary( - '/tendermint.abci.ABCI/InitChain', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestInitChain.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseInitChain.FromString, + '/cometbft.abci.v1.ABCIService/InitChain', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainResponse.FromString, _registered_method=True) self.ListSnapshots = channel.unary_unary( - '/tendermint.abci.ABCI/ListSnapshots', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestListSnapshots.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseListSnapshots.FromString, + '/cometbft.abci.v1.ABCIService/ListSnapshots', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsResponse.FromString, _registered_method=True) self.OfferSnapshot = channel.unary_unary( - '/tendermint.abci.ABCI/OfferSnapshot', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestOfferSnapshot.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseOfferSnapshot.FromString, + '/cometbft.abci.v1.ABCIService/OfferSnapshot', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotResponse.FromString, _registered_method=True) self.LoadSnapshotChunk = channel.unary_unary( - '/tendermint.abci.ABCI/LoadSnapshotChunk', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + '/cometbft.abci.v1.ABCIService/LoadSnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkResponse.FromString, _registered_method=True) self.ApplySnapshotChunk = channel.unary_unary( - '/tendermint.abci.ABCI/ApplySnapshotChunk', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + '/cometbft.abci.v1.ABCIService/ApplySnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkResponse.FromString, _registered_method=True) self.PrepareProposal = channel.unary_unary( - '/tendermint.abci.ABCI/PrepareProposal', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestPrepareProposal.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponsePrepareProposal.FromString, + '/cometbft.abci.v1.ABCIService/PrepareProposal', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalResponse.FromString, _registered_method=True) self.ProcessProposal = channel.unary_unary( - '/tendermint.abci.ABCI/ProcessProposal', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestProcessProposal.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseProcessProposal.FromString, + '/cometbft.abci.v1.ABCIService/ProcessProposal', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalResponse.FromString, _registered_method=True) self.ExtendVote = channel.unary_unary( - '/tendermint.abci.ABCI/ExtendVote', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestExtendVote.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseExtendVote.FromString, + '/cometbft.abci.v1.ABCIService/ExtendVote', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteResponse.FromString, _registered_method=True) self.VerifyVoteExtension = channel.unary_unary( - '/tendermint.abci.ABCI/VerifyVoteExtension', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestVerifyVoteExtension.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseVerifyVoteExtension.FromString, + '/cometbft.abci.v1.ABCIService/VerifyVoteExtension', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionResponse.FromString, _registered_method=True) self.FinalizeBlock = channel.unary_unary( - '/tendermint.abci.ABCI/FinalizeBlock', - request_serializer=tendermint_dot_abci_dot_types__pb2.RequestFinalizeBlock.SerializeToString, - response_deserializer=tendermint_dot_abci_dot_types__pb2.ResponseFinalizeBlock.FromString, + '/cometbft.abci.v1.ABCIService/FinalizeBlock', + request_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockRequest.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockResponse.FromString, _registered_method=True) -class ABCIServicer(object): - """NOTE: When using custom types, mind the warnings. - https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues - +class ABCIServiceServicer(object): + """ABCIService is a service for an ABCI application. """ def Echo(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Echo returns back the same message it is sent. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def Flush(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Flush flushes the write buffer. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def Info(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Info returns information about the application state. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CheckTx(self, request, context): - """Missing associated documentation comment in .proto file.""" + """CheckTx validates a transaction. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def Query(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Query queries the application state. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def Commit(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Commit commits a block of transactions. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def InitChain(self, request, context): - """Missing associated documentation comment in .proto file.""" + """InitChain initializes the blockchain. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListSnapshots(self, request, context): - """Missing associated documentation comment in .proto file.""" + """ListSnapshots lists all the available snapshots. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def OfferSnapshot(self, request, context): - """Missing associated documentation comment in .proto file.""" + """OfferSnapshot sends a snapshot offer. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def LoadSnapshotChunk(self, request, context): - """Missing associated documentation comment in .proto file.""" + """LoadSnapshotChunk returns a chunk of snapshot. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ApplySnapshotChunk(self, request, context): - """Missing associated documentation comment in .proto file.""" + """ApplySnapshotChunk applies a chunk of snapshot. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def PrepareProposal(self, request, context): - """Missing associated documentation comment in .proto file.""" + """PrepareProposal returns a proposal for the next block. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ProcessProposal(self, request, context): - """Missing associated documentation comment in .proto file.""" + """ProcessProposal validates a proposal. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ExtendVote(self, request, context): - """Missing associated documentation comment in .proto file.""" + """ExtendVote extends a vote with application-injected data (vote extensions). + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def VerifyVoteExtension(self, request, context): - """Missing associated documentation comment in .proto file.""" + """VerifyVoteExtension verifies a vote extension. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def FinalizeBlock(self, request, context): - """Missing associated documentation comment in .proto file.""" + """FinalizeBlock finalizes a block. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') -def add_ABCIServicer_to_server(servicer, server): +def add_ABCIServiceServicer_to_server(servicer, server): rpc_method_handlers = { 'Echo': grpc.unary_unary_rpc_method_handler( servicer.Echo, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestEcho.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseEcho.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.EchoRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.EchoResponse.SerializeToString, ), 'Flush': grpc.unary_unary_rpc_method_handler( servicer.Flush, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestFlush.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseFlush.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FlushRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FlushResponse.SerializeToString, ), 'Info': grpc.unary_unary_rpc_method_handler( servicer.Info, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestInfo.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseInfo.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InfoRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InfoResponse.SerializeToString, ), 'CheckTx': grpc.unary_unary_rpc_method_handler( servicer.CheckTx, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestCheckTx.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseCheckTx.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxResponse.SerializeToString, ), 'Query': grpc.unary_unary_rpc_method_handler( servicer.Query, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestQuery.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseQuery.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.QueryRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.QueryResponse.SerializeToString, ), 'Commit': grpc.unary_unary_rpc_method_handler( servicer.Commit, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestCommit.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseCommit.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CommitRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.CommitResponse.SerializeToString, ), 'InitChain': grpc.unary_unary_rpc_method_handler( servicer.InitChain, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestInitChain.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseInitChain.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainResponse.SerializeToString, ), 'ListSnapshots': grpc.unary_unary_rpc_method_handler( servicer.ListSnapshots, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestListSnapshots.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseListSnapshots.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsResponse.SerializeToString, ), 'OfferSnapshot': grpc.unary_unary_rpc_method_handler( servicer.OfferSnapshot, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestOfferSnapshot.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseOfferSnapshot.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotResponse.SerializeToString, ), 'LoadSnapshotChunk': grpc.unary_unary_rpc_method_handler( servicer.LoadSnapshotChunk, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestLoadSnapshotChunk.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseLoadSnapshotChunk.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkResponse.SerializeToString, ), 'ApplySnapshotChunk': grpc.unary_unary_rpc_method_handler( servicer.ApplySnapshotChunk, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestApplySnapshotChunk.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseApplySnapshotChunk.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkResponse.SerializeToString, ), 'PrepareProposal': grpc.unary_unary_rpc_method_handler( servicer.PrepareProposal, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestPrepareProposal.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponsePrepareProposal.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalResponse.SerializeToString, ), 'ProcessProposal': grpc.unary_unary_rpc_method_handler( servicer.ProcessProposal, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestProcessProposal.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseProcessProposal.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalResponse.SerializeToString, ), 'ExtendVote': grpc.unary_unary_rpc_method_handler( servicer.ExtendVote, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestExtendVote.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseExtendVote.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteResponse.SerializeToString, ), 'VerifyVoteExtension': grpc.unary_unary_rpc_method_handler( servicer.VerifyVoteExtension, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestVerifyVoteExtension.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseVerifyVoteExtension.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionResponse.SerializeToString, ), 'FinalizeBlock': grpc.unary_unary_rpc_method_handler( servicer.FinalizeBlock, - request_deserializer=tendermint_dot_abci_dot_types__pb2.RequestFinalizeBlock.FromString, - response_serializer=tendermint_dot_abci_dot_types__pb2.ResponseFinalizeBlock.SerializeToString, + request_deserializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockRequest.FromString, + response_serializer=cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockResponse.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( - 'tendermint.abci.ABCI', rpc_method_handlers) + 'cometbft.abci.v1.ABCIService', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('tendermint.abci.ABCI', rpc_method_handlers) + server.add_registered_method_handlers('cometbft.abci.v1.ABCIService', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. -class ABCI(object): - """NOTE: When using custom types, mind the warnings. - https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues - +class ABCIService(object): + """ABCIService is a service for an ABCI application. """ @staticmethod @@ -312,9 +322,9 @@ def Echo(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/Echo', - tendermint_dot_abci_dot_types__pb2.RequestEcho.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseEcho.FromString, + '/cometbft.abci.v1.ABCIService/Echo', + cometbft_dot_abci_dot_v1_dot_types__pb2.EchoRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.EchoResponse.FromString, options, channel_credentials, insecure, @@ -339,9 +349,9 @@ def Flush(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/Flush', - tendermint_dot_abci_dot_types__pb2.RequestFlush.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseFlush.FromString, + '/cometbft.abci.v1.ABCIService/Flush', + cometbft_dot_abci_dot_v1_dot_types__pb2.FlushRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.FlushResponse.FromString, options, channel_credentials, insecure, @@ -366,9 +376,9 @@ def Info(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/Info', - tendermint_dot_abci_dot_types__pb2.RequestInfo.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseInfo.FromString, + '/cometbft.abci.v1.ABCIService/Info', + cometbft_dot_abci_dot_v1_dot_types__pb2.InfoRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.InfoResponse.FromString, options, channel_credentials, insecure, @@ -393,9 +403,9 @@ def CheckTx(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/CheckTx', - tendermint_dot_abci_dot_types__pb2.RequestCheckTx.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseCheckTx.FromString, + '/cometbft.abci.v1.ABCIService/CheckTx', + cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.CheckTxResponse.FromString, options, channel_credentials, insecure, @@ -420,9 +430,9 @@ def Query(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/Query', - tendermint_dot_abci_dot_types__pb2.RequestQuery.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseQuery.FromString, + '/cometbft.abci.v1.ABCIService/Query', + cometbft_dot_abci_dot_v1_dot_types__pb2.QueryRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.QueryResponse.FromString, options, channel_credentials, insecure, @@ -447,9 +457,9 @@ def Commit(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/Commit', - tendermint_dot_abci_dot_types__pb2.RequestCommit.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseCommit.FromString, + '/cometbft.abci.v1.ABCIService/Commit', + cometbft_dot_abci_dot_v1_dot_types__pb2.CommitRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.CommitResponse.FromString, options, channel_credentials, insecure, @@ -474,9 +484,9 @@ def InitChain(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/InitChain', - tendermint_dot_abci_dot_types__pb2.RequestInitChain.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseInitChain.FromString, + '/cometbft.abci.v1.ABCIService/InitChain', + cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.InitChainResponse.FromString, options, channel_credentials, insecure, @@ -501,9 +511,9 @@ def ListSnapshots(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/ListSnapshots', - tendermint_dot_abci_dot_types__pb2.RequestListSnapshots.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseListSnapshots.FromString, + '/cometbft.abci.v1.ABCIService/ListSnapshots', + cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.ListSnapshotsResponse.FromString, options, channel_credentials, insecure, @@ -528,9 +538,9 @@ def OfferSnapshot(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/OfferSnapshot', - tendermint_dot_abci_dot_types__pb2.RequestOfferSnapshot.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseOfferSnapshot.FromString, + '/cometbft.abci.v1.ABCIService/OfferSnapshot', + cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.OfferSnapshotResponse.FromString, options, channel_credentials, insecure, @@ -555,9 +565,9 @@ def LoadSnapshotChunk(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/LoadSnapshotChunk', - tendermint_dot_abci_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + '/cometbft.abci.v1.ABCIService/LoadSnapshotChunk', + cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.LoadSnapshotChunkResponse.FromString, options, channel_credentials, insecure, @@ -582,9 +592,9 @@ def ApplySnapshotChunk(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/ApplySnapshotChunk', - tendermint_dot_abci_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + '/cometbft.abci.v1.ABCIService/ApplySnapshotChunk', + cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.ApplySnapshotChunkResponse.FromString, options, channel_credentials, insecure, @@ -609,9 +619,9 @@ def PrepareProposal(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/PrepareProposal', - tendermint_dot_abci_dot_types__pb2.RequestPrepareProposal.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponsePrepareProposal.FromString, + '/cometbft.abci.v1.ABCIService/PrepareProposal', + cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.PrepareProposalResponse.FromString, options, channel_credentials, insecure, @@ -636,9 +646,9 @@ def ProcessProposal(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/ProcessProposal', - tendermint_dot_abci_dot_types__pb2.RequestProcessProposal.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseProcessProposal.FromString, + '/cometbft.abci.v1.ABCIService/ProcessProposal', + cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.ProcessProposalResponse.FromString, options, channel_credentials, insecure, @@ -663,9 +673,9 @@ def ExtendVote(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/ExtendVote', - tendermint_dot_abci_dot_types__pb2.RequestExtendVote.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseExtendVote.FromString, + '/cometbft.abci.v1.ABCIService/ExtendVote', + cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.ExtendVoteResponse.FromString, options, channel_credentials, insecure, @@ -690,9 +700,9 @@ def VerifyVoteExtension(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/VerifyVoteExtension', - tendermint_dot_abci_dot_types__pb2.RequestVerifyVoteExtension.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseVerifyVoteExtension.FromString, + '/cometbft.abci.v1.ABCIService/VerifyVoteExtension', + cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.VerifyVoteExtensionResponse.FromString, options, channel_credentials, insecure, @@ -717,9 +727,9 @@ def FinalizeBlock(request, return grpc.experimental.unary_unary( request, target, - '/tendermint.abci.ABCI/FinalizeBlock', - tendermint_dot_abci_dot_types__pb2.RequestFinalizeBlock.SerializeToString, - tendermint_dot_abci_dot_types__pb2.ResponseFinalizeBlock.FromString, + '/cometbft.abci.v1.ABCIService/FinalizeBlock', + cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockRequest.SerializeToString, + cometbft_dot_abci_dot_v1_dot_types__pb2.FinalizeBlockResponse.FromString, options, channel_credentials, insecure, diff --git a/pyinjective/proto/cometbft/abci/v1/types_pb2.py b/pyinjective/proto/cometbft/abci/v1/types_pb2.py new file mode 100644 index 00000000..bca0e03c --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1/types_pb2.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/abci/v1/types.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.cometbft.crypto.v1 import proof_pb2 as cometbft_dot_crypto_dot_v1_dot_proof__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1 import validator_pb2 as cometbft_dot_types_dot_v1_dot_validator__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63ometbft/abci/v1/types.proto\x12\x10\x63ometbft.abci.v1\x1a\x1e\x63ometbft/crypto/v1/proof.proto\x1a\x1e\x63ometbft/types/v1/params.proto\x1a!cometbft/types/v1/validator.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcf\t\n\x07Request\x12\x33\n\x04\x65\x63ho\x18\x01 \x01(\x0b\x32\x1d.cometbft.abci.v1.EchoRequestH\x00R\x04\x65\x63ho\x12\x36\n\x05\x66lush\x18\x02 \x01(\x0b\x32\x1e.cometbft.abci.v1.FlushRequestH\x00R\x05\x66lush\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32\x1d.cometbft.abci.v1.InfoRequestH\x00R\x04info\x12\x43\n\ninit_chain\x18\x05 \x01(\x0b\x32\".cometbft.abci.v1.InitChainRequestH\x00R\tinitChain\x12\x36\n\x05query\x18\x06 \x01(\x0b\x32\x1e.cometbft.abci.v1.QueryRequestH\x00R\x05query\x12=\n\x08\x63heck_tx\x18\x08 \x01(\x0b\x32 .cometbft.abci.v1.CheckTxRequestH\x00R\x07\x63heckTx\x12\x39\n\x06\x63ommit\x18\x0b \x01(\x0b\x32\x1f.cometbft.abci.v1.CommitRequestH\x00R\x06\x63ommit\x12O\n\x0elist_snapshots\x18\x0c \x01(\x0b\x32&.cometbft.abci.v1.ListSnapshotsRequestH\x00R\rlistSnapshots\x12O\n\x0eoffer_snapshot\x18\r \x01(\x0b\x32&.cometbft.abci.v1.OfferSnapshotRequestH\x00R\rofferSnapshot\x12\\\n\x13load_snapshot_chunk\x18\x0e \x01(\x0b\x32*.cometbft.abci.v1.LoadSnapshotChunkRequestH\x00R\x11loadSnapshotChunk\x12_\n\x14\x61pply_snapshot_chunk\x18\x0f \x01(\x0b\x32+.cometbft.abci.v1.ApplySnapshotChunkRequestH\x00R\x12\x61pplySnapshotChunk\x12U\n\x10prepare_proposal\x18\x10 \x01(\x0b\x32(.cometbft.abci.v1.PrepareProposalRequestH\x00R\x0fprepareProposal\x12U\n\x10process_proposal\x18\x11 \x01(\x0b\x32(.cometbft.abci.v1.ProcessProposalRequestH\x00R\x0fprocessProposal\x12\x46\n\x0b\x65xtend_vote\x18\x12 \x01(\x0b\x32#.cometbft.abci.v1.ExtendVoteRequestH\x00R\nextendVote\x12\x62\n\x15verify_vote_extension\x18\x13 \x01(\x0b\x32,.cometbft.abci.v1.VerifyVoteExtensionRequestH\x00R\x13verifyVoteExtension\x12O\n\x0e\x66inalize_block\x18\x14 \x01(\x0b\x32&.cometbft.abci.v1.FinalizeBlockRequestH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"\'\n\x0b\x45\x63hoRequest\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0e\n\x0c\x46lushRequest\"\x90\x01\n\x0bInfoRequest\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12#\n\rblock_version\x18\x02 \x01(\x04R\x0c\x62lockVersion\x12\x1f\n\x0bp2p_version\x18\x03 \x01(\x04R\np2pVersion\x12!\n\x0c\x61\x62\x63i_version\x18\x04 \x01(\tR\x0b\x61\x62\x63iVersion\"\xce\x02\n\x10InitChainRequest\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12M\n\x10\x63onsensus_params\x18\x03 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x0f\x63onsensusParams\x12G\n\nvalidators\x18\x04 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12&\n\x0f\x61pp_state_bytes\x18\x05 \x01(\x0cR\rappStateBytes\x12%\n\x0einitial_height\x18\x06 \x01(\x03R\rinitialHeight\"d\n\x0cQueryRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x14\n\x05prove\x18\x04 \x01(\x08R\x05prove\"Y\n\x0e\x43heckTxRequest\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12\x31\n\x04type\x18\x03 \x01(\x0e\x32\x1d.cometbft.abci.v1.CheckTxTypeR\x04typeJ\x04\x08\x02\x10\x03\"\x0f\n\rCommitRequest\"\x16\n\x14ListSnapshotsRequest\"i\n\x14OfferSnapshotRequest\x12\x36\n\x08snapshot\x18\x01 \x01(\x0b\x32\x1a.cometbft.abci.v1.SnapshotR\x08snapshot\x12\x19\n\x08\x61pp_hash\x18\x02 \x01(\x0cR\x07\x61ppHash\"`\n\x18LoadSnapshotChunkRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x14\n\x05\x63hunk\x18\x03 \x01(\rR\x05\x63hunk\"_\n\x19\x41pplySnapshotChunkRequest\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x63hunk\x18\x02 \x01(\x0cR\x05\x63hunk\x12\x16\n\x06sender\x18\x03 \x01(\tR\x06sender\"\x9a\x03\n\x16PrepareProposalRequest\x12 \n\x0cmax_tx_bytes\x18\x01 \x01(\x03R\nmaxTxBytes\x12\x10\n\x03txs\x18\x02 \x03(\x0cR\x03txs\x12V\n\x11local_last_commit\x18\x03 \x01(\x0b\x32$.cometbft.abci.v1.ExtendedCommitInfoB\x04\xc8\xde\x1f\x00R\x0flocalLastCommit\x12\x45\n\x0bmisbehavior\x18\x04 \x03(\x0b\x32\x1d.cometbft.abci.v1.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x8a\x03\n\x16ProcessProposalRequest\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12T\n\x14proposed_last_commit\x18\x02 \x01(\x0b\x32\x1c.cometbft.abci.v1.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12\x45\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\x1d.cometbft.abci.v1.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x85\x03\n\x11\x45xtendVoteRequest\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x10\n\x03txs\x18\x04 \x03(\x0cR\x03txs\x12T\n\x14proposed_last_commit\x18\x05 \x01(\x0b\x32\x1c.cometbft.abci.v1.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12\x45\n\x0bmisbehavior\x18\x06 \x03(\x0b\x32\x1d.cometbft.abci.v1.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x9c\x01\n\x1aVerifyVoteExtensionRequest\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12%\n\x0evote_extension\x18\x04 \x01(\x0cR\rvoteExtension\"\xb2\x03\n\x14\x46inalizeBlockRequest\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12R\n\x13\x64\x65\x63ided_last_commit\x18\x02 \x01(\x0b\x32\x1c.cometbft.abci.v1.CommitInfoB\x04\xc8\xde\x1f\x00R\x11\x64\x65\x63idedLastCommit\x12\x45\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\x1d.cometbft.abci.v1.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\x12*\n\x11syncing_to_height\x18\t \x01(\x03R\x0fsyncingToHeight\"\xa5\n\n\x08Response\x12\x43\n\texception\x18\x01 \x01(\x0b\x32#.cometbft.abci.v1.ExceptionResponseH\x00R\texception\x12\x34\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x1e.cometbft.abci.v1.EchoResponseH\x00R\x04\x65\x63ho\x12\x37\n\x05\x66lush\x18\x03 \x01(\x0b\x32\x1f.cometbft.abci.v1.FlushResponseH\x00R\x05\x66lush\x12\x34\n\x04info\x18\x04 \x01(\x0b\x32\x1e.cometbft.abci.v1.InfoResponseH\x00R\x04info\x12\x44\n\ninit_chain\x18\x06 \x01(\x0b\x32#.cometbft.abci.v1.InitChainResponseH\x00R\tinitChain\x12\x37\n\x05query\x18\x07 \x01(\x0b\x32\x1f.cometbft.abci.v1.QueryResponseH\x00R\x05query\x12>\n\x08\x63heck_tx\x18\t \x01(\x0b\x32!.cometbft.abci.v1.CheckTxResponseH\x00R\x07\x63heckTx\x12:\n\x06\x63ommit\x18\x0c \x01(\x0b\x32 .cometbft.abci.v1.CommitResponseH\x00R\x06\x63ommit\x12P\n\x0elist_snapshots\x18\r \x01(\x0b\x32\'.cometbft.abci.v1.ListSnapshotsResponseH\x00R\rlistSnapshots\x12P\n\x0eoffer_snapshot\x18\x0e \x01(\x0b\x32\'.cometbft.abci.v1.OfferSnapshotResponseH\x00R\rofferSnapshot\x12]\n\x13load_snapshot_chunk\x18\x0f \x01(\x0b\x32+.cometbft.abci.v1.LoadSnapshotChunkResponseH\x00R\x11loadSnapshotChunk\x12`\n\x14\x61pply_snapshot_chunk\x18\x10 \x01(\x0b\x32,.cometbft.abci.v1.ApplySnapshotChunkResponseH\x00R\x12\x61pplySnapshotChunk\x12V\n\x10prepare_proposal\x18\x11 \x01(\x0b\x32).cometbft.abci.v1.PrepareProposalResponseH\x00R\x0fprepareProposal\x12V\n\x10process_proposal\x18\x12 \x01(\x0b\x32).cometbft.abci.v1.ProcessProposalResponseH\x00R\x0fprocessProposal\x12G\n\x0b\x65xtend_vote\x18\x13 \x01(\x0b\x32$.cometbft.abci.v1.ExtendVoteResponseH\x00R\nextendVote\x12\x63\n\x15verify_vote_extension\x18\x14 \x01(\x0b\x32-.cometbft.abci.v1.VerifyVoteExtensionResponseH\x00R\x13verifyVoteExtension\x12P\n\x0e\x66inalize_block\x18\x15 \x01(\x0b\x32\'.cometbft.abci.v1.FinalizeBlockResponseH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x05\x10\x06J\x04\x08\x08\x10\tJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0c\")\n\x11\x45xceptionResponse\x12\x14\n\x05\x65rror\x18\x01 \x01(\tR\x05\x65rror\"(\n\x0c\x45\x63hoResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0f\n\rFlushResponse\"\xfb\x02\n\x0cInfoResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x1f\n\x0b\x61pp_version\x18\x03 \x01(\x04R\nappVersion\x12*\n\x11last_block_height\x18\x04 \x01(\x03R\x0flastBlockHeight\x12-\n\x13last_block_app_hash\x18\x05 \x01(\x0cR\x10lastBlockAppHash\x12[\n\x0flane_priorities\x18\x06 \x03(\x0b\x32\x32.cometbft.abci.v1.InfoResponse.LanePrioritiesEntryR\x0elanePriorities\x12!\n\x0c\x64\x65\x66\x61ult_lane\x18\x07 \x01(\tR\x0b\x64\x65\x66\x61ultLane\x1a\x41\n\x13LanePrioritiesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\rR\x05value:\x02\x38\x01\"\xc6\x01\n\x11InitChainResponse\x12M\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x0f\x63onsensusParams\x12G\n\nvalidators\x18\x02 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12\x19\n\x08\x61pp_hash\x18\x03 \x01(\x0cR\x07\x61ppHash\"\xf8\x01\n\rQueryResponse\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x14\n\x05index\x18\x05 \x01(\x03R\x05index\x12\x10\n\x03key\x18\x06 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x07 \x01(\x0cR\x05value\x12\x39\n\tproof_ops\x18\x08 \x01(\x0b\x32\x1c.cometbft.crypto.v1.ProofOpsR\x08proofOps\x12\x16\n\x06height\x18\t \x01(\x03R\x06height\x12\x1c\n\tcodespace\x18\n \x01(\tR\tcodespace\"\xc4\x02\n\x0f\x43heckTxResponse\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12I\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\x12\x17\n\x07lane_id\x18\x0c \x01(\tR\x06laneIdJ\x04\x08\t\x10\x0cR\x06senderR\x08priorityR\rmempool_error\"A\n\x0e\x43ommitResponse\x12#\n\rretain_height\x18\x03 \x01(\x03R\x0cretainHeightJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"Q\n\x15ListSnapshotsResponse\x12\x38\n\tsnapshots\x18\x01 \x03(\x0b\x32\x1a.cometbft.abci.v1.SnapshotR\tsnapshots\"V\n\x15OfferSnapshotResponse\x12=\n\x06result\x18\x01 \x01(\x0e\x32%.cometbft.abci.v1.OfferSnapshotResultR\x06result\"1\n\x19LoadSnapshotChunkResponse\x12\x14\n\x05\x63hunk\x18\x01 \x01(\x0cR\x05\x63hunk\"\xae\x01\n\x1a\x41pplySnapshotChunkResponse\x12\x42\n\x06result\x18\x01 \x01(\x0e\x32*.cometbft.abci.v1.ApplySnapshotChunkResultR\x06result\x12%\n\x0erefetch_chunks\x18\x02 \x03(\rR\rrefetchChunks\x12%\n\x0ereject_senders\x18\x03 \x03(\tR\rrejectSenders\"+\n\x17PrepareProposalResponse\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"Z\n\x17ProcessProposalResponse\x12?\n\x06status\x18\x01 \x01(\x0e\x32\'.cometbft.abci.v1.ProcessProposalStatusR\x06status\";\n\x12\x45xtendVoteResponse\x12%\n\x0evote_extension\x18\x01 \x01(\x0cR\rvoteExtension\"b\n\x1bVerifyVoteExtensionResponse\x12\x43\n\x06status\x18\x01 \x01(\x0e\x32+.cometbft.abci.v1.VerifyVoteExtensionStatusR\x06status\"\xee\x02\n\x15\x46inalizeBlockResponse\x12I\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12=\n\ntx_results\x18\x02 \x03(\x0b\x32\x1e.cometbft.abci.v1.ExecTxResultR\ttxResults\x12T\n\x11validator_updates\x18\x03 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12Z\n\x17\x63onsensus_param_updates\x18\x04 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12\x19\n\x08\x61pp_hash\x18\x05 \x01(\x0cR\x07\x61ppHash\"Z\n\nCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12\x36\n\x05votes\x18\x02 \x03(\x0b\x32\x1a.cometbft.abci.v1.VoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"j\n\x12\x45xtendedCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12>\n\x05votes\x18\x02 \x03(\x0b\x32\".cometbft.abci.v1.ExtendedVoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"{\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12^\n\nattributes\x18\x02 \x03(\x0b\x32 .cometbft.abci.v1.EventAttributeB\x1c\xc8\xde\x1f\x00\xea\xde\x1f\x14\x61ttributes,omitemptyR\nattributes\"N\n\x0e\x45ventAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x14\n\x05index\x18\x03 \x01(\x08R\x05index\"\x81\x02\n\x0c\x45xecTxResult\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12I\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\"\x86\x01\n\x08TxResult\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05index\x18\x02 \x01(\rR\x05index\x12\x0e\n\x02tx\x18\x03 \x01(\x0cR\x02tx\x12<\n\x06result\x18\x04 \x01(\x0b\x32\x1e.cometbft.abci.v1.ExecTxResultB\x04\xc8\xde\x1f\x00R\x06result\";\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x03 \x01(\x03R\x05power\"s\n\x0fValidatorUpdate\x12\x14\n\x05power\x18\x02 \x01(\x03R\x05power\x12\"\n\rpub_key_bytes\x18\x03 \x01(\x0cR\x0bpubKeyBytes\x12 \n\x0cpub_key_type\x18\x04 \x01(\tR\npubKeyTypeJ\x04\x08\x01\x10\x02\"\x95\x01\n\x08VoteInfo\x12?\n\tvalidator\x18\x01 \x01(\x0b\x32\x1b.cometbft.abci.v1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x42\n\rblock_id_flag\x18\x03 \x01(\x0e\x32\x1e.cometbft.types.v1.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"\xf5\x01\n\x10\x45xtendedVoteInfo\x12?\n\tvalidator\x18\x01 \x01(\x0b\x32\x1b.cometbft.abci.v1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12%\n\x0evote_extension\x18\x03 \x01(\x0cR\rvoteExtension\x12/\n\x13\x65xtension_signature\x18\x04 \x01(\x0cR\x12\x65xtensionSignature\x12\x42\n\rblock_id_flag\x18\x05 \x01(\x0e\x32\x1e.cometbft.types.v1.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"\x85\x02\n\x0bMisbehavior\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32!.cometbft.abci.v1.MisbehaviorTypeR\x04type\x12?\n\tvalidator\x18\x02 \x01(\x0b\x32\x1b.cometbft.abci.v1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12,\n\x12total_voting_power\x18\x05 \x01(\x03R\x10totalVotingPower\"\x82\x01\n\x08Snapshot\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x16\n\x06\x63hunks\x18\x03 \x01(\rR\x06\x63hunks\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x1a\n\x08metadata\x18\x05 \x01(\x0cR\x08metadata*b\n\x0b\x43heckTxType\x12\x19\n\x15\x43HECK_TX_TYPE_UNKNOWN\x10\x00\x12\x19\n\x15\x43HECK_TX_TYPE_RECHECK\x10\x01\x12\x17\n\x13\x43HECK_TX_TYPE_CHECK\x10\x02\x1a\x04\x88\xa3\x1e\x00*\xf5\x01\n\x13OfferSnapshotResult\x12!\n\x1dOFFER_SNAPSHOT_RESULT_UNKNOWN\x10\x00\x12 \n\x1cOFFER_SNAPSHOT_RESULT_ACCEPT\x10\x01\x12\x1f\n\x1bOFFER_SNAPSHOT_RESULT_ABORT\x10\x02\x12 \n\x1cOFFER_SNAPSHOT_RESULT_REJECT\x10\x03\x12\'\n#OFFER_SNAPSHOT_RESULT_REJECT_FORMAT\x10\x04\x12\'\n#OFFER_SNAPSHOT_RESULT_REJECT_SENDER\x10\x05\x1a\x04\x88\xa3\x1e\x00*\xa0\x02\n\x18\x41pplySnapshotChunkResult\x12\'\n#APPLY_SNAPSHOT_CHUNK_RESULT_UNKNOWN\x10\x00\x12&\n\"APPLY_SNAPSHOT_CHUNK_RESULT_ACCEPT\x10\x01\x12%\n!APPLY_SNAPSHOT_CHUNK_RESULT_ABORT\x10\x02\x12%\n!APPLY_SNAPSHOT_CHUNK_RESULT_RETRY\x10\x03\x12.\n*APPLY_SNAPSHOT_CHUNK_RESULT_RETRY_SNAPSHOT\x10\x04\x12/\n+APPLY_SNAPSHOT_CHUNK_RESULT_REJECT_SNAPSHOT\x10\x05\x1a\x04\x88\xa3\x1e\x00*\x8a\x01\n\x15ProcessProposalStatus\x12#\n\x1fPROCESS_PROPOSAL_STATUS_UNKNOWN\x10\x00\x12\"\n\x1ePROCESS_PROPOSAL_STATUS_ACCEPT\x10\x01\x12\"\n\x1ePROCESS_PROPOSAL_STATUS_REJECT\x10\x02\x1a\x04\x88\xa3\x1e\x00*\x9d\x01\n\x19VerifyVoteExtensionStatus\x12(\n$VERIFY_VOTE_EXTENSION_STATUS_UNKNOWN\x10\x00\x12\'\n#VERIFY_VOTE_EXTENSION_STATUS_ACCEPT\x10\x01\x12\'\n#VERIFY_VOTE_EXTENSION_STATUS_REJECT\x10\x02\x1a\x04\x88\xa3\x1e\x00*\x84\x01\n\x0fMisbehaviorType\x12\x1c\n\x18MISBEHAVIOR_TYPE_UNKNOWN\x10\x00\x12#\n\x1fMISBEHAVIOR_TYPE_DUPLICATE_VOTE\x10\x01\x12(\n$MISBEHAVIOR_TYPE_LIGHT_CLIENT_ATTACK\x10\x02\x1a\x04\x88\xa3\x1e\x00\x42\xb7\x01\n\x14\x63om.cometbft.abci.v1B\nTypesProtoP\x01Z1github.com/cometbft/cometbft/api/cometbft/abci/v1\xa2\x02\x03\x43\x41X\xaa\x02\x10\x43ometbft.Abci.V1\xca\x02\x10\x43ometbft\\Abci\\V1\xe2\x02\x1c\x43ometbft\\Abci\\V1\\GPBMetadata\xea\x02\x12\x43ometbft::Abci::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.abci.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.cometbft.abci.v1B\nTypesProtoP\001Z1github.com/cometbft/cometbft/api/cometbft/abci/v1\242\002\003CAX\252\002\020Cometbft.Abci.V1\312\002\020Cometbft\\Abci\\V1\342\002\034Cometbft\\Abci\\V1\\GPBMetadata\352\002\022Cometbft::Abci::V1' + _globals['_CHECKTXTYPE']._loaded_options = None + _globals['_CHECKTXTYPE']._serialized_options = b'\210\243\036\000' + _globals['_OFFERSNAPSHOTRESULT']._loaded_options = None + _globals['_OFFERSNAPSHOTRESULT']._serialized_options = b'\210\243\036\000' + _globals['_APPLYSNAPSHOTCHUNKRESULT']._loaded_options = None + _globals['_APPLYSNAPSHOTCHUNKRESULT']._serialized_options = b'\210\243\036\000' + _globals['_PROCESSPROPOSALSTATUS']._loaded_options = None + _globals['_PROCESSPROPOSALSTATUS']._serialized_options = b'\210\243\036\000' + _globals['_VERIFYVOTEEXTENSIONSTATUS']._loaded_options = None + _globals['_VERIFYVOTEEXTENSIONSTATUS']._serialized_options = b'\210\243\036\000' + _globals['_MISBEHAVIORTYPE']._loaded_options = None + _globals['_MISBEHAVIORTYPE']._serialized_options = b'\210\243\036\000' + _globals['_INITCHAINREQUEST'].fields_by_name['time']._loaded_options = None + _globals['_INITCHAINREQUEST'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_INITCHAINREQUEST'].fields_by_name['validators']._loaded_options = None + _globals['_INITCHAINREQUEST'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['local_last_commit']._loaded_options = None + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['local_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['misbehavior']._loaded_options = None + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['time']._loaded_options = None + _globals['_PREPAREPROPOSALREQUEST'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['proposed_last_commit']._loaded_options = None + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['misbehavior']._loaded_options = None + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['time']._loaded_options = None + _globals['_PROCESSPROPOSALREQUEST'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_EXTENDVOTEREQUEST'].fields_by_name['time']._loaded_options = None + _globals['_EXTENDVOTEREQUEST'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_EXTENDVOTEREQUEST'].fields_by_name['proposed_last_commit']._loaded_options = None + _globals['_EXTENDVOTEREQUEST'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDVOTEREQUEST'].fields_by_name['misbehavior']._loaded_options = None + _globals['_EXTENDVOTEREQUEST'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['decided_last_commit']._loaded_options = None + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['decided_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['misbehavior']._loaded_options = None + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['time']._loaded_options = None + _globals['_FINALIZEBLOCKREQUEST'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_INFORESPONSE_LANEPRIORITIESENTRY']._loaded_options = None + _globals['_INFORESPONSE_LANEPRIORITIESENTRY']._serialized_options = b'8\001' + _globals['_INITCHAINRESPONSE'].fields_by_name['validators']._loaded_options = None + _globals['_INITCHAINRESPONSE'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_CHECKTXRESPONSE'].fields_by_name['events']._loaded_options = None + _globals['_CHECKTXRESPONSE'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_FINALIZEBLOCKRESPONSE'].fields_by_name['events']._loaded_options = None + _globals['_FINALIZEBLOCKRESPONSE'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_FINALIZEBLOCKRESPONSE'].fields_by_name['validator_updates']._loaded_options = None + _globals['_FINALIZEBLOCKRESPONSE'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_COMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_COMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EVENT'].fields_by_name['attributes']._loaded_options = None + _globals['_EVENT'].fields_by_name['attributes']._serialized_options = b'\310\336\037\000\352\336\037\024attributes,omitempty' + _globals['_EXECTXRESULT'].fields_by_name['events']._loaded_options = None + _globals['_EXECTXRESULT'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_TXRESULT'].fields_by_name['result']._loaded_options = None + _globals['_TXRESULT'].fields_by_name['result']._serialized_options = b'\310\336\037\000' + _globals['_VOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_VOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_MISBEHAVIOR'].fields_by_name['validator']._loaded_options = None + _globals['_MISBEHAVIOR'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_MISBEHAVIOR'].fields_by_name['time']._loaded_options = None + _globals['_MISBEHAVIOR'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CHECKTXTYPE']._serialized_start=9806 + _globals['_CHECKTXTYPE']._serialized_end=9904 + _globals['_OFFERSNAPSHOTRESULT']._serialized_start=9907 + _globals['_OFFERSNAPSHOTRESULT']._serialized_end=10152 + _globals['_APPLYSNAPSHOTCHUNKRESULT']._serialized_start=10155 + _globals['_APPLYSNAPSHOTCHUNKRESULT']._serialized_end=10443 + _globals['_PROCESSPROPOSALSTATUS']._serialized_start=10446 + _globals['_PROCESSPROPOSALSTATUS']._serialized_end=10584 + _globals['_VERIFYVOTEEXTENSIONSTATUS']._serialized_start=10587 + _globals['_VERIFYVOTEEXTENSIONSTATUS']._serialized_end=10744 + _globals['_MISBEHAVIORTYPE']._serialized_start=10747 + _globals['_MISBEHAVIORTYPE']._serialized_end=10879 + _globals['_REQUEST']._serialized_start=205 + _globals['_REQUEST']._serialized_end=1436 + _globals['_ECHOREQUEST']._serialized_start=1438 + _globals['_ECHOREQUEST']._serialized_end=1477 + _globals['_FLUSHREQUEST']._serialized_start=1479 + _globals['_FLUSHREQUEST']._serialized_end=1493 + _globals['_INFOREQUEST']._serialized_start=1496 + _globals['_INFOREQUEST']._serialized_end=1640 + _globals['_INITCHAINREQUEST']._serialized_start=1643 + _globals['_INITCHAINREQUEST']._serialized_end=1977 + _globals['_QUERYREQUEST']._serialized_start=1979 + _globals['_QUERYREQUEST']._serialized_end=2079 + _globals['_CHECKTXREQUEST']._serialized_start=2081 + _globals['_CHECKTXREQUEST']._serialized_end=2170 + _globals['_COMMITREQUEST']._serialized_start=2172 + _globals['_COMMITREQUEST']._serialized_end=2187 + _globals['_LISTSNAPSHOTSREQUEST']._serialized_start=2189 + _globals['_LISTSNAPSHOTSREQUEST']._serialized_end=2211 + _globals['_OFFERSNAPSHOTREQUEST']._serialized_start=2213 + _globals['_OFFERSNAPSHOTREQUEST']._serialized_end=2318 + _globals['_LOADSNAPSHOTCHUNKREQUEST']._serialized_start=2320 + _globals['_LOADSNAPSHOTCHUNKREQUEST']._serialized_end=2416 + _globals['_APPLYSNAPSHOTCHUNKREQUEST']._serialized_start=2418 + _globals['_APPLYSNAPSHOTCHUNKREQUEST']._serialized_end=2513 + _globals['_PREPAREPROPOSALREQUEST']._serialized_start=2516 + _globals['_PREPAREPROPOSALREQUEST']._serialized_end=2926 + _globals['_PROCESSPROPOSALREQUEST']._serialized_start=2929 + _globals['_PROCESSPROPOSALREQUEST']._serialized_end=3323 + _globals['_EXTENDVOTEREQUEST']._serialized_start=3326 + _globals['_EXTENDVOTEREQUEST']._serialized_end=3715 + _globals['_VERIFYVOTEEXTENSIONREQUEST']._serialized_start=3718 + _globals['_VERIFYVOTEEXTENSIONREQUEST']._serialized_end=3874 + _globals['_FINALIZEBLOCKREQUEST']._serialized_start=3877 + _globals['_FINALIZEBLOCKREQUEST']._serialized_end=4311 + _globals['_RESPONSE']._serialized_start=4314 + _globals['_RESPONSE']._serialized_end=5631 + _globals['_EXCEPTIONRESPONSE']._serialized_start=5633 + _globals['_EXCEPTIONRESPONSE']._serialized_end=5674 + _globals['_ECHORESPONSE']._serialized_start=5676 + _globals['_ECHORESPONSE']._serialized_end=5716 + _globals['_FLUSHRESPONSE']._serialized_start=5718 + _globals['_FLUSHRESPONSE']._serialized_end=5733 + _globals['_INFORESPONSE']._serialized_start=5736 + _globals['_INFORESPONSE']._serialized_end=6115 + _globals['_INFORESPONSE_LANEPRIORITIESENTRY']._serialized_start=6050 + _globals['_INFORESPONSE_LANEPRIORITIESENTRY']._serialized_end=6115 + _globals['_INITCHAINRESPONSE']._serialized_start=6118 + _globals['_INITCHAINRESPONSE']._serialized_end=6316 + _globals['_QUERYRESPONSE']._serialized_start=6319 + _globals['_QUERYRESPONSE']._serialized_end=6567 + _globals['_CHECKTXRESPONSE']._serialized_start=6570 + _globals['_CHECKTXRESPONSE']._serialized_end=6894 + _globals['_COMMITRESPONSE']._serialized_start=6896 + _globals['_COMMITRESPONSE']._serialized_end=6961 + _globals['_LISTSNAPSHOTSRESPONSE']._serialized_start=6963 + _globals['_LISTSNAPSHOTSRESPONSE']._serialized_end=7044 + _globals['_OFFERSNAPSHOTRESPONSE']._serialized_start=7046 + _globals['_OFFERSNAPSHOTRESPONSE']._serialized_end=7132 + _globals['_LOADSNAPSHOTCHUNKRESPONSE']._serialized_start=7134 + _globals['_LOADSNAPSHOTCHUNKRESPONSE']._serialized_end=7183 + _globals['_APPLYSNAPSHOTCHUNKRESPONSE']._serialized_start=7186 + _globals['_APPLYSNAPSHOTCHUNKRESPONSE']._serialized_end=7360 + _globals['_PREPAREPROPOSALRESPONSE']._serialized_start=7362 + _globals['_PREPAREPROPOSALRESPONSE']._serialized_end=7405 + _globals['_PROCESSPROPOSALRESPONSE']._serialized_start=7407 + _globals['_PROCESSPROPOSALRESPONSE']._serialized_end=7497 + _globals['_EXTENDVOTERESPONSE']._serialized_start=7499 + _globals['_EXTENDVOTERESPONSE']._serialized_end=7558 + _globals['_VERIFYVOTEEXTENSIONRESPONSE']._serialized_start=7560 + _globals['_VERIFYVOTEEXTENSIONRESPONSE']._serialized_end=7658 + _globals['_FINALIZEBLOCKRESPONSE']._serialized_start=7661 + _globals['_FINALIZEBLOCKRESPONSE']._serialized_end=8027 + _globals['_COMMITINFO']._serialized_start=8029 + _globals['_COMMITINFO']._serialized_end=8119 + _globals['_EXTENDEDCOMMITINFO']._serialized_start=8121 + _globals['_EXTENDEDCOMMITINFO']._serialized_end=8227 + _globals['_EVENT']._serialized_start=8229 + _globals['_EVENT']._serialized_end=8352 + _globals['_EVENTATTRIBUTE']._serialized_start=8354 + _globals['_EVENTATTRIBUTE']._serialized_end=8432 + _globals['_EXECTXRESULT']._serialized_start=8435 + _globals['_EXECTXRESULT']._serialized_end=8692 + _globals['_TXRESULT']._serialized_start=8695 + _globals['_TXRESULT']._serialized_end=8829 + _globals['_VALIDATOR']._serialized_start=8831 + _globals['_VALIDATOR']._serialized_end=8890 + _globals['_VALIDATORUPDATE']._serialized_start=8892 + _globals['_VALIDATORUPDATE']._serialized_end=9007 + _globals['_VOTEINFO']._serialized_start=9010 + _globals['_VOTEINFO']._serialized_end=9159 + _globals['_EXTENDEDVOTEINFO']._serialized_start=9162 + _globals['_EXTENDEDVOTEINFO']._serialized_end=9407 + _globals['_MISBEHAVIOR']._serialized_start=9410 + _globals['_MISBEHAVIOR']._serialized_end=9671 + _globals['_SNAPSHOT']._serialized_start=9674 + _globals['_SNAPSHOT']._serialized_end=9804 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/libs/bits/types_pb2_grpc.py b/pyinjective/proto/cometbft/abci/v1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/libs/bits/types_pb2_grpc.py rename to pyinjective/proto/cometbft/abci/v1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/abci/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/abci/v1beta1/types_pb2.py new file mode 100644 index 00000000..a97c1130 --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta1/types_pb2.py @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/abci/v1beta1/types.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 +from pyinjective.proto.cometbft.crypto.v1 import proof_pb2 as cometbft_dot_crypto_dot_v1_dot_proof__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import params_pb2 as cometbft_dot_types_dot_v1beta1_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/abci/v1beta1/types.proto\x12\x15\x63ometbft.abci.v1beta1\x1a\x1d\x63ometbft/crypto/v1/keys.proto\x1a\x1e\x63ometbft/crypto/v1/proof.proto\x1a#cometbft/types/v1beta1/params.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xeb\x08\n\x07Request\x12\x38\n\x04\x65\x63ho\x18\x01 \x01(\x0b\x32\".cometbft.abci.v1beta1.RequestEchoH\x00R\x04\x65\x63ho\x12;\n\x05\x66lush\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestFlushH\x00R\x05\x66lush\x12\x38\n\x04info\x18\x03 \x01(\x0b\x32\".cometbft.abci.v1beta1.RequestInfoH\x00R\x04info\x12H\n\nset_option\x18\x04 \x01(\x0b\x32\'.cometbft.abci.v1beta1.RequestSetOptionH\x00R\tsetOption\x12H\n\ninit_chain\x18\x05 \x01(\x0b\x32\'.cometbft.abci.v1beta1.RequestInitChainH\x00R\tinitChain\x12;\n\x05query\x18\x06 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestQueryH\x00R\x05query\x12K\n\x0b\x62\x65gin_block\x18\x07 \x01(\x0b\x32(.cometbft.abci.v1beta1.RequestBeginBlockH\x00R\nbeginBlock\x12\x42\n\x08\x63heck_tx\x18\x08 \x01(\x0b\x32%.cometbft.abci.v1beta1.RequestCheckTxH\x00R\x07\x63heckTx\x12H\n\ndeliver_tx\x18\t \x01(\x0b\x32\'.cometbft.abci.v1beta1.RequestDeliverTxH\x00R\tdeliverTx\x12\x45\n\tend_block\x18\n \x01(\x0b\x32&.cometbft.abci.v1beta1.RequestEndBlockH\x00R\x08\x65ndBlock\x12>\n\x06\x63ommit\x18\x0b \x01(\x0b\x32$.cometbft.abci.v1beta1.RequestCommitH\x00R\x06\x63ommit\x12T\n\x0elist_snapshots\x18\x0c \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestListSnapshotsH\x00R\rlistSnapshots\x12T\n\x0eoffer_snapshot\x18\r \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestOfferSnapshotH\x00R\rofferSnapshot\x12\x61\n\x13load_snapshot_chunk\x18\x0e \x01(\x0b\x32/.cometbft.abci.v1beta1.RequestLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x64\n\x14\x61pply_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunkB\x07\n\x05value\"\'\n\x0bRequestEcho\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0e\n\x0cRequestFlush\"m\n\x0bRequestInfo\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12#\n\rblock_version\x18\x02 \x01(\x04R\x0c\x62lockVersion\x12\x1f\n\x0bp2p_version\x18\x03 \x01(\x04R\np2pVersion\":\n\x10RequestSetOption\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"\xd7\x02\n\x10RequestInitChain\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12Q\n\x10\x63onsensus_params\x18\x03 \x01(\x0b\x32&.cometbft.abci.v1beta1.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x04 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12&\n\x0f\x61pp_state_bytes\x18\x05 \x01(\x0cR\rappStateBytes\x12%\n\x0einitial_height\x18\x06 \x01(\x03R\rinitialHeight\"d\n\x0cRequestQuery\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x14\n\x05prove\x18\x04 \x01(\x08R\x05prove\"\x96\x02\n\x11RequestBeginBlock\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12<\n\x06header\x18\x02 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12U\n\x10last_commit_info\x18\x03 \x01(\x0b\x32%.cometbft.abci.v1beta1.LastCommitInfoB\x04\xc8\xde\x1f\x00R\x0elastCommitInfo\x12X\n\x14\x62yzantine_validators\x18\x04 \x03(\x0b\x32\x1f.cometbft.abci.v1beta1.EvidenceB\x04\xc8\xde\x1f\x00R\x13\x62yzantineValidators\"X\n\x0eRequestCheckTx\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12\x36\n\x04type\x18\x02 \x01(\x0e\x32\".cometbft.abci.v1beta1.CheckTxTypeR\x04type\"\"\n\x10RequestDeliverTx\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\")\n\x0fRequestEndBlock\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\x0f\n\rRequestCommit\"\x16\n\x14RequestListSnapshots\"n\n\x14RequestOfferSnapshot\x12;\n\x08snapshot\x18\x01 \x01(\x0b\x32\x1f.cometbft.abci.v1beta1.SnapshotR\x08snapshot\x12\x19\n\x08\x61pp_hash\x18\x02 \x01(\x0cR\x07\x61ppHash\"`\n\x18RequestLoadSnapshotChunk\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x14\n\x05\x63hunk\x18\x03 \x01(\rR\x05\x63hunk\"_\n\x19RequestApplySnapshotChunk\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x63hunk\x18\x02 \x01(\x0cR\x05\x63hunk\x12\x16\n\x06sender\x18\x03 \x01(\tR\x06sender\"\xc5\t\n\x08Response\x12H\n\texception\x18\x01 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseExceptionH\x00R\texception\x12\x39\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseEchoH\x00R\x04\x65\x63ho\x12<\n\x05\x66lush\x18\x03 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseFlushH\x00R\x05\x66lush\x12\x39\n\x04info\x18\x04 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseInfoH\x00R\x04info\x12I\n\nset_option\x18\x05 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseSetOptionH\x00R\tsetOption\x12I\n\ninit_chain\x18\x06 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseInitChainH\x00R\tinitChain\x12<\n\x05query\x18\x07 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseQueryH\x00R\x05query\x12L\n\x0b\x62\x65gin_block\x18\x08 \x01(\x0b\x32).cometbft.abci.v1beta1.ResponseBeginBlockH\x00R\nbeginBlock\x12\x43\n\x08\x63heck_tx\x18\t \x01(\x0b\x32&.cometbft.abci.v1beta1.ResponseCheckTxH\x00R\x07\x63heckTx\x12I\n\ndeliver_tx\x18\n \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseDeliverTxH\x00R\tdeliverTx\x12\x46\n\tend_block\x18\x0b \x01(\x0b\x32\'.cometbft.abci.v1beta1.ResponseEndBlockH\x00R\x08\x65ndBlock\x12?\n\x06\x63ommit\x18\x0c \x01(\x0b\x32%.cometbft.abci.v1beta1.ResponseCommitH\x00R\x06\x63ommit\x12U\n\x0elist_snapshots\x18\r \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseListSnapshotsH\x00R\rlistSnapshots\x12U\n\x0eoffer_snapshot\x18\x0e \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseOfferSnapshotH\x00R\rofferSnapshot\x12\x62\n\x13load_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x65\n\x14\x61pply_snapshot_chunk\x18\x10 \x01(\x0b\x32\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunkB\x07\n\x05value\")\n\x11ResponseException\x12\x14\n\x05\x65rror\x18\x01 \x01(\tR\x05\x65rror\"(\n\x0cResponseEcho\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0f\n\rResponseFlush\"\xb8\x01\n\x0cResponseInfo\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x1f\n\x0b\x61pp_version\x18\x03 \x01(\x04R\nappVersion\x12*\n\x11last_block_height\x18\x04 \x01(\x03R\x0flastBlockHeight\x12-\n\x13last_block_app_hash\x18\x05 \x01(\x0cR\x10lastBlockAppHash\"M\n\x11ResponseSetOption\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\"\xcf\x01\n\x11ResponseInitChain\x12Q\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32&.cometbft.abci.v1beta1.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x02 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12\x19\n\x08\x61pp_hash\x18\x03 \x01(\x0cR\x07\x61ppHash\"\xf8\x01\n\rResponseQuery\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x14\n\x05index\x18\x05 \x01(\x03R\x05index\x12\x10\n\x03key\x18\x06 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x07 \x01(\x0cR\x05value\x12\x39\n\tproof_ops\x18\x08 \x01(\x0b\x32\x1c.cometbft.crypto.v1.ProofOpsR\x08proofOps\x12\x16\n\x06height\x18\t \x01(\x03R\x06height\x12\x1c\n\tcodespace\x18\n \x01(\tR\tcodespace\"d\n\x12ResponseBeginBlock\x12N\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1c.cometbft.abci.v1beta1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\xe2\x02\n\x0fResponseCheckTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\x12\x16\n\x06sender\x18\t \x01(\tR\x06sender\x12\x1a\n\x08priority\x18\n \x01(\x03R\x08priority\x12#\n\rmempool_error\x18\x0b \x01(\tR\x0cmempoolError\"\x8b\x02\n\x11ResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\"\x9d\x02\n\x10ResponseEndBlock\x12Y\n\x11validator_updates\x18\x01 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12^\n\x17\x63onsensus_param_updates\x18\x02 \x01(\x0b\x32&.cometbft.abci.v1beta1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12N\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1c.cometbft.abci.v1beta1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"I\n\x0eResponseCommit\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12#\n\rretain_height\x18\x03 \x01(\x03R\x0cretainHeight\"V\n\x15ResponseListSnapshots\x12=\n\tsnapshots\x18\x01 \x03(\x0b\x32\x1f.cometbft.abci.v1beta1.SnapshotR\tsnapshots\"\xc4\x01\n\x15ResponseOfferSnapshot\x12K\n\x06result\x18\x01 \x01(\x0e\x32\x33.cometbft.abci.v1beta1.ResponseOfferSnapshot.ResultR\x06result\"^\n\x06Result\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\t\n\x05\x41\x42ORT\x10\x02\x12\n\n\x06REJECT\x10\x03\x12\x11\n\rREJECT_FORMAT\x10\x04\x12\x11\n\rREJECT_SENDER\x10\x05\"1\n\x19ResponseLoadSnapshotChunk\x12\x14\n\x05\x63hunk\x18\x01 \x01(\x0cR\x05\x63hunk\"\x9e\x02\n\x1aResponseApplySnapshotChunk\x12P\n\x06result\x18\x01 \x01(\x0e\x32\x38.cometbft.abci.v1beta1.ResponseApplySnapshotChunk.ResultR\x06result\x12%\n\x0erefetch_chunks\x18\x02 \x03(\rR\rrefetchChunks\x12%\n\x0ereject_senders\x18\x03 \x03(\tR\rrejectSenders\"`\n\x06Result\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\t\n\x05\x41\x42ORT\x10\x02\x12\t\n\x05RETRY\x10\x03\x12\x12\n\x0eRETRY_SNAPSHOT\x10\x04\x12\x13\n\x0fREJECT_SNAPSHOT\x10\x05\"\x97\x02\n\x0f\x43onsensusParams\x12\x38\n\x05\x62lock\x18\x01 \x01(\x0b\x32\".cometbft.abci.v1beta1.BlockParamsR\x05\x62lock\x12\x42\n\x08\x65vidence\x18\x02 \x01(\x0b\x32&.cometbft.types.v1beta1.EvidenceParamsR\x08\x65vidence\x12\x45\n\tvalidator\x18\x03 \x01(\x0b\x32\'.cometbft.types.v1beta1.ValidatorParamsR\tvalidator\x12?\n\x07version\x18\x04 \x01(\x0b\x32%.cometbft.types.v1beta1.VersionParamsR\x07version\"C\n\x0b\x42lockParams\x12\x1b\n\tmax_bytes\x18\x01 \x01(\x03R\x08maxBytes\x12\x17\n\x07max_gas\x18\x02 \x01(\x03R\x06maxGas\"c\n\x0eLastCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12;\n\x05votes\x18\x02 \x03(\x0b\x32\x1f.cometbft.abci.v1beta1.VoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"\x80\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x63\n\nattributes\x18\x02 \x03(\x0b\x32%.cometbft.abci.v1beta1.EventAttributeB\x1c\xc8\xde\x1f\x00\xea\xde\x1f\x14\x61ttributes,omitemptyR\nattributes\"N\n\x0e\x45ventAttribute\x12\x10\n\x03key\x18\x01 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\x12\x14\n\x05index\x18\x03 \x01(\x08R\x05index\"\x90\x01\n\x08TxResult\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05index\x18\x02 \x01(\rR\x05index\x12\x0e\n\x02tx\x18\x03 \x01(\x0cR\x02tx\x12\x46\n\x06result\x18\x04 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseDeliverTxB\x04\xc8\xde\x1f\x00R\x06result\";\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x03 \x01(\x03R\x05power\"e\n\x0fValidatorUpdate\x12<\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12\x14\n\x05power\x18\x02 \x01(\x03R\x05power\"|\n\x08VoteInfo\x12\x44\n\tvalidator\x18\x01 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12*\n\x11signed_last_block\x18\x02 \x01(\x08R\x0fsignedLastBlock\"\x89\x02\n\x08\x45vidence\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32#.cometbft.abci.v1beta1.EvidenceTypeR\x04type\x12\x44\n\tvalidator\x18\x02 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12,\n\x12total_voting_power\x18\x05 \x01(\x03R\x10totalVotingPower\"\x82\x01\n\x08Snapshot\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x16\n\x06\x63hunks\x18\x03 \x01(\rR\x06\x63hunks\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x1a\n\x08metadata\x18\x05 \x01(\x0cR\x08metadata*9\n\x0b\x43heckTxType\x12\x10\n\x03NEW\x10\x00\x1a\x07\x8a\x9d \x03New\x12\x18\n\x07RECHECK\x10\x01\x1a\x0b\x8a\x9d \x07Recheck*H\n\x0c\x45videnceType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x44UPLICATE_VOTE\x10\x01\x12\x17\n\x13LIGHT_CLIENT_ATTACK\x10\x02\x32\xb7\x0b\n\x0f\x41\x42\x43IApplication\x12O\n\x04\x45\x63ho\x12\".cometbft.abci.v1beta1.RequestEcho\x1a#.cometbft.abci.v1beta1.ResponseEcho\x12R\n\x05\x46lush\x12#.cometbft.abci.v1beta1.RequestFlush\x1a$.cometbft.abci.v1beta1.ResponseFlush\x12O\n\x04Info\x12\".cometbft.abci.v1beta1.RequestInfo\x1a#.cometbft.abci.v1beta1.ResponseInfo\x12^\n\tSetOption\x12\'.cometbft.abci.v1beta1.RequestSetOption\x1a(.cometbft.abci.v1beta1.ResponseSetOption\x12^\n\tDeliverTx\x12\'.cometbft.abci.v1beta1.RequestDeliverTx\x1a(.cometbft.abci.v1beta1.ResponseDeliverTx\x12X\n\x07\x43heckTx\x12%.cometbft.abci.v1beta1.RequestCheckTx\x1a&.cometbft.abci.v1beta1.ResponseCheckTx\x12R\n\x05Query\x12#.cometbft.abci.v1beta1.RequestQuery\x1a$.cometbft.abci.v1beta1.ResponseQuery\x12U\n\x06\x43ommit\x12$.cometbft.abci.v1beta1.RequestCommit\x1a%.cometbft.abci.v1beta1.ResponseCommit\x12^\n\tInitChain\x12\'.cometbft.abci.v1beta1.RequestInitChain\x1a(.cometbft.abci.v1beta1.ResponseInitChain\x12\x61\n\nBeginBlock\x12(.cometbft.abci.v1beta1.RequestBeginBlock\x1a).cometbft.abci.v1beta1.ResponseBeginBlock\x12[\n\x08\x45ndBlock\x12&.cometbft.abci.v1beta1.RequestEndBlock\x1a\'.cometbft.abci.v1beta1.ResponseEndBlock\x12j\n\rListSnapshots\x12+.cometbft.abci.v1beta1.RequestListSnapshots\x1a,.cometbft.abci.v1beta1.ResponseListSnapshots\x12j\n\rOfferSnapshot\x12+.cometbft.abci.v1beta1.RequestOfferSnapshot\x1a,.cometbft.abci.v1beta1.ResponseOfferSnapshot\x12v\n\x11LoadSnapshotChunk\x12/.cometbft.abci.v1beta1.RequestLoadSnapshotChunk\x1a\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunk\x12y\n\x12\x41pplySnapshotChunk\x12\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunk\x1a\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunkB\xd5\x01\n\x19\x63om.cometbft.abci.v1beta1B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta1\xa2\x02\x03\x43\x41X\xaa\x02\x15\x43ometbft.Abci.V1beta1\xca\x02\x15\x43ometbft\\Abci\\V1beta1\xe2\x02!Cometbft\\Abci\\V1beta1\\GPBMetadata\xea\x02\x17\x43ometbft::Abci::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.abci.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.abci.v1beta1B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta1\242\002\003CAX\252\002\025Cometbft.Abci.V1beta1\312\002\025Cometbft\\Abci\\V1beta1\342\002!Cometbft\\Abci\\V1beta1\\GPBMetadata\352\002\027Cometbft::Abci::V1beta1' + _globals['_CHECKTXTYPE'].values_by_name["NEW"]._loaded_options = None + _globals['_CHECKTXTYPE'].values_by_name["NEW"]._serialized_options = b'\212\235 \003New' + _globals['_CHECKTXTYPE'].values_by_name["RECHECK"]._loaded_options = None + _globals['_CHECKTXTYPE'].values_by_name["RECHECK"]._serialized_options = b'\212\235 \007Recheck' + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['header']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['last_commit_info']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['last_commit_info']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['byzantine_validators']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['byzantine_validators']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSECHECKTX'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSECHECKTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEDELIVERTX'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEDELIVERTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_LASTCOMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_LASTCOMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EVENT'].fields_by_name['attributes']._loaded_options = None + _globals['_EVENT'].fields_by_name['attributes']._serialized_options = b'\310\336\037\000\352\336\037\024attributes,omitempty' + _globals['_TXRESULT'].fields_by_name['result']._loaded_options = None + _globals['_TXRESULT'].fields_by_name['result']._serialized_options = b'\310\336\037\000' + _globals['_VALIDATORUPDATE'].fields_by_name['pub_key']._loaded_options = None + _globals['_VALIDATORUPDATE'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' + _globals['_VOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_VOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_EVIDENCE'].fields_by_name['validator']._loaded_options = None + _globals['_EVIDENCE'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_EVIDENCE'].fields_by_name['time']._loaded_options = None + _globals['_EVIDENCE'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CHECKTXTYPE']._serialized_start=8132 + _globals['_CHECKTXTYPE']._serialized_end=8189 + _globals['_EVIDENCETYPE']._serialized_start=8191 + _globals['_EVIDENCETYPE']._serialized_end=8263 + _globals['_REQUEST']._serialized_start=252 + _globals['_REQUEST']._serialized_end=1383 + _globals['_REQUESTECHO']._serialized_start=1385 + _globals['_REQUESTECHO']._serialized_end=1424 + _globals['_REQUESTFLUSH']._serialized_start=1426 + _globals['_REQUESTFLUSH']._serialized_end=1440 + _globals['_REQUESTINFO']._serialized_start=1442 + _globals['_REQUESTINFO']._serialized_end=1551 + _globals['_REQUESTSETOPTION']._serialized_start=1553 + _globals['_REQUESTSETOPTION']._serialized_end=1611 + _globals['_REQUESTINITCHAIN']._serialized_start=1614 + _globals['_REQUESTINITCHAIN']._serialized_end=1957 + _globals['_REQUESTQUERY']._serialized_start=1959 + _globals['_REQUESTQUERY']._serialized_end=2059 + _globals['_REQUESTBEGINBLOCK']._serialized_start=2062 + _globals['_REQUESTBEGINBLOCK']._serialized_end=2340 + _globals['_REQUESTCHECKTX']._serialized_start=2342 + _globals['_REQUESTCHECKTX']._serialized_end=2430 + _globals['_REQUESTDELIVERTX']._serialized_start=2432 + _globals['_REQUESTDELIVERTX']._serialized_end=2466 + _globals['_REQUESTENDBLOCK']._serialized_start=2468 + _globals['_REQUESTENDBLOCK']._serialized_end=2509 + _globals['_REQUESTCOMMIT']._serialized_start=2511 + _globals['_REQUESTCOMMIT']._serialized_end=2526 + _globals['_REQUESTLISTSNAPSHOTS']._serialized_start=2528 + _globals['_REQUESTLISTSNAPSHOTS']._serialized_end=2550 + _globals['_REQUESTOFFERSNAPSHOT']._serialized_start=2552 + _globals['_REQUESTOFFERSNAPSHOT']._serialized_end=2662 + _globals['_REQUESTLOADSNAPSHOTCHUNK']._serialized_start=2664 + _globals['_REQUESTLOADSNAPSHOTCHUNK']._serialized_end=2760 + _globals['_REQUESTAPPLYSNAPSHOTCHUNK']._serialized_start=2762 + _globals['_REQUESTAPPLYSNAPSHOTCHUNK']._serialized_end=2857 + _globals['_RESPONSE']._serialized_start=2860 + _globals['_RESPONSE']._serialized_end=4081 + _globals['_RESPONSEEXCEPTION']._serialized_start=4083 + _globals['_RESPONSEEXCEPTION']._serialized_end=4124 + _globals['_RESPONSEECHO']._serialized_start=4126 + _globals['_RESPONSEECHO']._serialized_end=4166 + _globals['_RESPONSEFLUSH']._serialized_start=4168 + _globals['_RESPONSEFLUSH']._serialized_end=4183 + _globals['_RESPONSEINFO']._serialized_start=4186 + _globals['_RESPONSEINFO']._serialized_end=4370 + _globals['_RESPONSESETOPTION']._serialized_start=4372 + _globals['_RESPONSESETOPTION']._serialized_end=4449 + _globals['_RESPONSEINITCHAIN']._serialized_start=4452 + _globals['_RESPONSEINITCHAIN']._serialized_end=4659 + _globals['_RESPONSEQUERY']._serialized_start=4662 + _globals['_RESPONSEQUERY']._serialized_end=4910 + _globals['_RESPONSEBEGINBLOCK']._serialized_start=4912 + _globals['_RESPONSEBEGINBLOCK']._serialized_end=5012 + _globals['_RESPONSECHECKTX']._serialized_start=5015 + _globals['_RESPONSECHECKTX']._serialized_end=5369 + _globals['_RESPONSEDELIVERTX']._serialized_start=5372 + _globals['_RESPONSEDELIVERTX']._serialized_end=5639 + _globals['_RESPONSEENDBLOCK']._serialized_start=5642 + _globals['_RESPONSEENDBLOCK']._serialized_end=5927 + _globals['_RESPONSECOMMIT']._serialized_start=5929 + _globals['_RESPONSECOMMIT']._serialized_end=6002 + _globals['_RESPONSELISTSNAPSHOTS']._serialized_start=6004 + _globals['_RESPONSELISTSNAPSHOTS']._serialized_end=6090 + _globals['_RESPONSEOFFERSNAPSHOT']._serialized_start=6093 + _globals['_RESPONSEOFFERSNAPSHOT']._serialized_end=6289 + _globals['_RESPONSEOFFERSNAPSHOT_RESULT']._serialized_start=6195 + _globals['_RESPONSEOFFERSNAPSHOT_RESULT']._serialized_end=6289 + _globals['_RESPONSELOADSNAPSHOTCHUNK']._serialized_start=6291 + _globals['_RESPONSELOADSNAPSHOTCHUNK']._serialized_end=6340 + _globals['_RESPONSEAPPLYSNAPSHOTCHUNK']._serialized_start=6343 + _globals['_RESPONSEAPPLYSNAPSHOTCHUNK']._serialized_end=6629 + _globals['_RESPONSEAPPLYSNAPSHOTCHUNK_RESULT']._serialized_start=6533 + _globals['_RESPONSEAPPLYSNAPSHOTCHUNK_RESULT']._serialized_end=6629 + _globals['_CONSENSUSPARAMS']._serialized_start=6632 + _globals['_CONSENSUSPARAMS']._serialized_end=6911 + _globals['_BLOCKPARAMS']._serialized_start=6913 + _globals['_BLOCKPARAMS']._serialized_end=6980 + _globals['_LASTCOMMITINFO']._serialized_start=6982 + _globals['_LASTCOMMITINFO']._serialized_end=7081 + _globals['_EVENT']._serialized_start=7084 + _globals['_EVENT']._serialized_end=7212 + _globals['_EVENTATTRIBUTE']._serialized_start=7214 + _globals['_EVENTATTRIBUTE']._serialized_end=7292 + _globals['_TXRESULT']._serialized_start=7295 + _globals['_TXRESULT']._serialized_end=7439 + _globals['_VALIDATOR']._serialized_start=7441 + _globals['_VALIDATOR']._serialized_end=7500 + _globals['_VALIDATORUPDATE']._serialized_start=7502 + _globals['_VALIDATORUPDATE']._serialized_end=7603 + _globals['_VOTEINFO']._serialized_start=7605 + _globals['_VOTEINFO']._serialized_end=7729 + _globals['_EVIDENCE']._serialized_start=7732 + _globals['_EVIDENCE']._serialized_end=7997 + _globals['_SNAPSHOT']._serialized_start=8000 + _globals['_SNAPSHOT']._serialized_end=8130 + _globals['_ABCIAPPLICATION']._serialized_start=8266 + _globals['_ABCIAPPLICATION']._serialized_end=9729 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/abci/v1beta1/types_pb2_grpc.py b/pyinjective/proto/cometbft/abci/v1beta1/types_pb2_grpc.py new file mode 100644 index 00000000..8109ab24 --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta1/types_pb2_grpc.py @@ -0,0 +1,706 @@ +# 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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 + + +class ABCIApplicationStub(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Echo = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/Echo', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + _registered_method=True) + self.Flush = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/Flush', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + _registered_method=True) + self.Info = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/Info', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInfo.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + _registered_method=True) + self.SetOption = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/SetOption', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestSetOption.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseSetOption.FromString, + _registered_method=True) + self.DeliverTx = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/DeliverTx', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseDeliverTx.FromString, + _registered_method=True) + self.CheckTx = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/CheckTx', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCheckTx.FromString, + _registered_method=True) + self.Query = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/Query', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + _registered_method=True) + self.Commit = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/Commit', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.FromString, + _registered_method=True) + self.InitChain = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/InitChain', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInitChain.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInitChain.FromString, + _registered_method=True) + self.BeginBlock = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/BeginBlock', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestBeginBlock.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseBeginBlock.FromString, + _registered_method=True) + self.EndBlock = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/EndBlock', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEndBlock.FromString, + _registered_method=True) + self.ListSnapshots = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/ListSnapshots', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + _registered_method=True) + self.OfferSnapshot = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/OfferSnapshot', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + _registered_method=True) + self.LoadSnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/LoadSnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + _registered_method=True) + self.ApplySnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta1.ABCIApplication/ApplySnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + _registered_method=True) + + +class ABCIApplicationServicer(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + def Echo(self, request, context): + """Echo returns back the same message it is sent. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Flush(self, request, context): + """Flush flushes the write buffer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Info(self, request, context): + """Info returns information about the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetOption(self, request, context): + """SetOption sets a parameter in the application. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeliverTx(self, request, context): + """DeliverTx applies a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckTx(self, request, context): + """CheckTx validates a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Query(self, request, context): + """Query queries the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Commit(self, request, context): + """Commit commits a block of transactions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InitChain(self, request, context): + """InitChain initializes the blockchain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BeginBlock(self, request, context): + """BeginBlock signals the beginning of a block. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EndBlock(self, request, context): + """EndBlock signals the end of a block, returns changes to the validator set. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListSnapshots(self, request, context): + """ListSnapshots lists all the available snapshots. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def OfferSnapshot(self, request, context): + """OfferSnapshot sends a snapshot offer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LoadSnapshotChunk(self, request, context): + """LoadSnapshotChunk returns a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ApplySnapshotChunk(self, request, context): + """ApplySnapshotChunk applies a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ABCIApplicationServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Echo': grpc.unary_unary_rpc_method_handler( + servicer.Echo, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.SerializeToString, + ), + 'Flush': grpc.unary_unary_rpc_method_handler( + servicer.Flush, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.SerializeToString, + ), + 'Info': grpc.unary_unary_rpc_method_handler( + servicer.Info, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInfo.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.SerializeToString, + ), + 'SetOption': grpc.unary_unary_rpc_method_handler( + servicer.SetOption, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestSetOption.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseSetOption.SerializeToString, + ), + 'DeliverTx': grpc.unary_unary_rpc_method_handler( + servicer.DeliverTx, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseDeliverTx.SerializeToString, + ), + 'CheckTx': grpc.unary_unary_rpc_method_handler( + servicer.CheckTx, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCheckTx.SerializeToString, + ), + 'Query': grpc.unary_unary_rpc_method_handler( + servicer.Query, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.SerializeToString, + ), + 'Commit': grpc.unary_unary_rpc_method_handler( + servicer.Commit, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.SerializeToString, + ), + 'InitChain': grpc.unary_unary_rpc_method_handler( + servicer.InitChain, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInitChain.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInitChain.SerializeToString, + ), + 'BeginBlock': grpc.unary_unary_rpc_method_handler( + servicer.BeginBlock, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestBeginBlock.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseBeginBlock.SerializeToString, + ), + 'EndBlock': grpc.unary_unary_rpc_method_handler( + servicer.EndBlock, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEndBlock.SerializeToString, + ), + 'ListSnapshots': grpc.unary_unary_rpc_method_handler( + servicer.ListSnapshots, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.SerializeToString, + ), + 'OfferSnapshot': grpc.unary_unary_rpc_method_handler( + servicer.OfferSnapshot, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.SerializeToString, + ), + 'LoadSnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.LoadSnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.SerializeToString, + ), + 'ApplySnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.ApplySnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.abci.v1beta1.ABCIApplication', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.abci.v1beta1.ABCIApplication', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ABCIApplication(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + @staticmethod + def Echo(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, + '/cometbft.abci.v1beta1.ABCIApplication/Echo', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Flush(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, + '/cometbft.abci.v1beta1.ABCIApplication/Flush', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Info(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, + '/cometbft.abci.v1beta1.ABCIApplication/Info', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInfo.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetOption(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, + '/cometbft.abci.v1beta1.ABCIApplication/SetOption', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestSetOption.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseSetOption.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DeliverTx(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, + '/cometbft.abci.v1beta1.ABCIApplication/DeliverTx', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseDeliverTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CheckTx(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, + '/cometbft.abci.v1beta1.ABCIApplication/CheckTx', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCheckTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Query(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, + '/cometbft.abci.v1beta1.ABCIApplication/Query', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Commit(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, + '/cometbft.abci.v1beta1.ABCIApplication/Commit', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InitChain(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, + '/cometbft.abci.v1beta1.ABCIApplication/InitChain', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestInitChain.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInitChain.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BeginBlock(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, + '/cometbft.abci.v1beta1.ABCIApplication/BeginBlock', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestBeginBlock.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseBeginBlock.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EndBlock(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, + '/cometbft.abci.v1beta1.ABCIApplication/EndBlock', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEndBlock.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ListSnapshots(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, + '/cometbft.abci.v1beta1.ABCIApplication/ListSnapshots', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def OfferSnapshot(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, + '/cometbft.abci.v1beta1.ABCIApplication/OfferSnapshot', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LoadSnapshotChunk(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, + '/cometbft.abci.v1beta1.ABCIApplication/LoadSnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ApplySnapshotChunk(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, + '/cometbft.abci.v1beta1.ABCIApplication/ApplySnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/abci/v1beta2/types_pb2.py b/pyinjective/proto/cometbft/abci/v1beta2/types_pb2.py new file mode 100644 index 00000000..88a4a2bd --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta2/types_pb2.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/abci/v1beta2/types.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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta2 import params_pb2 as cometbft_dot_types_dot_v1beta2_dot_params__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/abci/v1beta2/types.proto\x12\x15\x63ometbft.abci.v1beta2\x1a\x14gogoproto/gogo.proto\x1a!cometbft/abci/v1beta1/types.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a#cometbft/types/v1beta2/params.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\t\n\x07Request\x12\x38\n\x04\x65\x63ho\x18\x01 \x01(\x0b\x32\".cometbft.abci.v1beta1.RequestEchoH\x00R\x04\x65\x63ho\x12;\n\x05\x66lush\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestFlushH\x00R\x05\x66lush\x12\x38\n\x04info\x18\x03 \x01(\x0b\x32\".cometbft.abci.v1beta2.RequestInfoH\x00R\x04info\x12H\n\ninit_chain\x18\x05 \x01(\x0b\x32\'.cometbft.abci.v1beta2.RequestInitChainH\x00R\tinitChain\x12;\n\x05query\x18\x06 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestQueryH\x00R\x05query\x12K\n\x0b\x62\x65gin_block\x18\x07 \x01(\x0b\x32(.cometbft.abci.v1beta2.RequestBeginBlockH\x00R\nbeginBlock\x12\x42\n\x08\x63heck_tx\x18\x08 \x01(\x0b\x32%.cometbft.abci.v1beta1.RequestCheckTxH\x00R\x07\x63heckTx\x12H\n\ndeliver_tx\x18\t \x01(\x0b\x32\'.cometbft.abci.v1beta1.RequestDeliverTxH\x00R\tdeliverTx\x12\x45\n\tend_block\x18\n \x01(\x0b\x32&.cometbft.abci.v1beta1.RequestEndBlockH\x00R\x08\x65ndBlock\x12>\n\x06\x63ommit\x18\x0b \x01(\x0b\x32$.cometbft.abci.v1beta1.RequestCommitH\x00R\x06\x63ommit\x12T\n\x0elist_snapshots\x18\x0c \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestListSnapshotsH\x00R\rlistSnapshots\x12T\n\x0eoffer_snapshot\x18\r \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestOfferSnapshotH\x00R\rofferSnapshot\x12\x61\n\x13load_snapshot_chunk\x18\x0e \x01(\x0b\x32/.cometbft.abci.v1beta1.RequestLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x64\n\x14\x61pply_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12Z\n\x10prepare_proposal\x18\x10 \x01(\x0b\x32-.cometbft.abci.v1beta2.RequestPrepareProposalH\x00R\x0fprepareProposal\x12Z\n\x10process_proposal\x18\x11 \x01(\x0b\x32-.cometbft.abci.v1beta2.RequestProcessProposalH\x00R\x0fprocessProposalB\x07\n\x05valueJ\x04\x08\x04\x10\x05\"\x90\x01\n\x0bRequestInfo\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12#\n\rblock_version\x18\x02 \x01(\x04R\x0c\x62lockVersion\x12\x1f\n\x0bp2p_version\x18\x03 \x01(\x04R\np2pVersion\x12!\n\x0c\x61\x62\x63i_version\x18\x04 \x01(\tR\x0b\x61\x62\x63iVersion\"\xd8\x02\n\x10RequestInitChain\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12R\n\x10\x63onsensus_params\x18\x03 \x01(\x0b\x32\'.cometbft.types.v1beta2.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x04 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12&\n\x0f\x61pp_state_bytes\x18\x05 \x01(\x0cR\rappStateBytes\x12%\n\x0einitial_height\x18\x06 \x01(\x03R\rinitialHeight\"\x95\x02\n\x11RequestBeginBlock\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12<\n\x06header\x18\x02 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12Q\n\x10last_commit_info\x18\x03 \x01(\x0b\x32!.cometbft.abci.v1beta2.CommitInfoB\x04\xc8\xde\x1f\x00R\x0elastCommitInfo\x12[\n\x14\x62yzantine_validators\x18\x04 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x13\x62yzantineValidators\"\xa4\x03\n\x16RequestPrepareProposal\x12 \n\x0cmax_tx_bytes\x18\x01 \x01(\x03R\nmaxTxBytes\x12\x10\n\x03txs\x18\x02 \x03(\x0cR\x03txs\x12[\n\x11local_last_commit\x18\x03 \x01(\x0b\x32).cometbft.abci.v1beta2.ExtendedCommitInfoB\x04\xc8\xde\x1f\x00R\x0flocalLastCommit\x12J\n\x0bmisbehavior\x18\x04 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x94\x03\n\x16RequestProcessProposal\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12Y\n\x14proposed_last_commit\x18\x02 \x01(\x0b\x32!.cometbft.abci.v1beta2.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12J\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\xba\n\n\x08Response\x12H\n\texception\x18\x01 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseExceptionH\x00R\texception\x12\x39\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseEchoH\x00R\x04\x65\x63ho\x12<\n\x05\x66lush\x18\x03 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseFlushH\x00R\x05\x66lush\x12\x39\n\x04info\x18\x04 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseInfoH\x00R\x04info\x12I\n\ninit_chain\x18\x06 \x01(\x0b\x32(.cometbft.abci.v1beta2.ResponseInitChainH\x00R\tinitChain\x12<\n\x05query\x18\x07 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseQueryH\x00R\x05query\x12L\n\x0b\x62\x65gin_block\x18\x08 \x01(\x0b\x32).cometbft.abci.v1beta2.ResponseBeginBlockH\x00R\nbeginBlock\x12\x43\n\x08\x63heck_tx\x18\t \x01(\x0b\x32&.cometbft.abci.v1beta2.ResponseCheckTxH\x00R\x07\x63heckTx\x12I\n\ndeliver_tx\x18\n \x01(\x0b\x32(.cometbft.abci.v1beta2.ResponseDeliverTxH\x00R\tdeliverTx\x12\x46\n\tend_block\x18\x0b \x01(\x0b\x32\'.cometbft.abci.v1beta2.ResponseEndBlockH\x00R\x08\x65ndBlock\x12?\n\x06\x63ommit\x18\x0c \x01(\x0b\x32%.cometbft.abci.v1beta1.ResponseCommitH\x00R\x06\x63ommit\x12U\n\x0elist_snapshots\x18\r \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseListSnapshotsH\x00R\rlistSnapshots\x12U\n\x0eoffer_snapshot\x18\x0e \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseOfferSnapshotH\x00R\rofferSnapshot\x12\x62\n\x13load_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x65\n\x14\x61pply_snapshot_chunk\x18\x10 \x01(\x0b\x32\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12[\n\x10prepare_proposal\x18\x11 \x01(\x0b\x32..cometbft.abci.v1beta2.ResponsePrepareProposalH\x00R\x0fprepareProposal\x12[\n\x10process_proposal\x18\x12 \x01(\x0b\x32..cometbft.abci.v1beta2.ResponseProcessProposalH\x00R\x0fprocessProposalB\x07\n\x05valueJ\x04\x08\x05\x10\x06\"\xd0\x01\n\x11ResponseInitChain\x12R\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\'.cometbft.types.v1beta2.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x02 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12\x19\n\x08\x61pp_hash\x18\x03 \x01(\x0cR\x07\x61ppHash\"d\n\x12ResponseBeginBlock\x12N\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\xe2\x02\n\x0fResponseCheckTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\x12\x16\n\x06sender\x18\t \x01(\tR\x06sender\x12\x1a\n\x08priority\x18\n \x01(\x03R\x08priority\x12#\n\rmempool_error\x18\x0b \x01(\tR\x0cmempoolError\"\x8b\x02\n\x11ResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\"\x9e\x02\n\x10ResponseEndBlock\x12Y\n\x11validator_updates\x18\x01 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12_\n\x17\x63onsensus_param_updates\x18\x02 \x01(\x0b\x32\'.cometbft.types.v1beta2.ConsensusParamsR\x15\x63onsensusParamUpdates\x12N\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"+\n\x17ResponsePrepareProposal\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\xa7\x01\n\x17ResponseProcessProposal\x12U\n\x06status\x18\x01 \x01(\x0e\x32=.cometbft.abci.v1beta2.ResponseProcessProposal.ProposalStatusR\x06status\"5\n\x0eProposalStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\n\n\x06REJECT\x10\x02\"_\n\nCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12;\n\x05votes\x18\x02 \x03(\x0b\x32\x1f.cometbft.abci.v1beta1.VoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"o\n\x12\x45xtendedCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12\x43\n\x05votes\x18\x02 \x03(\x0b\x32\'.cometbft.abci.v1beta2.ExtendedVoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"\x80\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x63\n\nattributes\x18\x02 \x03(\x0b\x32%.cometbft.abci.v1beta2.EventAttributeB\x1c\xc8\xde\x1f\x00\xea\xde\x1f\x14\x61ttributes,omitemptyR\nattributes\"N\n\x0e\x45ventAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x14\n\x05index\x18\x03 \x01(\x08R\x05index\"\xab\x01\n\x10\x45xtendedVoteInfo\x12\x44\n\tvalidator\x18\x01 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12*\n\x11signed_last_block\x18\x02 \x01(\x08R\x0fsignedLastBlock\x12%\n\x0evote_extension\x18\x03 \x01(\x0cR\rvoteExtension\"\x8f\x02\n\x0bMisbehavior\x12:\n\x04type\x18\x01 \x01(\x0e\x32&.cometbft.abci.v1beta2.MisbehaviorTypeR\x04type\x12\x44\n\tvalidator\x18\x02 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12,\n\x12total_voting_power\x18\x05 \x01(\x03R\x10totalVotingPower*K\n\x0fMisbehaviorType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x44UPLICATE_VOTE\x10\x01\x12\x17\n\x13LIGHT_CLIENT_ATTACK\x10\x02\x32\xbb\x0c\n\x0f\x41\x42\x43IApplication\x12O\n\x04\x45\x63ho\x12\".cometbft.abci.v1beta1.RequestEcho\x1a#.cometbft.abci.v1beta1.ResponseEcho\x12R\n\x05\x46lush\x12#.cometbft.abci.v1beta1.RequestFlush\x1a$.cometbft.abci.v1beta1.ResponseFlush\x12O\n\x04Info\x12\".cometbft.abci.v1beta2.RequestInfo\x1a#.cometbft.abci.v1beta1.ResponseInfo\x12^\n\tDeliverTx\x12\'.cometbft.abci.v1beta1.RequestDeliverTx\x1a(.cometbft.abci.v1beta2.ResponseDeliverTx\x12X\n\x07\x43heckTx\x12%.cometbft.abci.v1beta1.RequestCheckTx\x1a&.cometbft.abci.v1beta2.ResponseCheckTx\x12R\n\x05Query\x12#.cometbft.abci.v1beta1.RequestQuery\x1a$.cometbft.abci.v1beta1.ResponseQuery\x12U\n\x06\x43ommit\x12$.cometbft.abci.v1beta1.RequestCommit\x1a%.cometbft.abci.v1beta1.ResponseCommit\x12^\n\tInitChain\x12\'.cometbft.abci.v1beta2.RequestInitChain\x1a(.cometbft.abci.v1beta2.ResponseInitChain\x12\x61\n\nBeginBlock\x12(.cometbft.abci.v1beta2.RequestBeginBlock\x1a).cometbft.abci.v1beta2.ResponseBeginBlock\x12[\n\x08\x45ndBlock\x12&.cometbft.abci.v1beta1.RequestEndBlock\x1a\'.cometbft.abci.v1beta2.ResponseEndBlock\x12j\n\rListSnapshots\x12+.cometbft.abci.v1beta1.RequestListSnapshots\x1a,.cometbft.abci.v1beta1.ResponseListSnapshots\x12j\n\rOfferSnapshot\x12+.cometbft.abci.v1beta1.RequestOfferSnapshot\x1a,.cometbft.abci.v1beta1.ResponseOfferSnapshot\x12v\n\x11LoadSnapshotChunk\x12/.cometbft.abci.v1beta1.RequestLoadSnapshotChunk\x1a\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunk\x12y\n\x12\x41pplySnapshotChunk\x12\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunk\x1a\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunk\x12p\n\x0fPrepareProposal\x12-.cometbft.abci.v1beta2.RequestPrepareProposal\x1a..cometbft.abci.v1beta2.ResponsePrepareProposal\x12p\n\x0fProcessProposal\x12-.cometbft.abci.v1beta2.RequestProcessProposal\x1a..cometbft.abci.v1beta2.ResponseProcessProposalB\xd5\x01\n\x19\x63om.cometbft.abci.v1beta2B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta2\xa2\x02\x03\x43\x41X\xaa\x02\x15\x43ometbft.Abci.V1beta2\xca\x02\x15\x43ometbft\\Abci\\V1beta2\xe2\x02!Cometbft\\Abci\\V1beta2\\GPBMetadata\xea\x02\x17\x43ometbft::Abci::V1beta2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.abci.v1beta2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.abci.v1beta2B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta2\242\002\003CAX\252\002\025Cometbft.Abci.V1beta2\312\002\025Cometbft\\Abci\\V1beta2\342\002!Cometbft\\Abci\\V1beta2\\GPBMetadata\352\002\027Cometbft::Abci::V1beta2' + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['header']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['last_commit_info']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['last_commit_info']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTBEGINBLOCK'].fields_by_name['byzantine_validators']._loaded_options = None + _globals['_REQUESTBEGINBLOCK'].fields_by_name['byzantine_validators']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSECHECKTX'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSECHECKTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEDELIVERTX'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEDELIVERTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_COMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_COMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EVENT'].fields_by_name['attributes']._loaded_options = None + _globals['_EVENT'].fields_by_name['attributes']._serialized_options = b'\310\336\037\000\352\336\037\024attributes,omitempty' + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_MISBEHAVIOR'].fields_by_name['validator']._loaded_options = None + _globals['_MISBEHAVIOR'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_MISBEHAVIOR'].fields_by_name['time']._loaded_options = None + _globals['_MISBEHAVIOR'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_MISBEHAVIORTYPE']._serialized_start=6731 + _globals['_MISBEHAVIORTYPE']._serialized_end=6806 + _globals['_REQUEST']._serialized_start=224 + _globals['_REQUEST']._serialized_end=1471 + _globals['_REQUESTINFO']._serialized_start=1474 + _globals['_REQUESTINFO']._serialized_end=1618 + _globals['_REQUESTINITCHAIN']._serialized_start=1621 + _globals['_REQUESTINITCHAIN']._serialized_end=1965 + _globals['_REQUESTBEGINBLOCK']._serialized_start=1968 + _globals['_REQUESTBEGINBLOCK']._serialized_end=2245 + _globals['_REQUESTPREPAREPROPOSAL']._serialized_start=2248 + _globals['_REQUESTPREPAREPROPOSAL']._serialized_end=2668 + _globals['_REQUESTPROCESSPROPOSAL']._serialized_start=2671 + _globals['_REQUESTPROCESSPROPOSAL']._serialized_end=3075 + _globals['_RESPONSE']._serialized_start=3078 + _globals['_RESPONSE']._serialized_end=4416 + _globals['_RESPONSEINITCHAIN']._serialized_start=4419 + _globals['_RESPONSEINITCHAIN']._serialized_end=4627 + _globals['_RESPONSEBEGINBLOCK']._serialized_start=4629 + _globals['_RESPONSEBEGINBLOCK']._serialized_end=4729 + _globals['_RESPONSECHECKTX']._serialized_start=4732 + _globals['_RESPONSECHECKTX']._serialized_end=5086 + _globals['_RESPONSEDELIVERTX']._serialized_start=5089 + _globals['_RESPONSEDELIVERTX']._serialized_end=5356 + _globals['_RESPONSEENDBLOCK']._serialized_start=5359 + _globals['_RESPONSEENDBLOCK']._serialized_end=5645 + _globals['_RESPONSEPREPAREPROPOSAL']._serialized_start=5647 + _globals['_RESPONSEPREPAREPROPOSAL']._serialized_end=5690 + _globals['_RESPONSEPROCESSPROPOSAL']._serialized_start=5693 + _globals['_RESPONSEPROCESSPROPOSAL']._serialized_end=5860 + _globals['_RESPONSEPROCESSPROPOSAL_PROPOSALSTATUS']._serialized_start=5807 + _globals['_RESPONSEPROCESSPROPOSAL_PROPOSALSTATUS']._serialized_end=5860 + _globals['_COMMITINFO']._serialized_start=5862 + _globals['_COMMITINFO']._serialized_end=5957 + _globals['_EXTENDEDCOMMITINFO']._serialized_start=5959 + _globals['_EXTENDEDCOMMITINFO']._serialized_end=6070 + _globals['_EVENT']._serialized_start=6073 + _globals['_EVENT']._serialized_end=6201 + _globals['_EVENTATTRIBUTE']._serialized_start=6203 + _globals['_EVENTATTRIBUTE']._serialized_end=6281 + _globals['_EXTENDEDVOTEINFO']._serialized_start=6284 + _globals['_EXTENDEDVOTEINFO']._serialized_end=6455 + _globals['_MISBEHAVIOR']._serialized_start=6458 + _globals['_MISBEHAVIOR']._serialized_end=6729 + _globals['_ABCIAPPLICATION']._serialized_start=6809 + _globals['_ABCIAPPLICATION']._serialized_end=8404 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/abci/v1beta2/types_pb2_grpc.py b/pyinjective/proto/cometbft/abci/v1beta2/types_pb2_grpc.py new file mode 100644 index 00000000..413bef41 --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta2/types_pb2_grpc.py @@ -0,0 +1,751 @@ +# 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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 + + +class ABCIApplicationStub(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Echo = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/Echo', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + _registered_method=True) + self.Flush = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/Flush', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + _registered_method=True) + self.Info = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/Info', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + _registered_method=True) + self.DeliverTx = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/DeliverTx', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseDeliverTx.FromString, + _registered_method=True) + self.CheckTx = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/CheckTx', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseCheckTx.FromString, + _registered_method=True) + self.Query = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/Query', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + _registered_method=True) + self.Commit = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/Commit', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.FromString, + _registered_method=True) + self.InitChain = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/InitChain', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInitChain.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseInitChain.FromString, + _registered_method=True) + self.BeginBlock = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/BeginBlock', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestBeginBlock.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseBeginBlock.FromString, + _registered_method=True) + self.EndBlock = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/EndBlock', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseEndBlock.FromString, + _registered_method=True) + self.ListSnapshots = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/ListSnapshots', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + _registered_method=True) + self.OfferSnapshot = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/OfferSnapshot', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + _registered_method=True) + self.LoadSnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/LoadSnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + _registered_method=True) + self.ApplySnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/ApplySnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + _registered_method=True) + self.PrepareProposal = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/PrepareProposal', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestPrepareProposal.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.FromString, + _registered_method=True) + self.ProcessProposal = channel.unary_unary( + '/cometbft.abci.v1beta2.ABCIApplication/ProcessProposal', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestProcessProposal.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.FromString, + _registered_method=True) + + +class ABCIApplicationServicer(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + def Echo(self, request, context): + """Echo returns back the same message it is sent. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Flush(self, request, context): + """Flush flushes the write buffer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Info(self, request, context): + """Info returns information about the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeliverTx(self, request, context): + """DeliverTx applies a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckTx(self, request, context): + """CheckTx validates a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Query(self, request, context): + """Query queries the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Commit(self, request, context): + """Commit commits a block of transactions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InitChain(self, request, context): + """InitChain initializes the blockchain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BeginBlock(self, request, context): + """BeginBlock signals the beginning of a block. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EndBlock(self, request, context): + """EndBlock signals the end of a block, returns changes to the validator set. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListSnapshots(self, request, context): + """ListSnapshots lists all the available snapshots. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def OfferSnapshot(self, request, context): + """OfferSnapshot sends a snapshot offer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LoadSnapshotChunk(self, request, context): + """LoadSnapshotChunk returns a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ApplySnapshotChunk(self, request, context): + """ApplySnapshotChunk applies a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PrepareProposal(self, request, context): + """PrepareProposal returns a proposal for the next block. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ProcessProposal(self, request, context): + """ProcessProposal validates a proposal. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ABCIApplicationServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Echo': grpc.unary_unary_rpc_method_handler( + servicer.Echo, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.SerializeToString, + ), + 'Flush': grpc.unary_unary_rpc_method_handler( + servicer.Flush, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.SerializeToString, + ), + 'Info': grpc.unary_unary_rpc_method_handler( + servicer.Info, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.SerializeToString, + ), + 'DeliverTx': grpc.unary_unary_rpc_method_handler( + servicer.DeliverTx, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseDeliverTx.SerializeToString, + ), + 'CheckTx': grpc.unary_unary_rpc_method_handler( + servicer.CheckTx, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseCheckTx.SerializeToString, + ), + 'Query': grpc.unary_unary_rpc_method_handler( + servicer.Query, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.SerializeToString, + ), + 'Commit': grpc.unary_unary_rpc_method_handler( + servicer.Commit, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.SerializeToString, + ), + 'InitChain': grpc.unary_unary_rpc_method_handler( + servicer.InitChain, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInitChain.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseInitChain.SerializeToString, + ), + 'BeginBlock': grpc.unary_unary_rpc_method_handler( + servicer.BeginBlock, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestBeginBlock.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseBeginBlock.SerializeToString, + ), + 'EndBlock': grpc.unary_unary_rpc_method_handler( + servicer.EndBlock, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseEndBlock.SerializeToString, + ), + 'ListSnapshots': grpc.unary_unary_rpc_method_handler( + servicer.ListSnapshots, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.SerializeToString, + ), + 'OfferSnapshot': grpc.unary_unary_rpc_method_handler( + servicer.OfferSnapshot, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.SerializeToString, + ), + 'LoadSnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.LoadSnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.SerializeToString, + ), + 'ApplySnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.ApplySnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.SerializeToString, + ), + 'PrepareProposal': grpc.unary_unary_rpc_method_handler( + servicer.PrepareProposal, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestPrepareProposal.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.SerializeToString, + ), + 'ProcessProposal': grpc.unary_unary_rpc_method_handler( + servicer.ProcessProposal, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestProcessProposal.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.abci.v1beta2.ABCIApplication', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.abci.v1beta2.ABCIApplication', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ABCIApplication(object): + """---------------------------------------- + Service Definition + + ABCIApplication is a service for an ABCI application. + """ + + @staticmethod + def Echo(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, + '/cometbft.abci.v1beta2.ABCIApplication/Echo', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Flush(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, + '/cometbft.abci.v1beta2.ABCIApplication/Flush', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Info(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, + '/cometbft.abci.v1beta2.ABCIApplication/Info', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DeliverTx(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, + '/cometbft.abci.v1beta2.ABCIApplication/DeliverTx', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestDeliverTx.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseDeliverTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CheckTx(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, + '/cometbft.abci.v1beta2.ABCIApplication/CheckTx', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseCheckTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Query(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, + '/cometbft.abci.v1beta2.ABCIApplication/Query', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Commit(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, + '/cometbft.abci.v1beta2.ABCIApplication/Commit', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseCommit.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InitChain(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, + '/cometbft.abci.v1beta2.ABCIApplication/InitChain', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInitChain.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseInitChain.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BeginBlock(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, + '/cometbft.abci.v1beta2.ABCIApplication/BeginBlock', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestBeginBlock.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseBeginBlock.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EndBlock(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, + '/cometbft.abci.v1beta2.ABCIApplication/EndBlock', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEndBlock.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseEndBlock.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ListSnapshots(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, + '/cometbft.abci.v1beta2.ABCIApplication/ListSnapshots', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def OfferSnapshot(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, + '/cometbft.abci.v1beta2.ABCIApplication/OfferSnapshot', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LoadSnapshotChunk(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, + '/cometbft.abci.v1beta2.ABCIApplication/LoadSnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ApplySnapshotChunk(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, + '/cometbft.abci.v1beta2.ABCIApplication/ApplySnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PrepareProposal(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, + '/cometbft.abci.v1beta2.ABCIApplication/PrepareProposal', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestPrepareProposal.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ProcessProposal(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, + '/cometbft.abci.v1beta2.ABCIApplication/ProcessProposal', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestProcessProposal.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/abci/v1beta3/types_pb2.py b/pyinjective/proto/cometbft/abci/v1beta3/types_pb2.py new file mode 100644 index 00000000..9dc88b9c --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta3/types_pb2.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/abci/v1beta3/types.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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/abci/v1beta3/types.proto\x12\x15\x63ometbft.abci.v1beta3\x1a!cometbft/abci/v1beta1/types.proto\x1a!cometbft/abci/v1beta2/types.proto\x1a\x1e\x63ometbft/types/v1/params.proto\x1a&cometbft/types/v1beta1/validator.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9f\n\n\x07Request\x12\x38\n\x04\x65\x63ho\x18\x01 \x01(\x0b\x32\".cometbft.abci.v1beta1.RequestEchoH\x00R\x04\x65\x63ho\x12;\n\x05\x66lush\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestFlushH\x00R\x05\x66lush\x12\x38\n\x04info\x18\x03 \x01(\x0b\x32\".cometbft.abci.v1beta2.RequestInfoH\x00R\x04info\x12H\n\ninit_chain\x18\x05 \x01(\x0b\x32\'.cometbft.abci.v1beta3.RequestInitChainH\x00R\tinitChain\x12;\n\x05query\x18\x06 \x01(\x0b\x32#.cometbft.abci.v1beta1.RequestQueryH\x00R\x05query\x12\x42\n\x08\x63heck_tx\x18\x08 \x01(\x0b\x32%.cometbft.abci.v1beta1.RequestCheckTxH\x00R\x07\x63heckTx\x12>\n\x06\x63ommit\x18\x0b \x01(\x0b\x32$.cometbft.abci.v1beta1.RequestCommitH\x00R\x06\x63ommit\x12T\n\x0elist_snapshots\x18\x0c \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestListSnapshotsH\x00R\rlistSnapshots\x12T\n\x0eoffer_snapshot\x18\r \x01(\x0b\x32+.cometbft.abci.v1beta1.RequestOfferSnapshotH\x00R\rofferSnapshot\x12\x61\n\x13load_snapshot_chunk\x18\x0e \x01(\x0b\x32/.cometbft.abci.v1beta1.RequestLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x64\n\x14\x61pply_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12Z\n\x10prepare_proposal\x18\x10 \x01(\x0b\x32-.cometbft.abci.v1beta3.RequestPrepareProposalH\x00R\x0fprepareProposal\x12Z\n\x10process_proposal\x18\x11 \x01(\x0b\x32-.cometbft.abci.v1beta3.RequestProcessProposalH\x00R\x0fprocessProposal\x12K\n\x0b\x65xtend_vote\x18\x12 \x01(\x0b\x32(.cometbft.abci.v1beta3.RequestExtendVoteH\x00R\nextendVote\x12g\n\x15verify_vote_extension\x18\x13 \x01(\x0b\x32\x31.cometbft.abci.v1beta3.RequestVerifyVoteExtensionH\x00R\x13verifyVoteExtension\x12T\n\x0e\x66inalize_block\x18\x14 \x01(\x0b\x32+.cometbft.abci.v1beta3.RequestFinalizeBlockH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"\xd3\x02\n\x10RequestInitChain\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12M\n\x10\x63onsensus_params\x18\x03 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x04 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12&\n\x0f\x61pp_state_bytes\x18\x05 \x01(\x0cR\rappStateBytes\x12%\n\x0einitial_height\x18\x06 \x01(\x03R\rinitialHeight\"\xa4\x03\n\x16RequestPrepareProposal\x12 \n\x0cmax_tx_bytes\x18\x01 \x01(\x03R\nmaxTxBytes\x12\x10\n\x03txs\x18\x02 \x03(\x0cR\x03txs\x12[\n\x11local_last_commit\x18\x03 \x01(\x0b\x32).cometbft.abci.v1beta3.ExtendedCommitInfoB\x04\xc8\xde\x1f\x00R\x0flocalLastCommit\x12J\n\x0bmisbehavior\x18\x04 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x94\x03\n\x16RequestProcessProposal\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12Y\n\x14proposed_last_commit\x18\x02 \x01(\x0b\x32!.cometbft.abci.v1beta3.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12J\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x8f\x03\n\x11RequestExtendVote\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x10\n\x03txs\x18\x04 \x03(\x0cR\x03txs\x12Y\n\x14proposed_last_commit\x18\x05 \x01(\x0b\x32!.cometbft.abci.v1beta3.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12J\n\x0bmisbehavior\x18\x06 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x9c\x01\n\x1aRequestVerifyVoteExtension\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12%\n\x0evote_extension\x18\x04 \x01(\x0cR\rvoteExtension\"\x90\x03\n\x14RequestFinalizeBlock\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12W\n\x13\x64\x65\x63ided_last_commit\x18\x02 \x01(\x0b\x32!.cometbft.abci.v1beta3.CommitInfoB\x04\xc8\xde\x1f\x00R\x11\x64\x65\x63idedLastCommit\x12J\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\".cometbft.abci.v1beta2.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\xfa\n\n\x08Response\x12H\n\texception\x18\x01 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseExceptionH\x00R\texception\x12\x39\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseEchoH\x00R\x04\x65\x63ho\x12<\n\x05\x66lush\x18\x03 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseFlushH\x00R\x05\x66lush\x12\x39\n\x04info\x18\x04 \x01(\x0b\x32#.cometbft.abci.v1beta1.ResponseInfoH\x00R\x04info\x12I\n\ninit_chain\x18\x06 \x01(\x0b\x32(.cometbft.abci.v1beta3.ResponseInitChainH\x00R\tinitChain\x12<\n\x05query\x18\x07 \x01(\x0b\x32$.cometbft.abci.v1beta1.ResponseQueryH\x00R\x05query\x12\x43\n\x08\x63heck_tx\x18\t \x01(\x0b\x32&.cometbft.abci.v1beta3.ResponseCheckTxH\x00R\x07\x63heckTx\x12?\n\x06\x63ommit\x18\x0c \x01(\x0b\x32%.cometbft.abci.v1beta3.ResponseCommitH\x00R\x06\x63ommit\x12U\n\x0elist_snapshots\x18\r \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseListSnapshotsH\x00R\rlistSnapshots\x12U\n\x0eoffer_snapshot\x18\x0e \x01(\x0b\x32,.cometbft.abci.v1beta1.ResponseOfferSnapshotH\x00R\rofferSnapshot\x12\x62\n\x13load_snapshot_chunk\x18\x0f \x01(\x0b\x32\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12\x65\n\x14\x61pply_snapshot_chunk\x18\x10 \x01(\x0b\x32\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12[\n\x10prepare_proposal\x18\x11 \x01(\x0b\x32..cometbft.abci.v1beta2.ResponsePrepareProposalH\x00R\x0fprepareProposal\x12[\n\x10process_proposal\x18\x12 \x01(\x0b\x32..cometbft.abci.v1beta2.ResponseProcessProposalH\x00R\x0fprocessProposal\x12L\n\x0b\x65xtend_vote\x18\x13 \x01(\x0b\x32).cometbft.abci.v1beta3.ResponseExtendVoteH\x00R\nextendVote\x12h\n\x15verify_vote_extension\x18\x14 \x01(\x0b\x32\x32.cometbft.abci.v1beta3.ResponseVerifyVoteExtensionH\x00R\x13verifyVoteExtension\x12U\n\x0e\x66inalize_block\x18\x15 \x01(\x0b\x32,.cometbft.abci.v1beta3.ResponseFinalizeBlockH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x05\x10\x06J\x04\x08\x08\x10\tJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0c\"\xcb\x01\n\x11ResponseInitChain\x12M\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x0f\x63onsensusParams\x12L\n\nvalidators\x18\x02 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12\x19\n\x08\x61pp_hash\x18\x03 \x01(\x0cR\x07\x61ppHash\"\xb0\x02\n\x0fResponseCheckTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespaceJ\x04\x08\t\x10\x0cR\x06senderR\x08priorityR\rmempool_error\"A\n\x0eResponseCommit\x12#\n\rretain_height\x18\x03 \x01(\x03R\x0cretainHeightJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\";\n\x12ResponseExtendVote\x12%\n\x0evote_extension\x18\x01 \x01(\x0cR\rvoteExtension\"\xab\x01\n\x1bResponseVerifyVoteExtension\x12W\n\x06status\x18\x01 \x01(\x0e\x32?.cometbft.abci.v1beta3.ResponseVerifyVoteExtension.VerifyStatusR\x06status\"3\n\x0cVerifyStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\n\n\x06REJECT\x10\x02\"\xfd\x02\n\x15ResponseFinalizeBlock\x12N\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x42\n\ntx_results\x18\x02 \x03(\x0b\x32#.cometbft.abci.v1beta3.ExecTxResultR\ttxResults\x12Y\n\x11validator_updates\x18\x03 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12Z\n\x17\x63onsensus_param_updates\x18\x04 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12\x19\n\x08\x61pp_hash\x18\x05 \x01(\x0cR\x07\x61ppHash\"\x9f\x01\n\x08VoteInfo\x12\x44\n\tvalidator\x18\x01 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12G\n\rblock_id_flag\x18\x03 \x01(\x0e\x32#.cometbft.types.v1beta1.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"\xff\x01\n\x10\x45xtendedVoteInfo\x12\x44\n\tvalidator\x18\x01 \x01(\x0b\x32 .cometbft.abci.v1beta1.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12%\n\x0evote_extension\x18\x03 \x01(\x0cR\rvoteExtension\x12/\n\x13\x65xtension_signature\x18\x04 \x01(\x0cR\x12\x65xtensionSignature\x12G\n\rblock_id_flag\x18\x05 \x01(\x0e\x32#.cometbft.types.v1beta1.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"_\n\nCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12;\n\x05votes\x18\x02 \x03(\x0b\x32\x1f.cometbft.abci.v1beta3.VoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"o\n\x12\x45xtendedCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12\x43\n\x05votes\x18\x02 \x03(\x0b\x32\'.cometbft.abci.v1beta3.ExtendedVoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"\x86\x02\n\x0c\x45xecTxResult\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12N\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\"\x8b\x01\n\x08TxResult\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05index\x18\x02 \x01(\rR\x05index\x12\x0e\n\x02tx\x18\x03 \x01(\x0cR\x02tx\x12\x41\n\x06result\x18\x04 \x01(\x0b\x32#.cometbft.abci.v1beta3.ExecTxResultB\x04\xc8\xde\x1f\x00R\x06result2\xdd\x0c\n\x04\x41\x42\x43I\x12O\n\x04\x45\x63ho\x12\".cometbft.abci.v1beta1.RequestEcho\x1a#.cometbft.abci.v1beta1.ResponseEcho\x12R\n\x05\x46lush\x12#.cometbft.abci.v1beta1.RequestFlush\x1a$.cometbft.abci.v1beta1.ResponseFlush\x12O\n\x04Info\x12\".cometbft.abci.v1beta2.RequestInfo\x1a#.cometbft.abci.v1beta1.ResponseInfo\x12X\n\x07\x43heckTx\x12%.cometbft.abci.v1beta1.RequestCheckTx\x1a&.cometbft.abci.v1beta3.ResponseCheckTx\x12R\n\x05Query\x12#.cometbft.abci.v1beta1.RequestQuery\x1a$.cometbft.abci.v1beta1.ResponseQuery\x12U\n\x06\x43ommit\x12$.cometbft.abci.v1beta1.RequestCommit\x1a%.cometbft.abci.v1beta3.ResponseCommit\x12^\n\tInitChain\x12\'.cometbft.abci.v1beta3.RequestInitChain\x1a(.cometbft.abci.v1beta3.ResponseInitChain\x12j\n\rListSnapshots\x12+.cometbft.abci.v1beta1.RequestListSnapshots\x1a,.cometbft.abci.v1beta1.ResponseListSnapshots\x12j\n\rOfferSnapshot\x12+.cometbft.abci.v1beta1.RequestOfferSnapshot\x1a,.cometbft.abci.v1beta1.ResponseOfferSnapshot\x12v\n\x11LoadSnapshotChunk\x12/.cometbft.abci.v1beta1.RequestLoadSnapshotChunk\x1a\x30.cometbft.abci.v1beta1.ResponseLoadSnapshotChunk\x12y\n\x12\x41pplySnapshotChunk\x12\x30.cometbft.abci.v1beta1.RequestApplySnapshotChunk\x1a\x31.cometbft.abci.v1beta1.ResponseApplySnapshotChunk\x12p\n\x0fPrepareProposal\x12-.cometbft.abci.v1beta3.RequestPrepareProposal\x1a..cometbft.abci.v1beta2.ResponsePrepareProposal\x12p\n\x0fProcessProposal\x12-.cometbft.abci.v1beta3.RequestProcessProposal\x1a..cometbft.abci.v1beta2.ResponseProcessProposal\x12\x61\n\nExtendVote\x12(.cometbft.abci.v1beta3.RequestExtendVote\x1a).cometbft.abci.v1beta3.ResponseExtendVote\x12|\n\x13VerifyVoteExtension\x12\x31.cometbft.abci.v1beta3.RequestVerifyVoteExtension\x1a\x32.cometbft.abci.v1beta3.ResponseVerifyVoteExtension\x12j\n\rFinalizeBlock\x12+.cometbft.abci.v1beta3.RequestFinalizeBlock\x1a,.cometbft.abci.v1beta3.ResponseFinalizeBlockB\xd5\x01\n\x19\x63om.cometbft.abci.v1beta3B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta3\xa2\x02\x03\x43\x41X\xaa\x02\x15\x43ometbft.Abci.V1beta3\xca\x02\x15\x43ometbft\\Abci\\V1beta3\xe2\x02!Cometbft\\Abci\\V1beta3\\GPBMetadata\xea\x02\x17\x43ometbft::Abci::V1beta3b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.abci.v1beta3.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.abci.v1beta3B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/abci/v1beta3\242\002\003CAX\252\002\025Cometbft.Abci.V1beta3\312\002\025Cometbft\\Abci\\V1beta3\342\002!Cometbft\\Abci\\V1beta3\\GPBMetadata\352\002\027Cometbft::Abci::V1beta3' + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTEXTENDVOTE'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTEXTENDVOTE'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_REQUESTEXTENDVOTE'].fields_by_name['proposed_last_commit']._loaded_options = None + _globals['_REQUESTEXTENDVOTE'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTEXTENDVOTE'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTEXTENDVOTE'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['decided_last_commit']._loaded_options = None + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['decided_last_commit']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['misbehavior']._loaded_options = None + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['time']._loaded_options = None + _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._loaded_options = None + _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSECHECKTX'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSECHECKTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['validator_updates']._loaded_options = None + _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_VOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_VOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._loaded_options = None + _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_COMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_COMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._loaded_options = None + _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_EXECTXRESULT'].fields_by_name['events']._loaded_options = None + _globals['_EXECTXRESULT'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_TXRESULT'].fields_by_name['result']._loaded_options = None + _globals['_TXRESULT'].fields_by_name['result']._serialized_options = b'\310\336\037\000' + _globals['_REQUEST']._serialized_start=258 + _globals['_REQUEST']._serialized_end=1569 + _globals['_REQUESTINITCHAIN']._serialized_start=1572 + _globals['_REQUESTINITCHAIN']._serialized_end=1911 + _globals['_REQUESTPREPAREPROPOSAL']._serialized_start=1914 + _globals['_REQUESTPREPAREPROPOSAL']._serialized_end=2334 + _globals['_REQUESTPROCESSPROPOSAL']._serialized_start=2337 + _globals['_REQUESTPROCESSPROPOSAL']._serialized_end=2741 + _globals['_REQUESTEXTENDVOTE']._serialized_start=2744 + _globals['_REQUESTEXTENDVOTE']._serialized_end=3143 + _globals['_REQUESTVERIFYVOTEEXTENSION']._serialized_start=3146 + _globals['_REQUESTVERIFYVOTEEXTENSION']._serialized_end=3302 + _globals['_REQUESTFINALIZEBLOCK']._serialized_start=3305 + _globals['_REQUESTFINALIZEBLOCK']._serialized_end=3705 + _globals['_RESPONSE']._serialized_start=3708 + _globals['_RESPONSE']._serialized_end=5110 + _globals['_RESPONSEINITCHAIN']._serialized_start=5113 + _globals['_RESPONSEINITCHAIN']._serialized_end=5316 + _globals['_RESPONSECHECKTX']._serialized_start=5319 + _globals['_RESPONSECHECKTX']._serialized_end=5623 + _globals['_RESPONSECOMMIT']._serialized_start=5625 + _globals['_RESPONSECOMMIT']._serialized_end=5690 + _globals['_RESPONSEEXTENDVOTE']._serialized_start=5692 + _globals['_RESPONSEEXTENDVOTE']._serialized_end=5751 + _globals['_RESPONSEVERIFYVOTEEXTENSION']._serialized_start=5754 + _globals['_RESPONSEVERIFYVOTEEXTENSION']._serialized_end=5925 + _globals['_RESPONSEVERIFYVOTEEXTENSION_VERIFYSTATUS']._serialized_start=5874 + _globals['_RESPONSEVERIFYVOTEEXTENSION_VERIFYSTATUS']._serialized_end=5925 + _globals['_RESPONSEFINALIZEBLOCK']._serialized_start=5928 + _globals['_RESPONSEFINALIZEBLOCK']._serialized_end=6309 + _globals['_VOTEINFO']._serialized_start=6312 + _globals['_VOTEINFO']._serialized_end=6471 + _globals['_EXTENDEDVOTEINFO']._serialized_start=6474 + _globals['_EXTENDEDVOTEINFO']._serialized_end=6729 + _globals['_COMMITINFO']._serialized_start=6731 + _globals['_COMMITINFO']._serialized_end=6826 + _globals['_EXTENDEDCOMMITINFO']._serialized_start=6828 + _globals['_EXTENDEDCOMMITINFO']._serialized_end=6939 + _globals['_EXECTXRESULT']._serialized_start=6942 + _globals['_EXECTXRESULT']._serialized_end=7204 + _globals['_TXRESULT']._serialized_start=7207 + _globals['_TXRESULT']._serialized_end=7346 + _globals['_ABCI']._serialized_start=7349 + _globals['_ABCI']._serialized_end=8978 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/abci/v1beta3/types_pb2_grpc.py b/pyinjective/proto/cometbft/abci/v1beta3/types_pb2_grpc.py new file mode 100644 index 00000000..3f65b7c1 --- /dev/null +++ b/pyinjective/proto/cometbft/abci/v1beta3/types_pb2_grpc.py @@ -0,0 +1,752 @@ +# 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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta3 import types_pb2 as cometbft_dot_abci_dot_v1beta3_dot_types__pb2 + + +class ABCIStub(object): + """NOTE: When using custom types, mind the warnings. + https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues + + ABCIService is a service for an ABCI application. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Echo = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/Echo', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + _registered_method=True) + self.Flush = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/Flush', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + _registered_method=True) + self.Info = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/Info', + request_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + _registered_method=True) + self.CheckTx = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/CheckTx', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCheckTx.FromString, + _registered_method=True) + self.Query = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/Query', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + _registered_method=True) + self.Commit = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/Commit', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCommit.FromString, + _registered_method=True) + self.InitChain = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/InitChain', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestInitChain.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseInitChain.FromString, + _registered_method=True) + self.ListSnapshots = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/ListSnapshots', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + _registered_method=True) + self.OfferSnapshot = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/OfferSnapshot', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + _registered_method=True) + self.LoadSnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/LoadSnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + _registered_method=True) + self.ApplySnapshotChunk = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/ApplySnapshotChunk', + request_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + _registered_method=True) + self.PrepareProposal = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/PrepareProposal', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestPrepareProposal.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.FromString, + _registered_method=True) + self.ProcessProposal = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/ProcessProposal', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestProcessProposal.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.FromString, + _registered_method=True) + self.ExtendVote = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/ExtendVote', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestExtendVote.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseExtendVote.FromString, + _registered_method=True) + self.VerifyVoteExtension = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/VerifyVoteExtension', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestVerifyVoteExtension.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseVerifyVoteExtension.FromString, + _registered_method=True) + self.FinalizeBlock = channel.unary_unary( + '/cometbft.abci.v1beta3.ABCI/FinalizeBlock', + request_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestFinalizeBlock.SerializeToString, + response_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseFinalizeBlock.FromString, + _registered_method=True) + + +class ABCIServicer(object): + """NOTE: When using custom types, mind the warnings. + https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues + + ABCIService is a service for an ABCI application. + """ + + def Echo(self, request, context): + """Echo returns back the same message it is sent. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Flush(self, request, context): + """Flush flushes the write buffer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Info(self, request, context): + """Info returns information about the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CheckTx(self, request, context): + """CheckTx validates a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Query(self, request, context): + """Query queries the application state. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Commit(self, request, context): + """Commit commits a block of transactions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InitChain(self, request, context): + """InitChain initializes the blockchain. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListSnapshots(self, request, context): + """ListSnapshots lists all the available snapshots. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def OfferSnapshot(self, request, context): + """OfferSnapshot sends a snapshot offer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LoadSnapshotChunk(self, request, context): + """LoadSnapshotChunk returns a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ApplySnapshotChunk(self, request, context): + """ApplySnapshotChunk applies a chunk of snapshot. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PrepareProposal(self, request, context): + """PrepareProposal returns a proposal for the next block. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ProcessProposal(self, request, context): + """ProcessProposal validates a proposal. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExtendVote(self, request, context): + """ExtendVote extends a vote with application-injected data (vote extensions). + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def VerifyVoteExtension(self, request, context): + """VerifyVoteExtension verifies a vote extension. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def FinalizeBlock(self, request, context): + """FinalizeBlock finalizes a block. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ABCIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Echo': grpc.unary_unary_rpc_method_handler( + servicer.Echo, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.SerializeToString, + ), + 'Flush': grpc.unary_unary_rpc_method_handler( + servicer.Flush, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.SerializeToString, + ), + 'Info': grpc.unary_unary_rpc_method_handler( + servicer.Info, + request_deserializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.SerializeToString, + ), + 'CheckTx': grpc.unary_unary_rpc_method_handler( + servicer.CheckTx, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCheckTx.SerializeToString, + ), + 'Query': grpc.unary_unary_rpc_method_handler( + servicer.Query, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.SerializeToString, + ), + 'Commit': grpc.unary_unary_rpc_method_handler( + servicer.Commit, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCommit.SerializeToString, + ), + 'InitChain': grpc.unary_unary_rpc_method_handler( + servicer.InitChain, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestInitChain.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseInitChain.SerializeToString, + ), + 'ListSnapshots': grpc.unary_unary_rpc_method_handler( + servicer.ListSnapshots, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.SerializeToString, + ), + 'OfferSnapshot': grpc.unary_unary_rpc_method_handler( + servicer.OfferSnapshot, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.SerializeToString, + ), + 'LoadSnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.LoadSnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.SerializeToString, + ), + 'ApplySnapshotChunk': grpc.unary_unary_rpc_method_handler( + servicer.ApplySnapshotChunk, + request_deserializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.SerializeToString, + ), + 'PrepareProposal': grpc.unary_unary_rpc_method_handler( + servicer.PrepareProposal, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestPrepareProposal.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.SerializeToString, + ), + 'ProcessProposal': grpc.unary_unary_rpc_method_handler( + servicer.ProcessProposal, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestProcessProposal.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.SerializeToString, + ), + 'ExtendVote': grpc.unary_unary_rpc_method_handler( + servicer.ExtendVote, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestExtendVote.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseExtendVote.SerializeToString, + ), + 'VerifyVoteExtension': grpc.unary_unary_rpc_method_handler( + servicer.VerifyVoteExtension, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestVerifyVoteExtension.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseVerifyVoteExtension.SerializeToString, + ), + 'FinalizeBlock': grpc.unary_unary_rpc_method_handler( + servicer.FinalizeBlock, + request_deserializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestFinalizeBlock.FromString, + response_serializer=cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseFinalizeBlock.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.abci.v1beta3.ABCI', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.abci.v1beta3.ABCI', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ABCI(object): + """NOTE: When using custom types, mind the warnings. + https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues + + ABCIService is a service for an ABCI application. + """ + + @staticmethod + def Echo(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, + '/cometbft.abci.v1beta3.ABCI/Echo', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestEcho.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseEcho.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Flush(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, + '/cometbft.abci.v1beta3.ABCI/Flush', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestFlush.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseFlush.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Info(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, + '/cometbft.abci.v1beta3.ABCI/Info', + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.RequestInfo.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseInfo.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CheckTx(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, + '/cometbft.abci.v1beta3.ABCI/CheckTx', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCheckTx.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCheckTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Query(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, + '/cometbft.abci.v1beta3.ABCI/Query', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestQuery.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseQuery.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Commit(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, + '/cometbft.abci.v1beta3.ABCI/Commit', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestCommit.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseCommit.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def InitChain(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, + '/cometbft.abci.v1beta3.ABCI/InitChain', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestInitChain.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseInitChain.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ListSnapshots(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, + '/cometbft.abci.v1beta3.ABCI/ListSnapshots', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestListSnapshots.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseListSnapshots.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def OfferSnapshot(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, + '/cometbft.abci.v1beta3.ABCI/OfferSnapshot', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestOfferSnapshot.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseOfferSnapshot.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LoadSnapshotChunk(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, + '/cometbft.abci.v1beta3.ABCI/LoadSnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestLoadSnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseLoadSnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ApplySnapshotChunk(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, + '/cometbft.abci.v1beta3.ABCI/ApplySnapshotChunk', + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.RequestApplySnapshotChunk.SerializeToString, + cometbft_dot_abci_dot_v1beta1_dot_types__pb2.ResponseApplySnapshotChunk.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PrepareProposal(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, + '/cometbft.abci.v1beta3.ABCI/PrepareProposal', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestPrepareProposal.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponsePrepareProposal.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ProcessProposal(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, + '/cometbft.abci.v1beta3.ABCI/ProcessProposal', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestProcessProposal.SerializeToString, + cometbft_dot_abci_dot_v1beta2_dot_types__pb2.ResponseProcessProposal.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExtendVote(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, + '/cometbft.abci.v1beta3.ABCI/ExtendVote', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestExtendVote.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseExtendVote.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def VerifyVoteExtension(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, + '/cometbft.abci.v1beta3.ABCI/VerifyVoteExtension', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestVerifyVoteExtension.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseVerifyVoteExtension.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def FinalizeBlock(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, + '/cometbft.abci.v1beta3.ABCI/FinalizeBlock', + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.RequestFinalizeBlock.SerializeToString, + cometbft_dot_abci_dot_v1beta3_dot_types__pb2.ResponseFinalizeBlock.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/blocksync/v1/types_pb2.py b/pyinjective/proto/cometbft/blocksync/v1/types_pb2.py new file mode 100644 index 00000000..f0a10fe3 --- /dev/null +++ b/pyinjective/proto/cometbft/blocksync/v1/types_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/blocksync/v1/types.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.cometbft.types.v1 import block_pb2 as cometbft_dot_types_dot_v1_dot_block__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/blocksync/v1/types.proto\x12\x15\x63ometbft.blocksync.v1\x1a\x1d\x63ometbft/types/v1/block.proto\x1a\x1d\x63ometbft/types/v1/types.proto\"&\n\x0c\x42lockRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\")\n\x0fNoBlockResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\x0f\n\rStatusRequest\"<\n\x0eStatusResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x12\n\x04\x62\x61se\x18\x02 \x01(\x03R\x04\x62\x61se\"\x81\x01\n\rBlockResponse\x12.\n\x05\x62lock\x18\x01 \x01(\x0b\x32\x18.cometbft.types.v1.BlockR\x05\x62lock\x12@\n\next_commit\x18\x02 \x01(\x0b\x32!.cometbft.types.v1.ExtendedCommitR\textCommit\"\xa2\x03\n\x07Message\x12J\n\rblock_request\x18\x01 \x01(\x0b\x32#.cometbft.blocksync.v1.BlockRequestH\x00R\x0c\x62lockRequest\x12T\n\x11no_block_response\x18\x02 \x01(\x0b\x32&.cometbft.blocksync.v1.NoBlockResponseH\x00R\x0fnoBlockResponse\x12M\n\x0e\x62lock_response\x18\x03 \x01(\x0b\x32$.cometbft.blocksync.v1.BlockResponseH\x00R\rblockResponse\x12M\n\x0estatus_request\x18\x04 \x01(\x0b\x32$.cometbft.blocksync.v1.StatusRequestH\x00R\rstatusRequest\x12P\n\x0fstatus_response\x18\x05 \x01(\x0b\x32%.cometbft.blocksync.v1.StatusResponseH\x00R\x0estatusResponseB\x05\n\x03sumB\xd5\x01\n\x19\x63om.cometbft.blocksync.v1B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/blocksync/v1\xa2\x02\x03\x43\x42X\xaa\x02\x15\x43ometbft.Blocksync.V1\xca\x02\x15\x43ometbft\\Blocksync\\V1\xe2\x02!Cometbft\\Blocksync\\V1\\GPBMetadata\xea\x02\x17\x43ometbft::Blocksync::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.blocksync.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.blocksync.v1B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/blocksync/v1\242\002\003CBX\252\002\025Cometbft.Blocksync.V1\312\002\025Cometbft\\Blocksync\\V1\342\002!Cometbft\\Blocksync\\V1\\GPBMetadata\352\002\027Cometbft::Blocksync::V1' + _globals['_BLOCKREQUEST']._serialized_start=122 + _globals['_BLOCKREQUEST']._serialized_end=160 + _globals['_NOBLOCKRESPONSE']._serialized_start=162 + _globals['_NOBLOCKRESPONSE']._serialized_end=203 + _globals['_STATUSREQUEST']._serialized_start=205 + _globals['_STATUSREQUEST']._serialized_end=220 + _globals['_STATUSRESPONSE']._serialized_start=222 + _globals['_STATUSRESPONSE']._serialized_end=282 + _globals['_BLOCKRESPONSE']._serialized_start=285 + _globals['_BLOCKRESPONSE']._serialized_end=414 + _globals['_MESSAGE']._serialized_start=417 + _globals['_MESSAGE']._serialized_end=835 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/p2p/types_pb2_grpc.py b/pyinjective/proto/cometbft/blocksync/v1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/p2p/types_pb2_grpc.py rename to pyinjective/proto/cometbft/blocksync/v1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2.py new file mode 100644 index 00000000..56f77c05 --- /dev/null +++ b/pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/blocksync/v1beta1/types.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.cometbft.types.v1beta1 import block_pb2 as cometbft_dot_types_dot_v1beta1_dot_block__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cometbft/blocksync/v1beta1/types.proto\x12\x1a\x63ometbft.blocksync.v1beta1\x1a\"cometbft/types/v1beta1/block.proto\"&\n\x0c\x42lockRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\")\n\x0fNoBlockResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"D\n\rBlockResponse\x12\x33\n\x05\x62lock\x18\x01 \x01(\x0b\x32\x1d.cometbft.types.v1beta1.BlockR\x05\x62lock\"\x0f\n\rStatusRequest\"<\n\x0eStatusResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x12\n\x04\x62\x61se\x18\x02 \x01(\x03R\x04\x62\x61se\"\xbb\x03\n\x07Message\x12O\n\rblock_request\x18\x01 \x01(\x0b\x32(.cometbft.blocksync.v1beta1.BlockRequestH\x00R\x0c\x62lockRequest\x12Y\n\x11no_block_response\x18\x02 \x01(\x0b\x32+.cometbft.blocksync.v1beta1.NoBlockResponseH\x00R\x0fnoBlockResponse\x12R\n\x0e\x62lock_response\x18\x03 \x01(\x0b\x32).cometbft.blocksync.v1beta1.BlockResponseH\x00R\rblockResponse\x12R\n\x0estatus_request\x18\x04 \x01(\x0b\x32).cometbft.blocksync.v1beta1.StatusRequestH\x00R\rstatusRequest\x12U\n\x0fstatus_response\x18\x05 \x01(\x0b\x32*.cometbft.blocksync.v1beta1.StatusResponseH\x00R\x0estatusResponseB\x05\n\x03sumB\xf3\x01\n\x1e\x63om.cometbft.blocksync.v1beta1B\nTypesProtoP\x01Z;github.com/cometbft/cometbft/api/cometbft/blocksync/v1beta1\xa2\x02\x03\x43\x42X\xaa\x02\x1a\x43ometbft.Blocksync.V1beta1\xca\x02\x1a\x43ometbft\\Blocksync\\V1beta1\xe2\x02&Cometbft\\Blocksync\\V1beta1\\GPBMetadata\xea\x02\x1c\x43ometbft::Blocksync::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.blocksync.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.cometbft.blocksync.v1beta1B\nTypesProtoP\001Z;github.com/cometbft/cometbft/api/cometbft/blocksync/v1beta1\242\002\003CBX\252\002\032Cometbft.Blocksync.V1beta1\312\002\032Cometbft\\Blocksync\\V1beta1\342\002&Cometbft\\Blocksync\\V1beta1\\GPBMetadata\352\002\034Cometbft::Blocksync::V1beta1' + _globals['_BLOCKREQUEST']._serialized_start=106 + _globals['_BLOCKREQUEST']._serialized_end=144 + _globals['_NOBLOCKRESPONSE']._serialized_start=146 + _globals['_NOBLOCKRESPONSE']._serialized_end=187 + _globals['_BLOCKRESPONSE']._serialized_start=189 + _globals['_BLOCKRESPONSE']._serialized_end=257 + _globals['_STATUSREQUEST']._serialized_start=259 + _globals['_STATUSREQUEST']._serialized_end=274 + _globals['_STATUSRESPONSE']._serialized_start=276 + _globals['_STATUSRESPONSE']._serialized_end=336 + _globals['_MESSAGE']._serialized_start=339 + _globals['_MESSAGE']._serialized_end=782 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/types_pb2_grpc.py b/pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/types/types_pb2_grpc.py rename to pyinjective/proto/cometbft/blocksync/v1beta1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/consensus/v1/types_pb2.py b/pyinjective/proto/cometbft/consensus/v1/types_pb2.py new file mode 100644 index 00000000..bf7ea531 --- /dev/null +++ b/pyinjective/proto/cometbft/consensus/v1/types_pb2.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/consensus/v1/types.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.cometbft.libs.bits.v1 import types_pb2 as cometbft_dot_libs_dot_bits_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/consensus/v1/types.proto\x12\x15\x63ometbft.consensus.v1\x1a\x14gogoproto/gogo.proto\x1a!cometbft/libs/bits/v1/types.proto\x1a\x1d\x63ometbft/types/v1/types.proto\"\xb5\x01\n\x0cNewRoundStep\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x03 \x01(\rR\x04step\x12\x37\n\x18seconds_since_start_time\x18\x04 \x01(\x03R\x15secondsSinceStartTime\x12*\n\x11last_commit_round\x18\x05 \x01(\x05R\x0flastCommitRound\"\xf7\x01\n\rNewValidBlock\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12Y\n\x15\x62lock_part_set_header\x18\x03 \x01(\x0b\x32 .cometbft.types.v1.PartSetHeaderB\x04\xc8\xde\x1f\x00R\x12\x62lockPartSetHeader\x12@\n\x0b\x62lock_parts\x18\x04 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayR\nblockParts\x12\x1b\n\tis_commit\x18\x05 \x01(\x08R\x08isCommit\"I\n\x08Proposal\x12=\n\x08proposal\x18\x01 \x01(\x0b\x32\x1b.cometbft.types.v1.ProposalB\x04\xc8\xde\x1f\x00R\x08proposal\"\x9d\x01\n\x0bProposalPOL\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12,\n\x12proposal_pol_round\x18\x02 \x01(\x05R\x10proposalPolRound\x12H\n\x0cproposal_pol\x18\x03 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayB\x04\xc8\xde\x1f\x00R\x0bproposalPol\"l\n\tBlockPart\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x31\n\x04part\x18\x03 \x01(\x0b\x32\x17.cometbft.types.v1.PartB\x04\xc8\xde\x1f\x00R\x04part\"3\n\x04Vote\x12+\n\x04vote\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteR\x04vote\"\x83\x01\n\x07HasVote\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x34\n\x04type\x18\x03 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x14\n\x05index\x18\x04 \x01(\x05R\x05index\"\xba\x01\n\x0cVoteSetMaj23\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x34\n\x04type\x18\x03 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x46\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\"\xf6\x01\n\x0bVoteSetBits\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x34\n\x04type\x18\x03 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x46\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12;\n\x05votes\x18\x05 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayB\x04\xc8\xde\x1f\x00R\x05votes\"Z\n\x14HasProposalBlockPart\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x14\n\x05index\x18\x03 \x01(\x05R\x05index\"\xe5\x05\n\x07Message\x12K\n\x0enew_round_step\x18\x01 \x01(\x0b\x32#.cometbft.consensus.v1.NewRoundStepH\x00R\x0cnewRoundStep\x12N\n\x0fnew_valid_block\x18\x02 \x01(\x0b\x32$.cometbft.consensus.v1.NewValidBlockH\x00R\rnewValidBlock\x12=\n\x08proposal\x18\x03 \x01(\x0b\x32\x1f.cometbft.consensus.v1.ProposalH\x00R\x08proposal\x12G\n\x0cproposal_pol\x18\x04 \x01(\x0b\x32\".cometbft.consensus.v1.ProposalPOLH\x00R\x0bproposalPol\x12\x41\n\nblock_part\x18\x05 \x01(\x0b\x32 .cometbft.consensus.v1.BlockPartH\x00R\tblockPart\x12\x31\n\x04vote\x18\x06 \x01(\x0b\x32\x1b.cometbft.consensus.v1.VoteH\x00R\x04vote\x12;\n\x08has_vote\x18\x07 \x01(\x0b\x32\x1e.cometbft.consensus.v1.HasVoteH\x00R\x07hasVote\x12K\n\x0evote_set_maj23\x18\x08 \x01(\x0b\x32#.cometbft.consensus.v1.VoteSetMaj23H\x00R\x0cvoteSetMaj23\x12H\n\rvote_set_bits\x18\t \x01(\x0b\x32\".cometbft.consensus.v1.VoteSetBitsH\x00R\x0bvoteSetBits\x12\x64\n\x17has_proposal_block_part\x18\n \x01(\x0b\x32+.cometbft.consensus.v1.HasProposalBlockPartH\x00R\x14hasProposalBlockPartB\x05\n\x03sumB\xd5\x01\n\x19\x63om.cometbft.consensus.v1B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/consensus/v1\xa2\x02\x03\x43\x43X\xaa\x02\x15\x43ometbft.Consensus.V1\xca\x02\x15\x43ometbft\\Consensus\\V1\xe2\x02!Cometbft\\Consensus\\V1\\GPBMetadata\xea\x02\x17\x43ometbft::Consensus::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.consensus.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.consensus.v1B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/consensus/v1\242\002\003CCX\252\002\025Cometbft.Consensus.V1\312\002\025Cometbft\\Consensus\\V1\342\002!Cometbft\\Consensus\\V1\\GPBMetadata\352\002\027Cometbft::Consensus::V1' + _globals['_NEWVALIDBLOCK'].fields_by_name['block_part_set_header']._loaded_options = None + _globals['_NEWVALIDBLOCK'].fields_by_name['block_part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_PROPOSAL'].fields_by_name['proposal']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['proposal']._serialized_options = b'\310\336\037\000' + _globals['_PROPOSALPOL'].fields_by_name['proposal_pol']._loaded_options = None + _globals['_PROPOSALPOL'].fields_by_name['proposal_pol']._serialized_options = b'\310\336\037\000' + _globals['_BLOCKPART'].fields_by_name['part']._loaded_options = None + _globals['_BLOCKPART'].fields_by_name['part']._serialized_options = b'\310\336\037\000' + _globals['_VOTESETMAJ23'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTESETMAJ23'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTESETBITS'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTESETBITS'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTESETBITS'].fields_by_name['votes']._loaded_options = None + _globals['_VOTESETBITS'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_NEWROUNDSTEP']._serialized_start=149 + _globals['_NEWROUNDSTEP']._serialized_end=330 + _globals['_NEWVALIDBLOCK']._serialized_start=333 + _globals['_NEWVALIDBLOCK']._serialized_end=580 + _globals['_PROPOSAL']._serialized_start=582 + _globals['_PROPOSAL']._serialized_end=655 + _globals['_PROPOSALPOL']._serialized_start=658 + _globals['_PROPOSALPOL']._serialized_end=815 + _globals['_BLOCKPART']._serialized_start=817 + _globals['_BLOCKPART']._serialized_end=925 + _globals['_VOTE']._serialized_start=927 + _globals['_VOTE']._serialized_end=978 + _globals['_HASVOTE']._serialized_start=981 + _globals['_HASVOTE']._serialized_end=1112 + _globals['_VOTESETMAJ23']._serialized_start=1115 + _globals['_VOTESETMAJ23']._serialized_end=1301 + _globals['_VOTESETBITS']._serialized_start=1304 + _globals['_VOTESETBITS']._serialized_end=1550 + _globals['_HASPROPOSALBLOCKPART']._serialized_start=1552 + _globals['_HASPROPOSALBLOCKPART']._serialized_end=1642 + _globals['_MESSAGE']._serialized_start=1645 + _globals['_MESSAGE']._serialized_end=2386 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/version/types_pb2_grpc.py b/pyinjective/proto/cometbft/consensus/v1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/version/types_pb2_grpc.py rename to pyinjective/proto/cometbft/consensus/v1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/consensus/v1/wal_pb2.py b/pyinjective/proto/cometbft/consensus/v1/wal_pb2.py new file mode 100644 index 00000000..490b168c --- /dev/null +++ b/pyinjective/proto/cometbft/consensus/v1/wal_pb2.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/consensus/v1/wal.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.cometbft.consensus.v1 import types_pb2 as cometbft_dot_consensus_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import events_pb2 as cometbft_dot_types_dot_v1_dot_events__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63ometbft/consensus/v1/wal.proto\x12\x15\x63ometbft.consensus.v1\x1a!cometbft/consensus/v1/types.proto\x1a\x1e\x63ometbft/types/v1/events.proto\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xaf\x01\n\x07MsgInfo\x12\x36\n\x03msg\x18\x01 \x01(\x0b\x32\x1e.cometbft.consensus.v1.MessageB\x04\xc8\xde\x1f\x00R\x03msg\x12#\n\x07peer_id\x18\x02 \x01(\tB\n\xe2\xde\x1f\x06PeerIDR\x06peerId\x12G\n\x0creceive_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x01\x90\xdf\x1f\x01R\x0breceiveTime\"\x90\x01\n\x0bTimeoutInfo\x12?\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x08\x64uration\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x04 \x01(\rR\x04step\"#\n\tEndHeight\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\xbb\x02\n\nWALMessage\x12]\n\x16\x65vent_data_round_state\x18\x01 \x01(\x0b\x32&.cometbft.types.v1.EventDataRoundStateH\x00R\x13\x65ventDataRoundState\x12;\n\x08msg_info\x18\x02 \x01(\x0b\x32\x1e.cometbft.consensus.v1.MsgInfoH\x00R\x07msgInfo\x12G\n\x0ctimeout_info\x18\x03 \x01(\x0b\x32\".cometbft.consensus.v1.TimeoutInfoH\x00R\x0btimeoutInfo\x12\x41\n\nend_height\x18\x04 \x01(\x0b\x32 .cometbft.consensus.v1.EndHeightH\x00R\tendHeightB\x05\n\x03sum\"\x80\x01\n\x0fTimedWALMessage\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x33\n\x03msg\x18\x02 \x01(\x0b\x32!.cometbft.consensus.v1.WALMessageR\x03msgB\xd3\x01\n\x19\x63om.cometbft.consensus.v1B\x08WalProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/consensus/v1\xa2\x02\x03\x43\x43X\xaa\x02\x15\x43ometbft.Consensus.V1\xca\x02\x15\x43ometbft\\Consensus\\V1\xe2\x02!Cometbft\\Consensus\\V1\\GPBMetadata\xea\x02\x17\x43ometbft::Consensus::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.consensus.v1.wal_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.consensus.v1B\010WalProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/consensus/v1\242\002\003CCX\252\002\025Cometbft.Consensus.V1\312\002\025Cometbft\\Consensus\\V1\342\002!Cometbft\\Consensus\\V1\\GPBMetadata\352\002\027Cometbft::Consensus::V1' + _globals['_MSGINFO'].fields_by_name['msg']._loaded_options = None + _globals['_MSGINFO'].fields_by_name['msg']._serialized_options = b'\310\336\037\000' + _globals['_MSGINFO'].fields_by_name['peer_id']._loaded_options = None + _globals['_MSGINFO'].fields_by_name['peer_id']._serialized_options = b'\342\336\037\006PeerID' + _globals['_MSGINFO'].fields_by_name['receive_time']._loaded_options = None + _globals['_MSGINFO'].fields_by_name['receive_time']._serialized_options = b'\310\336\037\001\220\337\037\001' + _globals['_TIMEOUTINFO'].fields_by_name['duration']._loaded_options = None + _globals['_TIMEOUTINFO'].fields_by_name['duration']._serialized_options = b'\310\336\037\000\230\337\037\001' + _globals['_TIMEDWALMESSAGE'].fields_by_name['time']._loaded_options = None + _globals['_TIMEDWALMESSAGE'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_MSGINFO']._serialized_start=213 + _globals['_MSGINFO']._serialized_end=388 + _globals['_TIMEOUTINFO']._serialized_start=391 + _globals['_TIMEOUTINFO']._serialized_end=535 + _globals['_ENDHEIGHT']._serialized_start=537 + _globals['_ENDHEIGHT']._serialized_end=572 + _globals['_WALMESSAGE']._serialized_start=575 + _globals['_WALMESSAGE']._serialized_end=890 + _globals['_TIMEDWALMESSAGE']._serialized_start=893 + _globals['_TIMEDWALMESSAGE']._serialized_end=1021 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/crypto/keys_pb2_grpc.py b/pyinjective/proto/cometbft/consensus/v1/wal_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/crypto/keys_pb2_grpc.py rename to pyinjective/proto/cometbft/consensus/v1/wal_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/consensus/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/consensus/v1beta1/types_pb2.py new file mode 100644 index 00000000..d6a12832 --- /dev/null +++ b/pyinjective/proto/cometbft/consensus/v1beta1/types_pb2.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/consensus/v1beta1/types.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.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.libs.bits.v1 import types_pb2 as cometbft_dot_libs_dot_bits_dot_v1_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cometbft/consensus/v1beta1/types.proto\x12\x1a\x63ometbft.consensus.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a!cometbft/libs/bits/v1/types.proto\"\xb5\x01\n\x0cNewRoundStep\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x03 \x01(\rR\x04step\x12\x37\n\x18seconds_since_start_time\x18\x04 \x01(\x03R\x15secondsSinceStartTime\x12*\n\x11last_commit_round\x18\x05 \x01(\x05R\x0flastCommitRound\"\xfc\x01\n\rNewValidBlock\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12^\n\x15\x62lock_part_set_header\x18\x03 \x01(\x0b\x32%.cometbft.types.v1beta1.PartSetHeaderB\x04\xc8\xde\x1f\x00R\x12\x62lockPartSetHeader\x12@\n\x0b\x62lock_parts\x18\x04 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayR\nblockParts\x12\x1b\n\tis_commit\x18\x05 \x01(\x08R\x08isCommit\"N\n\x08Proposal\x12\x42\n\x08proposal\x18\x01 \x01(\x0b\x32 .cometbft.types.v1beta1.ProposalB\x04\xc8\xde\x1f\x00R\x08proposal\"\x9d\x01\n\x0bProposalPOL\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12,\n\x12proposal_pol_round\x18\x02 \x01(\x05R\x10proposalPolRound\x12H\n\x0cproposal_pol\x18\x03 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayB\x04\xc8\xde\x1f\x00R\x0bproposalPol\"q\n\tBlockPart\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x36\n\x04part\x18\x03 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.PartB\x04\xc8\xde\x1f\x00R\x04part\"8\n\x04Vote\x12\x30\n\x04vote\x18\x01 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.VoteR\x04vote\"\x88\x01\n\x07HasVote\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x39\n\x04type\x18\x03 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12\x14\n\x05index\x18\x04 \x01(\x05R\x05index\"\xc4\x01\n\x0cVoteSetMaj23\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x39\n\x04type\x18\x03 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12K\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\"\x80\x02\n\x0bVoteSetBits\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x39\n\x04type\x18\x03 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12K\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12;\n\x05votes\x18\x05 \x01(\x0b\x32\x1f.cometbft.libs.bits.v1.BitArrayB\x04\xc8\xde\x1f\x00R\x05votes\"\xac\x05\n\x07Message\x12P\n\x0enew_round_step\x18\x01 \x01(\x0b\x32(.cometbft.consensus.v1beta1.NewRoundStepH\x00R\x0cnewRoundStep\x12S\n\x0fnew_valid_block\x18\x02 \x01(\x0b\x32).cometbft.consensus.v1beta1.NewValidBlockH\x00R\rnewValidBlock\x12\x42\n\x08proposal\x18\x03 \x01(\x0b\x32$.cometbft.consensus.v1beta1.ProposalH\x00R\x08proposal\x12L\n\x0cproposal_pol\x18\x04 \x01(\x0b\x32\'.cometbft.consensus.v1beta1.ProposalPOLH\x00R\x0bproposalPol\x12\x46\n\nblock_part\x18\x05 \x01(\x0b\x32%.cometbft.consensus.v1beta1.BlockPartH\x00R\tblockPart\x12\x36\n\x04vote\x18\x06 \x01(\x0b\x32 .cometbft.consensus.v1beta1.VoteH\x00R\x04vote\x12@\n\x08has_vote\x18\x07 \x01(\x0b\x32#.cometbft.consensus.v1beta1.HasVoteH\x00R\x07hasVote\x12P\n\x0evote_set_maj23\x18\x08 \x01(\x0b\x32(.cometbft.consensus.v1beta1.VoteSetMaj23H\x00R\x0cvoteSetMaj23\x12M\n\rvote_set_bits\x18\t \x01(\x0b\x32\'.cometbft.consensus.v1beta1.VoteSetBitsH\x00R\x0bvoteSetBitsB\x05\n\x03sumB\xf3\x01\n\x1e\x63om.cometbft.consensus.v1beta1B\nTypesProtoP\x01Z;github.com/cometbft/cometbft/api/cometbft/consensus/v1beta1\xa2\x02\x03\x43\x43X\xaa\x02\x1a\x43ometbft.Consensus.V1beta1\xca\x02\x1a\x43ometbft\\Consensus\\V1beta1\xe2\x02&Cometbft\\Consensus\\V1beta1\\GPBMetadata\xea\x02\x1c\x43ometbft::Consensus::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.consensus.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.cometbft.consensus.v1beta1B\nTypesProtoP\001Z;github.com/cometbft/cometbft/api/cometbft/consensus/v1beta1\242\002\003CCX\252\002\032Cometbft.Consensus.V1beta1\312\002\032Cometbft\\Consensus\\V1beta1\342\002&Cometbft\\Consensus\\V1beta1\\GPBMetadata\352\002\034Cometbft::Consensus::V1beta1' + _globals['_NEWVALIDBLOCK'].fields_by_name['block_part_set_header']._loaded_options = None + _globals['_NEWVALIDBLOCK'].fields_by_name['block_part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_PROPOSAL'].fields_by_name['proposal']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['proposal']._serialized_options = b'\310\336\037\000' + _globals['_PROPOSALPOL'].fields_by_name['proposal_pol']._loaded_options = None + _globals['_PROPOSALPOL'].fields_by_name['proposal_pol']._serialized_options = b'\310\336\037\000' + _globals['_BLOCKPART'].fields_by_name['part']._loaded_options = None + _globals['_BLOCKPART'].fields_by_name['part']._serialized_options = b'\310\336\037\000' + _globals['_VOTESETMAJ23'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTESETMAJ23'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTESETBITS'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTESETBITS'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTESETBITS'].fields_by_name['votes']._loaded_options = None + _globals['_VOTESETBITS'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' + _globals['_NEWROUNDSTEP']._serialized_start=164 + _globals['_NEWROUNDSTEP']._serialized_end=345 + _globals['_NEWVALIDBLOCK']._serialized_start=348 + _globals['_NEWVALIDBLOCK']._serialized_end=600 + _globals['_PROPOSAL']._serialized_start=602 + _globals['_PROPOSAL']._serialized_end=680 + _globals['_PROPOSALPOL']._serialized_start=683 + _globals['_PROPOSALPOL']._serialized_end=840 + _globals['_BLOCKPART']._serialized_start=842 + _globals['_BLOCKPART']._serialized_end=955 + _globals['_VOTE']._serialized_start=957 + _globals['_VOTE']._serialized_end=1013 + _globals['_HASVOTE']._serialized_start=1016 + _globals['_HASVOTE']._serialized_end=1152 + _globals['_VOTESETMAJ23']._serialized_start=1155 + _globals['_VOTESETMAJ23']._serialized_end=1351 + _globals['_VOTESETBITS']._serialized_start=1354 + _globals['_VOTESETBITS']._serialized_end=1610 + _globals['_MESSAGE']._serialized_start=1613 + _globals['_MESSAGE']._serialized_end=2297 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/crypto/proof_pb2_grpc.py b/pyinjective/proto/cometbft/consensus/v1beta1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/crypto/proof_pb2_grpc.py rename to pyinjective/proto/cometbft/consensus/v1beta1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2.py b/pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2.py new file mode 100644 index 00000000..7a2bb0ec --- /dev/null +++ b/pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/consensus/v1beta1/wal.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.cometbft.consensus.v1beta1 import types_pb2 as cometbft_dot_consensus_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import events_pb2 as cometbft_dot_types_dot_v1beta1_dot_events__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cometbft/consensus/v1beta1/wal.proto\x12\x1a\x63ometbft.consensus.v1beta1\x1a\x14gogoproto/gogo.proto\x1a&cometbft/consensus/v1beta1/types.proto\x1a#cometbft/types/v1beta1/events.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"k\n\x07MsgInfo\x12;\n\x03msg\x18\x01 \x01(\x0b\x32#.cometbft.consensus.v1beta1.MessageB\x04\xc8\xde\x1f\x00R\x03msg\x12#\n\x07peer_id\x18\x02 \x01(\tB\n\xe2\xde\x1f\x06PeerIDR\x06peerId\"\x90\x01\n\x0bTimeoutInfo\x12?\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x08\x64uration\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x04 \x01(\rR\x04step\"#\n\tEndHeight\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\xcf\x02\n\nWALMessage\x12\x62\n\x16\x65vent_data_round_state\x18\x01 \x01(\x0b\x32+.cometbft.types.v1beta1.EventDataRoundStateH\x00R\x13\x65ventDataRoundState\x12@\n\x08msg_info\x18\x02 \x01(\x0b\x32#.cometbft.consensus.v1beta1.MsgInfoH\x00R\x07msgInfo\x12L\n\x0ctimeout_info\x18\x03 \x01(\x0b\x32\'.cometbft.consensus.v1beta1.TimeoutInfoH\x00R\x0btimeoutInfo\x12\x46\n\nend_height\x18\x04 \x01(\x0b\x32%.cometbft.consensus.v1beta1.EndHeightH\x00R\tendHeightB\x05\n\x03sum\"\x85\x01\n\x0fTimedWALMessage\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x38\n\x03msg\x18\x02 \x01(\x0b\x32&.cometbft.consensus.v1beta1.WALMessageR\x03msgB\xf1\x01\n\x1e\x63om.cometbft.consensus.v1beta1B\x08WalProtoP\x01Z;github.com/cometbft/cometbft/api/cometbft/consensus/v1beta1\xa2\x02\x03\x43\x43X\xaa\x02\x1a\x43ometbft.Consensus.V1beta1\xca\x02\x1a\x43ometbft\\Consensus\\V1beta1\xe2\x02&Cometbft\\Consensus\\V1beta1\\GPBMetadata\xea\x02\x1c\x43ometbft::Consensus::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.consensus.v1beta1.wal_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.cometbft.consensus.v1beta1B\010WalProtoP\001Z;github.com/cometbft/cometbft/api/cometbft/consensus/v1beta1\242\002\003CCX\252\002\032Cometbft.Consensus.V1beta1\312\002\032Cometbft\\Consensus\\V1beta1\342\002&Cometbft\\Consensus\\V1beta1\\GPBMetadata\352\002\034Cometbft::Consensus::V1beta1' + _globals['_MSGINFO'].fields_by_name['msg']._loaded_options = None + _globals['_MSGINFO'].fields_by_name['msg']._serialized_options = b'\310\336\037\000' + _globals['_MSGINFO'].fields_by_name['peer_id']._loaded_options = None + _globals['_MSGINFO'].fields_by_name['peer_id']._serialized_options = b'\342\336\037\006PeerID' + _globals['_TIMEOUTINFO'].fields_by_name['duration']._loaded_options = None + _globals['_TIMEOUTINFO'].fields_by_name['duration']._serialized_options = b'\310\336\037\000\230\337\037\001' + _globals['_TIMEDWALMESSAGE'].fields_by_name['time']._loaded_options = None + _globals['_TIMEDWALMESSAGE'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_MSGINFO']._serialized_start=232 + _globals['_MSGINFO']._serialized_end=339 + _globals['_TIMEOUTINFO']._serialized_start=342 + _globals['_TIMEOUTINFO']._serialized_end=486 + _globals['_ENDHEIGHT']._serialized_start=488 + _globals['_ENDHEIGHT']._serialized_end=523 + _globals['_WALMESSAGE']._serialized_start=526 + _globals['_WALMESSAGE']._serialized_end=861 + _globals['_TIMEDWALMESSAGE']._serialized_start=864 + _globals['_TIMEDWALMESSAGE']._serialized_end=997 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/block_pb2_grpc.py b/pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/types/block_pb2_grpc.py rename to pyinjective/proto/cometbft/consensus/v1beta1/wal_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/crypto/v1/keys_pb2.py b/pyinjective/proto/cometbft/crypto/v1/keys_pb2.py new file mode 100644 index 00000000..f70cb9bd --- /dev/null +++ b/pyinjective/proto/cometbft/crypto/v1/keys_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/crypto/v1/keys.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\x1d\x63ometbft/crypto/v1/keys.proto\x12\x12\x63ometbft.crypto.v1\x1a\x14gogoproto/gogo.proto\"v\n\tPublicKey\x12\x1a\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x01 \x01(\x0cH\x00R\x07\x65\x64\x32\x35\x35\x31\x39\x12\x1e\n\tsecp256k1\x18\x02 \x01(\x0cH\x00R\tsecp256k1\x12\x1c\n\x08\x62ls12381\x18\x03 \x01(\x0cH\x00R\x08\x62ls12381:\x08\xe8\xa0\x1f\x01\xe8\xa1\x1f\x01\x42\x05\n\x03sumB\xc2\x01\n\x16\x63om.cometbft.crypto.v1B\tKeysProtoP\x01Z3github.com/cometbft/cometbft/api/cometbft/crypto/v1\xa2\x02\x03\x43\x43X\xaa\x02\x12\x43ometbft.Crypto.V1\xca\x02\x12\x43ometbft\\Crypto\\V1\xe2\x02\x1e\x43ometbft\\Crypto\\V1\\GPBMetadata\xea\x02\x14\x43ometbft::Crypto::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.crypto.v1.keys_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.cometbft.crypto.v1B\tKeysProtoP\001Z3github.com/cometbft/cometbft/api/cometbft/crypto/v1\242\002\003CCX\252\002\022Cometbft.Crypto.V1\312\002\022Cometbft\\Crypto\\V1\342\002\036Cometbft\\Crypto\\V1\\GPBMetadata\352\002\024Cometbft::Crypto::V1' + _globals['_PUBLICKEY']._loaded_options = None + _globals['_PUBLICKEY']._serialized_options = b'\350\240\037\001\350\241\037\001' + _globals['_PUBLICKEY']._serialized_start=75 + _globals['_PUBLICKEY']._serialized_end=193 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/evidence_pb2_grpc.py b/pyinjective/proto/cometbft/crypto/v1/keys_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/types/evidence_pb2_grpc.py rename to pyinjective/proto/cometbft/crypto/v1/keys_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/crypto/v1/proof_pb2.py b/pyinjective/proto/cometbft/crypto/v1/proof_pb2.py new file mode 100644 index 00000000..ea100083 --- /dev/null +++ b/pyinjective/proto/cometbft/crypto/v1/proof_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/crypto/v1/proof.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\x1e\x63ometbft/crypto/v1/proof.proto\x12\x12\x63ometbft.crypto.v1\x1a\x14gogoproto/gogo.proto\"f\n\x05Proof\x12\x14\n\x05total\x18\x01 \x01(\x03R\x05total\x12\x14\n\x05index\x18\x02 \x01(\x03R\x05index\x12\x1b\n\tleaf_hash\x18\x03 \x01(\x0cR\x08leafHash\x12\x14\n\x05\x61unts\x18\x04 \x03(\x0cR\x05\x61unts\"L\n\x07ValueOp\x12\x10\n\x03key\x18\x01 \x01(\x0cR\x03key\x12/\n\x05proof\x18\x02 \x01(\x0b\x32\x19.cometbft.crypto.v1.ProofR\x05proof\"J\n\x08\x44ominoOp\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05input\x18\x02 \x01(\tR\x05input\x12\x16\n\x06output\x18\x03 \x01(\tR\x06output\"C\n\x07ProofOp\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\x0cR\x03key\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\"?\n\x08ProofOps\x12\x33\n\x03ops\x18\x01 \x03(\x0b\x32\x1b.cometbft.crypto.v1.ProofOpB\x04\xc8\xde\x1f\x00R\x03opsB\xc3\x01\n\x16\x63om.cometbft.crypto.v1B\nProofProtoP\x01Z3github.com/cometbft/cometbft/api/cometbft/crypto/v1\xa2\x02\x03\x43\x43X\xaa\x02\x12\x43ometbft.Crypto.V1\xca\x02\x12\x43ometbft\\Crypto\\V1\xe2\x02\x1e\x43ometbft\\Crypto\\V1\\GPBMetadata\xea\x02\x14\x43ometbft::Crypto::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.crypto.v1.proof_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.cometbft.crypto.v1B\nProofProtoP\001Z3github.com/cometbft/cometbft/api/cometbft/crypto/v1\242\002\003CCX\252\002\022Cometbft.Crypto.V1\312\002\022Cometbft\\Crypto\\V1\342\002\036Cometbft\\Crypto\\V1\\GPBMetadata\352\002\024Cometbft::Crypto::V1' + _globals['_PROOFOPS'].fields_by_name['ops']._loaded_options = None + _globals['_PROOFOPS'].fields_by_name['ops']._serialized_options = b'\310\336\037\000' + _globals['_PROOF']._serialized_start=76 + _globals['_PROOF']._serialized_end=178 + _globals['_VALUEOP']._serialized_start=180 + _globals['_VALUEOP']._serialized_end=256 + _globals['_DOMINOOP']._serialized_start=258 + _globals['_DOMINOOP']._serialized_end=332 + _globals['_PROOFOP']._serialized_start=334 + _globals['_PROOFOP']._serialized_end=401 + _globals['_PROOFOPS']._serialized_start=403 + _globals['_PROOFOPS']._serialized_end=466 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/params_pb2_grpc.py b/pyinjective/proto/cometbft/crypto/v1/proof_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/types/params_pb2_grpc.py rename to pyinjective/proto/cometbft/crypto/v1/proof_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/libs/bits/v1/types_pb2.py b/pyinjective/proto/cometbft/libs/bits/v1/types_pb2.py new file mode 100644 index 00000000..9c32bcd5 --- /dev/null +++ b/pyinjective/proto/cometbft/libs/bits/v1/types_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/libs/bits/v1/types.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/libs/bits/v1/types.proto\x12\x15\x63ometbft.libs.bits.v1\"4\n\x08\x42itArray\x12\x12\n\x04\x62its\x18\x01 \x01(\x03R\x04\x62its\x12\x14\n\x05\x65lems\x18\x02 \x03(\x04R\x05\x65lemsB\xd6\x01\n\x19\x63om.cometbft.libs.bits.v1B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/libs/bits/v1\xa2\x02\x03\x43LB\xaa\x02\x15\x43ometbft.Libs.Bits.V1\xca\x02\x15\x43ometbft\\Libs\\Bits\\V1\xe2\x02!Cometbft\\Libs\\Bits\\V1\\GPBMetadata\xea\x02\x18\x43ometbft::Libs::Bits::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.libs.bits.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.libs.bits.v1B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/libs/bits/v1\242\002\003CLB\252\002\025Cometbft.Libs.Bits.V1\312\002\025Cometbft\\Libs\\Bits\\V1\342\002!Cometbft\\Libs\\Bits\\V1\\GPBMetadata\352\002\030Cometbft::Libs::Bits::V1' + _globals['_BITARRAY']._serialized_start=60 + _globals['_BITARRAY']._serialized_end=112 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/validator_pb2_grpc.py b/pyinjective/proto/cometbft/libs/bits/v1/types_pb2_grpc.py similarity index 100% rename from pyinjective/proto/tendermint/types/validator_pb2_grpc.py rename to pyinjective/proto/cometbft/libs/bits/v1/types_pb2_grpc.py diff --git a/pyinjective/proto/cometbft/mempool/v1/types_pb2.py b/pyinjective/proto/cometbft/mempool/v1/types_pb2.py new file mode 100644 index 00000000..a3bd193e --- /dev/null +++ b/pyinjective/proto/cometbft/mempool/v1/types_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/mempool/v1/types.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63ometbft/mempool/v1/types.proto\x12\x13\x63ometbft.mempool.v1\"\x17\n\x03Txs\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\">\n\x07Message\x12,\n\x03txs\x18\x01 \x01(\x0b\x32\x18.cometbft.mempool.v1.TxsH\x00R\x03txsB\x05\n\x03sumB\xc9\x01\n\x17\x63om.cometbft.mempool.v1B\nTypesProtoP\x01Z4github.com/cometbft/cometbft/api/cometbft/mempool/v1\xa2\x02\x03\x43MX\xaa\x02\x13\x43ometbft.Mempool.V1\xca\x02\x13\x43ometbft\\Mempool\\V1\xe2\x02\x1f\x43ometbft\\Mempool\\V1\\GPBMetadata\xea\x02\x15\x43ometbft::Mempool::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.mempool.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.cometbft.mempool.v1B\nTypesProtoP\001Z4github.com/cometbft/cometbft/api/cometbft/mempool/v1\242\002\003CMX\252\002\023Cometbft.Mempool.V1\312\002\023Cometbft\\Mempool\\V1\342\002\037Cometbft\\Mempool\\V1\\GPBMetadata\352\002\025Cometbft::Mempool::V1' + _globals['_TXS']._serialized_start=56 + _globals['_TXS']._serialized_end=79 + _globals['_MESSAGE']._serialized_start=81 + _globals['_MESSAGE']._serialized_end=143 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/mempool/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/mempool/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/mempool/v1/types_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/cometbft/mempool/v2/types_pb2.py b/pyinjective/proto/cometbft/mempool/v2/types_pb2.py new file mode 100644 index 00000000..b85c2eef --- /dev/null +++ b/pyinjective/proto/cometbft/mempool/v2/types_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/mempool/v2/types.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63ometbft/mempool/v2/types.proto\x12\x13\x63ometbft.mempool.v2\"\x17\n\x03Txs\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\x1f\n\x06HaveTx\x12\x15\n\x06tx_key\x18\x01 \x01(\x0cR\x05txKey\"\x0c\n\nResetRoute\"\xba\x01\n\x07Message\x12,\n\x03txs\x18\x01 \x01(\x0b\x32\x18.cometbft.mempool.v2.TxsH\x00R\x03txs\x12\x36\n\x07have_tx\x18\x02 \x01(\x0b\x32\x1b.cometbft.mempool.v2.HaveTxH\x00R\x06haveTx\x12\x42\n\x0breset_route\x18\x03 \x01(\x0b\x32\x1f.cometbft.mempool.v2.ResetRouteH\x00R\nresetRouteB\x05\n\x03sumB\xc9\x01\n\x17\x63om.cometbft.mempool.v2B\nTypesProtoP\x01Z4github.com/cometbft/cometbft/api/cometbft/mempool/v2\xa2\x02\x03\x43MX\xaa\x02\x13\x43ometbft.Mempool.V2\xca\x02\x13\x43ometbft\\Mempool\\V2\xe2\x02\x1f\x43ometbft\\Mempool\\V2\\GPBMetadata\xea\x02\x15\x43ometbft::Mempool::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.mempool.v2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.cometbft.mempool.v2B\nTypesProtoP\001Z4github.com/cometbft/cometbft/api/cometbft/mempool/v2\242\002\003CMX\252\002\023Cometbft.Mempool.V2\312\002\023Cometbft\\Mempool\\V2\342\002\037Cometbft\\Mempool\\V2\\GPBMetadata\352\002\025Cometbft::Mempool::V2' + _globals['_TXS']._serialized_start=56 + _globals['_TXS']._serialized_end=79 + _globals['_HAVETX']._serialized_start=81 + _globals['_HAVETX']._serialized_end=112 + _globals['_RESETROUTE']._serialized_start=114 + _globals['_RESETROUTE']._serialized_end=126 + _globals['_MESSAGE']._serialized_start=129 + _globals['_MESSAGE']._serialized_end=315 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/mempool/v2/types_pb2_grpc.py b/pyinjective/proto/cometbft/mempool/v2/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/mempool/v2/types_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/cometbft/p2p/v1/conn_pb2.py b/pyinjective/proto/cometbft/p2p/v1/conn_pb2.py new file mode 100644 index 00000000..19a735ad --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/conn_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/p2p/v1/conn.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63ometbft/p2p/v1/conn.proto\x12\x0f\x63ometbft.p2p.v1\x1a\x14gogoproto/gogo.proto\x1a\x1d\x63ometbft/crypto/v1/keys.proto\"\x0c\n\nPacketPing\"\x0c\n\nPacketPong\"h\n\tPacketMsg\x12,\n\nchannel_id\x18\x01 \x01(\x05\x42\r\xe2\xde\x1f\tChannelIDR\tchannelId\x12\x19\n\x03\x65of\x18\x02 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x45OFR\x03\x65of\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\"\xcc\x01\n\x06Packet\x12>\n\x0bpacket_ping\x18\x01 \x01(\x0b\x32\x1b.cometbft.p2p.v1.PacketPingH\x00R\npacketPing\x12>\n\x0bpacket_pong\x18\x02 \x01(\x0b\x32\x1b.cometbft.p2p.v1.PacketPongH\x00R\npacketPong\x12;\n\npacket_msg\x18\x03 \x01(\x0b\x32\x1a.cometbft.p2p.v1.PacketMsgH\x00R\tpacketMsgB\x05\n\x03sum\"`\n\x0e\x41uthSigMessage\x12<\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12\x10\n\x03sig\x18\x02 \x01(\x0cR\x03sigB\xb0\x01\n\x13\x63om.cometbft.p2p.v1B\tConnProtoP\x01Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\xa2\x02\x03\x43PX\xaa\x02\x0f\x43ometbft.P2p.V1\xca\x02\x0f\x43ometbft\\P2p\\V1\xe2\x02\x1b\x43ometbft\\P2p\\V1\\GPBMetadata\xea\x02\x11\x43ometbft::P2p::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.p2p.v1.conn_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\023com.cometbft.p2p.v1B\tConnProtoP\001Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\242\002\003CPX\252\002\017Cometbft.P2p.V1\312\002\017Cometbft\\P2p\\V1\342\002\033Cometbft\\P2p\\V1\\GPBMetadata\352\002\021Cometbft::P2p::V1' + _globals['_PACKETMSG'].fields_by_name['channel_id']._loaded_options = None + _globals['_PACKETMSG'].fields_by_name['channel_id']._serialized_options = b'\342\336\037\tChannelID' + _globals['_PACKETMSG'].fields_by_name['eof']._loaded_options = None + _globals['_PACKETMSG'].fields_by_name['eof']._serialized_options = b'\342\336\037\003EOF' + _globals['_AUTHSIGMESSAGE'].fields_by_name['pub_key']._loaded_options = None + _globals['_AUTHSIGMESSAGE'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' + _globals['_PACKETPING']._serialized_start=100 + _globals['_PACKETPING']._serialized_end=112 + _globals['_PACKETPONG']._serialized_start=114 + _globals['_PACKETPONG']._serialized_end=126 + _globals['_PACKETMSG']._serialized_start=128 + _globals['_PACKETMSG']._serialized_end=232 + _globals['_PACKET']._serialized_start=235 + _globals['_PACKET']._serialized_end=439 + _globals['_AUTHSIGMESSAGE']._serialized_start=441 + _globals['_AUTHSIGMESSAGE']._serialized_end=537 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/p2p/v1/conn_pb2_grpc.py b/pyinjective/proto/cometbft/p2p/v1/conn_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/conn_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/cometbft/p2p/v1/pex_pb2.py b/pyinjective/proto/cometbft/p2p/v1/pex_pb2.py new file mode 100644 index 00000000..0414bace --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/pex_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/p2p/v1/pex.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.cometbft.p2p.v1 import types_pb2 as cometbft_dot_p2p_dot_v1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x63ometbft/p2p/v1/pex.proto\x12\x0f\x63ometbft.p2p.v1\x1a\x1b\x63ometbft/p2p/v1/types.proto\x1a\x14gogoproto/gogo.proto\"\x0c\n\nPexRequest\"C\n\x08PexAddrs\x12\x37\n\x05\x61\x64\x64rs\x18\x01 \x03(\x0b\x32\x1b.cometbft.p2p.v1.NetAddressB\x04\xc8\xde\x1f\x00R\x05\x61\x64\x64rs\"\x8a\x01\n\x07Message\x12>\n\x0bpex_request\x18\x01 \x01(\x0b\x32\x1b.cometbft.p2p.v1.PexRequestH\x00R\npexRequest\x12\x38\n\tpex_addrs\x18\x02 \x01(\x0b\x32\x19.cometbft.p2p.v1.PexAddrsH\x00R\x08pexAddrsB\x05\n\x03sumB\xaf\x01\n\x13\x63om.cometbft.p2p.v1B\x08PexProtoP\x01Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\xa2\x02\x03\x43PX\xaa\x02\x0f\x43ometbft.P2p.V1\xca\x02\x0f\x43ometbft\\P2p\\V1\xe2\x02\x1b\x43ometbft\\P2p\\V1\\GPBMetadata\xea\x02\x11\x43ometbft::P2p::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.p2p.v1.pex_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\023com.cometbft.p2p.v1B\010PexProtoP\001Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\242\002\003CPX\252\002\017Cometbft.P2p.V1\312\002\017Cometbft\\P2p\\V1\342\002\033Cometbft\\P2p\\V1\\GPBMetadata\352\002\021Cometbft::P2p::V1' + _globals['_PEXADDRS'].fields_by_name['addrs']._loaded_options = None + _globals['_PEXADDRS'].fields_by_name['addrs']._serialized_options = b'\310\336\037\000' + _globals['_PEXREQUEST']._serialized_start=97 + _globals['_PEXREQUEST']._serialized_end=109 + _globals['_PEXADDRS']._serialized_start=111 + _globals['_PEXADDRS']._serialized_end=178 + _globals['_MESSAGE']._serialized_start=181 + _globals['_MESSAGE']._serialized_end=319 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/p2p/v1/pex_pb2_grpc.py b/pyinjective/proto/cometbft/p2p/v1/pex_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/pex_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/cometbft/p2p/v1/types_pb2.py b/pyinjective/proto/cometbft/p2p/v1/types_pb2.py new file mode 100644 index 00000000..0eb8e8f8 --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/types_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/p2p/v1/types.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\x1b\x63ometbft/p2p/v1/types.proto\x12\x0f\x63ometbft.p2p.v1\x1a\x14gogoproto/gogo.proto\"P\n\nNetAddress\x12\x16\n\x02id\x18\x01 \x01(\tB\x06\xe2\xde\x1f\x02IDR\x02id\x12\x16\n\x02ip\x18\x02 \x01(\tB\x06\xe2\xde\x1f\x02IPR\x02ip\x12\x12\n\x04port\x18\x03 \x01(\rR\x04port\"T\n\x0fProtocolVersion\x12\x19\n\x03p2p\x18\x01 \x01(\x04\x42\x07\xe2\xde\x1f\x03P2PR\x03p2p\x12\x14\n\x05\x62lock\x18\x02 \x01(\x04R\x05\x62lock\x12\x10\n\x03\x61pp\x18\x03 \x01(\x04R\x03\x61pp\"\xed\x02\n\x0f\x44\x65\x66\x61ultNodeInfo\x12Q\n\x10protocol_version\x18\x01 \x01(\x0b\x32 .cometbft.p2p.v1.ProtocolVersionB\x04\xc8\xde\x1f\x00R\x0fprotocolVersion\x12\x39\n\x0f\x64\x65\x66\x61ult_node_id\x18\x02 \x01(\tB\x11\xe2\xde\x1f\rDefaultNodeIDR\rdefaultNodeId\x12\x1f\n\x0blisten_addr\x18\x03 \x01(\tR\nlistenAddr\x12\x18\n\x07network\x18\x04 \x01(\tR\x07network\x12\x18\n\x07version\x18\x05 \x01(\tR\x07version\x12\x1a\n\x08\x63hannels\x18\x06 \x01(\x0cR\x08\x63hannels\x12\x18\n\x07moniker\x18\x07 \x01(\tR\x07moniker\x12\x41\n\x05other\x18\x08 \x01(\x0b\x32%.cometbft.p2p.v1.DefaultNodeInfoOtherB\x04\xc8\xde\x1f\x00R\x05other\"b\n\x14\x44\x65\x66\x61ultNodeInfoOther\x12\x19\n\x08tx_index\x18\x01 \x01(\tR\x07txIndex\x12/\n\x0brpc_address\x18\x02 \x01(\tB\x0e\xe2\xde\x1f\nRPCAddressR\nrpcAddressB\xb1\x01\n\x13\x63om.cometbft.p2p.v1B\nTypesProtoP\x01Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\xa2\x02\x03\x43PX\xaa\x02\x0f\x43ometbft.P2p.V1\xca\x02\x0f\x43ometbft\\P2p\\V1\xe2\x02\x1b\x43ometbft\\P2p\\V1\\GPBMetadata\xea\x02\x11\x43ometbft::P2p::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.p2p.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\023com.cometbft.p2p.v1B\nTypesProtoP\001Z0github.com/cometbft/cometbft/api/cometbft/p2p/v1\242\002\003CPX\252\002\017Cometbft.P2p.V1\312\002\017Cometbft\\P2p\\V1\342\002\033Cometbft\\P2p\\V1\\GPBMetadata\352\002\021Cometbft::P2p::V1' + _globals['_NETADDRESS'].fields_by_name['id']._loaded_options = None + _globals['_NETADDRESS'].fields_by_name['id']._serialized_options = b'\342\336\037\002ID' + _globals['_NETADDRESS'].fields_by_name['ip']._loaded_options = None + _globals['_NETADDRESS'].fields_by_name['ip']._serialized_options = b'\342\336\037\002IP' + _globals['_PROTOCOLVERSION'].fields_by_name['p2p']._loaded_options = None + _globals['_PROTOCOLVERSION'].fields_by_name['p2p']._serialized_options = b'\342\336\037\003P2P' + _globals['_DEFAULTNODEINFO'].fields_by_name['protocol_version']._loaded_options = None + _globals['_DEFAULTNODEINFO'].fields_by_name['protocol_version']._serialized_options = b'\310\336\037\000' + _globals['_DEFAULTNODEINFO'].fields_by_name['default_node_id']._loaded_options = None + _globals['_DEFAULTNODEINFO'].fields_by_name['default_node_id']._serialized_options = b'\342\336\037\rDefaultNodeID' + _globals['_DEFAULTNODEINFO'].fields_by_name['other']._loaded_options = None + _globals['_DEFAULTNODEINFO'].fields_by_name['other']._serialized_options = b'\310\336\037\000' + _globals['_DEFAULTNODEINFOOTHER'].fields_by_name['rpc_address']._loaded_options = None + _globals['_DEFAULTNODEINFOOTHER'].fields_by_name['rpc_address']._serialized_options = b'\342\336\037\nRPCAddress' + _globals['_NETADDRESS']._serialized_start=70 + _globals['_NETADDRESS']._serialized_end=150 + _globals['_PROTOCOLVERSION']._serialized_start=152 + _globals['_PROTOCOLVERSION']._serialized_end=236 + _globals['_DEFAULTNODEINFO']._serialized_start=239 + _globals['_DEFAULTNODEINFO']._serialized_end=604 + _globals['_DEFAULTNODEINFOOTHER']._serialized_start=606 + _globals['_DEFAULTNODEINFOOTHER']._serialized_end=704 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/p2p/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/p2p/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/p2p/v1/types_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/cometbft/privval/v1/types_pb2.py b/pyinjective/proto/cometbft/privval/v1/types_pb2.py new file mode 100644 index 00000000..168105d5 --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1/types_pb2.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/privval/v1/types.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.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63ometbft/privval/v1/types.proto\x12\x13\x63ometbft.privval.v1\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x14gogoproto/gogo.proto\"I\n\x11RemoteSignerError\x12\x12\n\x04\x63ode\x18\x01 \x01(\x05R\x04\x63ode\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"*\n\rPubKeyRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\tR\x07\x63hainId\"\x9a\x01\n\x0ePubKeyResponse\x12<\n\x05\x65rror\x18\x02 \x01(\x0b\x32&.cometbft.privval.v1.RemoteSignerErrorR\x05\x65rror\x12\"\n\rpub_key_bytes\x18\x03 \x01(\x0cR\x0bpubKeyBytes\x12 \n\x0cpub_key_type\x18\x04 \x01(\tR\npubKeyTypeJ\x04\x08\x01\x10\x02\"\x8f\x01\n\x0fSignVoteRequest\x12+\n\x04vote\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteR\x04vote\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12\x34\n\x16skip_extension_signing\x18\x03 \x01(\x08R\x14skipExtensionSigning\"\x85\x01\n\x12SignedVoteResponse\x12\x31\n\x04vote\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteB\x04\xc8\xde\x1f\x00R\x04vote\x12<\n\x05\x65rror\x18\x02 \x01(\x0b\x32&.cometbft.privval.v1.RemoteSignerErrorR\x05\x65rror\"i\n\x13SignProposalRequest\x12\x37\n\x08proposal\x18\x01 \x01(\x0b\x32\x1b.cometbft.types.v1.ProposalR\x08proposal\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\"\x95\x01\n\x16SignedProposalResponse\x12=\n\x08proposal\x18\x01 \x01(\x0b\x32\x1b.cometbft.types.v1.ProposalB\x04\xc8\xde\x1f\x00R\x08proposal\x12<\n\x05\x65rror\x18\x02 \x01(\x0b\x32&.cometbft.privval.v1.RemoteSignerErrorR\x05\x65rror\"(\n\x10SignBytesRequest\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\"o\n\x11SignBytesResponse\x12\x1c\n\tsignature\x18\x01 \x01(\x0cR\tsignature\x12<\n\x05\x65rror\x18\x02 \x01(\x0b\x32&.cometbft.privval.v1.RemoteSignerErrorR\x05\x65rror\"\r\n\x0bPingRequest\"\x0e\n\x0cPingResponse\"\xeb\x06\n\x07Message\x12L\n\x0fpub_key_request\x18\x01 \x01(\x0b\x32\".cometbft.privval.v1.PubKeyRequestH\x00R\rpubKeyRequest\x12O\n\x10pub_key_response\x18\x02 \x01(\x0b\x32#.cometbft.privval.v1.PubKeyResponseH\x00R\x0epubKeyResponse\x12R\n\x11sign_vote_request\x18\x03 \x01(\x0b\x32$.cometbft.privval.v1.SignVoteRequestH\x00R\x0fsignVoteRequest\x12[\n\x14signed_vote_response\x18\x04 \x01(\x0b\x32\'.cometbft.privval.v1.SignedVoteResponseH\x00R\x12signedVoteResponse\x12^\n\x15sign_proposal_request\x18\x05 \x01(\x0b\x32(.cometbft.privval.v1.SignProposalRequestH\x00R\x13signProposalRequest\x12g\n\x18signed_proposal_response\x18\x06 \x01(\x0b\x32+.cometbft.privval.v1.SignedProposalResponseH\x00R\x16signedProposalResponse\x12\x45\n\x0cping_request\x18\x07 \x01(\x0b\x32 .cometbft.privval.v1.PingRequestH\x00R\x0bpingRequest\x12H\n\rping_response\x18\x08 \x01(\x0b\x32!.cometbft.privval.v1.PingResponseH\x00R\x0cpingResponse\x12U\n\x12sign_bytes_request\x18\t \x01(\x0b\x32%.cometbft.privval.v1.SignBytesRequestH\x00R\x10signBytesRequest\x12X\n\x13sign_bytes_response\x18\n \x01(\x0b\x32&.cometbft.privval.v1.SignBytesResponseH\x00R\x11signBytesResponseB\x05\n\x03sumB\xc9\x01\n\x17\x63om.cometbft.privval.v1B\nTypesProtoP\x01Z4github.com/cometbft/cometbft/api/cometbft/privval/v1\xa2\x02\x03\x43PX\xaa\x02\x13\x43ometbft.Privval.V1\xca\x02\x13\x43ometbft\\Privval\\V1\xe2\x02\x1f\x43ometbft\\Privval\\V1\\GPBMetadata\xea\x02\x15\x43ometbft::Privval::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.privval.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.cometbft.privval.v1B\nTypesProtoP\001Z4github.com/cometbft/cometbft/api/cometbft/privval/v1\242\002\003CPX\252\002\023Cometbft.Privval.V1\312\002\023Cometbft\\Privval\\V1\342\002\037Cometbft\\Privval\\V1\\GPBMetadata\352\002\025Cometbft::Privval::V1' + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._loaded_options = None + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._loaded_options = None + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._serialized_options = b'\310\336\037\000' + _globals['_REMOTESIGNERERROR']._serialized_start=109 + _globals['_REMOTESIGNERERROR']._serialized_end=182 + _globals['_PUBKEYREQUEST']._serialized_start=184 + _globals['_PUBKEYREQUEST']._serialized_end=226 + _globals['_PUBKEYRESPONSE']._serialized_start=229 + _globals['_PUBKEYRESPONSE']._serialized_end=383 + _globals['_SIGNVOTEREQUEST']._serialized_start=386 + _globals['_SIGNVOTEREQUEST']._serialized_end=529 + _globals['_SIGNEDVOTERESPONSE']._serialized_start=532 + _globals['_SIGNEDVOTERESPONSE']._serialized_end=665 + _globals['_SIGNPROPOSALREQUEST']._serialized_start=667 + _globals['_SIGNPROPOSALREQUEST']._serialized_end=772 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_start=775 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_end=924 + _globals['_SIGNBYTESREQUEST']._serialized_start=926 + _globals['_SIGNBYTESREQUEST']._serialized_end=966 + _globals['_SIGNBYTESRESPONSE']._serialized_start=968 + _globals['_SIGNBYTESRESPONSE']._serialized_end=1079 + _globals['_PINGREQUEST']._serialized_start=1081 + _globals['_PINGREQUEST']._serialized_end=1094 + _globals['_PINGRESPONSE']._serialized_start=1096 + _globals['_PINGRESPONSE']._serialized_end=1110 + _globals['_MESSAGE']._serialized_start=1113 + _globals['_MESSAGE']._serialized_end=1988 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/privval/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/privval/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1/types_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/cometbft/privval/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/privval/v1beta1/types_pb2.py new file mode 100644 index 00000000..23e2a82b --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1beta1/types_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/privval/v1beta1/types.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cometbft/privval/v1beta1/types.proto\x12\x18\x63ometbft.privval.v1beta1\x1a\x1d\x63ometbft/crypto/v1/keys.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a\x14gogoproto/gogo.proto\"I\n\x11RemoteSignerError\x12\x12\n\x04\x63ode\x18\x01 \x01(\x05R\x04\x63ode\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"*\n\rPubKeyRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\tR\x07\x63hainId\"\x91\x01\n\x0ePubKeyResponse\x12<\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta1.RemoteSignerErrorR\x05\x65rror\"^\n\x0fSignVoteRequest\x12\x30\n\x04vote\x18\x01 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.VoteR\x04vote\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\"\x8f\x01\n\x12SignedVoteResponse\x12\x36\n\x04vote\x18\x01 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.VoteB\x04\xc8\xde\x1f\x00R\x04vote\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta1.RemoteSignerErrorR\x05\x65rror\"n\n\x13SignProposalRequest\x12<\n\x08proposal\x18\x01 \x01(\x0b\x32 .cometbft.types.v1beta1.ProposalR\x08proposal\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\"\x9f\x01\n\x16SignedProposalResponse\x12\x42\n\x08proposal\x18\x01 \x01(\x0b\x32 .cometbft.types.v1beta1.ProposalB\x04\xc8\xde\x1f\x00R\x08proposal\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta1.RemoteSignerErrorR\x05\x65rror\"\r\n\x0bPingRequest\"\x0e\n\x0cPingResponse\"\xe2\x05\n\x07Message\x12Q\n\x0fpub_key_request\x18\x01 \x01(\x0b\x32\'.cometbft.privval.v1beta1.PubKeyRequestH\x00R\rpubKeyRequest\x12T\n\x10pub_key_response\x18\x02 \x01(\x0b\x32(.cometbft.privval.v1beta1.PubKeyResponseH\x00R\x0epubKeyResponse\x12W\n\x11sign_vote_request\x18\x03 \x01(\x0b\x32).cometbft.privval.v1beta1.SignVoteRequestH\x00R\x0fsignVoteRequest\x12`\n\x14signed_vote_response\x18\x04 \x01(\x0b\x32,.cometbft.privval.v1beta1.SignedVoteResponseH\x00R\x12signedVoteResponse\x12\x63\n\x15sign_proposal_request\x18\x05 \x01(\x0b\x32-.cometbft.privval.v1beta1.SignProposalRequestH\x00R\x13signProposalRequest\x12l\n\x18signed_proposal_response\x18\x06 \x01(\x0b\x32\x30.cometbft.privval.v1beta1.SignedProposalResponseH\x00R\x16signedProposalResponse\x12J\n\x0cping_request\x18\x07 \x01(\x0b\x32%.cometbft.privval.v1beta1.PingRequestH\x00R\x0bpingRequest\x12M\n\rping_response\x18\x08 \x01(\x0b\x32&.cometbft.privval.v1beta1.PingResponseH\x00R\x0cpingResponseB\x05\n\x03sum*\xa8\x01\n\x06\x45rrors\x12\x12\n\x0e\x45RRORS_UNKNOWN\x10\x00\x12\x1e\n\x1a\x45RRORS_UNEXPECTED_RESPONSE\x10\x01\x12\x18\n\x14\x45RRORS_NO_CONNECTION\x10\x02\x12\x1d\n\x19\x45RRORS_CONNECTION_TIMEOUT\x10\x03\x12\x17\n\x13\x45RRORS_READ_TIMEOUT\x10\x04\x12\x18\n\x14\x45RRORS_WRITE_TIMEOUT\x10\x05\x42\xe7\x01\n\x1c\x63om.cometbft.privval.v1beta1B\nTypesProtoP\x01Z9github.com/cometbft/cometbft/api/cometbft/privval/v1beta1\xa2\x02\x03\x43PX\xaa\x02\x18\x43ometbft.Privval.V1beta1\xca\x02\x18\x43ometbft\\Privval\\V1beta1\xe2\x02$Cometbft\\Privval\\V1beta1\\GPBMetadata\xea\x02\x1a\x43ometbft::Privval::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.privval.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.cometbft.privval.v1beta1B\nTypesProtoP\001Z9github.com/cometbft/cometbft/api/cometbft/privval/v1beta1\242\002\003CPX\252\002\030Cometbft.Privval.V1beta1\312\002\030Cometbft\\Privval\\V1beta1\342\002$Cometbft\\Privval\\V1beta1\\GPBMetadata\352\002\032Cometbft::Privval::V1beta1' + _globals['_PUBKEYRESPONSE'].fields_by_name['pub_key']._loaded_options = None + _globals['_PUBKEYRESPONSE'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._loaded_options = None + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._loaded_options = None + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._serialized_options = b'\310\336\037\000' + _globals['_ERRORS']._serialized_start=1711 + _globals['_ERRORS']._serialized_end=1879 + _globals['_REMOTESIGNERERROR']._serialized_start=155 + _globals['_REMOTESIGNERERROR']._serialized_end=228 + _globals['_PUBKEYREQUEST']._serialized_start=230 + _globals['_PUBKEYREQUEST']._serialized_end=272 + _globals['_PUBKEYRESPONSE']._serialized_start=275 + _globals['_PUBKEYRESPONSE']._serialized_end=420 + _globals['_SIGNVOTEREQUEST']._serialized_start=422 + _globals['_SIGNVOTEREQUEST']._serialized_end=516 + _globals['_SIGNEDVOTERESPONSE']._serialized_start=519 + _globals['_SIGNEDVOTERESPONSE']._serialized_end=662 + _globals['_SIGNPROPOSALREQUEST']._serialized_start=664 + _globals['_SIGNPROPOSALREQUEST']._serialized_end=774 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_start=777 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_end=936 + _globals['_PINGREQUEST']._serialized_start=938 + _globals['_PINGREQUEST']._serialized_end=951 + _globals['_PINGRESPONSE']._serialized_start=953 + _globals['_PINGRESPONSE']._serialized_end=967 + _globals['_MESSAGE']._serialized_start=970 + _globals['_MESSAGE']._serialized_end=1708 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/privval/v1beta1/types_pb2_grpc.py b/pyinjective/proto/cometbft/privval/v1beta1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1beta1/types_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/cometbft/privval/v1beta2/types_pb2.py b/pyinjective/proto/cometbft/privval/v1beta2/types_pb2.py new file mode 100644 index 00000000..9ed50f2d --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1beta2/types_pb2.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/privval/v1beta2/types.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cometbft/privval/v1beta2/types.proto\x12\x18\x63ometbft.privval.v1beta2\x1a\x1d\x63ometbft/crypto/v1/keys.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x14gogoproto/gogo.proto\"I\n\x11RemoteSignerError\x12\x12\n\x04\x63ode\x18\x01 \x01(\x05R\x04\x63ode\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"*\n\rPubKeyRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\tR\x07\x63hainId\"\x91\x01\n\x0ePubKeyResponse\x12<\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta2.RemoteSignerErrorR\x05\x65rror\"Y\n\x0fSignVoteRequest\x12+\n\x04vote\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteR\x04vote\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\"\x8a\x01\n\x12SignedVoteResponse\x12\x31\n\x04vote\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteB\x04\xc8\xde\x1f\x00R\x04vote\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta2.RemoteSignerErrorR\x05\x65rror\"i\n\x13SignProposalRequest\x12\x37\n\x08proposal\x18\x01 \x01(\x0b\x32\x1b.cometbft.types.v1.ProposalR\x08proposal\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\"\x9a\x01\n\x16SignedProposalResponse\x12=\n\x08proposal\x18\x01 \x01(\x0b\x32\x1b.cometbft.types.v1.ProposalB\x04\xc8\xde\x1f\x00R\x08proposal\x12\x41\n\x05\x65rror\x18\x02 \x01(\x0b\x32+.cometbft.privval.v1beta2.RemoteSignerErrorR\x05\x65rror\"\r\n\x0bPingRequest\"\x0e\n\x0cPingResponse\"\xe2\x05\n\x07Message\x12Q\n\x0fpub_key_request\x18\x01 \x01(\x0b\x32\'.cometbft.privval.v1beta2.PubKeyRequestH\x00R\rpubKeyRequest\x12T\n\x10pub_key_response\x18\x02 \x01(\x0b\x32(.cometbft.privval.v1beta2.PubKeyResponseH\x00R\x0epubKeyResponse\x12W\n\x11sign_vote_request\x18\x03 \x01(\x0b\x32).cometbft.privval.v1beta2.SignVoteRequestH\x00R\x0fsignVoteRequest\x12`\n\x14signed_vote_response\x18\x04 \x01(\x0b\x32,.cometbft.privval.v1beta2.SignedVoteResponseH\x00R\x12signedVoteResponse\x12\x63\n\x15sign_proposal_request\x18\x05 \x01(\x0b\x32-.cometbft.privval.v1beta2.SignProposalRequestH\x00R\x13signProposalRequest\x12l\n\x18signed_proposal_response\x18\x06 \x01(\x0b\x32\x30.cometbft.privval.v1beta2.SignedProposalResponseH\x00R\x16signedProposalResponse\x12J\n\x0cping_request\x18\x07 \x01(\x0b\x32%.cometbft.privval.v1beta2.PingRequestH\x00R\x0bpingRequest\x12M\n\rping_response\x18\x08 \x01(\x0b\x32&.cometbft.privval.v1beta2.PingResponseH\x00R\x0cpingResponseB\x05\n\x03sum*\xa8\x01\n\x06\x45rrors\x12\x12\n\x0e\x45RRORS_UNKNOWN\x10\x00\x12\x1e\n\x1a\x45RRORS_UNEXPECTED_RESPONSE\x10\x01\x12\x18\n\x14\x45RRORS_NO_CONNECTION\x10\x02\x12\x1d\n\x19\x45RRORS_CONNECTION_TIMEOUT\x10\x03\x12\x17\n\x13\x45RRORS_READ_TIMEOUT\x10\x04\x12\x18\n\x14\x45RRORS_WRITE_TIMEOUT\x10\x05\x42\xe7\x01\n\x1c\x63om.cometbft.privval.v1beta2B\nTypesProtoP\x01Z9github.com/cometbft/cometbft/api/cometbft/privval/v1beta2\xa2\x02\x03\x43PX\xaa\x02\x18\x43ometbft.Privval.V1beta2\xca\x02\x18\x43ometbft\\Privval\\V1beta2\xe2\x02$Cometbft\\Privval\\V1beta2\\GPBMetadata\xea\x02\x1a\x43ometbft::Privval::V1beta2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.privval.v1beta2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.cometbft.privval.v1beta2B\nTypesProtoP\001Z9github.com/cometbft/cometbft/api/cometbft/privval/v1beta2\242\002\003CPX\252\002\030Cometbft.Privval.V1beta2\312\002\030Cometbft\\Privval\\V1beta2\342\002$Cometbft\\Privval\\V1beta2\\GPBMetadata\352\002\032Cometbft::Privval::V1beta2' + _globals['_PUBKEYRESPONSE'].fields_by_name['pub_key']._loaded_options = None + _globals['_PUBKEYRESPONSE'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._loaded_options = None + _globals['_SIGNEDVOTERESPONSE'].fields_by_name['vote']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._loaded_options = None + _globals['_SIGNEDPROPOSALRESPONSE'].fields_by_name['proposal']._serialized_options = b'\310\336\037\000' + _globals['_ERRORS']._serialized_start=1686 + _globals['_ERRORS']._serialized_end=1854 + _globals['_REMOTESIGNERERROR']._serialized_start=150 + _globals['_REMOTESIGNERERROR']._serialized_end=223 + _globals['_PUBKEYREQUEST']._serialized_start=225 + _globals['_PUBKEYREQUEST']._serialized_end=267 + _globals['_PUBKEYRESPONSE']._serialized_start=270 + _globals['_PUBKEYRESPONSE']._serialized_end=415 + _globals['_SIGNVOTEREQUEST']._serialized_start=417 + _globals['_SIGNVOTEREQUEST']._serialized_end=506 + _globals['_SIGNEDVOTERESPONSE']._serialized_start=509 + _globals['_SIGNEDVOTERESPONSE']._serialized_end=647 + _globals['_SIGNPROPOSALREQUEST']._serialized_start=649 + _globals['_SIGNPROPOSALREQUEST']._serialized_end=754 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_start=757 + _globals['_SIGNEDPROPOSALRESPONSE']._serialized_end=911 + _globals['_PINGREQUEST']._serialized_start=913 + _globals['_PINGREQUEST']._serialized_end=926 + _globals['_PINGRESPONSE']._serialized_start=928 + _globals['_PINGRESPONSE']._serialized_end=942 + _globals['_MESSAGE']._serialized_start=945 + _globals['_MESSAGE']._serialized_end=1683 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/privval/v1beta2/types_pb2_grpc.py b/pyinjective/proto/cometbft/privval/v1beta2/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/privval/v1beta2/types_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/cometbft/rpc/grpc/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2.py new file mode 100644 index 00000000..b8776321 --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/rpc/grpc/v1beta1/types.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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cometbft/rpc/grpc/v1beta1/types.proto\x12\x19\x63ometbft.rpc.grpc.v1beta1\x1a!cometbft/abci/v1beta1/types.proto\"\r\n\x0bRequestPing\"$\n\x12RequestBroadcastTx\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\"\x0e\n\x0cResponsePing\"\xa1\x01\n\x13ResponseBroadcastTx\x12\x41\n\x08\x63heck_tx\x18\x01 \x01(\x0b\x32&.cometbft.abci.v1beta1.ResponseCheckTxR\x07\x63heckTx\x12G\n\ndeliver_tx\x18\x02 \x01(\x0b\x32(.cometbft.abci.v1beta1.ResponseDeliverTxR\tdeliverTx2\xd5\x01\n\x0c\x42roadcastAPI\x12W\n\x04Ping\x12&.cometbft.rpc.grpc.v1beta1.RequestPing\x1a\'.cometbft.rpc.grpc.v1beta1.ResponsePing\x12l\n\x0b\x42roadcastTx\x12-.cometbft.rpc.grpc.v1beta1.RequestBroadcastTx\x1a..cometbft.rpc.grpc.v1beta1.ResponseBroadcastTxB\xee\x01\n\x1d\x63om.cometbft.rpc.grpc.v1beta1B\nTypesProtoP\x01Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta1\xa2\x02\x03\x43RG\xaa\x02\x19\x43ometbft.Rpc.Grpc.V1beta1\xca\x02\x19\x43ometbft\\Rpc\\Grpc\\V1beta1\xe2\x02%Cometbft\\Rpc\\Grpc\\V1beta1\\GPBMetadata\xea\x02\x1c\x43ometbft::Rpc::Grpc::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.rpc.grpc.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\035com.cometbft.rpc.grpc.v1beta1B\nTypesProtoP\001Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta1\242\002\003CRG\252\002\031Cometbft.Rpc.Grpc.V1beta1\312\002\031Cometbft\\Rpc\\Grpc\\V1beta1\342\002%Cometbft\\Rpc\\Grpc\\V1beta1\\GPBMetadata\352\002\034Cometbft::Rpc::Grpc::V1beta1' + _globals['_REQUESTPING']._serialized_start=103 + _globals['_REQUESTPING']._serialized_end=116 + _globals['_REQUESTBROADCASTTX']._serialized_start=118 + _globals['_REQUESTBROADCASTTX']._serialized_end=154 + _globals['_RESPONSEPING']._serialized_start=156 + _globals['_RESPONSEPING']._serialized_end=170 + _globals['_RESPONSEBROADCASTTX']._serialized_start=173 + _globals['_RESPONSEBROADCASTTX']._serialized_end=334 + _globals['_BROADCASTAPI']._serialized_start=337 + _globals['_BROADCASTAPI']._serialized_end=550 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2_grpc.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2_grpc.py new file mode 100644 index 00000000..373719ab --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta1/types_pb2_grpc.py @@ -0,0 +1,125 @@ +# 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.cometbft.rpc.grpc.v1beta1 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2 + + +class BroadcastAPIStub(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Ping = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta1.BroadcastAPI/Ping', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + _registered_method=True) + self.BroadcastTx = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta1.BroadcastAPI/BroadcastTx', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponseBroadcastTx.FromString, + _registered_method=True) + + +class BroadcastAPIServicer(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + def Ping(self, request, context): + """Ping the connection. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BroadcastTx(self, request, context): + """BroadcastTx broadcasts the transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BroadcastAPIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Ping': grpc.unary_unary_rpc_method_handler( + servicer.Ping, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.SerializeToString, + ), + 'BroadcastTx': grpc.unary_unary_rpc_method_handler( + servicer.BroadcastTx, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponseBroadcastTx.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.rpc.grpc.v1beta1.BroadcastAPI', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.rpc.grpc.v1beta1.BroadcastAPI', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class BroadcastAPI(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + @staticmethod + def Ping(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, + '/cometbft.rpc.grpc.v1beta1.BroadcastAPI/Ping', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BroadcastTx(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, + '/cometbft.rpc.grpc.v1beta1.BroadcastAPI/BroadcastTx', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponseBroadcastTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2.py new file mode 100644 index 00000000..6961c0b9 --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/rpc/grpc/v1beta2/types.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.cometbft.rpc.grpc.v1beta1 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cometbft/rpc/grpc/v1beta2/types.proto\x12\x19\x63ometbft.rpc.grpc.v1beta2\x1a%cometbft/rpc/grpc/v1beta1/types.proto\x1a!cometbft/abci/v1beta2/types.proto\"\xa1\x01\n\x13ResponseBroadcastTx\x12\x41\n\x08\x63heck_tx\x18\x01 \x01(\x0b\x32&.cometbft.abci.v1beta2.ResponseCheckTxR\x07\x63heckTx\x12G\n\ndeliver_tx\x18\x02 \x01(\x0b\x32(.cometbft.abci.v1beta2.ResponseDeliverTxR\tdeliverTx2\xd5\x01\n\x0c\x42roadcastAPI\x12W\n\x04Ping\x12&.cometbft.rpc.grpc.v1beta1.RequestPing\x1a\'.cometbft.rpc.grpc.v1beta1.ResponsePing\x12l\n\x0b\x42roadcastTx\x12-.cometbft.rpc.grpc.v1beta1.RequestBroadcastTx\x1a..cometbft.rpc.grpc.v1beta2.ResponseBroadcastTxB\xee\x01\n\x1d\x63om.cometbft.rpc.grpc.v1beta2B\nTypesProtoP\x01Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta2\xa2\x02\x03\x43RG\xaa\x02\x19\x43ometbft.Rpc.Grpc.V1beta2\xca\x02\x19\x43ometbft\\Rpc\\Grpc\\V1beta2\xe2\x02%Cometbft\\Rpc\\Grpc\\V1beta2\\GPBMetadata\xea\x02\x1c\x43ometbft::Rpc::Grpc::V1beta2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.rpc.grpc.v1beta2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\035com.cometbft.rpc.grpc.v1beta2B\nTypesProtoP\001Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta2\242\002\003CRG\252\002\031Cometbft.Rpc.Grpc.V1beta2\312\002\031Cometbft\\Rpc\\Grpc\\V1beta2\342\002%Cometbft\\Rpc\\Grpc\\V1beta2\\GPBMetadata\352\002\034Cometbft::Rpc::Grpc::V1beta2' + _globals['_RESPONSEBROADCASTTX']._serialized_start=143 + _globals['_RESPONSEBROADCASTTX']._serialized_end=304 + _globals['_BROADCASTAPI']._serialized_start=307 + _globals['_BROADCASTAPI']._serialized_end=520 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2_grpc.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2_grpc.py new file mode 100644 index 00000000..b2759bb1 --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta2/types_pb2_grpc.py @@ -0,0 +1,126 @@ +# 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.cometbft.rpc.grpc.v1beta1 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.rpc.grpc.v1beta2 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta2_dot_types__pb2 + + +class BroadcastAPIStub(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Ping = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta2.BroadcastAPI/Ping', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + _registered_method=True) + self.BroadcastTx = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta2.BroadcastAPI/BroadcastTx', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta2_dot_types__pb2.ResponseBroadcastTx.FromString, + _registered_method=True) + + +class BroadcastAPIServicer(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + def Ping(self, request, context): + """Ping the connection. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BroadcastTx(self, request, context): + """BroadcastTx broadcasts the transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BroadcastAPIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Ping': grpc.unary_unary_rpc_method_handler( + servicer.Ping, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.SerializeToString, + ), + 'BroadcastTx': grpc.unary_unary_rpc_method_handler( + servicer.BroadcastTx, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta2_dot_types__pb2.ResponseBroadcastTx.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.rpc.grpc.v1beta2.BroadcastAPI', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.rpc.grpc.v1beta2.BroadcastAPI', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class BroadcastAPI(object): + """BroadcastAPI is an API for broadcasting transactions. + """ + + @staticmethod + def Ping(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, + '/cometbft.rpc.grpc.v1beta2.BroadcastAPI/Ping', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BroadcastTx(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, + '/cometbft.rpc.grpc.v1beta2.BroadcastAPI/BroadcastTx', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta2_dot_types__pb2.ResponseBroadcastTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2.py new file mode 100644 index 00000000..c334fc6a --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/rpc/grpc/v1beta3/types.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.cometbft.rpc.grpc.v1beta1 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta3 import types_pb2 as cometbft_dot_abci_dot_v1beta3_dot_types__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cometbft/rpc/grpc/v1beta3/types.proto\x12\x19\x63ometbft.rpc.grpc.v1beta3\x1a%cometbft/rpc/grpc/v1beta1/types.proto\x1a!cometbft/abci/v1beta3/types.proto\"\x9a\x01\n\x13ResponseBroadcastTx\x12\x41\n\x08\x63heck_tx\x18\x01 \x01(\x0b\x32&.cometbft.abci.v1beta3.ResponseCheckTxR\x07\x63heckTx\x12@\n\ttx_result\x18\x02 \x01(\x0b\x32#.cometbft.abci.v1beta3.ExecTxResultR\x08txResult2\xd5\x01\n\x0c\x42roadcastAPI\x12W\n\x04Ping\x12&.cometbft.rpc.grpc.v1beta1.RequestPing\x1a\'.cometbft.rpc.grpc.v1beta1.ResponsePing\x12l\n\x0b\x42roadcastTx\x12-.cometbft.rpc.grpc.v1beta1.RequestBroadcastTx\x1a..cometbft.rpc.grpc.v1beta3.ResponseBroadcastTxB\xee\x01\n\x1d\x63om.cometbft.rpc.grpc.v1beta3B\nTypesProtoP\x01Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta3\xa2\x02\x03\x43RG\xaa\x02\x19\x43ometbft.Rpc.Grpc.V1beta3\xca\x02\x19\x43ometbft\\Rpc\\Grpc\\V1beta3\xe2\x02%Cometbft\\Rpc\\Grpc\\V1beta3\\GPBMetadata\xea\x02\x1c\x43ometbft::Rpc::Grpc::V1beta3b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.rpc.grpc.v1beta3.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\035com.cometbft.rpc.grpc.v1beta3B\nTypesProtoP\001Z:github.com/cometbft/cometbft/api/cometbft/rpc/grpc/v1beta3\242\002\003CRG\252\002\031Cometbft.Rpc.Grpc.V1beta3\312\002\031Cometbft\\Rpc\\Grpc\\V1beta3\342\002%Cometbft\\Rpc\\Grpc\\V1beta3\\GPBMetadata\352\002\034Cometbft::Rpc::Grpc::V1beta3' + _globals['_RESPONSEBROADCASTTX']._serialized_start=143 + _globals['_RESPONSEBROADCASTTX']._serialized_end=297 + _globals['_BROADCASTAPI']._serialized_start=300 + _globals['_BROADCASTAPI']._serialized_end=513 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2_grpc.py b/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2_grpc.py new file mode 100644 index 00000000..99714435 --- /dev/null +++ b/pyinjective/proto/cometbft/rpc/grpc/v1beta3/types_pb2_grpc.py @@ -0,0 +1,135 @@ +# 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.cometbft.rpc.grpc.v1beta1 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.rpc.grpc.v1beta3 import types_pb2 as cometbft_dot_rpc_dot_grpc_dot_v1beta3_dot_types__pb2 + + +class BroadcastAPIStub(object): + """BroadcastAPI is an API for broadcasting transactions. + + Deprecated: This API will be superseded by a more comprehensive gRPC-based + broadcast API, and is scheduled for removal after v0.38. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Ping = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta3.BroadcastAPI/Ping', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + _registered_method=True) + self.BroadcastTx = channel.unary_unary( + '/cometbft.rpc.grpc.v1beta3.BroadcastAPI/BroadcastTx', + request_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + response_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta3_dot_types__pb2.ResponseBroadcastTx.FromString, + _registered_method=True) + + +class BroadcastAPIServicer(object): + """BroadcastAPI is an API for broadcasting transactions. + + Deprecated: This API will be superseded by a more comprehensive gRPC-based + broadcast API, and is scheduled for removal after v0.38. + """ + + def Ping(self, request, context): + """Ping the connection. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BroadcastTx(self, request, context): + """BroadcastTx broadcasts a transaction. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BroadcastAPIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Ping': grpc.unary_unary_rpc_method_handler( + servicer.Ping, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.SerializeToString, + ), + 'BroadcastTx': grpc.unary_unary_rpc_method_handler( + servicer.BroadcastTx, + request_deserializer=cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.FromString, + response_serializer=cometbft_dot_rpc_dot_grpc_dot_v1beta3_dot_types__pb2.ResponseBroadcastTx.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.rpc.grpc.v1beta3.BroadcastAPI', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.rpc.grpc.v1beta3.BroadcastAPI', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class BroadcastAPI(object): + """BroadcastAPI is an API for broadcasting transactions. + + Deprecated: This API will be superseded by a more comprehensive gRPC-based + broadcast API, and is scheduled for removal after v0.38. + """ + + @staticmethod + def Ping(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, + '/cometbft.rpc.grpc.v1beta3.BroadcastAPI/Ping', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestPing.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.ResponsePing.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BroadcastTx(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, + '/cometbft.rpc.grpc.v1beta3.BroadcastAPI/BroadcastTx', + cometbft_dot_rpc_dot_grpc_dot_v1beta1_dot_types__pb2.RequestBroadcastTx.SerializeToString, + cometbft_dot_rpc_dot_grpc_dot_v1beta3_dot_types__pb2.ResponseBroadcastTx.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/services/block/v1/block_pb2.py b/pyinjective/proto/cometbft/services/block/v1/block_pb2.py new file mode 100644 index 00000000..af80db36 --- /dev/null +++ b/pyinjective/proto/cometbft/services/block/v1/block_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/block/v1/block.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.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import block_pb2 as cometbft_dot_types_dot_v1_dot_block__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cometbft/services/block/v1/block.proto\x12\x1a\x63ometbft.services.block.v1\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x1d\x63ometbft/types/v1/block.proto\",\n\x12GetByHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"|\n\x13GetByHeightResponse\x12\x35\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDR\x07\x62lockId\x12.\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x18.cometbft.types.v1.BlockR\x05\x62lock\"\x18\n\x16GetLatestHeightRequest\"1\n\x17GetLatestHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06heightB\xf4\x01\n\x1e\x63om.cometbft.services.block.v1B\nBlockProtoP\x01Z;github.com/cometbft/cometbft/api/cometbft/services/block/v1\xa2\x02\x03\x43SB\xaa\x02\x1a\x43ometbft.Services.Block.V1\xca\x02\x1a\x43ometbft\\Services\\Block\\V1\xe2\x02&Cometbft\\Services\\Block\\V1\\GPBMetadata\xea\x02\x1d\x43ometbft::Services::Block::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.block.v1.block_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.cometbft.services.block.v1B\nBlockProtoP\001Z;github.com/cometbft/cometbft/api/cometbft/services/block/v1\242\002\003CSB\252\002\032Cometbft.Services.Block.V1\312\002\032Cometbft\\Services\\Block\\V1\342\002&Cometbft\\Services\\Block\\V1\\GPBMetadata\352\002\035Cometbft::Services::Block::V1' + _globals['_GETBYHEIGHTREQUEST']._serialized_start=132 + _globals['_GETBYHEIGHTREQUEST']._serialized_end=176 + _globals['_GETBYHEIGHTRESPONSE']._serialized_start=178 + _globals['_GETBYHEIGHTRESPONSE']._serialized_end=302 + _globals['_GETLATESTHEIGHTREQUEST']._serialized_start=304 + _globals['_GETLATESTHEIGHTREQUEST']._serialized_end=328 + _globals['_GETLATESTHEIGHTRESPONSE']._serialized_start=330 + _globals['_GETLATESTHEIGHTRESPONSE']._serialized_end=379 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/block/v1/block_pb2_grpc.py b/pyinjective/proto/cometbft/services/block/v1/block_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/services/block/v1/block_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/cometbft/services/block/v1/block_service_pb2.py b/pyinjective/proto/cometbft/services/block/v1/block_service_pb2.py new file mode 100644 index 00000000..41b7e23b --- /dev/null +++ b/pyinjective/proto/cometbft/services/block/v1/block_service_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/block/v1/block_service.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.cometbft.services.block.v1 import block_pb2 as cometbft_dot_services_dot_block_dot_v1_dot_block__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.cometbft/services/block/v1/block_service.proto\x12\x1a\x63ometbft.services.block.v1\x1a&cometbft/services/block/v1/block.proto2\xfc\x01\n\x0c\x42lockService\x12n\n\x0bGetByHeight\x12..cometbft.services.block.v1.GetByHeightRequest\x1a/.cometbft.services.block.v1.GetByHeightResponse\x12|\n\x0fGetLatestHeight\x12\x32.cometbft.services.block.v1.GetLatestHeightRequest\x1a\x33.cometbft.services.block.v1.GetLatestHeightResponse0\x01\x42\xfb\x01\n\x1e\x63om.cometbft.services.block.v1B\x11\x42lockServiceProtoP\x01Z;github.com/cometbft/cometbft/api/cometbft/services/block/v1\xa2\x02\x03\x43SB\xaa\x02\x1a\x43ometbft.Services.Block.V1\xca\x02\x1a\x43ometbft\\Services\\Block\\V1\xe2\x02&Cometbft\\Services\\Block\\V1\\GPBMetadata\xea\x02\x1d\x43ometbft::Services::Block::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.block.v1.block_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.cometbft.services.block.v1B\021BlockServiceProtoP\001Z;github.com/cometbft/cometbft/api/cometbft/services/block/v1\242\002\003CSB\252\002\032Cometbft.Services.Block.V1\312\002\032Cometbft\\Services\\Block\\V1\342\002&Cometbft\\Services\\Block\\V1\\GPBMetadata\352\002\035Cometbft::Services::Block::V1' + _globals['_BLOCKSERVICE']._serialized_start=119 + _globals['_BLOCKSERVICE']._serialized_end=371 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/block/v1/block_service_pb2_grpc.py b/pyinjective/proto/cometbft/services/block/v1/block_service_pb2_grpc.py new file mode 100644 index 00000000..a7d0f845 --- /dev/null +++ b/pyinjective/proto/cometbft/services/block/v1/block_service_pb2_grpc.py @@ -0,0 +1,128 @@ +# 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.cometbft.services.block.v1 import block_pb2 as cometbft_dot_services_dot_block_dot_v1_dot_block__pb2 + + +class BlockServiceStub(object): + """BlockService provides information about blocks + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetByHeight = channel.unary_unary( + '/cometbft.services.block.v1.BlockService/GetByHeight', + request_serializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightResponse.FromString, + _registered_method=True) + self.GetLatestHeight = channel.unary_stream( + '/cometbft.services.block.v1.BlockService/GetLatestHeight', + request_serializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightResponse.FromString, + _registered_method=True) + + +class BlockServiceServicer(object): + """BlockService provides information about blocks + """ + + def GetByHeight(self, request, context): + """GetBlock retrieves the block information at a particular height. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetLatestHeight(self, request, context): + """GetLatestHeight returns a stream of the latest block heights committed by + the network. This is a long-lived stream that is only terminated by the + server if an error occurs. The caller is expected to handle such + disconnections and automatically reconnect. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BlockServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetByHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetByHeight, + request_deserializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightResponse.SerializeToString, + ), + 'GetLatestHeight': grpc.unary_stream_rpc_method_handler( + servicer.GetLatestHeight, + request_deserializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.services.block.v1.BlockService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.services.block.v1.BlockService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class BlockService(object): + """BlockService provides information about blocks + """ + + @staticmethod + def GetByHeight(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, + '/cometbft.services.block.v1.BlockService/GetByHeight', + cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightRequest.SerializeToString, + cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetByHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetLatestHeight(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, + '/cometbft.services.block.v1.BlockService/GetLatestHeight', + cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightRequest.SerializeToString, + cometbft_dot_services_dot_block_dot_v1_dot_block__pb2.GetLatestHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2.py b/pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2.py new file mode 100644 index 00000000..ecb1f2c8 --- /dev/null +++ b/pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/block_results/v1/block_results.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.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6cometbft/services/block_results/v1/block_results.proto\x12\"cometbft.services.block_results.v1\x1a\x1c\x63ometbft/abci/v1/types.proto\x1a\x1e\x63ometbft/types/v1/params.proto\"0\n\x16GetBlockResultsRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\x84\x03\n\x17GetBlockResultsResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12=\n\ntx_results\x18\x02 \x03(\x0b\x32\x1e.cometbft.abci.v1.ExecTxResultR\ttxResults\x12K\n\x15\x66inalize_block_events\x18\x03 \x03(\x0b\x32\x17.cometbft.abci.v1.EventR\x13\x66inalizeBlockEvents\x12N\n\x11validator_updates\x18\x04 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateR\x10validatorUpdates\x12Z\n\x17\x63onsensus_param_updates\x18\x05 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12\x19\n\x08\x61pp_hash\x18\x06 \x01(\x0cR\x07\x61ppHashB\xa7\x02\n&com.cometbft.services.block_results.v1B\x11\x42lockResultsProtoP\x01ZCgithub.com/cometbft/cometbft/api/cometbft/services/block_results/v1\xa2\x02\x03\x43SB\xaa\x02!Cometbft.Services.BlockResults.V1\xca\x02!Cometbft\\Services\\BlockResults\\V1\xe2\x02-Cometbft\\Services\\BlockResults\\V1\\GPBMetadata\xea\x02$Cometbft::Services::BlockResults::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.block_results.v1.block_results_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n&com.cometbft.services.block_results.v1B\021BlockResultsProtoP\001ZCgithub.com/cometbft/cometbft/api/cometbft/services/block_results/v1\242\002\003CSB\252\002!Cometbft.Services.BlockResults.V1\312\002!Cometbft\\Services\\BlockResults\\V1\342\002-Cometbft\\Services\\BlockResults\\V1\\GPBMetadata\352\002$Cometbft::Services::BlockResults::V1' + _globals['_GETBLOCKRESULTSREQUEST']._serialized_start=156 + _globals['_GETBLOCKRESULTSREQUEST']._serialized_end=204 + _globals['_GETBLOCKRESULTSRESPONSE']._serialized_start=207 + _globals['_GETBLOCKRESULTSRESPONSE']._serialized_end=595 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2_grpc.py b/pyinjective/proto/cometbft/services/block_results/v1/block_results_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/services/block_results/v1/block_results_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/cometbft/services/block_results/v1/block_results_service_pb2.py b/pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2.py new file mode 100644 index 00000000..aaf54943 --- /dev/null +++ b/pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/block_results/v1/block_results_service.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.cometbft.services.block_results.v1 import block_results_pb2 as cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n>cometbft/services/block_results/v1/block_results_service.proto\x12\"cometbft.services.block_results.v1\x1a\x36\x63ometbft/services/block_results/v1/block_results.proto2\xa2\x01\n\x13\x42lockResultsService\x12\x8a\x01\n\x0fGetBlockResults\x12:.cometbft.services.block_results.v1.GetBlockResultsRequest\x1a;.cometbft.services.block_results.v1.GetBlockResultsResponseB\xae\x02\n&com.cometbft.services.block_results.v1B\x18\x42lockResultsServiceProtoP\x01ZCgithub.com/cometbft/cometbft/api/cometbft/services/block_results/v1\xa2\x02\x03\x43SB\xaa\x02!Cometbft.Services.BlockResults.V1\xca\x02!Cometbft\\Services\\BlockResults\\V1\xe2\x02-Cometbft\\Services\\BlockResults\\V1\\GPBMetadata\xea\x02$Cometbft::Services::BlockResults::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.block_results.v1.block_results_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n&com.cometbft.services.block_results.v1B\030BlockResultsServiceProtoP\001ZCgithub.com/cometbft/cometbft/api/cometbft/services/block_results/v1\242\002\003CSB\252\002!Cometbft.Services.BlockResults.V1\312\002!Cometbft\\Services\\BlockResults\\V1\342\002-Cometbft\\Services\\BlockResults\\V1\\GPBMetadata\352\002$Cometbft::Services::BlockResults::V1' + _globals['_BLOCKRESULTSSERVICE']._serialized_start=159 + _globals['_BLOCKRESULTSSERVICE']._serialized_end=321 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2_grpc.py b/pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2_grpc.py new file mode 100644 index 00000000..487ca6b1 --- /dev/null +++ b/pyinjective/proto/cometbft/services/block_results/v1/block_results_service_pb2_grpc.py @@ -0,0 +1,84 @@ +# 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.cometbft.services.block_results.v1 import block_results_pb2 as cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2 + + +class BlockResultsServiceStub(object): + """ + BlockResultService provides the block results of a given or latestheight. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetBlockResults = channel.unary_unary( + '/cometbft.services.block_results.v1.BlockResultsService/GetBlockResults', + request_serializer=cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsResponse.FromString, + _registered_method=True) + + +class BlockResultsServiceServicer(object): + """ + BlockResultService provides the block results of a given or latestheight. + """ + + def GetBlockResults(self, request, context): + """GetBlockResults returns the BlockResults of the requested height. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BlockResultsServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetBlockResults': grpc.unary_unary_rpc_method_handler( + servicer.GetBlockResults, + request_deserializer=cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsRequest.FromString, + response_serializer=cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.services.block_results.v1.BlockResultsService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.services.block_results.v1.BlockResultsService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class BlockResultsService(object): + """ + BlockResultService provides the block results of a given or latestheight. + """ + + @staticmethod + def GetBlockResults(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, + '/cometbft.services.block_results.v1.BlockResultsService/GetBlockResults', + cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsRequest.SerializeToString, + cometbft_dot_services_dot_block__results_dot_v1_dot_block__results__pb2.GetBlockResultsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2.py b/pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2.py new file mode 100644 index 00000000..b8cbddb0 --- /dev/null +++ b/pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/pruning/v1/pruning.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cometbft/services/pruning/v1/pruning.proto\x12\x1c\x63ometbft.services.pruning.v1\"5\n\x1bSetBlockRetainHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"\x1e\n\x1cSetBlockRetainHeightResponse\"\x1d\n\x1bGetBlockRetainHeightRequest\"\x8d\x01\n\x1cGetBlockRetainHeightResponse\x12*\n\x11\x61pp_retain_height\x18\x01 \x01(\x04R\x0f\x61ppRetainHeight\x12\x41\n\x1dpruning_service_retain_height\x18\x02 \x01(\x04R\x1apruningServiceRetainHeight\"<\n\"SetBlockResultsRetainHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"%\n#SetBlockResultsRetainHeightResponse\"$\n\"GetBlockResultsRetainHeightRequest\"h\n#GetBlockResultsRetainHeightResponse\x12\x41\n\x1dpruning_service_retain_height\x18\x01 \x01(\x04R\x1apruningServiceRetainHeight\"9\n\x1fSetTxIndexerRetainHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"\"\n SetTxIndexerRetainHeightResponse\"!\n\x1fGetTxIndexerRetainHeightRequest\":\n GetTxIndexerRetainHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"<\n\"SetBlockIndexerRetainHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"%\n#SetBlockIndexerRetainHeightResponse\"$\n\"GetBlockIndexerRetainHeightRequest\"=\n#GetBlockIndexerRetainHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06heightB\xc3\x01\n com.cometbft.services.pruning.v1B\x0cPruningProtoP\x01\xa2\x02\x03\x43SP\xaa\x02\x1c\x43ometbft.Services.Pruning.V1\xca\x02\x1c\x43ometbft\\Services\\Pruning\\V1\xe2\x02(Cometbft\\Services\\Pruning\\V1\\GPBMetadata\xea\x02\x1f\x43ometbft::Services::Pruning::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.pruning.v1.pruning_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n com.cometbft.services.pruning.v1B\014PruningProtoP\001\242\002\003CSP\252\002\034Cometbft.Services.Pruning.V1\312\002\034Cometbft\\Services\\Pruning\\V1\342\002(Cometbft\\Services\\Pruning\\V1\\GPBMetadata\352\002\037Cometbft::Services::Pruning::V1' + _globals['_SETBLOCKRETAINHEIGHTREQUEST']._serialized_start=76 + _globals['_SETBLOCKRETAINHEIGHTREQUEST']._serialized_end=129 + _globals['_SETBLOCKRETAINHEIGHTRESPONSE']._serialized_start=131 + _globals['_SETBLOCKRETAINHEIGHTRESPONSE']._serialized_end=161 + _globals['_GETBLOCKRETAINHEIGHTREQUEST']._serialized_start=163 + _globals['_GETBLOCKRETAINHEIGHTREQUEST']._serialized_end=192 + _globals['_GETBLOCKRETAINHEIGHTRESPONSE']._serialized_start=195 + _globals['_GETBLOCKRETAINHEIGHTRESPONSE']._serialized_end=336 + _globals['_SETBLOCKRESULTSRETAINHEIGHTREQUEST']._serialized_start=338 + _globals['_SETBLOCKRESULTSRETAINHEIGHTREQUEST']._serialized_end=398 + _globals['_SETBLOCKRESULTSRETAINHEIGHTRESPONSE']._serialized_start=400 + _globals['_SETBLOCKRESULTSRETAINHEIGHTRESPONSE']._serialized_end=437 + _globals['_GETBLOCKRESULTSRETAINHEIGHTREQUEST']._serialized_start=439 + _globals['_GETBLOCKRESULTSRETAINHEIGHTREQUEST']._serialized_end=475 + _globals['_GETBLOCKRESULTSRETAINHEIGHTRESPONSE']._serialized_start=477 + _globals['_GETBLOCKRESULTSRETAINHEIGHTRESPONSE']._serialized_end=581 + _globals['_SETTXINDEXERRETAINHEIGHTREQUEST']._serialized_start=583 + _globals['_SETTXINDEXERRETAINHEIGHTREQUEST']._serialized_end=640 + _globals['_SETTXINDEXERRETAINHEIGHTRESPONSE']._serialized_start=642 + _globals['_SETTXINDEXERRETAINHEIGHTRESPONSE']._serialized_end=676 + _globals['_GETTXINDEXERRETAINHEIGHTREQUEST']._serialized_start=678 + _globals['_GETTXINDEXERRETAINHEIGHTREQUEST']._serialized_end=711 + _globals['_GETTXINDEXERRETAINHEIGHTRESPONSE']._serialized_start=713 + _globals['_GETTXINDEXERRETAINHEIGHTRESPONSE']._serialized_end=771 + _globals['_SETBLOCKINDEXERRETAINHEIGHTREQUEST']._serialized_start=773 + _globals['_SETBLOCKINDEXERRETAINHEIGHTREQUEST']._serialized_end=833 + _globals['_SETBLOCKINDEXERRETAINHEIGHTRESPONSE']._serialized_start=835 + _globals['_SETBLOCKINDEXERRETAINHEIGHTRESPONSE']._serialized_end=872 + _globals['_GETBLOCKINDEXERRETAINHEIGHTREQUEST']._serialized_start=874 + _globals['_GETBLOCKINDEXERRETAINHEIGHTREQUEST']._serialized_end=910 + _globals['_GETBLOCKINDEXERRETAINHEIGHTRESPONSE']._serialized_start=912 + _globals['_GETBLOCKINDEXERRETAINHEIGHTRESPONSE']._serialized_end=973 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2_grpc.py b/pyinjective/proto/cometbft/services/pruning/v1/pruning_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/services/pruning/v1/pruning_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/cometbft/services/pruning/v1/service_pb2.py b/pyinjective/proto/cometbft/services/pruning/v1/service_pb2.py new file mode 100644 index 00000000..157b2479 --- /dev/null +++ b/pyinjective/proto/cometbft/services/pruning/v1/service_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/pruning/v1/service.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.cometbft.services.pruning.v1 import pruning_pb2 as cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cometbft/services/pruning/v1/service.proto\x12\x1c\x63ometbft.services.pruning.v1\x1a*cometbft/services/pruning/v1/pruning.proto2\xfc\t\n\x0ePruningService\x12\x8d\x01\n\x14SetBlockRetainHeight\x12\x39.cometbft.services.pruning.v1.SetBlockRetainHeightRequest\x1a:.cometbft.services.pruning.v1.SetBlockRetainHeightResponse\x12\x8d\x01\n\x14GetBlockRetainHeight\x12\x39.cometbft.services.pruning.v1.GetBlockRetainHeightRequest\x1a:.cometbft.services.pruning.v1.GetBlockRetainHeightResponse\x12\xa2\x01\n\x1bSetBlockResultsRetainHeight\x12@.cometbft.services.pruning.v1.SetBlockResultsRetainHeightRequest\x1a\x41.cometbft.services.pruning.v1.SetBlockResultsRetainHeightResponse\x12\xa2\x01\n\x1bGetBlockResultsRetainHeight\x12@.cometbft.services.pruning.v1.GetBlockResultsRetainHeightRequest\x1a\x41.cometbft.services.pruning.v1.GetBlockResultsRetainHeightResponse\x12\x99\x01\n\x18SetTxIndexerRetainHeight\x12=.cometbft.services.pruning.v1.SetTxIndexerRetainHeightRequest\x1a>.cometbft.services.pruning.v1.SetTxIndexerRetainHeightResponse\x12\x99\x01\n\x18GetTxIndexerRetainHeight\x12=.cometbft.services.pruning.v1.GetTxIndexerRetainHeightRequest\x1a>.cometbft.services.pruning.v1.GetTxIndexerRetainHeightResponse\x12\xa2\x01\n\x1bSetBlockIndexerRetainHeight\x12@.cometbft.services.pruning.v1.SetBlockIndexerRetainHeightRequest\x1a\x41.cometbft.services.pruning.v1.SetBlockIndexerRetainHeightResponse\x12\xa2\x01\n\x1bGetBlockIndexerRetainHeight\x12@.cometbft.services.pruning.v1.GetBlockIndexerRetainHeightRequest\x1a\x41.cometbft.services.pruning.v1.GetBlockIndexerRetainHeightResponseB\xc3\x01\n com.cometbft.services.pruning.v1B\x0cServiceProtoP\x01\xa2\x02\x03\x43SP\xaa\x02\x1c\x43ometbft.Services.Pruning.V1\xca\x02\x1c\x43ometbft\\Services\\Pruning\\V1\xe2\x02(Cometbft\\Services\\Pruning\\V1\\GPBMetadata\xea\x02\x1f\x43ometbft::Services::Pruning::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.pruning.v1.service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n com.cometbft.services.pruning.v1B\014ServiceProtoP\001\242\002\003CSP\252\002\034Cometbft.Services.Pruning.V1\312\002\034Cometbft\\Services\\Pruning\\V1\342\002(Cometbft\\Services\\Pruning\\V1\\GPBMetadata\352\002\037Cometbft::Services::Pruning::V1' + _globals['_PRUNINGSERVICE']._serialized_start=121 + _globals['_PRUNINGSERVICE']._serialized_end=1397 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/pruning/v1/service_pb2_grpc.py b/pyinjective/proto/cometbft/services/pruning/v1/service_pb2_grpc.py new file mode 100644 index 00000000..fff52474 --- /dev/null +++ b/pyinjective/proto/cometbft/services/pruning/v1/service_pb2_grpc.py @@ -0,0 +1,407 @@ +# 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.cometbft.services.pruning.v1 import pruning_pb2 as cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2 + + +class PruningServiceStub(object): + """PruningService provides privileged access to specialized pruning + functionality on the CometBFT node to help control node storage. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SetBlockRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/SetBlockRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightResponse.FromString, + _registered_method=True) + self.GetBlockRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/GetBlockRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightResponse.FromString, + _registered_method=True) + self.SetBlockResultsRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/SetBlockResultsRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightResponse.FromString, + _registered_method=True) + self.GetBlockResultsRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/GetBlockResultsRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightResponse.FromString, + _registered_method=True) + self.SetTxIndexerRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/SetTxIndexerRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightResponse.FromString, + _registered_method=True) + self.GetTxIndexerRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/GetTxIndexerRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightResponse.FromString, + _registered_method=True) + self.SetBlockIndexerRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/SetBlockIndexerRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightResponse.FromString, + _registered_method=True) + self.GetBlockIndexerRetainHeight = channel.unary_unary( + '/cometbft.services.pruning.v1.PruningService/GetBlockIndexerRetainHeight', + request_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightResponse.FromString, + _registered_method=True) + + +class PruningServiceServicer(object): + """PruningService provides privileged access to specialized pruning + functionality on the CometBFT node to help control node storage. + """ + + def SetBlockRetainHeight(self, request, context): + """SetBlockRetainHeightRequest indicates to the node that it can safely + prune all block data up to the specified retain height. + + The lower of this retain height and that set by the application in its + Commit response will be used by the node to determine which heights' data + can be pruned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetBlockRetainHeight(self, request, context): + """GetBlockRetainHeight returns information about the retain height + parameters used by the node to influence block retention/pruning. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetBlockResultsRetainHeight(self, request, context): + """SetBlockResultsRetainHeightRequest indicates to the node that it can + safely prune all block results data up to the specified height. + + The node will always store the block results for the latest height to + help facilitate crash recovery. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetBlockResultsRetainHeight(self, request, context): + """GetBlockResultsRetainHeight returns information about the retain height + parameters used by the node to influence block results retention/pruning. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetTxIndexerRetainHeight(self, request, context): + """SetTxIndexerRetainHeightRequest indicates to the node that it can safely + prune all tx indices up to the specified retain height. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetTxIndexerRetainHeight(self, request, context): + """GetTxIndexerRetainHeight returns information about the retain height + parameters used by the node to influence TxIndexer pruning + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetBlockIndexerRetainHeight(self, request, context): + """SetBlockIndexerRetainHeightRequest indicates to the node that it can safely + prune all block indices up to the specified retain height. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetBlockIndexerRetainHeight(self, request, context): + """GetBlockIndexerRetainHeight returns information about the retain height + parameters used by the node to influence BlockIndexer pruning + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_PruningServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SetBlockRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.SetBlockRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightResponse.SerializeToString, + ), + 'GetBlockRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetBlockRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightResponse.SerializeToString, + ), + 'SetBlockResultsRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.SetBlockResultsRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightResponse.SerializeToString, + ), + 'GetBlockResultsRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetBlockResultsRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightResponse.SerializeToString, + ), + 'SetTxIndexerRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.SetTxIndexerRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightResponse.SerializeToString, + ), + 'GetTxIndexerRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetTxIndexerRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightResponse.SerializeToString, + ), + 'SetBlockIndexerRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.SetBlockIndexerRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightResponse.SerializeToString, + ), + 'GetBlockIndexerRetainHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetBlockIndexerRetainHeight, + request_deserializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightRequest.FromString, + response_serializer=cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.services.pruning.v1.PruningService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.services.pruning.v1.PruningService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class PruningService(object): + """PruningService provides privileged access to specialized pruning + functionality on the CometBFT node to help control node storage. + """ + + @staticmethod + def SetBlockRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/SetBlockRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetBlockRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/GetBlockRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetBlockResultsRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/SetBlockResultsRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockResultsRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetBlockResultsRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/GetBlockResultsRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockResultsRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetTxIndexerRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/SetTxIndexerRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetTxIndexerRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetTxIndexerRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/GetTxIndexerRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetTxIndexerRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetBlockIndexerRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/SetBlockIndexerRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.SetBlockIndexerRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetBlockIndexerRetainHeight(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, + '/cometbft.services.pruning.v1.PruningService/GetBlockIndexerRetainHeight', + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightRequest.SerializeToString, + cometbft_dot_services_dot_pruning_dot_v1_dot_pruning__pb2.GetBlockIndexerRetainHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/services/version/v1/version_pb2.py b/pyinjective/proto/cometbft/services/version/v1/version_pb2.py new file mode 100644 index 00000000..6b12dd9f --- /dev/null +++ b/pyinjective/proto/cometbft/services/version/v1/version_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/version/v1/version.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cometbft/services/version/v1/version.proto\x12\x1c\x63ometbft.services.version.v1\"\x13\n\x11GetVersionRequest\"d\n\x12GetVersionResponse\x12\x12\n\x04node\x18\x01 \x01(\tR\x04node\x12\x12\n\x04\x61\x62\x63i\x18\x02 \x01(\tR\x04\x61\x62\x63i\x12\x10\n\x03p2p\x18\x03 \x01(\x04R\x03p2p\x12\x14\n\x05\x62lock\x18\x04 \x01(\x04R\x05\x62lockB\x82\x02\n com.cometbft.services.version.v1B\x0cVersionProtoP\x01Z=github.com/cometbft/cometbft/api/cometbft/services/version/v1\xa2\x02\x03\x43SV\xaa\x02\x1c\x43ometbft.Services.Version.V1\xca\x02\x1c\x43ometbft\\Services\\Version\\V1\xe2\x02(Cometbft\\Services\\Version\\V1\\GPBMetadata\xea\x02\x1f\x43ometbft::Services::Version::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.version.v1.version_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n com.cometbft.services.version.v1B\014VersionProtoP\001Z=github.com/cometbft/cometbft/api/cometbft/services/version/v1\242\002\003CSV\252\002\034Cometbft.Services.Version.V1\312\002\034Cometbft\\Services\\Version\\V1\342\002(Cometbft\\Services\\Version\\V1\\GPBMetadata\352\002\037Cometbft::Services::Version::V1' + _globals['_GETVERSIONREQUEST']._serialized_start=76 + _globals['_GETVERSIONREQUEST']._serialized_end=95 + _globals['_GETVERSIONRESPONSE']._serialized_start=97 + _globals['_GETVERSIONRESPONSE']._serialized_end=197 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/version/v1/version_pb2_grpc.py b/pyinjective/proto/cometbft/services/version/v1/version_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/services/version/v1/version_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/cometbft/services/version/v1/version_service_pb2.py b/pyinjective/proto/cometbft/services/version/v1/version_service_pb2.py new file mode 100644 index 00000000..c43ff805 --- /dev/null +++ b/pyinjective/proto/cometbft/services/version/v1/version_service_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/services/version/v1/version_service.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.cometbft.services.version.v1 import version_pb2 as cometbft_dot_services_dot_version_dot_v1_dot_version__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2cometbft/services/version/v1/version_service.proto\x12\x1c\x63ometbft.services.version.v1\x1a*cometbft/services/version/v1/version.proto2\x81\x01\n\x0eVersionService\x12o\n\nGetVersion\x12/.cometbft.services.version.v1.GetVersionRequest\x1a\x30.cometbft.services.version.v1.GetVersionResponseB\x89\x02\n com.cometbft.services.version.v1B\x13VersionServiceProtoP\x01Z=github.com/cometbft/cometbft/api/cometbft/services/version/v1\xa2\x02\x03\x43SV\xaa\x02\x1c\x43ometbft.Services.Version.V1\xca\x02\x1c\x43ometbft\\Services\\Version\\V1\xe2\x02(Cometbft\\Services\\Version\\V1\\GPBMetadata\xea\x02\x1f\x43ometbft::Services::Version::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.services.version.v1.version_service_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n com.cometbft.services.version.v1B\023VersionServiceProtoP\001Z=github.com/cometbft/cometbft/api/cometbft/services/version/v1\242\002\003CSV\252\002\034Cometbft.Services.Version.V1\312\002\034Cometbft\\Services\\Version\\V1\342\002(Cometbft\\Services\\Version\\V1\\GPBMetadata\352\002\037Cometbft::Services::Version::V1' + _globals['_VERSIONSERVICE']._serialized_start=129 + _globals['_VERSIONSERVICE']._serialized_end=258 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/services/version/v1/version_service_pb2_grpc.py b/pyinjective/proto/cometbft/services/version/v1/version_service_pb2_grpc.py new file mode 100644 index 00000000..87e51ea6 --- /dev/null +++ b/pyinjective/proto/cometbft/services/version/v1/version_service_pb2_grpc.py @@ -0,0 +1,100 @@ +# 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.cometbft.services.version.v1 import version_pb2 as cometbft_dot_services_dot_version_dot_v1_dot_version__pb2 + + +class VersionServiceStub(object): + """VersionService simply provides version information about the node and the + protocols it uses. + + The intention with this service is to offer a stable interface through which + clients can access version information. This means that the version of the + service should be kept stable at v1, with GetVersionResponse evolving only + in non-breaking ways. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetVersion = channel.unary_unary( + '/cometbft.services.version.v1.VersionService/GetVersion', + request_serializer=cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionRequest.SerializeToString, + response_deserializer=cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionResponse.FromString, + _registered_method=True) + + +class VersionServiceServicer(object): + """VersionService simply provides version information about the node and the + protocols it uses. + + The intention with this service is to offer a stable interface through which + clients can access version information. This means that the version of the + service should be kept stable at v1, with GetVersionResponse evolving only + in non-breaking ways. + """ + + def GetVersion(self, request, context): + """GetVersion retrieves version information about the node and the protocols + it implements. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_VersionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetVersion': grpc.unary_unary_rpc_method_handler( + servicer.GetVersion, + request_deserializer=cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionRequest.FromString, + response_serializer=cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'cometbft.services.version.v1.VersionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('cometbft.services.version.v1.VersionService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class VersionService(object): + """VersionService simply provides version information about the node and the + protocols it uses. + + The intention with this service is to offer a stable interface through which + clients can access version information. This means that the version of the + service should be kept stable at v1, with GetVersionResponse evolving only + in non-breaking ways. + """ + + @staticmethod + def GetVersion(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, + '/cometbft.services.version.v1.VersionService/GetVersion', + cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionRequest.SerializeToString, + cometbft_dot_services_dot_version_dot_v1_dot_version__pb2.GetVersionResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/cometbft/state/v1/types_pb2.py b/pyinjective/proto/cometbft/state/v1/types_pb2.py new file mode 100644 index 00000000..d965da71 --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1/types_pb2.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/state/v1/types.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.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import validator_pb2 as cometbft_dot_types_dot_v1_dot_validator__pb2 +from pyinjective.proto.cometbft.version.v1 import types_pb2 as cometbft_dot_version_dot_v1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63ometbft/state/v1/types.proto\x12\x11\x63ometbft.state.v1\x1a\x1c\x63ometbft/abci/v1/types.proto\x1a\x1e\x63ometbft/types/v1/params.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a!cometbft/types/v1/validator.proto\x1a\x1f\x63ometbft/version/v1/types.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe0\x01\n\x13LegacyABCIResponses\x12?\n\x0b\x64\x65liver_txs\x18\x01 \x03(\x0b\x32\x1e.cometbft.abci.v1.ExecTxResultR\ndeliverTxs\x12@\n\tend_block\x18\x02 \x01(\x0b\x32#.cometbft.state.v1.ResponseEndBlockR\x08\x65ndBlock\x12\x46\n\x0b\x62\x65gin_block\x18\x03 \x01(\x0b\x32%.cometbft.state.v1.ResponseBeginBlockR\nbeginBlock\"_\n\x12ResponseBeginBlock\x12I\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\x8f\x02\n\x10ResponseEndBlock\x12T\n\x11validator_updates\x18\x01 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12Z\n\x17\x63onsensus_param_updates\x18\x02 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12I\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\x86\x01\n\x0eValidatorsInfo\x12\x44\n\rvalidator_set\x18\x01 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x0cvalidatorSet\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"\x9a\x01\n\x13\x43onsensusParamsInfo\x12S\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"\xd7\x01\n\x11\x41\x42\x43IResponsesInfo\x12Z\n\x15legacy_abci_responses\x18\x01 \x01(\x0b\x32&.cometbft.state.v1.LegacyABCIResponsesR\x13legacyAbciResponses\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12N\n\x0e\x66inalize_block\x18\x03 \x01(\x0b\x32\'.cometbft.abci.v1.FinalizeBlockResponseR\rfinalizeBlock\"i\n\x07Version\x12\x42\n\tconsensus\x18\x01 \x01(\x0b\x32\x1e.cometbft.version.v1.ConsensusB\x04\xc8\xde\x1f\x00R\tconsensus\x12\x1a\n\x08software\x18\x02 \x01(\tR\x08software\"\xe7\x06\n\x05State\x12:\n\x07version\x18\x01 \x01(\x0b\x32\x1a.cometbft.state.v1.VersionB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12%\n\x0einitial_height\x18\x0e \x01(\x03R\rinitialHeight\x12*\n\x11last_block_height\x18\x03 \x01(\x03R\x0flastBlockHeight\x12S\n\rlast_block_id\x18\x04 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x13\xc8\xde\x1f\x00\xe2\xde\x1f\x0bLastBlockIDR\x0blastBlockId\x12L\n\x0flast_block_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\rlastBlockTime\x12H\n\x0fnext_validators\x18\x06 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x0enextValidators\x12?\n\nvalidators\x18\x07 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\nvalidators\x12H\n\x0flast_validators\x18\x08 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x0elastValidators\x12\x43\n\x1elast_height_validators_changed\x18\t \x01(\x03R\x1blastHeightValidatorsChanged\x12S\n\x10\x63onsensus_params\x18\n \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12N\n$last_height_consensus_params_changed\x18\x0b \x01(\x03R lastHeightConsensusParamsChanged\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12\x19\n\x08\x61pp_hash\x18\r \x01(\x0cR\x07\x61ppHashB\xbd\x01\n\x15\x63om.cometbft.state.v1B\nTypesProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/state/v1\xa2\x02\x03\x43SX\xaa\x02\x11\x43ometbft.State.V1\xca\x02\x11\x43ometbft\\State\\V1\xe2\x02\x1d\x43ometbft\\State\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::State::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.state.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.state.v1B\nTypesProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/state/v1\242\002\003CSX\252\002\021Cometbft.State.V1\312\002\021Cometbft\\State\\V1\342\002\035Cometbft\\State\\V1\\GPBMetadata\352\002\023Cometbft::State::V1' + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._loaded_options = None + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_VERSION'].fields_by_name['consensus']._loaded_options = None + _globals['_VERSION'].fields_by_name['consensus']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['version']._loaded_options = None + _globals['_STATE'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['chain_id']._loaded_options = None + _globals['_STATE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_STATE'].fields_by_name['last_block_id']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000\342\336\037\013LastBlockID' + _globals['_STATE'].fields_by_name['last_block_time']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_STATE'].fields_by_name['consensus_params']._loaded_options = None + _globals['_STATE'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_LEGACYABCIRESPONSES']._serialized_start=269 + _globals['_LEGACYABCIRESPONSES']._serialized_end=493 + _globals['_RESPONSEBEGINBLOCK']._serialized_start=495 + _globals['_RESPONSEBEGINBLOCK']._serialized_end=590 + _globals['_RESPONSEENDBLOCK']._serialized_start=593 + _globals['_RESPONSEENDBLOCK']._serialized_end=864 + _globals['_VALIDATORSINFO']._serialized_start=867 + _globals['_VALIDATORSINFO']._serialized_end=1001 + _globals['_CONSENSUSPARAMSINFO']._serialized_start=1004 + _globals['_CONSENSUSPARAMSINFO']._serialized_end=1158 + _globals['_ABCIRESPONSESINFO']._serialized_start=1161 + _globals['_ABCIRESPONSESINFO']._serialized_end=1376 + _globals['_VERSION']._serialized_start=1378 + _globals['_VERSION']._serialized_end=1483 + _globals['_STATE']._serialized_start=1486 + _globals['_STATE']._serialized_end=2357 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/state/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/state/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1/types_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/cometbft/state/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/state/v1beta1/types_pb2.py new file mode 100644 index 00000000..e2945666 --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta1/types_pb2.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/state/v1beta1/types.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.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import params_pb2 as cometbft_dot_types_dot_v1beta1_dot_params__pb2 +from pyinjective.proto.cometbft.version.v1 import types_pb2 as cometbft_dot_version_dot_v1_dot_types__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cometbft/state/v1beta1/types.proto\x12\x16\x63ometbft.state.v1beta1\x1a\x14gogoproto/gogo.proto\x1a!cometbft/abci/v1beta1/types.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a&cometbft/types/v1beta1/validator.proto\x1a#cometbft/types/v1beta1/params.proto\x1a\x1f\x63ometbft/version/v1/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xec\x01\n\rABCIResponses\x12I\n\x0b\x64\x65liver_txs\x18\x01 \x03(\x0b\x32(.cometbft.abci.v1beta1.ResponseDeliverTxR\ndeliverTxs\x12\x44\n\tend_block\x18\x02 \x01(\x0b\x32\'.cometbft.abci.v1beta1.ResponseEndBlockR\x08\x65ndBlock\x12J\n\x0b\x62\x65gin_block\x18\x03 \x01(\x0b\x32).cometbft.abci.v1beta1.ResponseBeginBlockR\nbeginBlock\"\x8b\x01\n\x0eValidatorsInfo\x12I\n\rvalidator_set\x18\x01 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0cvalidatorSet\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"\x9f\x01\n\x13\x43onsensusParamsInfo\x12X\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\'.cometbft.types.v1beta1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"y\n\x11\x41\x42\x43IResponsesInfo\x12L\n\x0e\x61\x62\x63i_responses\x18\x01 \x01(\x0b\x32%.cometbft.state.v1beta1.ABCIResponsesR\rabciResponses\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\"i\n\x07Version\x12\x42\n\tconsensus\x18\x01 \x01(\x0b\x32\x1e.cometbft.version.v1.ConsensusB\x04\xc8\xde\x1f\x00R\tconsensus\x12\x1a\n\x08software\x18\x02 \x01(\tR\x08software\"\x85\x07\n\x05State\x12?\n\x07version\x18\x01 \x01(\x0b\x32\x1f.cometbft.state.v1beta1.VersionB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12%\n\x0einitial_height\x18\x0e \x01(\x03R\rinitialHeight\x12*\n\x11last_block_height\x18\x03 \x01(\x03R\x0flastBlockHeight\x12X\n\rlast_block_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x13\xc8\xde\x1f\x00\xe2\xde\x1f\x0bLastBlockIDR\x0blastBlockId\x12L\n\x0flast_block_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\rlastBlockTime\x12M\n\x0fnext_validators\x18\x06 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0enextValidators\x12\x44\n\nvalidators\x18\x07 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\nvalidators\x12M\n\x0flast_validators\x18\x08 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0elastValidators\x12\x43\n\x1elast_height_validators_changed\x18\t \x01(\x03R\x1blastHeightValidatorsChanged\x12X\n\x10\x63onsensus_params\x18\n \x01(\x0b\x32\'.cometbft.types.v1beta1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12N\n$last_height_consensus_params_changed\x18\x0b \x01(\x03R lastHeightConsensusParamsChanged\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12\x19\n\x08\x61pp_hash\x18\r \x01(\x0cR\x07\x61ppHashB\xdb\x01\n\x1a\x63om.cometbft.state.v1beta1B\nTypesProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta1\xa2\x02\x03\x43SX\xaa\x02\x16\x43ometbft.State.V1beta1\xca\x02\x16\x43ometbft\\State\\V1beta1\xe2\x02\"Cometbft\\State\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::State::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.state.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.state.v1beta1B\nTypesProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta1\242\002\003CSX\252\002\026Cometbft.State.V1beta1\312\002\026Cometbft\\State\\V1beta1\342\002\"Cometbft\\State\\V1beta1\\GPBMetadata\352\002\030Cometbft::State::V1beta1' + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._loaded_options = None + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_VERSION'].fields_by_name['consensus']._loaded_options = None + _globals['_VERSION'].fields_by_name['consensus']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['version']._loaded_options = None + _globals['_STATE'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['chain_id']._loaded_options = None + _globals['_STATE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_STATE'].fields_by_name['last_block_id']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000\342\336\037\013LastBlockID' + _globals['_STATE'].fields_by_name['last_block_time']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_STATE'].fields_by_name['consensus_params']._loaded_options = None + _globals['_STATE'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_ABCIRESPONSES']._serialized_start=299 + _globals['_ABCIRESPONSES']._serialized_end=535 + _globals['_VALIDATORSINFO']._serialized_start=538 + _globals['_VALIDATORSINFO']._serialized_end=677 + _globals['_CONSENSUSPARAMSINFO']._serialized_start=680 + _globals['_CONSENSUSPARAMSINFO']._serialized_end=839 + _globals['_ABCIRESPONSESINFO']._serialized_start=841 + _globals['_ABCIRESPONSESINFO']._serialized_end=962 + _globals['_VERSION']._serialized_start=964 + _globals['_VERSION']._serialized_end=1069 + _globals['_STATE']._serialized_start=1072 + _globals['_STATE']._serialized_end=1973 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/state/v1beta1/types_pb2_grpc.py b/pyinjective/proto/cometbft/state/v1beta1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta1/types_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/cometbft/state/v1beta2/types_pb2.py b/pyinjective/proto/cometbft/state/v1beta2/types_pb2.py new file mode 100644 index 00000000..01cc94a4 --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta2/types_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/state/v1beta2/types.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.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 +from pyinjective.proto.cometbft.state.v1beta1 import types_pb2 as cometbft_dot_state_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 +from pyinjective.proto.cometbft.types.v1beta2 import params_pb2 as cometbft_dot_types_dot_v1beta2_dot_params__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cometbft/state/v1beta2/types.proto\x12\x16\x63ometbft.state.v1beta2\x1a!cometbft/abci/v1beta2/types.proto\x1a\"cometbft/state/v1beta1/types.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a&cometbft/types/v1beta1/validator.proto\x1a#cometbft/types/v1beta2/params.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xec\x01\n\rABCIResponses\x12I\n\x0b\x64\x65liver_txs\x18\x01 \x03(\x0b\x32(.cometbft.abci.v1beta2.ResponseDeliverTxR\ndeliverTxs\x12\x44\n\tend_block\x18\x02 \x01(\x0b\x32\'.cometbft.abci.v1beta2.ResponseEndBlockR\x08\x65ndBlock\x12J\n\x0b\x62\x65gin_block\x18\x03 \x01(\x0b\x32).cometbft.abci.v1beta2.ResponseBeginBlockR\nbeginBlock\"\x9f\x01\n\x13\x43onsensusParamsInfo\x12X\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\'.cometbft.types.v1beta2.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"y\n\x11\x41\x42\x43IResponsesInfo\x12L\n\x0e\x61\x62\x63i_responses\x18\x01 \x01(\x0b\x32%.cometbft.state.v1beta2.ABCIResponsesR\rabciResponses\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\"\x85\x07\n\x05State\x12?\n\x07version\x18\x01 \x01(\x0b\x32\x1f.cometbft.state.v1beta1.VersionB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12%\n\x0einitial_height\x18\x0e \x01(\x03R\rinitialHeight\x12*\n\x11last_block_height\x18\x03 \x01(\x03R\x0flastBlockHeight\x12X\n\rlast_block_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x13\xc8\xde\x1f\x00\xe2\xde\x1f\x0bLastBlockIDR\x0blastBlockId\x12L\n\x0flast_block_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\rlastBlockTime\x12M\n\x0fnext_validators\x18\x06 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0enextValidators\x12\x44\n\nvalidators\x18\x07 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\nvalidators\x12M\n\x0flast_validators\x18\x08 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0elastValidators\x12\x43\n\x1elast_height_validators_changed\x18\t \x01(\x03R\x1blastHeightValidatorsChanged\x12X\n\x10\x63onsensus_params\x18\n \x01(\x0b\x32\'.cometbft.types.v1beta2.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12N\n$last_height_consensus_params_changed\x18\x0b \x01(\x03R lastHeightConsensusParamsChanged\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12\x19\n\x08\x61pp_hash\x18\r \x01(\x0cR\x07\x61ppHashB\xdb\x01\n\x1a\x63om.cometbft.state.v1beta2B\nTypesProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta2\xa2\x02\x03\x43SX\xaa\x02\x16\x43ometbft.State.V1beta2\xca\x02\x16\x43ometbft\\State\\V1beta2\xe2\x02\"Cometbft\\State\\V1beta2\\GPBMetadata\xea\x02\x18\x43ometbft::State::V1beta2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.state.v1beta2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.state.v1beta2B\nTypesProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta2\242\002\003CSX\252\002\026Cometbft.State.V1beta2\312\002\026Cometbft\\State\\V1beta2\342\002\"Cometbft\\State\\V1beta2\\GPBMetadata\352\002\030Cometbft::State::V1beta2' + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._loaded_options = None + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['version']._loaded_options = None + _globals['_STATE'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['chain_id']._loaded_options = None + _globals['_STATE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_STATE'].fields_by_name['last_block_id']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000\342\336\037\013LastBlockID' + _globals['_STATE'].fields_by_name['last_block_time']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_STATE'].fields_by_name['consensus_params']._loaded_options = None + _globals['_STATE'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_ABCIRESPONSES']._serialized_start=302 + _globals['_ABCIRESPONSES']._serialized_end=538 + _globals['_CONSENSUSPARAMSINFO']._serialized_start=541 + _globals['_CONSENSUSPARAMSINFO']._serialized_end=700 + _globals['_ABCIRESPONSESINFO']._serialized_start=702 + _globals['_ABCIRESPONSESINFO']._serialized_end=823 + _globals['_STATE']._serialized_start=826 + _globals['_STATE']._serialized_end=1727 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/state/v1beta2/types_pb2_grpc.py b/pyinjective/proto/cometbft/state/v1beta2/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta2/types_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/cometbft/state/v1beta3/types_pb2.py b/pyinjective/proto/cometbft/state/v1beta3/types_pb2.py new file mode 100644 index 00000000..846514da --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta3/types_pb2.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/state/v1beta3/types.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.cometbft.state.v1beta1 import types_pb2 as cometbft_dot_state_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta1 import types_pb2 as cometbft_dot_abci_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta2 import types_pb2 as cometbft_dot_abci_dot_v1beta2_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1beta3 import types_pb2 as cometbft_dot_abci_dot_v1beta3_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cometbft/state/v1beta3/types.proto\x12\x16\x63ometbft.state.v1beta3\x1a\"cometbft/state/v1beta1/types.proto\x1a!cometbft/abci/v1beta1/types.proto\x1a!cometbft/abci/v1beta2/types.proto\x1a!cometbft/abci/v1beta3/types.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a&cometbft/types/v1beta1/validator.proto\x1a\x1e\x63ometbft/types/v1/params.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xef\x01\n\x13LegacyABCIResponses\x12\x44\n\x0b\x64\x65liver_txs\x18\x01 \x03(\x0b\x32#.cometbft.abci.v1beta3.ExecTxResultR\ndeliverTxs\x12\x45\n\tend_block\x18\x02 \x01(\x0b\x32(.cometbft.state.v1beta3.ResponseEndBlockR\x08\x65ndBlock\x12K\n\x0b\x62\x65gin_block\x18\x03 \x01(\x0b\x32*.cometbft.state.v1beta3.ResponseBeginBlockR\nbeginBlock\"d\n\x12ResponseBeginBlock\x12N\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\x99\x02\n\x10ResponseEndBlock\x12Y\n\x11validator_updates\x18\x01 \x03(\x0b\x32&.cometbft.abci.v1beta1.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12Z\n\x17\x63onsensus_param_updates\x18\x02 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x15\x63onsensusParamUpdates\x12N\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1c.cometbft.abci.v1beta2.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\"\x9a\x01\n\x13\x43onsensusParamsInfo\x12S\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12.\n\x13last_height_changed\x18\x02 \x01(\x03R\x11lastHeightChanged\"\xf2\x01\n\x11\x41\x42\x43IResponsesInfo\x12_\n\x15legacy_abci_responses\x18\x01 \x01(\x0b\x32+.cometbft.state.v1beta3.LegacyABCIResponsesR\x13legacyAbciResponses\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x64\n\x17response_finalize_block\x18\x03 \x01(\x0b\x32,.cometbft.abci.v1beta3.ResponseFinalizeBlockR\x15responseFinalizeBlock\"\x80\x07\n\x05State\x12?\n\x07version\x18\x01 \x01(\x0b\x32\x1f.cometbft.state.v1beta1.VersionB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12%\n\x0einitial_height\x18\x0e \x01(\x03R\rinitialHeight\x12*\n\x11last_block_height\x18\x03 \x01(\x03R\x0flastBlockHeight\x12X\n\rlast_block_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x13\xc8\xde\x1f\x00\xe2\xde\x1f\x0bLastBlockIDR\x0blastBlockId\x12L\n\x0flast_block_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\rlastBlockTime\x12M\n\x0fnext_validators\x18\x06 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0enextValidators\x12\x44\n\nvalidators\x18\x07 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\nvalidators\x12M\n\x0flast_validators\x18\x08 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0elastValidators\x12\x43\n\x1elast_height_validators_changed\x18\t \x01(\x03R\x1blastHeightValidatorsChanged\x12S\n\x10\x63onsensus_params\x18\n \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusParams\x12N\n$last_height_consensus_params_changed\x18\x0b \x01(\x03R lastHeightConsensusParamsChanged\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12\x19\n\x08\x61pp_hash\x18\r \x01(\x0cR\x07\x61ppHashB\xdb\x01\n\x1a\x63om.cometbft.state.v1beta3B\nTypesProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta3\xa2\x02\x03\x43SX\xaa\x02\x16\x43ometbft.State.V1beta3\xca\x02\x16\x43ometbft\\State\\V1beta3\xe2\x02\"Cometbft\\State\\V1beta3\\GPBMetadata\xea\x02\x18\x43ometbft::State::V1beta3b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.state.v1beta3.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.state.v1beta3B\nTypesProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/state/v1beta3\242\002\003CSX\252\002\026Cometbft.State.V1beta3\312\002\026Cometbft\\State\\V1beta3\342\002\"Cometbft\\State\\V1beta3\\GPBMetadata\352\002\030Cometbft::State::V1beta3' + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEBEGINBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._loaded_options = None + _globals['_RESPONSEENDBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._loaded_options = None + _globals['_CONSENSUSPARAMSINFO'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['version']._loaded_options = None + _globals['_STATE'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_STATE'].fields_by_name['chain_id']._loaded_options = None + _globals['_STATE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_STATE'].fields_by_name['last_block_id']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000\342\336\037\013LastBlockID' + _globals['_STATE'].fields_by_name['last_block_time']._loaded_options = None + _globals['_STATE'].fields_by_name['last_block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_STATE'].fields_by_name['consensus_params']._loaded_options = None + _globals['_STATE'].fields_by_name['consensus_params']._serialized_options = b'\310\336\037\000' + _globals['_LEGACYABCIRESPONSES']._serialized_start=367 + _globals['_LEGACYABCIRESPONSES']._serialized_end=606 + _globals['_RESPONSEBEGINBLOCK']._serialized_start=608 + _globals['_RESPONSEBEGINBLOCK']._serialized_end=708 + _globals['_RESPONSEENDBLOCK']._serialized_start=711 + _globals['_RESPONSEENDBLOCK']._serialized_end=992 + _globals['_CONSENSUSPARAMSINFO']._serialized_start=995 + _globals['_CONSENSUSPARAMSINFO']._serialized_end=1149 + _globals['_ABCIRESPONSESINFO']._serialized_start=1152 + _globals['_ABCIRESPONSESINFO']._serialized_end=1394 + _globals['_STATE']._serialized_start=1397 + _globals['_STATE']._serialized_end=2293 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/state/v1beta3/types_pb2_grpc.py b/pyinjective/proto/cometbft/state/v1beta3/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/state/v1beta3/types_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/cometbft/statesync/v1/types_pb2.py b/pyinjective/proto/cometbft/statesync/v1/types_pb2.py new file mode 100644 index 00000000..a6f48e2f --- /dev/null +++ b/pyinjective/proto/cometbft/statesync/v1/types_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/statesync/v1/types.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/statesync/v1/types.proto\x12\x15\x63ometbft.statesync.v1\"\xde\x02\n\x07Message\x12V\n\x11snapshots_request\x18\x01 \x01(\x0b\x32\'.cometbft.statesync.v1.SnapshotsRequestH\x00R\x10snapshotsRequest\x12Y\n\x12snapshots_response\x18\x02 \x01(\x0b\x32(.cometbft.statesync.v1.SnapshotsResponseH\x00R\x11snapshotsResponse\x12J\n\rchunk_request\x18\x03 \x01(\x0b\x32#.cometbft.statesync.v1.ChunkRequestH\x00R\x0c\x63hunkRequest\x12M\n\x0e\x63hunk_response\x18\x04 \x01(\x0b\x32$.cometbft.statesync.v1.ChunkResponseH\x00R\rchunkResponseB\x05\n\x03sum\"\x12\n\x10SnapshotsRequest\"\x8b\x01\n\x11SnapshotsResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x16\n\x06\x63hunks\x18\x03 \x01(\rR\x06\x63hunks\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x1a\n\x08metadata\x18\x05 \x01(\x0cR\x08metadata\"T\n\x0c\x43hunkRequest\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\"\x85\x01\n\rChunkResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x14\n\x05\x63hunk\x18\x04 \x01(\x0cR\x05\x63hunk\x12\x18\n\x07missing\x18\x05 \x01(\x08R\x07missingB\xd5\x01\n\x19\x63om.cometbft.statesync.v1B\nTypesProtoP\x01Z6github.com/cometbft/cometbft/api/cometbft/statesync/v1\xa2\x02\x03\x43SX\xaa\x02\x15\x43ometbft.Statesync.V1\xca\x02\x15\x43ometbft\\Statesync\\V1\xe2\x02!Cometbft\\Statesync\\V1\\GPBMetadata\xea\x02\x17\x43ometbft::Statesync::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.statesync.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.cometbft.statesync.v1B\nTypesProtoP\001Z6github.com/cometbft/cometbft/api/cometbft/statesync/v1\242\002\003CSX\252\002\025Cometbft.Statesync.V1\312\002\025Cometbft\\Statesync\\V1\342\002!Cometbft\\Statesync\\V1\\GPBMetadata\352\002\027Cometbft::Statesync::V1' + _globals['_MESSAGE']._serialized_start=61 + _globals['_MESSAGE']._serialized_end=411 + _globals['_SNAPSHOTSREQUEST']._serialized_start=413 + _globals['_SNAPSHOTSREQUEST']._serialized_end=431 + _globals['_SNAPSHOTSRESPONSE']._serialized_start=434 + _globals['_SNAPSHOTSRESPONSE']._serialized_end=573 + _globals['_CHUNKREQUEST']._serialized_start=575 + _globals['_CHUNKREQUEST']._serialized_end=659 + _globals['_CHUNKRESPONSE']._serialized_start=662 + _globals['_CHUNKRESPONSE']._serialized_end=795 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/statesync/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/statesync/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/statesync/v1/types_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/cometbft/store/v1/types_pb2.py b/pyinjective/proto/cometbft/store/v1/types_pb2.py new file mode 100644 index 00000000..9ea9ff33 --- /dev/null +++ b/pyinjective/proto/cometbft/store/v1/types_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/store/v1/types.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63ometbft/store/v1/types.proto\x12\x11\x63ometbft.store.v1\"=\n\x0f\x42lockStoreState\x12\x12\n\x04\x62\x61se\x18\x01 \x01(\x03R\x04\x62\x61se\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06heightB\xbd\x01\n\x15\x63om.cometbft.store.v1B\nTypesProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/store/v1\xa2\x02\x03\x43SX\xaa\x02\x11\x43ometbft.Store.V1\xca\x02\x11\x43ometbft\\Store\\V1\xe2\x02\x1d\x43ometbft\\Store\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Store::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.store.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.store.v1B\nTypesProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/store/v1\242\002\003CSX\252\002\021Cometbft.Store.V1\312\002\021Cometbft\\Store\\V1\342\002\035Cometbft\\Store\\V1\\GPBMetadata\352\002\023Cometbft::Store::V1' + _globals['_BLOCKSTORESTATE']._serialized_start=52 + _globals['_BLOCKSTORESTATE']._serialized_end=113 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/store/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/store/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/store/v1/types_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/cometbft/types/v1/block_pb2.py b/pyinjective/proto/cometbft/types/v1/block_pb2.py new file mode 100644 index 00000000..968be6db --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/block_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/block.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.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import evidence_pb2 as cometbft_dot_types_dot_v1_dot_evidence__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63ometbft/types/v1/block.proto\x12\x11\x63ometbft.types.v1\x1a\x1d\x63ometbft/types/v1/types.proto\x1a cometbft/types/v1/evidence.proto\x1a\x14gogoproto/gogo.proto\"\xf2\x01\n\x05\x42lock\x12\x37\n\x06header\x18\x01 \x01(\x0b\x32\x19.cometbft.types.v1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.cometbft.types.v1.DataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta\x12\x41\n\x08\x65vidence\x18\x03 \x01(\x0b\x32\x1f.cometbft.types.v1.EvidenceListB\x04\xc8\xde\x1f\x00R\x08\x65vidence\x12:\n\x0blast_commit\x18\x04 \x01(\x0b\x32\x19.cometbft.types.v1.CommitR\nlastCommitB\xbd\x01\n\x15\x63om.cometbft.types.v1B\nBlockProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.block_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\nBlockProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_BLOCK'].fields_by_name['header']._loaded_options = None + _globals['_BLOCK'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK'].fields_by_name['data']._loaded_options = None + _globals['_BLOCK'].fields_by_name['data']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK'].fields_by_name['evidence']._loaded_options = None + _globals['_BLOCK'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK']._serialized_start=140 + _globals['_BLOCK']._serialized_end=382 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/block_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/block_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/block_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/cometbft/types/v1/canonical_pb2.py b/pyinjective/proto/cometbft/types/v1/canonical_pb2.py new file mode 100644 index 00000000..ab046551 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/canonical_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/canonical.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.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/types/v1/canonical.proto\x12\x11\x63ometbft.types.v1\x1a\x14gogoproto/gogo.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x7f\n\x10\x43\x61nonicalBlockID\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12W\n\x0fpart_set_header\x18\x02 \x01(\x0b\x32).cometbft.types.v1.CanonicalPartSetHeaderB\x04\xc8\xde\x1f\x00R\rpartSetHeader\"B\n\x16\x43\x61nonicalPartSetHeader\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\"\xdb\x02\n\x11\x43\x61nonicalProposal\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x10R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x10R\x05round\x12)\n\tpol_round\x18\x04 \x01(\x03\x42\x0c\xe2\xde\x1f\x08POLRoundR\x08polRound\x12K\n\x08\x62lock_id\x18\x05 \x01(\x0b\x32#.cometbft.types.v1.CanonicalBlockIDB\x0b\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12&\n\x08\x63hain_id\x18\x07 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\"\xac\x02\n\rCanonicalVote\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x10R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x10R\x05round\x12K\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32#.cometbft.types.v1.CanonicalBlockIDB\x0b\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12&\n\x08\x63hain_id\x18\x06 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\"\x7f\n\x16\x43\x61nonicalVoteExtension\x12\x1c\n\textension\x18\x01 \x01(\x0cR\textension\x12\x16\n\x06height\x18\x02 \x01(\x10R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x10R\x05round\x12\x19\n\x08\x63hain_id\x18\x04 \x01(\tR\x07\x63hainIdB\xc1\x01\n\x15\x63om.cometbft.types.v1B\x0e\x43\x61nonicalProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.canonical_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\016CanonicalProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_CANONICALBLOCKID'].fields_by_name['part_set_header']._loaded_options = None + _globals['_CANONICALBLOCKID'].fields_by_name['part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_CANONICALPROPOSAL'].fields_by_name['pol_round']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['pol_round']._serialized_options = b'\342\336\037\010POLRound' + _globals['_CANONICALPROPOSAL'].fields_by_name['block_id']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['block_id']._serialized_options = b'\342\336\037\007BlockID' + _globals['_CANONICALPROPOSAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CANONICALPROPOSAL'].fields_by_name['chain_id']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_CANONICALVOTE'].fields_by_name['block_id']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['block_id']._serialized_options = b'\342\336\037\007BlockID' + _globals['_CANONICALVOTE'].fields_by_name['timestamp']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CANONICALVOTE'].fields_by_name['chain_id']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_CANONICALBLOCKID']._serialized_start=142 + _globals['_CANONICALBLOCKID']._serialized_end=269 + _globals['_CANONICALPARTSETHEADER']._serialized_start=271 + _globals['_CANONICALPARTSETHEADER']._serialized_end=337 + _globals['_CANONICALPROPOSAL']._serialized_start=340 + _globals['_CANONICALPROPOSAL']._serialized_end=687 + _globals['_CANONICALVOTE']._serialized_start=690 + _globals['_CANONICALVOTE']._serialized_end=990 + _globals['_CANONICALVOTEEXTENSION']._serialized_start=992 + _globals['_CANONICALVOTEEXTENSION']._serialized_end=1119 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/canonical_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/canonical_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/canonical_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/cometbft/types/v1/events_pb2.py b/pyinjective/proto/cometbft/types/v1/events_pb2.py new file mode 100644 index 00000000..65400f94 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/events_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ometbft/types/v1/events.proto\x12\x11\x63ometbft.types.v1\"W\n\x13\x45ventDataRoundState\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x03 \x01(\tR\x04stepB\xbe\x01\n\x15\x63om.cometbft.types.v1B\x0b\x45ventsProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\013EventsProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_EVENTDATAROUNDSTATE']._serialized_start=53 + _globals['_EVENTDATAROUNDSTATE']._serialized_end=140 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/events_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/events_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/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/cometbft/types/v1/evidence_pb2.py b/pyinjective/proto/cometbft/types/v1/evidence_pb2.py new file mode 100644 index 00000000..78e2f312 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/evidence_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/evidence.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.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import validator_pb2 as cometbft_dot_types_dot_v1_dot_validator__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n cometbft/types/v1/evidence.proto\x12\x11\x63ometbft.types.v1\x1a\x1d\x63ometbft/types/v1/types.proto\x1a!cometbft/types/v1/validator.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe6\x01\n\x08\x45vidence\x12\x62\n\x17\x64uplicate_vote_evidence\x18\x01 \x01(\x0b\x32(.cometbft.types.v1.DuplicateVoteEvidenceH\x00R\x15\x64uplicateVoteEvidence\x12o\n\x1clight_client_attack_evidence\x18\x02 \x01(\x0b\x32,.cometbft.types.v1.LightClientAttackEvidenceH\x00R\x19lightClientAttackEvidenceB\x05\n\x03sum\"\x92\x02\n\x15\x44uplicateVoteEvidence\x12.\n\x06vote_a\x18\x01 \x01(\x0b\x32\x17.cometbft.types.v1.VoteR\x05voteA\x12.\n\x06vote_b\x18\x02 \x01(\x0b\x32\x17.cometbft.types.v1.VoteR\x05voteB\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\x12\'\n\x0fvalidator_power\x18\x04 \x01(\x03R\x0evalidatorPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"\xcf\x02\n\x19LightClientAttackEvidence\x12J\n\x11\x63onflicting_block\x18\x01 \x01(\x0b\x32\x1d.cometbft.types.v1.LightBlockR\x10\x63onflictingBlock\x12#\n\rcommon_height\x18\x02 \x01(\x03R\x0c\x63ommonHeight\x12O\n\x14\x62yzantine_validators\x18\x03 \x03(\x0b\x32\x1c.cometbft.types.v1.ValidatorR\x13\x62yzantineValidators\x12,\n\x12total_voting_power\x18\x04 \x01(\x03R\x10totalVotingPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"M\n\x0c\x45videnceList\x12=\n\x08\x65vidence\x18\x01 \x03(\x0b\x32\x1b.cometbft.types.v1.EvidenceB\x04\xc8\xde\x1f\x00R\x08\x65videnceB\xc0\x01\n\x15\x63om.cometbft.types.v1B\rEvidenceProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.evidence_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\rEvidenceProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._loaded_options = None + _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._loaded_options = None + _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_EVIDENCELIST'].fields_by_name['evidence']._loaded_options = None + _globals['_EVIDENCELIST'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' + _globals['_EVIDENCE']._serialized_start=177 + _globals['_EVIDENCE']._serialized_end=407 + _globals['_DUPLICATEVOTEEVIDENCE']._serialized_start=410 + _globals['_DUPLICATEVOTEEVIDENCE']._serialized_end=684 + _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_start=687 + _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_end=1022 + _globals['_EVIDENCELIST']._serialized_start=1024 + _globals['_EVIDENCELIST']._serialized_end=1101 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/evidence_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/evidence_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/evidence_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/cometbft/types/v1/params_pb2.py b/pyinjective/proto/cometbft/types/v1/params_pb2.py new file mode 100644 index 00000000..0d9f245c --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/params_pb2.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/params.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 google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ometbft/types/v1/params.proto\x12\x11\x63ometbft.types.v1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb9\x03\n\x0f\x43onsensusParams\x12\x34\n\x05\x62lock\x18\x01 \x01(\x0b\x32\x1e.cometbft.types.v1.BlockParamsR\x05\x62lock\x12=\n\x08\x65vidence\x18\x02 \x01(\x0b\x32!.cometbft.types.v1.EvidenceParamsR\x08\x65vidence\x12@\n\tvalidator\x18\x03 \x01(\x0b\x32\".cometbft.types.v1.ValidatorParamsR\tvalidator\x12:\n\x07version\x18\x04 \x01(\x0b\x32 .cometbft.types.v1.VersionParamsR\x07version\x12\x35\n\x04\x61\x62\x63i\x18\x05 \x01(\x0b\x32\x1d.cometbft.types.v1.ABCIParamsB\x02\x18\x01R\x04\x61\x62\x63i\x12@\n\tsynchrony\x18\x06 \x01(\x0b\x32\".cometbft.types.v1.SynchronyParamsR\tsynchrony\x12:\n\x07\x66\x65\x61ture\x18\x07 \x01(\x0b\x32 .cometbft.types.v1.FeatureParamsR\x07\x66\x65\x61ture\"I\n\x0b\x42lockParams\x12\x1b\n\tmax_bytes\x18\x01 \x01(\x03R\x08maxBytes\x12\x17\n\x07max_gas\x18\x02 \x01(\x03R\x06maxGasJ\x04\x08\x03\x10\x04\"\xa9\x01\n\x0e\x45videnceParams\x12+\n\x12max_age_num_blocks\x18\x01 \x01(\x03R\x0fmaxAgeNumBlocks\x12M\n\x10max_age_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0emaxAgeDuration\x12\x1b\n\tmax_bytes\x18\x03 \x01(\x03R\x08maxBytes\"?\n\x0fValidatorParams\x12\"\n\rpub_key_types\x18\x01 \x03(\tR\x0bpubKeyTypes:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"+\n\rVersionParams\x12\x10\n\x03\x61pp\x18\x01 \x01(\x04R\x03\x61pp:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"Z\n\x0cHashedParams\x12&\n\x0f\x62lock_max_bytes\x18\x01 \x01(\x03R\rblockMaxBytes\x12\"\n\rblock_max_gas\x18\x02 \x01(\x03R\x0b\x62lockMaxGas\"\x96\x01\n\x0fSynchronyParams\x12=\n\tprecision\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01R\tprecision\x12\x44\n\rmessage_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x04\x98\xdf\x1f\x01R\x0cmessageDelay\"\xc6\x01\n\rFeatureParams\x12\x64\n\x1dvote_extensions_enable_height\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x04\xc8\xde\x1f\x01R\x1avoteExtensionsEnableHeight\x12O\n\x12pbts_enable_height\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x04\xc8\xde\x1f\x01R\x10pbtsEnableHeight\"S\n\nABCIParams\x12\x41\n\x1dvote_extensions_enable_height\x18\x01 \x01(\x03R\x1avoteExtensionsEnableHeight:\x02\x18\x01\x42\xc2\x01\n\x15\x63om.cometbft.types.v1B\x0bParamsProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1\xa8\xe2\x1e\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.params_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\013ParamsProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1\250\342\036\001' + _globals['_CONSENSUSPARAMS'].fields_by_name['abci']._loaded_options = None + _globals['_CONSENSUSPARAMS'].fields_by_name['abci']._serialized_options = b'\030\001' + _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._loaded_options = None + _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._serialized_options = b'\310\336\037\000\230\337\037\001' + _globals['_VALIDATORPARAMS']._loaded_options = None + _globals['_VALIDATORPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' + _globals['_VERSIONPARAMS']._loaded_options = None + _globals['_VERSIONPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' + _globals['_SYNCHRONYPARAMS'].fields_by_name['precision']._loaded_options = None + _globals['_SYNCHRONYPARAMS'].fields_by_name['precision']._serialized_options = b'\230\337\037\001' + _globals['_SYNCHRONYPARAMS'].fields_by_name['message_delay']._loaded_options = None + _globals['_SYNCHRONYPARAMS'].fields_by_name['message_delay']._serialized_options = b'\230\337\037\001' + _globals['_FEATUREPARAMS'].fields_by_name['vote_extensions_enable_height']._loaded_options = None + _globals['_FEATUREPARAMS'].fields_by_name['vote_extensions_enable_height']._serialized_options = b'\310\336\037\001' + _globals['_FEATUREPARAMS'].fields_by_name['pbts_enable_height']._loaded_options = None + _globals['_FEATUREPARAMS'].fields_by_name['pbts_enable_height']._serialized_options = b'\310\336\037\001' + _globals['_ABCIPARAMS']._loaded_options = None + _globals['_ABCIPARAMS']._serialized_options = b'\030\001' + _globals['_CONSENSUSPARAMS']._serialized_start=140 + _globals['_CONSENSUSPARAMS']._serialized_end=581 + _globals['_BLOCKPARAMS']._serialized_start=583 + _globals['_BLOCKPARAMS']._serialized_end=656 + _globals['_EVIDENCEPARAMS']._serialized_start=659 + _globals['_EVIDENCEPARAMS']._serialized_end=828 + _globals['_VALIDATORPARAMS']._serialized_start=830 + _globals['_VALIDATORPARAMS']._serialized_end=893 + _globals['_VERSIONPARAMS']._serialized_start=895 + _globals['_VERSIONPARAMS']._serialized_end=938 + _globals['_HASHEDPARAMS']._serialized_start=940 + _globals['_HASHEDPARAMS']._serialized_end=1030 + _globals['_SYNCHRONYPARAMS']._serialized_start=1033 + _globals['_SYNCHRONYPARAMS']._serialized_end=1183 + _globals['_FEATUREPARAMS']._serialized_start=1186 + _globals['_FEATUREPARAMS']._serialized_end=1384 + _globals['_ABCIPARAMS']._serialized_start=1386 + _globals['_ABCIPARAMS']._serialized_end=1469 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/params_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/params_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/params_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/cometbft/types/v1/types_pb2.py b/pyinjective/proto/cometbft/types/v1/types_pb2.py new file mode 100644 index 00000000..4a101f49 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/types_pb2.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/types.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.cometbft.crypto.v1 import proof_pb2 as cometbft_dot_crypto_dot_v1_dot_proof__pb2 +from pyinjective.proto.cometbft.types.v1 import validator_pb2 as cometbft_dot_types_dot_v1_dot_validator__pb2 +from pyinjective.proto.cometbft.version.v1 import types_pb2 as cometbft_dot_version_dot_v1_dot_types__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x63ometbft/types/v1/types.proto\x12\x11\x63ometbft.types.v1\x1a\x1e\x63ometbft/crypto/v1/proof.proto\x1a!cometbft/types/v1/validator.proto\x1a\x1f\x63ometbft/version/v1/types.proto\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"9\n\rPartSetHeader\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\"i\n\x04Part\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x0cR\x05\x62ytes\x12\x35\n\x05proof\x18\x03 \x01(\x0b\x32\x19.cometbft.crypto.v1.ProofB\x04\xc8\xde\x1f\x00R\x05proof\"m\n\x07\x42lockID\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12N\n\x0fpart_set_header\x18\x02 \x01(\x0b\x32 .cometbft.types.v1.PartSetHeaderB\x04\xc8\xde\x1f\x00R\rpartSetHeader\"\xe8\x04\n\x06Header\x12>\n\x07version\x18\x01 \x01(\x0b\x32\x1e.cometbft.version.v1.ConsensusB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x44\n\rlast_block_id\x18\x05 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x04\xc8\xde\x1f\x00R\x0blastBlockId\x12(\n\x10last_commit_hash\x18\x06 \x01(\x0cR\x0elastCommitHash\x12\x1b\n\tdata_hash\x18\x07 \x01(\x0cR\x08\x64\x61taHash\x12\'\n\x0fvalidators_hash\x18\x08 \x01(\x0cR\x0evalidatorsHash\x12\x30\n\x14next_validators_hash\x18\t \x01(\x0cR\x12nextValidatorsHash\x12%\n\x0e\x63onsensus_hash\x18\n \x01(\x0cR\rconsensusHash\x12\x19\n\x08\x61pp_hash\x18\x0b \x01(\x0cR\x07\x61ppHash\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12#\n\revidence_hash\x18\r \x01(\x0cR\x0c\x65videnceHash\x12)\n\x10proposer_address\x18\x0e \x01(\x0cR\x0fproposerAddress\"\x18\n\x04\x44\x61ta\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\xb9\x03\n\x04Vote\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x46\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12+\n\x11validator_address\x18\x06 \x01(\x0cR\x10validatorAddress\x12\'\n\x0fvalidator_index\x18\x07 \x01(\x05R\x0evalidatorIndex\x12\x1c\n\tsignature\x18\x08 \x01(\x0cR\tsignature\x12\x1c\n\textension\x18\t \x01(\x0cR\textension\x12/\n\x13\x65xtension_signature\x18\n \x01(\x0cR\x12\x65xtensionSignature\"\xc2\x01\n\x06\x43ommit\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x46\n\x08\x62lock_id\x18\x03 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\nsignatures\x18\x04 \x03(\x0b\x32\x1c.cometbft.types.v1.CommitSigB\x04\xc8\xde\x1f\x00R\nsignatures\"\xde\x01\n\tCommitSig\x12\x42\n\rblock_id_flag\x18\x01 \x01(\x0e\x32\x1e.cometbft.types.v1.BlockIDFlagR\x0b\x62lockIdFlag\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x42\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignature\"\xe3\x01\n\x0e\x45xtendedCommit\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x46\n\x08\x62lock_id\x18\x03 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12[\n\x13\x65xtended_signatures\x18\x04 \x03(\x0b\x32$.cometbft.types.v1.ExtendedCommitSigB\x04\xc8\xde\x1f\x00R\x12\x65xtendedSignatures\"\xb5\x02\n\x11\x45xtendedCommitSig\x12\x42\n\rblock_id_flag\x18\x01 \x01(\x0e\x32\x1e.cometbft.types.v1.BlockIDFlagR\x0b\x62lockIdFlag\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x42\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignature\x12\x1c\n\textension\x18\x05 \x01(\x0cR\textension\x12/\n\x13\x65xtension_signature\x18\x06 \x01(\x0cR\x12\x65xtensionSignature\"\xb5\x02\n\x08Proposal\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32 .cometbft.types.v1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x1b\n\tpol_round\x18\x04 \x01(\x05R\x08polRound\x12\x46\n\x08\x62lock_id\x18\x05 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x07 \x01(\x0cR\tsignature\"t\n\x0cSignedHeader\x12\x31\n\x06header\x18\x01 \x01(\x0b\x32\x19.cometbft.types.v1.HeaderR\x06header\x12\x31\n\x06\x63ommit\x18\x02 \x01(\x0b\x32\x19.cometbft.types.v1.CommitR\x06\x63ommit\"\x98\x01\n\nLightBlock\x12\x44\n\rsigned_header\x18\x01 \x01(\x0b\x32\x1f.cometbft.types.v1.SignedHeaderR\x0csignedHeader\x12\x44\n\rvalidator_set\x18\x02 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x0cvalidatorSet\"\xc4\x01\n\tBlockMeta\x12\x46\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x1d\n\nblock_size\x18\x02 \x01(\x03R\tblockSize\x12\x37\n\x06header\x18\x03 \x01(\x0b\x32\x19.cometbft.types.v1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x17\n\x07num_txs\x18\x04 \x01(\x03R\x06numTxs\"k\n\x07TxProof\x12\x1b\n\troot_hash\x18\x01 \x01(\x0cR\x08rootHash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12/\n\x05proof\x18\x03 \x01(\x0b\x32\x19.cometbft.crypto.v1.ProofR\x05proof*\xd7\x01\n\rSignedMsgType\x12,\n\x17SIGNED_MSG_TYPE_UNKNOWN\x10\x00\x1a\x0f\x8a\x9d \x0bUnknownType\x12,\n\x17SIGNED_MSG_TYPE_PREVOTE\x10\x01\x1a\x0f\x8a\x9d \x0bPrevoteType\x12\x30\n\x19SIGNED_MSG_TYPE_PRECOMMIT\x10\x02\x1a\x11\x8a\x9d \rPrecommitType\x12.\n\x18SIGNED_MSG_TYPE_PROPOSAL\x10 \x1a\x10\x8a\x9d \x0cProposalType\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xbd\x01\n\x15\x63om.cometbft.types.v1B\nTypesProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\nTypesProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_SIGNEDMSGTYPE']._loaded_options = None + _globals['_SIGNEDMSGTYPE']._serialized_options = b'\210\243\036\000\250\244\036\001' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._serialized_options = b'\212\235 \013UnknownType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._serialized_options = b'\212\235 \013PrevoteType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._serialized_options = b'\212\235 \rPrecommitType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._serialized_options = b'\212\235 \014ProposalType' + _globals['_PART'].fields_by_name['proof']._loaded_options = None + _globals['_PART'].fields_by_name['proof']._serialized_options = b'\310\336\037\000' + _globals['_BLOCKID'].fields_by_name['part_set_header']._loaded_options = None + _globals['_BLOCKID'].fields_by_name['part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_HEADER'].fields_by_name['version']._loaded_options = None + _globals['_HEADER'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_HEADER'].fields_by_name['chain_id']._loaded_options = None + _globals['_HEADER'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_HEADER'].fields_by_name['time']._loaded_options = None + _globals['_HEADER'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_HEADER'].fields_by_name['last_block_id']._loaded_options = None + _globals['_HEADER'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000' + _globals['_VOTE'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTE'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTE'].fields_by_name['timestamp']._loaded_options = None + _globals['_VOTE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_COMMIT'].fields_by_name['block_id']._loaded_options = None + _globals['_COMMIT'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_COMMIT'].fields_by_name['signatures']._loaded_options = None + _globals['_COMMIT'].fields_by_name['signatures']._serialized_options = b'\310\336\037\000' + _globals['_COMMITSIG'].fields_by_name['timestamp']._loaded_options = None + _globals['_COMMITSIG'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_EXTENDEDCOMMIT'].fields_by_name['block_id']._loaded_options = None + _globals['_EXTENDEDCOMMIT'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_EXTENDEDCOMMIT'].fields_by_name['extended_signatures']._loaded_options = None + _globals['_EXTENDEDCOMMIT'].fields_by_name['extended_signatures']._serialized_options = b'\310\336\037\000' + _globals['_EXTENDEDCOMMITSIG'].fields_by_name['timestamp']._loaded_options = None + _globals['_EXTENDEDCOMMITSIG'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_PROPOSAL'].fields_by_name['block_id']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_PROPOSAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_BLOCKMETA'].fields_by_name['block_id']._loaded_options = None + _globals['_BLOCKMETA'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_BLOCKMETA'].fields_by_name['header']._loaded_options = None + _globals['_BLOCKMETA'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDMSGTYPE']._serialized_start=3431 + _globals['_SIGNEDMSGTYPE']._serialized_end=3646 + _globals['_PARTSETHEADER']._serialized_start=207 + _globals['_PARTSETHEADER']._serialized_end=264 + _globals['_PART']._serialized_start=266 + _globals['_PART']._serialized_end=371 + _globals['_BLOCKID']._serialized_start=373 + _globals['_BLOCKID']._serialized_end=482 + _globals['_HEADER']._serialized_start=485 + _globals['_HEADER']._serialized_end=1101 + _globals['_DATA']._serialized_start=1103 + _globals['_DATA']._serialized_end=1127 + _globals['_VOTE']._serialized_start=1130 + _globals['_VOTE']._serialized_end=1571 + _globals['_COMMIT']._serialized_start=1574 + _globals['_COMMIT']._serialized_end=1768 + _globals['_COMMITSIG']._serialized_start=1771 + _globals['_COMMITSIG']._serialized_end=1993 + _globals['_EXTENDEDCOMMIT']._serialized_start=1996 + _globals['_EXTENDEDCOMMIT']._serialized_end=2223 + _globals['_EXTENDEDCOMMITSIG']._serialized_start=2226 + _globals['_EXTENDEDCOMMITSIG']._serialized_end=2535 + _globals['_PROPOSAL']._serialized_start=2538 + _globals['_PROPOSAL']._serialized_end=2847 + _globals['_SIGNEDHEADER']._serialized_start=2849 + _globals['_SIGNEDHEADER']._serialized_end=2965 + _globals['_LIGHTBLOCK']._serialized_start=2968 + _globals['_LIGHTBLOCK']._serialized_end=3120 + _globals['_BLOCKMETA']._serialized_start=3123 + _globals['_BLOCKMETA']._serialized_end=3319 + _globals['_TXPROOF']._serialized_start=3321 + _globals['_TXPROOF']._serialized_end=3428 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/types_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/cometbft/types/v1/validator_pb2.py b/pyinjective/proto/cometbft/types/v1/validator_pb2.py new file mode 100644 index 00000000..a575893b --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/validator_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1/validator.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cometbft/types/v1/validator.proto\x12\x11\x63ometbft.types.v1\x1a\x1d\x63ometbft/crypto/v1/keys.proto\x1a\x14gogoproto/gogo.proto\"\xb4\x01\n\x0cValidatorSet\x12<\n\nvalidators\x18\x01 \x03(\x0b\x32\x1c.cometbft.types.v1.ValidatorR\nvalidators\x12\x38\n\x08proposer\x18\x02 \x01(\x0b\x32\x1c.cometbft.types.v1.ValidatorR\x08proposer\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\"\xf7\x01\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12:\n\x07pub_key\x18\x02 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x02\x18\x01R\x06pubKey\x12!\n\x0cvoting_power\x18\x03 \x01(\x03R\x0bvotingPower\x12+\n\x11proposer_priority\x18\x04 \x01(\x03R\x10proposerPriority\x12\"\n\rpub_key_bytes\x18\x05 \x01(\x0cR\x0bpubKeyBytes\x12 \n\x0cpub_key_type\x18\x06 \x01(\tR\npubKeyType\"l\n\x0fSimpleValidator\x12\x36\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyR\x06pubKey\x12!\n\x0cvoting_power\x18\x02 \x01(\x03R\x0bvotingPower*\xd7\x01\n\x0b\x42lockIDFlag\x12\x31\n\x15\x42LOCK_ID_FLAG_UNKNOWN\x10\x00\x1a\x16\x8a\x9d \x12\x42lockIDFlagUnknown\x12/\n\x14\x42LOCK_ID_FLAG_ABSENT\x10\x01\x1a\x15\x8a\x9d \x11\x42lockIDFlagAbsent\x12/\n\x14\x42LOCK_ID_FLAG_COMMIT\x10\x02\x1a\x15\x8a\x9d \x11\x42lockIDFlagCommit\x12)\n\x11\x42LOCK_ID_FLAG_NIL\x10\x03\x1a\x12\x8a\x9d \x0e\x42lockIDFlagNil\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xc1\x01\n\x15\x63om.cometbft.types.v1B\x0eValidatorProtoP\x01Z2github.com/cometbft/cometbft/api/cometbft/types/v1\xa2\x02\x03\x43TX\xaa\x02\x11\x43ometbft.Types.V1\xca\x02\x11\x43ometbft\\Types\\V1\xe2\x02\x1d\x43ometbft\\Types\\V1\\GPBMetadata\xea\x02\x13\x43ometbft::Types::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1.validator_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.cometbft.types.v1B\016ValidatorProtoP\001Z2github.com/cometbft/cometbft/api/cometbft/types/v1\242\002\003CTX\252\002\021Cometbft.Types.V1\312\002\021Cometbft\\Types\\V1\342\002\035Cometbft\\Types\\V1\\GPBMetadata\352\002\023Cometbft::Types::V1' + _globals['_BLOCKIDFLAG']._loaded_options = None + _globals['_BLOCKIDFLAG']._serialized_options = b'\210\243\036\000\250\244\036\001' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._serialized_options = b'\212\235 \022BlockIDFlagUnknown' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._serialized_options = b'\212\235 \021BlockIDFlagAbsent' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._serialized_options = b'\212\235 \021BlockIDFlagCommit' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._serialized_options = b'\212\235 \016BlockIDFlagNil' + _globals['_VALIDATOR'].fields_by_name['pub_key']._loaded_options = None + _globals['_VALIDATOR'].fields_by_name['pub_key']._serialized_options = b'\030\001' + _globals['_BLOCKIDFLAG']._serialized_start=653 + _globals['_BLOCKIDFLAG']._serialized_end=868 + _globals['_VALIDATORSET']._serialized_start=110 + _globals['_VALIDATORSET']._serialized_end=290 + _globals['_VALIDATOR']._serialized_start=293 + _globals['_VALIDATOR']._serialized_end=540 + _globals['_SIMPLEVALIDATOR']._serialized_start=542 + _globals['_SIMPLEVALIDATOR']._serialized_end=650 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1/validator_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1/validator_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1/validator_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/cometbft/types/v1beta1/block_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/block_pb2.py new file mode 100644 index 00000000..3428c88f --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/block_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/block.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.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import evidence_pb2 as cometbft_dot_types_dot_v1beta1_dot_evidence__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cometbft/types/v1beta1/block.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a%cometbft/types/v1beta1/evidence.proto\"\x86\x02\n\x05\x42lock\x12<\n\x06header\x18\x01 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.DataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta\x12\x46\n\x08\x65vidence\x18\x03 \x01(\x0b\x32$.cometbft.types.v1beta1.EvidenceListB\x04\xc8\xde\x1f\x00R\x08\x65vidence\x12?\n\x0blast_commit\x18\x04 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.CommitR\nlastCommitB\xdb\x01\n\x1a\x63om.cometbft.types.v1beta1B\nBlockProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.block_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\nBlockProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_BLOCK'].fields_by_name['header']._loaded_options = None + _globals['_BLOCK'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK'].fields_by_name['data']._loaded_options = None + _globals['_BLOCK'].fields_by_name['data']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK'].fields_by_name['evidence']._loaded_options = None + _globals['_BLOCK'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' + _globals['_BLOCK']._serialized_start=160 + _globals['_BLOCK']._serialized_end=422 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/block_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/block_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/block_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/cometbft/types/v1beta1/canonical_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/canonical_pb2.py new file mode 100644 index 00000000..22580051 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/canonical_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/canonical.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.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cometbft/types/v1beta1/canonical.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x84\x01\n\x10\x43\x61nonicalBlockID\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12\\\n\x0fpart_set_header\x18\x02 \x01(\x0b\x32..cometbft.types.v1beta1.CanonicalPartSetHeaderB\x04\xc8\xde\x1f\x00R\rpartSetHeader\"B\n\x16\x43\x61nonicalPartSetHeader\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\"\xe5\x02\n\x11\x43\x61nonicalProposal\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x10R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x10R\x05round\x12)\n\tpol_round\x18\x04 \x01(\x03\x42\x0c\xe2\xde\x1f\x08POLRoundR\x08polRound\x12P\n\x08\x62lock_id\x18\x05 \x01(\x0b\x32(.cometbft.types.v1beta1.CanonicalBlockIDB\x0b\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12&\n\x08\x63hain_id\x18\x07 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\"\xb6\x02\n\rCanonicalVote\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x10R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x10R\x05round\x12P\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32(.cometbft.types.v1beta1.CanonicalBlockIDB\x0b\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12&\n\x08\x63hain_id\x18\x06 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainIdB\xdf\x01\n\x1a\x63om.cometbft.types.v1beta1B\x0e\x43\x61nonicalProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.canonical_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\016CanonicalProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_CANONICALBLOCKID'].fields_by_name['part_set_header']._loaded_options = None + _globals['_CANONICALBLOCKID'].fields_by_name['part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_CANONICALPROPOSAL'].fields_by_name['pol_round']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['pol_round']._serialized_options = b'\342\336\037\010POLRound' + _globals['_CANONICALPROPOSAL'].fields_by_name['block_id']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['block_id']._serialized_options = b'\342\336\037\007BlockID' + _globals['_CANONICALPROPOSAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CANONICALPROPOSAL'].fields_by_name['chain_id']._loaded_options = None + _globals['_CANONICALPROPOSAL'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_CANONICALVOTE'].fields_by_name['block_id']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['block_id']._serialized_options = b'\342\336\037\007BlockID' + _globals['_CANONICALVOTE'].fields_by_name['timestamp']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_CANONICALVOTE'].fields_by_name['chain_id']._loaded_options = None + _globals['_CANONICALVOTE'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_CANONICALBLOCKID']._serialized_start=158 + _globals['_CANONICALBLOCKID']._serialized_end=290 + _globals['_CANONICALPARTSETHEADER']._serialized_start=292 + _globals['_CANONICALPARTSETHEADER']._serialized_end=358 + _globals['_CANONICALPROPOSAL']._serialized_start=361 + _globals['_CANONICALPROPOSAL']._serialized_end=718 + _globals['_CANONICALVOTE']._serialized_start=721 + _globals['_CANONICALVOTE']._serialized_end=1031 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/canonical_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/canonical_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/canonical_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/cometbft/types/v1beta1/events_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/events_pb2.py new file mode 100644 index 00000000..7cf9377b --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/events_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cometbft/types/v1beta1/events.proto\x12\x16\x63ometbft.types.v1beta1\"W\n\x13\x45ventDataRoundState\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x12\n\x04step\x18\x03 \x01(\tR\x04stepB\xdc\x01\n\x1a\x63om.cometbft.types.v1beta1B\x0b\x45ventsProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\013EventsProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_EVENTDATAROUNDSTATE']._serialized_start=63 + _globals['_EVENTDATAROUNDSTATE']._serialized_end=150 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/events_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/events_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/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/cometbft/types/v1beta1/evidence_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/evidence_pb2.py new file mode 100644 index 00000000..56df9edb --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/evidence_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/evidence.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 google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import types_pb2 as cometbft_dot_types_dot_v1beta1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cometbft/types/v1beta1/evidence.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"cometbft/types/v1beta1/types.proto\x1a&cometbft/types/v1beta1/validator.proto\"\xf0\x01\n\x08\x45vidence\x12g\n\x17\x64uplicate_vote_evidence\x18\x01 \x01(\x0b\x32-.cometbft.types.v1beta1.DuplicateVoteEvidenceH\x00R\x15\x64uplicateVoteEvidence\x12t\n\x1clight_client_attack_evidence\x18\x02 \x01(\x0b\x32\x31.cometbft.types.v1beta1.LightClientAttackEvidenceH\x00R\x19lightClientAttackEvidenceB\x05\n\x03sum\"\x9c\x02\n\x15\x44uplicateVoteEvidence\x12\x33\n\x06vote_a\x18\x01 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.VoteR\x05voteA\x12\x33\n\x06vote_b\x18\x02 \x01(\x0b\x32\x1c.cometbft.types.v1beta1.VoteR\x05voteB\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\x12\'\n\x0fvalidator_power\x18\x04 \x01(\x03R\x0evalidatorPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"\xd9\x02\n\x19LightClientAttackEvidence\x12O\n\x11\x63onflicting_block\x18\x01 \x01(\x0b\x32\".cometbft.types.v1beta1.LightBlockR\x10\x63onflictingBlock\x12#\n\rcommon_height\x18\x02 \x01(\x03R\x0c\x63ommonHeight\x12T\n\x14\x62yzantine_validators\x18\x03 \x03(\x0b\x32!.cometbft.types.v1beta1.ValidatorR\x13\x62yzantineValidators\x12,\n\x12total_voting_power\x18\x04 \x01(\x03R\x10totalVotingPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"R\n\x0c\x45videnceList\x12\x42\n\x08\x65vidence\x18\x01 \x03(\x0b\x32 .cometbft.types.v1beta1.EvidenceB\x04\xc8\xde\x1f\x00R\x08\x65videnceB\xde\x01\n\x1a\x63om.cometbft.types.v1beta1B\rEvidenceProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.evidence_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\rEvidenceProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._loaded_options = None + _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._loaded_options = None + _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_EVIDENCELIST'].fields_by_name['evidence']._loaded_options = None + _globals['_EVIDENCELIST'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' + _globals['_EVIDENCE']._serialized_start=197 + _globals['_EVIDENCE']._serialized_end=437 + _globals['_DUPLICATEVOTEEVIDENCE']._serialized_start=440 + _globals['_DUPLICATEVOTEEVIDENCE']._serialized_end=724 + _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_start=727 + _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_end=1072 + _globals['_EVIDENCELIST']._serialized_start=1074 + _globals['_EVIDENCELIST']._serialized_end=1156 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/evidence_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/evidence_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/evidence_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/cometbft/types/v1beta1/params_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/params_pb2.py new file mode 100644 index 00000000..6edf02fa --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/params_pb2.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/params.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 google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cometbft/types/v1beta1/params.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\"\xb0\x02\n\x0f\x43onsensusParams\x12?\n\x05\x62lock\x18\x01 \x01(\x0b\x32#.cometbft.types.v1beta1.BlockParamsB\x04\xc8\xde\x1f\x00R\x05\x62lock\x12H\n\x08\x65vidence\x18\x02 \x01(\x0b\x32&.cometbft.types.v1beta1.EvidenceParamsB\x04\xc8\xde\x1f\x00R\x08\x65vidence\x12K\n\tvalidator\x18\x03 \x01(\x0b\x32\'.cometbft.types.v1beta1.ValidatorParamsB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x45\n\x07version\x18\x04 \x01(\x0b\x32%.cometbft.types.v1beta1.VersionParamsB\x04\xc8\xde\x1f\x00R\x07version\"e\n\x0b\x42lockParams\x12\x1b\n\tmax_bytes\x18\x01 \x01(\x03R\x08maxBytes\x12\x17\n\x07max_gas\x18\x02 \x01(\x03R\x06maxGas\x12 \n\x0ctime_iota_ms\x18\x03 \x01(\x03R\ntimeIotaMs\"\xa9\x01\n\x0e\x45videnceParams\x12+\n\x12max_age_num_blocks\x18\x01 \x01(\x03R\x0fmaxAgeNumBlocks\x12M\n\x10max_age_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0emaxAgeDuration\x12\x1b\n\tmax_bytes\x18\x03 \x01(\x03R\x08maxBytes\"?\n\x0fValidatorParams\x12\"\n\rpub_key_types\x18\x01 \x03(\tR\x0bpubKeyTypes:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"+\n\rVersionParams\x12\x10\n\x03\x61pp\x18\x01 \x01(\x04R\x03\x61pp:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"Z\n\x0cHashedParams\x12&\n\x0f\x62lock_max_bytes\x18\x01 \x01(\x03R\rblockMaxBytes\x12\"\n\rblock_max_gas\x18\x02 \x01(\x03R\x0b\x62lockMaxGasB\xe0\x01\n\x1a\x63om.cometbft.types.v1beta1B\x0bParamsProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1\xa8\xe2\x1e\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.params_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\013ParamsProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1\250\342\036\001' + _globals['_CONSENSUSPARAMS'].fields_by_name['block']._loaded_options = None + _globals['_CONSENSUSPARAMS'].fields_by_name['block']._serialized_options = b'\310\336\037\000' + _globals['_CONSENSUSPARAMS'].fields_by_name['evidence']._loaded_options = None + _globals['_CONSENSUSPARAMS'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' + _globals['_CONSENSUSPARAMS'].fields_by_name['validator']._loaded_options = None + _globals['_CONSENSUSPARAMS'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' + _globals['_CONSENSUSPARAMS'].fields_by_name['version']._loaded_options = None + _globals['_CONSENSUSPARAMS'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._loaded_options = None + _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._serialized_options = b'\310\336\037\000\230\337\037\001' + _globals['_VALIDATORPARAMS']._loaded_options = None + _globals['_VALIDATORPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' + _globals['_VERSIONPARAMS']._loaded_options = None + _globals['_VERSIONPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' + _globals['_CONSENSUSPARAMS']._serialized_start=118 + _globals['_CONSENSUSPARAMS']._serialized_end=422 + _globals['_BLOCKPARAMS']._serialized_start=424 + _globals['_BLOCKPARAMS']._serialized_end=525 + _globals['_EVIDENCEPARAMS']._serialized_start=528 + _globals['_EVIDENCEPARAMS']._serialized_end=697 + _globals['_VALIDATORPARAMS']._serialized_start=699 + _globals['_VALIDATORPARAMS']._serialized_end=762 + _globals['_VERSIONPARAMS']._serialized_start=764 + _globals['_VERSIONPARAMS']._serialized_end=807 + _globals['_HASHEDPARAMS']._serialized_start=809 + _globals['_HASHEDPARAMS']._serialized_end=899 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/params_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/params_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/params_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/cometbft/types/v1beta1/types_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/types_pb2.py new file mode 100644 index 00000000..44dd482d --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/types_pb2.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/types.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 google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from pyinjective.proto.cometbft.crypto.v1 import proof_pb2 as cometbft_dot_crypto_dot_v1_dot_proof__pb2 +from pyinjective.proto.cometbft.version.v1 import types_pb2 as cometbft_dot_version_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1beta1 import validator_pb2 as cometbft_dot_types_dot_v1beta1_dot_validator__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cometbft/types/v1beta1/types.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x63ometbft/crypto/v1/proof.proto\x1a\x1f\x63ometbft/version/v1/types.proto\x1a&cometbft/types/v1beta1/validator.proto\"9\n\rPartSetHeader\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\"i\n\x04Part\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x0cR\x05\x62ytes\x12\x35\n\x05proof\x18\x03 \x01(\x0b\x32\x19.cometbft.crypto.v1.ProofB\x04\xc8\xde\x1f\x00R\x05proof\"r\n\x07\x42lockID\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12S\n\x0fpart_set_header\x18\x02 \x01(\x0b\x32%.cometbft.types.v1beta1.PartSetHeaderB\x04\xc8\xde\x1f\x00R\rpartSetHeader\"\xed\x04\n\x06Header\x12>\n\x07version\x18\x01 \x01(\x0b\x32\x1e.cometbft.version.v1.ConsensusB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12I\n\rlast_block_id\x18\x05 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x04\xc8\xde\x1f\x00R\x0blastBlockId\x12(\n\x10last_commit_hash\x18\x06 \x01(\x0cR\x0elastCommitHash\x12\x1b\n\tdata_hash\x18\x07 \x01(\x0cR\x08\x64\x61taHash\x12\'\n\x0fvalidators_hash\x18\x08 \x01(\x0cR\x0evalidatorsHash\x12\x30\n\x14next_validators_hash\x18\t \x01(\x0cR\x12nextValidatorsHash\x12%\n\x0e\x63onsensus_hash\x18\n \x01(\x0cR\rconsensusHash\x12\x19\n\x08\x61pp_hash\x18\x0b \x01(\x0cR\x07\x61ppHash\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12#\n\revidence_hash\x18\r \x01(\x0cR\x0c\x65videnceHash\x12)\n\x10proposer_address\x18\x0e \x01(\x0cR\x0fproposerAddress\"\x18\n\x04\x44\x61ta\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\xf4\x02\n\x04Vote\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12K\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12+\n\x11validator_address\x18\x06 \x01(\x0cR\x10validatorAddress\x12\'\n\x0fvalidator_index\x18\x07 \x01(\x05R\x0evalidatorIndex\x12\x1c\n\tsignature\x18\x08 \x01(\x0cR\tsignature\"\xcc\x01\n\x06\x43ommit\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12K\n\x08\x62lock_id\x18\x03 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12G\n\nsignatures\x18\x04 \x03(\x0b\x32!.cometbft.types.v1beta1.CommitSigB\x04\xc8\xde\x1f\x00R\nsignatures\"\xe3\x01\n\tCommitSig\x12G\n\rblock_id_flag\x18\x01 \x01(\x0e\x32#.cometbft.types.v1beta1.BlockIDFlagR\x0b\x62lockIdFlag\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x42\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignature\"\xbf\x02\n\x08Proposal\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32%.cometbft.types.v1beta1.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x1b\n\tpol_round\x18\x04 \x01(\x05R\x08polRound\x12K\n\x08\x62lock_id\x18\x05 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x07 \x01(\x0cR\tsignature\"~\n\x0cSignedHeader\x12\x36\n\x06header\x18\x01 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.HeaderR\x06header\x12\x36\n\x06\x63ommit\x18\x02 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.CommitR\x06\x63ommit\"\xa2\x01\n\nLightBlock\x12I\n\rsigned_header\x18\x01 \x01(\x0b\x32$.cometbft.types.v1beta1.SignedHeaderR\x0csignedHeader\x12I\n\rvalidator_set\x18\x02 \x01(\x0b\x32$.cometbft.types.v1beta1.ValidatorSetR\x0cvalidatorSet\"\xce\x01\n\tBlockMeta\x12K\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x1f.cometbft.types.v1beta1.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x1d\n\nblock_size\x18\x02 \x01(\x03R\tblockSize\x12<\n\x06header\x18\x03 \x01(\x0b\x32\x1e.cometbft.types.v1beta1.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x17\n\x07num_txs\x18\x04 \x01(\x03R\x06numTxs\"k\n\x07TxProof\x12\x1b\n\troot_hash\x18\x01 \x01(\x0cR\x08rootHash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12/\n\x05proof\x18\x03 \x01(\x0b\x32\x19.cometbft.crypto.v1.ProofR\x05proof*\xd7\x01\n\rSignedMsgType\x12,\n\x17SIGNED_MSG_TYPE_UNKNOWN\x10\x00\x1a\x0f\x8a\x9d \x0bUnknownType\x12,\n\x17SIGNED_MSG_TYPE_PREVOTE\x10\x01\x1a\x0f\x8a\x9d \x0bPrevoteType\x12\x30\n\x19SIGNED_MSG_TYPE_PRECOMMIT\x10\x02\x1a\x11\x8a\x9d \rPrecommitType\x12.\n\x18SIGNED_MSG_TYPE_PROPOSAL\x10 \x1a\x10\x8a\x9d \x0cProposalType\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xdb\x01\n\x1a\x63om.cometbft.types.v1beta1B\nTypesProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\nTypesProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_SIGNEDMSGTYPE']._loaded_options = None + _globals['_SIGNEDMSGTYPE']._serialized_options = b'\210\243\036\000\250\244\036\001' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._serialized_options = b'\212\235 \013UnknownType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._serialized_options = b'\212\235 \013PrevoteType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._serialized_options = b'\212\235 \rPrecommitType' + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._loaded_options = None + _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._serialized_options = b'\212\235 \014ProposalType' + _globals['_PART'].fields_by_name['proof']._loaded_options = None + _globals['_PART'].fields_by_name['proof']._serialized_options = b'\310\336\037\000' + _globals['_BLOCKID'].fields_by_name['part_set_header']._loaded_options = None + _globals['_BLOCKID'].fields_by_name['part_set_header']._serialized_options = b'\310\336\037\000' + _globals['_HEADER'].fields_by_name['version']._loaded_options = None + _globals['_HEADER'].fields_by_name['version']._serialized_options = b'\310\336\037\000' + _globals['_HEADER'].fields_by_name['chain_id']._loaded_options = None + _globals['_HEADER'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' + _globals['_HEADER'].fields_by_name['time']._loaded_options = None + _globals['_HEADER'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_HEADER'].fields_by_name['last_block_id']._loaded_options = None + _globals['_HEADER'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000' + _globals['_VOTE'].fields_by_name['block_id']._loaded_options = None + _globals['_VOTE'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_VOTE'].fields_by_name['timestamp']._loaded_options = None + _globals['_VOTE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_COMMIT'].fields_by_name['block_id']._loaded_options = None + _globals['_COMMIT'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_COMMIT'].fields_by_name['signatures']._loaded_options = None + _globals['_COMMIT'].fields_by_name['signatures']._serialized_options = b'\310\336\037\000' + _globals['_COMMITSIG'].fields_by_name['timestamp']._loaded_options = None + _globals['_COMMITSIG'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_PROPOSAL'].fields_by_name['block_id']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_PROPOSAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_PROPOSAL'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_BLOCKMETA'].fields_by_name['block_id']._loaded_options = None + _globals['_BLOCKMETA'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' + _globals['_BLOCKMETA'].fields_by_name['header']._loaded_options = None + _globals['_BLOCKMETA'].fields_by_name['header']._serialized_options = b'\310\336\037\000' + _globals['_SIGNEDMSGTYPE']._serialized_start=2900 + _globals['_SIGNEDMSGTYPE']._serialized_end=3115 + _globals['_PARTSETHEADER']._serialized_start=222 + _globals['_PARTSETHEADER']._serialized_end=279 + _globals['_PART']._serialized_start=281 + _globals['_PART']._serialized_end=386 + _globals['_BLOCKID']._serialized_start=388 + _globals['_BLOCKID']._serialized_end=502 + _globals['_HEADER']._serialized_start=505 + _globals['_HEADER']._serialized_end=1126 + _globals['_DATA']._serialized_start=1128 + _globals['_DATA']._serialized_end=1152 + _globals['_VOTE']._serialized_start=1155 + _globals['_VOTE']._serialized_end=1527 + _globals['_COMMIT']._serialized_start=1530 + _globals['_COMMIT']._serialized_end=1734 + _globals['_COMMITSIG']._serialized_start=1737 + _globals['_COMMITSIG']._serialized_end=1964 + _globals['_PROPOSAL']._serialized_start=1967 + _globals['_PROPOSAL']._serialized_end=2286 + _globals['_SIGNEDHEADER']._serialized_start=2288 + _globals['_SIGNEDHEADER']._serialized_end=2414 + _globals['_LIGHTBLOCK']._serialized_start=2417 + _globals['_LIGHTBLOCK']._serialized_end=2579 + _globals['_BLOCKMETA']._serialized_start=2582 + _globals['_BLOCKMETA']._serialized_end=2788 + _globals['_TXPROOF']._serialized_start=2790 + _globals['_TXPROOF']._serialized_end=2897 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/types_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/types_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/cometbft/types/v1beta1/validator_pb2.py b/pyinjective/proto/cometbft/types/v1beta1/validator_pb2.py new file mode 100644 index 00000000..200531d2 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/validator_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta1/validator.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.cometbft.crypto.v1 import keys_pb2 as cometbft_dot_crypto_dot_v1_dot_keys__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cometbft/types/v1beta1/validator.proto\x12\x16\x63ometbft.types.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1d\x63ometbft/crypto/v1/keys.proto\"\xbe\x01\n\x0cValidatorSet\x12\x41\n\nvalidators\x18\x01 \x03(\x0b\x32!.cometbft.types.v1beta1.ValidatorR\nvalidators\x12=\n\x08proposer\x18\x02 \x01(\x0b\x32!.cometbft.types.v1beta1.ValidatorR\x08proposer\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\"\xb3\x01\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12<\n\x07pub_key\x18\x02 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12!\n\x0cvoting_power\x18\x03 \x01(\x03R\x0bvotingPower\x12+\n\x11proposer_priority\x18\x04 \x01(\x03R\x10proposerPriority\"l\n\x0fSimpleValidator\x12\x36\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1d.cometbft.crypto.v1.PublicKeyR\x06pubKey\x12!\n\x0cvoting_power\x18\x02 \x01(\x03R\x0bvotingPower*\xd7\x01\n\x0b\x42lockIDFlag\x12\x31\n\x15\x42LOCK_ID_FLAG_UNKNOWN\x10\x00\x1a\x16\x8a\x9d \x12\x42lockIDFlagUnknown\x12/\n\x14\x42LOCK_ID_FLAG_ABSENT\x10\x01\x1a\x15\x8a\x9d \x11\x42lockIDFlagAbsent\x12/\n\x14\x42LOCK_ID_FLAG_COMMIT\x10\x02\x1a\x15\x8a\x9d \x11\x42lockIDFlagCommit\x12)\n\x11\x42LOCK_ID_FLAG_NIL\x10\x03\x1a\x12\x8a\x9d \x0e\x42lockIDFlagNil\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xdf\x01\n\x1a\x63om.cometbft.types.v1beta1B\x0eValidatorProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta1\xca\x02\x16\x43ometbft\\Types\\V1beta1\xe2\x02\"Cometbft\\Types\\V1beta1\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta1.validator_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta1B\016ValidatorProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta1\242\002\003CTX\252\002\026Cometbft.Types.V1beta1\312\002\026Cometbft\\Types\\V1beta1\342\002\"Cometbft\\Types\\V1beta1\\GPBMetadata\352\002\030Cometbft::Types::V1beta1' + _globals['_BLOCKIDFLAG']._loaded_options = None + _globals['_BLOCKIDFLAG']._serialized_options = b'\210\243\036\000\250\244\036\001' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._serialized_options = b'\212\235 \022BlockIDFlagUnknown' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._serialized_options = b'\212\235 \021BlockIDFlagAbsent' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._serialized_options = b'\212\235 \021BlockIDFlagCommit' + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._loaded_options = None + _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._serialized_options = b'\212\235 \016BlockIDFlagNil' + _globals['_VALIDATOR'].fields_by_name['pub_key']._loaded_options = None + _globals['_VALIDATOR'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' + _globals['_BLOCKIDFLAG']._serialized_start=605 + _globals['_BLOCKIDFLAG']._serialized_end=820 + _globals['_VALIDATORSET']._serialized_start=120 + _globals['_VALIDATORSET']._serialized_end=310 + _globals['_VALIDATOR']._serialized_start=313 + _globals['_VALIDATOR']._serialized_end=492 + _globals['_SIMPLEVALIDATOR']._serialized_start=494 + _globals['_SIMPLEVALIDATOR']._serialized_end=602 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta1/validator_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta1/validator_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta1/validator_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/cometbft/types/v1beta2/params_pb2.py b/pyinjective/proto/cometbft/types/v1beta2/params_pb2.py new file mode 100644 index 00000000..cfb9c0e7 --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta2/params_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/types/v1beta2/params.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.cometbft.types.v1beta1 import params_pb2 as cometbft_dot_types_dot_v1beta1_dot_params__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cometbft/types/v1beta2/params.proto\x12\x16\x63ometbft.types.v1beta2\x1a\x14gogoproto/gogo.proto\x1a#cometbft/types/v1beta1/params.proto\"\x98\x02\n\x0f\x43onsensusParams\x12\x39\n\x05\x62lock\x18\x01 \x01(\x0b\x32#.cometbft.types.v1beta2.BlockParamsR\x05\x62lock\x12\x42\n\x08\x65vidence\x18\x02 \x01(\x0b\x32&.cometbft.types.v1beta1.EvidenceParamsR\x08\x65vidence\x12\x45\n\tvalidator\x18\x03 \x01(\x0b\x32\'.cometbft.types.v1beta1.ValidatorParamsR\tvalidator\x12?\n\x07version\x18\x04 \x01(\x0b\x32%.cometbft.types.v1beta1.VersionParamsR\x07version\"I\n\x0b\x42lockParams\x12\x1b\n\tmax_bytes\x18\x01 \x01(\x03R\x08maxBytes\x12\x17\n\x07max_gas\x18\x02 \x01(\x03R\x06maxGasJ\x04\x08\x03\x10\x04\x42\xe0\x01\n\x1a\x63om.cometbft.types.v1beta2B\x0bParamsProtoP\x01Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta2\xa2\x02\x03\x43TX\xaa\x02\x16\x43ometbft.Types.V1beta2\xca\x02\x16\x43ometbft\\Types\\V1beta2\xe2\x02\"Cometbft\\Types\\V1beta2\\GPBMetadata\xea\x02\x18\x43ometbft::Types::V1beta2\xa8\xe2\x1e\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.types.v1beta2.params_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.cometbft.types.v1beta2B\013ParamsProtoP\001Z7github.com/cometbft/cometbft/api/cometbft/types/v1beta2\242\002\003CTX\252\002\026Cometbft.Types.V1beta2\312\002\026Cometbft\\Types\\V1beta2\342\002\"Cometbft\\Types\\V1beta2\\GPBMetadata\352\002\030Cometbft::Types::V1beta2\250\342\036\001' + _globals['_CONSENSUSPARAMS']._serialized_start=123 + _globals['_CONSENSUSPARAMS']._serialized_end=403 + _globals['_BLOCKPARAMS']._serialized_start=405 + _globals['_BLOCKPARAMS']._serialized_end=478 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/types/v1beta2/params_pb2_grpc.py b/pyinjective/proto/cometbft/types/v1beta2/params_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/types/v1beta2/params_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/cometbft/version/v1/types_pb2.py b/pyinjective/proto/cometbft/version/v1/types_pb2.py new file mode 100644 index 00000000..8a28b0ad --- /dev/null +++ b/pyinjective/proto/cometbft/version/v1/types_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: cometbft/version/v1/types.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\x1f\x63ometbft/version/v1/types.proto\x12\x13\x63ometbft.version.v1\x1a\x14gogoproto/gogo.proto\"=\n\x03\x41pp\x12\x1a\n\x08protocol\x18\x01 \x01(\x04R\x08protocol\x12\x1a\n\x08software\x18\x02 \x01(\tR\x08software\"9\n\tConsensus\x12\x14\n\x05\x62lock\x18\x01 \x01(\x04R\x05\x62lock\x12\x10\n\x03\x61pp\x18\x02 \x01(\x04R\x03\x61pp:\x04\xe8\xa0\x1f\x01\x42\xc9\x01\n\x17\x63om.cometbft.version.v1B\nTypesProtoP\x01Z4github.com/cometbft/cometbft/api/cometbft/version/v1\xa2\x02\x03\x43VX\xaa\x02\x13\x43ometbft.Version.V1\xca\x02\x13\x43ometbft\\Version\\V1\xe2\x02\x1f\x43ometbft\\Version\\V1\\GPBMetadata\xea\x02\x15\x43ometbft::Version::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cometbft.version.v1.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.cometbft.version.v1B\nTypesProtoP\001Z4github.com/cometbft/cometbft/api/cometbft/version/v1\242\002\003CVX\252\002\023Cometbft.Version.V1\312\002\023Cometbft\\Version\\V1\342\002\037Cometbft\\Version\\V1\\GPBMetadata\352\002\025Cometbft::Version::V1' + _globals['_CONSENSUS']._loaded_options = None + _globals['_CONSENSUS']._serialized_options = b'\350\240\037\001' + _globals['_APP']._serialized_start=78 + _globals['_APP']._serialized_end=139 + _globals['_CONSENSUS']._serialized_start=141 + _globals['_CONSENSUS']._serialized_end=198 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cometbft/version/v1/types_pb2_grpc.py b/pyinjective/proto/cometbft/version/v1/types_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/cometbft/version/v1/types_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/cosmos/app/runtime/v1alpha1/module_pb2.py b/pyinjective/proto/cosmos/app/runtime/v1alpha1/module_pb2.py index cd567873..2cf731b6 100644 --- a/pyinjective/proto/cosmos/app/runtime/v1alpha1/module_pb2.py +++ b/pyinjective/proto/cosmos/app/runtime/v1alpha1/module_pb2.py @@ -15,7 +15,7 @@ from pyinjective.proto.cosmos.app.v1alpha1 import module_pb2 as cosmos_dot_app_dot_v1alpha1_dot_module__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(cosmos/app/runtime/v1alpha1/module.proto\x12\x1b\x63osmos.app.runtime.v1alpha1\x1a cosmos/app/v1alpha1/module.proto\"\xdc\x03\n\x06Module\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12%\n\x0e\x62\x65gin_blockers\x18\x02 \x03(\tR\rbeginBlockers\x12!\n\x0c\x65nd_blockers\x18\x03 \x03(\tR\x0b\x65ndBlockers\x12!\n\x0cinit_genesis\x18\x04 \x03(\tR\x0binitGenesis\x12%\n\x0e\x65xport_genesis\x18\x05 \x03(\tR\rexportGenesis\x12[\n\x13override_store_keys\x18\x06 \x03(\x0b\x32+.cosmos.app.runtime.v1alpha1.StoreKeyConfigR\x11overrideStoreKeys\x12)\n\x10order_migrations\x18\x07 \x03(\tR\x0forderMigrations\x12\"\n\x0cprecommiters\x18\x08 \x03(\tR\x0cprecommiters\x12\x32\n\x15prepare_check_staters\x18\t \x03(\tR\x13prepareCheckStaters:C\xba\xc0\x96\xda\x01=\n$github.com/cosmos/cosmos-sdk/runtime\x12\x15\n\x13\x63osmos.app.v1alpha1\"S\n\x0eStoreKeyConfig\x12\x1f\n\x0bmodule_name\x18\x01 \x01(\tR\nmoduleName\x12 \n\x0ckv_store_key\x18\x02 \x01(\tR\nkvStoreKeyB\xbd\x01\n\x1f\x63om.cosmos.app.runtime.v1alpha1B\x0bModuleProtoP\x01\xa2\x02\x03\x43\x41R\xaa\x02\x1b\x43osmos.App.Runtime.V1alpha1\xca\x02\x1b\x43osmos\\App\\Runtime\\V1alpha1\xe2\x02\'Cosmos\\App\\Runtime\\V1alpha1\\GPBMetadata\xea\x02\x1e\x43osmos::App::Runtime::V1alpha1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(cosmos/app/runtime/v1alpha1/module.proto\x12\x1b\x63osmos.app.runtime.v1alpha1\x1a cosmos/app/v1alpha1/module.proto\"\xff\x03\n\x06Module\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12%\n\x0e\x62\x65gin_blockers\x18\x02 \x03(\tR\rbeginBlockers\x12!\n\x0c\x65nd_blockers\x18\x03 \x03(\tR\x0b\x65ndBlockers\x12!\n\x0cinit_genesis\x18\x04 \x03(\tR\x0binitGenesis\x12%\n\x0e\x65xport_genesis\x18\x05 \x03(\tR\rexportGenesis\x12[\n\x13override_store_keys\x18\x06 \x03(\x0b\x32+.cosmos.app.runtime.v1alpha1.StoreKeyConfigR\x11overrideStoreKeys\x12)\n\x10order_migrations\x18\x07 \x03(\tR\x0forderMigrations\x12\"\n\x0cprecommiters\x18\x08 \x03(\tR\x0cprecommiters\x12\x32\n\x15prepare_check_staters\x18\t \x03(\tR\x13prepareCheckStaters\x12!\n\x0cpre_blockers\x18\n \x03(\tR\x0bpreBlockers:C\xba\xc0\x96\xda\x01=\n$github.com/cosmos/cosmos-sdk/runtime\x12\x15\n\x13\x63osmos.app.v1alpha1\"S\n\x0eStoreKeyConfig\x12\x1f\n\x0bmodule_name\x18\x01 \x01(\tR\nmoduleName\x12 \n\x0ckv_store_key\x18\x02 \x01(\tR\nkvStoreKeyB\xbd\x01\n\x1f\x63om.cosmos.app.runtime.v1alpha1B\x0bModuleProtoP\x01\xa2\x02\x03\x43\x41R\xaa\x02\x1b\x43osmos.App.Runtime.V1alpha1\xca\x02\x1b\x43osmos\\App\\Runtime\\V1alpha1\xe2\x02\'Cosmos\\App\\Runtime\\V1alpha1\\GPBMetadata\xea\x02\x1e\x43osmos::App::Runtime::V1alpha1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,7 +26,7 @@ _globals['_MODULE']._loaded_options = None _globals['_MODULE']._serialized_options = b'\272\300\226\332\001=\n$github.com/cosmos/cosmos-sdk/runtime\022\025\n\023cosmos.app.v1alpha1' _globals['_MODULE']._serialized_start=108 - _globals['_MODULE']._serialized_end=584 - _globals['_STOREKEYCONFIG']._serialized_start=586 - _globals['_STOREKEYCONFIG']._serialized_end=669 + _globals['_MODULE']._serialized_end=619 + _globals['_STOREKEYCONFIG']._serialized_start=621 + _globals['_STOREKEYCONFIG']._serialized_end=704 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/autocli/v1/options_pb2.py b/pyinjective/proto/cosmos/autocli/v1/options_pb2.py index aa7f36c8..591b9eef 100644 --- a/pyinjective/proto/cosmos/autocli/v1/options_pb2.py +++ b/pyinjective/proto/cosmos/autocli/v1/options_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/autocli/v1/options.proto\x12\x11\x63osmos.autocli.v1\"\x8f\x01\n\rModuleOptions\x12;\n\x02tx\x18\x01 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x02tx\x12\x41\n\x05query\x18\x02 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x05query\"\xd8\x02\n\x18ServiceCommandDescriptor\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12T\n\x13rpc_command_options\x18\x02 \x03(\x0b\x32$.cosmos.autocli.v1.RpcCommandOptionsR\x11rpcCommandOptions\x12_\n\x0csub_commands\x18\x03 \x03(\x0b\x32<.cosmos.autocli.v1.ServiceCommandDescriptor.SubCommandsEntryR\x0bsubCommands\x1ak\n\x10SubCommandsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x05value:\x02\x38\x01\"\x9c\x04\n\x11RpcCommandOptions\x12\x1d\n\nrpc_method\x18\x01 \x01(\tR\trpcMethod\x12\x10\n\x03use\x18\x02 \x01(\tR\x03use\x12\x12\n\x04long\x18\x03 \x01(\tR\x04long\x12\x14\n\x05short\x18\x04 \x01(\tR\x05short\x12\x18\n\x07\x65xample\x18\x05 \x01(\tR\x07\x65xample\x12\x14\n\x05\x61lias\x18\x06 \x03(\tR\x05\x61lias\x12\x1f\n\x0bsuggest_for\x18\x07 \x03(\tR\nsuggestFor\x12\x1e\n\ndeprecated\x18\x08 \x01(\tR\ndeprecated\x12\x18\n\x07version\x18\t \x01(\tR\x07version\x12X\n\x0c\x66lag_options\x18\n \x03(\x0b\x32\x35.cosmos.autocli.v1.RpcCommandOptions.FlagOptionsEntryR\x0b\x66lagOptions\x12S\n\x0fpositional_args\x18\x0b \x03(\x0b\x32*.cosmos.autocli.v1.PositionalArgDescriptorR\x0epositionalArgs\x12\x12\n\x04skip\x18\x0c \x01(\x08R\x04skip\x1a^\n\x10\x46lagOptionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x1e.cosmos.autocli.v1.FlagOptionsR\x05value:\x02\x38\x01\"\xe5\x01\n\x0b\x46lagOptions\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tshorthand\x18\x02 \x01(\tR\tshorthand\x12\x14\n\x05usage\x18\x03 \x01(\tR\x05usage\x12#\n\rdefault_value\x18\x04 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x12\x1e\n\ndeprecated\x18\x06 \x01(\tR\ndeprecated\x12\x31\n\x14shorthand_deprecated\x18\x07 \x01(\tR\x13shorthandDeprecated\x12\x16\n\x06hidden\x18\x08 \x01(\x08R\x06hidden\"T\n\x17PositionalArgDescriptor\x12\x1f\n\x0bproto_field\x18\x01 \x01(\tR\nprotoField\x12\x18\n\x07varargs\x18\x02 \x01(\x08R\x07varargsB\xb6\x01\n\x15\x63om.cosmos.autocli.v1B\x0cOptionsProtoP\x01Z)cosmossdk.io/api/cosmos/base/cli/v1;cliv1\xa2\x02\x03\x43\x41X\xaa\x02\x11\x43osmos.Autocli.V1\xca\x02\x11\x43osmos\\Autocli\\V1\xe2\x02\x1d\x43osmos\\Autocli\\V1\\GPBMetadata\xea\x02\x13\x43osmos::Autocli::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/autocli/v1/options.proto\x12\x11\x63osmos.autocli.v1\"\x8f\x01\n\rModuleOptions\x12;\n\x02tx\x18\x01 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x02tx\x12\x41\n\x05query\x18\x02 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x05query\"\xa4\x03\n\x18ServiceCommandDescriptor\x12\x18\n\x07service\x18\x01 \x01(\tR\x07service\x12T\n\x13rpc_command_options\x18\x02 \x03(\x0b\x32$.cosmos.autocli.v1.RpcCommandOptionsR\x11rpcCommandOptions\x12_\n\x0csub_commands\x18\x03 \x03(\x0b\x32<.cosmos.autocli.v1.ServiceCommandDescriptor.SubCommandsEntryR\x0bsubCommands\x12\x34\n\x16\x65nhance_custom_command\x18\x04 \x01(\x08R\x14\x65nhanceCustomCommand\x12\x14\n\x05short\x18\x05 \x01(\tR\x05short\x1ak\n\x10SubCommandsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.cosmos.autocli.v1.ServiceCommandDescriptorR\x05value:\x02\x38\x01\"\x9c\x04\n\x11RpcCommandOptions\x12\x1d\n\nrpc_method\x18\x01 \x01(\tR\trpcMethod\x12\x10\n\x03use\x18\x02 \x01(\tR\x03use\x12\x12\n\x04long\x18\x03 \x01(\tR\x04long\x12\x14\n\x05short\x18\x04 \x01(\tR\x05short\x12\x18\n\x07\x65xample\x18\x05 \x01(\tR\x07\x65xample\x12\x14\n\x05\x61lias\x18\x06 \x03(\tR\x05\x61lias\x12\x1f\n\x0bsuggest_for\x18\x07 \x03(\tR\nsuggestFor\x12\x1e\n\ndeprecated\x18\x08 \x01(\tR\ndeprecated\x12\x18\n\x07version\x18\t \x01(\tR\x07version\x12X\n\x0c\x66lag_options\x18\n \x03(\x0b\x32\x35.cosmos.autocli.v1.RpcCommandOptions.FlagOptionsEntryR\x0b\x66lagOptions\x12S\n\x0fpositional_args\x18\x0b \x03(\x0b\x32*.cosmos.autocli.v1.PositionalArgDescriptorR\x0epositionalArgs\x12\x12\n\x04skip\x18\x0c \x01(\x08R\x04skip\x1a^\n\x10\x46lagOptionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x1e.cosmos.autocli.v1.FlagOptionsR\x05value:\x02\x38\x01\"\xe5\x01\n\x0b\x46lagOptions\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tshorthand\x18\x02 \x01(\tR\tshorthand\x12\x14\n\x05usage\x18\x03 \x01(\tR\x05usage\x12#\n\rdefault_value\x18\x04 \x01(\tR\x0c\x64\x65\x66\x61ultValue\x12\x1e\n\ndeprecated\x18\x06 \x01(\tR\ndeprecated\x12\x31\n\x14shorthand_deprecated\x18\x07 \x01(\tR\x13shorthandDeprecated\x12\x16\n\x06hidden\x18\x08 \x01(\x08R\x06hidden\"p\n\x17PositionalArgDescriptor\x12\x1f\n\x0bproto_field\x18\x01 \x01(\tR\nprotoField\x12\x18\n\x07varargs\x18\x02 \x01(\x08R\x07varargs\x12\x1a\n\x08optional\x18\x03 \x01(\x08R\x08optionalB\xb6\x01\n\x15\x63om.cosmos.autocli.v1B\x0cOptionsProtoP\x01Z)cosmossdk.io/api/cosmos/base/cli/v1;cliv1\xa2\x02\x03\x43\x41X\xaa\x02\x11\x43osmos.Autocli.V1\xca\x02\x11\x43osmos\\Autocli\\V1\xe2\x02\x1d\x43osmos\\Autocli\\V1\\GPBMetadata\xea\x02\x13\x43osmos::Autocli::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,15 +29,15 @@ _globals['_MODULEOPTIONS']._serialized_start=55 _globals['_MODULEOPTIONS']._serialized_end=198 _globals['_SERVICECOMMANDDESCRIPTOR']._serialized_start=201 - _globals['_SERVICECOMMANDDESCRIPTOR']._serialized_end=545 - _globals['_SERVICECOMMANDDESCRIPTOR_SUBCOMMANDSENTRY']._serialized_start=438 - _globals['_SERVICECOMMANDDESCRIPTOR_SUBCOMMANDSENTRY']._serialized_end=545 - _globals['_RPCCOMMANDOPTIONS']._serialized_start=548 - _globals['_RPCCOMMANDOPTIONS']._serialized_end=1088 - _globals['_RPCCOMMANDOPTIONS_FLAGOPTIONSENTRY']._serialized_start=994 - _globals['_RPCCOMMANDOPTIONS_FLAGOPTIONSENTRY']._serialized_end=1088 - _globals['_FLAGOPTIONS']._serialized_start=1091 - _globals['_FLAGOPTIONS']._serialized_end=1320 - _globals['_POSITIONALARGDESCRIPTOR']._serialized_start=1322 - _globals['_POSITIONALARGDESCRIPTOR']._serialized_end=1406 + _globals['_SERVICECOMMANDDESCRIPTOR']._serialized_end=621 + _globals['_SERVICECOMMANDDESCRIPTOR_SUBCOMMANDSENTRY']._serialized_start=514 + _globals['_SERVICECOMMANDDESCRIPTOR_SUBCOMMANDSENTRY']._serialized_end=621 + _globals['_RPCCOMMANDOPTIONS']._serialized_start=624 + _globals['_RPCCOMMANDOPTIONS']._serialized_end=1164 + _globals['_RPCCOMMANDOPTIONS_FLAGOPTIONSENTRY']._serialized_start=1070 + _globals['_RPCCOMMANDOPTIONS_FLAGOPTIONSENTRY']._serialized_end=1164 + _globals['_FLAGOPTIONS']._serialized_start=1167 + _globals['_FLAGOPTIONS']._serialized_end=1396 + _globals['_POSITIONALARGDESCRIPTOR']._serialized_start=1398 + _globals['_POSITIONALARGDESCRIPTOR']._serialized_end=1510 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/base/abci/v1beta1/abci_pb2.py b/pyinjective/proto/cosmos/base/abci/v1beta1/abci_pb2.py index c1104257..7b10c704 100644 --- a/pyinjective/proto/cosmos/base/abci/v1beta1/abci_pb2.py +++ b/pyinjective/proto/cosmos/base/abci/v1beta1/abci_pb2.py @@ -13,12 +13,13 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -from pyinjective.proto.tendermint.abci import types_pb2 as tendermint_dot_abci_dot_types__pb2 -from pyinjective.proto.tendermint.types import block_pb2 as tendermint_dot_types_dot_block__pb2 +from pyinjective.proto.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import block_pb2 as cometbft_dot_types_dot_v1_dot_block__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cosmos/base/abci/v1beta1/abci.proto\x12\x18\x63osmos.base.abci.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1btendermint/abci/types.proto\x1a\x1ctendermint/types/block.proto\x1a\x19google/protobuf/any.proto\"\xcc\x03\n\nTxResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\"\n\x06txhash\x18\x02 \x01(\tB\n\xe2\xde\x1f\x06TxHashR\x06txhash\x12\x1c\n\tcodespace\x18\x03 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x04 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x05 \x01(\tR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x06 \x01(\tR\x06rawLog\x12U\n\x04logs\x18\x07 \x03(\x0b\x32(.cosmos.base.abci.v1beta1.ABCIMessageLogB\x17\xc8\xde\x1f\x00\xaa\xdf\x1f\x0f\x41\x42\x43IMessageLogsR\x04logs\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x03R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x03R\x07gasUsed\x12$\n\x02tx\x18\x0b \x01(\x0b\x32\x14.google.protobuf.AnyR\x02tx\x12\x1c\n\ttimestamp\x18\x0c \x01(\tR\ttimestamp\x12\x34\n\x06\x65vents\x18\r \x03(\x0b\x32\x16.tendermint.abci.EventB\x04\xc8\xde\x1f\x00R\x06\x65vents:\x04\x88\xa0\x1f\x00\"\xa9\x01\n\x0e\x41\x42\x43IMessageLog\x12*\n\tmsg_index\x18\x01 \x01(\rB\r\xea\xde\x1f\tmsg_indexR\x08msgIndex\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12S\n\x06\x65vents\x18\x03 \x03(\x0b\x32%.cosmos.base.abci.v1beta1.StringEventB\x14\xc8\xde\x1f\x00\xaa\xdf\x1f\x0cStringEventsR\x06\x65vents:\x04\x80\xdc \x01\"r\n\x0bStringEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12I\n\nattributes\x18\x02 \x03(\x0b\x32#.cosmos.base.abci.v1beta1.AttributeB\x04\xc8\xde\x1f\x00R\nattributes:\x04\x80\xdc \x01\"3\n\tAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"C\n\x07GasInfo\x12\x1d\n\ngas_wanted\x18\x01 \x01(\x04R\tgasWanted\x12\x19\n\x08gas_used\x18\x02 \x01(\x04R\x07gasUsed\"\xa9\x01\n\x06Result\x12\x16\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42\x02\x18\x01R\x04\x64\x61ta\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x34\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x16.tendermint.abci.EventB\x04\xc8\xde\x1f\x00R\x06\x65vents\x12\x39\n\rmsg_responses\x18\x04 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0cmsgResponses:\x04\x88\xa0\x1f\x00\"\x96\x01\n\x12SimulationResponse\x12\x46\n\x08gas_info\x18\x01 \x01(\x0b\x32!.cosmos.base.abci.v1beta1.GasInfoB\x08\xc8\xde\x1f\x00\xd0\xde\x1f\x01R\x07gasInfo\x12\x38\n\x06result\x18\x02 \x01(\x0b\x32 .cosmos.base.abci.v1beta1.ResultR\x06result\"@\n\x07MsgData\x12\x19\n\x08msg_type\x18\x01 \x01(\tR\x07msgType\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta:\x06\x18\x01\x80\xdc \x01\"\x87\x01\n\tTxMsgData\x12\x39\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32!.cosmos.base.abci.v1beta1.MsgDataB\x02\x18\x01R\x04\x64\x61ta\x12\x39\n\rmsg_responses\x18\x02 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0cmsgResponses:\x04\x80\xdc \x01\"\xdc\x01\n\x0fSearchTxsResult\x12\x1f\n\x0btotal_count\x18\x01 \x01(\x04R\ntotalCount\x12\x14\n\x05\x63ount\x18\x02 \x01(\x04R\x05\x63ount\x12\x1f\n\x0bpage_number\x18\x03 \x01(\x04R\npageNumber\x12\x1d\n\npage_total\x18\x04 \x01(\x04R\tpageTotal\x12\x14\n\x05limit\x18\x05 \x01(\x04R\x05limit\x12\x36\n\x03txs\x18\x06 \x03(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\x03txs:\x04\x80\xdc \x01\"\xd8\x01\n\x12SearchBlocksResult\x12\x1f\n\x0btotal_count\x18\x01 \x01(\x03R\ntotalCount\x12\x14\n\x05\x63ount\x18\x02 \x01(\x03R\x05\x63ount\x12\x1f\n\x0bpage_number\x18\x03 \x01(\x03R\npageNumber\x12\x1d\n\npage_total\x18\x04 \x01(\x03R\tpageTotal\x12\x14\n\x05limit\x18\x05 \x01(\x03R\x05limit\x12/\n\x06\x62locks\x18\x06 \x03(\x0b\x32\x17.tendermint.types.BlockR\x06\x62locks:\x04\x80\xdc \x01\x42\xd4\x01\n\x1c\x63om.cosmos.base.abci.v1beta1B\tAbciProtoP\x01Z\"github.com/cosmos/cosmos-sdk/types\xa2\x02\x03\x43\x42\x41\xaa\x02\x18\x43osmos.Base.Abci.V1beta1\xca\x02\x18\x43osmos\\Base\\Abci\\V1beta1\xe2\x02$Cosmos\\Base\\Abci\\V1beta1\\GPBMetadata\xea\x02\x1b\x43osmos::Base::Abci::V1beta1\xd8\xe1\x1e\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cosmos/base/abci/v1beta1/abci.proto\x12\x18\x63osmos.base.abci.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1c\x63ometbft/abci/v1/types.proto\x1a\x1d\x63ometbft/types/v1/block.proto\x1a\x19google/protobuf/any.proto\x1a\x19\x63osmos_proto/cosmos.proto\"\xcd\x03\n\nTxResponse\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\"\n\x06txhash\x18\x02 \x01(\tB\n\xe2\xde\x1f\x06TxHashR\x06txhash\x12\x1c\n\tcodespace\x18\x03 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x04 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x05 \x01(\tR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x06 \x01(\tR\x06rawLog\x12U\n\x04logs\x18\x07 \x03(\x0b\x32(.cosmos.base.abci.v1beta1.ABCIMessageLogB\x17\xc8\xde\x1f\x00\xaa\xdf\x1f\x0f\x41\x42\x43IMessageLogsR\x04logs\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x03R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x03R\x07gasUsed\x12$\n\x02tx\x18\x0b \x01(\x0b\x32\x14.google.protobuf.AnyR\x02tx\x12\x1c\n\ttimestamp\x18\x0c \x01(\tR\ttimestamp\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x04\xc8\xde\x1f\x00R\x06\x65vents:\x04\x88\xa0\x1f\x00\"\xa9\x01\n\x0e\x41\x42\x43IMessageLog\x12*\n\tmsg_index\x18\x01 \x01(\rB\r\xea\xde\x1f\tmsg_indexR\x08msgIndex\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12S\n\x06\x65vents\x18\x03 \x03(\x0b\x32%.cosmos.base.abci.v1beta1.StringEventB\x14\xc8\xde\x1f\x00\xaa\xdf\x1f\x0cStringEventsR\x06\x65vents:\x04\x80\xdc \x01\"r\n\x0bStringEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12I\n\nattributes\x18\x02 \x03(\x0b\x32#.cosmos.base.abci.v1beta1.AttributeB\x04\xc8\xde\x1f\x00R\nattributes:\x04\x80\xdc \x01\"3\n\tAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\"C\n\x07GasInfo\x12\x1d\n\ngas_wanted\x18\x01 \x01(\x04R\tgasWanted\x12\x19\n\x08gas_used\x18\x02 \x01(\x04R\x07gasUsed\"\xaa\x01\n\x06Result\x12\x16\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42\x02\x18\x01R\x04\x64\x61ta\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x35\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x17.cometbft.abci.v1.EventB\x04\xc8\xde\x1f\x00R\x06\x65vents\x12\x39\n\rmsg_responses\x18\x04 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0cmsgResponses:\x04\x88\xa0\x1f\x00\"\x96\x01\n\x12SimulationResponse\x12\x46\n\x08gas_info\x18\x01 \x01(\x0b\x32!.cosmos.base.abci.v1beta1.GasInfoB\x08\xc8\xde\x1f\x00\xd0\xde\x1f\x01R\x07gasInfo\x12\x38\n\x06result\x18\x02 \x01(\x0b\x32 .cosmos.base.abci.v1beta1.ResultR\x06result\"@\n\x07MsgData\x12\x19\n\x08msg_type\x18\x01 \x01(\tR\x07msgType\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta:\x06\x18\x01\x80\xdc \x01\"\x87\x01\n\tTxMsgData\x12\x39\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32!.cosmos.base.abci.v1beta1.MsgDataB\x02\x18\x01R\x04\x64\x61ta\x12\x39\n\rmsg_responses\x18\x02 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0cmsgResponses:\x04\x80\xdc \x01\"\xdc\x01\n\x0fSearchTxsResult\x12\x1f\n\x0btotal_count\x18\x01 \x01(\x04R\ntotalCount\x12\x14\n\x05\x63ount\x18\x02 \x01(\x04R\x05\x63ount\x12\x1f\n\x0bpage_number\x18\x03 \x01(\x04R\npageNumber\x12\x1d\n\npage_total\x18\x04 \x01(\x04R\tpageTotal\x12\x14\n\x05limit\x18\x05 \x01(\x04R\x05limit\x12\x36\n\x03txs\x18\x06 \x03(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\x03txs:\x04\x80\xdc \x01\"\xd9\x01\n\x12SearchBlocksResult\x12\x1f\n\x0btotal_count\x18\x01 \x01(\x03R\ntotalCount\x12\x14\n\x05\x63ount\x18\x02 \x01(\x03R\x05\x63ount\x12\x1f\n\x0bpage_number\x18\x03 \x01(\x03R\npageNumber\x12\x1d\n\npage_total\x18\x04 \x01(\x03R\tpageTotal\x12\x14\n\x05limit\x18\x05 \x01(\x03R\x05limit\x12\x30\n\x06\x62locks\x18\x06 \x03(\x0b\x32\x18.cometbft.types.v1.BlockR\x06\x62locks:\x04\x80\xdc \x01\x42\xd4\x01\n\x1c\x63om.cosmos.base.abci.v1beta1B\tAbciProtoP\x01Z\"github.com/cosmos/cosmos-sdk/types\xa2\x02\x03\x43\x42\x41\xaa\x02\x18\x43osmos.Base.Abci.V1beta1\xca\x02\x18\x43osmos\\Base\\Abci\\V1beta1\xe2\x02$Cosmos\\Base\\Abci\\V1beta1\\GPBMetadata\xea\x02\x1b\x43osmos::Base::Abci::V1beta1\xd8\xe1\x1e\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -62,26 +63,26 @@ _globals['_SEARCHTXSRESULT']._serialized_options = b'\200\334 \001' _globals['_SEARCHBLOCKSRESULT']._loaded_options = None _globals['_SEARCHBLOCKSRESULT']._serialized_options = b'\200\334 \001' - _globals['_TXRESPONSE']._serialized_start=174 - _globals['_TXRESPONSE']._serialized_end=634 - _globals['_ABCIMESSAGELOG']._serialized_start=637 - _globals['_ABCIMESSAGELOG']._serialized_end=806 - _globals['_STRINGEVENT']._serialized_start=808 - _globals['_STRINGEVENT']._serialized_end=922 - _globals['_ATTRIBUTE']._serialized_start=924 - _globals['_ATTRIBUTE']._serialized_end=975 - _globals['_GASINFO']._serialized_start=977 - _globals['_GASINFO']._serialized_end=1044 - _globals['_RESULT']._serialized_start=1047 - _globals['_RESULT']._serialized_end=1216 - _globals['_SIMULATIONRESPONSE']._serialized_start=1219 - _globals['_SIMULATIONRESPONSE']._serialized_end=1369 - _globals['_MSGDATA']._serialized_start=1371 - _globals['_MSGDATA']._serialized_end=1435 - _globals['_TXMSGDATA']._serialized_start=1438 - _globals['_TXMSGDATA']._serialized_end=1573 - _globals['_SEARCHTXSRESULT']._serialized_start=1576 - _globals['_SEARCHTXSRESULT']._serialized_end=1796 - _globals['_SEARCHBLOCKSRESULT']._serialized_start=1799 - _globals['_SEARCHBLOCKSRESULT']._serialized_end=2015 + _globals['_TXRESPONSE']._serialized_start=203 + _globals['_TXRESPONSE']._serialized_end=664 + _globals['_ABCIMESSAGELOG']._serialized_start=667 + _globals['_ABCIMESSAGELOG']._serialized_end=836 + _globals['_STRINGEVENT']._serialized_start=838 + _globals['_STRINGEVENT']._serialized_end=952 + _globals['_ATTRIBUTE']._serialized_start=954 + _globals['_ATTRIBUTE']._serialized_end=1005 + _globals['_GASINFO']._serialized_start=1007 + _globals['_GASINFO']._serialized_end=1074 + _globals['_RESULT']._serialized_start=1077 + _globals['_RESULT']._serialized_end=1247 + _globals['_SIMULATIONRESPONSE']._serialized_start=1250 + _globals['_SIMULATIONRESPONSE']._serialized_end=1400 + _globals['_MSGDATA']._serialized_start=1402 + _globals['_MSGDATA']._serialized_end=1466 + _globals['_TXMSGDATA']._serialized_start=1469 + _globals['_TXMSGDATA']._serialized_end=1604 + _globals['_SEARCHTXSRESULT']._serialized_start=1607 + _globals['_SEARCHTXSRESULT']._serialized_end=1827 + _globals['_SEARCHBLOCKSRESULT']._serialized_start=1830 + _globals['_SEARCHBLOCKSRESULT']._serialized_end=2047 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/base/tendermint/v1beta1/query_pb2.py b/pyinjective/proto/cosmos/base/tendermint/v1beta1/query_pb2.py index 17d870f8..0e00d68a 100644 --- a/pyinjective/proto/cosmos/base/tendermint/v1beta1/query_pb2.py +++ b/pyinjective/proto/cosmos/base/tendermint/v1beta1/query_pb2.py @@ -15,16 +15,16 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from pyinjective.proto.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 -from pyinjective.proto.tendermint.p2p import types_pb2 as tendermint_dot_p2p_dot_types__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 +from pyinjective.proto.cometbft.p2p.v1 import types_pb2 as cometbft_dot_p2p_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__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.base.tendermint.v1beta1 import types_pb2 as cosmos_dot_base_dot_tendermint_dot_v1beta1_dot_types__pb2 from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 -from pyinjective.proto.tendermint.types import block_pb2 as tendermint_dot_types_dot_block__pb2 +from pyinjective.proto.cometbft.types.v1 import block_pb2 as cometbft_dot_types_dot_v1_dot_block__pb2 from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cosmos/base/tendermint/v1beta1/query.proto\x12\x1e\x63osmos.base.tendermint.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1atendermint/p2p/types.proto\x1a\x1ctendermint/types/types.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a*cosmos/base/tendermint/v1beta1/types.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1ctendermint/types/block.proto\x1a\x11\x61mino/amino.proto\"\x80\x01\n\x1eGetValidatorSetByHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xd8\x01\n\x1fGetValidatorSetByHeightResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12I\n\nvalidators\x18\x02 \x03(\x0b\x32).cosmos.base.tendermint.v1beta1.ValidatorR\nvalidators\x12G\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"f\n\x1cGetLatestValidatorSetRequest\x12\x46\n\npagination\x18\x01 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xd6\x01\n\x1dGetLatestValidatorSetResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12I\n\nvalidators\x18\x02 \x03(\x0b\x32).cosmos.base.tendermint.v1beta1.ValidatorR\nvalidators\x12G\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbe\x01\n\tValidator\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12-\n\x07pub_key\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06pubKey\x12!\n\x0cvoting_power\x18\x03 \x01(\x03R\x0bvotingPower\x12+\n\x11proposer_priority\x18\x04 \x01(\x03R\x10proposerPriority\"1\n\x17GetBlockByHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\xc3\x01\n\x18GetBlockByHeightResponse\x12\x34\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x19.tendermint.types.BlockIDR\x07\x62lockId\x12-\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x17.tendermint.types.BlockR\x05\x62lock\x12\x42\n\tsdk_block\x18\x03 \x01(\x0b\x32%.cosmos.base.tendermint.v1beta1.BlockR\x08sdkBlock\"\x17\n\x15GetLatestBlockRequest\"\xc1\x01\n\x16GetLatestBlockResponse\x12\x34\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x19.tendermint.types.BlockIDR\x07\x62lockId\x12-\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x17.tendermint.types.BlockR\x05\x62lock\x12\x42\n\tsdk_block\x18\x03 \x01(\x0b\x32%.cosmos.base.tendermint.v1beta1.BlockR\x08sdkBlock\"\x13\n\x11GetSyncingRequest\".\n\x12GetSyncingResponse\x12\x18\n\x07syncing\x18\x01 \x01(\x08R\x07syncing\"\x14\n\x12GetNodeInfoRequest\"\xc0\x01\n\x13GetNodeInfoResponse\x12K\n\x11\x64\x65\x66\x61ult_node_info\x18\x01 \x01(\x0b\x32\x1f.tendermint.p2p.DefaultNodeInfoR\x0f\x64\x65\x66\x61ultNodeInfo\x12\\\n\x13\x61pplication_version\x18\x02 \x01(\x0b\x32+.cosmos.base.tendermint.v1beta1.VersionInfoR\x12\x61pplicationVersion\"\xa8\x02\n\x0bVersionInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n\x08\x61pp_name\x18\x02 \x01(\tR\x07\x61ppName\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x1d\n\ngit_commit\x18\x04 \x01(\tR\tgitCommit\x12\x1d\n\nbuild_tags\x18\x05 \x01(\tR\tbuildTags\x12\x1d\n\ngo_version\x18\x06 \x01(\tR\tgoVersion\x12\x45\n\nbuild_deps\x18\x07 \x03(\x0b\x32&.cosmos.base.tendermint.v1beta1.ModuleR\tbuildDeps\x12,\n\x12\x63osmos_sdk_version\x18\x08 \x01(\tR\x10\x63osmosSdkVersion\"H\n\x06Module\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x10\n\x03sum\x18\x03 \x01(\tR\x03sum\"h\n\x10\x41\x42\x43IQueryRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x14\n\x05prove\x18\x04 \x01(\x08R\x05prove\"\x8e\x02\n\x11\x41\x42\x43IQueryResponse\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x14\n\x05index\x18\x05 \x01(\x03R\x05index\x12\x10\n\x03key\x18\x06 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x07 \x01(\x0cR\x05value\x12\x45\n\tproof_ops\x18\x08 \x01(\x0b\x32(.cosmos.base.tendermint.v1beta1.ProofOpsR\x08proofOps\x12\x16\n\x06height\x18\t \x01(\x03R\x06height\x12\x1c\n\tcodespace\x18\n \x01(\tR\tcodespaceJ\x04\x08\x02\x10\x03\"C\n\x07ProofOp\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\x0cR\x03key\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\"P\n\x08ProofOps\x12\x44\n\x03ops\x18\x01 \x03(\x0b\x32\'.cosmos.base.tendermint.v1beta1.ProofOpB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x03ops2\xaf\n\n\x07Service\x12\xa9\x01\n\x0bGetNodeInfo\x12\x32.cosmos.base.tendermint.v1beta1.GetNodeInfoRequest\x1a\x33.cosmos.base.tendermint.v1beta1.GetNodeInfoResponse\"1\x82\xd3\xe4\x93\x02+\x12)/cosmos/base/tendermint/v1beta1/node_info\x12\xa4\x01\n\nGetSyncing\x12\x31.cosmos.base.tendermint.v1beta1.GetSyncingRequest\x1a\x32.cosmos.base.tendermint.v1beta1.GetSyncingResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/cosmos/base/tendermint/v1beta1/syncing\x12\xb6\x01\n\x0eGetLatestBlock\x12\x35.cosmos.base.tendermint.v1beta1.GetLatestBlockRequest\x1a\x36.cosmos.base.tendermint.v1beta1.GetLatestBlockResponse\"5\x82\xd3\xe4\x93\x02/\x12-/cosmos/base/tendermint/v1beta1/blocks/latest\x12\xbe\x01\n\x10GetBlockByHeight\x12\x37.cosmos.base.tendermint.v1beta1.GetBlockByHeightRequest\x1a\x38.cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//cosmos/base/tendermint/v1beta1/blocks/{height}\x12\xd2\x01\n\x15GetLatestValidatorSet\x12<.cosmos.base.tendermint.v1beta1.GetLatestValidatorSetRequest\x1a=.cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/cosmos/base/tendermint/v1beta1/validatorsets/latest\x12\xda\x01\n\x17GetValidatorSetByHeight\x12>.cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightRequest\x1a?.cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/cosmos/base/tendermint/v1beta1/validatorsets/{height}\x12\xa4\x01\n\tABCIQuery\x12\x30.cosmos.base.tendermint.v1beta1.ABCIQueryRequest\x1a\x31.cosmos.base.tendermint.v1beta1.ABCIQueryResponse\"2\x82\xd3\xe4\x93\x02,\x12*/cosmos/base/tendermint/v1beta1/abci_queryB\x80\x02\n\"com.cosmos.base.tendermint.v1beta1B\nQueryProtoP\x01Z3github.com/cosmos/cosmos-sdk/client/grpc/cmtservice\xa2\x02\x03\x43\x42T\xaa\x02\x1e\x43osmos.Base.Tendermint.V1beta1\xca\x02\x1e\x43osmos\\Base\\Tendermint\\V1beta1\xe2\x02*Cosmos\\Base\\Tendermint\\V1beta1\\GPBMetadata\xea\x02!Cosmos::Base::Tendermint::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cosmos/base/tendermint/v1beta1/query.proto\x12\x1e\x63osmos.base.tendermint.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x19google/protobuf/any.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x63ometbft/p2p/v1/types.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a*cosmos/base/tendermint/v1beta1/types.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1d\x63ometbft/types/v1/block.proto\x1a\x11\x61mino/amino.proto\"\x80\x01\n\x1eGetValidatorSetByHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xd8\x01\n\x1fGetValidatorSetByHeightResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12I\n\nvalidators\x18\x02 \x03(\x0b\x32).cosmos.base.tendermint.v1beta1.ValidatorR\nvalidators\x12G\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"f\n\x1cGetLatestValidatorSetRequest\x12\x46\n\npagination\x18\x01 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xd6\x01\n\x1dGetLatestValidatorSetResponse\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12I\n\nvalidators\x18\x02 \x03(\x0b\x32).cosmos.base.tendermint.v1beta1.ValidatorR\nvalidators\x12G\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbe\x01\n\tValidator\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12-\n\x07pub_key\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06pubKey\x12!\n\x0cvoting_power\x18\x03 \x01(\x03R\x0bvotingPower\x12+\n\x11proposer_priority\x18\x04 \x01(\x03R\x10proposerPriority\"1\n\x17GetBlockByHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"\xc5\x01\n\x18GetBlockByHeightResponse\x12\x35\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDR\x07\x62lockId\x12.\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x18.cometbft.types.v1.BlockR\x05\x62lock\x12\x42\n\tsdk_block\x18\x03 \x01(\x0b\x32%.cosmos.base.tendermint.v1beta1.BlockR\x08sdkBlock\"\x17\n\x15GetLatestBlockRequest\"\xc3\x01\n\x16GetLatestBlockResponse\x12\x35\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDR\x07\x62lockId\x12.\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x18.cometbft.types.v1.BlockR\x05\x62lock\x12\x42\n\tsdk_block\x18\x03 \x01(\x0b\x32%.cosmos.base.tendermint.v1beta1.BlockR\x08sdkBlock\"\x13\n\x11GetSyncingRequest\".\n\x12GetSyncingResponse\x12\x18\n\x07syncing\x18\x01 \x01(\x08R\x07syncing\"\x14\n\x12GetNodeInfoRequest\"\xc1\x01\n\x13GetNodeInfoResponse\x12L\n\x11\x64\x65\x66\x61ult_node_info\x18\x01 \x01(\x0b\x32 .cometbft.p2p.v1.DefaultNodeInfoR\x0f\x64\x65\x66\x61ultNodeInfo\x12\\\n\x13\x61pplication_version\x18\x02 \x01(\x0b\x32+.cosmos.base.tendermint.v1beta1.VersionInfoR\x12\x61pplicationVersion\"\xa8\x02\n\x0bVersionInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n\x08\x61pp_name\x18\x02 \x01(\tR\x07\x61ppName\x12\x18\n\x07version\x18\x03 \x01(\tR\x07version\x12\x1d\n\ngit_commit\x18\x04 \x01(\tR\tgitCommit\x12\x1d\n\nbuild_tags\x18\x05 \x01(\tR\tbuildTags\x12\x1d\n\ngo_version\x18\x06 \x01(\tR\tgoVersion\x12\x45\n\nbuild_deps\x18\x07 \x03(\x0b\x32&.cosmos.base.tendermint.v1beta1.ModuleR\tbuildDeps\x12,\n\x12\x63osmos_sdk_version\x18\x08 \x01(\tR\x10\x63osmosSdkVersion\"H\n\x06Module\x12\x12\n\x04path\x18\x01 \x01(\tR\x04path\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x10\n\x03sum\x18\x03 \x01(\tR\x03sum\"h\n\x10\x41\x42\x43IQueryRequest\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x14\n\x05prove\x18\x04 \x01(\x08R\x05prove\"\x8e\x02\n\x11\x41\x42\x43IQueryResponse\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x14\n\x05index\x18\x05 \x01(\x03R\x05index\x12\x10\n\x03key\x18\x06 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x07 \x01(\x0cR\x05value\x12\x45\n\tproof_ops\x18\x08 \x01(\x0b\x32(.cosmos.base.tendermint.v1beta1.ProofOpsR\x08proofOps\x12\x16\n\x06height\x18\t \x01(\x03R\x06height\x12\x1c\n\tcodespace\x18\n \x01(\tR\tcodespaceJ\x04\x08\x02\x10\x03\"C\n\x07ProofOp\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\x0cR\x03key\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\"P\n\x08ProofOps\x12\x44\n\x03ops\x18\x01 \x03(\x0b\x32\'.cosmos.base.tendermint.v1beta1.ProofOpB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x03ops2\xaf\n\n\x07Service\x12\xa9\x01\n\x0bGetNodeInfo\x12\x32.cosmos.base.tendermint.v1beta1.GetNodeInfoRequest\x1a\x33.cosmos.base.tendermint.v1beta1.GetNodeInfoResponse\"1\x82\xd3\xe4\x93\x02+\x12)/cosmos/base/tendermint/v1beta1/node_info\x12\xa4\x01\n\nGetSyncing\x12\x31.cosmos.base.tendermint.v1beta1.GetSyncingRequest\x1a\x32.cosmos.base.tendermint.v1beta1.GetSyncingResponse\"/\x82\xd3\xe4\x93\x02)\x12\'/cosmos/base/tendermint/v1beta1/syncing\x12\xb6\x01\n\x0eGetLatestBlock\x12\x35.cosmos.base.tendermint.v1beta1.GetLatestBlockRequest\x1a\x36.cosmos.base.tendermint.v1beta1.GetLatestBlockResponse\"5\x82\xd3\xe4\x93\x02/\x12-/cosmos/base/tendermint/v1beta1/blocks/latest\x12\xbe\x01\n\x10GetBlockByHeight\x12\x37.cosmos.base.tendermint.v1beta1.GetBlockByHeightRequest\x1a\x38.cosmos.base.tendermint.v1beta1.GetBlockByHeightResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//cosmos/base/tendermint/v1beta1/blocks/{height}\x12\xd2\x01\n\x15GetLatestValidatorSet\x12<.cosmos.base.tendermint.v1beta1.GetLatestValidatorSetRequest\x1a=.cosmos.base.tendermint.v1beta1.GetLatestValidatorSetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/cosmos/base/tendermint/v1beta1/validatorsets/latest\x12\xda\x01\n\x17GetValidatorSetByHeight\x12>.cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightRequest\x1a?.cosmos.base.tendermint.v1beta1.GetValidatorSetByHeightResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/cosmos/base/tendermint/v1beta1/validatorsets/{height}\x12\xa4\x01\n\tABCIQuery\x12\x30.cosmos.base.tendermint.v1beta1.ABCIQueryRequest\x1a\x31.cosmos.base.tendermint.v1beta1.ABCIQueryResponse\"2\x82\xd3\xe4\x93\x02,\x12*/cosmos/base/tendermint/v1beta1/abci_queryB\x80\x02\n\"com.cosmos.base.tendermint.v1beta1B\nQueryProtoP\x01Z3github.com/cosmos/cosmos-sdk/client/grpc/cmtservice\xa2\x02\x03\x43\x42T\xaa\x02\x1e\x43osmos.Base.Tendermint.V1beta1\xca\x02\x1e\x43osmos\\Base\\Tendermint\\V1beta1\xe2\x02*Cosmos\\Base\\Tendermint\\V1beta1\\GPBMetadata\xea\x02!Cosmos::Base::Tendermint::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -50,44 +50,44 @@ _globals['_SERVICE'].methods_by_name['GetValidatorSetByHeight']._serialized_options = b'\202\323\344\223\0028\0226/cosmos/base/tendermint/v1beta1/validatorsets/{height}' _globals['_SERVICE'].methods_by_name['ABCIQuery']._loaded_options = None _globals['_SERVICE'].methods_by_name['ABCIQuery']._serialized_options = b'\202\323\344\223\002,\022*/cosmos/base/tendermint/v1beta1/abci_query' - _globals['_GETVALIDATORSETBYHEIGHTREQUEST']._serialized_start=380 - _globals['_GETVALIDATORSETBYHEIGHTREQUEST']._serialized_end=508 - _globals['_GETVALIDATORSETBYHEIGHTRESPONSE']._serialized_start=511 - _globals['_GETVALIDATORSETBYHEIGHTRESPONSE']._serialized_end=727 - _globals['_GETLATESTVALIDATORSETREQUEST']._serialized_start=729 - _globals['_GETLATESTVALIDATORSETREQUEST']._serialized_end=831 - _globals['_GETLATESTVALIDATORSETRESPONSE']._serialized_start=834 - _globals['_GETLATESTVALIDATORSETRESPONSE']._serialized_end=1048 - _globals['_VALIDATOR']._serialized_start=1051 - _globals['_VALIDATOR']._serialized_end=1241 - _globals['_GETBLOCKBYHEIGHTREQUEST']._serialized_start=1243 - _globals['_GETBLOCKBYHEIGHTREQUEST']._serialized_end=1292 - _globals['_GETBLOCKBYHEIGHTRESPONSE']._serialized_start=1295 - _globals['_GETBLOCKBYHEIGHTRESPONSE']._serialized_end=1490 - _globals['_GETLATESTBLOCKREQUEST']._serialized_start=1492 - _globals['_GETLATESTBLOCKREQUEST']._serialized_end=1515 - _globals['_GETLATESTBLOCKRESPONSE']._serialized_start=1518 - _globals['_GETLATESTBLOCKRESPONSE']._serialized_end=1711 - _globals['_GETSYNCINGREQUEST']._serialized_start=1713 - _globals['_GETSYNCINGREQUEST']._serialized_end=1732 - _globals['_GETSYNCINGRESPONSE']._serialized_start=1734 - _globals['_GETSYNCINGRESPONSE']._serialized_end=1780 - _globals['_GETNODEINFOREQUEST']._serialized_start=1782 - _globals['_GETNODEINFOREQUEST']._serialized_end=1802 - _globals['_GETNODEINFORESPONSE']._serialized_start=1805 - _globals['_GETNODEINFORESPONSE']._serialized_end=1997 - _globals['_VERSIONINFO']._serialized_start=2000 - _globals['_VERSIONINFO']._serialized_end=2296 - _globals['_MODULE']._serialized_start=2298 - _globals['_MODULE']._serialized_end=2370 - _globals['_ABCIQUERYREQUEST']._serialized_start=2372 - _globals['_ABCIQUERYREQUEST']._serialized_end=2476 - _globals['_ABCIQUERYRESPONSE']._serialized_start=2479 - _globals['_ABCIQUERYRESPONSE']._serialized_end=2749 - _globals['_PROOFOP']._serialized_start=2751 - _globals['_PROOFOP']._serialized_end=2818 - _globals['_PROOFOPS']._serialized_start=2820 - _globals['_PROOFOPS']._serialized_end=2900 - _globals['_SERVICE']._serialized_start=2903 - _globals['_SERVICE']._serialized_end=4230 + _globals['_GETVALIDATORSETBYHEIGHTREQUEST']._serialized_start=383 + _globals['_GETVALIDATORSETBYHEIGHTREQUEST']._serialized_end=511 + _globals['_GETVALIDATORSETBYHEIGHTRESPONSE']._serialized_start=514 + _globals['_GETVALIDATORSETBYHEIGHTRESPONSE']._serialized_end=730 + _globals['_GETLATESTVALIDATORSETREQUEST']._serialized_start=732 + _globals['_GETLATESTVALIDATORSETREQUEST']._serialized_end=834 + _globals['_GETLATESTVALIDATORSETRESPONSE']._serialized_start=837 + _globals['_GETLATESTVALIDATORSETRESPONSE']._serialized_end=1051 + _globals['_VALIDATOR']._serialized_start=1054 + _globals['_VALIDATOR']._serialized_end=1244 + _globals['_GETBLOCKBYHEIGHTREQUEST']._serialized_start=1246 + _globals['_GETBLOCKBYHEIGHTREQUEST']._serialized_end=1295 + _globals['_GETBLOCKBYHEIGHTRESPONSE']._serialized_start=1298 + _globals['_GETBLOCKBYHEIGHTRESPONSE']._serialized_end=1495 + _globals['_GETLATESTBLOCKREQUEST']._serialized_start=1497 + _globals['_GETLATESTBLOCKREQUEST']._serialized_end=1520 + _globals['_GETLATESTBLOCKRESPONSE']._serialized_start=1523 + _globals['_GETLATESTBLOCKRESPONSE']._serialized_end=1718 + _globals['_GETSYNCINGREQUEST']._serialized_start=1720 + _globals['_GETSYNCINGREQUEST']._serialized_end=1739 + _globals['_GETSYNCINGRESPONSE']._serialized_start=1741 + _globals['_GETSYNCINGRESPONSE']._serialized_end=1787 + _globals['_GETNODEINFOREQUEST']._serialized_start=1789 + _globals['_GETNODEINFOREQUEST']._serialized_end=1809 + _globals['_GETNODEINFORESPONSE']._serialized_start=1812 + _globals['_GETNODEINFORESPONSE']._serialized_end=2005 + _globals['_VERSIONINFO']._serialized_start=2008 + _globals['_VERSIONINFO']._serialized_end=2304 + _globals['_MODULE']._serialized_start=2306 + _globals['_MODULE']._serialized_end=2378 + _globals['_ABCIQUERYREQUEST']._serialized_start=2380 + _globals['_ABCIQUERYREQUEST']._serialized_end=2484 + _globals['_ABCIQUERYRESPONSE']._serialized_start=2487 + _globals['_ABCIQUERYRESPONSE']._serialized_end=2757 + _globals['_PROOFOP']._serialized_start=2759 + _globals['_PROOFOP']._serialized_end=2826 + _globals['_PROOFOPS']._serialized_start=2828 + _globals['_PROOFOPS']._serialized_end=2908 + _globals['_SERVICE']._serialized_start=2911 + _globals['_SERVICE']._serialized_end=4238 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/base/tendermint/v1beta1/types_pb2.py b/pyinjective/proto/cosmos/base/tendermint/v1beta1/types_pb2.py index ebfc1954..cf7dc769 100644 --- a/pyinjective/proto/cosmos/base/tendermint/v1beta1/types_pb2.py +++ b/pyinjective/proto/cosmos/base/tendermint/v1beta1/types_pb2.py @@ -13,14 +13,14 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 -from pyinjective.proto.tendermint.types import evidence_pb2 as tendermint_dot_types_dot_evidence__pb2 -from pyinjective.proto.tendermint.version import types_pb2 as tendermint_dot_version_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import evidence_pb2 as cometbft_dot_types_dot_v1_dot_evidence__pb2 +from pyinjective.proto.cometbft.version.v1 import types_pb2 as cometbft_dot_version_dot_v1_dot_types__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cosmos/base/tendermint/v1beta1/types.proto\x12\x1e\x63osmos.base.tendermint.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1ctendermint/types/types.proto\x1a\x1ftendermint/types/evidence.proto\x1a\x1etendermint/version/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x11\x61mino/amino.proto\"\x8b\x02\n\x05\x42lock\x12I\n\x06header\x18\x01 \x01(\x0b\x32&.cosmos.base.tendermint.v1beta1.HeaderB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06header\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.tendermint.types.DataB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x04\x64\x61ta\x12\x45\n\x08\x65vidence\x18\x03 \x01(\x0b\x32\x1e.tendermint.types.EvidenceListB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x08\x65vidence\x12\x39\n\x0blast_commit\x18\x04 \x01(\x0b\x32\x18.tendermint.types.CommitR\nlastCommit\"\xf5\x04\n\x06Header\x12\x42\n\x07version\x18\x01 \x01(\x0b\x32\x1d.tendermint.version.ConsensusB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12=\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x04time\x12H\n\rlast_block_id\x18\x05 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0blastBlockId\x12(\n\x10last_commit_hash\x18\x06 \x01(\x0cR\x0elastCommitHash\x12\x1b\n\tdata_hash\x18\x07 \x01(\x0cR\x08\x64\x61taHash\x12\'\n\x0fvalidators_hash\x18\x08 \x01(\x0cR\x0evalidatorsHash\x12\x30\n\x14next_validators_hash\x18\t \x01(\x0cR\x12nextValidatorsHash\x12%\n\x0e\x63onsensus_hash\x18\n \x01(\x0cR\rconsensusHash\x12\x19\n\x08\x61pp_hash\x18\x0b \x01(\x0cR\x07\x61ppHash\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12#\n\revidence_hash\x18\r \x01(\x0cR\x0c\x65videnceHash\x12)\n\x10proposer_address\x18\x0e \x01(\tR\x0fproposerAddressB\x80\x02\n\"com.cosmos.base.tendermint.v1beta1B\nTypesProtoP\x01Z3github.com/cosmos/cosmos-sdk/client/grpc/cmtservice\xa2\x02\x03\x43\x42T\xaa\x02\x1e\x43osmos.Base.Tendermint.V1beta1\xca\x02\x1e\x43osmos\\Base\\Tendermint\\V1beta1\xe2\x02*Cosmos\\Base\\Tendermint\\V1beta1\\GPBMetadata\xea\x02!Cosmos::Base::Tendermint::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cosmos/base/tendermint/v1beta1/types.proto\x12\x1e\x63osmos.base.tendermint.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a cometbft/types/v1/evidence.proto\x1a\x1f\x63ometbft/version/v1/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x11\x61mino/amino.proto\"\x8e\x02\n\x05\x42lock\x12I\n\x06header\x18\x01 \x01(\x0b\x32&.cosmos.base.tendermint.v1beta1.HeaderB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06header\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.cometbft.types.v1.DataB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x04\x64\x61ta\x12\x46\n\x08\x65vidence\x18\x03 \x01(\x0b\x32\x1f.cometbft.types.v1.EvidenceListB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x08\x65vidence\x12:\n\x0blast_commit\x18\x04 \x01(\x0b\x32\x19.cometbft.types.v1.CommitR\nlastCommit\"\xf7\x04\n\x06Header\x12\x43\n\x07version\x18\x01 \x01(\x0b\x32\x1e.cometbft.version.v1.ConsensusB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12=\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x04time\x12I\n\rlast_block_id\x18\x05 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0blastBlockId\x12(\n\x10last_commit_hash\x18\x06 \x01(\x0cR\x0elastCommitHash\x12\x1b\n\tdata_hash\x18\x07 \x01(\x0cR\x08\x64\x61taHash\x12\'\n\x0fvalidators_hash\x18\x08 \x01(\x0cR\x0evalidatorsHash\x12\x30\n\x14next_validators_hash\x18\t \x01(\x0cR\x12nextValidatorsHash\x12%\n\x0e\x63onsensus_hash\x18\n \x01(\x0cR\rconsensusHash\x12\x19\n\x08\x61pp_hash\x18\x0b \x01(\x0cR\x07\x61ppHash\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12#\n\revidence_hash\x18\r \x01(\x0cR\x0c\x65videnceHash\x12)\n\x10proposer_address\x18\x0e \x01(\tR\x0fproposerAddressB\x80\x02\n\"com.cosmos.base.tendermint.v1beta1B\nTypesProtoP\x01Z3github.com/cosmos/cosmos-sdk/client/grpc/cmtservice\xa2\x02\x03\x43\x42T\xaa\x02\x1e\x43osmos.Base.Tendermint.V1beta1\xca\x02\x1e\x43osmos\\Base\\Tendermint\\V1beta1\xe2\x02*Cosmos\\Base\\Tendermint\\V1beta1\\GPBMetadata\xea\x02!Cosmos::Base::Tendermint::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,8 +42,8 @@ _globals['_HEADER'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001\250\347\260*\001' _globals['_HEADER'].fields_by_name['last_block_id']._loaded_options = None _globals['_HEADER'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000\250\347\260*\001' - _globals['_BLOCK']._serialized_start=248 - _globals['_BLOCK']._serialized_end=515 - _globals['_HEADER']._serialized_start=518 - _globals['_HEADER']._serialized_end=1147 + _globals['_BLOCK']._serialized_start=251 + _globals['_BLOCK']._serialized_end=521 + _globals['_HEADER']._serialized_start=524 + _globals['_HEADER']._serialized_end=1155 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/consensus/v1/query_pb2.py b/pyinjective/proto/cosmos/consensus/v1/query_pb2.py index 32464859..6593f4ca 100644 --- a/pyinjective/proto/cosmos/consensus/v1/query_pb2.py +++ b/pyinjective/proto/cosmos/consensus/v1/query_pb2.py @@ -13,10 +13,10 @@ from pyinjective.proto.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 -from pyinjective.proto.tendermint.types import params_pb2 as tendermint_dot_types_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/consensus/v1/query.proto\x12\x13\x63osmos.consensus.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1dtendermint/types/params.proto\"\x14\n\x12QueryParamsRequest\"P\n\x13QueryParamsResponse\x12\x39\n\x06params\x18\x01 \x01(\x0b\x32!.tendermint.types.ConsensusParamsR\x06params2\x8a\x01\n\x05Query\x12\x80\x01\n\x06Params\x12\'.cosmos.consensus.v1.QueryParamsRequest\x1a(.cosmos.consensus.v1.QueryParamsResponse\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/cosmos/consensus/v1/paramsB\xc3\x01\n\x17\x63om.cosmos.consensus.v1B\nQueryProtoP\x01Z.github.com/cosmos/cosmos-sdk/x/consensus/types\xa2\x02\x03\x43\x43X\xaa\x02\x13\x43osmos.Consensus.V1\xca\x02\x13\x43osmos\\Consensus\\V1\xe2\x02\x1f\x43osmos\\Consensus\\V1\\GPBMetadata\xea\x02\x15\x43osmos::Consensus::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/consensus/v1/query.proto\x12\x13\x63osmos.consensus.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1e\x63ometbft/types/v1/params.proto\"\x14\n\x12QueryParamsRequest\"Q\n\x13QueryParamsResponse\x12:\n\x06params\x18\x01 \x01(\x0b\x32\".cometbft.types.v1.ConsensusParamsR\x06params2\x8a\x01\n\x05Query\x12\x80\x01\n\x06Params\x12\'.cosmos.consensus.v1.QueryParamsRequest\x1a(.cosmos.consensus.v1.QueryParamsResponse\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/cosmos/consensus/v1/paramsB\xc3\x01\n\x17\x63om.cosmos.consensus.v1B\nQueryProtoP\x01Z.github.com/cosmos/cosmos-sdk/x/consensus/types\xa2\x02\x03\x43\x43X\xaa\x02\x13\x43osmos.Consensus.V1\xca\x02\x13\x43osmos\\Consensus\\V1\xe2\x02\x1f\x43osmos\\Consensus\\V1\\GPBMetadata\xea\x02\x15\x43osmos::Consensus::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,10 +26,10 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\027com.cosmos.consensus.v1B\nQueryProtoP\001Z.github.com/cosmos/cosmos-sdk/x/consensus/types\242\002\003CCX\252\002\023Cosmos.Consensus.V1\312\002\023Cosmos\\Consensus\\V1\342\002\037Cosmos\\Consensus\\V1\\GPBMetadata\352\002\025Cosmos::Consensus::V1' _globals['_QUERY'].methods_by_name['Params']._loaded_options = None _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002\035\022\033/cosmos/consensus/v1/params' - _globals['_QUERYPARAMSREQUEST']._serialized_start=117 - _globals['_QUERYPARAMSREQUEST']._serialized_end=137 - _globals['_QUERYPARAMSRESPONSE']._serialized_start=139 - _globals['_QUERYPARAMSRESPONSE']._serialized_end=219 - _globals['_QUERY']._serialized_start=222 - _globals['_QUERY']._serialized_end=360 + _globals['_QUERYPARAMSREQUEST']._serialized_start=118 + _globals['_QUERYPARAMSREQUEST']._serialized_end=138 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=140 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=221 + _globals['_QUERY']._serialized_start=224 + _globals['_QUERY']._serialized_end=362 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/consensus/v1/tx_pb2.py b/pyinjective/proto/cosmos/consensus/v1/tx_pb2.py index 584d4c38..6c492bfd 100644 --- a/pyinjective/proto/cosmos/consensus/v1/tx_pb2.py +++ b/pyinjective/proto/cosmos/consensus/v1/tx_pb2.py @@ -15,10 +15,10 @@ 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 from pyinjective.proto.cosmos.msg.v1 import msg_pb2 as cosmos_dot_msg_dot_v1_dot_msg__pb2 -from pyinjective.proto.tendermint.types import params_pb2 as tendermint_dot_types_dot_params__pb2 +from pyinjective.proto.cometbft.types.v1 import params_pb2 as cometbft_dot_types_dot_v1_dot_params__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmos/consensus/v1/tx.proto\x12\x13\x63osmos.consensus.v1\x1a\x11\x61mino/amino.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x1dtendermint/types/params.proto\"\xea\x02\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x33\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x1d.tendermint.types.BlockParamsR\x05\x62lock\x12<\n\x08\x65vidence\x18\x03 \x01(\x0b\x32 .tendermint.types.EvidenceParamsR\x08\x65vidence\x12?\n\tvalidator\x18\x04 \x01(\x0b\x32!.tendermint.types.ValidatorParamsR\tvalidator\x12\x30\n\x04\x61\x62\x63i\x18\x05 \x01(\x0b\x32\x1c.tendermint.types.ABCIParamsR\x04\x61\x62\x63i:9\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*&cosmos-sdk/x/consensus/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2p\n\x03Msg\x12\x62\n\x0cUpdateParams\x12$.cosmos.consensus.v1.MsgUpdateParams\x1a,.cosmos.consensus.v1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xc0\x01\n\x17\x63om.cosmos.consensus.v1B\x07TxProtoP\x01Z.github.com/cosmos/cosmos-sdk/x/consensus/types\xa2\x02\x03\x43\x43X\xaa\x02\x13\x43osmos.Consensus.V1\xca\x02\x13\x43osmos\\Consensus\\V1\xe2\x02\x1f\x43osmos\\Consensus\\V1\\GPBMetadata\xea\x02\x15\x43osmos::Consensus::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmos/consensus/v1/tx.proto\x12\x13\x63osmos.consensus.v1\x1a\x11\x61mino/amino.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x1e\x63ometbft/types/v1/params.proto\"\xec\x03\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x34\n\x05\x62lock\x18\x02 \x01(\x0b\x32\x1e.cometbft.types.v1.BlockParamsR\x05\x62lock\x12=\n\x08\x65vidence\x18\x03 \x01(\x0b\x32!.cometbft.types.v1.EvidenceParamsR\x08\x65vidence\x12@\n\tvalidator\x18\x04 \x01(\x0b\x32\".cometbft.types.v1.ValidatorParamsR\tvalidator\x12\x31\n\x04\x61\x62\x63i\x18\x05 \x01(\x0b\x32\x1d.cometbft.types.v1.ABCIParamsR\x04\x61\x62\x63i\x12@\n\tsynchrony\x18\x06 \x01(\x0b\x32\".cometbft.types.v1.SynchronyParamsR\tsynchrony\x12:\n\x07\x66\x65\x61ture\x18\x07 \x01(\x0b\x32 .cometbft.types.v1.FeatureParamsR\x07\x66\x65\x61ture:9\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*&cosmos-sdk/x/consensus/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2p\n\x03Msg\x12\x62\n\x0cUpdateParams\x12$.cosmos.consensus.v1.MsgUpdateParams\x1a,.cosmos.consensus.v1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xc0\x01\n\x17\x63om.cosmos.consensus.v1B\x07TxProtoP\x01Z.github.com/cosmos/cosmos-sdk/x/consensus/types\xa2\x02\x03\x43\x43X\xaa\x02\x13\x43osmos.Consensus.V1\xca\x02\x13\x43osmos\\Consensus\\V1\xe2\x02\x1f\x43osmos\\Consensus\\V1\\GPBMetadata\xea\x02\x15\x43osmos::Consensus::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,10 +32,10 @@ _globals['_MSGUPDATEPARAMS']._serialized_options = b'\202\347\260*\tauthority\212\347\260*&cosmos-sdk/x/consensus/MsgUpdateParams' _globals['_MSG']._loaded_options = None _globals['_MSG']._serialized_options = b'\200\347\260*\001' - _globals['_MSGUPDATEPARAMS']._serialized_start=156 - _globals['_MSGUPDATEPARAMS']._serialized_end=518 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=520 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=545 - _globals['_MSG']._serialized_start=547 - _globals['_MSG']._serialized_end=659 + _globals['_MSGUPDATEPARAMS']._serialized_start=157 + _globals['_MSGUPDATEPARAMS']._serialized_end=649 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=651 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=676 + _globals['_MSG']._serialized_start=678 + _globals['_MSG']._serialized_end=790 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/group/v1/events_pb2.py b/pyinjective/proto/cosmos/group/v1/events_pb2.py index 3d5129a1..58a5b7aa 100644 --- a/pyinjective/proto/cosmos/group/v1/events_pb2.py +++ b/pyinjective/proto/cosmos/group/v1/events_pb2.py @@ -16,7 +16,7 @@ from pyinjective.proto.cosmos.group.v1 import types_pb2 as cosmos_dot_group_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmos/group/v1/events.proto\x12\x0f\x63osmos.group.v1\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1b\x63osmos/group/v1/types.proto\"-\n\x10\x45ventCreateGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\"-\n\x10\x45ventUpdateGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\"L\n\x16\x45ventCreateGroupPolicy\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"L\n\x16\x45ventUpdateGroupPolicy\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"6\n\x13\x45ventSubmitProposal\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\"8\n\x15\x45ventWithdrawProposal\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\",\n\tEventVote\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\"\x81\x01\n\tEventExec\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\x12?\n\x06result\x18\x02 \x01(\x0e\x32\'.cosmos.group.v1.ProposalExecutorResultR\x06result\x12\x12\n\x04logs\x18\x03 \x01(\tR\x04logs\"`\n\x0f\x45ventLeaveGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\x12\x32\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"\xb0\x01\n\x13\x45ventProposalPruned\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\x1f.cosmos.group.v1.ProposalStatusR\x06status\x12?\n\x0ctally_result\x18\x03 \x01(\x0b\x32\x1c.cosmos.group.v1.TallyResultR\x0btallyResultB\xa6\x01\n\x13\x63om.cosmos.group.v1B\x0b\x45ventsProtoP\x01Z$github.com/cosmos/cosmos-sdk/x/group\xa2\x02\x03\x43GX\xaa\x02\x0f\x43osmos.Group.V1\xca\x02\x0f\x43osmos\\Group\\V1\xe2\x02\x1b\x43osmos\\Group\\V1\\GPBMetadata\xea\x02\x11\x43osmos::Group::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63osmos/group/v1/events.proto\x12\x0f\x63osmos.group.v1\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1b\x63osmos/group/v1/types.proto\"-\n\x10\x45ventCreateGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\"-\n\x10\x45ventUpdateGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\"L\n\x16\x45ventCreateGroupPolicy\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"L\n\x16\x45ventUpdateGroupPolicy\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"6\n\x13\x45ventSubmitProposal\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\"8\n\x15\x45ventWithdrawProposal\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\",\n\tEventVote\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\"\x81\x01\n\tEventExec\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\x12?\n\x06result\x18\x02 \x01(\x0e\x32\'.cosmos.group.v1.ProposalExecutorResultR\x06result\x12\x12\n\x04logs\x18\x03 \x01(\tR\x04logs\"`\n\x0f\x45ventLeaveGroup\x12\x19\n\x08group_id\x18\x01 \x01(\x04R\x07groupId\x12\x32\n\x07\x61\x64\x64ress\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\"\xb0\x01\n\x13\x45ventProposalPruned\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\x1f.cosmos.group.v1.ProposalStatusR\x06status\x12?\n\x0ctally_result\x18\x03 \x01(\x0b\x32\x1c.cosmos.group.v1.TallyResultR\x0btallyResult\"W\n\x0f\x45ventTallyError\x12\x1f\n\x0bproposal_id\x18\x01 \x01(\x04R\nproposalId\x12#\n\rerror_message\x18\x02 \x01(\tR\x0c\x65rrorMessageB\xa6\x01\n\x13\x63om.cosmos.group.v1B\x0b\x45ventsProtoP\x01Z$github.com/cosmos/cosmos-sdk/x/group\xa2\x02\x03\x43GX\xaa\x02\x0f\x43osmos.Group.V1\xca\x02\x0f\x43osmos\\Group\\V1\xe2\x02\x1b\x43osmos\\Group\\V1\\GPBMetadata\xea\x02\x11\x43osmos::Group::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -50,4 +50,6 @@ _globals['_EVENTLEAVEGROUP']._serialized_end=743 _globals['_EVENTPROPOSALPRUNED']._serialized_start=746 _globals['_EVENTPROPOSALPRUNED']._serialized_end=922 + _globals['_EVENTTALLYERROR']._serialized_start=924 + _globals['_EVENTTALLYERROR']._serialized_end=1011 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/staking/v1beta1/genesis_pb2.py b/pyinjective/proto/cosmos/staking/v1beta1/genesis_pb2.py index 4186446e..e6ccb9fe 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/genesis_pb2.py +++ b/pyinjective/proto/cosmos/staking/v1beta1/genesis_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$cosmos/staking/v1beta1/genesis.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x14gogoproto/gogo.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x11\x61mino/amino.proto\"\x97\x05\n\x0cGenesisState\x12\x41\n\x06params\x18\x01 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params\x12Z\n\x10last_total_power\x18\x02 \x01(\x0c\x42\x30\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0elastTotalPower\x12i\n\x15last_validator_powers\x18\x03 \x03(\x0b\x32*.cosmos.staking.v1beta1.LastValidatorPowerB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x13lastValidatorPowers\x12L\n\nvalidators\x18\x04 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12O\n\x0b\x64\x65legations\x18\x05 \x03(\x0b\x32\".cosmos.staking.v1beta1.DelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65legations\x12k\n\x15unbonding_delegations\x18\x06 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x14unbondingDelegations\x12U\n\rredelegations\x18\x07 \x03(\x0b\x32$.cosmos.staking.v1beta1.RedelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\rredelegations\x12\x1a\n\x08\x65xported\x18\x08 \x01(\x08R\x08\x65xported\"h\n\x12LastValidatorPower\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x02 \x01(\x03R\x05power:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x42\xd2\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x0cGenesisProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cosmos/staking/v1beta1/genesis.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x14gogoproto/gogo.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x11\x61mino/amino.proto\"\xf5\x05\n\x0cGenesisState\x12\x41\n\x06params\x18\x01 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params\x12Z\n\x10last_total_power\x18\x02 \x01(\x0c\x42\x30\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0elastTotalPower\x12i\n\x15last_validator_powers\x18\x03 \x03(\x0b\x32*.cosmos.staking.v1beta1.LastValidatorPowerB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x13lastValidatorPowers\x12L\n\nvalidators\x18\x04 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12O\n\x0b\x64\x65legations\x18\x05 \x03(\x0b\x32\".cosmos.staking.v1beta1.DelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65legations\x12k\n\x15unbonding_delegations\x18\x06 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x14unbondingDelegations\x12U\n\rredelegations\x18\x07 \x03(\x0b\x32$.cosmos.staking.v1beta1.RedelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\rredelegations\x12\x1a\n\x08\x65xported\x18\x08 \x01(\x08R\x08\x65xported\x12\\\n%allowed_delegation_transfer_receivers\x18\t \x03(\tB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\"allowedDelegationTransferReceivers\"h\n\x12LastValidatorPower\x12\x32\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x02 \x01(\x03R\x05power:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x42\xd2\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x0cGenesisProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,12 +40,14 @@ _globals['_GENESISSTATE'].fields_by_name['unbonding_delegations']._serialized_options = b'\310\336\037\000\250\347\260*\001' _globals['_GENESISSTATE'].fields_by_name['redelegations']._loaded_options = None _globals['_GENESISSTATE'].fields_by_name['redelegations']._serialized_options = b'\310\336\037\000\250\347\260*\001' + _globals['_GENESISSTATE'].fields_by_name['allowed_delegation_transfer_receivers']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['allowed_delegation_transfer_receivers']._serialized_options = b'\310\336\037\000\250\347\260*\001' _globals['_LASTVALIDATORPOWER'].fields_by_name['address']._loaded_options = None _globals['_LASTVALIDATORPOWER'].fields_by_name['address']._serialized_options = b'\322\264-\024cosmos.AddressString' _globals['_LASTVALIDATORPOWER']._loaded_options = None _globals['_LASTVALIDATORPOWER']._serialized_options = b'\210\240\037\000\350\240\037\000' _globals['_GENESISSTATE']._serialized_start=171 - _globals['_GENESISSTATE']._serialized_end=834 - _globals['_LASTVALIDATORPOWER']._serialized_start=836 - _globals['_LASTVALIDATORPOWER']._serialized_end=940 + _globals['_GENESISSTATE']._serialized_end=928 + _globals['_LASTVALIDATORPOWER']._serialized_start=930 + _globals['_LASTVALIDATORPOWER']._serialized_end=1034 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/staking/v1beta1/query_pb2.py b/pyinjective/proto/cosmos/staking/v1beta1/query_pb2.py index 971db76b..7d3d6fcd 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/query_pb2.py +++ b/pyinjective/proto/cosmos/staking/v1beta1/query_pb2.py @@ -21,7 +21,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cosmos/staking/v1beta1/query.proto\x12\x16\x63osmos.staking.v1beta1\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1b\x63osmos/query/v1/query.proto\x1a\x11\x61mino/amino.proto\"x\n\x16QueryValidatorsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb0\x01\n\x17QueryValidatorsResponse\x12L\n\nvalidators\x18\x01 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"a\n\x15QueryValidatorRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\"d\n\x16QueryValidatorResponse\x12J\n\tvalidator\x18\x01 \x01(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tvalidator\"\xb4\x01\n QueryValidatorDelegationsRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xed\x01\n!QueryValidatorDelegationsResponse\x12\x7f\n\x14\x64\x65legation_responses\x18\x01 \x03(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseB \xc8\xde\x1f\x00\xaa\xdf\x1f\x13\x44\x65legationResponses\xa8\xe7\xb0*\x01R\x13\x64\x65legationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbd\x01\n)QueryValidatorUnbondingDelegationsRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xde\x01\n*QueryValidatorUnbondingDelegationsResponse\x12g\n\x13unbonding_responses\x18\x01 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x12unbondingResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xad\x01\n\x16QueryDelegationRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"v\n\x17QueryDelegationResponse\x12[\n\x13\x64\x65legation_response\x18\x01 \x01(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseR\x12\x64\x65legationResponse\"\xb6\x01\n\x1fQueryUnbondingDelegationRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"r\n QueryUnbondingDelegationResponse\x12N\n\x06unbond\x18\x01 \x01(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06unbond\"\xb5\x01\n QueryDelegatorDelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd6\x01\n!QueryDelegatorDelegationsResponse\x12h\n\x14\x64\x65legation_responses\x18\x01 \x03(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x13\x64\x65legationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbe\x01\n)QueryDelegatorUnbondingDelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xde\x01\n*QueryDelegatorUnbondingDelegationsResponse\x12g\n\x13unbonding_responses\x18\x01 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x12unbondingResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbe\x02\n\x19QueryRedelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\x12src_validator_addr\x18\x02 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10srcValidatorAddr\x12\x46\n\x12\x64st_validator_addr\x18\x03 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64stValidatorAddr\x12\x46\n\npagination\x18\x04 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd5\x01\n\x1aQueryRedelegationsResponse\x12n\n\x16redelegation_responses\x18\x01 \x03(\x0b\x32,.cosmos.staking.v1beta1.RedelegationResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x15redelegationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xb4\x01\n\x1fQueryDelegatorValidatorsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb9\x01\n QueryDelegatorValidatorsResponse\x12L\n\nvalidators\x18\x01 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xb5\x01\n\x1eQueryDelegatorValidatorRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"m\n\x1fQueryDelegatorValidatorResponse\x12J\n\tvalidator\x18\x01 \x01(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tvalidator\"4\n\x1aQueryHistoricalInfoRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"Y\n\x1bQueryHistoricalInfoResponse\x12:\n\x04hist\x18\x01 \x01(\x0b\x32&.cosmos.staking.v1beta1.HistoricalInfoR\x04hist\"\x12\n\x10QueryPoolRequest\"P\n\x11QueryPoolResponse\x12;\n\x04pool\x18\x01 \x01(\x0b\x32\x1c.cosmos.staking.v1beta1.PoolB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x04pool\"\x14\n\x12QueryParamsRequest\"X\n\x13QueryParamsResponse\x12\x41\n\x06params\x18\x01 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params2\xb0\x16\n\x05Query\x12\x9e\x01\n\nValidators\x12..cosmos.staking.v1beta1.QueryValidatorsRequest\x1a/.cosmos.staking.v1beta1.QueryValidatorsResponse\"/\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02$\x12\"/cosmos/staking/v1beta1/validators\x12\xac\x01\n\tValidator\x12-.cosmos.staking.v1beta1.QueryValidatorRequest\x1a..cosmos.staking.v1beta1.QueryValidatorResponse\"@\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x35\x12\x33/cosmos/staking/v1beta1/validators/{validator_addr}\x12\xd9\x01\n\x14ValidatorDelegations\x12\x38.cosmos.staking.v1beta1.QueryValidatorDelegationsRequest\x1a\x39.cosmos.staking.v1beta1.QueryValidatorDelegationsResponse\"L\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x41\x12?/cosmos/staking/v1beta1/validators/{validator_addr}/delegations\x12\xfe\x01\n\x1dValidatorUnbondingDelegations\x12\x41.cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest\x1a\x42.cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse\"V\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02K\x12I/cosmos/staking/v1beta1/validators/{validator_addr}/unbonding_delegations\x12\xcc\x01\n\nDelegation\x12..cosmos.staking.v1beta1.QueryDelegationRequest\x1a/.cosmos.staking.v1beta1.QueryDelegationResponse\"]\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02R\x12P/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}\x12\xfc\x01\n\x13UnbondingDelegation\x12\x37.cosmos.staking.v1beta1.QueryUnbondingDelegationRequest\x1a\x38.cosmos.staking.v1beta1.QueryUnbondingDelegationResponse\"r\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02g\x12\x65/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}/unbonding_delegation\x12\xce\x01\n\x14\x44\x65legatorDelegations\x12\x38.cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest\x1a\x39.cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse\"A\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/cosmos/staking/v1beta1/delegations/{delegator_addr}\x12\xfe\x01\n\x1d\x44\x65legatorUnbondingDelegations\x12\x41.cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest\x1a\x42.cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse\"V\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02K\x12I/cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations\x12\xc6\x01\n\rRedelegations\x12\x31.cosmos.staking.v1beta1.QueryRedelegationsRequest\x1a\x32.cosmos.staking.v1beta1.QueryRedelegationsResponse\"N\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x43\x12\x41/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations\x12\xd5\x01\n\x13\x44\x65legatorValidators\x12\x37.cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest\x1a\x38.cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse\"K\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02@\x12>/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators\x12\xe3\x01\n\x12\x44\x65legatorValidator\x12\x36.cosmos.staking.v1beta1.QueryDelegatorValidatorRequest\x1a\x37.cosmos.staking.v1beta1.QueryDelegatorValidatorResponse\"\\\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02Q\x12O/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}\x12\xb8\x01\n\x0eHistoricalInfo\x12\x32.cosmos.staking.v1beta1.QueryHistoricalInfoRequest\x1a\x33.cosmos.staking.v1beta1.QueryHistoricalInfoResponse\"=\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x32\x12\x30/cosmos/staking/v1beta1/historical_info/{height}\x12\x86\x01\n\x04Pool\x12(.cosmos.staking.v1beta1.QueryPoolRequest\x1a).cosmos.staking.v1beta1.QueryPoolResponse\")\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x1e\x12\x1c/cosmos/staking/v1beta1/pool\x12\x8e\x01\n\x06Params\x12*.cosmos.staking.v1beta1.QueryParamsRequest\x1a+.cosmos.staking.v1beta1.QueryParamsResponse\"+\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02 \x12\x1e/cosmos/staking/v1beta1/paramsB\xd0\x01\n\x1a\x63om.cosmos.staking.v1beta1B\nQueryProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"cosmos/staking/v1beta1/query.proto\x12\x16\x63osmos.staking.v1beta1\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1b\x63osmos/query/v1/query.proto\x1a\x11\x61mino/amino.proto\"x\n\x16QueryValidatorsRequest\x12\x16\n\x06status\x18\x01 \x01(\tR\x06status\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xb0\x01\n\x17QueryValidatorsResponse\x12L\n\nvalidators\x18\x01 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"a\n\x15QueryValidatorRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\"d\n\x16QueryValidatorResponse\x12J\n\tvalidator\x18\x01 \x01(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tvalidator\"\xb4\x01\n QueryValidatorDelegationsRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xed\x01\n!QueryValidatorDelegationsResponse\x12\x7f\n\x14\x64\x65legation_responses\x18\x01 \x03(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseB \xc8\xde\x1f\x00\xaa\xdf\x1f\x13\x44\x65legationResponses\xa8\xe7\xb0*\x01R\x13\x64\x65legationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbd\x01\n)QueryValidatorUnbondingDelegationsRequest\x12H\n\x0evalidator_addr\x18\x01 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xde\x01\n*QueryValidatorUnbondingDelegationsResponse\x12g\n\x13unbonding_responses\x18\x01 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x12unbondingResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xad\x01\n\x16QueryDelegationRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"v\n\x17QueryDelegationResponse\x12[\n\x13\x64\x65legation_response\x18\x01 \x01(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseR\x12\x64\x65legationResponse\"\xb6\x01\n\x1fQueryUnbondingDelegationRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"r\n QueryUnbondingDelegationResponse\x12N\n\x06unbond\x18\x01 \x01(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06unbond\"\xb5\x01\n QueryDelegatorDelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd6\x01\n!QueryDelegatorDelegationsResponse\x12h\n\x14\x64\x65legation_responses\x18\x01 \x03(\x0b\x32*.cosmos.staking.v1beta1.DelegationResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x13\x64\x65legationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xbe\x01\n)QueryDelegatorUnbondingDelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xde\x01\n*QueryDelegatorUnbondingDelegationsResponse\x12g\n\x13unbonding_responses\x18\x01 \x03(\x0b\x32+.cosmos.staking.v1beta1.UnbondingDelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x12unbondingResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xd0\x02\n\x19QueryRedelegationsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12O\n\x12src_validator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10srcValidatorAddr\x12O\n\x12\x64st_validator_addr\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10\x64stValidatorAddr\x12\x46\n\npagination\x18\x04 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xd5\x01\n\x1aQueryRedelegationsResponse\x12n\n\x16redelegation_responses\x18\x01 \x03(\x0b\x32,.cosmos.staking.v1beta1.RedelegationResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x15redelegationResponses\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xb4\x01\n\x1fQueryDelegatorValidatorsRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xb9\x01\n QueryDelegatorValidatorsResponse\x12L\n\nvalidators\x18\x01 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\nvalidators\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\xb5\x01\n\x1eQueryDelegatorValidatorRequest\x12?\n\x0e\x64\x65legator_addr\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\rdelegatorAddr\x12H\n\x0evalidator_addr\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\rvalidatorAddr:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"m\n\x1fQueryDelegatorValidatorResponse\x12J\n\tvalidator\x18\x01 \x01(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\tvalidator\"0\n.QueryAllowedDelegationTransferReceiversRequest\"i\n/QueryAllowedDelegationTransferReceiversResponse\x12\x36\n\taddresses\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\taddresses\"4\n\x1aQueryHistoricalInfoRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\"Y\n\x1bQueryHistoricalInfoResponse\x12:\n\x04hist\x18\x01 \x01(\x0b\x32&.cosmos.staking.v1beta1.HistoricalInfoR\x04hist\"\x12\n\x10QueryPoolRequest\"P\n\x11QueryPoolResponse\x12;\n\x04pool\x18\x01 \x01(\x0b\x32\x1c.cosmos.staking.v1beta1.PoolB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x04pool\"\x14\n\x12QueryParamsRequest\"X\n\x13QueryParamsResponse\x12\x41\n\x06params\x18\x01 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params2\xb4\x18\n\x05Query\x12\x9e\x01\n\nValidators\x12..cosmos.staking.v1beta1.QueryValidatorsRequest\x1a/.cosmos.staking.v1beta1.QueryValidatorsResponse\"/\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02$\x12\"/cosmos/staking/v1beta1/validators\x12\xac\x01\n\tValidator\x12-.cosmos.staking.v1beta1.QueryValidatorRequest\x1a..cosmos.staking.v1beta1.QueryValidatorResponse\"@\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x35\x12\x33/cosmos/staking/v1beta1/validators/{validator_addr}\x12\xd9\x01\n\x14ValidatorDelegations\x12\x38.cosmos.staking.v1beta1.QueryValidatorDelegationsRequest\x1a\x39.cosmos.staking.v1beta1.QueryValidatorDelegationsResponse\"L\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x41\x12?/cosmos/staking/v1beta1/validators/{validator_addr}/delegations\x12\xfe\x01\n\x1dValidatorUnbondingDelegations\x12\x41.cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest\x1a\x42.cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse\"V\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02K\x12I/cosmos/staking/v1beta1/validators/{validator_addr}/unbonding_delegations\x12\xcc\x01\n\nDelegation\x12..cosmos.staking.v1beta1.QueryDelegationRequest\x1a/.cosmos.staking.v1beta1.QueryDelegationResponse\"]\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02R\x12P/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}\x12\xfc\x01\n\x13UnbondingDelegation\x12\x37.cosmos.staking.v1beta1.QueryUnbondingDelegationRequest\x1a\x38.cosmos.staking.v1beta1.QueryUnbondingDelegationResponse\"r\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02g\x12\x65/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/{delegator_addr}/unbonding_delegation\x12\xce\x01\n\x14\x44\x65legatorDelegations\x12\x38.cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest\x1a\x39.cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse\"A\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/cosmos/staking/v1beta1/delegations/{delegator_addr}\x12\xfe\x01\n\x1d\x44\x65legatorUnbondingDelegations\x12\x41.cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest\x1a\x42.cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse\"V\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02K\x12I/cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations\x12\xc6\x01\n\rRedelegations\x12\x31.cosmos.staking.v1beta1.QueryRedelegationsRequest\x1a\x32.cosmos.staking.v1beta1.QueryRedelegationsResponse\"N\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x43\x12\x41/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations\x12\xd5\x01\n\x13\x44\x65legatorValidators\x12\x37.cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest\x1a\x38.cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse\"K\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02@\x12>/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators\x12\xe3\x01\n\x12\x44\x65legatorValidator\x12\x36.cosmos.staking.v1beta1.QueryDelegatorValidatorRequest\x1a\x37.cosmos.staking.v1beta1.QueryDelegatorValidatorResponse\"\\\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02Q\x12O/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}\x12\x81\x02\n\"AllowedDelegationTransferReceivers\x12\x46.cosmos.staking.v1beta1.QueryAllowedDelegationTransferReceiversRequest\x1aG.cosmos.staking.v1beta1.QueryAllowedDelegationTransferReceiversResponse\"J\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02?\x12=/cosmos/staking/v1beta1/allowed_delegation_transfer_receivers\x12\xb8\x01\n\x0eHistoricalInfo\x12\x32.cosmos.staking.v1beta1.QueryHistoricalInfoRequest\x1a\x33.cosmos.staking.v1beta1.QueryHistoricalInfoResponse\"=\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x32\x12\x30/cosmos/staking/v1beta1/historical_info/{height}\x12\x86\x01\n\x04Pool\x12(.cosmos.staking.v1beta1.QueryPoolRequest\x1a).cosmos.staking.v1beta1.QueryPoolResponse\")\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02\x1e\x12\x1c/cosmos/staking/v1beta1/pool\x12\x8e\x01\n\x06Params\x12*.cosmos.staking.v1beta1.QueryParamsRequest\x1a+.cosmos.staking.v1beta1.QueryParamsResponse\"+\x88\xe7\xb0*\x01\x82\xd3\xe4\x93\x02 \x12\x1e/cosmos/staking/v1beta1/paramsB\xd0\x01\n\x1a\x63om.cosmos.staking.v1beta1B\nQueryProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -72,9 +72,9 @@ _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['delegator_addr']._loaded_options = None _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['delegator_addr']._serialized_options = b'\322\264-\024cosmos.AddressString' _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['src_validator_addr']._loaded_options = None - _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['src_validator_addr']._serialized_options = b'\322\264-\024cosmos.AddressString' + _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['src_validator_addr']._serialized_options = b'\322\264-\035cosmos.ValidatorAddressString' _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['dst_validator_addr']._loaded_options = None - _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['dst_validator_addr']._serialized_options = b'\322\264-\024cosmos.AddressString' + _globals['_QUERYREDELEGATIONSREQUEST'].fields_by_name['dst_validator_addr']._serialized_options = b'\322\264-\035cosmos.ValidatorAddressString' _globals['_QUERYREDELEGATIONSREQUEST']._loaded_options = None _globals['_QUERYREDELEGATIONSREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' _globals['_QUERYREDELEGATIONSRESPONSE'].fields_by_name['redelegation_responses']._loaded_options = None @@ -93,6 +93,8 @@ _globals['_QUERYDELEGATORVALIDATORREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' _globals['_QUERYDELEGATORVALIDATORRESPONSE'].fields_by_name['validator']._loaded_options = None _globals['_QUERYDELEGATORVALIDATORRESPONSE'].fields_by_name['validator']._serialized_options = b'\310\336\037\000\250\347\260*\001' + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSRESPONSE'].fields_by_name['addresses']._loaded_options = None + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSRESPONSE'].fields_by_name['addresses']._serialized_options = b'\322\264-\024cosmos.AddressString' _globals['_QUERYPOOLRESPONSE'].fields_by_name['pool']._loaded_options = None _globals['_QUERYPOOLRESPONSE'].fields_by_name['pool']._serialized_options = b'\310\336\037\000\250\347\260*\001' _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None @@ -119,6 +121,8 @@ _globals['_QUERY'].methods_by_name['DelegatorValidators']._serialized_options = b'\210\347\260*\001\202\323\344\223\002@\022>/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators' _globals['_QUERY'].methods_by_name['DelegatorValidator']._loaded_options = None _globals['_QUERY'].methods_by_name['DelegatorValidator']._serialized_options = b'\210\347\260*\001\202\323\344\223\002Q\022O/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/{validator_addr}' + _globals['_QUERY'].methods_by_name['AllowedDelegationTransferReceivers']._loaded_options = None + _globals['_QUERY'].methods_by_name['AllowedDelegationTransferReceivers']._serialized_options = b'\210\347\260*\001\202\323\344\223\002?\022=/cosmos/staking/v1beta1/allowed_delegation_transfer_receivers' _globals['_QUERY'].methods_by_name['HistoricalInfo']._loaded_options = None _globals['_QUERY'].methods_by_name['HistoricalInfo']._serialized_options = b'\210\347\260*\001\202\323\344\223\0022\0220/cosmos/staking/v1beta1/historical_info/{height}' _globals['_QUERY'].methods_by_name['Pool']._loaded_options = None @@ -158,29 +162,33 @@ _globals['_QUERYDELEGATORUNBONDINGDELEGATIONSRESPONSE']._serialized_start=2805 _globals['_QUERYDELEGATORUNBONDINGDELEGATIONSRESPONSE']._serialized_end=3027 _globals['_QUERYREDELEGATIONSREQUEST']._serialized_start=3030 - _globals['_QUERYREDELEGATIONSREQUEST']._serialized_end=3348 - _globals['_QUERYREDELEGATIONSRESPONSE']._serialized_start=3351 - _globals['_QUERYREDELEGATIONSRESPONSE']._serialized_end=3564 - _globals['_QUERYDELEGATORVALIDATORSREQUEST']._serialized_start=3567 - _globals['_QUERYDELEGATORVALIDATORSREQUEST']._serialized_end=3747 - _globals['_QUERYDELEGATORVALIDATORSRESPONSE']._serialized_start=3750 - _globals['_QUERYDELEGATORVALIDATORSRESPONSE']._serialized_end=3935 - _globals['_QUERYDELEGATORVALIDATORREQUEST']._serialized_start=3938 - _globals['_QUERYDELEGATORVALIDATORREQUEST']._serialized_end=4119 - _globals['_QUERYDELEGATORVALIDATORRESPONSE']._serialized_start=4121 - _globals['_QUERYDELEGATORVALIDATORRESPONSE']._serialized_end=4230 - _globals['_QUERYHISTORICALINFOREQUEST']._serialized_start=4232 - _globals['_QUERYHISTORICALINFOREQUEST']._serialized_end=4284 - _globals['_QUERYHISTORICALINFORESPONSE']._serialized_start=4286 - _globals['_QUERYHISTORICALINFORESPONSE']._serialized_end=4375 - _globals['_QUERYPOOLREQUEST']._serialized_start=4377 - _globals['_QUERYPOOLREQUEST']._serialized_end=4395 - _globals['_QUERYPOOLRESPONSE']._serialized_start=4397 - _globals['_QUERYPOOLRESPONSE']._serialized_end=4477 - _globals['_QUERYPARAMSREQUEST']._serialized_start=4479 - _globals['_QUERYPARAMSREQUEST']._serialized_end=4499 - _globals['_QUERYPARAMSRESPONSE']._serialized_start=4501 - _globals['_QUERYPARAMSRESPONSE']._serialized_end=4589 - _globals['_QUERY']._serialized_start=4592 - _globals['_QUERY']._serialized_end=7456 + _globals['_QUERYREDELEGATIONSREQUEST']._serialized_end=3366 + _globals['_QUERYREDELEGATIONSRESPONSE']._serialized_start=3369 + _globals['_QUERYREDELEGATIONSRESPONSE']._serialized_end=3582 + _globals['_QUERYDELEGATORVALIDATORSREQUEST']._serialized_start=3585 + _globals['_QUERYDELEGATORVALIDATORSREQUEST']._serialized_end=3765 + _globals['_QUERYDELEGATORVALIDATORSRESPONSE']._serialized_start=3768 + _globals['_QUERYDELEGATORVALIDATORSRESPONSE']._serialized_end=3953 + _globals['_QUERYDELEGATORVALIDATORREQUEST']._serialized_start=3956 + _globals['_QUERYDELEGATORVALIDATORREQUEST']._serialized_end=4137 + _globals['_QUERYDELEGATORVALIDATORRESPONSE']._serialized_start=4139 + _globals['_QUERYDELEGATORVALIDATORRESPONSE']._serialized_end=4248 + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSREQUEST']._serialized_start=4250 + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSREQUEST']._serialized_end=4298 + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSRESPONSE']._serialized_start=4300 + _globals['_QUERYALLOWEDDELEGATIONTRANSFERRECEIVERSRESPONSE']._serialized_end=4405 + _globals['_QUERYHISTORICALINFOREQUEST']._serialized_start=4407 + _globals['_QUERYHISTORICALINFOREQUEST']._serialized_end=4459 + _globals['_QUERYHISTORICALINFORESPONSE']._serialized_start=4461 + _globals['_QUERYHISTORICALINFORESPONSE']._serialized_end=4550 + _globals['_QUERYPOOLREQUEST']._serialized_start=4552 + _globals['_QUERYPOOLREQUEST']._serialized_end=4570 + _globals['_QUERYPOOLRESPONSE']._serialized_start=4572 + _globals['_QUERYPOOLRESPONSE']._serialized_end=4652 + _globals['_QUERYPARAMSREQUEST']._serialized_start=4654 + _globals['_QUERYPARAMSREQUEST']._serialized_end=4674 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=4676 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=4764 + _globals['_QUERY']._serialized_start=4767 + _globals['_QUERY']._serialized_end=7891 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/staking/v1beta1/query_pb2_grpc.py b/pyinjective/proto/cosmos/staking/v1beta1/query_pb2_grpc.py index 9ed468d7..2786f99e 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/query_pb2_grpc.py +++ b/pyinjective/proto/cosmos/staking/v1beta1/query_pb2_grpc.py @@ -70,6 +70,11 @@ def __init__(self, channel): request_serializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryDelegatorValidatorRequest.SerializeToString, response_deserializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryDelegatorValidatorResponse.FromString, _registered_method=True) + self.AllowedDelegationTransferReceivers = channel.unary_unary( + '/cosmos.staking.v1beta1.Query/AllowedDelegationTransferReceivers', + request_serializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversRequest.SerializeToString, + response_deserializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversResponse.FromString, + _registered_method=True) self.HistoricalInfo = channel.unary_unary( '/cosmos.staking.v1beta1.Query/HistoricalInfo', request_serializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryHistoricalInfoRequest.SerializeToString, @@ -193,6 +198,13 @@ def DelegatorValidator(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def AllowedDelegationTransferReceivers(self, request, context): + """AllowedDelegationTransferReceivers queries the allowed delegation transfer receivers. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def HistoricalInfo(self, request, context): """HistoricalInfo queries the historical info for given height. """ @@ -272,6 +284,11 @@ def add_QueryServicer_to_server(servicer, server): request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryDelegatorValidatorRequest.FromString, response_serializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryDelegatorValidatorResponse.SerializeToString, ), + 'AllowedDelegationTransferReceivers': grpc.unary_unary_rpc_method_handler( + servicer.AllowedDelegationTransferReceivers, + request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversRequest.FromString, + response_serializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversResponse.SerializeToString, + ), 'HistoricalInfo': grpc.unary_unary_rpc_method_handler( servicer.HistoricalInfo, request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryHistoricalInfoRequest.FromString, @@ -596,6 +613,33 @@ def DelegatorValidator(request, metadata, _registered_method=True) + @staticmethod + def AllowedDelegationTransferReceivers(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, + '/cosmos.staking.v1beta1.Query/AllowedDelegationTransferReceivers', + cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversRequest.SerializeToString, + cosmos_dot_staking_dot_v1beta1_dot_query__pb2.QueryAllowedDelegationTransferReceiversResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def HistoricalInfo(request, target, diff --git a/pyinjective/proto/cosmos/staking/v1beta1/staking_pb2.py b/pyinjective/proto/cosmos/staking/v1beta1/staking_pb2.py index 0183a45a..343ef416 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/staking_pb2.py +++ b/pyinjective/proto/cosmos/staking/v1beta1/staking_pb2.py @@ -19,11 +19,11 @@ from pyinjective.proto.cosmos_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 -from pyinjective.proto.tendermint.abci import types_pb2 as tendermint_dot_abci_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cosmos/staking/v1beta1/staking.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\x1a\x1ctendermint/types/types.proto\x1a\x1btendermint/abci/types.proto\"\x93\x01\n\x0eHistoricalInfo\x12;\n\x06header\x18\x01 \x01(\x0b\x32\x18.tendermint.types.HeaderB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06header\x12\x44\n\x06valset\x18\x02 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06valset\"\x96\x02\n\x0f\x43ommissionRates\x12J\n\x04rate\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x04rate\x12Q\n\x08max_rate\x18\x02 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x07maxRate\x12^\n\x0fmax_change_rate\x18\x03 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\rmaxChangeRate:\x04\xe8\xa0\x1f\x01\"\xc1\x01\n\nCommission\x12\x61\n\x10\x63ommission_rates\x18\x01 \x01(\x0b\x32\'.cosmos.staking.v1beta1.CommissionRatesB\r\xc8\xde\x1f\x00\xd0\xde\x1f\x01\xa8\xe7\xb0*\x01R\x0f\x63ommissionRates\x12J\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\nupdateTime:\x04\xe8\xa0\x1f\x01\"\xa8\x01\n\x0b\x44\x65scription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails:\x04\xe8\xa0\x1f\x01\"\x8a\x07\n\tValidator\x12\x43\n\x10operator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0foperatorAddress\x12Y\n\x10\x63onsensus_pubkey\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyB\x18\xca\xb4-\x14\x63osmos.crypto.PubKeyR\x0f\x63onsensusPubkey\x12\x16\n\x06jailed\x18\x03 \x01(\x08R\x06jailed\x12:\n\x06status\x18\x04 \x01(\x0e\x32\".cosmos.staking.v1beta1.BondStatusR\x06status\x12\x43\n\x06tokens\x18\x05 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x06tokens\x12\\\n\x10\x64\x65legator_shares\x18\x06 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x0f\x64\x65legatorShares\x12P\n\x0b\x64\x65scription\x18\x07 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\x08 \x01(\x03R\x0funbondingHeight\x12P\n\x0eunbonding_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\runbondingTime\x12M\n\ncommission\x18\n \x01(\x0b\x32\".cosmos.staking.v1beta1.CommissionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ncommission\x12[\n\x13min_self_delegation\x18\x0b \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x11minSelfDelegation\x12<\n\x1bunbonding_on_hold_ref_count\x18\x0c \x01(\x03R\x17unbondingOnHoldRefCount\x12#\n\runbonding_ids\x18\r \x03(\x04R\x0cunbondingIds:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"F\n\x0cValAddresses\x12\x36\n\taddresses\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\taddresses\"\xa9\x01\n\x06\x44VPair\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"J\n\x07\x44VPairs\x12?\n\x05pairs\x18\x01 \x03(\x0b\x32\x1e.cosmos.staking.v1beta1.DVPairB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x05pairs\"\x8b\x02\n\nDVVTriplet\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"X\n\x0b\x44VVTriplets\x12I\n\x08triplets\x18\x01 \x03(\x0b\x32\".cosmos.staking.v1beta1.DVVTripletB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x08triplets\"\xf8\x01\n\nDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12I\n\x06shares\x18\x03 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x06shares:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8d\x02\n\x13UnbondingDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12U\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x30.cosmos.staking.v1beta1.UnbondingDelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9b\x03\n\x18UnbondingDelegationEntry\x12\'\n\x0f\x63reation_height\x18\x01 \x01(\x03R\x0e\x63reationHeight\x12R\n\x0f\x63ompletion_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12T\n\x0finitial_balance\x18\x03 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x0einitialBalance\x12\x45\n\x07\x62\x61lance\x18\x04 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x07\x62\x61lance\x12!\n\x0cunbonding_id\x18\x05 \x01(\x04R\x0bunbondingId\x12<\n\x1bunbonding_on_hold_ref_count\x18\x06 \x01(\x03R\x17unbondingOnHoldRefCount:\x04\xe8\xa0\x1f\x01\"\x9f\x03\n\x11RedelegationEntry\x12\'\n\x0f\x63reation_height\x18\x01 \x01(\x03R\x0e\x63reationHeight\x12R\n\x0f\x63ompletion_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12T\n\x0finitial_balance\x18\x03 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x0einitialBalance\x12P\n\nshares_dst\x18\x04 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\tsharesDst\x12!\n\x0cunbonding_id\x18\x05 \x01(\x04R\x0bunbondingId\x12<\n\x1bunbonding_on_hold_ref_count\x18\x06 \x01(\x03R\x17unbondingOnHoldRefCount:\x04\xe8\xa0\x1f\x01\"\xdd\x02\n\x0cRedelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress\x12N\n\x07\x65ntries\x18\x04 \x03(\x0b\x32).cosmos.staking.v1beta1.RedelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9c\x03\n\x06Params\x12O\n\x0eunbonding_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\r\xc8\xde\x1f\x00\x98\xdf\x1f\x01\xa8\xe7\xb0*\x01R\runbondingTime\x12%\n\x0emax_validators\x18\x02 \x01(\rR\rmaxValidators\x12\x1f\n\x0bmax_entries\x18\x03 \x01(\rR\nmaxEntries\x12-\n\x12historical_entries\x18\x04 \x01(\rR\x11historicalEntries\x12\x1d\n\nbond_denom\x18\x05 \x01(\tR\tbondDenom\x12\x84\x01\n\x13min_commission_rate\x18\x06 \x01(\tBT\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1ayaml:\"min_commission_rate\"\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x11minCommissionRate:$\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x1b\x63osmos-sdk/x/staking/Params\"\xa9\x01\n\x12\x44\x65legationResponse\x12M\n\ndelegation\x18\x01 \x01(\x0b\x32\".cosmos.staking.v1beta1.DelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ndelegation\x12>\n\x07\x62\x61lance\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x62\x61lance:\x04\xe8\xa0\x1f\x00\"\xcd\x01\n\x19RedelegationEntryResponse\x12\x63\n\x12redelegation_entry\x18\x01 \x01(\x0b\x32).cosmos.staking.v1beta1.RedelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x11redelegationEntry\x12\x45\n\x07\x62\x61lance\x18\x04 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x07\x62\x61lance:\x04\xe8\xa0\x1f\x01\"\xc9\x01\n\x14RedelegationResponse\x12S\n\x0credelegation\x18\x01 \x01(\x0b\x32$.cosmos.staking.v1beta1.RedelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0credelegation\x12V\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x31.cosmos.staking.v1beta1.RedelegationEntryResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x04\xe8\xa0\x1f\x00\"\xeb\x01\n\x04Pool\x12q\n\x11not_bonded_tokens\x18\x01 \x01(\tBE\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xea\xde\x1f\x11not_bonded_tokens\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0fnotBondedTokens\x12\x66\n\rbonded_tokens\x18\x02 \x01(\tBA\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xea\xde\x1f\rbonded_tokens\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0c\x62ondedTokens:\x08\xe8\xa0\x1f\x01\xf0\xa0\x1f\x01\"Y\n\x10ValidatorUpdates\x12\x45\n\x07updates\x18\x01 \x03(\x0b\x32 .tendermint.abci.ValidatorUpdateB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07updates*\xb6\x01\n\nBondStatus\x12,\n\x17\x42OND_STATUS_UNSPECIFIED\x10\x00\x1a\x0f\x8a\x9d \x0bUnspecified\x12&\n\x14\x42OND_STATUS_UNBONDED\x10\x01\x1a\x0c\x8a\x9d \x08Unbonded\x12(\n\x15\x42OND_STATUS_UNBONDING\x10\x02\x1a\r\x8a\x9d \tUnbonding\x12\"\n\x12\x42OND_STATUS_BONDED\x10\x03\x1a\n\x8a\x9d \x06\x42onded\x1a\x04\x88\xa3\x1e\x00*]\n\nInfraction\x12\x1a\n\x16INFRACTION_UNSPECIFIED\x10\x00\x12\x1a\n\x16INFRACTION_DOUBLE_SIGN\x10\x01\x12\x17\n\x13INFRACTION_DOWNTIME\x10\x02\x42\xd2\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x0cStakingProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cosmos/staking/v1beta1/staking.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x1c\x63ometbft/abci/v1/types.proto\"\x94\x01\n\x0eHistoricalInfo\x12<\n\x06header\x18\x01 \x01(\x0b\x32\x19.cometbft.types.v1.HeaderB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06header\x12\x44\n\x06valset\x18\x02 \x03(\x0b\x32!.cosmos.staking.v1beta1.ValidatorB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06valset\"\x96\x02\n\x0f\x43ommissionRates\x12J\n\x04rate\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x04rate\x12Q\n\x08max_rate\x18\x02 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x07maxRate\x12^\n\x0fmax_change_rate\x18\x03 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\rmaxChangeRate:\x04\xe8\xa0\x1f\x01\"\xc1\x01\n\nCommission\x12\x61\n\x10\x63ommission_rates\x18\x01 \x01(\x0b\x32\'.cosmos.staking.v1beta1.CommissionRatesB\r\xc8\xde\x1f\x00\xd0\xde\x1f\x01\xa8\xe7\xb0*\x01R\x0f\x63ommissionRates\x12J\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\nupdateTime:\x04\xe8\xa0\x1f\x01\"\xa8\x01\n\x0b\x44\x65scription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails:\x04\xe8\xa0\x1f\x01\"\x8a\x07\n\tValidator\x12\x43\n\x10operator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0foperatorAddress\x12Y\n\x10\x63onsensus_pubkey\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyB\x18\xca\xb4-\x14\x63osmos.crypto.PubKeyR\x0f\x63onsensusPubkey\x12\x16\n\x06jailed\x18\x03 \x01(\x08R\x06jailed\x12:\n\x06status\x18\x04 \x01(\x0e\x32\".cosmos.staking.v1beta1.BondStatusR\x06status\x12\x43\n\x06tokens\x18\x05 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x06tokens\x12\\\n\x10\x64\x65legator_shares\x18\x06 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x0f\x64\x65legatorShares\x12P\n\x0b\x64\x65scription\x18\x07 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\x08 \x01(\x03R\x0funbondingHeight\x12P\n\x0eunbonding_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\runbondingTime\x12M\n\ncommission\x18\n \x01(\x0b\x32\".cosmos.staking.v1beta1.CommissionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ncommission\x12[\n\x13min_self_delegation\x18\x0b \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x11minSelfDelegation\x12<\n\x1bunbonding_on_hold_ref_count\x18\x0c \x01(\x03R\x17unbondingOnHoldRefCount\x12#\n\runbonding_ids\x18\r \x03(\x04R\x0cunbondingIds:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"F\n\x0cValAddresses\x12\x36\n\taddresses\x18\x01 \x03(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\taddresses\"\xa9\x01\n\x06\x44VPair\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"J\n\x07\x44VPairs\x12?\n\x05pairs\x18\x01 \x03(\x0b\x32\x1e.cosmos.staking.v1beta1.DVPairB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x05pairs\"\x8b\x02\n\nDVVTriplet\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"X\n\x0b\x44VVTriplets\x12I\n\x08triplets\x18\x01 \x03(\x0b\x32\".cosmos.staking.v1beta1.DVVTripletB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x08triplets\"\xf8\x01\n\nDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12I\n\x06shares\x18\x03 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x06shares:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8d\x02\n\x13UnbondingDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12U\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x30.cosmos.staking.v1beta1.UnbondingDelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9b\x03\n\x18UnbondingDelegationEntry\x12\'\n\x0f\x63reation_height\x18\x01 \x01(\x03R\x0e\x63reationHeight\x12R\n\x0f\x63ompletion_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12T\n\x0finitial_balance\x18\x03 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x0einitialBalance\x12\x45\n\x07\x62\x61lance\x18\x04 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x07\x62\x61lance\x12!\n\x0cunbonding_id\x18\x05 \x01(\x04R\x0bunbondingId\x12<\n\x1bunbonding_on_hold_ref_count\x18\x06 \x01(\x03R\x17unbondingOnHoldRefCount:\x04\xe8\xa0\x1f\x01\"\x9f\x03\n\x11RedelegationEntry\x12\'\n\x0f\x63reation_height\x18\x01 \x01(\x03R\x0e\x63reationHeight\x12R\n\x0f\x63ompletion_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12T\n\x0finitial_balance\x18\x03 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x0einitialBalance\x12P\n\nshares_dst\x18\x04 \x01(\tB1\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\tsharesDst\x12!\n\x0cunbonding_id\x18\x05 \x01(\x04R\x0bunbondingId\x12<\n\x1bunbonding_on_hold_ref_count\x18\x06 \x01(\x03R\x17unbondingOnHoldRefCount:\x04\xe8\xa0\x1f\x01\"\xdd\x02\n\x0cRedelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress\x12N\n\x07\x65ntries\x18\x04 \x03(\x0b\x32).cosmos.staking.v1beta1.RedelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x9c\x03\n\x06Params\x12O\n\x0eunbonding_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationB\r\xc8\xde\x1f\x00\x98\xdf\x1f\x01\xa8\xe7\xb0*\x01R\runbondingTime\x12%\n\x0emax_validators\x18\x02 \x01(\rR\rmaxValidators\x12\x1f\n\x0bmax_entries\x18\x03 \x01(\rR\nmaxEntries\x12-\n\x12historical_entries\x18\x04 \x01(\rR\x11historicalEntries\x12\x1d\n\nbond_denom\x18\x05 \x01(\tR\tbondDenom\x12\x84\x01\n\x13min_commission_rate\x18\x06 \x01(\tBT\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1ayaml:\"min_commission_rate\"\xd2\xb4-\ncosmos.Dec\xa8\xe7\xb0*\x01R\x11minCommissionRate:$\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x1b\x63osmos-sdk/x/staking/Params\"\xa9\x01\n\x12\x44\x65legationResponse\x12M\n\ndelegation\x18\x01 \x01(\x0b\x32\".cosmos.staking.v1beta1.DelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ndelegation\x12>\n\x07\x62\x61lance\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x62\x61lance:\x04\xe8\xa0\x1f\x00\"\xcd\x01\n\x19RedelegationEntryResponse\x12\x63\n\x12redelegation_entry\x18\x01 \x01(\x0b\x32).cosmos.staking.v1beta1.RedelegationEntryB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x11redelegationEntry\x12\x45\n\x07\x62\x61lance\x18\x04 \x01(\tB+\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x07\x62\x61lance:\x04\xe8\xa0\x1f\x01\"\xc9\x01\n\x14RedelegationResponse\x12S\n\x0credelegation\x18\x01 \x01(\x0b\x32$.cosmos.staking.v1beta1.RedelegationB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0credelegation\x12V\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x31.cosmos.staking.v1beta1.RedelegationEntryResponseB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07\x65ntries:\x04\xe8\xa0\x1f\x00\"\xeb\x01\n\x04Pool\x12q\n\x11not_bonded_tokens\x18\x01 \x01(\tBE\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xea\xde\x1f\x11not_bonded_tokens\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0fnotBondedTokens\x12\x66\n\rbonded_tokens\x18\x02 \x01(\tBA\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xea\xde\x1f\rbonded_tokens\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x0c\x62ondedTokens:\x08\xe8\xa0\x1f\x01\xf0\xa0\x1f\x01\"Z\n\x10ValidatorUpdates\x12\x46\n\x07updates\x18\x01 \x03(\x0b\x32!.cometbft.abci.v1.ValidatorUpdateB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x07updates*\xb6\x01\n\nBondStatus\x12,\n\x17\x42OND_STATUS_UNSPECIFIED\x10\x00\x1a\x0f\x8a\x9d \x0bUnspecified\x12&\n\x14\x42OND_STATUS_UNBONDED\x10\x01\x1a\x0c\x8a\x9d \x08Unbonded\x12(\n\x15\x42OND_STATUS_UNBONDING\x10\x02\x1a\r\x8a\x9d \tUnbonding\x12\"\n\x12\x42OND_STATUS_BONDED\x10\x03\x1a\n\x8a\x9d \x06\x42onded\x1a\x04\x88\xa3\x1e\x00*]\n\nInfraction\x12\x1a\n\x16INFRACTION_UNSPECIFIED\x10\x00\x12\x1a\n\x16INFRACTION_DOUBLE_SIGN\x10\x01\x12\x17\n\x13INFRACTION_DOWNTIME\x10\x02\x42\xd2\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x0cStakingProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -173,50 +173,50 @@ _globals['_POOL']._serialized_options = b'\350\240\037\001\360\240\037\001' _globals['_VALIDATORUPDATES'].fields_by_name['updates']._loaded_options = None _globals['_VALIDATORUPDATES'].fields_by_name['updates']._serialized_options = b'\310\336\037\000\250\347\260*\001' - _globals['_BONDSTATUS']._serialized_start=5738 - _globals['_BONDSTATUS']._serialized_end=5920 - _globals['_INFRACTION']._serialized_start=5922 - _globals['_INFRACTION']._serialized_end=6015 - _globals['_HISTORICALINFO']._serialized_start=316 - _globals['_HISTORICALINFO']._serialized_end=463 - _globals['_COMMISSIONRATES']._serialized_start=466 - _globals['_COMMISSIONRATES']._serialized_end=744 - _globals['_COMMISSION']._serialized_start=747 - _globals['_COMMISSION']._serialized_end=940 - _globals['_DESCRIPTION']._serialized_start=943 - _globals['_DESCRIPTION']._serialized_end=1111 - _globals['_VALIDATOR']._serialized_start=1114 - _globals['_VALIDATOR']._serialized_end=2020 - _globals['_VALADDRESSES']._serialized_start=2022 - _globals['_VALADDRESSES']._serialized_end=2092 - _globals['_DVPAIR']._serialized_start=2095 - _globals['_DVPAIR']._serialized_end=2264 - _globals['_DVPAIRS']._serialized_start=2266 - _globals['_DVPAIRS']._serialized_end=2340 - _globals['_DVVTRIPLET']._serialized_start=2343 - _globals['_DVVTRIPLET']._serialized_end=2610 - _globals['_DVVTRIPLETS']._serialized_start=2612 - _globals['_DVVTRIPLETS']._serialized_end=2700 - _globals['_DELEGATION']._serialized_start=2703 - _globals['_DELEGATION']._serialized_end=2951 - _globals['_UNBONDINGDELEGATION']._serialized_start=2954 - _globals['_UNBONDINGDELEGATION']._serialized_end=3223 - _globals['_UNBONDINGDELEGATIONENTRY']._serialized_start=3226 - _globals['_UNBONDINGDELEGATIONENTRY']._serialized_end=3637 - _globals['_REDELEGATIONENTRY']._serialized_start=3640 - _globals['_REDELEGATIONENTRY']._serialized_end=4055 - _globals['_REDELEGATION']._serialized_start=4058 - _globals['_REDELEGATION']._serialized_end=4407 - _globals['_PARAMS']._serialized_start=4410 - _globals['_PARAMS']._serialized_end=4822 - _globals['_DELEGATIONRESPONSE']._serialized_start=4825 - _globals['_DELEGATIONRESPONSE']._serialized_end=4994 - _globals['_REDELEGATIONENTRYRESPONSE']._serialized_start=4997 - _globals['_REDELEGATIONENTRYRESPONSE']._serialized_end=5202 - _globals['_REDELEGATIONRESPONSE']._serialized_start=5205 - _globals['_REDELEGATIONRESPONSE']._serialized_end=5406 - _globals['_POOL']._serialized_start=5409 - _globals['_POOL']._serialized_end=5644 - _globals['_VALIDATORUPDATES']._serialized_start=5646 - _globals['_VALIDATORUPDATES']._serialized_end=5735 + _globals['_BONDSTATUS']._serialized_start=5742 + _globals['_BONDSTATUS']._serialized_end=5924 + _globals['_INFRACTION']._serialized_start=5926 + _globals['_INFRACTION']._serialized_end=6019 + _globals['_HISTORICALINFO']._serialized_start=318 + _globals['_HISTORICALINFO']._serialized_end=466 + _globals['_COMMISSIONRATES']._serialized_start=469 + _globals['_COMMISSIONRATES']._serialized_end=747 + _globals['_COMMISSION']._serialized_start=750 + _globals['_COMMISSION']._serialized_end=943 + _globals['_DESCRIPTION']._serialized_start=946 + _globals['_DESCRIPTION']._serialized_end=1114 + _globals['_VALIDATOR']._serialized_start=1117 + _globals['_VALIDATOR']._serialized_end=2023 + _globals['_VALADDRESSES']._serialized_start=2025 + _globals['_VALADDRESSES']._serialized_end=2095 + _globals['_DVPAIR']._serialized_start=2098 + _globals['_DVPAIR']._serialized_end=2267 + _globals['_DVPAIRS']._serialized_start=2269 + _globals['_DVPAIRS']._serialized_end=2343 + _globals['_DVVTRIPLET']._serialized_start=2346 + _globals['_DVVTRIPLET']._serialized_end=2613 + _globals['_DVVTRIPLETS']._serialized_start=2615 + _globals['_DVVTRIPLETS']._serialized_end=2703 + _globals['_DELEGATION']._serialized_start=2706 + _globals['_DELEGATION']._serialized_end=2954 + _globals['_UNBONDINGDELEGATION']._serialized_start=2957 + _globals['_UNBONDINGDELEGATION']._serialized_end=3226 + _globals['_UNBONDINGDELEGATIONENTRY']._serialized_start=3229 + _globals['_UNBONDINGDELEGATIONENTRY']._serialized_end=3640 + _globals['_REDELEGATIONENTRY']._serialized_start=3643 + _globals['_REDELEGATIONENTRY']._serialized_end=4058 + _globals['_REDELEGATION']._serialized_start=4061 + _globals['_REDELEGATION']._serialized_end=4410 + _globals['_PARAMS']._serialized_start=4413 + _globals['_PARAMS']._serialized_end=4825 + _globals['_DELEGATIONRESPONSE']._serialized_start=4828 + _globals['_DELEGATIONRESPONSE']._serialized_end=4997 + _globals['_REDELEGATIONENTRYRESPONSE']._serialized_start=5000 + _globals['_REDELEGATIONENTRYRESPONSE']._serialized_end=5205 + _globals['_REDELEGATIONRESPONSE']._serialized_start=5208 + _globals['_REDELEGATIONRESPONSE']._serialized_end=5409 + _globals['_POOL']._serialized_start=5412 + _globals['_POOL']._serialized_end=5647 + _globals['_VALIDATORUPDATES']._serialized_start=5649 + _globals['_VALIDATORUPDATES']._serialized_end=5739 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2.py b/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2.py index ecf2a7aa..2b6dda79 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2.py +++ b/pyinjective/proto/cosmos/staking/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\x1f\x63osmos/staking/v1beta1/tx.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14gogoproto/gogo.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x11\x61mino/amino.proto\"\xfb\x04\n\x12MsgCreateValidator\x12P\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12R\n\ncommission\x18\x02 \x01(\x0b\x32\'.cosmos.staking.v1beta1.CommissionRatesB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ncommission\x12`\n\x13min_self_delegation\x18\x03 \x01(\tB0\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x11minSelfDelegation\x12G\n\x11\x64\x65legator_address\x18\x04 \x01(\tB\x1a\x18\x01\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x05 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12\x46\n\x06pubkey\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyB\x18\xca\xb4-\x14\x63osmos.crypto.PubKeyR\x06pubkey\x12:\n\x05value\x18\x07 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x05value:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11validator_address\x8a\xe7\xb0*\x1d\x63osmos-sdk/MsgCreateValidator\"\x1c\n\x1aMsgCreateValidatorResponse\"\xa5\x03\n\x10MsgEditValidator\x12P\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12V\n\x0f\x63ommission_rate\x18\x03 \x01(\tB-\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x0e\x63ommissionRate\x12W\n\x13min_self_delegation\x18\x04 \x01(\tB\'\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x11minSelfDelegation:>\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11validator_address\x8a\xe7\xb0*\x1b\x63osmos-sdk/MsgEditValidator\"\x1a\n\x18MsgEditValidatorResponse\"\x9d\x02\n\x0bMsgDelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x16\x63osmos-sdk/MsgDelegate\"\x15\n\x13MsgDelegateResponse\"\x89\x03\n\x12MsgBeginRedelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress\x12<\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x1d\x63osmos-sdk/MsgBeginRedelegate\"p\n\x1aMsgBeginRedelegateResponse\x12R\n\x0f\x63ompletion_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\"\xa1\x02\n\rMsgUndelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x18\x63osmos-sdk/MsgUndelegate\"\xa9\x01\n\x15MsgUndelegateResponse\x12R\n\x0f\x63ompletion_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12<\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount\"\xe8\x02\n\x1cMsgCancelUnbondingDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount\x12\'\n\x0f\x63reation_height\x18\x04 \x01(\x03R\x0e\x63reationHeight:J\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\'cosmos-sdk/MsgCancelUnbondingDelegation\"&\n$MsgCancelUnbondingDelegationResponse\"\xc5\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x41\n\x06params\x18\x02 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params:7\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*$cosmos-sdk/x/staking/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2\x9d\x06\n\x03Msg\x12q\n\x0f\x43reateValidator\x12*.cosmos.staking.v1beta1.MsgCreateValidator\x1a\x32.cosmos.staking.v1beta1.MsgCreateValidatorResponse\x12k\n\rEditValidator\x12(.cosmos.staking.v1beta1.MsgEditValidator\x1a\x30.cosmos.staking.v1beta1.MsgEditValidatorResponse\x12\\\n\x08\x44\x65legate\x12#.cosmos.staking.v1beta1.MsgDelegate\x1a+.cosmos.staking.v1beta1.MsgDelegateResponse\x12q\n\x0f\x42\x65ginRedelegate\x12*.cosmos.staking.v1beta1.MsgBeginRedelegate\x1a\x32.cosmos.staking.v1beta1.MsgBeginRedelegateResponse\x12\x62\n\nUndelegate\x12%.cosmos.staking.v1beta1.MsgUndelegate\x1a-.cosmos.staking.v1beta1.MsgUndelegateResponse\x12\x8f\x01\n\x19\x43\x61ncelUnbondingDelegation\x12\x34.cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\x1a<.cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse\x12h\n\x0cUpdateParams\x12\'.cosmos.staking.v1beta1.MsgUpdateParams\x1a/.cosmos.staking.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xcd\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x07TxProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/staking/v1beta1/tx.proto\x12\x16\x63osmos.staking.v1beta1\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14gogoproto/gogo.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a$cosmos/staking/v1beta1/staking.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x11\x61mino/amino.proto\"\xfb\x04\n\x12MsgCreateValidator\x12P\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12R\n\ncommission\x18\x02 \x01(\x0b\x32\'.cosmos.staking.v1beta1.CommissionRatesB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\ncommission\x12`\n\x13min_self_delegation\x18\x03 \x01(\tB0\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.Int\xa8\xe7\xb0*\x01R\x11minSelfDelegation\x12G\n\x11\x64\x65legator_address\x18\x04 \x01(\tB\x1a\x18\x01\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x05 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12\x46\n\x06pubkey\x18\x06 \x01(\x0b\x32\x14.google.protobuf.AnyB\x18\xca\xb4-\x14\x63osmos.crypto.PubKeyR\x06pubkey\x12:\n\x05value\x18\x07 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x05value:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11validator_address\x8a\xe7\xb0*\x1d\x63osmos-sdk/MsgCreateValidator\"\x1c\n\x1aMsgCreateValidatorResponse\"\xa5\x03\n\x10MsgEditValidator\x12P\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32#.cosmos.staking.v1beta1.DescriptionB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x0b\x64\x65scription\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12V\n\x0f\x63ommission_rate\x18\x03 \x01(\tB-\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xd2\xb4-\ncosmos.DecR\x0e\x63ommissionRate\x12W\n\x13min_self_delegation\x18\x04 \x01(\tB\'\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xd2\xb4-\ncosmos.IntR\x11minSelfDelegation:>\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11validator_address\x8a\xe7\xb0*\x1b\x63osmos-sdk/MsgEditValidator\"\x1a\n\x18MsgEditValidatorResponse\"\x9d\x02\n\x0bMsgDelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x16\x63osmos-sdk/MsgDelegate\"\x15\n\x13MsgDelegateResponse\"\xf6\x02\n\x15MsgTransferDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12\x43\n\x10receiver_address\x18\x03 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x0freceiverAddress\x12<\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:C\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0* cosmos-sdk/MsgTransferDelegation\"\x1f\n\x1dMsgTransferDelegationResponse\"\x89\x03\n\x12MsgBeginRedelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12U\n\x15validator_src_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorSrcAddress\x12U\n\x15validator_dst_address\x18\x03 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x13validatorDstAddress\x12<\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:@\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x1d\x63osmos-sdk/MsgBeginRedelegate\"p\n\x1aMsgBeginRedelegateResponse\x12R\n\x0f\x63ompletion_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\"\xa1\x02\n\rMsgUndelegate\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\x18\x63osmos-sdk/MsgUndelegate\"\xa9\x01\n\x15MsgUndelegateResponse\x12R\n\x0f\x63ompletion_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\r\xc8\xde\x1f\x00\x90\xdf\x1f\x01\xa8\xe7\xb0*\x01R\x0e\x63ompletionTime\x12<\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount\"\xe8\x02\n\x1cMsgCancelUnbondingDelegation\x12\x45\n\x11\x64\x65legator_address\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\x10\x64\x65legatorAddress\x12N\n\x11validator_address\x18\x02 \x01(\tB!\xd2\xb4-\x1d\x63osmos.ValidatorAddressStringR\x10validatorAddress\x12<\n\x06\x61mount\x18\x03 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06\x61mount\x12\'\n\x0f\x63reation_height\x18\x04 \x01(\x03R\x0e\x63reationHeight:J\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x11\x64\x65legator_address\x8a\xe7\xb0*\'cosmos-sdk/MsgCancelUnbondingDelegation\"&\n$MsgCancelUnbondingDelegationResponse\"\xc5\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x41\n\x06params\x18\x02 \x01(\x0b\x32\x1e.cosmos.staking.v1beta1.ParamsB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06params:7\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*$cosmos-sdk/x/staking/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2\x99\x07\n\x03Msg\x12q\n\x0f\x43reateValidator\x12*.cosmos.staking.v1beta1.MsgCreateValidator\x1a\x32.cosmos.staking.v1beta1.MsgCreateValidatorResponse\x12k\n\rEditValidator\x12(.cosmos.staking.v1beta1.MsgEditValidator\x1a\x30.cosmos.staking.v1beta1.MsgEditValidatorResponse\x12\\\n\x08\x44\x65legate\x12#.cosmos.staking.v1beta1.MsgDelegate\x1a+.cosmos.staking.v1beta1.MsgDelegateResponse\x12z\n\x12TransferDelegation\x12-.cosmos.staking.v1beta1.MsgTransferDelegation\x1a\x35.cosmos.staking.v1beta1.MsgTransferDelegationResponse\x12q\n\x0f\x42\x65ginRedelegate\x12*.cosmos.staking.v1beta1.MsgBeginRedelegate\x1a\x32.cosmos.staking.v1beta1.MsgBeginRedelegateResponse\x12\x62\n\nUndelegate\x12%.cosmos.staking.v1beta1.MsgUndelegate\x1a-.cosmos.staking.v1beta1.MsgUndelegateResponse\x12\x8f\x01\n\x19\x43\x61ncelUnbondingDelegation\x12\x34.cosmos.staking.v1beta1.MsgCancelUnbondingDelegation\x1a<.cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse\x12h\n\x0cUpdateParams\x12\'.cosmos.staking.v1beta1.MsgUpdateParams\x1a/.cosmos.staking.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xcd\x01\n\x1a\x63om.cosmos.staking.v1beta1B\x07TxProtoP\x01Z,github.com/cosmos/cosmos-sdk/x/staking/types\xa2\x02\x03\x43SX\xaa\x02\x16\x43osmos.Staking.V1beta1\xca\x02\x16\x43osmos\\Staking\\V1beta1\xe2\x02\"Cosmos\\Staking\\V1beta1\\GPBMetadata\xea\x02\x18\x43osmos::Staking::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -64,6 +64,16 @@ _globals['_MSGDELEGATE'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\250\347\260*\001' _globals['_MSGDELEGATE']._loaded_options = None _globals['_MSGDELEGATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\021delegator_address\212\347\260*\026cosmos-sdk/MsgDelegate' + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['delegator_address']._loaded_options = None + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['delegator_address']._serialized_options = b'\322\264-\024cosmos.AddressString' + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['validator_address']._loaded_options = None + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['validator_address']._serialized_options = b'\322\264-\035cosmos.ValidatorAddressString' + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['receiver_address']._loaded_options = None + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['receiver_address']._serialized_options = b'\322\264-\024cosmos.AddressString' + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['amount']._loaded_options = None + _globals['_MSGTRANSFERDELEGATION'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\250\347\260*\001' + _globals['_MSGTRANSFERDELEGATION']._loaded_options = None + _globals['_MSGTRANSFERDELEGATION']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\021delegator_address\212\347\260* cosmos-sdk/MsgTransferDelegation' _globals['_MSGBEGINREDELEGATE'].fields_by_name['delegator_address']._loaded_options = None _globals['_MSGBEGINREDELEGATE'].fields_by_name['delegator_address']._serialized_options = b'\322\264-\024cosmos.AddressString' _globals['_MSGBEGINREDELEGATE'].fields_by_name['validator_src_address']._loaded_options = None @@ -116,22 +126,26 @@ _globals['_MSGDELEGATE']._serialized_end=1688 _globals['_MSGDELEGATERESPONSE']._serialized_start=1690 _globals['_MSGDELEGATERESPONSE']._serialized_end=1711 - _globals['_MSGBEGINREDELEGATE']._serialized_start=1714 - _globals['_MSGBEGINREDELEGATE']._serialized_end=2107 - _globals['_MSGBEGINREDELEGATERESPONSE']._serialized_start=2109 - _globals['_MSGBEGINREDELEGATERESPONSE']._serialized_end=2221 - _globals['_MSGUNDELEGATE']._serialized_start=2224 - _globals['_MSGUNDELEGATE']._serialized_end=2513 - _globals['_MSGUNDELEGATERESPONSE']._serialized_start=2516 - _globals['_MSGUNDELEGATERESPONSE']._serialized_end=2685 - _globals['_MSGCANCELUNBONDINGDELEGATION']._serialized_start=2688 - _globals['_MSGCANCELUNBONDINGDELEGATION']._serialized_end=3048 - _globals['_MSGCANCELUNBONDINGDELEGATIONRESPONSE']._serialized_start=3050 - _globals['_MSGCANCELUNBONDINGDELEGATIONRESPONSE']._serialized_end=3088 - _globals['_MSGUPDATEPARAMS']._serialized_start=3091 - _globals['_MSGUPDATEPARAMS']._serialized_end=3288 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=3290 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=3315 - _globals['_MSG']._serialized_start=3318 - _globals['_MSG']._serialized_end=4115 + _globals['_MSGTRANSFERDELEGATION']._serialized_start=1714 + _globals['_MSGTRANSFERDELEGATION']._serialized_end=2088 + _globals['_MSGTRANSFERDELEGATIONRESPONSE']._serialized_start=2090 + _globals['_MSGTRANSFERDELEGATIONRESPONSE']._serialized_end=2121 + _globals['_MSGBEGINREDELEGATE']._serialized_start=2124 + _globals['_MSGBEGINREDELEGATE']._serialized_end=2517 + _globals['_MSGBEGINREDELEGATERESPONSE']._serialized_start=2519 + _globals['_MSGBEGINREDELEGATERESPONSE']._serialized_end=2631 + _globals['_MSGUNDELEGATE']._serialized_start=2634 + _globals['_MSGUNDELEGATE']._serialized_end=2923 + _globals['_MSGUNDELEGATERESPONSE']._serialized_start=2926 + _globals['_MSGUNDELEGATERESPONSE']._serialized_end=3095 + _globals['_MSGCANCELUNBONDINGDELEGATION']._serialized_start=3098 + _globals['_MSGCANCELUNBONDINGDELEGATION']._serialized_end=3458 + _globals['_MSGCANCELUNBONDINGDELEGATIONRESPONSE']._serialized_start=3460 + _globals['_MSGCANCELUNBONDINGDELEGATIONRESPONSE']._serialized_end=3498 + _globals['_MSGUPDATEPARAMS']._serialized_start=3501 + _globals['_MSGUPDATEPARAMS']._serialized_end=3698 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=3700 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=3725 + _globals['_MSG']._serialized_start=3728 + _globals['_MSG']._serialized_end=4649 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2_grpc.py index f4113b4b..33e009ff 100644 --- a/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2_grpc.py +++ b/pyinjective/proto/cosmos/staking/v1beta1/tx_pb2_grpc.py @@ -30,6 +30,11 @@ def __init__(self, channel): request_serializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgDelegate.SerializeToString, response_deserializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgDelegateResponse.FromString, _registered_method=True) + self.TransferDelegation = channel.unary_unary( + '/cosmos.staking.v1beta1.Msg/TransferDelegation', + request_serializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegation.SerializeToString, + response_deserializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegationResponse.FromString, + _registered_method=True) self.BeginRedelegate = channel.unary_unary( '/cosmos.staking.v1beta1.Msg/BeginRedelegate', request_serializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgBeginRedelegate.SerializeToString, @@ -78,6 +83,14 @@ def Delegate(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def TransferDelegation(self, request, context): + """TransferDelegation defines a method for transferring a delegation of coins + from a delegator to another address. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def BeginRedelegate(self, request, context): """BeginRedelegate defines a method for performing a redelegation of coins from a delegator and source validator to a destination validator. @@ -131,6 +144,11 @@ def add_MsgServicer_to_server(servicer, server): request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgDelegate.FromString, response_serializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgDelegateResponse.SerializeToString, ), + 'TransferDelegation': grpc.unary_unary_rpc_method_handler( + servicer.TransferDelegation, + request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegation.FromString, + response_serializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegationResponse.SerializeToString, + ), 'BeginRedelegate': grpc.unary_unary_rpc_method_handler( servicer.BeginRedelegate, request_deserializer=cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgBeginRedelegate.FromString, @@ -244,6 +262,33 @@ def Delegate(request, metadata, _registered_method=True) + @staticmethod + def TransferDelegation(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, + '/cosmos.staking.v1beta1.Msg/TransferDelegation', + cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegation.SerializeToString, + cosmos_dot_staking_dot_v1beta1_dot_tx__pb2.MsgTransferDelegationResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def BeginRedelegate(request, target, diff --git a/pyinjective/proto/cosmos/store/streaming/abci/grpc_pb2.py b/pyinjective/proto/cosmos/store/streaming/abci/grpc_pb2.py index c1d7ec5c..3421d08e 100644 --- a/pyinjective/proto/cosmos/store/streaming/abci/grpc_pb2.py +++ b/pyinjective/proto/cosmos/store/streaming/abci/grpc_pb2.py @@ -12,11 +12,11 @@ _sym_db = _symbol_database.Default() -from pyinjective.proto.tendermint.abci import types_pb2 as tendermint_dot_abci_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 from pyinjective.proto.cosmos.store.v1beta1 import listening_pb2 as cosmos_dot_store_dot_v1beta1_dot_listening__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cosmos/store/streaming/abci/grpc.proto\x12\x1b\x63osmos.store.streaming.abci\x1a\x1btendermint/abci/types.proto\x1a$cosmos/store/v1beta1/listening.proto\"\x8f\x01\n\x1aListenFinalizeBlockRequest\x12\x37\n\x03req\x18\x01 \x01(\x0b\x32%.tendermint.abci.RequestFinalizeBlockR\x03req\x12\x38\n\x03res\x18\x02 \x01(\x0b\x32&.tendermint.abci.ResponseFinalizeBlockR\x03res\"\x1d\n\x1bListenFinalizeBlockResponse\"\xad\x01\n\x13ListenCommitRequest\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12\x31\n\x03res\x18\x02 \x01(\x0b\x32\x1f.tendermint.abci.ResponseCommitR\x03res\x12@\n\nchange_set\x18\x03 \x03(\x0b\x32!.cosmos.store.v1beta1.StoreKVPairR\tchangeSet\"\x16\n\x14ListenCommitResponse2\x95\x02\n\x13\x41\x42\x43IListenerService\x12\x88\x01\n\x13ListenFinalizeBlock\x12\x37.cosmos.store.streaming.abci.ListenFinalizeBlockRequest\x1a\x38.cosmos.store.streaming.abci.ListenFinalizeBlockResponse\x12s\n\x0cListenCommit\x12\x30.cosmos.store.streaming.abci.ListenCommitRequest\x1a\x31.cosmos.store.streaming.abci.ListenCommitResponseB\xdf\x01\n\x1f\x63om.cosmos.store.streaming.abciB\tGrpcProtoP\x01Z!cosmossdk.io/store/streaming/abci\xa2\x02\x04\x43SSA\xaa\x02\x1b\x43osmos.Store.Streaming.Abci\xca\x02\x1b\x43osmos\\Store\\Streaming\\Abci\xe2\x02\'Cosmos\\Store\\Streaming\\Abci\\GPBMetadata\xea\x02\x1e\x43osmos::Store::Streaming::Abcib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cosmos/store/streaming/abci/grpc.proto\x12\x1b\x63osmos.store.streaming.abci\x1a\x1c\x63ometbft/abci/v1/types.proto\x1a$cosmos/store/v1beta1/listening.proto\"\x91\x01\n\x1aListenFinalizeBlockRequest\x12\x38\n\x03req\x18\x01 \x01(\x0b\x32&.cometbft.abci.v1.FinalizeBlockRequestR\x03req\x12\x39\n\x03res\x18\x02 \x01(\x0b\x32\'.cometbft.abci.v1.FinalizeBlockResponseR\x03res\"\x1d\n\x1bListenFinalizeBlockResponse\"\xae\x01\n\x13ListenCommitRequest\x12!\n\x0c\x62lock_height\x18\x01 \x01(\x03R\x0b\x62lockHeight\x12\x32\n\x03res\x18\x02 \x01(\x0b\x32 .cometbft.abci.v1.CommitResponseR\x03res\x12@\n\nchange_set\x18\x03 \x03(\x0b\x32!.cosmos.store.v1beta1.StoreKVPairR\tchangeSet\"\x16\n\x14ListenCommitResponse2\x95\x02\n\x13\x41\x42\x43IListenerService\x12\x88\x01\n\x13ListenFinalizeBlock\x12\x37.cosmos.store.streaming.abci.ListenFinalizeBlockRequest\x1a\x38.cosmos.store.streaming.abci.ListenFinalizeBlockResponse\x12s\n\x0cListenCommit\x12\x30.cosmos.store.streaming.abci.ListenCommitRequest\x1a\x31.cosmos.store.streaming.abci.ListenCommitResponseB\xdf\x01\n\x1f\x63om.cosmos.store.streaming.abciB\tGrpcProtoP\x01Z!cosmossdk.io/store/streaming/abci\xa2\x02\x04\x43SSA\xaa\x02\x1b\x43osmos.Store.Streaming.Abci\xca\x02\x1b\x43osmos\\Store\\Streaming\\Abci\xe2\x02\'Cosmos\\Store\\Streaming\\Abci\\GPBMetadata\xea\x02\x1e\x43osmos::Store::Streaming::Abcib\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,14 +24,14 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\037com.cosmos.store.streaming.abciB\tGrpcProtoP\001Z!cosmossdk.io/store/streaming/abci\242\002\004CSSA\252\002\033Cosmos.Store.Streaming.Abci\312\002\033Cosmos\\Store\\Streaming\\Abci\342\002\'Cosmos\\Store\\Streaming\\Abci\\GPBMetadata\352\002\036Cosmos::Store::Streaming::Abci' - _globals['_LISTENFINALIZEBLOCKREQUEST']._serialized_start=139 - _globals['_LISTENFINALIZEBLOCKREQUEST']._serialized_end=282 - _globals['_LISTENFINALIZEBLOCKRESPONSE']._serialized_start=284 - _globals['_LISTENFINALIZEBLOCKRESPONSE']._serialized_end=313 - _globals['_LISTENCOMMITREQUEST']._serialized_start=316 - _globals['_LISTENCOMMITREQUEST']._serialized_end=489 - _globals['_LISTENCOMMITRESPONSE']._serialized_start=491 - _globals['_LISTENCOMMITRESPONSE']._serialized_end=513 - _globals['_ABCILISTENERSERVICE']._serialized_start=516 - _globals['_ABCILISTENERSERVICE']._serialized_end=793 + _globals['_LISTENFINALIZEBLOCKREQUEST']._serialized_start=140 + _globals['_LISTENFINALIZEBLOCKREQUEST']._serialized_end=285 + _globals['_LISTENFINALIZEBLOCKRESPONSE']._serialized_start=287 + _globals['_LISTENFINALIZEBLOCKRESPONSE']._serialized_end=316 + _globals['_LISTENCOMMITREQUEST']._serialized_start=319 + _globals['_LISTENCOMMITREQUEST']._serialized_end=493 + _globals['_LISTENCOMMITRESPONSE']._serialized_start=495 + _globals['_LISTENCOMMITRESPONSE']._serialized_end=517 + _globals['_ABCILISTENERSERVICE']._serialized_start=520 + _globals['_ABCILISTENERSERVICE']._serialized_end=797 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/store/v1beta1/listening_pb2.py b/pyinjective/proto/cosmos/store/v1beta1/listening_pb2.py index 2234f381..1704b8de 100644 --- a/pyinjective/proto/cosmos/store/v1beta1/listening_pb2.py +++ b/pyinjective/proto/cosmos/store/v1beta1/listening_pb2.py @@ -12,10 +12,10 @@ _sym_db = _symbol_database.Default() -from pyinjective.proto.tendermint.abci import types_pb2 as tendermint_dot_abci_dot_types__pb2 +from pyinjective.proto.cometbft.abci.v1 import types_pb2 as cometbft_dot_abci_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cosmos/store/v1beta1/listening.proto\x12\x14\x63osmos.store.v1beta1\x1a\x1btendermint/abci/types.proto\"j\n\x0bStoreKVPair\x12\x1b\n\tstore_key\x18\x01 \x01(\tR\x08storeKey\x12\x16\n\x06\x64\x65lete\x18\x02 \x01(\x08R\x06\x64\x65lete\x12\x10\n\x03key\x18\x03 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x04 \x01(\x0cR\x05value\"\xb4\x02\n\rBlockMetadata\x12H\n\x0fresponse_commit\x18\x06 \x01(\x0b\x32\x1f.tendermint.abci.ResponseCommitR\x0eresponseCommit\x12[\n\x16request_finalize_block\x18\x07 \x01(\x0b\x32%.tendermint.abci.RequestFinalizeBlockR\x14requestFinalizeBlock\x12^\n\x17response_finalize_block\x18\x08 \x01(\x0b\x32&.tendermint.abci.ResponseFinalizeBlockR\x15responseFinalizeBlockJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\x42\xb6\x01\n\x18\x63om.cosmos.store.v1beta1B\x0eListeningProtoP\x01Z\x18\x63osmossdk.io/store/types\xa2\x02\x03\x43SX\xaa\x02\x14\x43osmos.Store.V1beta1\xca\x02\x14\x43osmos\\Store\\V1beta1\xe2\x02 Cosmos\\Store\\V1beta1\\GPBMetadata\xea\x02\x16\x43osmos::Store::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cosmos/store/v1beta1/listening.proto\x12\x14\x63osmos.store.v1beta1\x1a\x1c\x63ometbft/abci/v1/types.proto\"j\n\x0bStoreKVPair\x12\x1b\n\tstore_key\x18\x01 \x01(\tR\x08storeKey\x12\x16\n\x06\x64\x65lete\x18\x02 \x01(\x08R\x06\x64\x65lete\x12\x10\n\x03key\x18\x03 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x04 \x01(\x0cR\x05value\"\xb7\x02\n\rBlockMetadata\x12I\n\x0fresponse_commit\x18\x06 \x01(\x0b\x32 .cometbft.abci.v1.CommitResponseR\x0eresponseCommit\x12\\\n\x16request_finalize_block\x18\x07 \x01(\x0b\x32&.cometbft.abci.v1.FinalizeBlockRequestR\x14requestFinalizeBlock\x12_\n\x17response_finalize_block\x18\x08 \x01(\x0b\x32\'.cometbft.abci.v1.FinalizeBlockResponseR\x15responseFinalizeBlockJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\x42\xb6\x01\n\x18\x63om.cosmos.store.v1beta1B\x0eListeningProtoP\x01Z\x18\x63osmossdk.io/store/types\xa2\x02\x03\x43SX\xaa\x02\x14\x43osmos.Store.V1beta1\xca\x02\x14\x43osmos\\Store\\V1beta1\xe2\x02 Cosmos\\Store\\V1beta1\\GPBMetadata\xea\x02\x16\x43osmos::Store::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,8 +23,8 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\030com.cosmos.store.v1beta1B\016ListeningProtoP\001Z\030cosmossdk.io/store/types\242\002\003CSX\252\002\024Cosmos.Store.V1beta1\312\002\024Cosmos\\Store\\V1beta1\342\002 Cosmos\\Store\\V1beta1\\GPBMetadata\352\002\026Cosmos::Store::V1beta1' - _globals['_STOREKVPAIR']._serialized_start=91 - _globals['_STOREKVPAIR']._serialized_end=197 - _globals['_BLOCKMETADATA']._serialized_start=200 - _globals['_BLOCKMETADATA']._serialized_end=508 + _globals['_STOREKVPAIR']._serialized_start=92 + _globals['_STOREKVPAIR']._serialized_end=198 + _globals['_BLOCKMETADATA']._serialized_start=201 + _globals['_BLOCKMETADATA']._serialized_end=512 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/cosmos/tx/v1beta1/service_pb2.py b/pyinjective/proto/cosmos/tx/v1beta1/service_pb2.py index e2512d9e..5724282a 100644 --- a/pyinjective/proto/cosmos/tx/v1beta1/service_pb2.py +++ b/pyinjective/proto/cosmos/tx/v1beta1/service_pb2.py @@ -16,11 +16,11 @@ from pyinjective.proto.cosmos.base.abci.v1beta1 import abci_pb2 as cosmos_dot_base_dot_abci_dot_v1beta1_dot_abci__pb2 from pyinjective.proto.cosmos.tx.v1beta1 import tx_pb2 as cosmos_dot_tx_dot_v1beta1_dot_tx__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.tendermint.types import block_pb2 as tendermint_dot_types_dot_block__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 +from pyinjective.proto.cometbft.types.v1 import block_pb2 as cometbft_dot_types_dot_v1_dot_block__pb2 +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/tx/v1beta1/service.proto\x12\x11\x63osmos.tx.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a#cosmos/base/abci/v1beta1/abci.proto\x1a\x1a\x63osmos/tx/v1beta1/tx.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x1ctendermint/types/block.proto\x1a\x1ctendermint/types/types.proto\"\xf3\x01\n\x12GetTxsEventRequest\x12\x1a\n\x06\x65vents\x18\x01 \x03(\tB\x02\x18\x01R\x06\x65vents\x12J\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestB\x02\x18\x01R\npagination\x12\x35\n\x08order_by\x18\x03 \x01(\x0e\x32\x1a.cosmos.tx.v1beta1.OrderByR\x07orderBy\x12\x12\n\x04page\x18\x04 \x01(\x04R\x04page\x12\x14\n\x05limit\x18\x05 \x01(\x04R\x05limit\x12\x14\n\x05query\x18\x06 \x01(\tR\x05query\"\xea\x01\n\x13GetTxsEventResponse\x12\'\n\x03txs\x18\x01 \x03(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x03txs\x12G\n\x0ctx_responses\x18\x02 \x03(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\x0btxResponses\x12K\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseB\x02\x18\x01R\npagination\x12\x14\n\x05total\x18\x04 \x01(\x04R\x05total\"e\n\x12\x42roadcastTxRequest\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32 .cosmos.tx.v1beta1.BroadcastModeR\x04mode\"\\\n\x13\x42roadcastTxResponse\x12\x45\n\x0btx_response\x18\x01 \x01(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\ntxResponse\"W\n\x0fSimulateRequest\x12)\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxB\x02\x18\x01R\x02tx\x12\x19\n\x08tx_bytes\x18\x02 \x01(\x0cR\x07txBytes\"\x8a\x01\n\x10SimulateResponse\x12<\n\x08gas_info\x18\x01 \x01(\x0b\x32!.cosmos.base.abci.v1beta1.GasInfoR\x07gasInfo\x12\x38\n\x06result\x18\x02 \x01(\x0b\x32 .cosmos.base.abci.v1beta1.ResultR\x06result\"\"\n\x0cGetTxRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"}\n\rGetTxResponse\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\x12\x45\n\x0btx_response\x18\x02 \x01(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\ntxResponse\"x\n\x16GetBlockWithTxsRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xf0\x01\n\x17GetBlockWithTxsResponse\x12\'\n\x03txs\x18\x01 \x03(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x03txs\x12\x34\n\x08\x62lock_id\x18\x02 \x01(\x0b\x32\x19.tendermint.types.BlockIDR\x07\x62lockId\x12-\n\x05\x62lock\x18\x03 \x01(\x0b\x32\x17.tendermint.types.BlockR\x05\x62lock\x12G\n\npagination\x18\x04 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\",\n\x0fTxDecodeRequest\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\"9\n\x10TxDecodeResponse\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\"8\n\x0fTxEncodeRequest\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\"-\n\x10TxEncodeResponse\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\"5\n\x14TxEncodeAminoRequest\x12\x1d\n\namino_json\x18\x01 \x01(\tR\taminoJson\":\n\x15TxEncodeAminoResponse\x12!\n\x0c\x61mino_binary\x18\x01 \x01(\x0cR\x0b\x61minoBinary\"9\n\x14TxDecodeAminoRequest\x12!\n\x0c\x61mino_binary\x18\x01 \x01(\x0cR\x0b\x61minoBinary\"6\n\x15TxDecodeAminoResponse\x12\x1d\n\namino_json\x18\x01 \x01(\tR\taminoJson*H\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x10\n\x0cORDER_BY_ASC\x10\x01\x12\x11\n\rORDER_BY_DESC\x10\x02*\x80\x01\n\rBroadcastMode\x12\x1e\n\x1a\x42ROADCAST_MODE_UNSPECIFIED\x10\x00\x12\x1c\n\x14\x42ROADCAST_MODE_BLOCK\x10\x01\x1a\x02\x08\x01\x12\x17\n\x13\x42ROADCAST_MODE_SYNC\x10\x02\x12\x18\n\x14\x42ROADCAST_MODE_ASYNC\x10\x03\x32\xaa\t\n\x07Service\x12{\n\x08Simulate\x12\".cosmos.tx.v1beta1.SimulateRequest\x1a#.cosmos.tx.v1beta1.SimulateResponse\"&\x82\xd3\xe4\x93\x02 \"\x1b/cosmos/tx/v1beta1/simulate:\x01*\x12q\n\x05GetTx\x12\x1f.cosmos.tx.v1beta1.GetTxRequest\x1a .cosmos.tx.v1beta1.GetTxResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/cosmos/tx/v1beta1/txs/{hash}\x12\x7f\n\x0b\x42roadcastTx\x12%.cosmos.tx.v1beta1.BroadcastTxRequest\x1a&.cosmos.tx.v1beta1.BroadcastTxResponse\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/cosmos/tx/v1beta1/txs:\x01*\x12|\n\x0bGetTxsEvent\x12%.cosmos.tx.v1beta1.GetTxsEventRequest\x1a&.cosmos.tx.v1beta1.GetTxsEventResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/cosmos/tx/v1beta1/txs\x12\x97\x01\n\x0fGetBlockWithTxs\x12).cosmos.tx.v1beta1.GetBlockWithTxsRequest\x1a*.cosmos.tx.v1beta1.GetBlockWithTxsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/cosmos/tx/v1beta1/txs/block/{height}\x12y\n\x08TxDecode\x12\".cosmos.tx.v1beta1.TxDecodeRequest\x1a#.cosmos.tx.v1beta1.TxDecodeResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/cosmos/tx/v1beta1/decode:\x01*\x12y\n\x08TxEncode\x12\".cosmos.tx.v1beta1.TxEncodeRequest\x1a#.cosmos.tx.v1beta1.TxEncodeResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/cosmos/tx/v1beta1/encode:\x01*\x12\x8e\x01\n\rTxEncodeAmino\x12\'.cosmos.tx.v1beta1.TxEncodeAminoRequest\x1a(.cosmos.tx.v1beta1.TxEncodeAminoResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/cosmos/tx/v1beta1/encode/amino:\x01*\x12\x8e\x01\n\rTxDecodeAmino\x12\'.cosmos.tx.v1beta1.TxDecodeAminoRequest\x1a(.cosmos.tx.v1beta1.TxDecodeAminoResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/cosmos/tx/v1beta1/decode/amino:\x01*B\xb2\x01\n\x15\x63om.cosmos.tx.v1beta1B\x0cServiceProtoP\x01Z%github.com/cosmos/cosmos-sdk/types/tx\xa2\x02\x03\x43TX\xaa\x02\x11\x43osmos.Tx.V1beta1\xca\x02\x11\x43osmos\\Tx\\V1beta1\xe2\x02\x1d\x43osmos\\Tx\\V1beta1\\GPBMetadata\xea\x02\x13\x43osmos::Tx::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x63osmos/tx/v1beta1/service.proto\x12\x11\x63osmos.tx.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a#cosmos/base/abci/v1beta1/abci.proto\x1a\x1a\x63osmos/tx/v1beta1/tx.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x1d\x63ometbft/types/v1/block.proto\x1a\x1d\x63ometbft/types/v1/types.proto\"\xf3\x01\n\x12GetTxsEventRequest\x12\x1a\n\x06\x65vents\x18\x01 \x03(\tB\x02\x18\x01R\x06\x65vents\x12J\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestB\x02\x18\x01R\npagination\x12\x35\n\x08order_by\x18\x03 \x01(\x0e\x32\x1a.cosmos.tx.v1beta1.OrderByR\x07orderBy\x12\x12\n\x04page\x18\x04 \x01(\x04R\x04page\x12\x14\n\x05limit\x18\x05 \x01(\x04R\x05limit\x12\x14\n\x05query\x18\x06 \x01(\tR\x05query\"\xea\x01\n\x13GetTxsEventResponse\x12\'\n\x03txs\x18\x01 \x03(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x03txs\x12G\n\x0ctx_responses\x18\x02 \x03(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\x0btxResponses\x12K\n\npagination\x18\x03 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseB\x02\x18\x01R\npagination\x12\x14\n\x05total\x18\x04 \x01(\x04R\x05total\"e\n\x12\x42roadcastTxRequest\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32 .cosmos.tx.v1beta1.BroadcastModeR\x04mode\"\\\n\x13\x42roadcastTxResponse\x12\x45\n\x0btx_response\x18\x01 \x01(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\ntxResponse\"W\n\x0fSimulateRequest\x12)\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxB\x02\x18\x01R\x02tx\x12\x19\n\x08tx_bytes\x18\x02 \x01(\x0cR\x07txBytes\"\x8a\x01\n\x10SimulateResponse\x12<\n\x08gas_info\x18\x01 \x01(\x0b\x32!.cosmos.base.abci.v1beta1.GasInfoR\x07gasInfo\x12\x38\n\x06result\x18\x02 \x01(\x0b\x32 .cosmos.base.abci.v1beta1.ResultR\x06result\"\"\n\x0cGetTxRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"}\n\rGetTxResponse\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\x12\x45\n\x0btx_response\x18\x02 \x01(\x0b\x32$.cosmos.base.abci.v1beta1.TxResponseR\ntxResponse\"x\n\x16GetBlockWithTxsRequest\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xf2\x01\n\x17GetBlockWithTxsResponse\x12\'\n\x03txs\x18\x01 \x03(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x03txs\x12\x35\n\x08\x62lock_id\x18\x02 \x01(\x0b\x32\x1a.cometbft.types.v1.BlockIDR\x07\x62lockId\x12.\n\x05\x62lock\x18\x03 \x01(\x0b\x32\x18.cometbft.types.v1.BlockR\x05\x62lock\x12G\n\npagination\x18\x04 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\",\n\x0fTxDecodeRequest\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\"9\n\x10TxDecodeResponse\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\"8\n\x0fTxEncodeRequest\x12%\n\x02tx\x18\x01 \x01(\x0b\x32\x15.cosmos.tx.v1beta1.TxR\x02tx\"-\n\x10TxEncodeResponse\x12\x19\n\x08tx_bytes\x18\x01 \x01(\x0cR\x07txBytes\"5\n\x14TxEncodeAminoRequest\x12\x1d\n\namino_json\x18\x01 \x01(\tR\taminoJson\":\n\x15TxEncodeAminoResponse\x12!\n\x0c\x61mino_binary\x18\x01 \x01(\x0cR\x0b\x61minoBinary\"9\n\x14TxDecodeAminoRequest\x12!\n\x0c\x61mino_binary\x18\x01 \x01(\x0cR\x0b\x61minoBinary\"6\n\x15TxDecodeAminoResponse\x12\x1d\n\namino_json\x18\x01 \x01(\tR\taminoJson*H\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x10\n\x0cORDER_BY_ASC\x10\x01\x12\x11\n\rORDER_BY_DESC\x10\x02*\x80\x01\n\rBroadcastMode\x12\x1e\n\x1a\x42ROADCAST_MODE_UNSPECIFIED\x10\x00\x12\x1c\n\x14\x42ROADCAST_MODE_BLOCK\x10\x01\x1a\x02\x08\x01\x12\x17\n\x13\x42ROADCAST_MODE_SYNC\x10\x02\x12\x18\n\x14\x42ROADCAST_MODE_ASYNC\x10\x03\x32\xaa\t\n\x07Service\x12{\n\x08Simulate\x12\".cosmos.tx.v1beta1.SimulateRequest\x1a#.cosmos.tx.v1beta1.SimulateResponse\"&\x82\xd3\xe4\x93\x02 \"\x1b/cosmos/tx/v1beta1/simulate:\x01*\x12q\n\x05GetTx\x12\x1f.cosmos.tx.v1beta1.GetTxRequest\x1a .cosmos.tx.v1beta1.GetTxResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/cosmos/tx/v1beta1/txs/{hash}\x12\x7f\n\x0b\x42roadcastTx\x12%.cosmos.tx.v1beta1.BroadcastTxRequest\x1a&.cosmos.tx.v1beta1.BroadcastTxResponse\"!\x82\xd3\xe4\x93\x02\x1b\"\x16/cosmos/tx/v1beta1/txs:\x01*\x12|\n\x0bGetTxsEvent\x12%.cosmos.tx.v1beta1.GetTxsEventRequest\x1a&.cosmos.tx.v1beta1.GetTxsEventResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/cosmos/tx/v1beta1/txs\x12\x97\x01\n\x0fGetBlockWithTxs\x12).cosmos.tx.v1beta1.GetBlockWithTxsRequest\x1a*.cosmos.tx.v1beta1.GetBlockWithTxsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/cosmos/tx/v1beta1/txs/block/{height}\x12y\n\x08TxDecode\x12\".cosmos.tx.v1beta1.TxDecodeRequest\x1a#.cosmos.tx.v1beta1.TxDecodeResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/cosmos/tx/v1beta1/decode:\x01*\x12y\n\x08TxEncode\x12\".cosmos.tx.v1beta1.TxEncodeRequest\x1a#.cosmos.tx.v1beta1.TxEncodeResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/cosmos/tx/v1beta1/encode:\x01*\x12\x8e\x01\n\rTxEncodeAmino\x12\'.cosmos.tx.v1beta1.TxEncodeAminoRequest\x1a(.cosmos.tx.v1beta1.TxEncodeAminoResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/cosmos/tx/v1beta1/encode/amino:\x01*\x12\x8e\x01\n\rTxDecodeAmino\x12\'.cosmos.tx.v1beta1.TxDecodeAminoRequest\x1a(.cosmos.tx.v1beta1.TxDecodeAminoResponse\"*\x82\xd3\xe4\x93\x02$\"\x1f/cosmos/tx/v1beta1/decode/amino:\x01*B\xb2\x01\n\x15\x63om.cosmos.tx.v1beta1B\x0cServiceProtoP\x01Z%github.com/cosmos/cosmos-sdk/types/tx\xa2\x02\x03\x43TX\xaa\x02\x11\x43osmos.Tx.V1beta1\xca\x02\x11\x43osmos\\Tx\\V1beta1\xe2\x02\x1d\x43osmos\\Tx\\V1beta1\\GPBMetadata\xea\x02\x13\x43osmos::Tx::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -56,46 +56,46 @@ _globals['_SERVICE'].methods_by_name['TxEncodeAmino']._serialized_options = b'\202\323\344\223\002$\"\037/cosmos/tx/v1beta1/encode/amino:\001*' _globals['_SERVICE'].methods_by_name['TxDecodeAmino']._loaded_options = None _globals['_SERVICE'].methods_by_name['TxDecodeAmino']._serialized_options = b'\202\323\344\223\002$\"\037/cosmos/tx/v1beta1/decode/amino:\001*' - _globals['_ORDERBY']._serialized_start=2131 - _globals['_ORDERBY']._serialized_end=2203 - _globals['_BROADCASTMODE']._serialized_start=2206 - _globals['_BROADCASTMODE']._serialized_end=2334 - _globals['_GETTXSEVENTREQUEST']._serialized_start=254 - _globals['_GETTXSEVENTREQUEST']._serialized_end=497 - _globals['_GETTXSEVENTRESPONSE']._serialized_start=500 - _globals['_GETTXSEVENTRESPONSE']._serialized_end=734 - _globals['_BROADCASTTXREQUEST']._serialized_start=736 - _globals['_BROADCASTTXREQUEST']._serialized_end=837 - _globals['_BROADCASTTXRESPONSE']._serialized_start=839 - _globals['_BROADCASTTXRESPONSE']._serialized_end=931 - _globals['_SIMULATEREQUEST']._serialized_start=933 - _globals['_SIMULATEREQUEST']._serialized_end=1020 - _globals['_SIMULATERESPONSE']._serialized_start=1023 - _globals['_SIMULATERESPONSE']._serialized_end=1161 - _globals['_GETTXREQUEST']._serialized_start=1163 - _globals['_GETTXREQUEST']._serialized_end=1197 - _globals['_GETTXRESPONSE']._serialized_start=1199 - _globals['_GETTXRESPONSE']._serialized_end=1324 - _globals['_GETBLOCKWITHTXSREQUEST']._serialized_start=1326 - _globals['_GETBLOCKWITHTXSREQUEST']._serialized_end=1446 - _globals['_GETBLOCKWITHTXSRESPONSE']._serialized_start=1449 - _globals['_GETBLOCKWITHTXSRESPONSE']._serialized_end=1689 - _globals['_TXDECODEREQUEST']._serialized_start=1691 - _globals['_TXDECODEREQUEST']._serialized_end=1735 - _globals['_TXDECODERESPONSE']._serialized_start=1737 - _globals['_TXDECODERESPONSE']._serialized_end=1794 - _globals['_TXENCODEREQUEST']._serialized_start=1796 - _globals['_TXENCODEREQUEST']._serialized_end=1852 - _globals['_TXENCODERESPONSE']._serialized_start=1854 - _globals['_TXENCODERESPONSE']._serialized_end=1899 - _globals['_TXENCODEAMINOREQUEST']._serialized_start=1901 - _globals['_TXENCODEAMINOREQUEST']._serialized_end=1954 - _globals['_TXENCODEAMINORESPONSE']._serialized_start=1956 - _globals['_TXENCODEAMINORESPONSE']._serialized_end=2014 - _globals['_TXDECODEAMINOREQUEST']._serialized_start=2016 - _globals['_TXDECODEAMINOREQUEST']._serialized_end=2073 - _globals['_TXDECODEAMINORESPONSE']._serialized_start=2075 - _globals['_TXDECODEAMINORESPONSE']._serialized_end=2129 - _globals['_SERVICE']._serialized_start=2337 - _globals['_SERVICE']._serialized_end=3531 + _globals['_ORDERBY']._serialized_start=2135 + _globals['_ORDERBY']._serialized_end=2207 + _globals['_BROADCASTMODE']._serialized_start=2210 + _globals['_BROADCASTMODE']._serialized_end=2338 + _globals['_GETTXSEVENTREQUEST']._serialized_start=256 + _globals['_GETTXSEVENTREQUEST']._serialized_end=499 + _globals['_GETTXSEVENTRESPONSE']._serialized_start=502 + _globals['_GETTXSEVENTRESPONSE']._serialized_end=736 + _globals['_BROADCASTTXREQUEST']._serialized_start=738 + _globals['_BROADCASTTXREQUEST']._serialized_end=839 + _globals['_BROADCASTTXRESPONSE']._serialized_start=841 + _globals['_BROADCASTTXRESPONSE']._serialized_end=933 + _globals['_SIMULATEREQUEST']._serialized_start=935 + _globals['_SIMULATEREQUEST']._serialized_end=1022 + _globals['_SIMULATERESPONSE']._serialized_start=1025 + _globals['_SIMULATERESPONSE']._serialized_end=1163 + _globals['_GETTXREQUEST']._serialized_start=1165 + _globals['_GETTXREQUEST']._serialized_end=1199 + _globals['_GETTXRESPONSE']._serialized_start=1201 + _globals['_GETTXRESPONSE']._serialized_end=1326 + _globals['_GETBLOCKWITHTXSREQUEST']._serialized_start=1328 + _globals['_GETBLOCKWITHTXSREQUEST']._serialized_end=1448 + _globals['_GETBLOCKWITHTXSRESPONSE']._serialized_start=1451 + _globals['_GETBLOCKWITHTXSRESPONSE']._serialized_end=1693 + _globals['_TXDECODEREQUEST']._serialized_start=1695 + _globals['_TXDECODEREQUEST']._serialized_end=1739 + _globals['_TXDECODERESPONSE']._serialized_start=1741 + _globals['_TXDECODERESPONSE']._serialized_end=1798 + _globals['_TXENCODEREQUEST']._serialized_start=1800 + _globals['_TXENCODEREQUEST']._serialized_end=1856 + _globals['_TXENCODERESPONSE']._serialized_start=1858 + _globals['_TXENCODERESPONSE']._serialized_end=1903 + _globals['_TXENCODEAMINOREQUEST']._serialized_start=1905 + _globals['_TXENCODEAMINOREQUEST']._serialized_end=1958 + _globals['_TXENCODEAMINORESPONSE']._serialized_start=1960 + _globals['_TXENCODEAMINORESPONSE']._serialized_end=2018 + _globals['_TXDECODEAMINOREQUEST']._serialized_start=2020 + _globals['_TXDECODEAMINOREQUEST']._serialized_end=2077 + _globals['_TXDECODEAMINORESPONSE']._serialized_start=2079 + _globals['_TXDECODEAMINORESPONSE']._serialized_end=2133 + _globals['_SERVICE']._serialized_start=2341 + _globals['_SERVICE']._serialized_end=3535 # @@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 2eddc270..953be8d8 100644 --- a/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py +++ b/pyinjective/proto/cosmwasm/wasm/v1/query_pb2.py @@ -21,7 +21,7 @@ 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\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') +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\x97\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\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}\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) @@ -96,7 +96,7 @@ _globals['_QUERY'].methods_by_name['RawContractState']._loaded_options = None _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'\210\347\260*\001\202\323\344\223\0029\0227/cosmwasm/wasm/v1/contract/{address}/smart/{query_data}' + _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['Code']._loaded_options = None _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 @@ -160,5 +160,5 @@ _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_start=3522 _globals['_QUERYBUILDADDRESSRESPONSE']._serialized_end=3601 _globals['_QUERY']._serialized_start=3604 - _globals['_QUERY']._serialized_end=5552 + _globals['_QUERY']._serialized_end=5547 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/event_provider_api_pb2.py b/pyinjective/proto/exchange/event_provider_api_pb2.py index 5e0afd0b..a0cc7eef 100644 --- a/pyinjective/proto/exchange/event_provider_api_pb2.py +++ b/pyinjective/proto/exchange/event_provider_api_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!exchange/event_provider_api.proto\x12\x12\x65vent_provider_api\"\x18\n\x16GetLatestHeightRequest\"~\n\x17GetLatestHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.event_provider_api.LatestBlockHeightR\x04\x64\x61ta\"+\n\x11LatestBlockHeight\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\"L\n\x18StreamBlockEventsRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\"N\n\x19StreamBlockEventsResponse\x12\x31\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x19.event_provider_api.BlockR\x06\x62locks\"\x8a\x01\n\x05\x42lock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x36\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1e.event_provider_api.BlockEventR\x06\x65vents\x12\x17\n\x07in_sync\x18\x04 \x01(\x08R\x06inSync\"V\n\nBlockEvent\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\x12\x17\n\x07tx_hash\x18\x03 \x01(\x0cR\x06txHash\"L\n\x18GetBlockEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\"}\n\x19GetBlockEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"\xca\x01\n\x0e\x42lockEventsRPC\x12\x14\n\x05types\x18\x01 \x03(\tR\x05types\x12\x16\n\x06\x65vents\x18\x02 \x03(\x0cR\x06\x65vents\x12M\n\ttx_hashes\x18\x03 \x03(\x0b\x32\x30.event_provider_api.BlockEventsRPC.TxHashesEntryR\x08txHashes\x1a;\n\rTxHashesEntry\x12\x10\n\x03key\x18\x01 \x01(\x11R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value:\x02\x38\x01\"e\n\x19GetCustomEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12\x16\n\x06\x65vents\x18\x03 \x01(\tR\x06\x65vents\"~\n\x1aGetCustomEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"T\n\x19GetABCIBlockEventsRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\x12\x1f\n\x0b\x65vent_types\x18\x02 \x03(\tR\neventTypes\"\x81\x01\n\x1aGetABCIBlockEventsResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock\"\xcc\x02\n\x08RawBlock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x1d\n\nblock_time\x18\x05 \x01(\tR\tblockTime\x12\'\n\x0f\x62lock_timestamp\x18\x06 \x01(\x12R\x0e\x62lockTimestamp\x12J\n\x0btxs_results\x18\x02 \x03(\x0b\x32).event_provider_api.ABCIResponseDeliverTxR\ntxsResults\x12K\n\x12\x62\x65gin_block_events\x18\x03 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x10\x62\x65ginBlockEvents\x12G\n\x10\x65nd_block_events\x18\x04 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x0e\x65ndBlockEvents\"\xf9\x01\n\x15\x41\x42\x43IResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\x11R\x04\x63ode\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x12\n\x04info\x18\x03 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\x04 \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\x05 \x01(\x12R\x07gasUsed\x12\x35\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x06\x65vents\x12\x1c\n\tcodespace\x18\x07 \x01(\tR\tcodespace\x12\x17\n\x07tx_hash\x18\x08 \x01(\x0cR\x06txHash\"b\n\tABCIEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x41\n\nattributes\x18\x02 \x03(\x0b\x32!.event_provider_api.ABCIAttributeR\nattributes\"7\n\rABCIAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value2\xce\x04\n\x10\x45ventProviderAPI\x12j\n\x0fGetLatestHeight\x12*.event_provider_api.GetLatestHeightRequest\x1a+.event_provider_api.GetLatestHeightResponse\x12r\n\x11StreamBlockEvents\x12,.event_provider_api.StreamBlockEventsRequest\x1a-.event_provider_api.StreamBlockEventsResponse0\x01\x12p\n\x11GetBlockEventsRPC\x12,.event_provider_api.GetBlockEventsRPCRequest\x1a-.event_provider_api.GetBlockEventsRPCResponse\x12s\n\x12GetCustomEventsRPC\x12-.event_provider_api.GetCustomEventsRPCRequest\x1a..event_provider_api.GetCustomEventsRPCResponse\x12s\n\x12GetABCIBlockEvents\x12-.event_provider_api.GetABCIBlockEventsRequest\x1a..event_provider_api.GetABCIBlockEventsResponseB\xa6\x01\n\x16\x63om.event_provider_apiB\x15\x45ventProviderApiProtoP\x01Z\x15/event_provider_apipb\xa2\x02\x03\x45XX\xaa\x02\x10\x45ventProviderApi\xca\x02\x10\x45ventProviderApi\xe2\x02\x1c\x45ventProviderApi\\GPBMetadata\xea\x02\x10\x45ventProviderApib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!exchange/event_provider_api.proto\x12\x12\x65vent_provider_api\"\x18\n\x16GetLatestHeightRequest\"~\n\x17GetLatestHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.event_provider_api.LatestBlockHeightR\x04\x64\x61ta\"?\n\x11LatestBlockHeight\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x12\n\x04time\x18\x02 \x01(\x12R\x04time\"L\n\x18StreamBlockEventsRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\"N\n\x19StreamBlockEventsResponse\x12\x31\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x19.event_provider_api.BlockR\x06\x62locks\"\x8a\x01\n\x05\x42lock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x36\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1e.event_provider_api.BlockEventR\x06\x65vents\x12\x17\n\x07in_sync\x18\x04 \x01(\x08R\x06inSync\"j\n\nBlockEvent\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\x12\x17\n\x07tx_hash\x18\x03 \x01(\x0cR\x06txHash\x12\x12\n\x04mode\x18\x04 \x01(\tR\x04mode\"s\n\x18GetBlockEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12%\n\x0ehuman_readable\x18\x03 \x01(\x08R\rhumanReadable\"}\n\x19GetBlockEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"\xca\x01\n\x0e\x42lockEventsRPC\x12\x14\n\x05types\x18\x01 \x03(\tR\x05types\x12\x16\n\x06\x65vents\x18\x02 \x03(\x0cR\x06\x65vents\x12M\n\ttx_hashes\x18\x03 \x03(\x0b\x32\x30.event_provider_api.BlockEventsRPC.TxHashesEntryR\x08txHashes\x1a;\n\rTxHashesEntry\x12\x10\n\x03key\x18\x01 \x01(\x11R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value:\x02\x38\x01\"e\n\x19GetCustomEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12\x16\n\x06\x65vents\x18\x03 \x01(\tR\x06\x65vents\"~\n\x1aGetCustomEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"T\n\x19GetABCIBlockEventsRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\x12\x1f\n\x0b\x65vent_types\x18\x02 \x03(\tR\neventTypes\"\x81\x01\n\x1aGetABCIBlockEventsResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock\"\xcc\x02\n\x08RawBlock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x1d\n\nblock_time\x18\x05 \x01(\tR\tblockTime\x12\'\n\x0f\x62lock_timestamp\x18\x06 \x01(\x12R\x0e\x62lockTimestamp\x12J\n\x0btxs_results\x18\x02 \x03(\x0b\x32).event_provider_api.ABCIResponseDeliverTxR\ntxsResults\x12K\n\x12\x62\x65gin_block_events\x18\x03 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x10\x62\x65ginBlockEvents\x12G\n\x10\x65nd_block_events\x18\x04 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x0e\x65ndBlockEvents\"\xf9\x01\n\x15\x41\x42\x43IResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\x11R\x04\x63ode\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x12\n\x04info\x18\x03 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\x04 \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\x05 \x01(\x12R\x07gasUsed\x12\x35\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x06\x65vents\x12\x1c\n\tcodespace\x18\x07 \x01(\tR\tcodespace\x12\x17\n\x07tx_hash\x18\x08 \x01(\x0cR\x06txHash\"b\n\tABCIEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x41\n\nattributes\x18\x02 \x03(\x0b\x32!.event_provider_api.ABCIAttributeR\nattributes\"7\n\rABCIAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\";\n!GetABCIBlockEventsAtHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\"\x89\x01\n\"GetABCIBlockEventsAtHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock2\xdc\x05\n\x10\x45ventProviderAPI\x12j\n\x0fGetLatestHeight\x12*.event_provider_api.GetLatestHeightRequest\x1a+.event_provider_api.GetLatestHeightResponse\x12r\n\x11StreamBlockEvents\x12,.event_provider_api.StreamBlockEventsRequest\x1a-.event_provider_api.StreamBlockEventsResponse0\x01\x12p\n\x11GetBlockEventsRPC\x12,.event_provider_api.GetBlockEventsRPCRequest\x1a-.event_provider_api.GetBlockEventsRPCResponse\x12s\n\x12GetCustomEventsRPC\x12-.event_provider_api.GetCustomEventsRPCRequest\x1a..event_provider_api.GetCustomEventsRPCResponse\x12s\n\x12GetABCIBlockEvents\x12-.event_provider_api.GetABCIBlockEventsRequest\x1a..event_provider_api.GetABCIBlockEventsResponse\x12\x8b\x01\n\x1aGetABCIBlockEventsAtHeight\x12\x35.event_provider_api.GetABCIBlockEventsAtHeightRequest\x1a\x36.event_provider_api.GetABCIBlockEventsAtHeightResponseB\xa6\x01\n\x16\x63om.event_provider_apiB\x15\x45ventProviderApiProtoP\x01Z\x15/event_provider_apipb\xa2\x02\x03\x45XX\xaa\x02\x10\x45ventProviderApi\xca\x02\x10\x45ventProviderApi\xe2\x02\x1c\x45ventProviderApi\\GPBMetadata\xea\x02\x10\x45ventProviderApib\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,39 +29,43 @@ _globals['_GETLATESTHEIGHTRESPONSE']._serialized_start=83 _globals['_GETLATESTHEIGHTRESPONSE']._serialized_end=209 _globals['_LATESTBLOCKHEIGHT']._serialized_start=211 - _globals['_LATESTBLOCKHEIGHT']._serialized_end=254 - _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_start=256 - _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_end=332 - _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_start=334 - _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_end=412 - _globals['_BLOCK']._serialized_start=415 - _globals['_BLOCK']._serialized_end=553 - _globals['_BLOCKEVENT']._serialized_start=555 - _globals['_BLOCKEVENT']._serialized_end=641 - _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_start=643 - _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_end=719 - _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_start=721 - _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_end=846 - _globals['_BLOCKEVENTSRPC']._serialized_start=849 - _globals['_BLOCKEVENTSRPC']._serialized_end=1051 - _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_start=992 - _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_end=1051 - _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_start=1053 - _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_end=1154 - _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_start=1156 - _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_end=1282 - _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_start=1284 - _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_end=1368 - _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_start=1371 - _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_end=1500 - _globals['_RAWBLOCK']._serialized_start=1503 - _globals['_RAWBLOCK']._serialized_end=1835 - _globals['_ABCIRESPONSEDELIVERTX']._serialized_start=1838 - _globals['_ABCIRESPONSEDELIVERTX']._serialized_end=2087 - _globals['_ABCIEVENT']._serialized_start=2089 - _globals['_ABCIEVENT']._serialized_end=2187 - _globals['_ABCIATTRIBUTE']._serialized_start=2189 - _globals['_ABCIATTRIBUTE']._serialized_end=2244 - _globals['_EVENTPROVIDERAPI']._serialized_start=2247 - _globals['_EVENTPROVIDERAPI']._serialized_end=2837 + _globals['_LATESTBLOCKHEIGHT']._serialized_end=274 + _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_start=276 + _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_end=352 + _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_start=354 + _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_end=432 + _globals['_BLOCK']._serialized_start=435 + _globals['_BLOCK']._serialized_end=573 + _globals['_BLOCKEVENT']._serialized_start=575 + _globals['_BLOCKEVENT']._serialized_end=681 + _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_start=683 + _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_end=798 + _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_start=800 + _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_end=925 + _globals['_BLOCKEVENTSRPC']._serialized_start=928 + _globals['_BLOCKEVENTSRPC']._serialized_end=1130 + _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_start=1071 + _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_end=1130 + _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_start=1132 + _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_end=1233 + _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_start=1235 + _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_end=1361 + _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_start=1363 + _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_end=1447 + _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_start=1450 + _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_end=1579 + _globals['_RAWBLOCK']._serialized_start=1582 + _globals['_RAWBLOCK']._serialized_end=1914 + _globals['_ABCIRESPONSEDELIVERTX']._serialized_start=1917 + _globals['_ABCIRESPONSEDELIVERTX']._serialized_end=2166 + _globals['_ABCIEVENT']._serialized_start=2168 + _globals['_ABCIEVENT']._serialized_end=2266 + _globals['_ABCIATTRIBUTE']._serialized_start=2268 + _globals['_ABCIATTRIBUTE']._serialized_end=2323 + _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_start=2325 + _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_end=2384 + _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_start=2387 + _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_end=2524 + _globals['_EVENTPROVIDERAPI']._serialized_start=2527 + _globals['_EVENTPROVIDERAPI']._serialized_end=3259 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py b/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py index 7a17ca12..6ad6ad04 100644 --- a/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py +++ b/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py @@ -40,6 +40,11 @@ def __init__(self, channel): request_serializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsRequest.SerializeToString, response_deserializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsResponse.FromString, _registered_method=True) + self.GetABCIBlockEventsAtHeight = channel.unary_unary( + '/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight', + request_serializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightRequest.SerializeToString, + response_deserializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightResponse.FromString, + _registered_method=True) class EventProviderAPIServicer(object): @@ -81,6 +86,13 @@ def GetABCIBlockEvents(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetABCIBlockEventsAtHeight(self, request, context): + """Get all raw block events for selected height + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_EventProviderAPIServicer_to_server(servicer, server): rpc_method_handlers = { @@ -109,6 +121,11 @@ def add_EventProviderAPIServicer_to_server(servicer, server): request_deserializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsRequest.FromString, response_serializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsResponse.SerializeToString, ), + 'GetABCIBlockEventsAtHeight': grpc.unary_unary_rpc_method_handler( + servicer.GetABCIBlockEventsAtHeight, + request_deserializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightRequest.FromString, + response_serializer=exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'event_provider_api.EventProviderAPI', rpc_method_handlers) @@ -255,3 +272,30 @@ def GetABCIBlockEvents(request, timeout, metadata, _registered_method=True) + + @staticmethod + def GetABCIBlockEventsAtHeight(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, + '/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight', + exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightRequest.SerializeToString, + exchange_dot_event__provider__api__pb2.GetABCIBlockEventsAtHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/health_pb2.py b/pyinjective/proto/exchange/health_pb2.py index 3f98a12d..405bd7d9 100644 --- a/pyinjective/proto/exchange/health_pb2.py +++ b/pyinjective/proto/exchange/health_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x65xchange/health.proto\x12\x06\x61pi.v1\"\x12\n\x10GetStatusRequest\"{\n\x11GetStatusResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12(\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x14.api.v1.HealthStatusR\x04\x64\x61ta\x12\x16\n\x06status\x18\x04 \x01(\tR\x06status\"\xae\x01\n\x0cHealthStatus\x12!\n\x0clocal_height\x18\x01 \x01(\x11R\x0blocalHeight\x12\'\n\x0flocal_timestamp\x18\x02 \x01(\x11R\x0elocalTimestamp\x12%\n\x0ehoracle_height\x18\x03 \x01(\x11R\rhoracleHeight\x12+\n\x11horacle_timestamp\x18\x04 \x01(\x11R\x10horacleTimestamp2J\n\x06Health\x12@\n\tGetStatus\x12\x18.api.v1.GetStatusRequest\x1a\x19.api.v1.GetStatusResponseB]\n\ncom.api.v1B\x0bHealthProtoP\x01Z\t/api.v1pb\xa2\x02\x03\x41XX\xaa\x02\x06\x41pi.V1\xca\x02\x06\x41pi\\V1\xe2\x02\x12\x41pi\\V1\\GPBMetadata\xea\x02\x07\x41pi::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15\x65xchange/health.proto\x12\x06\x61pi.v1\"\x12\n\x10GetStatusRequest\"{\n\x11GetStatusResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12(\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x14.api.v1.HealthStatusR\x04\x64\x61ta\x12\x16\n\x06status\x18\x04 \x01(\tR\x06status\"\xa4\x02\n\x0cHealthStatus\x12!\n\x0clocal_height\x18\x01 \x01(\x11R\x0blocalHeight\x12\'\n\x0flocal_timestamp\x18\x02 \x01(\x11R\x0elocalTimestamp\x12%\n\x0ehoracle_height\x18\x03 \x01(\x11R\rhoracleHeight\x12+\n\x11horacle_timestamp\x18\x04 \x01(\x11R\x10horacleTimestamp\x12\x34\n\x16migration_last_version\x18\x05 \x01(\x11R\x14migrationLastVersion\x12\x1b\n\tep_height\x18\x06 \x01(\x11R\x08\x65pHeight\x12!\n\x0c\x65p_timestamp\x18\x07 \x01(\x11R\x0b\x65pTimestamp2J\n\x06Health\x12@\n\tGetStatus\x12\x18.api.v1.GetStatusRequest\x1a\x19.api.v1.GetStatusResponseB]\n\ncom.api.v1B\x0bHealthProtoP\x01Z\t/api.v1pb\xa2\x02\x03\x41XX\xaa\x02\x06\x41pi.V1\xca\x02\x06\x41pi\\V1\xe2\x02\x12\x41pi\\V1\\GPBMetadata\xea\x02\x07\x41pi::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,7 +27,7 @@ _globals['_GETSTATUSRESPONSE']._serialized_start=53 _globals['_GETSTATUSRESPONSE']._serialized_end=176 _globals['_HEALTHSTATUS']._serialized_start=179 - _globals['_HEALTHSTATUS']._serialized_end=353 - _globals['_HEALTH']._serialized_start=355 - _globals['_HEALTH']._serialized_end=429 + _globals['_HEALTHSTATUS']._serialized_end=471 + _globals['_HEALTH']._serialized_start=473 + _globals['_HEALTH']._serialized_end=547 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py index c393e7af..232fb9bd 100644 --- a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"e\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xdd\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xdd\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -46,74 +46,74 @@ _globals['_SUBACCOUNTBALANCESLISTRESPONSE']._serialized_end=1720 _globals['_SUBACCOUNTBALANCE']._serialized_start=1723 _globals['_SUBACCOUNTBALANCE']._serialized_end=1911 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1913 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2014 - _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_start=2016 - _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_end=2109 - _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_start=2111 - _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_end=2215 - _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_start=2217 - _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_end=2310 - _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_start=2313 - _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_end=2445 - _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_start=2448 - _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_end=2641 - _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_start=2644 - _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_end=2808 - _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_start=2811 - _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_end=3152 - _globals['_COSMOSCOIN']._serialized_start=3154 - _globals['_COSMOSCOIN']._serialized_end=3212 - _globals['_PAGING']._serialized_start=3215 - _globals['_PAGING']._serialized_end=3349 - _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_start=3352 - _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_end=3490 - _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_start=3493 - _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_end=3625 - _globals['_REWARDSREQUEST']._serialized_start=3627 - _globals['_REWARDSREQUEST']._serialized_end=3706 - _globals['_REWARDSRESPONSE']._serialized_start=3708 - _globals['_REWARDSRESPONSE']._serialized_end=3783 - _globals['_REWARD']._serialized_start=3786 - _globals['_REWARD']._serialized_end=3930 - _globals['_COIN']._serialized_start=3932 - _globals['_COIN']._serialized_end=3984 - _globals['_STREAMACCOUNTDATAREQUEST']._serialized_start=3986 - _globals['_STREAMACCOUNTDATAREQUEST']._serialized_end=4053 - _globals['_STREAMACCOUNTDATARESPONSE']._serialized_start=4056 - _globals['_STREAMACCOUNTDATARESPONSE']._serialized_end=4534 - _globals['_SUBACCOUNTBALANCERESULT']._serialized_start=4536 - _globals['_SUBACCOUNTBALANCERESULT']._serialized_end=4660 - _globals['_POSITIONSRESULT']._serialized_start=4662 - _globals['_POSITIONSRESULT']._serialized_end=4771 - _globals['_POSITION']._serialized_start=4774 - _globals['_POSITION']._serialized_end=5127 - _globals['_TRADERESULT']._serialized_start=5130 - _globals['_TRADERESULT']._serialized_end=5375 - _globals['_SPOTTRADE']._serialized_start=5378 - _globals['_SPOTTRADE']._serialized_end=5807 - _globals['_PRICELEVEL']._serialized_start=5809 - _globals['_PRICELEVEL']._serialized_end=5901 - _globals['_DERIVATIVETRADE']._serialized_start=5904 - _globals['_DERIVATIVETRADE']._serialized_end=6381 - _globals['_POSITIONDELTA']._serialized_start=6384 - _globals['_POSITIONDELTA']._serialized_end=6571 - _globals['_ORDERRESULT']._serialized_start=6574 - _globals['_ORDERRESULT']._serialized_end=6829 - _globals['_SPOTLIMITORDER']._serialized_start=6832 - _globals['_SPOTLIMITORDER']._serialized_end=7272 - _globals['_DERIVATIVELIMITORDER']._serialized_start=7275 - _globals['_DERIVATIVELIMITORDER']._serialized_end=8002 - _globals['_ORDERHISTORYRESULT']._serialized_start=8005 - _globals['_ORDERHISTORYRESULT']._serialized_end=8309 - _globals['_SPOTORDERHISTORY']._serialized_start=8312 - _globals['_SPOTORDERHISTORY']._serialized_end=8811 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8814 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9495 - _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9498 - _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9672 - _globals['_FUNDINGPAYMENT']._serialized_start=9675 - _globals['_FUNDINGPAYMENT']._serialized_end=9811 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9814 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11058 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1914 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2111 + _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_start=2113 + _globals['_SUBACCOUNTBALANCEENDPOINTREQUEST']._serialized_end=2206 + _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_start=2208 + _globals['_SUBACCOUNTBALANCEENDPOINTRESPONSE']._serialized_end=2312 + _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_start=2314 + _globals['_STREAMSUBACCOUNTBALANCEREQUEST']._serialized_end=2407 + _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_start=2410 + _globals['_STREAMSUBACCOUNTBALANCERESPONSE']._serialized_end=2542 + _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_start=2545 + _globals['_SUBACCOUNTHISTORYREQUEST']._serialized_end=2738 + _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_start=2741 + _globals['_SUBACCOUNTHISTORYRESPONSE']._serialized_end=2905 + _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_start=2908 + _globals['_SUBACCOUNTBALANCETRANSFER']._serialized_end=3249 + _globals['_COSMOSCOIN']._serialized_start=3251 + _globals['_COSMOSCOIN']._serialized_end=3309 + _globals['_PAGING']._serialized_start=3312 + _globals['_PAGING']._serialized_end=3446 + _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_start=3449 + _globals['_SUBACCOUNTORDERSUMMARYREQUEST']._serialized_end=3587 + _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_start=3590 + _globals['_SUBACCOUNTORDERSUMMARYRESPONSE']._serialized_end=3722 + _globals['_REWARDSREQUEST']._serialized_start=3724 + _globals['_REWARDSREQUEST']._serialized_end=3803 + _globals['_REWARDSRESPONSE']._serialized_start=3805 + _globals['_REWARDSRESPONSE']._serialized_end=3880 + _globals['_REWARD']._serialized_start=3883 + _globals['_REWARD']._serialized_end=4027 + _globals['_COIN']._serialized_start=4029 + _globals['_COIN']._serialized_end=4110 + _globals['_STREAMACCOUNTDATAREQUEST']._serialized_start=4112 + _globals['_STREAMACCOUNTDATAREQUEST']._serialized_end=4179 + _globals['_STREAMACCOUNTDATARESPONSE']._serialized_start=4182 + _globals['_STREAMACCOUNTDATARESPONSE']._serialized_end=4660 + _globals['_SUBACCOUNTBALANCERESULT']._serialized_start=4662 + _globals['_SUBACCOUNTBALANCERESULT']._serialized_end=4786 + _globals['_POSITIONSRESULT']._serialized_start=4788 + _globals['_POSITIONSRESULT']._serialized_end=4897 + _globals['_POSITION']._serialized_start=4900 + _globals['_POSITION']._serialized_end=5253 + _globals['_TRADERESULT']._serialized_start=5256 + _globals['_TRADERESULT']._serialized_end=5501 + _globals['_SPOTTRADE']._serialized_start=5504 + _globals['_SPOTTRADE']._serialized_end=5933 + _globals['_PRICELEVEL']._serialized_start=5935 + _globals['_PRICELEVEL']._serialized_end=6027 + _globals['_DERIVATIVETRADE']._serialized_start=6030 + _globals['_DERIVATIVETRADE']._serialized_end=6507 + _globals['_POSITIONDELTA']._serialized_start=6510 + _globals['_POSITIONDELTA']._serialized_end=6697 + _globals['_ORDERRESULT']._serialized_start=6700 + _globals['_ORDERRESULT']._serialized_end=6955 + _globals['_SPOTLIMITORDER']._serialized_start=6958 + _globals['_SPOTLIMITORDER']._serialized_end=7398 + _globals['_DERIVATIVELIMITORDER']._serialized_start=7401 + _globals['_DERIVATIVELIMITORDER']._serialized_end=8128 + _globals['_ORDERHISTORYRESULT']._serialized_start=8131 + _globals['_ORDERHISTORYRESULT']._serialized_end=8435 + _globals['_SPOTORDERHISTORY']._serialized_start=8438 + _globals['_SPOTORDERHISTORY']._serialized_end=8937 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8940 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9621 + _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9624 + _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9798 + _globals['_FUNDINGPAYMENT']._serialized_start=9801 + _globals['_FUNDINGPAYMENT']._serialized_end=9937 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9940 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11184 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py index 73c52b43..8ddf1bb1 100644 --- a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v2\xa1\x02\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"\x81\x01\n\x15PnlLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16PnlLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"h\n\x0eLeaderboardRow\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\x12\x12\n\x04rank\x18\x04 \x01(\x11R\x04rank\"\x81\x01\n\x15VolLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16VolLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$PnlLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%PnlLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$VolLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%VolLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"W\n\x13\x44\x65nomHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"z\n\x14\x44\x65nomHoldersResponse\x12\x38\n\x07holders\x18\x01 \x03(\x0b\x32\x1e.injective_archiver_rpc.HolderR\x07holders\x12\x12\n\x04next\x18\x02 \x03(\tR\x04next\x12\x14\n\x05total\x18\x03 \x01(\x11R\x05total\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"\xd8\x01\n\x17HistoricalTradesRequest\x12\x1d\n\nfrom_block\x18\x01 \x01(\x04R\tfromBlock\x12\x1b\n\tend_block\x18\x02 \x01(\x04R\x08\x65ndBlock\x12\x1b\n\tfrom_time\x18\x03 \x01(\x12R\x08\x66romTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x18\n\x07\x61\x63\x63ount\x18\x07 \x01(\tR\x07\x61\x63\x63ount\"\xad\x01\n\x18HistoricalTradesResponse\x12?\n\x06trades\x18\x01 \x03(\x0b\x32\'.injective_archiver_rpc.HistoricalTradeR\x06trades\x12\x1f\n\x0blast_height\x18\x02 \x01(\x04R\nlastHeight\x12\x1b\n\tlast_time\x18\x03 \x01(\x12R\x08lastTime\x12\x12\n\x04next\x18\x04 \x03(\tR\x04next\"\xe7\x03\n\x0fHistoricalTrade\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\'\n\x0ftrade_direction\x18\x04 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x05 \x01(\x0b\x32\".injective_archiver_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x06 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\x12\'\n\x0f\x65xecuted_height\x18\x08 \x01(\x04R\x0e\x65xecutedHeight\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12%\n\x0e\x65xecution_side\x18\n \x01(\tR\rexecutionSide\x12\x1b\n\tusd_value\x18\x0b \x01(\tR\x08usdValue\x12\x14\n\x05\x66lags\x18\x0c \x03(\tR\x05\x66lags\x12\x1f\n\x0bmarket_type\x18\r \x01(\tR\nmarketType\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xa3\x08\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponse\x12o\n\x0ePnlLeaderboard\x12-.injective_archiver_rpc.PnlLeaderboardRequest\x1a..injective_archiver_rpc.PnlLeaderboardResponse\x12o\n\x0eVolLeaderboard\x12-.injective_archiver_rpc.VolLeaderboardRequest\x1a..injective_archiver_rpc.VolLeaderboardResponse\x12\x9c\x01\n\x1dPnlLeaderboardFixedResolution\x12<.injective_archiver_rpc.PnlLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.PnlLeaderboardFixedResolutionResponse\x12\x9c\x01\n\x1dVolLeaderboardFixedResolution\x12<.injective_archiver_rpc.VolLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.VolLeaderboardFixedResolutionResponse\x12i\n\x0c\x44\x65nomHolders\x12+.injective_archiver_rpc.DenomHoldersRequest\x1a,.injective_archiver_rpc.DenomHoldersResponse\x12u\n\x10HistoricalTrades\x12/.injective_archiver_rpc.HistoricalTradesRequest\x1a\x30.injective_archiver_rpc.HistoricalTradesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,6 +40,38 @@ _globals['_VOLUMESRESPONSE']._serialized_end=698 _globals['_HISTORICALVOLUMES']._serialized_start=700 _globals['_HISTORICALVOLUMES']._serialized_end=747 - _globals['_INJECTIVEARCHIVERRPC']._serialized_start=750 - _globals['_INJECTIVEARCHIVERRPC']._serialized_end=1039 + _globals['_PNLLEADERBOARDREQUEST']._serialized_start=750 + _globals['_PNLLEADERBOARDREQUEST']._serialized_end=879 + _globals['_PNLLEADERBOARDRESPONSE']._serialized_start=882 + _globals['_PNLLEADERBOARDRESPONSE']._serialized_end=1105 + _globals['_LEADERBOARDROW']._serialized_start=1107 + _globals['_LEADERBOARDROW']._serialized_end=1211 + _globals['_VOLLEADERBOARDREQUEST']._serialized_start=1214 + _globals['_VOLLEADERBOARDREQUEST']._serialized_end=1343 + _globals['_VOLLEADERBOARDRESPONSE']._serialized_start=1346 + _globals['_VOLLEADERBOARDRESPONSE']._serialized_end=1569 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=1571 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=1689 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=1692 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=1930 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=1932 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=2050 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=2053 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=2291 + _globals['_DENOMHOLDERSREQUEST']._serialized_start=2293 + _globals['_DENOMHOLDERSREQUEST']._serialized_end=2380 + _globals['_DENOMHOLDERSRESPONSE']._serialized_start=2382 + _globals['_DENOMHOLDERSRESPONSE']._serialized_end=2504 + _globals['_HOLDER']._serialized_start=2506 + _globals['_HOLDER']._serialized_end=2581 + _globals['_HISTORICALTRADESREQUEST']._serialized_start=2584 + _globals['_HISTORICALTRADESREQUEST']._serialized_end=2800 + _globals['_HISTORICALTRADESRESPONSE']._serialized_start=2803 + _globals['_HISTORICALTRADESRESPONSE']._serialized_end=2976 + _globals['_HISTORICALTRADE']._serialized_start=2979 + _globals['_HISTORICALTRADE']._serialized_end=3466 + _globals['_PRICELEVEL']._serialized_start=3468 + _globals['_PRICELEVEL']._serialized_end=3560 + _globals['_INJECTIVEARCHIVERRPC']._serialized_start=3563 + _globals['_INJECTIVEARCHIVERRPC']._serialized_end=4622 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py index 5e23e919..dd904478 100644 --- a/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py @@ -30,6 +30,36 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__archiver__rpc__pb2.VolumesRequest.SerializeToString, response_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolumesResponse.FromString, _registered_method=True) + self.PnlLeaderboard = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/PnlLeaderboard', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardResponse.FromString, + _registered_method=True) + self.VolLeaderboard = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/VolLeaderboard', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardResponse.FromString, + _registered_method=True) + self.PnlLeaderboardFixedResolution = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/PnlLeaderboardFixedResolution', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionResponse.FromString, + _registered_method=True) + self.VolLeaderboardFixedResolution = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/VolLeaderboardFixedResolution', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionResponse.FromString, + _registered_method=True) + self.DenomHolders = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/DenomHolders', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.DenomHoldersRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.DenomHoldersResponse.FromString, + _registered_method=True) + self.HistoricalTrades = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/HistoricalTrades', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesResponse.FromString, + _registered_method=True) class InjectiveArchiverRPCServicer(object): @@ -57,6 +87,48 @@ def Volumes(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def PnlLeaderboard(self, request, context): + """Provide pnl leaderboard data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def VolLeaderboard(self, request, context): + """Provide volume leaderboard data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PnlLeaderboardFixedResolution(self, request, context): + """Provide pnl leaderboard data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def VolLeaderboardFixedResolution(self, request, context): + """Provide volume leaderboard data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomHolders(self, request, context): + """Provide a list of addresses holding a specific denom + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def HistoricalTrades(self, request, context): + """Provide historical trades data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveArchiverRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -75,6 +147,36 @@ def add_InjectiveArchiverRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolumesRequest.FromString, response_serializer=exchange_dot_injective__archiver__rpc__pb2.VolumesResponse.SerializeToString, ), + 'PnlLeaderboard': grpc.unary_unary_rpc_method_handler( + servicer.PnlLeaderboard, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardResponse.SerializeToString, + ), + 'VolLeaderboard': grpc.unary_unary_rpc_method_handler( + servicer.VolLeaderboard, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardResponse.SerializeToString, + ), + 'PnlLeaderboardFixedResolution': grpc.unary_unary_rpc_method_handler( + servicer.PnlLeaderboardFixedResolution, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionResponse.SerializeToString, + ), + 'VolLeaderboardFixedResolution': grpc.unary_unary_rpc_method_handler( + servicer.VolLeaderboardFixedResolution, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionResponse.SerializeToString, + ), + 'DenomHolders': grpc.unary_unary_rpc_method_handler( + servicer.DenomHolders, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.DenomHoldersRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.DenomHoldersResponse.SerializeToString, + ), + 'HistoricalTrades': grpc.unary_unary_rpc_method_handler( + servicer.HistoricalTrades, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_archiver_rpc.InjectiveArchiverRPC', rpc_method_handlers) @@ -167,3 +269,165 @@ def Volumes(request, timeout, metadata, _registered_method=True) + + @staticmethod + def PnlLeaderboard(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_archiver_rpc.InjectiveArchiverRPC/PnlLeaderboard', + exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def VolLeaderboard(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_archiver_rpc.InjectiveArchiverRPC/VolLeaderboard', + exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PnlLeaderboardFixedResolution(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_archiver_rpc.InjectiveArchiverRPC/PnlLeaderboardFixedResolution', + exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.PnlLeaderboardFixedResolutionResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def VolLeaderboardFixedResolution(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_archiver_rpc.InjectiveArchiverRPC/VolLeaderboardFixedResolution', + exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.VolLeaderboardFixedResolutionResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomHolders(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_archiver_rpc.InjectiveArchiverRPC/DenomHolders', + exchange_dot_injective__archiver__rpc__pb2.DenomHoldersRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.DenomHoldersResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def HistoricalTrades(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_archiver_rpc.InjectiveArchiverRPC/HistoricalTrades', + exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.HistoricalTradesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_auction_rpc_pb2.py b/pyinjective/proto/exchange/injective_auction_rpc_pb2.py index 0ec3dabb..ca07f0bc 100644 --- a/pyinjective/proto/exchange/injective_auction_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_auction_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_auction_rpc.proto\x12\x15injective_auction_rpc\".\n\x16\x41uctionEndpointRequest\x12\x14\n\x05round\x18\x01 \x01(\x12R\x05round\"\x83\x01\n\x17\x41uctionEndpointResponse\x12\x38\n\x07\x61uction\x18\x01 \x01(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x07\x61uction\x12.\n\x04\x62ids\x18\x02 \x03(\x0b\x32\x1a.injective_auction_rpc.BidR\x04\x62ids\"\xde\x01\n\x07\x41uction\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x33\n\x06\x62\x61sket\x18\x02 \x03(\x0b\x32\x1b.injective_auction_rpc.CoinR\x06\x62\x61sket\x12,\n\x12winning_bid_amount\x18\x03 \x01(\tR\x10winningBidAmount\x12\x14\n\x05round\x18\x04 \x01(\x04R\x05round\x12#\n\rend_timestamp\x18\x05 \x01(\x12R\x0c\x65ndTimestamp\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"S\n\x03\x42id\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x11\n\x0f\x41uctionsRequest\"N\n\x10\x41uctionsResponse\x12:\n\x08\x61uctions\x18\x01 \x03(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x08\x61uctions\"\x13\n\x11StreamBidsRequest\"\x7f\n\x12StreamBidsResponse\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x1d\n\nbid_amount\x18\x02 \x01(\tR\tbidAmount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xc9\x02\n\x13InjectiveAuctionRPC\x12p\n\x0f\x41uctionEndpoint\x12-.injective_auction_rpc.AuctionEndpointRequest\x1a..injective_auction_rpc.AuctionEndpointResponse\x12[\n\x08\x41uctions\x12&.injective_auction_rpc.AuctionsRequest\x1a\'.injective_auction_rpc.AuctionsResponse\x12\x63\n\nStreamBids\x12(.injective_auction_rpc.StreamBidsRequest\x1a).injective_auction_rpc.StreamBidsResponse0\x01\x42\xbb\x01\n\x19\x63om.injective_auction_rpcB\x18InjectiveAuctionRpcProtoP\x01Z\x18/injective_auction_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveAuctionRpc\xca\x02\x13InjectiveAuctionRpc\xe2\x02\x1fInjectiveAuctionRpc\\GPBMetadata\xea\x02\x13InjectiveAuctionRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_auction_rpc.proto\x12\x15injective_auction_rpc\".\n\x16\x41uctionEndpointRequest\x12\x14\n\x05round\x18\x01 \x01(\x12R\x05round\"\x83\x01\n\x17\x41uctionEndpointResponse\x12\x38\n\x07\x61uction\x18\x01 \x01(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x07\x61uction\x12.\n\x04\x62ids\x18\x02 \x03(\x0b\x32\x1a.injective_auction_rpc.BidR\x04\x62ids\"\xde\x01\n\x07\x41uction\x12\x16\n\x06winner\x18\x01 \x01(\tR\x06winner\x12\x33\n\x06\x62\x61sket\x18\x02 \x03(\x0b\x32\x1b.injective_auction_rpc.CoinR\x06\x62\x61sket\x12,\n\x12winning_bid_amount\x18\x03 \x01(\tR\x10winningBidAmount\x12\x14\n\x05round\x18\x04 \x01(\x04R\x05round\x12#\n\rend_timestamp\x18\x05 \x01(\x12R\x0c\x65ndTimestamp\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"S\n\x03\x42id\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x11\n\x0f\x41uctionsRequest\"N\n\x10\x41uctionsResponse\x12:\n\x08\x61uctions\x18\x01 \x03(\x0b\x32\x1e.injective_auction_rpc.AuctionR\x08\x61uctions\"\x13\n\x11StreamBidsRequest\"\x7f\n\x12StreamBidsResponse\x12\x16\n\x06\x62idder\x18\x01 \x01(\tR\x06\x62idder\x12\x1d\n\nbid_amount\x18\x02 \x01(\tR\tbidAmount\x12\x14\n\x05round\x18\x03 \x01(\x04R\x05round\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x19\n\x17InjBurntEndpointRequest\"B\n\x18InjBurntEndpointResponse\x12&\n\x0ftotal_inj_burnt\x18\x01 \x01(\tR\rtotalInjBurnt2\xbe\x03\n\x13InjectiveAuctionRPC\x12p\n\x0f\x41uctionEndpoint\x12-.injective_auction_rpc.AuctionEndpointRequest\x1a..injective_auction_rpc.AuctionEndpointResponse\x12[\n\x08\x41uctions\x12&.injective_auction_rpc.AuctionsRequest\x1a\'.injective_auction_rpc.AuctionsResponse\x12\x63\n\nStreamBids\x12(.injective_auction_rpc.StreamBidsRequest\x1a).injective_auction_rpc.StreamBidsResponse0\x01\x12s\n\x10InjBurntEndpoint\x12..injective_auction_rpc.InjBurntEndpointRequest\x1a/.injective_auction_rpc.InjBurntEndpointResponseB\xbb\x01\n\x19\x63om.injective_auction_rpcB\x18InjectiveAuctionRpcProtoP\x01Z\x18/injective_auction_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveAuctionRpc\xca\x02\x13InjectiveAuctionRpc\xe2\x02\x1fInjectiveAuctionRpc\\GPBMetadata\xea\x02\x13InjectiveAuctionRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,17 +29,21 @@ _globals['_AUCTION']._serialized_start=246 _globals['_AUCTION']._serialized_end=468 _globals['_COIN']._serialized_start=470 - _globals['_COIN']._serialized_end=522 - _globals['_BID']._serialized_start=524 - _globals['_BID']._serialized_end=607 - _globals['_AUCTIONSREQUEST']._serialized_start=609 - _globals['_AUCTIONSREQUEST']._serialized_end=626 - _globals['_AUCTIONSRESPONSE']._serialized_start=628 - _globals['_AUCTIONSRESPONSE']._serialized_end=706 - _globals['_STREAMBIDSREQUEST']._serialized_start=708 - _globals['_STREAMBIDSREQUEST']._serialized_end=727 - _globals['_STREAMBIDSRESPONSE']._serialized_start=729 - _globals['_STREAMBIDSRESPONSE']._serialized_end=856 - _globals['_INJECTIVEAUCTIONRPC']._serialized_start=859 - _globals['_INJECTIVEAUCTIONRPC']._serialized_end=1188 + _globals['_COIN']._serialized_end=551 + _globals['_BID']._serialized_start=553 + _globals['_BID']._serialized_end=636 + _globals['_AUCTIONSREQUEST']._serialized_start=638 + _globals['_AUCTIONSREQUEST']._serialized_end=655 + _globals['_AUCTIONSRESPONSE']._serialized_start=657 + _globals['_AUCTIONSRESPONSE']._serialized_end=735 + _globals['_STREAMBIDSREQUEST']._serialized_start=737 + _globals['_STREAMBIDSREQUEST']._serialized_end=756 + _globals['_STREAMBIDSRESPONSE']._serialized_start=758 + _globals['_STREAMBIDSRESPONSE']._serialized_end=885 + _globals['_INJBURNTENDPOINTREQUEST']._serialized_start=887 + _globals['_INJBURNTENDPOINTREQUEST']._serialized_end=912 + _globals['_INJBURNTENDPOINTRESPONSE']._serialized_start=914 + _globals['_INJBURNTENDPOINTRESPONSE']._serialized_end=980 + _globals['_INJECTIVEAUCTIONRPC']._serialized_start=983 + _globals['_INJECTIVEAUCTIONRPC']._serialized_end=1429 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_auction_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_auction_rpc_pb2_grpc.py index d2492e84..9e0bc35b 100644 --- a/pyinjective/proto/exchange/injective_auction_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_auction_rpc_pb2_grpc.py @@ -30,6 +30,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__auction__rpc__pb2.StreamBidsRequest.SerializeToString, response_deserializer=exchange_dot_injective__auction__rpc__pb2.StreamBidsResponse.FromString, _registered_method=True) + self.InjBurntEndpoint = channel.unary_unary( + '/injective_auction_rpc.InjectiveAuctionRPC/InjBurntEndpoint', + request_serializer=exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointRequest.SerializeToString, + response_deserializer=exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointResponse.FromString, + _registered_method=True) class InjectiveAuctionRPCServicer(object): @@ -57,6 +62,13 @@ def StreamBids(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def InjBurntEndpoint(self, request, context): + """InjBurntEndpoint returns the total amount of INJ burnt in auctions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveAuctionRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -75,6 +87,11 @@ def add_InjectiveAuctionRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__auction__rpc__pb2.StreamBidsRequest.FromString, response_serializer=exchange_dot_injective__auction__rpc__pb2.StreamBidsResponse.SerializeToString, ), + 'InjBurntEndpoint': grpc.unary_unary_rpc_method_handler( + servicer.InjBurntEndpoint, + request_deserializer=exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointRequest.FromString, + response_serializer=exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_auction_rpc.InjectiveAuctionRPC', rpc_method_handlers) @@ -167,3 +184,30 @@ def StreamBids(request, timeout, metadata, _registered_method=True) + + @staticmethod + def InjBurntEndpoint(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_auction_rpc.InjectiveAuctionRPC/InjBurntEndpoint', + exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointRequest.SerializeToString, + exchange_dot_injective__auction__rpc__pb2.InjBurntEndpointResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py b/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py index 05bc4062..db68a320 100644 --- a/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_campaign_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_campaign_rpc.proto\x12\x16injective_campaign_rpc\"\xcc\x01\n\x0eRankingRequest\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\"\xc3\x01\n\x0fRankingResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32 .injective_campaign_rpc.CampaignR\x08\x63\x61mpaign\x12:\n\x05users\x18\x02 \x03(\x0b\x32$.injective_campaign_rpc.CampaignUserR\x05users\x12\x36\n\x06paging\x18\x03 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\"\xb2\x04\n\x08\x43\x61mpaign\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12!\n\x0clast_updated\x18\x05 \x01(\x12R\x0blastUpdated\x12\x1d\n\nstart_date\x18\x06 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x07 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\x08 \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\t \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\n \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x1d\n\nuser_score\x18\x0c \x01(\tR\tuserScore\x12!\n\x0cuser_claimed\x18\r \x01(\x08R\x0buserClaimed\x12\x30\n\x14subaccount_id_suffix\x18\x0e \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0f \x01(\tR\x0erewardContract\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04type\x18\x11 \x01(\tR\x04type\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xef\x02\n\x0c\x43\x61mpaignUser\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05score\x18\x04 \x01(\tR\x05score\x12)\n\x10\x63ontract_updated\x18\x05 \x01(\x08R\x0f\x63ontractUpdated\x12!\n\x0c\x62lock_height\x18\x06 \x01(\x12R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x07 \x01(\x12R\tblockTime\x12)\n\x10purchased_amount\x18\x08 \x01(\tR\x0fpurchasedAmount\x12#\n\rgalxe_updated\x18\t \x01(\x08R\x0cgalxeUpdated\x12%\n\x0ereward_claimed\x18\n \x01(\x08R\rrewardClaimed\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xb5\x01\n\x10\x43\x61mpaignsRequest\x12\x19\n\x08round_id\x18\x01 \x01(\x12R\x07roundId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x1e\n\x0bto_round_id\x18\x03 \x01(\x11R\ttoRoundId\x12)\n\x10\x63ontract_address\x18\x04 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\"\xc5\x01\n\x11\x43\x61mpaignsResponse\x12>\n\tcampaigns\x18\x01 \x03(\x0b\x32 .injective_campaign_rpc.CampaignR\tcampaigns\x12M\n\x13\x61\x63\x63umulated_rewards\x18\x02 \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x12\x61\x63\x63umulatedRewards\x12!\n\x0creward_count\x18\x03 \x01(\x11R\x0brewardCount\"n\n\x12\x43\x61mpaignsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x16\n\x06\x63ursor\x18\x04 \x01(\tR\x06\x63ursor\"o\n\x13\x43\x61mpaignsV2Response\x12@\n\tcampaigns\x18\x01 \x03(\x0b\x32\".injective_campaign_rpc.CampaignV2R\tcampaigns\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\"\xc3\x04\n\nCampaignV2\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12\x1d\n\ncreated_at\x18\x05 \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\x12\x1d\n\nstart_date\x18\x07 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x08 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\t \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\n \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\x0b \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0c \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x30\n\x14subaccount_id_suffix\x18\r \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0e \x01(\tR\x0erewardContract\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04name\x18\x11 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x12 \x01(\tR\x0b\x64\x65scription\"\x83\x01\n\x11ListGuildsRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x17\n\x07sort_by\x18\x04 \x01(\tR\x06sortBy\"\xf6\x01\n\x12ListGuildsResponse\x12\x35\n\x06guilds\x18\x01 \x03(\x0b\x32\x1d.injective_campaign_rpc.GuildR\x06guilds\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12\x1d\n\nupdated_at\x18\x03 \x01(\x12R\tupdatedAt\x12R\n\x10\x63\x61mpaign_summary\x18\x04 \x01(\x0b\x32\'.injective_campaign_rpc.CampaignSummaryR\x0f\x63\x61mpaignSummary\"\xe5\x03\n\x05Guild\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12%\n\x0emaster_address\x18\x03 \x01(\tR\rmasterAddress\x12\x1d\n\ncreated_at\x18\x04 \x01(\x12R\tcreatedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12$\n\x0erank_by_volume\x18\x07 \x01(\x11R\x0crankByVolume\x12\x1e\n\x0brank_by_tvl\x18\x08 \x01(\x11R\trankByTvl\x12\x12\n\x04logo\x18\t \x01(\tR\x04logo\x12\x1b\n\ttotal_tvl\x18\n \x01(\tR\x08totalTvl\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x12\n\x04name\x18\x0e \x01(\tR\x04name\x12\x1b\n\tis_active\x18\r \x01(\x08R\x08isActive\x12%\n\x0emaster_balance\x18\x0f \x01(\tR\rmasterBalance\x12 \n\x0b\x64\x65scription\x18\x10 \x01(\tR\x0b\x64\x65scription\"\x82\x03\n\x0f\x43\x61mpaignSummary\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12+\n\x11\x63\x61mpaign_contract\x18\x02 \x01(\tR\x10\x63\x61mpaignContract\x12,\n\x12total_guilds_count\x18\x03 \x01(\x11R\x10totalGuildsCount\x12\x1b\n\ttotal_tvl\x18\x04 \x01(\tR\x08totalTvl\x12*\n\x11total_average_tvl\x18\x05 \x01(\tR\x0ftotalAverageTvl\x12!\n\x0ctotal_volume\x18\x06 \x01(\tR\x0btotalVolume\x12\x1d\n\nupdated_at\x18\x07 \x01(\x12R\tupdatedAt\x12.\n\x13total_members_count\x18\x08 \x01(\x11R\x11totalMembersCount\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\"\xd2\x01\n\x17ListGuildMembersRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x11R\x04skip\x12,\n\x12include_guild_info\x18\x05 \x01(\x08R\x10includeGuildInfo\x12\x17\n\x07sort_by\x18\x06 \x01(\tR\x06sortBy\"\xcf\x01\n\x18ListGuildMembersResponse\x12=\n\x07members\x18\x01 \x03(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x07members\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12<\n\nguild_info\x18\x03 \x01(\x0b\x32\x1d.injective_campaign_rpc.GuildR\tguildInfo\"\xd3\x03\n\x0bGuildMember\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x1b\n\tjoined_at\x18\x04 \x01(\x12R\x08joinedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12\x1b\n\ttotal_tvl\x18\x07 \x01(\tR\x08totalTvl\x12\x36\n\x17volume_score_percentage\x18\x08 \x01(\x01R\x15volumeScorePercentage\x12\x30\n\x14tvl_score_percentage\x18\t \x01(\x01R\x12tvlScorePercentage\x12;\n\ntvl_reward\x18\n \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\ttvlReward\x12\x41\n\rvolume_reward\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x0cvolumeReward\"^\n\x15GetGuildMemberRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"Q\n\x16GetGuildMemberResponse\x12\x37\n\x04info\x18\x01 \x01(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x04info2\x89\x05\n\x14InjectiveCampaignRPC\x12Z\n\x07Ranking\x12&.injective_campaign_rpc.RankingRequest\x1a\'.injective_campaign_rpc.RankingResponse\x12`\n\tCampaigns\x12(.injective_campaign_rpc.CampaignsRequest\x1a).injective_campaign_rpc.CampaignsResponse\x12\x66\n\x0b\x43\x61mpaignsV2\x12*.injective_campaign_rpc.CampaignsV2Request\x1a+.injective_campaign_rpc.CampaignsV2Response\x12\x63\n\nListGuilds\x12).injective_campaign_rpc.ListGuildsRequest\x1a*.injective_campaign_rpc.ListGuildsResponse\x12u\n\x10ListGuildMembers\x12/.injective_campaign_rpc.ListGuildMembersRequest\x1a\x30.injective_campaign_rpc.ListGuildMembersResponse\x12o\n\x0eGetGuildMember\x12-.injective_campaign_rpc.GetGuildMemberRequest\x1a..injective_campaign_rpc.GetGuildMemberResponseB\xc2\x01\n\x1a\x63om.injective_campaign_rpcB\x19InjectiveCampaignRpcProtoP\x01Z\x19/injective_campaign_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveCampaignRpc\xca\x02\x14InjectiveCampaignRpc\xe2\x02 InjectiveCampaignRpc\\GPBMetadata\xea\x02\x14InjectiveCampaignRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_campaign_rpc.proto\x12\x16injective_campaign_rpc\"\xcc\x01\n\x0eRankingRequest\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\"\xc3\x01\n\x0fRankingResponse\x12<\n\x08\x63\x61mpaign\x18\x01 \x01(\x0b\x32 .injective_campaign_rpc.CampaignR\x08\x63\x61mpaign\x12:\n\x05users\x18\x02 \x03(\x0b\x32$.injective_campaign_rpc.CampaignUserR\x05users\x12\x36\n\x06paging\x18\x03 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\"\xb2\x04\n\x08\x43\x61mpaign\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12!\n\x0clast_updated\x18\x05 \x01(\x12R\x0blastUpdated\x12\x1d\n\nstart_date\x18\x06 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x07 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\x08 \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\t \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\n \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x1d\n\nuser_score\x18\x0c \x01(\tR\tuserScore\x12!\n\x0cuser_claimed\x18\r \x01(\x08R\x0buserClaimed\x12\x30\n\x14subaccount_id_suffix\x18\x0e \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0f \x01(\tR\x0erewardContract\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04type\x18\x11 \x01(\tR\x04type\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\xef\x02\n\x0c\x43\x61mpaignUser\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x03 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05score\x18\x04 \x01(\tR\x05score\x12)\n\x10\x63ontract_updated\x18\x05 \x01(\x08R\x0f\x63ontractUpdated\x12!\n\x0c\x62lock_height\x18\x06 \x01(\x12R\x0b\x62lockHeight\x12\x1d\n\nblock_time\x18\x07 \x01(\x12R\tblockTime\x12)\n\x10purchased_amount\x18\x08 \x01(\tR\x0fpurchasedAmount\x12#\n\rgalxe_updated\x18\t \x01(\x08R\x0cgalxeUpdated\x12%\n\x0ereward_claimed\x18\n \x01(\x08R\rrewardClaimed\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xb5\x01\n\x10\x43\x61mpaignsRequest\x12\x19\n\x08round_id\x18\x01 \x01(\x12R\x07roundId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x1e\n\x0bto_round_id\x18\x03 \x01(\x11R\ttoRoundId\x12)\n\x10\x63ontract_address\x18\x04 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\"\xc5\x01\n\x11\x43\x61mpaignsResponse\x12>\n\tcampaigns\x18\x01 \x03(\x0b\x32 .injective_campaign_rpc.CampaignR\tcampaigns\x12M\n\x13\x61\x63\x63umulated_rewards\x18\x02 \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x12\x61\x63\x63umulatedRewards\x12!\n\x0creward_count\x18\x03 \x01(\x11R\x0brewardCount\"\x96\x02\n\x12\x43\x61mpaignsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x16\n\x06\x63ursor\x18\x04 \x01(\tR\x06\x63ursor\x12&\n\x0f\x66rom_start_date\x18\x05 \x01(\x12R\rfromStartDate\x12\"\n\rto_start_date\x18\x06 \x01(\x12R\x0btoStartDate\x12\"\n\rfrom_end_date\x18\x07 \x01(\x12R\x0b\x66romEndDate\x12\x1e\n\x0bto_end_date\x18\x08 \x01(\x12R\ttoEndDate\x12\x16\n\x06status\x18\t \x01(\tR\x06status\"o\n\x13\x43\x61mpaignsV2Response\x12@\n\tcampaigns\x18\x01 \x03(\x0b\x32\".injective_campaign_rpc.CampaignV2R\tcampaigns\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\"\xc3\x04\n\nCampaignV2\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0btotal_score\x18\x04 \x01(\tR\ntotalScore\x12\x1d\n\ncreated_at\x18\x05 \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\x12\x1d\n\nstart_date\x18\x07 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x08 \x01(\x12R\x07\x65ndDate\x12!\n\x0cis_claimable\x18\t \x01(\x08R\x0bisClaimable\x12\x19\n\x08round_id\x18\n \x01(\x11R\x07roundId\x12)\n\x10manager_contract\x18\x0b \x01(\tR\x0fmanagerContract\x12\x36\n\x07rewards\x18\x0c \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x07rewards\x12\x30\n\x14subaccount_id_suffix\x18\r \x01(\tR\x12subaccountIdSuffix\x12\'\n\x0freward_contract\x18\x0e \x01(\tR\x0erewardContract\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12\x18\n\x07version\x18\x10 \x01(\tR\x07version\x12\x12\n\x04name\x18\x11 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x12 \x01(\tR\x0b\x64\x65scription\"\x83\x01\n\x11ListGuildsRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x17\n\x07sort_by\x18\x04 \x01(\tR\x06sortBy\"\xf6\x01\n\x12ListGuildsResponse\x12\x35\n\x06guilds\x18\x01 \x03(\x0b\x32\x1d.injective_campaign_rpc.GuildR\x06guilds\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12\x1d\n\nupdated_at\x18\x03 \x01(\x12R\tupdatedAt\x12R\n\x10\x63\x61mpaign_summary\x18\x04 \x01(\x0b\x32\'.injective_campaign_rpc.CampaignSummaryR\x0f\x63\x61mpaignSummary\"\xe5\x03\n\x05Guild\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12%\n\x0emaster_address\x18\x03 \x01(\tR\rmasterAddress\x12\x1d\n\ncreated_at\x18\x04 \x01(\x12R\tcreatedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12$\n\x0erank_by_volume\x18\x07 \x01(\x11R\x0crankByVolume\x12\x1e\n\x0brank_by_tvl\x18\x08 \x01(\x11R\trankByTvl\x12\x12\n\x04logo\x18\t \x01(\tR\x04logo\x12\x1b\n\ttotal_tvl\x18\n \x01(\tR\x08totalTvl\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x12\n\x04name\x18\x0e \x01(\tR\x04name\x12\x1b\n\tis_active\x18\r \x01(\x08R\x08isActive\x12%\n\x0emaster_balance\x18\x0f \x01(\tR\rmasterBalance\x12 \n\x0b\x64\x65scription\x18\x10 \x01(\tR\x0b\x64\x65scription\"\x82\x03\n\x0f\x43\x61mpaignSummary\x12\x1f\n\x0b\x63\x61mpaign_id\x18\x01 \x01(\tR\ncampaignId\x12+\n\x11\x63\x61mpaign_contract\x18\x02 \x01(\tR\x10\x63\x61mpaignContract\x12,\n\x12total_guilds_count\x18\x03 \x01(\x11R\x10totalGuildsCount\x12\x1b\n\ttotal_tvl\x18\x04 \x01(\tR\x08totalTvl\x12*\n\x11total_average_tvl\x18\x05 \x01(\tR\x0ftotalAverageTvl\x12!\n\x0ctotal_volume\x18\x06 \x01(\tR\x0btotalVolume\x12\x1d\n\nupdated_at\x18\x07 \x01(\x12R\tupdatedAt\x12.\n\x13total_members_count\x18\x08 \x01(\x11R\x11totalMembersCount\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\"\xd2\x01\n\x17ListGuildMembersRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x11R\x04skip\x12,\n\x12include_guild_info\x18\x05 \x01(\x08R\x10includeGuildInfo\x12\x17\n\x07sort_by\x18\x06 \x01(\tR\x06sortBy\"\xcf\x01\n\x18ListGuildMembersResponse\x12=\n\x07members\x18\x01 \x03(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x07members\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_campaign_rpc.PagingR\x06paging\x12<\n\nguild_info\x18\x03 \x01(\x0b\x32\x1d.injective_campaign_rpc.GuildR\tguildInfo\"\xd3\x03\n\x0bGuildMember\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x19\n\x08guild_id\x18\x02 \x01(\tR\x07guildId\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x1b\n\tjoined_at\x18\x04 \x01(\x12R\x08joinedAt\x12\x1b\n\ttvl_score\x18\x05 \x01(\tR\x08tvlScore\x12!\n\x0cvolume_score\x18\x06 \x01(\tR\x0bvolumeScore\x12\x1b\n\ttotal_tvl\x18\x07 \x01(\tR\x08totalTvl\x12\x36\n\x17volume_score_percentage\x18\x08 \x01(\x01R\x15volumeScorePercentage\x12\x30\n\x14tvl_score_percentage\x18\t \x01(\x01R\x12tvlScorePercentage\x12;\n\ntvl_reward\x18\n \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\ttvlReward\x12\x41\n\rvolume_reward\x18\x0b \x03(\x0b\x32\x1c.injective_campaign_rpc.CoinR\x0cvolumeReward\"^\n\x15GetGuildMemberRequest\x12+\n\x11\x63\x61mpaign_contract\x18\x01 \x01(\tR\x10\x63\x61mpaignContract\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"Q\n\x16GetGuildMemberResponse\x12\x37\n\x04info\x18\x01 \x01(\x0b\x32#.injective_campaign_rpc.GuildMemberR\x04info2\x89\x05\n\x14InjectiveCampaignRPC\x12Z\n\x07Ranking\x12&.injective_campaign_rpc.RankingRequest\x1a\'.injective_campaign_rpc.RankingResponse\x12`\n\tCampaigns\x12(.injective_campaign_rpc.CampaignsRequest\x1a).injective_campaign_rpc.CampaignsResponse\x12\x66\n\x0b\x43\x61mpaignsV2\x12*.injective_campaign_rpc.CampaignsV2Request\x1a+.injective_campaign_rpc.CampaignsV2Response\x12\x63\n\nListGuilds\x12).injective_campaign_rpc.ListGuildsRequest\x1a*.injective_campaign_rpc.ListGuildsResponse\x12u\n\x10ListGuildMembers\x12/.injective_campaign_rpc.ListGuildMembersRequest\x1a\x30.injective_campaign_rpc.ListGuildMembersResponse\x12o\n\x0eGetGuildMember\x12-.injective_campaign_rpc.GetGuildMemberRequest\x1a..injective_campaign_rpc.GetGuildMemberResponseB\xc2\x01\n\x1a\x63om.injective_campaign_rpcB\x19InjectiveCampaignRpcProtoP\x01Z\x19/injective_campaign_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveCampaignRpc\xca\x02\x14InjectiveCampaignRpc\xe2\x02 InjectiveCampaignRpc\\GPBMetadata\xea\x02\x14InjectiveCampaignRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,39 +29,39 @@ _globals['_CAMPAIGN']._serialized_start=471 _globals['_CAMPAIGN']._serialized_end=1033 _globals['_COIN']._serialized_start=1035 - _globals['_COIN']._serialized_end=1087 - _globals['_CAMPAIGNUSER']._serialized_start=1090 - _globals['_CAMPAIGNUSER']._serialized_end=1457 - _globals['_PAGING']._serialized_start=1460 - _globals['_PAGING']._serialized_end=1594 - _globals['_CAMPAIGNSREQUEST']._serialized_start=1597 - _globals['_CAMPAIGNSREQUEST']._serialized_end=1778 - _globals['_CAMPAIGNSRESPONSE']._serialized_start=1781 - _globals['_CAMPAIGNSRESPONSE']._serialized_end=1978 - _globals['_CAMPAIGNSV2REQUEST']._serialized_start=1980 - _globals['_CAMPAIGNSV2REQUEST']._serialized_end=2090 - _globals['_CAMPAIGNSV2RESPONSE']._serialized_start=2092 - _globals['_CAMPAIGNSV2RESPONSE']._serialized_end=2203 - _globals['_CAMPAIGNV2']._serialized_start=2206 - _globals['_CAMPAIGNV2']._serialized_end=2785 - _globals['_LISTGUILDSREQUEST']._serialized_start=2788 - _globals['_LISTGUILDSREQUEST']._serialized_end=2919 - _globals['_LISTGUILDSRESPONSE']._serialized_start=2922 - _globals['_LISTGUILDSRESPONSE']._serialized_end=3168 - _globals['_GUILD']._serialized_start=3171 - _globals['_GUILD']._serialized_end=3656 - _globals['_CAMPAIGNSUMMARY']._serialized_start=3659 - _globals['_CAMPAIGNSUMMARY']._serialized_end=4045 - _globals['_LISTGUILDMEMBERSREQUEST']._serialized_start=4048 - _globals['_LISTGUILDMEMBERSREQUEST']._serialized_end=4258 - _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_start=4261 - _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_end=4468 - _globals['_GUILDMEMBER']._serialized_start=4471 - _globals['_GUILDMEMBER']._serialized_end=4938 - _globals['_GETGUILDMEMBERREQUEST']._serialized_start=4940 - _globals['_GETGUILDMEMBERREQUEST']._serialized_end=5034 - _globals['_GETGUILDMEMBERRESPONSE']._serialized_start=5036 - _globals['_GETGUILDMEMBERRESPONSE']._serialized_end=5117 - _globals['_INJECTIVECAMPAIGNRPC']._serialized_start=5120 - _globals['_INJECTIVECAMPAIGNRPC']._serialized_end=5769 + _globals['_COIN']._serialized_end=1116 + _globals['_CAMPAIGNUSER']._serialized_start=1119 + _globals['_CAMPAIGNUSER']._serialized_end=1486 + _globals['_PAGING']._serialized_start=1489 + _globals['_PAGING']._serialized_end=1623 + _globals['_CAMPAIGNSREQUEST']._serialized_start=1626 + _globals['_CAMPAIGNSREQUEST']._serialized_end=1807 + _globals['_CAMPAIGNSRESPONSE']._serialized_start=1810 + _globals['_CAMPAIGNSRESPONSE']._serialized_end=2007 + _globals['_CAMPAIGNSV2REQUEST']._serialized_start=2010 + _globals['_CAMPAIGNSV2REQUEST']._serialized_end=2288 + _globals['_CAMPAIGNSV2RESPONSE']._serialized_start=2290 + _globals['_CAMPAIGNSV2RESPONSE']._serialized_end=2401 + _globals['_CAMPAIGNV2']._serialized_start=2404 + _globals['_CAMPAIGNV2']._serialized_end=2983 + _globals['_LISTGUILDSREQUEST']._serialized_start=2986 + _globals['_LISTGUILDSREQUEST']._serialized_end=3117 + _globals['_LISTGUILDSRESPONSE']._serialized_start=3120 + _globals['_LISTGUILDSRESPONSE']._serialized_end=3366 + _globals['_GUILD']._serialized_start=3369 + _globals['_GUILD']._serialized_end=3854 + _globals['_CAMPAIGNSUMMARY']._serialized_start=3857 + _globals['_CAMPAIGNSUMMARY']._serialized_end=4243 + _globals['_LISTGUILDMEMBERSREQUEST']._serialized_start=4246 + _globals['_LISTGUILDMEMBERSREQUEST']._serialized_end=4456 + _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_start=4459 + _globals['_LISTGUILDMEMBERSRESPONSE']._serialized_end=4666 + _globals['_GUILDMEMBER']._serialized_start=4669 + _globals['_GUILDMEMBER']._serialized_end=5136 + _globals['_GETGUILDMEMBERREQUEST']._serialized_start=5138 + _globals['_GETGUILDMEMBERREQUEST']._serialized_end=5232 + _globals['_GETGUILDMEMBERRESPONSE']._serialized_start=5234 + _globals['_GETGUILDMEMBERRESPONSE']._serialized_end=5315 + _globals['_INJECTIVECAMPAIGNRPC']._serialized_start=5318 + _globals['_INJECTIVECAMPAIGNRPC']._serialized_end=5967 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py new file mode 100644 index 00000000..acf2edf7 --- /dev/null +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: exchange/injective_chart_rpc.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"exchange/injective_chart_rpc.proto\x12\x13injective_chart_rpc\"\xb1\x01\n\x18SpotMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"}\n\x19SpotMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"\xb7\x01\n\x1e\x44\x65rivativeMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"\x83\x01\n\x1f\x44\x65rivativeMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"W\n\x18SpotMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"\xb8\x01\n\x19SpotMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"=\n\x1b\x41llSpotMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"\\\n\x1c\x41llSpotMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield\"\xb0\x01\n\x11MarketSummaryResp\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"~\n\x1e\x44\x65rivativeMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1f\n\x0bindex_price\x18\x02 \x01(\x08R\nindexPrice\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\"\xbe\x01\n\x1f\x44\x65rivativeMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"C\n!AllDerivativeMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"b\n\"AllDerivativeMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield2\x96\x06\n\x11InjectiveChartRPC\x12r\n\x11SpotMarketHistory\x12-.injective_chart_rpc.SpotMarketHistoryRequest\x1a..injective_chart_rpc.SpotMarketHistoryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketHistory\x12\x33.injective_chart_rpc.DerivativeMarketHistoryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketHistoryResponse\x12r\n\x11SpotMarketSummary\x12-.injective_chart_rpc.SpotMarketSummaryRequest\x1a..injective_chart_rpc.SpotMarketSummaryResponse\x12{\n\x14\x41llSpotMarketSummary\x12\x30.injective_chart_rpc.AllSpotMarketSummaryRequest\x1a\x31.injective_chart_rpc.AllSpotMarketSummaryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketSummary\x12\x33.injective_chart_rpc.DerivativeMarketSummaryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketSummaryResponse\x12\x8d\x01\n\x1a\x41llDerivativeMarketSummary\x12\x36.injective_chart_rpc.AllDerivativeMarketSummaryRequest\x1a\x37.injective_chart_rpc.AllDerivativeMarketSummaryResponseB\xad\x01\n\x17\x63om.injective_chart_rpcB\x16InjectiveChartRpcProtoP\x01Z\x16/injective_chart_rpcpb\xa2\x02\x03IXX\xaa\x02\x11InjectiveChartRpc\xca\x02\x11InjectiveChartRpc\xe2\x02\x1dInjectiveChartRpc\\GPBMetadata\xea\x02\x11InjectiveChartRpcb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exchange.injective_chart_rpc_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\027com.injective_chart_rpcB\026InjectiveChartRpcProtoP\001Z\026/injective_chart_rpcpb\242\002\003IXX\252\002\021InjectiveChartRpc\312\002\021InjectiveChartRpc\342\002\035InjectiveChartRpc\\GPBMetadata\352\002\021InjectiveChartRpc' + _globals['_SPOTMARKETHISTORYREQUEST']._serialized_start=60 + _globals['_SPOTMARKETHISTORYREQUEST']._serialized_end=237 + _globals['_SPOTMARKETHISTORYRESPONSE']._serialized_start=239 + _globals['_SPOTMARKETHISTORYRESPONSE']._serialized_end=364 + _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_start=367 + _globals['_DERIVATIVEMARKETHISTORYREQUEST']._serialized_end=550 + _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_start=553 + _globals['_DERIVATIVEMARKETHISTORYRESPONSE']._serialized_end=684 + _globals['_SPOTMARKETSUMMARYREQUEST']._serialized_start=686 + _globals['_SPOTMARKETSUMMARYREQUEST']._serialized_end=773 + _globals['_SPOTMARKETSUMMARYRESPONSE']._serialized_start=776 + _globals['_SPOTMARKETSUMMARYRESPONSE']._serialized_end=960 + _globals['_ALLSPOTMARKETSUMMARYREQUEST']._serialized_start=962 + _globals['_ALLSPOTMARKETSUMMARYREQUEST']._serialized_end=1023 + _globals['_ALLSPOTMARKETSUMMARYRESPONSE']._serialized_start=1025 + _globals['_ALLSPOTMARKETSUMMARYRESPONSE']._serialized_end=1117 + _globals['_MARKETSUMMARYRESP']._serialized_start=1120 + _globals['_MARKETSUMMARYRESP']._serialized_end=1296 + _globals['_DERIVATIVEMARKETSUMMARYREQUEST']._serialized_start=1298 + _globals['_DERIVATIVEMARKETSUMMARYREQUEST']._serialized_end=1424 + _globals['_DERIVATIVEMARKETSUMMARYRESPONSE']._serialized_start=1427 + _globals['_DERIVATIVEMARKETSUMMARYRESPONSE']._serialized_end=1617 + _globals['_ALLDERIVATIVEMARKETSUMMARYREQUEST']._serialized_start=1619 + _globals['_ALLDERIVATIVEMARKETSUMMARYREQUEST']._serialized_end=1686 + _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_start=1688 + _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_end=1786 + _globals['_INJECTIVECHARTRPC']._serialized_start=1789 + _globals['_INJECTIVECHARTRPC']._serialized_end=2579 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py new file mode 100644 index 00000000..f99e2f75 --- /dev/null +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py @@ -0,0 +1,303 @@ +# 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.exchange import injective_chart_rpc_pb2 as exchange_dot_injective__chart__rpc__pb2 + + +class InjectiveChartRPCStub(object): + """InjectiveChartRPC implements historical chart data retrieval. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SpotMarketHistory = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/SpotMarketHistory', + request_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryResponse.FromString, + _registered_method=True) + self.DerivativeMarketHistory = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/DerivativeMarketHistory', + request_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryResponse.FromString, + _registered_method=True) + self.SpotMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/SpotMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.FromString, + _registered_method=True) + self.AllSpotMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/AllSpotMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.FromString, + _registered_method=True) + self.DerivativeMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/DerivativeMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.FromString, + _registered_method=True) + self.AllDerivativeMarketSummary = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/AllDerivativeMarketSummary', + request_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.FromString, + _registered_method=True) + + +class InjectiveChartRPCServicer(object): + """InjectiveChartRPC implements historical chart data retrieval. + """ + + def SpotMarketHistory(self, request, context): + """Request for history bars of spotMarket for TradingView. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarketHistory(self, request, context): + """Request for history bars of derivativeMarket for TradingView. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SpotMarketSummary(self, request, context): + """Gets spot market summary for the latest interval (hour, day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllSpotMarketSummary(self, request, context): + """Gets batch summary for all active markets, for the latest interval (hour, + day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DerivativeMarketSummary(self, request, context): + """Gets derivative market summary for the latest interval (hour, day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllDerivativeMarketSummary(self, request, context): + """Gets batch summary for all active markets, for the latest interval (hour, + day, month) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_InjectiveChartRPCServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SpotMarketHistory': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarketHistory, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryResponse.SerializeToString, + ), + 'DerivativeMarketHistory': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarketHistory, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryResponse.SerializeToString, + ), + 'SpotMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.SerializeToString, + ), + 'AllSpotMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.AllSpotMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.SerializeToString, + ), + 'DerivativeMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.SerializeToString, + ), + 'AllDerivativeMarketSummary': grpc.unary_unary_rpc_method_handler( + servicer.AllDerivativeMarketSummary, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective_chart_rpc.InjectiveChartRPC', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective_chart_rpc.InjectiveChartRPC', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class InjectiveChartRPC(object): + """InjectiveChartRPC implements historical chart data retrieval. + """ + + @staticmethod + def SpotMarketHistory(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_chart_rpc.InjectiveChartRPC/SpotMarketHistory', + exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.SpotMarketHistoryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarketHistory(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_chart_rpc.InjectiveChartRPC/DerivativeMarketHistory', + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketHistoryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotMarketSummary(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_chart_rpc.InjectiveChartRPC/SpotMarketSummary', + exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.SpotMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AllSpotMarketSummary(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_chart_rpc.InjectiveChartRPC/AllSpotMarketSummary', + exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.AllSpotMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarketSummary(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_chart_rpc.InjectiveChartRPC/DerivativeMarketSummary', + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.DerivativeMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AllDerivativeMarketSummary(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_chart_rpc.InjectiveChartRPC/AllDerivativeMarketSummary', + exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py index 9d4e58e9..114b0ebc 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\xec\x08\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\x99\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xbf\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xc1\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xc5\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xc4\x1a\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x42\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\xec\x08\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\x99\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xd7\x1b\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x42\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -120,48 +120,52 @@ _globals['_STREAMPOSITIONSREQUEST']._serialized_end=10266 _globals['_STREAMPOSITIONSRESPONSE']._serialized_start=10269 _globals['_STREAMPOSITIONSRESPONSE']._serialized_end=10407 - _globals['_STREAMORDERSREQUEST']._serialized_start=10410 - _globals['_STREAMORDERSREQUEST']._serialized_end=10873 - _globals['_STREAMORDERSRESPONSE']._serialized_start=10876 - _globals['_STREAMORDERSRESPONSE']._serialized_end=11046 - _globals['_TRADESREQUEST']._serialized_start=11049 - _globals['_TRADESREQUEST']._serialized_end=11496 - _globals['_TRADESRESPONSE']._serialized_start=11499 - _globals['_TRADESRESPONSE']._serialized_end=11658 - _globals['_DERIVATIVETRADE']._serialized_start=11661 - _globals['_DERIVATIVETRADE']._serialized_end=12149 - _globals['_POSITIONDELTA']._serialized_start=12152 - _globals['_POSITIONDELTA']._serialized_end=12339 - _globals['_TRADESV2REQUEST']._serialized_start=12342 - _globals['_TRADESV2REQUEST']._serialized_end=12791 - _globals['_TRADESV2RESPONSE']._serialized_start=12794 - _globals['_TRADESV2RESPONSE']._serialized_end=12955 - _globals['_STREAMTRADESREQUEST']._serialized_start=12958 - _globals['_STREAMTRADESREQUEST']._serialized_end=13411 - _globals['_STREAMTRADESRESPONSE']._serialized_start=13414 - _globals['_STREAMTRADESRESPONSE']._serialized_end=13579 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=13582 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=14037 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14040 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14207 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14210 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14347 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14350 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=14528 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=14531 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=14737 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=14739 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=14845 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=14848 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=15356 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15359 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=15532 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=15535 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16216 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16219 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=16439 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=16442 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=16621 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=16624 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=20020 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_start=10410 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_end=10613 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_start=10616 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_end=10758 + _globals['_STREAMORDERSREQUEST']._serialized_start=10761 + _globals['_STREAMORDERSREQUEST']._serialized_end=11224 + _globals['_STREAMORDERSRESPONSE']._serialized_start=11227 + _globals['_STREAMORDERSRESPONSE']._serialized_end=11397 + _globals['_TRADESREQUEST']._serialized_start=11400 + _globals['_TRADESREQUEST']._serialized_end=11884 + _globals['_TRADESRESPONSE']._serialized_start=11887 + _globals['_TRADESRESPONSE']._serialized_end=12046 + _globals['_DERIVATIVETRADE']._serialized_start=12049 + _globals['_DERIVATIVETRADE']._serialized_end=12537 + _globals['_POSITIONDELTA']._serialized_start=12540 + _globals['_POSITIONDELTA']._serialized_end=12727 + _globals['_TRADESV2REQUEST']._serialized_start=12730 + _globals['_TRADESV2REQUEST']._serialized_end=13216 + _globals['_TRADESV2RESPONSE']._serialized_start=13219 + _globals['_TRADESV2RESPONSE']._serialized_end=13380 + _globals['_STREAMTRADESREQUEST']._serialized_start=13383 + _globals['_STREAMTRADESREQUEST']._serialized_end=13873 + _globals['_STREAMTRADESRESPONSE']._serialized_start=13876 + _globals['_STREAMTRADESRESPONSE']._serialized_end=14041 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=14044 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=14536 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14539 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14706 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14709 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14846 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14849 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15027 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15030 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15236 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15238 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15344 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=15347 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=15855 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15858 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16031 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16034 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16715 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16718 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=16938 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=16941 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17120 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17123 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=20666 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py index fd5d2b43..92bc8417 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py @@ -96,6 +96,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsRequest.SerializeToString, response_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsResponse.FromString, _registered_method=True) + self.StreamPositionsV2 = channel.unary_stream( + '/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositionsV2', + request_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Response.FromString, + _registered_method=True) self.StreamOrders = channel.unary_stream( '/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders', request_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersRequest.SerializeToString, @@ -255,7 +260,15 @@ def FundingRates(self, request, context): raise NotImplementedError('Method not implemented!') def StreamPositions(self, request, context): - """StreamPositions streams derivatives position updates. + """StreamPositions streams derivatives position updates. This is the legacy + version of the streamPositionsV2 endpoint. Use streamPositionsV2 instead. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StreamPositionsV2(self, request, context): + """StreamPositionsV2 streams derivatives position updates. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -408,6 +421,11 @@ def add_InjectiveDerivativeExchangeRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsRequest.FromString, response_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsResponse.SerializeToString, ), + 'StreamPositionsV2': grpc.unary_stream_rpc_method_handler( + servicer.StreamPositionsV2, + request_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Request.FromString, + response_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Response.SerializeToString, + ), 'StreamOrders': grpc.unary_stream_rpc_method_handler( servicer.StreamOrders, request_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersRequest.FromString, @@ -898,6 +916,33 @@ def StreamPositions(request, metadata, _registered_method=True) + @staticmethod + def StreamPositionsV2(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_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositionsV2', + exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Request.SerializeToString, + exchange_dot_injective__derivative__exchange__rpc__pb2.StreamPositionsV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def StreamOrders(request, target, diff --git a/pyinjective/proto/exchange/injective_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_exchange_rpc_pb2.py index 8d515faa..08bc1eac 100644 --- a/pyinjective/proto/exchange/injective_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_exchange_rpc.proto\x12\x16injective_exchange_rpc\"\"\n\x0cGetTxRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"\xd3\x01\n\rGetTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\x9d\x02\n\x10PrepareTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12%\n\x0esigner_address\x18\x02 \x01(\tR\rsignerAddress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x12\n\x04memo\x18\x04 \x01(\tR\x04memo\x12%\n\x0etimeout_height\x18\x05 \x01(\x04R\rtimeoutHeight\x12\x35\n\x03\x66\x65\x65\x18\x06 \x01(\x0b\x32#.injective_exchange_rpc.CosmosTxFeeR\x03\x66\x65\x65\x12\x12\n\x04msgs\x18\x07 \x03(\x0cR\x04msgs\x12%\n\x0e\x65ip712_wrapper\x18\x08 \x01(\tR\reip712Wrapper\"|\n\x0b\x43osmosTxFee\x12\x38\n\x05price\x18\x01 \x03(\x0b\x32\".injective_exchange_rpc.CosmosCoinR\x05price\x12\x10\n\x03gas\x18\x02 \x01(\x04R\x03gas\x12!\n\x0c\x64\x65legate_fee\x18\x03 \x01(\x08R\x0b\x64\x65legateFee\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xc3\x01\n\x11PrepareTxResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x1b\n\tsign_mode\x18\x03 \x01(\tR\x08signMode\x12 \n\x0cpub_key_type\x18\x04 \x01(\tR\npubKeyType\x12\x1b\n\tfee_payer\x18\x05 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x06 \x01(\tR\x0b\x66\x65\x65PayerSig\"\x85\x02\n\x12\x42roadcastTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12\x0e\n\x02tx\x18\x02 \x01(\x0cR\x02tx\x12\x12\n\x04msgs\x18\x03 \x03(\x0cR\x04msgs\x12=\n\x07pub_key\x18\x04 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x06pubKey\x12\x1c\n\tsignature\x18\x05 \x01(\tR\tsignature\x12\x1b\n\tfee_payer\x18\x06 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x07 \x01(\tR\x0b\x66\x65\x65PayerSig\x12\x12\n\x04mode\x18\x08 \x01(\tR\x04mode\"4\n\x0c\x43osmosPubKey\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\tR\x03key\"\xd9\x01\n\x13\x42roadcastTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\xe0\x01\n\x16PrepareCosmosTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12%\n\x0esender_address\x18\x02 \x01(\tR\rsenderAddress\x12\x12\n\x04memo\x18\x03 \x01(\tR\x04memo\x12%\n\x0etimeout_height\x18\x04 \x01(\x04R\rtimeoutHeight\x12\x35\n\x03\x66\x65\x65\x18\x05 \x01(\x0b\x32#.injective_exchange_rpc.CosmosTxFeeR\x03\x66\x65\x65\x12\x12\n\x04msgs\x18\x06 \x03(\x0cR\x04msgs\"\xfa\x01\n\x17PrepareCosmosTxResponse\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12\x1b\n\tsign_mode\x18\x02 \x01(\tR\x08signMode\x12 \n\x0cpub_key_type\x18\x03 \x01(\tR\npubKeyType\x12\x1b\n\tfee_payer\x18\x04 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x05 \x01(\tR\x0b\x66\x65\x65PayerSig\x12O\n\x11\x66\x65\x65_payer_pub_key\x18\x06 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x0e\x66\x65\x65PayerPubKey\"\xae\x01\n\x18\x42roadcastCosmosTxRequest\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12=\n\x07pub_key\x18\x02 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x06pubKey\x12\x1c\n\tsignature\x18\x03 \x01(\tR\tsignature\x12%\n\x0esender_address\x18\x04 \x01(\tR\rsenderAddress\"\xdf\x01\n\x19\x42roadcastCosmosTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\x14\n\x12GetFeePayerRequest\"\x83\x01\n\x13GetFeePayerResponse\x12\x1b\n\tfee_payer\x18\x01 \x01(\tR\x08\x66\x65\x65Payer\x12O\n\x11\x66\x65\x65_payer_pub_key\x18\x02 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x0e\x66\x65\x65PayerPubKey2\x8c\x05\n\x14InjectiveExchangeRPC\x12T\n\x05GetTx\x12$.injective_exchange_rpc.GetTxRequest\x1a%.injective_exchange_rpc.GetTxResponse\x12`\n\tPrepareTx\x12(.injective_exchange_rpc.PrepareTxRequest\x1a).injective_exchange_rpc.PrepareTxResponse\x12\x66\n\x0b\x42roadcastTx\x12*.injective_exchange_rpc.BroadcastTxRequest\x1a+.injective_exchange_rpc.BroadcastTxResponse\x12r\n\x0fPrepareCosmosTx\x12..injective_exchange_rpc.PrepareCosmosTxRequest\x1a/.injective_exchange_rpc.PrepareCosmosTxResponse\x12x\n\x11\x42roadcastCosmosTx\x12\x30.injective_exchange_rpc.BroadcastCosmosTxRequest\x1a\x31.injective_exchange_rpc.BroadcastCosmosTxResponse\x12\x66\n\x0bGetFeePayer\x12*.injective_exchange_rpc.GetFeePayerRequest\x1a+.injective_exchange_rpc.GetFeePayerResponseB\xc2\x01\n\x1a\x63om.injective_exchange_rpcB\x19InjectiveExchangeRpcProtoP\x01Z\x19/injective_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExchangeRpc\xca\x02\x14InjectiveExchangeRpc\xe2\x02 InjectiveExchangeRpc\\GPBMetadata\xea\x02\x14InjectiveExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_exchange_rpc.proto\x12\x16injective_exchange_rpc\"\"\n\x0cGetTxRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"\xd3\x01\n\rGetTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\x9d\x02\n\x10PrepareTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12%\n\x0esigner_address\x18\x02 \x01(\tR\rsignerAddress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x12\n\x04memo\x18\x04 \x01(\tR\x04memo\x12%\n\x0etimeout_height\x18\x05 \x01(\x04R\rtimeoutHeight\x12\x35\n\x03\x66\x65\x65\x18\x06 \x01(\x0b\x32#.injective_exchange_rpc.CosmosTxFeeR\x03\x66\x65\x65\x12\x12\n\x04msgs\x18\x07 \x03(\x0cR\x04msgs\x12%\n\x0e\x65ip712_wrapper\x18\x08 \x01(\tR\reip712Wrapper\"|\n\x0b\x43osmosTxFee\x12\x38\n\x05price\x18\x01 \x03(\x0b\x32\".injective_exchange_rpc.CosmosCoinR\x05price\x12\x10\n\x03gas\x18\x02 \x01(\x04R\x03gas\x12!\n\x0c\x64\x65legate_fee\x18\x03 \x01(\x08R\x0b\x64\x65legateFee\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xc3\x01\n\x11PrepareTxResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x1b\n\tsign_mode\x18\x03 \x01(\tR\x08signMode\x12 \n\x0cpub_key_type\x18\x04 \x01(\tR\npubKeyType\x12\x1b\n\tfee_payer\x18\x05 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x06 \x01(\tR\x0b\x66\x65\x65PayerSig\"\xc8\x02\n\x14PrepareEip712Request\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12%\n\x0esigner_address\x18\x02 \x01(\tR\rsignerAddress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12%\n\x0e\x61\x63\x63ount_number\x18\x04 \x01(\x04R\raccountNumber\x12\x12\n\x04memo\x18\x05 \x01(\tR\x04memo\x12%\n\x0etimeout_height\x18\x06 \x01(\x04R\rtimeoutHeight\x12\x35\n\x03\x66\x65\x65\x18\x07 \x01(\x0b\x32#.injective_exchange_rpc.CosmosTxFeeR\x03\x66\x65\x65\x12\x12\n\x04msgs\x18\x08 \x03(\x0cR\x04msgs\x12%\n\x0e\x65ip712_wrapper\x18\t \x01(\tR\reip712Wrapper\"+\n\x15PrepareEip712Response\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\"\x85\x02\n\x12\x42roadcastTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12\x0e\n\x02tx\x18\x02 \x01(\x0cR\x02tx\x12\x12\n\x04msgs\x18\x03 \x03(\x0cR\x04msgs\x12=\n\x07pub_key\x18\x04 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x06pubKey\x12\x1c\n\tsignature\x18\x05 \x01(\tR\tsignature\x12\x1b\n\tfee_payer\x18\x06 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x07 \x01(\tR\x0b\x66\x65\x65PayerSig\x12\x12\n\x04mode\x18\x08 \x01(\tR\x04mode\"4\n\x0c\x43osmosPubKey\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\tR\x03key\"\xd9\x01\n\x13\x42roadcastTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\xe0\x01\n\x16PrepareCosmosTxRequest\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\x04R\x07\x63hainId\x12%\n\x0esender_address\x18\x02 \x01(\tR\rsenderAddress\x12\x12\n\x04memo\x18\x03 \x01(\tR\x04memo\x12%\n\x0etimeout_height\x18\x04 \x01(\x04R\rtimeoutHeight\x12\x35\n\x03\x66\x65\x65\x18\x05 \x01(\x0b\x32#.injective_exchange_rpc.CosmosTxFeeR\x03\x66\x65\x65\x12\x12\n\x04msgs\x18\x06 \x03(\x0cR\x04msgs\"\xfa\x01\n\x17PrepareCosmosTxResponse\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12\x1b\n\tsign_mode\x18\x02 \x01(\tR\x08signMode\x12 \n\x0cpub_key_type\x18\x03 \x01(\tR\npubKeyType\x12\x1b\n\tfee_payer\x18\x04 \x01(\tR\x08\x66\x65\x65Payer\x12\"\n\rfee_payer_sig\x18\x05 \x01(\tR\x0b\x66\x65\x65PayerSig\x12O\n\x11\x66\x65\x65_payer_pub_key\x18\x06 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x0e\x66\x65\x65PayerPubKey\"\xae\x01\n\x18\x42roadcastCosmosTxRequest\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12=\n\x07pub_key\x18\x02 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x06pubKey\x12\x1c\n\tsignature\x18\x03 \x01(\tR\tsignature\x12%\n\x0esender_address\x18\x04 \x01(\tR\rsenderAddress\"\xdf\x01\n\x19\x42roadcastCosmosTxResponse\x12\x17\n\x07tx_hash\x18\x01 \x01(\tR\x06txHash\x12\x16\n\x06height\x18\x02 \x01(\x12R\x06height\x12\x14\n\x05index\x18\x03 \x01(\rR\x05index\x12\x1c\n\tcodespace\x18\x04 \x01(\tR\tcodespace\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x17\n\x07raw_log\x18\x07 \x01(\tR\x06rawLog\x12\x1c\n\ttimestamp\x18\x08 \x01(\tR\ttimestamp\"\x14\n\x12GetFeePayerRequest\"\x83\x01\n\x13GetFeePayerResponse\x12\x1b\n\tfee_payer\x18\x01 \x01(\tR\x08\x66\x65\x65Payer\x12O\n\x11\x66\x65\x65_payer_pub_key\x18\x02 \x01(\x0b\x32$.injective_exchange_rpc.CosmosPubKeyR\x0e\x66\x65\x65PayerPubKey2\xfa\x05\n\x14InjectiveExchangeRPC\x12T\n\x05GetTx\x12$.injective_exchange_rpc.GetTxRequest\x1a%.injective_exchange_rpc.GetTxResponse\x12`\n\tPrepareTx\x12(.injective_exchange_rpc.PrepareTxRequest\x1a).injective_exchange_rpc.PrepareTxResponse\x12l\n\rPrepareEip712\x12,.injective_exchange_rpc.PrepareEip712Request\x1a-.injective_exchange_rpc.PrepareEip712Response\x12\x66\n\x0b\x42roadcastTx\x12*.injective_exchange_rpc.BroadcastTxRequest\x1a+.injective_exchange_rpc.BroadcastTxResponse\x12r\n\x0fPrepareCosmosTx\x12..injective_exchange_rpc.PrepareCosmosTxRequest\x1a/.injective_exchange_rpc.PrepareCosmosTxResponse\x12x\n\x11\x42roadcastCosmosTx\x12\x30.injective_exchange_rpc.BroadcastCosmosTxRequest\x1a\x31.injective_exchange_rpc.BroadcastCosmosTxResponse\x12\x66\n\x0bGetFeePayer\x12*.injective_exchange_rpc.GetFeePayerRequest\x1a+.injective_exchange_rpc.GetFeePayerResponseB\xc2\x01\n\x1a\x63om.injective_exchange_rpcB\x19InjectiveExchangeRpcProtoP\x01Z\x19/injective_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExchangeRpc\xca\x02\x14InjectiveExchangeRpc\xe2\x02 InjectiveExchangeRpc\\GPBMetadata\xea\x02\x14InjectiveExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -34,24 +34,28 @@ _globals['_COSMOSCOIN']._serialized_end=787 _globals['_PREPARETXRESPONSE']._serialized_start=790 _globals['_PREPARETXRESPONSE']._serialized_end=985 - _globals['_BROADCASTTXREQUEST']._serialized_start=988 - _globals['_BROADCASTTXREQUEST']._serialized_end=1249 - _globals['_COSMOSPUBKEY']._serialized_start=1251 - _globals['_COSMOSPUBKEY']._serialized_end=1303 - _globals['_BROADCASTTXRESPONSE']._serialized_start=1306 - _globals['_BROADCASTTXRESPONSE']._serialized_end=1523 - _globals['_PREPARECOSMOSTXREQUEST']._serialized_start=1526 - _globals['_PREPARECOSMOSTXREQUEST']._serialized_end=1750 - _globals['_PREPARECOSMOSTXRESPONSE']._serialized_start=1753 - _globals['_PREPARECOSMOSTXRESPONSE']._serialized_end=2003 - _globals['_BROADCASTCOSMOSTXREQUEST']._serialized_start=2006 - _globals['_BROADCASTCOSMOSTXREQUEST']._serialized_end=2180 - _globals['_BROADCASTCOSMOSTXRESPONSE']._serialized_start=2183 - _globals['_BROADCASTCOSMOSTXRESPONSE']._serialized_end=2406 - _globals['_GETFEEPAYERREQUEST']._serialized_start=2408 - _globals['_GETFEEPAYERREQUEST']._serialized_end=2428 - _globals['_GETFEEPAYERRESPONSE']._serialized_start=2431 - _globals['_GETFEEPAYERRESPONSE']._serialized_end=2562 - _globals['_INJECTIVEEXCHANGERPC']._serialized_start=2565 - _globals['_INJECTIVEEXCHANGERPC']._serialized_end=3217 + _globals['_PREPAREEIP712REQUEST']._serialized_start=988 + _globals['_PREPAREEIP712REQUEST']._serialized_end=1316 + _globals['_PREPAREEIP712RESPONSE']._serialized_start=1318 + _globals['_PREPAREEIP712RESPONSE']._serialized_end=1361 + _globals['_BROADCASTTXREQUEST']._serialized_start=1364 + _globals['_BROADCASTTXREQUEST']._serialized_end=1625 + _globals['_COSMOSPUBKEY']._serialized_start=1627 + _globals['_COSMOSPUBKEY']._serialized_end=1679 + _globals['_BROADCASTTXRESPONSE']._serialized_start=1682 + _globals['_BROADCASTTXRESPONSE']._serialized_end=1899 + _globals['_PREPARECOSMOSTXREQUEST']._serialized_start=1902 + _globals['_PREPARECOSMOSTXREQUEST']._serialized_end=2126 + _globals['_PREPARECOSMOSTXRESPONSE']._serialized_start=2129 + _globals['_PREPARECOSMOSTXRESPONSE']._serialized_end=2379 + _globals['_BROADCASTCOSMOSTXREQUEST']._serialized_start=2382 + _globals['_BROADCASTCOSMOSTXREQUEST']._serialized_end=2556 + _globals['_BROADCASTCOSMOSTXRESPONSE']._serialized_start=2559 + _globals['_BROADCASTCOSMOSTXRESPONSE']._serialized_end=2782 + _globals['_GETFEEPAYERREQUEST']._serialized_start=2784 + _globals['_GETFEEPAYERREQUEST']._serialized_end=2804 + _globals['_GETFEEPAYERRESPONSE']._serialized_start=2807 + _globals['_GETFEEPAYERRESPONSE']._serialized_end=2938 + _globals['_INJECTIVEEXCHANGERPC']._serialized_start=2941 + _globals['_INJECTIVEEXCHANGERPC']._serialized_end=3703 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_exchange_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_exchange_rpc_pb2_grpc.py index cddca5ba..e8e1aa9c 100644 --- a/pyinjective/proto/exchange/injective_exchange_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_exchange_rpc_pb2_grpc.py @@ -25,6 +25,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__exchange__rpc__pb2.PrepareTxRequest.SerializeToString, response_deserializer=exchange_dot_injective__exchange__rpc__pb2.PrepareTxResponse.FromString, _registered_method=True) + self.PrepareEip712 = channel.unary_unary( + '/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712', + request_serializer=exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Request.SerializeToString, + response_deserializer=exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Response.FromString, + _registered_method=True) self.BroadcastTx = channel.unary_unary( '/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx', request_serializer=exchange_dot_injective__exchange__rpc__pb2.BroadcastTxRequest.SerializeToString, @@ -65,6 +70,13 @@ def PrepareTx(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def PrepareEip712(self, request, context): + """prepareEip712 generates EIP712 for an Injective Message + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def BroadcastTx(self, request, context): """BroadcastTx broadcasts a signed Web3 transaction """ @@ -106,6 +118,11 @@ def add_InjectiveExchangeRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__exchange__rpc__pb2.PrepareTxRequest.FromString, response_serializer=exchange_dot_injective__exchange__rpc__pb2.PrepareTxResponse.SerializeToString, ), + 'PrepareEip712': grpc.unary_unary_rpc_method_handler( + servicer.PrepareEip712, + request_deserializer=exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Request.FromString, + response_serializer=exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Response.SerializeToString, + ), 'BroadcastTx': grpc.unary_unary_rpc_method_handler( servicer.BroadcastTx, request_deserializer=exchange_dot_injective__exchange__rpc__pb2.BroadcastTxRequest.FromString, @@ -192,6 +209,33 @@ def PrepareTx(request, metadata, _registered_method=True) + @staticmethod + def PrepareEip712(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_rpc.InjectiveExchangeRPC/PrepareEip712', + exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Request.SerializeToString, + exchange_dot_injective__exchange__rpc__pb2.PrepareEip712Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def BroadcastTx(request, target, diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py index 7066998d..a688b45e 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x9b\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"h\n\x18GetContractTxsV2Response\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xad\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xcd\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\"\xd3\x02\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xd1\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xb8\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp2\xc6\x13\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x9b\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"h\n\x18GetContractTxsV2Response\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xdf\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"E\n\x12GetBlocksV2Request\x12\x19\n\x08per_page\x18\x01 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x84\x01\n\x13GetBlocksV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"V\n\x06\x43ursor\x12\x12\n\x04\x66rom\x18\x01 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x02 \x01(\x11R\x02to\x12\x12\n\x04next\x18\x03 \x03(\tR\x04next\x12\x14\n\x05total\x18\x04 \x01(\x12R\x05total\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xff\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0b \x01(\x04R\x12\x62lockUnixTimestamp\"\xc8\x03\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\x12\x41\n\nsignatures\x18\r \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0e \x01(\x04R\x12\x62lockUnixTimestamp\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"\x90\x01\n\x0fGetTxsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nstart_time\x18\x02 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x03 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x04 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\"~\n\x10GetTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xd1\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xea\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\x11\n\x0fGetStatsRequest\"\x9c\x02\n\x10GetStatsResponse\x12\x1c\n\taddresses\x18\x01 \x01(\x04R\taddresses\x12\x16\n\x06\x61ssets\x18\x02 \x01(\x04R\x06\x61ssets\x12\x1d\n\ninj_supply\x18\x03 \x01(\x04R\tinjSupply\x12\x1c\n\ntxs_ps24_h\x18\x04 \x01(\x04R\x08txsPs24H\x12\x1e\n\x0btxs_ps100_b\x18\x05 \x01(\x04R\ttxsPs100B\x12\x1b\n\ttxs_total\x18\x06 \x01(\x04R\x08txsTotal\x12\x17\n\x07txs24_h\x18\x07 \x01(\x04R\x06txs24H\x12\x17\n\x07txs30_d\x18\x08 \x01(\x04R\x06txs30D\x12&\n\x0f\x62lock_count24_h\x18\t \x01(\x04R\rblockCount24H2\xec\x15\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12\x66\n\x0bGetBlocksV2\x12*.injective_explorer_rpc.GetBlocksV2Request\x1a+.injective_explorer_rpc.GetBlocksV2Response\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12]\n\x08GetTxsV2\x12\'.injective_explorer_rpc.GetTxsV2Request\x1a(.injective_explorer_rpc.GetTxsV2Response\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x12]\n\x08GetStats\x12\'.injective_explorer_rpc.GetStatsRequest\x1a(.injective_explorer_rpc.GetStatsResponseB\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -55,125 +55,139 @@ _globals['_GETBLOCKSRESPONSE']._serialized_start=2542 _globals['_GETBLOCKSRESPONSE']._serialized_end=2672 _globals['_BLOCKINFO']._serialized_start=2675 - _globals['_BLOCKINFO']._serialized_end=2976 - _globals['_TXDATARPC']._serialized_start=2979 - _globals['_TXDATARPC']._serialized_end=3267 - _globals['_GETBLOCKREQUEST']._serialized_start=3269 - _globals['_GETBLOCKREQUEST']._serialized_end=3302 - _globals['_GETBLOCKRESPONSE']._serialized_start=3304 - _globals['_GETBLOCKRESPONSE']._serialized_end=3421 - _globals['_BLOCKDETAILINFO']._serialized_start=3424 - _globals['_BLOCKDETAILINFO']._serialized_end=3757 - _globals['_TXDATA']._serialized_start=3760 - _globals['_TXDATA']._serialized_end=4099 - _globals['_GETVALIDATORSREQUEST']._serialized_start=4101 - _globals['_GETVALIDATORSREQUEST']._serialized_end=4123 - _globals['_GETVALIDATORSRESPONSE']._serialized_start=4125 - _globals['_GETVALIDATORSRESPONSE']._serialized_end=4241 - _globals['_VALIDATOR']._serialized_start=4244 - _globals['_VALIDATOR']._serialized_end=5193 - _globals['_VALIDATORDESCRIPTION']._serialized_start=5196 - _globals['_VALIDATORDESCRIPTION']._serialized_end=5396 - _globals['_VALIDATORUPTIME']._serialized_start=5398 - _globals['_VALIDATORUPTIME']._serialized_end=5474 - _globals['_SLASHINGEVENT']._serialized_start=5477 - _globals['_SLASHINGEVENT']._serialized_end=5701 - _globals['_GETVALIDATORREQUEST']._serialized_start=5703 - _globals['_GETVALIDATORREQUEST']._serialized_end=5750 - _globals['_GETVALIDATORRESPONSE']._serialized_start=5752 - _globals['_GETVALIDATORRESPONSE']._serialized_end=5867 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=5869 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=5922 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=5924 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6051 - _globals['_GETTXSREQUEST']._serialized_start=6054 - _globals['_GETTXSREQUEST']._serialized_end=6345 - _globals['_GETTXSRESPONSE']._serialized_start=6347 - _globals['_GETTXSRESPONSE']._serialized_end=6471 - _globals['_GETTXBYTXHASHREQUEST']._serialized_start=6473 - _globals['_GETTXBYTXHASHREQUEST']._serialized_end=6515 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=6517 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=6636 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=6638 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=6759 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=6761 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=6851 - _globals['_PEGGYDEPOSITTX']._serialized_start=6854 - _globals['_PEGGYDEPOSITTX']._serialized_end=7231 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=7233 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=7357 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=7359 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=7455 - _globals['_PEGGYWITHDRAWALTX']._serialized_start=7458 - _globals['_PEGGYWITHDRAWALTX']._serialized_end=7977 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=7980 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=8224 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=8226 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=8314 - _globals['_IBCTRANSFERTX']._serialized_start=8317 - _globals['_IBCTRANSFERTX']._serialized_end=8859 - _globals['_GETWASMCODESREQUEST']._serialized_start=8861 - _globals['_GETWASMCODESREQUEST']._serialized_end=8966 - _globals['_GETWASMCODESRESPONSE']._serialized_start=8969 - _globals['_GETWASMCODESRESPONSE']._serialized_end=9101 - _globals['_WASMCODE']._serialized_start=9104 - _globals['_WASMCODE']._serialized_end=9586 - _globals['_CHECKSUM']._serialized_start=9588 - _globals['_CHECKSUM']._serialized_end=9648 - _globals['_CONTRACTPERMISSION']._serialized_start=9650 - _globals['_CONTRACTPERMISSION']._serialized_end=9729 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=9731 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=9780 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=9783 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=10280 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=10283 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=10492 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=10495 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=10635 - _globals['_WASMCONTRACT']._serialized_start=10638 - _globals['_WASMCONTRACT']._serialized_end=11255 - _globals['_CONTRACTFUND']._serialized_start=11257 - _globals['_CONTRACTFUND']._serialized_end=11317 - _globals['_CW20METADATA']._serialized_start=11320 - _globals['_CW20METADATA']._serialized_end=11486 - _globals['_CW20TOKENINFO']._serialized_start=11488 - _globals['_CW20TOKENINFO']._serialized_end=11610 - _globals['_CW20MARKETINGINFO']._serialized_start=11613 - _globals['_CW20MARKETINGINFO']._serialized_end=11742 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=11744 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=11820 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=11823 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=12460 - _globals['_GETCW20BALANCEREQUEST']._serialized_start=12462 - _globals['_GETCW20BALANCEREQUEST']._serialized_end=12533 - _globals['_GETCW20BALANCERESPONSE']._serialized_start=12535 - _globals['_GETCW20BALANCERESPONSE']._serialized_end=12622 - _globals['_WASMCW20BALANCE']._serialized_start=12625 - _globals['_WASMCW20BALANCE']._serialized_end=12843 - _globals['_RELAYERSREQUEST']._serialized_start=12845 - _globals['_RELAYERSREQUEST']._serialized_end=12894 - _globals['_RELAYERSRESPONSE']._serialized_start=12896 - _globals['_RELAYERSRESPONSE']._serialized_end=12976 - _globals['_RELAYERMARKETS']._serialized_start=12978 - _globals['_RELAYERMARKETS']._serialized_end=13084 - _globals['_RELAYER']._serialized_start=13086 - _globals['_RELAYER']._serialized_end=13133 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=13136 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=13453 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=13456 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=13596 - _globals['_BANKTRANSFER']._serialized_start=13599 - _globals['_BANKTRANSFER']._serialized_end=13799 - _globals['_COIN']._serialized_start=13801 - _globals['_COIN']._serialized_end=13853 - _globals['_STREAMTXSREQUEST']._serialized_start=13855 - _globals['_STREAMTXSREQUEST']._serialized_end=13873 - _globals['_STREAMTXSRESPONSE']._serialized_start=13876 - _globals['_STREAMTXSRESPONSE']._serialized_end=14172 - _globals['_STREAMBLOCKSREQUEST']._serialized_start=14174 - _globals['_STREAMBLOCKSREQUEST']._serialized_end=14195 - _globals['_STREAMBLOCKSRESPONSE']._serialized_start=14198 - _globals['_STREAMBLOCKSRESPONSE']._serialized_end=14510 - _globals['_INJECTIVEEXPLORERRPC']._serialized_start=14513 - _globals['_INJECTIVEEXPLORERRPC']._serialized_end=17015 + _globals['_BLOCKINFO']._serialized_end=3026 + _globals['_TXDATARPC']._serialized_start=3029 + _globals['_TXDATARPC']._serialized_end=3317 + _globals['_GETBLOCKSV2REQUEST']._serialized_start=3319 + _globals['_GETBLOCKSV2REQUEST']._serialized_end=3388 + _globals['_GETBLOCKSV2RESPONSE']._serialized_start=3391 + _globals['_GETBLOCKSV2RESPONSE']._serialized_end=3523 + _globals['_CURSOR']._serialized_start=3525 + _globals['_CURSOR']._serialized_end=3611 + _globals['_GETBLOCKREQUEST']._serialized_start=3613 + _globals['_GETBLOCKREQUEST']._serialized_end=3646 + _globals['_GETBLOCKRESPONSE']._serialized_start=3648 + _globals['_GETBLOCKRESPONSE']._serialized_end=3765 + _globals['_BLOCKDETAILINFO']._serialized_start=3768 + _globals['_BLOCKDETAILINFO']._serialized_end=4151 + _globals['_TXDATA']._serialized_start=4154 + _globals['_TXDATA']._serialized_end=4610 + _globals['_GETVALIDATORSREQUEST']._serialized_start=4612 + _globals['_GETVALIDATORSREQUEST']._serialized_end=4634 + _globals['_GETVALIDATORSRESPONSE']._serialized_start=4636 + _globals['_GETVALIDATORSRESPONSE']._serialized_end=4752 + _globals['_VALIDATOR']._serialized_start=4755 + _globals['_VALIDATOR']._serialized_end=5704 + _globals['_VALIDATORDESCRIPTION']._serialized_start=5707 + _globals['_VALIDATORDESCRIPTION']._serialized_end=5907 + _globals['_VALIDATORUPTIME']._serialized_start=5909 + _globals['_VALIDATORUPTIME']._serialized_end=5985 + _globals['_SLASHINGEVENT']._serialized_start=5988 + _globals['_SLASHINGEVENT']._serialized_end=6212 + _globals['_GETVALIDATORREQUEST']._serialized_start=6214 + _globals['_GETVALIDATORREQUEST']._serialized_end=6261 + _globals['_GETVALIDATORRESPONSE']._serialized_start=6263 + _globals['_GETVALIDATORRESPONSE']._serialized_end=6378 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=6380 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=6433 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=6435 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6562 + _globals['_GETTXSREQUEST']._serialized_start=6565 + _globals['_GETTXSREQUEST']._serialized_end=6856 + _globals['_GETTXSRESPONSE']._serialized_start=6858 + _globals['_GETTXSRESPONSE']._serialized_end=6982 + _globals['_GETTXSV2REQUEST']._serialized_start=6985 + _globals['_GETTXSV2REQUEST']._serialized_end=7129 + _globals['_GETTXSV2RESPONSE']._serialized_start=7131 + _globals['_GETTXSV2RESPONSE']._serialized_end=7257 + _globals['_GETTXBYTXHASHREQUEST']._serialized_start=7259 + _globals['_GETTXBYTXHASHREQUEST']._serialized_end=7301 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=7303 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=7422 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=7424 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=7545 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=7547 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=7637 + _globals['_PEGGYDEPOSITTX']._serialized_start=7640 + _globals['_PEGGYDEPOSITTX']._serialized_end=8017 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=8019 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=8143 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=8145 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=8241 + _globals['_PEGGYWITHDRAWALTX']._serialized_start=8244 + _globals['_PEGGYWITHDRAWALTX']._serialized_end=8763 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=8766 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=9010 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=9012 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=9100 + _globals['_IBCTRANSFERTX']._serialized_start=9103 + _globals['_IBCTRANSFERTX']._serialized_end=9645 + _globals['_GETWASMCODESREQUEST']._serialized_start=9647 + _globals['_GETWASMCODESREQUEST']._serialized_end=9752 + _globals['_GETWASMCODESRESPONSE']._serialized_start=9755 + _globals['_GETWASMCODESRESPONSE']._serialized_end=9887 + _globals['_WASMCODE']._serialized_start=9890 + _globals['_WASMCODE']._serialized_end=10372 + _globals['_CHECKSUM']._serialized_start=10374 + _globals['_CHECKSUM']._serialized_end=10434 + _globals['_CONTRACTPERMISSION']._serialized_start=10436 + _globals['_CONTRACTPERMISSION']._serialized_end=10515 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=10517 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=10566 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=10569 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=11066 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=11069 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=11278 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=11281 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=11421 + _globals['_WASMCONTRACT']._serialized_start=11424 + _globals['_WASMCONTRACT']._serialized_end=12041 + _globals['_CONTRACTFUND']._serialized_start=12043 + _globals['_CONTRACTFUND']._serialized_end=12103 + _globals['_CW20METADATA']._serialized_start=12106 + _globals['_CW20METADATA']._serialized_end=12272 + _globals['_CW20TOKENINFO']._serialized_start=12274 + _globals['_CW20TOKENINFO']._serialized_end=12396 + _globals['_CW20MARKETINGINFO']._serialized_start=12399 + _globals['_CW20MARKETINGINFO']._serialized_end=12528 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=12530 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=12606 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=12609 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=13246 + _globals['_GETCW20BALANCEREQUEST']._serialized_start=13248 + _globals['_GETCW20BALANCEREQUEST']._serialized_end=13319 + _globals['_GETCW20BALANCERESPONSE']._serialized_start=13321 + _globals['_GETCW20BALANCERESPONSE']._serialized_end=13408 + _globals['_WASMCW20BALANCE']._serialized_start=13411 + _globals['_WASMCW20BALANCE']._serialized_end=13629 + _globals['_RELAYERSREQUEST']._serialized_start=13631 + _globals['_RELAYERSREQUEST']._serialized_end=13680 + _globals['_RELAYERSRESPONSE']._serialized_start=13682 + _globals['_RELAYERSRESPONSE']._serialized_end=13762 + _globals['_RELAYERMARKETS']._serialized_start=13764 + _globals['_RELAYERMARKETS']._serialized_end=13870 + _globals['_RELAYER']._serialized_start=13872 + _globals['_RELAYER']._serialized_end=13919 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=13922 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=14239 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=14242 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=14382 + _globals['_BANKTRANSFER']._serialized_start=14385 + _globals['_BANKTRANSFER']._serialized_end=14585 + _globals['_COIN']._serialized_start=14587 + _globals['_COIN']._serialized_end=14668 + _globals['_STREAMTXSREQUEST']._serialized_start=14670 + _globals['_STREAMTXSREQUEST']._serialized_end=14688 + _globals['_STREAMTXSRESPONSE']._serialized_start=14691 + _globals['_STREAMTXSRESPONSE']._serialized_end=14987 + _globals['_STREAMBLOCKSREQUEST']._serialized_start=14989 + _globals['_STREAMBLOCKSREQUEST']._serialized_end=15010 + _globals['_STREAMBLOCKSRESPONSE']._serialized_start=15013 + _globals['_STREAMBLOCKSRESPONSE']._serialized_end=15375 + _globals['_GETSTATSREQUEST']._serialized_start=15377 + _globals['_GETSTATSREQUEST']._serialized_end=15394 + _globals['_GETSTATSRESPONSE']._serialized_start=15397 + _globals['_GETSTATSRESPONSE']._serialized_end=15681 + _globals['_INJECTIVEEXPLORERRPC']._serialized_start=15684 + _globals['_INJECTIVEEXPLORERRPC']._serialized_end=18480 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py index 24ce812f..b58490a8 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py @@ -35,6 +35,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksResponse.FromString, _registered_method=True) + self.GetBlocksV2 = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocksV2', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.FromString, + _registered_method=True) self.GetBlock = channel.unary_unary( '/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock', request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlockRequest.SerializeToString, @@ -60,6 +65,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsResponse.FromString, _registered_method=True) + self.GetTxsV2 = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.FromString, + _registered_method=True) self.GetTxByTxHash = channel.unary_unary( '/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash', request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxByTxHashRequest.SerializeToString, @@ -125,6 +135,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.StreamBlocksRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.StreamBlocksResponse.FromString, _registered_method=True) + self.GetStats = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetStats', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetStatsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetStatsResponse.FromString, + _registered_method=True) class InjectiveExplorerRPCServicer(object): @@ -159,6 +174,13 @@ def GetBlocks(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetBlocksV2(self, request, context): + """GetBlocks returns blocks based upon the request params + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def GetBlock(self, request, context): """GetBlock returns block based upon the height or hash """ @@ -194,6 +216,13 @@ def GetTxs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetTxsV2(self, request, context): + """GetTxs returns transactions based upon the request params + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def GetTxByTxHash(self, request, context): """GetTxByTxHash returns certain transaction information by its tx hash. """ @@ -289,6 +318,13 @@ def StreamBlocks(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetStats(self, request, context): + """GetStats returns global exchange statistics in the last 24hs + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveExplorerRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -312,6 +348,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksResponse.SerializeToString, ), + 'GetBlocksV2': grpc.unary_unary_rpc_method_handler( + servicer.GetBlocksV2, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.SerializeToString, + ), 'GetBlock': grpc.unary_unary_rpc_method_handler( servicer.GetBlock, request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetBlockRequest.FromString, @@ -337,6 +378,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsResponse.SerializeToString, ), + 'GetTxsV2': grpc.unary_unary_rpc_method_handler( + servicer.GetTxsV2, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.SerializeToString, + ), 'GetTxByTxHash': grpc.unary_unary_rpc_method_handler( servicer.GetTxByTxHash, request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetTxByTxHashRequest.FromString, @@ -402,6 +448,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.StreamBlocksRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.StreamBlocksResponse.SerializeToString, ), + 'GetStats': grpc.unary_unary_rpc_method_handler( + servicer.GetStats, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetStatsRequest.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetStatsResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_explorer_rpc.InjectiveExplorerRPC', rpc_method_handlers) @@ -522,6 +573,33 @@ def GetBlocks(request, metadata, _registered_method=True) + @staticmethod + def GetBlocksV2(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_explorer_rpc.InjectiveExplorerRPC/GetBlocksV2', + exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Request.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetBlocksV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetBlock(request, target, @@ -657,6 +735,33 @@ def GetTxs(request, metadata, _registered_method=True) + @staticmethod + def GetTxsV2(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_explorer_rpc.InjectiveExplorerRPC/GetTxsV2', + exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Request.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetTxsV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetTxByTxHash(request, target, @@ -1007,3 +1112,30 @@ def StreamBlocks(request, timeout, metadata, _registered_method=True) + + @staticmethod + def GetStats(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_explorer_rpc.InjectiveExplorerRPC/GetStats', + exchange_dot_injective__explorer__rpc__pb2.GetStatsRequest.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetStatsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py b/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py index 37dcb8f9..9bdb1b30 100644 --- a/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_portfolio_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exchange/injective_portfolio_rpc.proto\x12\x17injective_portfolio_rpc\"Y\n\x13TokenHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"t\n\x14TokenHoldersResponse\x12\x39\n\x07holders\x18\x01 \x03(\x0b\x32\x1f.injective_portfolio_rpc.HolderR\x07holders\x12!\n\x0cnext_cursors\x18\x02 \x03(\tR\x0bnextCursors\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"B\n\x17\x41\x63\x63ountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\\\n\x18\x41\x63\x63ountPortfolioResponse\x12@\n\tportfolio\x18\x01 \x01(\x0b\x32\".injective_portfolio_rpc.PortfolioR\tportfolio\"\xa4\x02\n\tPortfolio\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12Z\n\x13positions_with_upnl\x18\x04 \x03(\x0b\x32*.injective_portfolio_rpc.PositionsWithUPNLR\x11positionsWithUpnl\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x96\x01\n\x13SubaccountBalanceV2\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x44\n\x07\x64\x65posit\x18\x03 \x01(\x0b\x32*.injective_portfolio_rpc.SubaccountDepositR\x07\x64\x65posit\"e\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\"\x83\x01\n\x11PositionsWithUPNL\x12G\n\x08position\x18\x01 \x01(\x0b\x32+.injective_portfolio_rpc.DerivativePositionR\x08position\x12%\n\x0eunrealized_pnl\x18\x02 \x01(\tR\runrealizedPnl\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"J\n\x1f\x41\x63\x63ountPortfolioBalancesRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"l\n AccountPortfolioBalancesResponse\x12H\n\tportfolio\x18\x01 \x01(\x0b\x32*.injective_portfolio_rpc.PortfolioBalancesR\tportfolio\"\xd0\x01\n\x11PortfolioBalances\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\"\x81\x01\n\x1dStreamAccountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xa5\x01\n\x1eStreamAccountPortfolioResponse\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x1c\n\ttimestamp\x18\x05 \x01(\x12R\ttimestamp2\x9d\x04\n\x15InjectivePortfolioRPC\x12k\n\x0cTokenHolders\x12,.injective_portfolio_rpc.TokenHoldersRequest\x1a-.injective_portfolio_rpc.TokenHoldersResponse\x12w\n\x10\x41\x63\x63ountPortfolio\x12\x30.injective_portfolio_rpc.AccountPortfolioRequest\x1a\x31.injective_portfolio_rpc.AccountPortfolioResponse\x12\x8f\x01\n\x18\x41\x63\x63ountPortfolioBalances\x12\x38.injective_portfolio_rpc.AccountPortfolioBalancesRequest\x1a\x39.injective_portfolio_rpc.AccountPortfolioBalancesResponse\x12\x8b\x01\n\x16StreamAccountPortfolio\x12\x36.injective_portfolio_rpc.StreamAccountPortfolioRequest\x1a\x37.injective_portfolio_rpc.StreamAccountPortfolioResponse0\x01\x42\xc9\x01\n\x1b\x63om.injective_portfolio_rpcB\x1aInjectivePortfolioRpcProtoP\x01Z\x1a/injective_portfolio_rpcpb\xa2\x02\x03IXX\xaa\x02\x15InjectivePortfolioRpc\xca\x02\x15InjectivePortfolioRpc\xe2\x02!InjectivePortfolioRpc\\GPBMetadata\xea\x02\x15InjectivePortfolioRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exchange/injective_portfolio_rpc.proto\x12\x17injective_portfolio_rpc\"Y\n\x13TokenHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x63ursor\x18\x02 \x01(\tR\x06\x63ursor\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"t\n\x14TokenHoldersResponse\x12\x39\n\x07holders\x18\x01 \x03(\x0b\x32\x1f.injective_portfolio_rpc.HolderR\x07holders\x12!\n\x0cnext_cursors\x18\x02 \x03(\tR\x0bnextCursors\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"B\n\x17\x41\x63\x63ountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\\\n\x18\x41\x63\x63ountPortfolioResponse\x12@\n\tportfolio\x18\x01 \x01(\x0b\x32\".injective_portfolio_rpc.PortfolioR\tportfolio\"\xa4\x02\n\tPortfolio\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12Z\n\x13positions_with_upnl\x18\x04 \x03(\x0b\x32*.injective_portfolio_rpc.PositionsWithUPNLR\x11positionsWithUpnl\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x96\x01\n\x13SubaccountBalanceV2\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x44\n\x07\x64\x65posit\x18\x03 \x01(\x0b\x32*.injective_portfolio_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"\x83\x01\n\x11PositionsWithUPNL\x12G\n\x08position\x18\x01 \x01(\x0b\x32+.injective_portfolio_rpc.DerivativePositionR\x08position\x12%\n\x0eunrealized_pnl\x18\x02 \x01(\tR\runrealizedPnl\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\\\n\x1f\x41\x63\x63ountPortfolioBalancesRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03usd\x18\x02 \x01(\x08R\x03usd\"l\n AccountPortfolioBalancesResponse\x12H\n\tportfolio\x18\x01 \x01(\x0b\x32*.injective_portfolio_rpc.PortfolioBalancesR\tportfolio\"\xed\x01\n\x11PortfolioBalances\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x42\n\rbank_balances\x18\x02 \x03(\x0b\x32\x1d.injective_portfolio_rpc.CoinR\x0c\x62\x61nkBalances\x12N\n\x0bsubaccounts\x18\x03 \x03(\x0b\x32,.injective_portfolio_rpc.SubaccountBalanceV2R\x0bsubaccounts\x12\x1b\n\ttotal_usd\x18\x04 \x01(\tR\x08totalUsd\"\x81\x01\n\x1dStreamAccountPortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x12\n\x04type\x18\x03 \x01(\tR\x04type\"\xa5\x01\n\x1eStreamAccountPortfolioResponse\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x1c\n\ttimestamp\x18\x05 \x01(\x12R\ttimestamp2\x9d\x04\n\x15InjectivePortfolioRPC\x12k\n\x0cTokenHolders\x12,.injective_portfolio_rpc.TokenHoldersRequest\x1a-.injective_portfolio_rpc.TokenHoldersResponse\x12w\n\x10\x41\x63\x63ountPortfolio\x12\x30.injective_portfolio_rpc.AccountPortfolioRequest\x1a\x31.injective_portfolio_rpc.AccountPortfolioResponse\x12\x8f\x01\n\x18\x41\x63\x63ountPortfolioBalances\x12\x38.injective_portfolio_rpc.AccountPortfolioBalancesRequest\x1a\x39.injective_portfolio_rpc.AccountPortfolioBalancesResponse\x12\x8b\x01\n\x16StreamAccountPortfolio\x12\x36.injective_portfolio_rpc.StreamAccountPortfolioRequest\x1a\x37.injective_portfolio_rpc.StreamAccountPortfolioResponse0\x01\x42\xc9\x01\n\x1b\x63om.injective_portfolio_rpcB\x1aInjectivePortfolioRpcProtoP\x01Z\x1a/injective_portfolio_rpcpb\xa2\x02\x03IXX\xaa\x02\x15InjectivePortfolioRpc\xca\x02\x15InjectivePortfolioRpc\xe2\x02!InjectivePortfolioRpc\\GPBMetadata\xea\x02\x15InjectivePortfolioRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,25 +35,25 @@ _globals['_PORTFOLIO']._serialized_start=516 _globals['_PORTFOLIO']._serialized_end=808 _globals['_COIN']._serialized_start=810 - _globals['_COIN']._serialized_end=862 - _globals['_SUBACCOUNTBALANCEV2']._serialized_start=865 - _globals['_SUBACCOUNTBALANCEV2']._serialized_end=1015 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1017 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=1118 - _globals['_POSITIONSWITHUPNL']._serialized_start=1121 - _globals['_POSITIONSWITHUPNL']._serialized_end=1252 - _globals['_DERIVATIVEPOSITION']._serialized_start=1255 - _globals['_DERIVATIVEPOSITION']._serialized_end=1687 - _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_start=1689 - _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_end=1763 - _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_start=1765 - _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_end=1873 - _globals['_PORTFOLIOBALANCES']._serialized_start=1876 - _globals['_PORTFOLIOBALANCES']._serialized_end=2084 - _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_start=2087 - _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_end=2216 - _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_start=2219 - _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_end=2384 - _globals['_INJECTIVEPORTFOLIORPC']._serialized_start=2387 - _globals['_INJECTIVEPORTFOLIORPC']._serialized_end=2928 + _globals['_COIN']._serialized_end=891 + _globals['_SUBACCOUNTBALANCEV2']._serialized_start=894 + _globals['_SUBACCOUNTBALANCEV2']._serialized_end=1044 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=1047 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=1244 + _globals['_POSITIONSWITHUPNL']._serialized_start=1247 + _globals['_POSITIONSWITHUPNL']._serialized_end=1378 + _globals['_DERIVATIVEPOSITION']._serialized_start=1381 + _globals['_DERIVATIVEPOSITION']._serialized_end=1813 + _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_start=1815 + _globals['_ACCOUNTPORTFOLIOBALANCESREQUEST']._serialized_end=1907 + _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_start=1909 + _globals['_ACCOUNTPORTFOLIOBALANCESRESPONSE']._serialized_end=2017 + _globals['_PORTFOLIOBALANCES']._serialized_start=2020 + _globals['_PORTFOLIOBALANCES']._serialized_end=2257 + _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_start=2260 + _globals['_STREAMACCOUNTPORTFOLIOREQUEST']._serialized_end=2389 + _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_start=2392 + _globals['_STREAMACCOUNTPORTFOLIORESPONSE']._serialized_end=2557 + _globals['_INJECTIVEPORTFOLIORPC']._serialized_start=2560 + _globals['_INJECTIVEPORTFOLIORPC']._serialized_end=3101 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_referral_rpc_pb2.py b/pyinjective/proto/exchange/injective_referral_rpc_pb2.py new file mode 100644 index 00000000..189f038c --- /dev/null +++ b/pyinjective/proto/exchange/injective_referral_rpc_pb2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: exchange/injective_referral_rpc.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_referral_rpc.proto\x12\x16injective_referral_rpc\"F\n\x19GetReferrerDetailsRequest\x12)\n\x10referrer_address\x18\x01 \x01(\tR\x0freferrerAddress\"\xe3\x01\n\x1aGetReferrerDetailsResponse\x12\x43\n\x08invitees\x18\x01 \x03(\x0b\x32\'.injective_referral_rpc.ReferralInviteeR\x08invitees\x12)\n\x10total_commission\x18\x02 \x01(\tR\x0ftotalCommission\x12\x30\n\x14total_trading_volume\x18\x03 \x01(\tR\x12totalTradingVolume\x12#\n\rreferrer_code\x18\x04 \x01(\tR\x0creferrerCode\"\x8f\x01\n\x0fReferralInvitee\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x1e\n\ncommission\x18\x02 \x01(\tR\ncommission\x12%\n\x0etrading_volume\x18\x03 \x01(\tR\rtradingVolume\x12\x1b\n\tjoin_date\x18\x04 \x01(\tR\x08joinDate\"C\n\x18GetInviteeDetailsRequest\x12\'\n\x0finvitee_address\x18\x01 \x01(\tR\x0einviteeAddress\"\xb0\x01\n\x19GetInviteeDetailsResponse\x12\x1a\n\x08referrer\x18\x01 \x01(\tR\x08referrer\x12\x1b\n\tused_code\x18\x02 \x01(\tR\x08usedCode\x12%\n\x0etrading_volume\x18\x03 \x01(\tR\rtradingVolume\x12\x1b\n\tjoined_at\x18\x04 \x01(\tR\x08joinedAt\x12\x16\n\x06\x61\x63tive\x18\x05 \x01(\x08R\x06\x61\x63tive\"?\n\x18GetReferrerByCodeRequest\x12#\n\rreferral_code\x18\x01 \x01(\tR\x0creferralCode\"F\n\x19GetReferrerByCodeResponse\x12)\n\x10referrer_address\x18\x01 \x01(\tR\x0freferrerAddress2\x87\x03\n\x14InjectiveReferralRPC\x12{\n\x12GetReferrerDetails\x12\x31.injective_referral_rpc.GetReferrerDetailsRequest\x1a\x32.injective_referral_rpc.GetReferrerDetailsResponse\x12x\n\x11GetInviteeDetails\x12\x30.injective_referral_rpc.GetInviteeDetailsRequest\x1a\x31.injective_referral_rpc.GetInviteeDetailsResponse\x12x\n\x11GetReferrerByCode\x12\x30.injective_referral_rpc.GetReferrerByCodeRequest\x1a\x31.injective_referral_rpc.GetReferrerByCodeResponseB\xc2\x01\n\x1a\x63om.injective_referral_rpcB\x19InjectiveReferralRpcProtoP\x01Z\x19/injective_referral_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveReferralRpc\xca\x02\x14InjectiveReferralRpc\xe2\x02 InjectiveReferralRpc\\GPBMetadata\xea\x02\x14InjectiveReferralRpcb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exchange.injective_referral_rpc_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.injective_referral_rpcB\031InjectiveReferralRpcProtoP\001Z\031/injective_referral_rpcpb\242\002\003IXX\252\002\024InjectiveReferralRpc\312\002\024InjectiveReferralRpc\342\002 InjectiveReferralRpc\\GPBMetadata\352\002\024InjectiveReferralRpc' + _globals['_GETREFERRERDETAILSREQUEST']._serialized_start=65 + _globals['_GETREFERRERDETAILSREQUEST']._serialized_end=135 + _globals['_GETREFERRERDETAILSRESPONSE']._serialized_start=138 + _globals['_GETREFERRERDETAILSRESPONSE']._serialized_end=365 + _globals['_REFERRALINVITEE']._serialized_start=368 + _globals['_REFERRALINVITEE']._serialized_end=511 + _globals['_GETINVITEEDETAILSREQUEST']._serialized_start=513 + _globals['_GETINVITEEDETAILSREQUEST']._serialized_end=580 + _globals['_GETINVITEEDETAILSRESPONSE']._serialized_start=583 + _globals['_GETINVITEEDETAILSRESPONSE']._serialized_end=759 + _globals['_GETREFERRERBYCODEREQUEST']._serialized_start=761 + _globals['_GETREFERRERBYCODEREQUEST']._serialized_end=824 + _globals['_GETREFERRERBYCODERESPONSE']._serialized_start=826 + _globals['_GETREFERRERBYCODERESPONSE']._serialized_end=896 + _globals['_INJECTIVEREFERRALRPC']._serialized_start=899 + _globals['_INJECTIVEREFERRALRPC']._serialized_end=1290 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py new file mode 100644 index 00000000..64f0ae10 --- /dev/null +++ b/pyinjective/proto/exchange/injective_referral_rpc_pb2_grpc.py @@ -0,0 +1,170 @@ +# 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.exchange import injective_referral_rpc_pb2 as exchange_dot_injective__referral__rpc__pb2 + + +class InjectiveReferralRPCStub(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetReferrerDetails = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetReferrerDetails', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.FromString, + _registered_method=True) + self.GetInviteeDetails = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetInviteeDetails', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.FromString, + _registered_method=True) + self.GetReferrerByCode = channel.unary_unary( + '/injective_referral_rpc.InjectiveReferralRPC/GetReferrerByCode', + request_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.SerializeToString, + response_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.FromString, + _registered_method=True) + + +class InjectiveReferralRPCServicer(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + def GetReferrerDetails(self, request, context): + """Get referrer details including their invitees, commissions and trading + volumes + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetInviteeDetails(self, request, context): + """Get invitee details including their referrer, trading volume and join date + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetReferrerByCode(self, request, context): + """Get referrer details by their referral code + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_InjectiveReferralRPCServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetReferrerDetails': grpc.unary_unary_rpc_method_handler( + servicer.GetReferrerDetails, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.SerializeToString, + ), + 'GetInviteeDetails': grpc.unary_unary_rpc_method_handler( + servicer.GetInviteeDetails, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.SerializeToString, + ), + 'GetReferrerByCode': grpc.unary_unary_rpc_method_handler( + servicer.GetReferrerByCode, + request_deserializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.FromString, + response_serializer=exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective_referral_rpc.InjectiveReferralRPC', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective_referral_rpc.InjectiveReferralRPC', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class InjectiveReferralRPC(object): + """InjectiveReferralRPC defines gRPC API for referral system + """ + + @staticmethod + def GetReferrerDetails(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_referral_rpc.InjectiveReferralRPC/GetReferrerDetails', + exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetReferrerDetailsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetInviteeDetails(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_referral_rpc.InjectiveReferralRPC/GetInviteeDetails', + exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetInviteeDetailsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetReferrerByCode(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_referral_rpc.InjectiveReferralRPC/GetReferrerByCode', + exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeRequest.SerializeToString, + exchange_dot_injective__referral__rpc__pb2.GetReferrerByCodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py index 69db7106..4babfd85 100644 --- a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xbf\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xc5\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc1\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xc7\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"4\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -77,49 +77,49 @@ _globals['_STREAMORDERSRESPONSE']._serialized_start=4667 _globals['_STREAMORDERSRESPONSE']._serialized_end=4825 _globals['_TRADESREQUEST']._serialized_start=4828 - _globals['_TRADESREQUEST']._serialized_end=5275 - _globals['_TRADESRESPONSE']._serialized_start=5278 - _globals['_TRADESRESPONSE']._serialized_end=5419 - _globals['_SPOTTRADE']._serialized_start=5422 - _globals['_SPOTTRADE']._serialized_end=5856 - _globals['_STREAMTRADESREQUEST']._serialized_start=5859 - _globals['_STREAMTRADESREQUEST']._serialized_end=6312 - _globals['_STREAMTRADESRESPONSE']._serialized_start=6315 - _globals['_STREAMTRADESRESPONSE']._serialized_end=6468 - _globals['_TRADESV2REQUEST']._serialized_start=6471 - _globals['_TRADESV2REQUEST']._serialized_end=6920 - _globals['_TRADESV2RESPONSE']._serialized_start=6923 - _globals['_TRADESV2RESPONSE']._serialized_end=7066 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=7069 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=7524 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=7527 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=7682 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=7685 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=7822 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=7825 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=7985 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=7988 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=8194 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=8196 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=8290 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=8293 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=8731 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=8734 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=8889 - _globals['_SPOTORDERHISTORY']._serialized_start=8892 - _globals['_SPOTORDERHISTORY']._serialized_end=9391 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=9394 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=9614 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=9617 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=9784 - _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_start=9787 - _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_end=9986 - _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_start=9989 - _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_end=10138 - _globals['_ATOMICSWAP']._serialized_start=10141 - _globals['_ATOMICSWAP']._serialized_end=10621 - _globals['_COIN']._serialized_start=10623 - _globals['_COIN']._serialized_end=10675 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10678 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=12884 + _globals['_TRADESREQUEST']._serialized_end=5312 + _globals['_TRADESRESPONSE']._serialized_start=5315 + _globals['_TRADESRESPONSE']._serialized_end=5456 + _globals['_SPOTTRADE']._serialized_start=5459 + _globals['_SPOTTRADE']._serialized_end=5893 + _globals['_STREAMTRADESREQUEST']._serialized_start=5896 + _globals['_STREAMTRADESREQUEST']._serialized_end=6386 + _globals['_STREAMTRADESRESPONSE']._serialized_start=6389 + _globals['_STREAMTRADESRESPONSE']._serialized_end=6542 + _globals['_TRADESV2REQUEST']._serialized_start=6545 + _globals['_TRADESV2REQUEST']._serialized_end=7031 + _globals['_TRADESV2RESPONSE']._serialized_start=7034 + _globals['_TRADESV2RESPONSE']._serialized_end=7177 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=7180 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=7672 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=7675 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=7830 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=7833 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=7970 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=7973 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=8133 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=8136 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=8342 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=8344 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=8438 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=8441 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=8879 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=8882 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=9037 + _globals['_SPOTORDERHISTORY']._serialized_start=9040 + _globals['_SPOTORDERHISTORY']._serialized_end=9539 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=9542 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=9762 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=9765 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=9932 + _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_start=9935 + _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_end=10134 + _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_start=10137 + _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_end=10286 + _globals['_ATOMICSWAP']._serialized_start=10289 + _globals['_ATOMICSWAP']._serialized_end=10769 + _globals['_COIN']._serialized_start=10771 + _globals['_COIN']._serialized_end=10852 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10855 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=13061 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py index 833b12d5..35a90018 100644 --- a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\xf6\x02\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\xd9\n\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next2\x9a\x01\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponseB\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\x9c\x04\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\x12,\n\x12last_executed_time\x18\x0c \x01(\x12R\x10lastExecutedTime\x12\x19\n\x08with_tvl\x18\r \x01(\x08R\x07withTvl\x12\x30\n\x14is_trailing_strategy\x18\x0e \x01(\x08R\x12isTrailingStrategy\x12)\n\x10with_performance\x18\x0f \x01(\x08R\x0fwithPerformance\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\x9f\x10\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\x12(\n\x10last_executed_at\x18\" \x01(\x12R\x0elastExecutedAt\x12$\n\x0etrail_up_price\x18# \x01(\tR\x0ctrailUpPrice\x12(\n\x10trail_down_price\x18$ \x01(\tR\x0etrailDownPrice\x12(\n\x10trail_up_counter\x18% \x01(\x12R\x0etrailUpCounter\x12,\n\x12trail_down_counter\x18& \x01(\x12R\x10trailDownCounter\x12\x10\n\x03tvl\x18\' \x01(\tR\x03tvl\x12\x10\n\x03pnl\x18( \x01(\tR\x03pnl\x12\x19\n\x08pnl_perc\x18) \x01(\tR\x07pnlPerc\x12$\n\x0epnl_updated_at\x18* \x01(\x12R\x0cpnlUpdatedAt\x12 \n\x0bperformance\x18+ \x01(\tR\x0bperformance\x12\x10\n\x03roi\x18, \x01(\tR\x03roi\x12,\n\x12initial_base_price\x18- \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18. \x01(\tR\x11initialQuotePrice\x12,\n\x12\x63urrent_base_price\x18/ \x01(\tR\x10\x63urrentBasePrice\x12.\n\x13\x63urrent_quote_price\x18\x30 \x01(\tR\x11\x63urrentQuotePrice\x12(\n\x10\x66inal_base_price\x18\x31 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x32 \x01(\tR\x0f\x66inalQuotePrice\x12G\n\nfinal_data\x18\x33 \x01(\x0b\x32(.injective_trading_rpc.StrategyFinalDataR\tfinalData\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x83\x03\n\x11StrategyFinalData\x12.\n\x13initial_base_amount\x18\x01 \x01(\tR\x11initialBaseAmount\x12\x30\n\x14initial_quote_amount\x18\x02 \x01(\tR\x12initialQuoteAmount\x12*\n\x11\x66inal_base_amount\x18\x03 \x01(\tR\x0f\x66inalBaseAmount\x12,\n\x12\x66inal_quote_amount\x18\x04 \x01(\tR\x10\x66inalQuoteAmount\x12,\n\x12initial_base_price\x18\x05 \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18\x06 \x01(\tR\x11initialQuotePrice\x12(\n\x10\x66inal_base_price\x18\x07 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x08 \x01(\tR\x0f\x66inalQuotePrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x18\n\x16GetTradingStatsRequest\"\xf4\x01\n\x17GetTradingStatsResponse\x12:\n\x19\x61\x63tive_trading_strategies\x18\x01 \x01(\x04R\x17\x61\x63tiveTradingStrategies\x12G\n total_trading_strategies_created\x18\x02 \x01(\x04R\x1dtotalTradingStrategiesCreated\x12\x1b\n\ttotal_tvl\x18\x03 \x01(\tR\x08totalTvl\x12\x37\n\x07markets\x18\x04 \x03(\x0b\x32\x1d.injective_trading_rpc.MarketR\x07markets\"a\n\x06Market\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12:\n\x19\x61\x63tive_trading_strategies\x18\x02 \x01(\x04R\x17\x61\x63tiveTradingStrategies2\x8c\x02\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponse\x12p\n\x0fGetTradingStats\x12-.injective_trading_rpc.GetTradingStatsRequest\x1a..injective_trading_rpc.GetTradingStatsResponseB\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,15 +23,23 @@ _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective_trading_rpcB\030InjectiveTradingRpcProtoP\001Z\030/injective_trading_rpcpb\242\002\003IXX\252\002\023InjectiveTradingRpc\312\002\023InjectiveTradingRpc\342\002\037InjectiveTradingRpc\\GPBMetadata\352\002\023InjectiveTradingRpc' _globals['_LISTTRADINGSTRATEGIESREQUEST']._serialized_start=64 - _globals['_LISTTRADINGSTRATEGIESREQUEST']._serialized_end=438 - _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_start=441 - _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_end=599 - _globals['_TRADINGSTRATEGY']._serialized_start=602 - _globals['_TRADINGSTRATEGY']._serialized_end=1971 - _globals['_EXITCONFIG']._serialized_start=1973 - _globals['_EXITCONFIG']._serialized_end=2045 - _globals['_PAGING']._serialized_start=2048 - _globals['_PAGING']._serialized_end=2182 - _globals['_INJECTIVETRADINGRPC']._serialized_start=2185 - _globals['_INJECTIVETRADINGRPC']._serialized_end=2339 + _globals['_LISTTRADINGSTRATEGIESREQUEST']._serialized_end=604 + _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_start=607 + _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_end=765 + _globals['_TRADINGSTRATEGY']._serialized_start=768 + _globals['_TRADINGSTRATEGY']._serialized_end=2847 + _globals['_EXITCONFIG']._serialized_start=2849 + _globals['_EXITCONFIG']._serialized_end=2921 + _globals['_STRATEGYFINALDATA']._serialized_start=2924 + _globals['_STRATEGYFINALDATA']._serialized_end=3311 + _globals['_PAGING']._serialized_start=3314 + _globals['_PAGING']._serialized_end=3448 + _globals['_GETTRADINGSTATSREQUEST']._serialized_start=3450 + _globals['_GETTRADINGSTATSREQUEST']._serialized_end=3474 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_start=3477 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_end=3721 + _globals['_MARKET']._serialized_start=3723 + _globals['_MARKET']._serialized_end=3820 + _globals['_INJECTIVETRADINGRPC']._serialized_start=3823 + _globals['_INJECTIVETRADINGRPC']._serialized_end=4091 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py index f0c3e8df..5ec0dd52 100644 --- a/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py @@ -21,6 +21,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__trading__rpc__pb2.ListTradingStrategiesRequest.SerializeToString, response_deserializer=exchange_dot_injective__trading__rpc__pb2.ListTradingStrategiesResponse.FromString, _registered_method=True) + self.GetTradingStats = channel.unary_unary( + '/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats', + request_serializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsResponse.FromString, + _registered_method=True) class InjectiveTradingRPCServicer(object): @@ -35,6 +40,13 @@ def ListTradingStrategies(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetTradingStats(self, request, context): + """GetStats returns global statistics in the last 24hs + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveTradingRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -43,6 +55,11 @@ def add_InjectiveTradingRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__trading__rpc__pb2.ListTradingStrategiesRequest.FromString, response_serializer=exchange_dot_injective__trading__rpc__pb2.ListTradingStrategiesResponse.SerializeToString, ), + 'GetTradingStats': grpc.unary_unary_rpc_method_handler( + servicer.GetTradingStats, + request_deserializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsRequest.FromString, + response_serializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_trading_rpc.InjectiveTradingRPC', rpc_method_handlers) @@ -82,3 +99,30 @@ def ListTradingStrategies(request, timeout, metadata, _registered_method=True) + + @staticmethod + def GetTradingStats(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_trading_rpc.InjectiveTradingRPC/GetTradingStats', + exchange_dot_injective__trading__rpc__pb2.GetTradingStatsRequest.SerializeToString, + exchange_dot_injective__trading__rpc__pb2.GetTradingStatsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/google/api/client_pb2.py b/pyinjective/proto/google/api/client_pb2.py index 5aeb6aad..aab7d140 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\"\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') +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\"\x87\x03\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\xd2\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\x12@\n\x1cunversioned_package_disabled\x18\x03 \x01(\x08R\x1aunversionedPackageDisabled\"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\"\xe4\x01\n\nGoSettings\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".google.api.CommonLanguageSettingsR\x06\x63ommon\x12V\n\x10renamed_services\x18\x02 \x03(\x0b\x32+.google.api.GoSettings.RenamedServicesEntryR\x0frenamedServices\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\"\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\"u\n\x18SelectiveGapicGeneration\x12\x18\n\x07methods\x18\x01 \x03(\tR\x07methods\x12?\n\x1cgenerate_omitted_as_internal\x18\x02 \x01(\x08R\x19generateOmittedAsInternal*\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,10 +33,12 @@ _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=3738 - _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=3901 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=3903 - _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=4006 + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._loaded_options = None + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_options = b'8\001' + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_start=4026 + _globals['_CLIENTLIBRARYORGANIZATION']._serialized_end=4189 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_start=4191 + _globals['_CLIENTLIBRARYDESTINATION']._serialized_end=4294 _globals['_COMMONLANGUAGESETTINGS']._serialized_start=137 _globals['_COMMONLANGUAGESETTINGS']._serialized_end=385 _globals['_CLIENTLIBRARYSETTINGS']._serialized_start=388 @@ -52,25 +54,27 @@ _globals['_PHPSETTINGS']._serialized_start=2040 _globals['_PHPSETTINGS']._serialized_end=2113 _globals['_PYTHONSETTINGS']._serialized_start=2116 - _globals['_PYTHONSETTINGS']._serialized_end=2441 + _globals['_PYTHONSETTINGS']._serialized_end=2507 _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 + _globals['_PYTHONSETTINGS_EXPERIMENTALFEATURES']._serialized_end=2507 + _globals['_NODESETTINGS']._serialized_start=2509 + _globals['_NODESETTINGS']._serialized_end=2583 + _globals['_DOTNETSETTINGS']._serialized_start=2586 + _globals['_DOTNETSETTINGS']._serialized_end=3144 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=3009 + _globals['_DOTNETSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3075 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_start=3077 + _globals['_DOTNETSETTINGS_RENAMEDRESOURCESENTRY']._serialized_end=3144 + _globals['_RUBYSETTINGS']._serialized_start=3146 + _globals['_RUBYSETTINGS']._serialized_end=3220 + _globals['_GOSETTINGS']._serialized_start=3223 + _globals['_GOSETTINGS']._serialized_end=3451 + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_start=3009 + _globals['_GOSETTINGS_RENAMEDSERVICESENTRY']._serialized_end=3075 + _globals['_METHODSETTINGS']._serialized_start=3454 + _globals['_METHODSETTINGS']._serialized_end=3904 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_start=3628 + _globals['_METHODSETTINGS_LONGRUNNING']._serialized_end=3904 + _globals['_SELECTIVEGAPICGENERATION']._serialized_start=3906 + _globals['_SELECTIVEGAPICGENERATION']._serialized_end=4023 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/google/api/http_pb2.py b/pyinjective/proto/google/api/http_pb2.py index a2003b27..a0dc8f5f 100644 --- a/pyinjective/proto/google/api/http_pb2.py +++ b/pyinjective/proto/google/api/http_pb2.py @@ -14,14 +14,14 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15google/api/http.proto\x12\ngoogle.api\"y\n\x04Http\x12*\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRuleR\x05rules\x12\x45\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08R\x1c\x66ullyDecodeReservedExpansion\"\xda\x02\n\x08HttpRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12\x12\n\x03get\x18\x02 \x01(\tH\x00R\x03get\x12\x12\n\x03put\x18\x03 \x01(\tH\x00R\x03put\x12\x14\n\x04post\x18\x04 \x01(\tH\x00R\x04post\x12\x18\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00R\x06\x64\x65lete\x12\x16\n\x05patch\x18\x06 \x01(\tH\x00R\x05patch\x12\x37\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00R\x06\x63ustom\x12\x12\n\x04\x62ody\x18\x07 \x01(\tR\x04\x62ody\x12#\n\rresponse_body\x18\x0c \x01(\tR\x0cresponseBody\x12\x45\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleR\x12\x61\x64\x64itionalBindingsB\t\n\x07pattern\";\n\x11\x43ustomHttpPattern\x12\x12\n\x04kind\x18\x01 \x01(\tR\x04kind\x12\x12\n\x04path\x18\x02 \x01(\tR\x04pathB\xaa\x01\n\x0e\x63om.google.apiB\tHttpProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\x15google/api/http.proto\x12\ngoogle.api\"y\n\x04Http\x12*\n\x05rules\x18\x01 \x03(\x0b\x32\x14.google.api.HttpRuleR\x05rules\x12\x45\n\x1f\x66ully_decode_reserved_expansion\x18\x02 \x01(\x08R\x1c\x66ullyDecodeReservedExpansion\"\xda\x02\n\x08HttpRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12\x12\n\x03get\x18\x02 \x01(\tH\x00R\x03get\x12\x12\n\x03put\x18\x03 \x01(\tH\x00R\x03put\x12\x14\n\x04post\x18\x04 \x01(\tH\x00R\x04post\x12\x18\n\x06\x64\x65lete\x18\x05 \x01(\tH\x00R\x06\x64\x65lete\x12\x16\n\x05patch\x18\x06 \x01(\tH\x00R\x05patch\x12\x37\n\x06\x63ustom\x18\x08 \x01(\x0b\x32\x1d.google.api.CustomHttpPatternH\x00R\x06\x63ustom\x12\x12\n\x04\x62ody\x18\x07 \x01(\tR\x04\x62ody\x12#\n\rresponse_body\x18\x0c \x01(\tR\x0cresponseBody\x12\x45\n\x13\x61\x64\x64itional_bindings\x18\x0b \x03(\x0b\x32\x14.google.api.HttpRuleR\x12\x61\x64\x64itionalBindingsB\t\n\x07pattern\";\n\x11\x43ustomHttpPattern\x12\x12\n\x04kind\x18\x01 \x01(\tR\x04kind\x12\x12\n\x04path\x18\x02 \x01(\tR\x04pathB\xa7\x01\n\x0e\x63om.google.apiB\tHttpProtoP\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) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.api.http_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\tHttpProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_HTTP']._serialized_start=37 _globals['_HTTP']._serialized_end=158 _globals['_HTTPRULE']._serialized_start=161 diff --git a/pyinjective/proto/google/api/resource_pb2.py b/pyinjective/proto/google/api/resource_pb2.py index c7f27cc2..b7cc3692 100644 --- a/pyinjective/proto/google/api/resource_pb2.py +++ b/pyinjective/proto/google/api/resource_pb2.py @@ -15,14 +15,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19google/api/resource.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"\xaa\x03\n\x12ResourceDescriptor\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07pattern\x18\x02 \x03(\tR\x07pattern\x12\x1d\n\nname_field\x18\x03 \x01(\tR\tnameField\x12@\n\x07history\x18\x04 \x01(\x0e\x32&.google.api.ResourceDescriptor.HistoryR\x07history\x12\x16\n\x06plural\x18\x05 \x01(\tR\x06plural\x12\x1a\n\x08singular\x18\x06 \x01(\tR\x08singular\x12:\n\x05style\x18\n \x03(\x0e\x32$.google.api.ResourceDescriptor.StyleR\x05style\"[\n\x07History\x12\x17\n\x13HISTORY_UNSPECIFIED\x10\x00\x12\x1d\n\x19ORIGINALLY_SINGLE_PATTERN\x10\x01\x12\x18\n\x14\x46UTURE_MULTI_PATTERN\x10\x02\"8\n\x05Style\x12\x15\n\x11STYLE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44\x45\x43LARATIVE_FRIENDLY\x10\x01\"F\n\x11ResourceReference\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nchild_type\x18\x02 \x01(\tR\tchildType:l\n\x12resource_reference\x12\x1d.google.protobuf.FieldOptions\x18\x9f\x08 \x01(\x0b\x32\x1d.google.api.ResourceReferenceR\x11resourceReference:n\n\x13resource_definition\x12\x1c.google.protobuf.FileOptions\x18\x9d\x08 \x03(\x0b\x32\x1e.google.api.ResourceDescriptorR\x12resourceDefinition:\\\n\x08resource\x12\x1f.google.protobuf.MessageOptions\x18\x9d\x08 \x01(\x0b\x32\x1e.google.api.ResourceDescriptorR\x08resourceB\xae\x01\n\x0e\x63om.google.apiB\rResourceProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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/resource.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"\xaa\x03\n\x12ResourceDescriptor\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07pattern\x18\x02 \x03(\tR\x07pattern\x12\x1d\n\nname_field\x18\x03 \x01(\tR\tnameField\x12@\n\x07history\x18\x04 \x01(\x0e\x32&.google.api.ResourceDescriptor.HistoryR\x07history\x12\x16\n\x06plural\x18\x05 \x01(\tR\x06plural\x12\x1a\n\x08singular\x18\x06 \x01(\tR\x08singular\x12:\n\x05style\x18\n \x03(\x0e\x32$.google.api.ResourceDescriptor.StyleR\x05style\"[\n\x07History\x12\x17\n\x13HISTORY_UNSPECIFIED\x10\x00\x12\x1d\n\x19ORIGINALLY_SINGLE_PATTERN\x10\x01\x12\x18\n\x14\x46UTURE_MULTI_PATTERN\x10\x02\"8\n\x05Style\x12\x15\n\x11STYLE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44\x45\x43LARATIVE_FRIENDLY\x10\x01\"F\n\x11ResourceReference\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nchild_type\x18\x02 \x01(\tR\tchildType:l\n\x12resource_reference\x12\x1d.google.protobuf.FieldOptions\x18\x9f\x08 \x01(\x0b\x32\x1d.google.api.ResourceReferenceR\x11resourceReference:n\n\x13resource_definition\x12\x1c.google.protobuf.FileOptions\x18\x9d\x08 \x03(\x0b\x32\x1e.google.api.ResourceDescriptorR\x12resourceDefinition:\\\n\x08resource\x12\x1f.google.protobuf.MessageOptions\x18\x9d\x08 \x01(\x0b\x32\x1e.google.api.ResourceDescriptorR\x08resourceB\xab\x01\n\x0e\x63om.google.apiB\rResourceProtoP\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) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.api.resource_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\rResourceProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\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\rResourceProtoP\001ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_RESOURCEDESCRIPTOR']._serialized_start=76 _globals['_RESOURCEDESCRIPTOR']._serialized_end=502 _globals['_RESOURCEDESCRIPTOR_HISTORY']._serialized_start=353 diff --git a/pyinjective/proto/google/api/visibility_pb2.py b/pyinjective/proto/google/api/visibility_pb2.py index 1e557b82..59d234e8 100644 --- a/pyinjective/proto/google/api/visibility_pb2.py +++ b/pyinjective/proto/google/api/visibility_pb2.py @@ -15,14 +15,14 @@ from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bgoogle/api/visibility.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\">\n\nVisibility\x12\x30\n\x05rules\x18\x01 \x03(\x0b\x32\x1a.google.api.VisibilityRuleR\x05rules\"N\n\x0eVisibilityRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12 \n\x0brestriction\x18\x02 \x01(\tR\x0brestriction:d\n\x0f\x65num_visibility\x12\x1c.google.protobuf.EnumOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0e\x65numVisibility:k\n\x10value_visibility\x12!.google.protobuf.EnumValueOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0fvalueVisibility:g\n\x10\x66ield_visibility\x12\x1d.google.protobuf.FieldOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0f\x66ieldVisibility:m\n\x12message_visibility\x12\x1f.google.protobuf.MessageOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x11messageVisibility:j\n\x11method_visibility\x12\x1e.google.protobuf.MethodOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x10methodVisibility:e\n\x0e\x61pi_visibility\x12\x1f.google.protobuf.ServiceOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\rapiVisibilityB\xae\x01\n\x0e\x63om.google.apiB\x0fVisibilityProtoP\x01Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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\x1bgoogle/api/visibility.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\">\n\nVisibility\x12\x30\n\x05rules\x18\x01 \x03(\x0b\x32\x1a.google.api.VisibilityRuleR\x05rules\"N\n\x0eVisibilityRule\x12\x1a\n\x08selector\x18\x01 \x01(\tR\x08selector\x12 \n\x0brestriction\x18\x02 \x01(\tR\x0brestriction:d\n\x0f\x65num_visibility\x12\x1c.google.protobuf.EnumOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0e\x65numVisibility:k\n\x10value_visibility\x12!.google.protobuf.EnumValueOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0fvalueVisibility:g\n\x10\x66ield_visibility\x12\x1d.google.protobuf.FieldOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x0f\x66ieldVisibility:m\n\x12message_visibility\x12\x1f.google.protobuf.MessageOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x11messageVisibility:j\n\x11method_visibility\x12\x1e.google.protobuf.MethodOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\x10methodVisibility:e\n\x0e\x61pi_visibility\x12\x1f.google.protobuf.ServiceOptions\x18\xaf\xca\xbc\" \x01(\x0b\x32\x1a.google.api.VisibilityRuleR\rapiVisibilityB\xab\x01\n\x0e\x63om.google.apiB\x0fVisibilityProtoP\x01Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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.visibility_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.apiB\017VisibilityProtoP\001Z?google.golang.org/genproto/googleapis/api/visibility;visibility\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\017VisibilityProtoP\001Z?google.golang.org/genproto/googleapis/api/visibility;visibility\242\002\003GAX\252\002\nGoogle.Api\312\002\nGoogle\\Api\342\002\026Google\\Api\\GPBMetadata\352\002\013Google::Api' _globals['_VISIBILITY']._serialized_start=77 _globals['_VISIBILITY']._serialized_end=139 _globals['_VISIBILITYRULE']._serialized_start=141 diff --git a/pyinjective/proto/google/rpc/error_details_pb2.py b/pyinjective/proto/google/rpc/error_details_pb2.py index 69125fdd..b2d99b24 100644 --- a/pyinjective/proto/google/rpc/error_details_pb2.py +++ b/pyinjective/proto/google/rpc/error_details_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1egoogle/rpc/error_details.proto\x12\ngoogle.rpc\x1a\x1egoogle/protobuf/duration.proto\"\xb9\x01\n\tErrorInfo\x12\x16\n\x06reason\x18\x01 \x01(\tR\x06reason\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12?\n\x08metadata\x18\x03 \x03(\x0b\x32#.google.rpc.ErrorInfo.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"G\n\tRetryInfo\x12:\n\x0bretry_delay\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\nretryDelay\"H\n\tDebugInfo\x12#\n\rstack_entries\x18\x01 \x03(\tR\x0cstackEntries\x12\x16\n\x06\x64\x65tail\x18\x02 \x01(\tR\x06\x64\x65tail\"\x9b\x01\n\x0cQuotaFailure\x12\x42\n\nviolations\x18\x01 \x03(\x0b\x32\".google.rpc.QuotaFailure.ViolationR\nviolations\x1aG\n\tViolation\x12\x18\n\x07subject\x18\x01 \x01(\tR\x07subject\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"\xbd\x01\n\x13PreconditionFailure\x12I\n\nviolations\x18\x01 \x03(\x0b\x32).google.rpc.PreconditionFailure.ViolationR\nviolations\x1a[\n\tViolation\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07subject\x18\x02 \x01(\tR\x07subject\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\"\xa8\x01\n\nBadRequest\x12P\n\x10\x66ield_violations\x18\x01 \x03(\x0b\x32%.google.rpc.BadRequest.FieldViolationR\x0f\x66ieldViolations\x1aH\n\x0e\x46ieldViolation\x12\x14\n\x05\x66ield\x18\x01 \x01(\tR\x05\x66ield\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\"O\n\x0bRequestInfo\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\x12!\n\x0cserving_data\x18\x02 \x01(\tR\x0bservingData\"\x90\x01\n\x0cResourceInfo\x12#\n\rresource_type\x18\x01 \x01(\tR\x0cresourceType\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x14\n\x05owner\x18\x03 \x01(\tR\x05owner\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\"o\n\x04Help\x12+\n\x05links\x18\x01 \x03(\x0b\x32\x15.google.rpc.Help.LinkR\x05links\x1a:\n\x04Link\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url\"D\n\x10LocalizedMessage\x12\x16\n\x06locale\x18\x01 \x01(\tR\x06locale\x12\x18\n\x07message\x18\x02 \x01(\tR\x07messageB\xad\x01\n\x0e\x63om.google.rpcB\x11\x45rrorDetailsProtoP\x01Z?google.golang.org/genproto/googleapis/rpc/errdetails;errdetails\xa2\x02\x03GRX\xaa\x02\nGoogle.Rpc\xca\x02\nGoogle\\Rpc\xe2\x02\x16Google\\Rpc\\GPBMetadata\xea\x02\x0bGoogle::Rpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1egoogle/rpc/error_details.proto\x12\ngoogle.rpc\x1a\x1egoogle/protobuf/duration.proto\"\xb9\x01\n\tErrorInfo\x12\x16\n\x06reason\x18\x01 \x01(\tR\x06reason\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12?\n\x08metadata\x18\x03 \x03(\x0b\x32#.google.rpc.ErrorInfo.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"G\n\tRetryInfo\x12:\n\x0bretry_delay\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\nretryDelay\"H\n\tDebugInfo\x12#\n\rstack_entries\x18\x01 \x03(\tR\x0cstackEntries\x12\x16\n\x06\x64\x65tail\x18\x02 \x01(\tR\x06\x64\x65tail\"\x8e\x04\n\x0cQuotaFailure\x12\x42\n\nviolations\x18\x01 \x03(\x0b\x32\".google.rpc.QuotaFailure.ViolationR\nviolations\x1a\xb9\x03\n\tViolation\x12\x18\n\x07subject\x18\x01 \x01(\tR\x07subject\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x0b\x61pi_service\x18\x03 \x01(\tR\napiService\x12!\n\x0cquota_metric\x18\x04 \x01(\tR\x0bquotaMetric\x12\x19\n\x08quota_id\x18\x05 \x01(\tR\x07quotaId\x12\x62\n\x10quota_dimensions\x18\x06 \x03(\x0b\x32\x37.google.rpc.QuotaFailure.Violation.QuotaDimensionsEntryR\x0fquotaDimensions\x12\x1f\n\x0bquota_value\x18\x07 \x01(\x03R\nquotaValue\x12\x31\n\x12\x66uture_quota_value\x18\x08 \x01(\x03H\x00R\x10\x66utureQuotaValue\x88\x01\x01\x1a\x42\n\x14QuotaDimensionsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x15\n\x13_future_quota_value\"\xbd\x01\n\x13PreconditionFailure\x12I\n\nviolations\x18\x01 \x03(\x0b\x32).google.rpc.PreconditionFailure.ViolationR\nviolations\x1a[\n\tViolation\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07subject\x18\x02 \x01(\tR\x07subject\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\"\x8c\x02\n\nBadRequest\x12P\n\x10\x66ield_violations\x18\x01 \x03(\x0b\x32%.google.rpc.BadRequest.FieldViolationR\x0f\x66ieldViolations\x1a\xab\x01\n\x0e\x46ieldViolation\x12\x14\n\x05\x66ield\x18\x01 \x01(\tR\x05\x66ield\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x16\n\x06reason\x18\x03 \x01(\tR\x06reason\x12I\n\x11localized_message\x18\x04 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageR\x10localizedMessage\"O\n\x0bRequestInfo\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\x12!\n\x0cserving_data\x18\x02 \x01(\tR\x0bservingData\"\x90\x01\n\x0cResourceInfo\x12#\n\rresource_type\x18\x01 \x01(\tR\x0cresourceType\x12#\n\rresource_name\x18\x02 \x01(\tR\x0cresourceName\x12\x14\n\x05owner\x18\x03 \x01(\tR\x05owner\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\"o\n\x04Help\x12+\n\x05links\x18\x01 \x03(\x0b\x32\x15.google.rpc.Help.LinkR\x05links\x1a:\n\x04Link\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x10\n\x03url\x18\x02 \x01(\tR\x03url\"D\n\x10LocalizedMessage\x12\x16\n\x06locale\x18\x01 \x01(\tR\x06locale\x12\x18\n\x07message\x18\x02 \x01(\tR\x07messageB\xad\x01\n\x0e\x63om.google.rpcB\x11\x45rrorDetailsProtoP\x01Z?google.golang.org/genproto/googleapis/rpc/errdetails;errdetails\xa2\x02\x03GRX\xaa\x02\nGoogle.Rpc\xca\x02\nGoogle\\Rpc\xe2\x02\x16Google\\Rpc\\GPBMetadata\xea\x02\x0bGoogle::Rpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,6 +25,8 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\016com.google.rpcB\021ErrorDetailsProtoP\001Z?google.golang.org/genproto/googleapis/rpc/errdetails;errdetails\242\002\003GRX\252\002\nGoogle.Rpc\312\002\nGoogle\\Rpc\342\002\026Google\\Rpc\\GPBMetadata\352\002\013Google::Rpc' _globals['_ERRORINFO_METADATAENTRY']._loaded_options = None _globals['_ERRORINFO_METADATAENTRY']._serialized_options = b'8\001' + _globals['_QUOTAFAILURE_VIOLATION_QUOTADIMENSIONSENTRY']._loaded_options = None + _globals['_QUOTAFAILURE_VIOLATION_QUOTADIMENSIONSENTRY']._serialized_options = b'8\001' _globals['_ERRORINFO']._serialized_start=79 _globals['_ERRORINFO']._serialized_end=264 _globals['_ERRORINFO_METADATAENTRY']._serialized_start=205 @@ -34,25 +36,27 @@ _globals['_DEBUGINFO']._serialized_start=339 _globals['_DEBUGINFO']._serialized_end=411 _globals['_QUOTAFAILURE']._serialized_start=414 - _globals['_QUOTAFAILURE']._serialized_end=569 - _globals['_QUOTAFAILURE_VIOLATION']._serialized_start=498 - _globals['_QUOTAFAILURE_VIOLATION']._serialized_end=569 - _globals['_PRECONDITIONFAILURE']._serialized_start=572 - _globals['_PRECONDITIONFAILURE']._serialized_end=761 - _globals['_PRECONDITIONFAILURE_VIOLATION']._serialized_start=670 - _globals['_PRECONDITIONFAILURE_VIOLATION']._serialized_end=761 - _globals['_BADREQUEST']._serialized_start=764 - _globals['_BADREQUEST']._serialized_end=932 - _globals['_BADREQUEST_FIELDVIOLATION']._serialized_start=860 - _globals['_BADREQUEST_FIELDVIOLATION']._serialized_end=932 - _globals['_REQUESTINFO']._serialized_start=934 - _globals['_REQUESTINFO']._serialized_end=1013 - _globals['_RESOURCEINFO']._serialized_start=1016 - _globals['_RESOURCEINFO']._serialized_end=1160 - _globals['_HELP']._serialized_start=1162 - _globals['_HELP']._serialized_end=1273 - _globals['_HELP_LINK']._serialized_start=1215 - _globals['_HELP_LINK']._serialized_end=1273 - _globals['_LOCALIZEDMESSAGE']._serialized_start=1275 - _globals['_LOCALIZEDMESSAGE']._serialized_end=1343 + _globals['_QUOTAFAILURE']._serialized_end=940 + _globals['_QUOTAFAILURE_VIOLATION']._serialized_start=499 + _globals['_QUOTAFAILURE_VIOLATION']._serialized_end=940 + _globals['_QUOTAFAILURE_VIOLATION_QUOTADIMENSIONSENTRY']._serialized_start=851 + _globals['_QUOTAFAILURE_VIOLATION_QUOTADIMENSIONSENTRY']._serialized_end=917 + _globals['_PRECONDITIONFAILURE']._serialized_start=943 + _globals['_PRECONDITIONFAILURE']._serialized_end=1132 + _globals['_PRECONDITIONFAILURE_VIOLATION']._serialized_start=1041 + _globals['_PRECONDITIONFAILURE_VIOLATION']._serialized_end=1132 + _globals['_BADREQUEST']._serialized_start=1135 + _globals['_BADREQUEST']._serialized_end=1403 + _globals['_BADREQUEST_FIELDVIOLATION']._serialized_start=1232 + _globals['_BADREQUEST_FIELDVIOLATION']._serialized_end=1403 + _globals['_REQUESTINFO']._serialized_start=1405 + _globals['_REQUESTINFO']._serialized_end=1484 + _globals['_RESOURCEINFO']._serialized_start=1487 + _globals['_RESOURCEINFO']._serialized_end=1631 + _globals['_HELP']._serialized_start=1633 + _globals['_HELP']._serialized_end=1744 + _globals['_HELP_LINK']._serialized_start=1686 + _globals['_HELP_LINK']._serialized_end=1744 + _globals['_LOCALIZEDMESSAGE']._serialized_start=1746 + _globals['_LOCALIZEDMESSAGE']._serialized_end=1814 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py b/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py index 4f263d64..0d9cb6d9 100644 --- a/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py +++ b/pyinjective/proto/ibc/core/connection/v1/tx_pb2.py @@ -19,7 +19,7 @@ from pyinjective.proto.ibc.core.connection.v1 import connection_pb2 as ibc_dot_core_dot_connection_dot_v1_dot_connection__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fibc/core/connection/v1/tx.proto\x12\x16ibc.core.connection.v1\x1a\x14gogoproto/gogo.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19google/protobuf/any.proto\x1a\x1fibc/core/client/v1/client.proto\x1a\'ibc/core/connection/v1/connection.proto\"\x8b\x02\n\x15MsgConnectionOpenInit\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12N\n\x0c\x63ounterparty\x18\x02 \x01(\x0b\x32$.ibc.core.connection.v1.CounterpartyB\x04\xc8\xde\x1f\x00R\x0c\x63ounterparty\x12\x39\n\x07version\x18\x03 \x01(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x07version\x12!\n\x0c\x64\x65lay_period\x18\x04 \x01(\x04R\x0b\x64\x65layPeriod\x12\x16\n\x06signer\x18\x05 \x01(\tR\x06signer:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1f\n\x1dMsgConnectionOpenInitResponse\"\xd2\x05\n\x14MsgConnectionOpenTry\x12\x1b\n\tclient_id\x18\x01 \x01(\tR\x08\x63lientId\x12\x38\n\x16previous_connection_id\x18\x02 \x01(\tB\x02\x18\x01R\x14previousConnectionId\x12\x37\n\x0c\x63lient_state\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x63lientState\x12N\n\x0c\x63ounterparty\x18\x04 \x01(\x0b\x32$.ibc.core.connection.v1.CounterpartyB\x04\xc8\xde\x1f\x00R\x0c\x63ounterparty\x12!\n\x0c\x64\x65lay_period\x18\x05 \x01(\x04R\x0b\x64\x65layPeriod\x12T\n\x15\x63ounterparty_versions\x18\x06 \x03(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x14\x63ounterpartyVersions\x12\x43\n\x0cproof_height\x18\x07 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x1d\n\nproof_init\x18\x08 \x01(\x0cR\tproofInit\x12!\n\x0cproof_client\x18\t \x01(\x0cR\x0bproofClient\x12\'\n\x0fproof_consensus\x18\n \x01(\x0cR\x0eproofConsensus\x12K\n\x10\x63onsensus_height\x18\x0b \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusHeight\x12\x16\n\x06signer\x18\x0c \x01(\tR\x06signer\x12;\n\x1ahost_consensus_state_proof\x18\r \x01(\x0cR\x17hostConsensusStateProof:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1e\n\x1cMsgConnectionOpenTryResponse\"\xce\x04\n\x14MsgConnectionOpenAck\x12#\n\rconnection_id\x18\x01 \x01(\tR\x0c\x63onnectionId\x12<\n\x1a\x63ounterparty_connection_id\x18\x02 \x01(\tR\x18\x63ounterpartyConnectionId\x12\x39\n\x07version\x18\x03 \x01(\x0b\x32\x1f.ibc.core.connection.v1.VersionR\x07version\x12\x37\n\x0c\x63lient_state\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x63lientState\x12\x43\n\x0cproof_height\x18\x05 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x1b\n\tproof_try\x18\x06 \x01(\x0cR\x08proofTry\x12!\n\x0cproof_client\x18\x07 \x01(\x0cR\x0bproofClient\x12\'\n\x0fproof_consensus\x18\x08 \x01(\x0cR\x0eproofConsensus\x12K\n\x10\x63onsensus_height\x18\t \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0f\x63onsensusHeight\x12\x16\n\x06signer\x18\n \x01(\tR\x06signer\x12;\n\x1ahost_consensus_state_proof\x18\x0b \x01(\x0cR\x17hostConsensusStateProof:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x1e\n\x1cMsgConnectionOpenAckResponse\"\xca\x01\n\x18MsgConnectionOpenConfirm\x12#\n\rconnection_id\x18\x01 \x01(\tR\x0c\x63onnectionId\x12\x1b\n\tproof_ack\x18\x02 \x01(\x0cR\x08proofAck\x12\x43\n\x0cproof_height\x18\x03 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0bproofHeight\x12\x16\n\x06signer\x18\x04 \x01(\tR\x06signer:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\"\n MsgConnectionOpenConfirmResponse\"x\n\x0fMsgUpdateParams\x12\x16\n\x06signer\x18\x01 \x01(\tR\x06signer\x12<\n\x06params\x18\x02 \x01(\x0b\x32\x1e.ibc.core.connection.v1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:\x0f\x88\xa0\x1f\x00\x82\xe7\xb0*\x06signer\"\x19\n\x17MsgUpdateParamsResponse2\xf4\x04\n\x03Msg\x12z\n\x12\x43onnectionOpenInit\x12-.ibc.core.connection.v1.MsgConnectionOpenInit\x1a\x35.ibc.core.connection.v1.MsgConnectionOpenInitResponse\x12w\n\x11\x43onnectionOpenTry\x12,.ibc.core.connection.v1.MsgConnectionOpenTry\x1a\x34.ibc.core.connection.v1.MsgConnectionOpenTryResponse\x12w\n\x11\x43onnectionOpenAck\x12,.ibc.core.connection.v1.MsgConnectionOpenAck\x1a\x34.ibc.core.connection.v1.MsgConnectionOpenAckResponse\x12\x83\x01\n\x15\x43onnectionOpenConfirm\x12\x30.ibc.core.connection.v1.MsgConnectionOpenConfirm\x1a\x38.ibc.core.connection.v1.MsgConnectionOpenConfirmResponse\x12r\n\x16UpdateConnectionParams\x12\'.ibc.core.connection.v1.MsgUpdateParams\x1a/.ibc.core.connection.v1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xde\x01\n\x1a\x63om.ibc.core.connection.v1B\x07TxProtoP\x01Z\n\x12tracer_json_config\x18\r \x01(\tB\x10\xea\xde\x1f\x0ctracerConfigR\x10tracerJsonConfig\x12;\n\x0fstate_overrides\x18\x0e \x01(\x0c\x42\x12\xea\xde\x1f\x0estateOverridesR\x0estateOverrides\x12;\n\x0f\x62lock_overrides\x18\x0f \x01(\x0c\x42\x12\xea\xde\x1f\x0e\x62lockOverridesR\x0e\x62lockOverridesJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08R\x0e\x64isable_memoryR\x13\x64isable_return_dataB\xd5\x01\n\x14\x63om.injective.evm.v1B\x10TraceConfigProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.evm.v1.trace_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\020TraceConfigProtoP\001ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\242\002\003IEX\252\002\020Injective.Evm.V1\312\002\020Injective\\Evm\\V1\342\002\034Injective\\Evm\\V1\\GPBMetadata\352\002\022Injective::Evm::V1' + _globals['_TRACECONFIG'].fields_by_name['disable_stack']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['disable_stack']._serialized_options = b'\352\336\037\014disableStack' + _globals['_TRACECONFIG'].fields_by_name['disable_storage']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['disable_storage']._serialized_options = b'\352\336\037\016disableStorage' + _globals['_TRACECONFIG'].fields_by_name['enable_memory']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['enable_memory']._serialized_options = b'\352\336\037\014enableMemory' + _globals['_TRACECONFIG'].fields_by_name['enable_return_data']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['enable_return_data']._serialized_options = b'\352\336\037\020enableReturnData' + _globals['_TRACECONFIG'].fields_by_name['tracer_json_config']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['tracer_json_config']._serialized_options = b'\352\336\037\014tracerConfig' + _globals['_TRACECONFIG'].fields_by_name['state_overrides']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['state_overrides']._serialized_options = b'\352\336\037\016stateOverrides' + _globals['_TRACECONFIG'].fields_by_name['block_overrides']._loaded_options = None + _globals['_TRACECONFIG'].fields_by_name['block_overrides']._serialized_options = b'\352\336\037\016blockOverrides' + _globals['_TRACECONFIG']._serialized_start=117 + _globals['_TRACECONFIG']._serialized_end=783 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/trace_config_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/trace_config_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/trace_config_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/evm/v1/transaction_logs_pb2.py b/pyinjective/proto/injective/evm/v1/transaction_logs_pb2.py new file mode 100644 index 00000000..35d1086f --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/transaction_logs_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/transaction_logs.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.injective.evm.v1 import log_pb2 as injective_dot_evm_dot_v1_dot_log__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'injective/evm/v1/transaction_logs.proto\x12\x10injective.evm.v1\x1a\x1ainjective/evm/v1/log.proto\"P\n\x0fTransactionLogs\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12)\n\x04logs\x18\x02 \x03(\x0b\x32\x15.injective.evm.v1.LogR\x04logsB\xd9\x01\n\x14\x63om.injective.evm.v1B\x14TransactionLogsProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.evm.v1.transaction_logs_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\024TransactionLogsProtoP\001ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\242\002\003IEX\252\002\020Injective.Evm.V1\312\002\020Injective\\Evm\\V1\342\002\034Injective\\Evm\\V1\\GPBMetadata\352\002\022Injective::Evm::V1' + _globals['_TRANSACTIONLOGS']._serialized_start=89 + _globals['_TRANSACTIONLOGS']._serialized_end=169 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/transaction_logs_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/transaction_logs_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/transaction_logs_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/evm/v1/tx_pb2.py b/pyinjective/proto/injective/evm/v1/tx_pb2.py new file mode 100644 index 00000000..0af376dc --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/tx_pb2.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/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.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.google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 +from pyinjective.proto.injective.evm.v1 import access_tuple_pb2 as injective_dot_evm_dot_v1_dot_access__tuple__pb2 +from pyinjective.proto.injective.evm.v1 import log_pb2 as injective_dot_evm_dot_v1_dot_log__pb2 +from pyinjective.proto.injective.evm.v1 import params_pb2 as injective_dot_evm_dot_v1_dot_params__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19injective/evm/v1/tx.proto\x12\x10injective.evm.v1\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/protobuf/any.proto\x1a#injective/evm/v1/access_tuple.proto\x1a\x1ainjective/evm/v1/log.proto\x1a\x1dinjective/evm/v1/params.proto\"\x80\x02\n\rMsgEthereumTx\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x04\x64\x61ta\x12\x19\n\x04size\x18\x02 \x01(\x01\x42\x05\xea\xde\x1f\x01-R\x04size\x12\x34\n\x0f\x64\x65precated_hash\x18\x03 \x01(\tB\x0b\xf2\xde\x1f\x07rlp:\"-\"R\x0e\x64\x65precatedHash\x12+\n\x0f\x64\x65precated_from\x18\x04 \x01(\tB\x02\x18\x01R\x0e\x64\x65precatedFrom\x12\x12\n\x04\x66rom\x18\x05 \x01(\x0cR\x04\x66rom\x12$\n\x03raw\x18\x06 \x01(\x0c\x42\x12\xc8\xde\x1f\x00\xda\xde\x1f\nEthereumTxR\x03raw:\r\x88\xa0\x1f\x00\x82\xe7\xb0*\x04\x66rom\"\x91\x02\n\x08LegacyTx\x12\x14\n\x05nonce\x18\x01 \x01(\x04R\x05nonce\x12\x36\n\tgas_price\x18\x02 \x01(\tB\x19\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x08gasPrice\x12\x1e\n\x03gas\x18\x03 \x01(\x04\x42\x0c\xe2\xde\x1f\x08GasLimitR\x03gas\x12\x0e\n\x02to\x18\x04 \x01(\tR\x02to\x12\x39\n\x05value\x18\x05 \x01(\tB#\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x06\x41mountR\x05value\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x0c\n\x01v\x18\x07 \x01(\x0cR\x01v\x12\x0c\n\x01r\x18\x08 \x01(\x0cR\x01r\x12\x0c\n\x01s\x18\t \x01(\x0cR\x01s:\x0e\x88\xa0\x1f\x00\xca\xb4-\x06TxData\"\xbe\x03\n\x0c\x41\x63\x63\x65ssListTx\x12J\n\x08\x63hain_id\x18\x01 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x07\x43hainID\xea\xde\x1f\x07\x63hainIDR\x07\x63hainId\x12\x14\n\x05nonce\x18\x02 \x01(\x04R\x05nonce\x12\x36\n\tgas_price\x18\x03 \x01(\tB\x19\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x08gasPrice\x12\x1e\n\x03gas\x18\x04 \x01(\x04\x42\x0c\xe2\xde\x1f\x08GasLimitR\x03gas\x12\x0e\n\x02to\x18\x05 \x01(\tR\x02to\x12\x39\n\x05value\x18\x06 \x01(\tB#\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x06\x41mountR\x05value\x12\x12\n\x04\x64\x61ta\x18\x07 \x01(\x0cR\x04\x64\x61ta\x12[\n\x08\x61\x63\x63\x65sses\x18\x08 \x03(\x0b\x32\x1d.injective.evm.v1.AccessTupleB \xc8\xde\x1f\x00\xea\xde\x1f\naccessList\xaa\xdf\x1f\nAccessListR\x08\x61\x63\x63\x65sses\x12\x0c\n\x01v\x18\t \x01(\x0cR\x01v\x12\x0c\n\x01r\x18\n \x01(\x0cR\x01r\x12\x0c\n\x01s\x18\x0b \x01(\x0cR\x01s:\x0e\x88\xa0\x1f\x00\xca\xb4-\x06TxData\"\xfc\x03\n\x0c\x44ynamicFeeTx\x12J\n\x08\x63hain_id\x18\x01 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x07\x43hainID\xea\xde\x1f\x07\x63hainIDR\x07\x63hainId\x12\x14\n\x05nonce\x18\x02 \x01(\x04R\x05nonce\x12\x39\n\x0bgas_tip_cap\x18\x03 \x01(\tB\x19\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\tgasTipCap\x12\x39\n\x0bgas_fee_cap\x18\x04 \x01(\tB\x19\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\tgasFeeCap\x12\x1e\n\x03gas\x18\x05 \x01(\x04\x42\x0c\xe2\xde\x1f\x08GasLimitR\x03gas\x12\x0e\n\x02to\x18\x06 \x01(\tR\x02to\x12\x39\n\x05value\x18\x07 \x01(\tB#\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x06\x41mountR\x05value\x12\x12\n\x04\x64\x61ta\x18\x08 \x01(\x0cR\x04\x64\x61ta\x12[\n\x08\x61\x63\x63\x65sses\x18\t \x03(\x0b\x32\x1d.injective.evm.v1.AccessTupleB \xc8\xde\x1f\x00\xea\xde\x1f\naccessList\xaa\xdf\x1f\nAccessListR\x08\x61\x63\x63\x65sses\x12\x0c\n\x01v\x18\n \x01(\x0cR\x01v\x12\x0c\n\x01r\x18\x0b \x01(\x0cR\x01r\x12\x0c\n\x01s\x18\x0c \x01(\x0cR\x01s:\x0e\x88\xa0\x1f\x00\xca\xb4-\x06TxData\"\"\n\x1a\x45xtensionOptionsEthereumTx:\x04\x88\xa0\x1f\x00\"\xc3\x01\n\x15MsgEthereumTxResponse\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12)\n\x04logs\x18\x02 \x03(\x0b\x32\x15.injective.evm.v1.LogR\x04logs\x12\x10\n\x03ret\x18\x03 \x01(\x0cR\x03ret\x12\x19\n\x08vm_error\x18\x04 \x01(\tR\x07vmError\x12\x19\n\x08gas_used\x18\x05 \x01(\x04R\x07gasUsed\x12\x1d\n\nblock_hash\x18\x06 \x01(\x0cR\tblockHash:\x04\x88\xa0\x1f\x00\"\x91\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x36\n\x06params\x18\x02 \x01(\x0b\x32\x18.injective.evm.v1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:\x0e\x82\xe7\xb0*\tauthority\"\x19\n\x17MsgUpdateParamsResponse2\xe9\x01\n\x03Msg\x12}\n\nEthereumTx\x12\x1f.injective.evm.v1.MsgEthereumTx\x1a\'.injective.evm.v1.MsgEthereumTxResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1d/injective/evm/v1/ethereum_tx\x12\\\n\x0cUpdateParams\x12!.injective.evm.v1.MsgUpdateParams\x1a).injective.evm.v1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xcc\x01\n\x14\x63om.injective.evm.v1B\x07TxProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.evm.v1.tx_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\007TxProtoP\001ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\242\002\003IEX\252\002\020Injective.Evm.V1\312\002\020Injective\\Evm\\V1\342\002\034Injective\\Evm\\V1\\GPBMetadata\352\002\022Injective::Evm::V1' + _globals['_MSGETHEREUMTX'].fields_by_name['size']._loaded_options = None + _globals['_MSGETHEREUMTX'].fields_by_name['size']._serialized_options = b'\352\336\037\001-' + _globals['_MSGETHEREUMTX'].fields_by_name['deprecated_hash']._loaded_options = None + _globals['_MSGETHEREUMTX'].fields_by_name['deprecated_hash']._serialized_options = b'\362\336\037\007rlp:\"-\"' + _globals['_MSGETHEREUMTX'].fields_by_name['deprecated_from']._loaded_options = None + _globals['_MSGETHEREUMTX'].fields_by_name['deprecated_from']._serialized_options = b'\030\001' + _globals['_MSGETHEREUMTX'].fields_by_name['raw']._loaded_options = None + _globals['_MSGETHEREUMTX'].fields_by_name['raw']._serialized_options = b'\310\336\037\000\332\336\037\nEthereumTx' + _globals['_MSGETHEREUMTX']._loaded_options = None + _globals['_MSGETHEREUMTX']._serialized_options = b'\210\240\037\000\202\347\260*\004from' + _globals['_LEGACYTX'].fields_by_name['gas_price']._loaded_options = None + _globals['_LEGACYTX'].fields_by_name['gas_price']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int' + _globals['_LEGACYTX'].fields_by_name['gas']._loaded_options = None + _globals['_LEGACYTX'].fields_by_name['gas']._serialized_options = b'\342\336\037\010GasLimit' + _globals['_LEGACYTX'].fields_by_name['value']._loaded_options = None + _globals['_LEGACYTX'].fields_by_name['value']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\006Amount' + _globals['_LEGACYTX']._loaded_options = None + _globals['_LEGACYTX']._serialized_options = b'\210\240\037\000\312\264-\006TxData' + _globals['_ACCESSLISTTX'].fields_by_name['chain_id']._loaded_options = None + _globals['_ACCESSLISTTX'].fields_by_name['chain_id']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\007ChainID\352\336\037\007chainID' + _globals['_ACCESSLISTTX'].fields_by_name['gas_price']._loaded_options = None + _globals['_ACCESSLISTTX'].fields_by_name['gas_price']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int' + _globals['_ACCESSLISTTX'].fields_by_name['gas']._loaded_options = None + _globals['_ACCESSLISTTX'].fields_by_name['gas']._serialized_options = b'\342\336\037\010GasLimit' + _globals['_ACCESSLISTTX'].fields_by_name['value']._loaded_options = None + _globals['_ACCESSLISTTX'].fields_by_name['value']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\006Amount' + _globals['_ACCESSLISTTX'].fields_by_name['accesses']._loaded_options = None + _globals['_ACCESSLISTTX'].fields_by_name['accesses']._serialized_options = b'\310\336\037\000\352\336\037\naccessList\252\337\037\nAccessList' + _globals['_ACCESSLISTTX']._loaded_options = None + _globals['_ACCESSLISTTX']._serialized_options = b'\210\240\037\000\312\264-\006TxData' + _globals['_DYNAMICFEETX'].fields_by_name['chain_id']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['chain_id']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\007ChainID\352\336\037\007chainID' + _globals['_DYNAMICFEETX'].fields_by_name['gas_tip_cap']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['gas_tip_cap']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int' + _globals['_DYNAMICFEETX'].fields_by_name['gas_fee_cap']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['gas_fee_cap']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int' + _globals['_DYNAMICFEETX'].fields_by_name['gas']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['gas']._serialized_options = b'\342\336\037\010GasLimit' + _globals['_DYNAMICFEETX'].fields_by_name['value']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['value']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\006Amount' + _globals['_DYNAMICFEETX'].fields_by_name['accesses']._loaded_options = None + _globals['_DYNAMICFEETX'].fields_by_name['accesses']._serialized_options = b'\310\336\037\000\352\336\037\naccessList\252\337\037\nAccessList' + _globals['_DYNAMICFEETX']._loaded_options = None + _globals['_DYNAMICFEETX']._serialized_options = b'\210\240\037\000\312\264-\006TxData' + _globals['_EXTENSIONOPTIONSETHEREUMTX']._loaded_options = None + _globals['_EXTENSIONOPTIONSETHEREUMTX']._serialized_options = b'\210\240\037\000' + _globals['_MSGETHEREUMTXRESPONSE']._loaded_options = None + _globals['_MSGETHEREUMTXRESPONSE']._serialized_options = b'\210\240\037\000' + _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' + _globals['_MSG']._loaded_options = None + _globals['_MSG']._serialized_options = b'\200\347\260*\001' + _globals['_MSG'].methods_by_name['EthereumTx']._loaded_options = None + _globals['_MSG'].methods_by_name['EthereumTx']._serialized_options = b'\202\323\344\223\002\037\"\035/injective/evm/v1/ethereum_tx' + _globals['_MSGETHEREUMTX']._serialized_start=275 + _globals['_MSGETHEREUMTX']._serialized_end=531 + _globals['_LEGACYTX']._serialized_start=534 + _globals['_LEGACYTX']._serialized_end=807 + _globals['_ACCESSLISTTX']._serialized_start=810 + _globals['_ACCESSLISTTX']._serialized_end=1256 + _globals['_DYNAMICFEETX']._serialized_start=1259 + _globals['_DYNAMICFEETX']._serialized_end=1767 + _globals['_EXTENSIONOPTIONSETHEREUMTX']._serialized_start=1769 + _globals['_EXTENSIONOPTIONSETHEREUMTX']._serialized_end=1803 + _globals['_MSGETHEREUMTXRESPONSE']._serialized_start=1806 + _globals['_MSGETHEREUMTXRESPONSE']._serialized_end=2001 + _globals['_MSGUPDATEPARAMS']._serialized_start=2004 + _globals['_MSGUPDATEPARAMS']._serialized_end=2149 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=2151 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=2176 + _globals['_MSG']._serialized_start=2179 + _globals['_MSG']._serialized_end=2412 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/tx_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/tx_pb2_grpc.py new file mode 100644 index 00000000..1c038d81 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/tx_pb2_grpc.py @@ -0,0 +1,127 @@ +# 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.evm.v1 import tx_pb2 as injective_dot_evm_dot_v1_dot_tx__pb2 + + +class MsgStub(object): + """Msg defines the evm Msg service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.EthereumTx = channel.unary_unary( + '/injective.evm.v1.Msg/EthereumTx', + request_serializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTx.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTxResponse.FromString, + _registered_method=True) + self.UpdateParams = channel.unary_unary( + '/injective.evm.v1.Msg/UpdateParams', + request_serializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + _registered_method=True) + + +class MsgServicer(object): + """Msg defines the evm Msg service. + """ + + def EthereumTx(self, request, context): + """EthereumTx defines a method submitting Ethereum transactions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateParams(self, request, context): + """UpdateParams defined a governance operation for updating the x/evm module + parameters. The authority is hard-coded to the Cosmos SDK x/gov module + account + """ + 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 = { + 'EthereumTx': grpc.unary_unary_rpc_method_handler( + servicer.EthereumTx, + request_deserializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTx.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTxResponse.SerializeToString, + ), + 'UpdateParams': grpc.unary_unary_rpc_method_handler( + servicer.UpdateParams, + request_deserializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParams.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParamsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.evm.v1.Msg', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.evm.v1.Msg', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Msg(object): + """Msg defines the evm Msg service. + """ + + @staticmethod + def EthereumTx(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.evm.v1.Msg/EthereumTx', + injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTx.SerializeToString, + injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTxResponse.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.evm.v1.Msg/UpdateParams', + injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + injective_dot_evm_dot_v1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/evm/v1/tx_result_pb2.py b/pyinjective/proto/injective/evm/v1/tx_result_pb2.py new file mode 100644 index 00000000..a615605b --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/tx_result_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/tx_result.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.evm.v1 import transaction_logs_pb2 as injective_dot_evm_dot_v1_dot_transaction__logs__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n injective/evm/v1/tx_result.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\x1a\'injective/evm/v1/transaction_logs.proto\"\x8b\x02\n\x08TxResult\x12\x46\n\x10\x63ontract_address\x18\x01 \x01(\tB\x1b\xf2\xde\x1f\x17yaml:\"contract_address\"R\x0f\x63ontractAddress\x12\x14\n\x05\x62loom\x18\x02 \x01(\x0cR\x05\x62loom\x12R\n\x07tx_logs\x18\x03 \x01(\x0b\x32!.injective.evm.v1.TransactionLogsB\x16\xc8\xde\x1f\x00\xf2\xde\x1f\x0eyaml:\"tx_logs\"R\x06txLogs\x12\x10\n\x03ret\x18\x04 \x01(\x0cR\x03ret\x12\x1a\n\x08reverted\x18\x05 \x01(\x08R\x08reverted\x12\x19\n\x08gas_used\x18\x06 \x01(\x04R\x07gasUsed:\x04\x88\xa0\x1f\x00\x42\xd2\x01\n\x14\x63om.injective.evm.v1B\rTxResultProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.evm.v1.tx_result_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\rTxResultProtoP\001ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\242\002\003IEX\252\002\020Injective.Evm.V1\312\002\020Injective\\Evm\\V1\342\002\034Injective\\Evm\\V1\\GPBMetadata\352\002\022Injective::Evm::V1' + _globals['_TXRESULT'].fields_by_name['contract_address']._loaded_options = None + _globals['_TXRESULT'].fields_by_name['contract_address']._serialized_options = b'\362\336\037\027yaml:\"contract_address\"' + _globals['_TXRESULT'].fields_by_name['tx_logs']._loaded_options = None + _globals['_TXRESULT'].fields_by_name['tx_logs']._serialized_options = b'\310\336\037\000\362\336\037\016yaml:\"tx_logs\"' + _globals['_TXRESULT']._loaded_options = None + _globals['_TXRESULT']._serialized_options = b'\210\240\037\000' + _globals['_TXRESULT']._serialized_start=118 + _globals['_TXRESULT']._serialized_end=385 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/tx_result_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/tx_result_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/tx_result_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/v1beta1/authz_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/authz_pb2.py index 6fa71602..1805cdca 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/authz_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/authz_pb2.py @@ -14,9 +14,11 @@ 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 +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 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/exchange/v1beta1/authz.proto\x12\x1ainjective.exchange.v1beta1\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\x86\x02\n\x1e\x63om.injective.exchange.v1beta1B\nAuthzProtoP\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/authz.proto\x12\x1ainjective.exchange.v1beta1\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x11\x61mino/amino.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x14gogoproto/gogo.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/BatchUpdateOrdersAuthz\"\x89\x02\n\x1cGenericExchangeAuthorization\x12\x10\n\x03msg\x18\x01 \x01(\tR\x03msg\x12\x82\x01\n\x0bspend_limit\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinBF\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.Coins\x9a\xe7\xb0*\x0clegacy_coins\xa8\xe7\xb0*\x01R\nspendLimit:R\xca\xb4-\"cosmos.authz.v1beta1.Authorization\x8a\xe7\xb0*\'cosmos-sdk/GenericExchangeAuthorizationB\x86\x02\n\x1e\x63om.injective.exchange.v1beta1B\nAuthzProtoP\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) @@ -46,26 +48,32 @@ _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=117 - _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_end=270 - _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_start=273 - _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_end=428 - _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_start=431 - _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_end=596 - _globals['_CANCELSPOTORDERAUTHZ']._serialized_start=599 - _globals['_CANCELSPOTORDERAUTHZ']._serialized_end=742 - _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_start=745 - _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_end=900 - _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_start=903 - _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_end=1068 - _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_start=1071 - _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_end=1238 - _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_start=1241 - _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_end=1418 - _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_start=1421 - _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_end=1576 - _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_start=1579 - _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_end=1746 - _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_start=1749 - _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_end=1947 + _globals['_GENERICEXCHANGEAUTHORIZATION'].fields_by_name['spend_limit']._loaded_options = None + _globals['_GENERICEXCHANGEAUTHORIZATION'].fields_by_name['spend_limit']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins\232\347\260*\014legacy_coins\250\347\260*\001' + _globals['_GENERICEXCHANGEAUTHORIZATION']._loaded_options = None + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_options = b'\312\264-\"cosmos.authz.v1beta1.Authorization\212\347\260*\'cosmos-sdk/GenericExchangeAuthorization' + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_start=171 + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_end=324 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_start=327 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_end=482 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_start=485 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_end=650 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_start=653 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_end=796 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_start=799 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_end=954 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_start=957 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_end=1122 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_start=1125 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_end=1292 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_start=1295 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_end=1472 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_start=1475 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_end=1630 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_start=1633 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_end=1800 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_start=1803 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_end=2001 + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_start=2004 + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_end=2269 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/events_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/events_pb2.py index a500fb8d..2b1cb1c5 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/events_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/events_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/exchange/v1beta1/events.proto\x12\x1ainjective.exchange.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a)injective/exchange/v1beta1/exchange.proto\"\xdc\x01\n\x17\x45ventBatchSpotExecution\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12O\n\rexecutionType\x18\x03 \x01(\x0e\x32).injective.exchange.v1beta1.ExecutionTypeR\rexecutionType\x12<\n\x06trades\x18\x04 \x03(\x0b\x32$.injective.exchange.v1beta1.TradeLogR\x06trades\"\xe7\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\x12O\n\rexecutionType\x18\x05 \x01(\x0e\x32).injective.exchange.v1beta1.ExecutionTypeR\rexecutionType\x12\x46\n\x06trades\x18\x06 \x03(\x0b\x32..injective.exchange.v1beta1.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\"\x89\x01\n\x1c\x45ventBatchDerivativePosition\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\tpositions\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.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\"o\n\x1e\x45ventBinaryOptionsMarketUpdate\x12M\n\x06market\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.BinaryOptionsMarketB\x04\xc8\xde\x1f\x00R\x06market\"\xc9\x01\n\x12\x45ventNewSpotOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12I\n\nbuy_orders\x18\x02 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\tbuyOrders\x12K\n\x0bsell_orders\x18\x03 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\nsellOrders\"\xdb\x01\n\x18\x45ventNewDerivativeOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\nbuy_orders\x18\x02 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\tbuyOrders\x12Q\n\x0bsell_orders\x18\x03 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\nsellOrders\"{\n\x14\x45ventCancelSpotOrder\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\"]\n\x15\x45ventSpotMarketUpdate\x12\x44\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketB\x04\xc8\xde\x1f\x00R\x06market\"\xa7\x02\n\x1a\x45ventPerpetualMarketUpdate\x12J\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12i\n\x15perpetual_market_info\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x01R\x13perpetualMarketInfo\x12R\n\x07\x66unding\x18\x03 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingB\x04\xc8\xde\x1f\x01R\x07\x66unding\"\xe4\x01\n\x1e\x45ventExpiryFuturesMarketUpdate\x12J\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12v\n\x1a\x65xpiry_futures_market_info\x18\x03 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x01R\x17\x65xpiryFuturesMarketInfo\"\xcc\x02\n!EventPerpetualMarketFundingUpdate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12R\n\x07\x66unding\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.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\"m\n\x17\x45ventBatchDepositUpdate\x12R\n\x0f\x64\x65posit_updates\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.DepositUpdateR\x0e\x64\x65positUpdates\"\xc7\x01\n\x1b\x44\x65rivativeMarketOrderCancel\x12Z\n\x0cmarket_order\x18\x01 \x01(\x0b\x32\x31.injective.exchange.v1beta1.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\"\xa7\x02\n\x1a\x45ventCancelDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12W\n\x0blimit_order\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12m\n\x13market_order_cancel\x18\x04 \x01(\x0b\x32\x37.injective.exchange.v1beta1.DerivativeMarketOrderCancelB\x04\xc8\xde\x1f\x01R\x11marketOrderCancel\"g\n\x18\x45ventFeeDiscountSchedule\x12K\n\x08schedule\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x08schedule\"\xe2\x01\n EventTradingRewardCampaignUpdate\x12Z\n\rcampaign_info\x18\x01 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12\x62\n\x15\x63\x61mpaign_reward_pools\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools\"u\n\x1e\x45ventTradingRewardDistribution\x12S\n\x0f\x61\x63\x63ount_rewards\x18\x01 \x03(\x0b\x32*.injective.exchange.v1beta1.AccountRewardsR\x0e\x61\x63\x63ountRewards\"\xb5\x01\n\"EventNewConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderR\x05order\x12\x12\n\x04hash\x18\x03 \x01(\x0cR\x04hash\x12\x1b\n\tis_market\x18\x04 \x01(\x08R\x08isMarket\"\x9f\x02\n%EventCancelConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12W\n\x0blimit_order\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12Z\n\x0cmarket_order\x18\x04 \x01(\x0b\x32\x31.injective.exchange.v1beta1.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\"\x94\x01\n+EventAtomicMarketOrderFeeMultipliersUpdated\x12\x65\n\x16market_fee_multipliers\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers\"\xc2\x01\n\x14\x45ventOrderbookUpdate\x12N\n\x0cspot_updates\x18\x01 \x03(\x0b\x32+.injective.exchange.v1beta1.OrderbookUpdateR\x0bspotUpdates\x12Z\n\x12\x64\x65rivative_updates\x18\x02 \x03(\x0b\x32+.injective.exchange.v1beta1.OrderbookUpdateR\x11\x64\x65rivativeUpdates\"h\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12\x43\n\torderbook\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderbookR\torderbook\"\xae\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\x0cR\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\"|\n\x18\x45ventGrantAuthorizations\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.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\x65scriptionB\x87\x02\n\x1e\x63om.injective.exchange.v1beta1B\x0b\x45ventsProtoP\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/events.proto\x12\x1ainjective.exchange.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a%injective/oracle/v1beta1/oracle.proto\x1a)injective/exchange/v1beta1/exchange.proto\"\xdc\x01\n\x17\x45ventBatchSpotExecution\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x15\n\x06is_buy\x18\x02 \x01(\x08R\x05isBuy\x12O\n\rexecutionType\x18\x03 \x01(\x0e\x32).injective.exchange.v1beta1.ExecutionTypeR\rexecutionType\x12<\n\x06trades\x18\x04 \x03(\x0b\x32$.injective.exchange.v1beta1.TradeLogR\x06trades\"\xe7\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\x12O\n\rexecutionType\x18\x05 \x01(\x0e\x32).injective.exchange.v1beta1.ExecutionTypeR\rexecutionType\x12\x46\n\x06trades\x18\x06 \x03(\x0b\x32..injective.exchange.v1beta1.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\"\x89\x01\n\x1c\x45ventBatchDerivativePosition\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\tpositions\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.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\"P\n\x19\x45ventSettledMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"S\n\x1c\x45ventNotSettledMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\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\"o\n\x1e\x45ventBinaryOptionsMarketUpdate\x12M\n\x06market\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.BinaryOptionsMarketB\x04\xc8\xde\x1f\x00R\x06market\"\xc9\x01\n\x12\x45ventNewSpotOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12I\n\nbuy_orders\x18\x02 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\tbuyOrders\x12K\n\x0bsell_orders\x18\x03 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\nsellOrders\"\xdb\x01\n\x18\x45ventNewDerivativeOrders\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\nbuy_orders\x18\x02 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\tbuyOrders\x12Q\n\x0bsell_orders\x18\x03 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\nsellOrders\"{\n\x14\x45ventCancelSpotOrder\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\"]\n\x15\x45ventSpotMarketUpdate\x12\x44\n\x06market\x18\x01 \x01(\x0b\x32&.injective.exchange.v1beta1.SpotMarketB\x04\xc8\xde\x1f\x00R\x06market\"\xa7\x02\n\x1a\x45ventPerpetualMarketUpdate\x12J\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12i\n\x15perpetual_market_info\x18\x02 \x01(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x01R\x13perpetualMarketInfo\x12R\n\x07\x66unding\x18\x03 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingB\x04\xc8\xde\x1f\x01R\x07\x66unding\"\xe4\x01\n\x1e\x45ventExpiryFuturesMarketUpdate\x12J\n\x06market\x18\x01 \x01(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketB\x04\xc8\xde\x1f\x00R\x06market\x12v\n\x1a\x65xpiry_futures_market_info\x18\x03 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoB\x04\xc8\xde\x1f\x01R\x17\x65xpiryFuturesMarketInfo\"\xcc\x02\n!EventPerpetualMarketFundingUpdate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12R\n\x07\x66unding\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.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\"m\n\x17\x45ventBatchDepositUpdate\x12R\n\x0f\x64\x65posit_updates\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.DepositUpdateR\x0e\x64\x65positUpdates\"\xc7\x01\n\x1b\x44\x65rivativeMarketOrderCancel\x12Z\n\x0cmarket_order\x18\x01 \x01(\x0b\x32\x31.injective.exchange.v1beta1.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\"\xa7\x02\n\x1a\x45ventCancelDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12W\n\x0blimit_order\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12m\n\x13market_order_cancel\x18\x04 \x01(\x0b\x32\x37.injective.exchange.v1beta1.DerivativeMarketOrderCancelB\x04\xc8\xde\x1f\x01R\x11marketOrderCancel\"g\n\x18\x45ventFeeDiscountSchedule\x12K\n\x08schedule\x18\x01 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x08schedule\"\xe2\x01\n EventTradingRewardCampaignUpdate\x12Z\n\rcampaign_info\x18\x01 \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x0c\x63\x61mpaignInfo\x12\x62\n\x15\x63\x61mpaign_reward_pools\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR\x13\x63\x61mpaignRewardPools\"u\n\x1e\x45ventTradingRewardDistribution\x12S\n\x0f\x61\x63\x63ount_rewards\x18\x01 \x03(\x0b\x32*.injective.exchange.v1beta1.AccountRewardsR\x0e\x61\x63\x63ountRewards\"\xb5\x01\n\"EventNewConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x41\n\x05order\x18\x02 \x01(\x0b\x32+.injective.exchange.v1beta1.DerivativeOrderR\x05order\x12\x12\n\x04hash\x18\x03 \x01(\x0cR\x04hash\x12\x1b\n\tis_market\x18\x04 \x01(\x08R\x08isMarket\"\x9f\x02\n%EventCancelConditionalDerivativeOrder\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12$\n\risLimitCancel\x18\x02 \x01(\x08R\risLimitCancel\x12W\n\x0blimit_order\x18\x03 \x01(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderB\x04\xc8\xde\x1f\x01R\nlimitOrder\x12Z\n\x0cmarket_order\x18\x04 \x01(\x0b\x32\x31.injective.exchange.v1beta1.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\"\x94\x01\n+EventAtomicMarketOrderFeeMultipliersUpdated\x12\x65\n\x16market_fee_multipliers\x18\x01 \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers\"\xc2\x01\n\x14\x45ventOrderbookUpdate\x12N\n\x0cspot_updates\x18\x01 \x03(\x0b\x32+.injective.exchange.v1beta1.OrderbookUpdateR\x0bspotUpdates\x12Z\n\x12\x64\x65rivative_updates\x18\x02 \x03(\x0b\x32+.injective.exchange.v1beta1.OrderbookUpdateR\x11\x64\x65rivativeUpdates\"h\n\x0fOrderbookUpdate\x12\x10\n\x03seq\x18\x01 \x01(\x04R\x03seq\x12\x43\n\torderbook\x18\x02 \x01(\x0b\x32%.injective.exchange.v1beta1.OrderbookR\torderbook\"\xae\x01\n\tOrderbook\x12\x1b\n\tmarket_id\x18\x01 \x01(\x0cR\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\"|\n\x18\x45ventGrantAuthorizations\x12\x18\n\x07granter\x18\x01 \x01(\tR\x07granter\x12\x46\n\x06grants\x18\x02 \x03(\x0b\x32..injective.exchange.v1beta1.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\x65scriptionB\x87\x02\n\x1e\x63om.injective.exchange.v1beta1B\x0b\x45ventsProtoP\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) @@ -84,66 +84,70 @@ _globals['_EVENTBATCHDERIVATIVEPOSITION']._serialized_end=1255 _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_start=1258 _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_end=1445 - _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_start=1448 - _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_end=1591 - _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_start=1594 - _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_end=1730 - _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_start=1732 - _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_end=1843 - _globals['_EVENTNEWSPOTORDERS']._serialized_start=1846 - _globals['_EVENTNEWSPOTORDERS']._serialized_end=2047 - _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_start=2050 - _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_end=2269 - _globals['_EVENTCANCELSPOTORDER']._serialized_start=2271 - _globals['_EVENTCANCELSPOTORDER']._serialized_end=2394 - _globals['_EVENTSPOTMARKETUPDATE']._serialized_start=2396 - _globals['_EVENTSPOTMARKETUPDATE']._serialized_end=2489 - _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_start=2492 - _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_end=2787 - _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_start=2790 - _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_end=3018 - _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_start=3021 - _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_end=3353 - _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_start=3356 - _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_end=3507 - _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_start=3510 - _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_end=3662 - _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_start=3665 - _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_end=3842 - _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_start=3844 - _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_end=3953 - _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_start=3956 - _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_end=4155 - _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_start=4158 - _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_end=4453 - _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_start=4455 - _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_end=4558 - _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_start=4561 - _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_end=4787 - _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_start=4789 - _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_end=4906 - _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_start=4909 - _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_end=5090 - _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_start=5093 - _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_end=5380 - _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_start=5383 - _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_end=5634 - _globals['_EVENTORDERFAIL']._serialized_start=5636 - _globals['_EVENTORDERFAIL']._serialized_end=5744 - _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_start=5747 - _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_end=5895 - _globals['_EVENTORDERBOOKUPDATE']._serialized_start=5898 - _globals['_EVENTORDERBOOKUPDATE']._serialized_end=6092 - _globals['_ORDERBOOKUPDATE']._serialized_start=6094 - _globals['_ORDERBOOKUPDATE']._serialized_end=6198 - _globals['_ORDERBOOK']._serialized_start=6201 - _globals['_ORDERBOOK']._serialized_end=6375 - _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_start=6377 - _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_end=6501 - _globals['_EVENTGRANTACTIVATION']._serialized_start=6504 - _globals['_EVENTGRANTACTIVATION']._serialized_end=6633 - _globals['_EVENTINVALIDGRANT']._serialized_start=6635 - _globals['_EVENTINVALIDGRANT']._serialized_end=6706 - _globals['_EVENTORDERCANCELFAIL']._serialized_start=6709 - _globals['_EVENTORDERCANCELFAIL']._serialized_end=6880 + _globals['_EVENTSETTLEDMARKETBALANCE']._serialized_start=1447 + _globals['_EVENTSETTLEDMARKETBALANCE']._serialized_end=1527 + _globals['_EVENTNOTSETTLEDMARKETBALANCE']._serialized_start=1529 + _globals['_EVENTNOTSETTLEDMARKETBALANCE']._serialized_end=1612 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_start=1615 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_end=1758 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_start=1761 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_end=1897 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_start=1899 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_end=2010 + _globals['_EVENTNEWSPOTORDERS']._serialized_start=2013 + _globals['_EVENTNEWSPOTORDERS']._serialized_end=2214 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_start=2217 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_end=2436 + _globals['_EVENTCANCELSPOTORDER']._serialized_start=2438 + _globals['_EVENTCANCELSPOTORDER']._serialized_end=2561 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_start=2563 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_end=2656 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_start=2659 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_end=2954 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_start=2957 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_end=3185 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_start=3188 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_end=3520 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_start=3523 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_end=3674 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_start=3677 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_end=3829 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_start=3832 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_end=4009 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_start=4011 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_end=4120 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_start=4123 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_end=4322 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_start=4325 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_end=4620 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_start=4622 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_end=4725 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_start=4728 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_end=4954 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_start=4956 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_end=5073 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_start=5076 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_end=5257 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_start=5260 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_end=5547 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_start=5550 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_end=5801 + _globals['_EVENTORDERFAIL']._serialized_start=5803 + _globals['_EVENTORDERFAIL']._serialized_end=5911 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_start=5914 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_end=6062 + _globals['_EVENTORDERBOOKUPDATE']._serialized_start=6065 + _globals['_EVENTORDERBOOKUPDATE']._serialized_end=6259 + _globals['_ORDERBOOKUPDATE']._serialized_start=6261 + _globals['_ORDERBOOKUPDATE']._serialized_end=6365 + _globals['_ORDERBOOK']._serialized_start=6368 + _globals['_ORDERBOOK']._serialized_end=6542 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_start=6544 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_end=6668 + _globals['_EVENTGRANTACTIVATION']._serialized_start=6671 + _globals['_EVENTGRANTACTIVATION']._serialized_end=6800 + _globals['_EVENTINVALIDGRANT']._serialized_start=6802 + _globals['_EVENTINVALIDGRANT']._serialized_end=6873 + _globals['_EVENTORDERCANCELFAIL']._serialized_start=6876 + _globals['_EVENTORDERCANCELFAIL']._serialized_end=7047 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py index de0fe292..d8aa7031 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\"\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') +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\"\x89\x16\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\x12*\n\x11\x66ixed_gas_enabled\x18\x1d \x01(\x08R\x0f\x66ixedGasEnabled:\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\"p\n\x10\x44\x65nomMinNotional\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x46\n\x0cmin_notional\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional*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,120 @@ _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=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['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=16300 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=16416 + _globals['_MARKETSTATUS']._serialized_start=16418 + _globals['_MARKETSTATUS']._serialized_end=16502 + _globals['_ORDERTYPE']._serialized_start=16505 + _globals['_ORDERTYPE']._serialized_end=16820 + _globals['_EXECUTIONTYPE']._serialized_start=16823 + _globals['_EXECUTIONTYPE']._serialized_end=16998 + _globals['_ORDERMASK']._serialized_start=17001 + _globals['_ORDERMASK']._serialized_end=17266 _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=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 + _globals['_PARAMS']._serialized_end=3011 + _globals['_MARKETFEEMULTIPLIER']._serialized_start=3014 + _globals['_MARKETFEEMULTIPLIER']._serialized_end=3146 + _globals['_DERIVATIVEMARKET']._serialized_start=3149 + _globals['_DERIVATIVEMARKET']._serialized_end=4320 + _globals['_BINARYOPTIONSMARKET']._serialized_start=4323 + _globals['_BINARYOPTIONSMARKET']._serialized_end=5473 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=5476 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=5832 + _globals['_PERPETUALMARKETINFO']._serialized_start=5835 + _globals['_PERPETUALMARKETINFO']._serialized_end=6161 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=6164 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=6391 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=6394 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=6535 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=6537 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=6598 + _globals['_MIDPRICEANDTOB']._serialized_start=6601 + _globals['_MIDPRICEANDTOB']._serialized_end=6835 + _globals['_SPOTMARKET']._serialized_start=6838 + _globals['_SPOTMARKET']._serialized_end=7662 + _globals['_DEPOSIT']._serialized_start=7665 + _globals['_DEPOSIT']._serialized_end=7830 + _globals['_SUBACCOUNTTRADENONCE']._serialized_start=7832 + _globals['_SUBACCOUNTTRADENONCE']._serialized_end=7876 + _globals['_ORDERINFO']._serialized_start=7879 + _globals['_ORDERINFO']._serialized_end=8106 + _globals['_SPOTORDER']._serialized_start=8109 + _globals['_SPOTORDER']._serialized_end=8369 + _globals['_SPOTLIMITORDER']._serialized_start=8372 + _globals['_SPOTLIMITORDER']._serialized_end=8704 + _globals['_SPOTMARKETORDER']._serialized_start=8707 + _globals['_SPOTMARKETORDER']._serialized_end=9047 + _globals['_DERIVATIVEORDER']._serialized_start=9050 + _globals['_DERIVATIVEORDER']._serialized_end=9377 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=9380 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=9888 + _globals['_SUBACCOUNTORDER']._serialized_start=9891 + _globals['_SUBACCOUNTORDER']._serialized_end=10086 + _globals['_SUBACCOUNTORDERDATA']._serialized_start=10088 + _globals['_SUBACCOUNTORDERDATA']._serialized_end=10207 + _globals['_DERIVATIVELIMITORDER']._serialized_start=10210 + _globals['_DERIVATIVELIMITORDER']._serialized_end=10609 + _globals['_DERIVATIVEMARKETORDER']._serialized_start=10612 + _globals['_DERIVATIVEMARKETORDER']._serialized_end=11017 + _globals['_POSITION']._serialized_start=11020 + _globals['_POSITION']._serialized_end=11345 + _globals['_MARKETORDERINDICATOR']._serialized_start=11347 + _globals['_MARKETORDERINDICATOR']._serialized_end=11420 + _globals['_TRADELOG']._serialized_start=11423 + _globals['_TRADELOG']._serialized_end=11756 + _globals['_POSITIONDELTA']._serialized_start=11759 + _globals['_POSITIONDELTA']._serialized_end=12041 + _globals['_DERIVATIVETRADELOG']._serialized_start=12044 + _globals['_DERIVATIVETRADELOG']._serialized_end=12461 + _globals['_SUBACCOUNTPOSITION']._serialized_start=12463 + _globals['_SUBACCOUNTPOSITION']._serialized_end=12586 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=12588 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=12707 + _globals['_DEPOSITUPDATE']._serialized_start=12709 + _globals['_DEPOSITUPDATE']._serialized_end=12821 + _globals['_POINTSMULTIPLIER']._serialized_start=12824 + _globals['_POINTSMULTIPLIER']._serialized_end=13028 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=13031 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=13413 + _globals['_CAMPAIGNREWARDPOOL']._serialized_start=13416 + _globals['_CAMPAIGNREWARDPOOL']._serialized_end=13604 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=13607 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=13904 + _globals['_FEEDISCOUNTTIERINFO']._serialized_start=13907 + _globals['_FEEDISCOUNTTIERINFO']._serialized_end=14227 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=14230 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=14498 + _globals['_FEEDISCOUNTTIERTTL']._serialized_start=14500 + _globals['_FEEDISCOUNTTIERTTL']._serialized_end=14577 + _globals['_VOLUMERECORD']._serialized_start=14580 + _globals['_VOLUMERECORD']._serialized_end=14738 + _globals['_ACCOUNTREWARDS']._serialized_start=14741 + _globals['_ACCOUNTREWARDS']._serialized_end=14886 + _globals['_TRADERECORDS']._serialized_start=14889 + _globals['_TRADERECORDS']._serialized_end=15023 + _globals['_SUBACCOUNTIDS']._serialized_start=15025 + _globals['_SUBACCOUNTIDS']._serialized_end=15079 + _globals['_TRADERECORD']._serialized_start=15082 + _globals['_TRADERECORD']._serialized_end=15249 + _globals['_LEVEL']._serialized_start=15251 + _globals['_LEVEL']._serialized_end=15360 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=15363 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=15514 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=15517 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=15654 + _globals['_MARKETVOLUME']._serialized_start=15656 + _globals['_MARKETVOLUME']._serialized_end=15771 + _globals['_DENOMDECIMALS']._serialized_start=15773 + _globals['_DENOMDECIMALS']._serialized_end=15838 + _globals['_GRANTAUTHORIZATION']._serialized_start=15840 + _globals['_GRANTAUTHORIZATION']._serialized_end=15941 + _globals['_ACTIVEGRANT']._serialized_start=15943 + _globals['_ACTIVEGRANT']._serialized_end=16037 + _globals['_EFFECTIVEGRANT']._serialized_start=16040 + _globals['_EFFECTIVEGRANT']._serialized_end=16184 + _globals['_DENOMMINNOTIONAL']._serialized_start=16186 + _globals['_DENOMMINNOTIONAL']._serialized_end=16298 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/genesis_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/genesis_pb2.py index 62b1d57b..e177ffca 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/genesis_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/genesis_pb2.py @@ -17,7 +17,7 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(injective/exchange/v1beta1/genesis.proto\x12\x1ainjective.exchange.v1beta1\x1a)injective/exchange/v1beta1/exchange.proto\x1a#injective/exchange/v1beta1/tx.proto\x1a\x14gogoproto/gogo.proto\"\xab\x1d\n\x0cGenesisState\x12@\n\x06params\x18\x01 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12I\n\x0cspot_markets\x18\x02 \x03(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x0bspotMarkets\x12[\n\x12\x64\x65rivative_markets\x18\x03 \x03(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketR\x11\x64\x65rivativeMarkets\x12V\n\x0espot_orderbook\x18\x04 \x03(\x0b\x32).injective.exchange.v1beta1.SpotOrderBookB\x04\xc8\xde\x1f\x00R\rspotOrderbook\x12h\n\x14\x64\x65rivative_orderbook\x18\x05 \x03(\x0b\x32/.injective.exchange.v1beta1.DerivativeOrderBookB\x04\xc8\xde\x1f\x00R\x13\x64\x65rivativeOrderbook\x12\x45\n\x08\x62\x61lances\x18\x06 \x03(\x0b\x32#.injective.exchange.v1beta1.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\x12R\n\tpositions\x18\x07 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\tpositions\x12i\n\x17subaccount_trade_nonces\x18\x08 \x03(\x0b\x32+.injective.exchange.v1beta1.SubaccountNonceB\x04\xc8\xde\x1f\x00R\x15subaccountTradeNonces\x12\x86\x01\n expiry_futures_market_info_state\x18\t \x03(\x0b\x32\x38.injective.exchange.v1beta1.ExpiryFuturesMarketInfoStateB\x04\xc8\xde\x1f\x00R\x1c\x65xpiryFuturesMarketInfoState\x12i\n\x15perpetual_market_info\x18\n \x03(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x13perpetualMarketInfo\x12\x82\x01\n\x1eperpetual_market_funding_state\x18\x0b \x03(\x0b\x32\x37.injective.exchange.v1beta1.PerpetualMarketFundingStateB\x04\xc8\xde\x1f\x00R\x1bperpetualMarketFundingState\x12\x95\x01\n&derivative_market_settlement_scheduled\x18\x0c \x03(\x0b\x32:.injective.exchange.v1beta1.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\x12v\n\x1ctrading_reward_campaign_info\x18\x0f \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12\x80\x01\n%trading_reward_pool_campaign_schedule\x18\x10 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12\x92\x01\n&trading_reward_campaign_account_points\x18\x11 \x03(\x0b\x32>.injective.exchange.v1beta1.TradingRewardCampaignAccountPointsR\"tradingRewardCampaignAccountPoints\x12\x63\n\x15\x66\x65\x65_discount_schedule\x18\x12 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\x12w\n\x1d\x66\x65\x65_discount_account_tier_ttl\x18\x13 \x03(\x0b\x32\x35.injective.exchange.v1beta1.FeeDiscountAccountTierTTLR\x19\x66\x65\x65\x44iscountAccountTierTtl\x12\x89\x01\n#fee_discount_bucket_volume_accounts\x18\x14 \x03(\x0b\x32;.injective.exchange.v1beta1.FeeDiscountBucketVolumeAccountsR\x1f\x66\x65\x65\x44iscountBucketVolumeAccounts\x12<\n\x1bis_first_fee_cycle_finished\x18\x15 \x01(\x08R\x17isFirstFeeCycleFinished\x12\x8f\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x16 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12\xa8\x01\n.pending_trading_reward_campaign_account_points\x18\x17 \x03(\x0b\x32\x45.injective.exchange.v1beta1.TradingRewardCampaignAccountPendingPointsR)pendingTradingRewardCampaignAccountPoints\x12\x39\n\x19rewards_opt_out_addresses\x18\x18 \x03(\tR\x16rewardsOptOutAddresses\x12\x62\n\x18historical_trade_records\x18\x19 \x03(\x0b\x32(.injective.exchange.v1beta1.TradeRecordsR\x16historicalTradeRecords\x12\x65\n\x16\x62inary_options_markets\x18\x1a \x03(\x0b\x32/.injective.exchange.v1beta1.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\x12V\n\x0e\x64\x65nom_decimals\x18\x1d \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\x12\x86\x01\n!conditional_derivative_orderbooks\x18\x1e \x03(\x0b\x32:.injective.exchange.v1beta1.ConditionalDerivativeOrderBookR\x1f\x63onditionalDerivativeOrderbooks\x12\x65\n\x16market_fee_multipliers\x18\x1f \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers\x12^\n\x13orderbook_sequences\x18 \x03(\x0b\x32-.injective.exchange.v1beta1.OrderbookSequenceR\x12orderbookSequences\x12j\n\x12subaccount_volumes\x18! \x03(\x0b\x32;.injective.exchange.v1beta1.AggregateSubaccountVolumeRecordR\x11subaccountVolumes\x12O\n\x0emarket_volumes\x18\" \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\x12\x66\n\x14grant_authorizations\x18# \x03(\x0b\x32\x33.injective.exchange.v1beta1.FullGrantAuthorizationsR\x13grantAuthorizations\x12P\n\ractive_grants\x18$ \x03(\x0b\x32+.injective.exchange.v1beta1.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\"\x80\x01\n\x19\x46\x65\x65\x44iscountAccountTierTTL\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12I\n\x08tier_ttl\x18\x02 \x01(\x0b\x32..injective.exchange.v1beta1.FeeDiscountTierTTLR\x07tierTtl\"\xa9\x01\n\x1f\x46\x65\x65\x44iscountBucketVolumeAccounts\x12\x34\n\x16\x62ucket_start_timestamp\x18\x01 \x01(\x03R\x14\x62ucketStartTimestamp\x12P\n\x0e\x61\x63\x63ount_volume\x18\x02 \x03(\x0b\x32).injective.exchange.v1beta1.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\"\xd1\x01\n)TradingRewardCampaignAccountPendingPoints\x12=\n\x1breward_pool_start_timestamp\x18\x01 \x01(\x03R\x18rewardPoolStartTimestamp\x12\x65\n\x0e\x61\x63\x63ount_points\x18\x02 \x03(\x0b\x32>.injective.exchange.v1beta1.TradingRewardCampaignAccountPointsR\raccountPoints\"\x98\x01\n\rSpotOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12\x42\n\x06orders\x18\x03 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xa4\x01\n\x13\x44\x65rivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12H\n\x06orders\x18\x03 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc1\x03\n\x1e\x43onditionalDerivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Z\n\x10limit_buy_orders\x18\x02 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x0elimitBuyOrders\x12]\n\x11market_buy_orders\x18\x03 \x03(\x0b\x32\x31.injective.exchange.v1beta1.DerivativeMarketOrderR\x0fmarketBuyOrders\x12\\\n\x11limit_sell_orders\x18\x04 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x0flimitSellOrders\x12_\n\x12market_sell_orders\x18\x05 \x03(\x0b\x32\x31.injective.exchange.v1beta1.DerivativeMarketOrderR\x10marketSellOrders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8f\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#.injective.exchange.v1beta1.DepositR\x08\x64\x65posits:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xa2\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$.injective.exchange.v1beta1.PositionR\x08position:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xae\x01\n\x0fSubaccountNonce\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12l\n\x16subaccount_trade_nonce\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.SubaccountTradeNonceB\x04\xc8\xde\x1f\x00R\x14subaccountTradeNonce:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x91\x01\n\x1c\x45xpiryFuturesMarketInfoState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12T\n\x0bmarket_info\x18\x02 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoR\nmarketInfo\"\x88\x01\n\x1bPerpetualMarketFundingState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\x07\x66unding\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingR\x07\x66unding\"\x8b\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\x46\n\x06grants\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants\"w\n\x0f\x46ullActiveGrant\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12J\n\x0c\x61\x63tive_grant\x18\x02 \x01(\x0b\x32\'.injective.exchange.v1beta1.ActiveGrantR\x0b\x61\x63tiveGrantB\x88\x02\n\x1e\x63om.injective.exchange.v1beta1B\x0cGenesisProtoP\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/genesis.proto\x12\x1ainjective.exchange.v1beta1\x1a)injective/exchange/v1beta1/exchange.proto\x1a#injective/exchange/v1beta1/tx.proto\x1a\x14gogoproto/gogo.proto\"\x89\x1e\n\x0cGenesisState\x12@\n\x06params\x18\x01 \x01(\x0b\x32\".injective.exchange.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12I\n\x0cspot_markets\x18\x02 \x03(\x0b\x32&.injective.exchange.v1beta1.SpotMarketR\x0bspotMarkets\x12[\n\x12\x64\x65rivative_markets\x18\x03 \x03(\x0b\x32,.injective.exchange.v1beta1.DerivativeMarketR\x11\x64\x65rivativeMarkets\x12V\n\x0espot_orderbook\x18\x04 \x03(\x0b\x32).injective.exchange.v1beta1.SpotOrderBookB\x04\xc8\xde\x1f\x00R\rspotOrderbook\x12h\n\x14\x64\x65rivative_orderbook\x18\x05 \x03(\x0b\x32/.injective.exchange.v1beta1.DerivativeOrderBookB\x04\xc8\xde\x1f\x00R\x13\x64\x65rivativeOrderbook\x12\x45\n\x08\x62\x61lances\x18\x06 \x03(\x0b\x32#.injective.exchange.v1beta1.BalanceB\x04\xc8\xde\x1f\x00R\x08\x62\x61lances\x12R\n\tpositions\x18\x07 \x03(\x0b\x32..injective.exchange.v1beta1.DerivativePositionB\x04\xc8\xde\x1f\x00R\tpositions\x12i\n\x17subaccount_trade_nonces\x18\x08 \x03(\x0b\x32+.injective.exchange.v1beta1.SubaccountNonceB\x04\xc8\xde\x1f\x00R\x15subaccountTradeNonces\x12\x86\x01\n expiry_futures_market_info_state\x18\t \x03(\x0b\x32\x38.injective.exchange.v1beta1.ExpiryFuturesMarketInfoStateB\x04\xc8\xde\x1f\x00R\x1c\x65xpiryFuturesMarketInfoState\x12i\n\x15perpetual_market_info\x18\n \x03(\x0b\x32/.injective.exchange.v1beta1.PerpetualMarketInfoB\x04\xc8\xde\x1f\x00R\x13perpetualMarketInfo\x12\x82\x01\n\x1eperpetual_market_funding_state\x18\x0b \x03(\x0b\x32\x37.injective.exchange.v1beta1.PerpetualMarketFundingStateB\x04\xc8\xde\x1f\x00R\x1bperpetualMarketFundingState\x12\x95\x01\n&derivative_market_settlement_scheduled\x18\x0c \x03(\x0b\x32:.injective.exchange.v1beta1.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\x12v\n\x1ctrading_reward_campaign_info\x18\x0f \x01(\x0b\x32\x35.injective.exchange.v1beta1.TradingRewardCampaignInfoR\x19tradingRewardCampaignInfo\x12\x80\x01\n%trading_reward_pool_campaign_schedule\x18\x10 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR!tradingRewardPoolCampaignSchedule\x12\x92\x01\n&trading_reward_campaign_account_points\x18\x11 \x03(\x0b\x32>.injective.exchange.v1beta1.TradingRewardCampaignAccountPointsR\"tradingRewardCampaignAccountPoints\x12\x63\n\x15\x66\x65\x65_discount_schedule\x18\x12 \x01(\x0b\x32/.injective.exchange.v1beta1.FeeDiscountScheduleR\x13\x66\x65\x65\x44iscountSchedule\x12w\n\x1d\x66\x65\x65_discount_account_tier_ttl\x18\x13 \x03(\x0b\x32\x35.injective.exchange.v1beta1.FeeDiscountAccountTierTTLR\x19\x66\x65\x65\x44iscountAccountTierTtl\x12\x89\x01\n#fee_discount_bucket_volume_accounts\x18\x14 \x03(\x0b\x32;.injective.exchange.v1beta1.FeeDiscountBucketVolumeAccountsR\x1f\x66\x65\x65\x44iscountBucketVolumeAccounts\x12<\n\x1bis_first_fee_cycle_finished\x18\x15 \x01(\x08R\x17isFirstFeeCycleFinished\x12\x8f\x01\n-pending_trading_reward_pool_campaign_schedule\x18\x16 \x03(\x0b\x32..injective.exchange.v1beta1.CampaignRewardPoolR(pendingTradingRewardPoolCampaignSchedule\x12\xa8\x01\n.pending_trading_reward_campaign_account_points\x18\x17 \x03(\x0b\x32\x45.injective.exchange.v1beta1.TradingRewardCampaignAccountPendingPointsR)pendingTradingRewardCampaignAccountPoints\x12\x39\n\x19rewards_opt_out_addresses\x18\x18 \x03(\tR\x16rewardsOptOutAddresses\x12\x62\n\x18historical_trade_records\x18\x19 \x03(\x0b\x32(.injective.exchange.v1beta1.TradeRecordsR\x16historicalTradeRecords\x12\x65\n\x16\x62inary_options_markets\x18\x1a \x03(\x0b\x32/.injective.exchange.v1beta1.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\x12V\n\x0e\x64\x65nom_decimals\x18\x1d \x03(\x0b\x32).injective.exchange.v1beta1.DenomDecimalsB\x04\xc8\xde\x1f\x00R\rdenomDecimals\x12\x86\x01\n!conditional_derivative_orderbooks\x18\x1e \x03(\x0b\x32:.injective.exchange.v1beta1.ConditionalDerivativeOrderBookR\x1f\x63onditionalDerivativeOrderbooks\x12\x65\n\x16market_fee_multipliers\x18\x1f \x03(\x0b\x32/.injective.exchange.v1beta1.MarketFeeMultiplierR\x14marketFeeMultipliers\x12^\n\x13orderbook_sequences\x18 \x03(\x0b\x32-.injective.exchange.v1beta1.OrderbookSequenceR\x12orderbookSequences\x12j\n\x12subaccount_volumes\x18! \x03(\x0b\x32;.injective.exchange.v1beta1.AggregateSubaccountVolumeRecordR\x11subaccountVolumes\x12O\n\x0emarket_volumes\x18\" \x03(\x0b\x32(.injective.exchange.v1beta1.MarketVolumeR\rmarketVolumes\x12\x66\n\x14grant_authorizations\x18# \x03(\x0b\x32\x33.injective.exchange.v1beta1.FullGrantAuthorizationsR\x13grantAuthorizations\x12P\n\ractive_grants\x18$ \x03(\x0b\x32+.injective.exchange.v1beta1.FullActiveGrantR\x0c\x61\x63tiveGrants\x12\\\n\x13\x64\x65nom_min_notionals\x18% \x03(\x0b\x32,.injective.exchange.v1beta1.DenomMinNotionalR\x11\x64\x65nomMinNotionals\"L\n\x11OrderbookSequence\x12\x1a\n\x08sequence\x18\x01 \x01(\x04R\x08sequence\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\x80\x01\n\x19\x46\x65\x65\x44iscountAccountTierTTL\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12I\n\x08tier_ttl\x18\x02 \x01(\x0b\x32..injective.exchange.v1beta1.FeeDiscountTierTTLR\x07tierTtl\"\xa9\x01\n\x1f\x46\x65\x65\x44iscountBucketVolumeAccounts\x12\x34\n\x16\x62ucket_start_timestamp\x18\x01 \x01(\x03R\x14\x62ucketStartTimestamp\x12P\n\x0e\x61\x63\x63ount_volume\x18\x02 \x03(\x0b\x32).injective.exchange.v1beta1.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\"\xd1\x01\n)TradingRewardCampaignAccountPendingPoints\x12=\n\x1breward_pool_start_timestamp\x18\x01 \x01(\x03R\x18rewardPoolStartTimestamp\x12\x65\n\x0e\x61\x63\x63ount_points\x18\x02 \x03(\x0b\x32>.injective.exchange.v1beta1.TradingRewardCampaignAccountPointsR\raccountPoints\"\x98\x01\n\rSpotOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12\x42\n\x06orders\x18\x03 \x03(\x0b\x32*.injective.exchange.v1beta1.SpotLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xa4\x01\n\x13\x44\x65rivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1c\n\tisBuySide\x18\x02 \x01(\x08R\tisBuySide\x12H\n\x06orders\x18\x03 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x06orders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xc1\x03\n\x1e\x43onditionalDerivativeOrderBook\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12Z\n\x10limit_buy_orders\x18\x02 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x0elimitBuyOrders\x12]\n\x11market_buy_orders\x18\x03 \x03(\x0b\x32\x31.injective.exchange.v1beta1.DerivativeMarketOrderR\x0fmarketBuyOrders\x12\\\n\x11limit_sell_orders\x18\x04 \x03(\x0b\x32\x30.injective.exchange.v1beta1.DerivativeLimitOrderR\x0flimitSellOrders\x12_\n\x12market_sell_orders\x18\x05 \x03(\x0b\x32\x31.injective.exchange.v1beta1.DerivativeMarketOrderR\x10marketSellOrders:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8f\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#.injective.exchange.v1beta1.DepositR\x08\x64\x65posits:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xa2\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$.injective.exchange.v1beta1.PositionR\x08position:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\xae\x01\n\x0fSubaccountNonce\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12l\n\x16subaccount_trade_nonce\x18\x02 \x01(\x0b\x32\x30.injective.exchange.v1beta1.SubaccountTradeNonceB\x04\xc8\xde\x1f\x00R\x14subaccountTradeNonce:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x91\x01\n\x1c\x45xpiryFuturesMarketInfoState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12T\n\x0bmarket_info\x18\x02 \x01(\x0b\x32\x33.injective.exchange.v1beta1.ExpiryFuturesMarketInfoR\nmarketInfo\"\x88\x01\n\x1bPerpetualMarketFundingState\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12L\n\x07\x66unding\x18\x02 \x01(\x0b\x32\x32.injective.exchange.v1beta1.PerpetualMarketFundingR\x07\x66unding\"\x8b\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\x46\n\x06grants\x18\x04 \x03(\x0b\x32..injective.exchange.v1beta1.GrantAuthorizationR\x06grants\"w\n\x0f\x46ullActiveGrant\x12\x18\n\x07grantee\x18\x01 \x01(\tR\x07grantee\x12J\n\x0c\x61\x63tive_grant\x18\x02 \x01(\x0b\x32\'.injective.exchange.v1beta1.ActiveGrantR\x0b\x61\x63tiveGrantB\x88\x02\n\x1e\x63om.injective.exchange.v1beta1B\x0cGenesisProtoP\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) @@ -68,37 +68,37 @@ _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=175 - _globals['_GENESISSTATE']._serialized_end=3930 - _globals['_ORDERBOOKSEQUENCE']._serialized_start=3932 - _globals['_ORDERBOOKSEQUENCE']._serialized_end=4008 - _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_start=4011 - _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_end=4139 - _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_start=4142 - _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_end=4311 - _globals['_ACCOUNTVOLUME']._serialized_start=4313 - _globals['_ACCOUNTVOLUME']._serialized_end=4415 - _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_start=4417 - _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_end=4540 - _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_start=4543 - _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_end=4752 - _globals['_SPOTORDERBOOK']._serialized_start=4755 - _globals['_SPOTORDERBOOK']._serialized_end=4907 - _globals['_DERIVATIVEORDERBOOK']._serialized_start=4910 - _globals['_DERIVATIVEORDERBOOK']._serialized_end=5074 - _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_start=5077 - _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_end=5526 - _globals['_BALANCE']._serialized_start=5529 - _globals['_BALANCE']._serialized_end=5672 - _globals['_DERIVATIVEPOSITION']._serialized_start=5675 - _globals['_DERIVATIVEPOSITION']._serialized_end=5837 - _globals['_SUBACCOUNTNONCE']._serialized_start=5840 - _globals['_SUBACCOUNTNONCE']._serialized_end=6014 - _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_start=6017 - _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_end=6162 - _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_start=6165 - _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_end=6301 - _globals['_FULLGRANTAUTHORIZATIONS']._serialized_start=6304 - _globals['_FULLGRANTAUTHORIZATIONS']._serialized_end=6571 - _globals['_FULLACTIVEGRANT']._serialized_start=6573 - _globals['_FULLACTIVEGRANT']._serialized_end=6692 + _globals['_GENESISSTATE']._serialized_end=4024 + _globals['_ORDERBOOKSEQUENCE']._serialized_start=4026 + _globals['_ORDERBOOKSEQUENCE']._serialized_end=4102 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_start=4105 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_end=4233 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_start=4236 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_end=4405 + _globals['_ACCOUNTVOLUME']._serialized_start=4407 + _globals['_ACCOUNTVOLUME']._serialized_end=4509 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_start=4511 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_end=4634 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_start=4637 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_end=4846 + _globals['_SPOTORDERBOOK']._serialized_start=4849 + _globals['_SPOTORDERBOOK']._serialized_end=5001 + _globals['_DERIVATIVEORDERBOOK']._serialized_start=5004 + _globals['_DERIVATIVEORDERBOOK']._serialized_end=5168 + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_start=5171 + _globals['_CONDITIONALDERIVATIVEORDERBOOK']._serialized_end=5620 + _globals['_BALANCE']._serialized_start=5623 + _globals['_BALANCE']._serialized_end=5766 + _globals['_DERIVATIVEPOSITION']._serialized_start=5769 + _globals['_DERIVATIVEPOSITION']._serialized_end=5931 + _globals['_SUBACCOUNTNONCE']._serialized_start=5934 + _globals['_SUBACCOUNTNONCE']._serialized_end=6108 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_start=6111 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_end=6256 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_start=6259 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_end=6395 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_start=6398 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_end=6665 + _globals['_FULLACTIVEGRANT']._serialized_start=6667 + _globals['_FULLACTIVEGRANT']._serialized_end=6786 # @@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 6d44d878..fcee36d6 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\"\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') +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\"\x8b\x0e\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\x12s\n\x1b\x64\x65nom_min_notional_proposal\x18\x0e \x01(\x0b\x32\x34.injective.exchange.v1beta1.DenomMinNotionalProposalR\x18\x64\x65nomMinNotionalProposal: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\"\xfe\x01\n\x18\x44\x65nomMinNotionalProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\\\n\x13\x64\x65nom_min_notionals\x18\x03 \x03(\x0b\x32,.injective.exchange.v1beta1.DenomMinNotionalR\x11\x64\x65nomMinNotionals:L\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*!exchange/DenomMinNotionalProposal*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,52 @@ _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=12687 - _globals['_EXCHANGETYPE']._serialized_end=12807 + _globals['_DENOMMINNOTIONALPROPOSAL']._loaded_options = None + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*!exchange/DenomMinNotionalProposal' + _globals['_EXCHANGETYPE']._serialized_start=13061 + _globals['_EXCHANGETYPE']._serialized_end=13181 _globals['_SPOTMARKETPARAMUPDATEPROPOSAL']._serialized_start=329 _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 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_end=3269 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_start=3272 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_end=4062 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_start=4065 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_end=5127 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_start=5130 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_end=6127 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_start=6130 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_end=7224 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_start=7227 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_end=8525 + _globals['_ADMININFO']._serialized_start=8527 + _globals['_ADMININFO']._serialized_end=8605 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_start=8608 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_end=8889 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_start=8892 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_end=9140 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_start=9143 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_end=10233 + _globals['_PROVIDERORACLEPARAMS']._serialized_start=10236 + _globals['_PROVIDERORACLEPARAMS']._serialized_end=10429 + _globals['_ORACLEPARAMS']._serialized_start=10432 + _globals['_ORACLEPARAMS']._serialized_end=10633 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_start=10636 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_end=11010 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_start=11013 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_end=11521 + _globals['_REWARDPOINTUPDATE']._serialized_start=11524 + _globals['_REWARDPOINTUPDATE']._serialized_end=11652 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_start=11655 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_end=11998 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_start=12001 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_end=12228 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_start=12231 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_end=12492 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_start=12495 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_end=12802 + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_start=12805 + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_end=13059 # @@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 43c5af63..0c181221 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\"<\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') +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\"8\n\x19QueryMarketBalanceRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x1aQueryMarketBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective.exchange.v1beta1.MarketBalanceR\x07\x62\x61lance\"\x1c\n\x1aQueryMarketBalancesRequest\"d\n\x1bQueryMarketBalancesResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective.exchange.v1beta1.MarketBalanceR\x08\x62\x61lances\"k\n\rMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12=\n\x07\x62\x61lance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x07\x62\x61lance\"4\n\x1cQueryDenomMinNotionalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"\\\n\x1dQueryDenomMinNotionalResponse\x12;\n\x06\x61mount\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount\"\x1f\n\x1dQueryDenomMinNotionalsRequest\"~\n\x1eQueryDenomMinNotionalsResponse\x12\\\n\x13\x64\x65nom_min_notionals\x18\x01 \x03(\x0b\x32,.injective.exchange.v1beta1.DenomMinNotionalR\x11\x64\x65nomMinNotionals*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\x89o\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}\x12\xbe\x01\n\rMarketBalance\x12\x35.injective.exchange.v1beta1.QueryMarketBalanceRequest\x1a\x36.injective.exchange.v1beta1.QueryMarketBalanceResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/market_balance/{market_id}\x12\xb6\x01\n\x0eMarketBalances\x12\x36.injective.exchange.v1beta1.QueryMarketBalancesRequest\x1a\x37.injective.exchange.v1beta1.QueryMarketBalancesResponse\"3\x82\xd3\xe4\x93\x02-\x12+/injective/exchange/v1beta1/market_balances\x12\xc7\x01\n\x10\x44\x65nomMinNotional\x12\x38.injective.exchange.v1beta1.QueryDenomMinNotionalRequest\x1a\x39.injective.exchange.v1beta1.QueryDenomMinNotionalResponse\">\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/exchange/v1beta1/denom_min_notional/{denom}\x12\xc3\x01\n\x11\x44\x65nomMinNotionals\x12\x39.injective.exchange.v1beta1.QueryDenomMinNotionalsRequest\x1a:.injective.exchange.v1beta1.QueryDenomMinNotionalsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/exchange/v1beta1/denom_min_notionalsB\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) @@ -161,6 +161,10 @@ _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['_MARKETBALANCE'].fields_by_name['balance']._loaded_options = None + _globals['_MARKETBALANCE'].fields_by_name['balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDENOMMINNOTIONALRESPONSE'].fields_by_name['amount']._loaded_options = None + _globals['_QUERYDENOMMINNOTIONALRESPONSE'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _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 @@ -285,10 +289,18 @@ _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=18012 - _globals['_ORDERSIDE']._serialized_end=18064 - _globals['_CANCELLATIONSTRATEGY']._serialized_start=18066 - _globals['_CANCELLATIONSTRATEGY']._serialized_end=18152 + _globals['_QUERY'].methods_by_name['MarketBalance']._loaded_options = None + _globals['_QUERY'].methods_by_name['MarketBalance']._serialized_options = b'\202\323\344\223\0028\0226/injective/exchange/v1beta1/market_balance/{market_id}' + _globals['_QUERY'].methods_by_name['MarketBalances']._loaded_options = None + _globals['_QUERY'].methods_by_name['MarketBalances']._serialized_options = b'\202\323\344\223\002-\022+/injective/exchange/v1beta1/market_balances' + _globals['_QUERY'].methods_by_name['DenomMinNotional']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomMinNotional']._serialized_options = b'\202\323\344\223\0028\0226/injective/exchange/v1beta1/denom_min_notional/{denom}' + _globals['_QUERY'].methods_by_name['DenomMinNotionals']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomMinNotionals']._serialized_options = b'\202\323\344\223\0021\022//injective/exchange/v1beta1/denom_min_notionals' + _globals['_ORDERSIDE']._serialized_start=18719 + _globals['_ORDERSIDE']._serialized_end=18771 + _globals['_CANCELLATIONSTRATEGY']._serialized_start=18773 + _globals['_CANCELLATIONSTRATEGY']._serialized_end=18859 _globals['_SUBACCOUNT']._serialized_start=246 _globals['_SUBACCOUNT']._serialized_end=325 _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_start=327 @@ -561,6 +573,24 @@ _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 + _globals['_QUERYMARKETBALANCEREQUEST']._serialized_start=18012 + _globals['_QUERYMARKETBALANCEREQUEST']._serialized_end=18068 + _globals['_QUERYMARKETBALANCERESPONSE']._serialized_start=18070 + _globals['_QUERYMARKETBALANCERESPONSE']._serialized_end=18167 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_start=18169 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_end=18197 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_start=18199 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_end=18299 + _globals['_MARKETBALANCE']._serialized_start=18301 + _globals['_MARKETBALANCE']._serialized_end=18408 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_start=18410 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_end=18462 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_start=18464 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_end=18556 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_start=18558 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_end=18589 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_start=18591 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_end=18717 + _globals['_QUERY']._serialized_start=18862 + _globals['_QUERY']._serialized_end=33079 # @@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 08ff9a3a..c2585c77 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py +++ b/pyinjective/proto/injective/exchange/v1beta1/query_pb2_grpc.py @@ -325,6 +325,26 @@ def __init__(self, channel): request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryGrantAuthorizationsRequest.SerializeToString, response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryGrantAuthorizationsResponse.FromString, _registered_method=True) + self.MarketBalance = channel.unary_unary( + '/injective.exchange.v1beta1.Query/MarketBalance', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceResponse.FromString, + _registered_method=True) + self.MarketBalances = channel.unary_unary( + '/injective.exchange.v1beta1.Query/MarketBalances', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesResponse.FromString, + _registered_method=True) + self.DenomMinNotional = channel.unary_unary( + '/injective.exchange.v1beta1.Query/DenomMinNotional', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalResponse.FromString, + _registered_method=True) + self.DenomMinNotionals = channel.unary_unary( + '/injective.exchange.v1beta1.Query/DenomMinNotionals', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsResponse.FromString, + _registered_method=True) class QueryServicer(object): @@ -767,6 +787,34 @@ def GrantAuthorizations(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def MarketBalance(self, request, context): + """Retrieves a derivative or binary options market's balance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MarketBalances(self, request, context): + """Retrieves all derivative or binary options market balances + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomMinNotional(self, request, context): + """Retrieves the min notional for a denom + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomMinNotionals(self, request, context): + """Retrieves the min notionals for all denoms + """ + 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 = { @@ -1080,6 +1128,26 @@ def add_QueryServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryGrantAuthorizationsRequest.FromString, response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryGrantAuthorizationsResponse.SerializeToString, ), + 'MarketBalance': grpc.unary_unary_rpc_method_handler( + servicer.MarketBalance, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceResponse.SerializeToString, + ), + 'MarketBalances': grpc.unary_unary_rpc_method_handler( + servicer.MarketBalances, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesResponse.SerializeToString, + ), + 'DenomMinNotional': grpc.unary_unary_rpc_method_handler( + servicer.DenomMinNotional, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalResponse.SerializeToString, + ), + 'DenomMinNotionals': grpc.unary_unary_rpc_method_handler( + servicer.DenomMinNotionals, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective.exchange.v1beta1.Query', rpc_method_handlers) @@ -2765,3 +2833,111 @@ def GrantAuthorizations(request, timeout, metadata, _registered_method=True) + + @staticmethod + def MarketBalance(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/MarketBalance', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalanceResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def MarketBalances(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/MarketBalances', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryMarketBalancesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomMinNotional(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/DenomMinNotional', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomMinNotionals(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/DenomMinNotionals', + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsRequest.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_query__pb2.QueryDenomMinNotionalsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py index 70abb95c..f4266b3d 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py @@ -18,11 +18,12 @@ 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.v1beta1 import exchange_pb2 as injective_dot_exchange_dot_v1beta1_dot_exchange__pb2 +from pyinjective.proto.injective.exchange.v1beta1 import proposal_pb2 as injective_dot_exchange_dot_v1beta1_dot_proposal__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#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') +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/exchange/v1beta1/proposal.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\"\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\"\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\x1dMsgActivateStakeGrantResponse\"\xd0\x01\n\x1cMsgBatchExchangeModification\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12Y\n\x08proposal\x18\x02 \x01(\x0b\x32=.injective.exchange.v1beta1.BatchExchangeModificationProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgBatchExchangeModification\"&\n$MsgBatchExchangeModificationResponse2\x98&\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\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\x12\x97\x01\n\x19\x42\x61tchExchangeModification\x12\x38.injective.exchange.v1beta1.MsgBatchExchangeModification\x1a@.injective.exchange.v1beta1.MsgBatchExchangeModificationResponse\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) @@ -84,22 +85,6 @@ _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 @@ -112,22 +97,6 @@ _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 @@ -278,162 +247,160 @@ _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['_MSGBATCHEXCHANGEMODIFICATION']._loaded_options = None + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*%exchange/MsgBatchExchangeModification' _globals['_MSG']._loaded_options = None _globals['_MSG']._serialized_options = b'\200\347\260*\001' - _globals['_MSGUPDATESPOTMARKET']._serialized_start=323 - _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 + _globals['_MSGUPDATESPOTMARKET']._serialized_start=366 + _globals['_MSGUPDATESPOTMARKET']._serialized_end=785 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=787 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=816 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=819 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1450 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1452 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1487 + _globals['_MSGUPDATEPARAMS']._serialized_start=1490 + _globals['_MSGUPDATEPARAMS']._serialized_end=1674 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1676 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1701 + _globals['_MSGDEPOSIT']._serialized_start=1704 + _globals['_MSGDEPOSIT']._serialized_end=1879 + _globals['_MSGDEPOSITRESPONSE']._serialized_start=1881 + _globals['_MSGDEPOSITRESPONSE']._serialized_end=1901 + _globals['_MSGWITHDRAW']._serialized_start=1904 + _globals['_MSGWITHDRAW']._serialized_end=2081 + _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2083 + _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2104 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2107 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2281 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2283 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2375 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2378 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2566 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2569 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2747 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2750 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3273 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3275 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3311 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=3314 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=4219 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=4221 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=4266 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=4269 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=4445 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=4448 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=4625 + _globals['_SPOTMARKETORDERRESULTS']._serialized_start=4628 + _globals['_SPOTMARKETORDERRESULTS']._serialized_end=4841 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=4844 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=5032 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=5034 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=5132 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=5135 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=5329 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=5331 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=5432 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=5435 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=5637 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=5640 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=5824 + _globals['_MSGCANCELSPOTORDER']._serialized_start=5827 + _globals['_MSGCANCELSPOTORDER']._serialized_end=6035 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=6037 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=6065 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=6068 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=6238 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=6240 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=6310 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=6313 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=6501 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=6503 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=6582 + _globals['_MSGBATCHUPDATEORDERS']._serialized_start=6585 + _globals['_MSGBATCHUPDATEORDERS']._serialized_end=7595 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=7598 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=8374 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=8377 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=8567 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=8570 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=8759 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=8762 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=9130 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=9133 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=9329 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=9332 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=9524 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=9527 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=9778 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=9780 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=9814 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=9817 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=10074 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=10076 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=10113 + _globals['_ORDERDATA']._serialized_start=10116 + _globals['_ORDERDATA']._serialized_end=10273 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=10276 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=10458 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=10460 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=10536 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=10539 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=10801 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=10803 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=10834 + _globals['_MSGEXTERNALTRANSFER']._serialized_start=10837 + _globals['_MSGEXTERNALTRANSFER']._serialized_end=11095 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=11097 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=11126 + _globals['_MSGLIQUIDATEPOSITION']._serialized_start=11129 + _globals['_MSGLIQUIDATEPOSITION']._serialized_end=11361 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=11363 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=11393 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=11396 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=11563 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=11565 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=11599 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=11602 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=11905 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=11907 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=11942 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=11945 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=12248 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=12250 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=12285 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=12288 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=12490 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=12493 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=12660 + _globals['_MSGREWARDSOPTOUT']._serialized_start=12662 + _globals['_MSGREWARDSOPTOUT']._serialized_end=12755 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=12757 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=12783 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=12786 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=12961 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=12963 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=12994 + _globals['_MSGSIGNDATA']._serialized_start=12997 + _globals['_MSGSIGNDATA']._serialized_end=13125 + _globals['_MSGSIGNDOC']._serialized_start=13127 + _globals['_MSGSIGNDOC']._serialized_end=13247 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=13250 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=13646 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=13648 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=13691 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=13694 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=13865 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=13867 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=13900 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=13902 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=14023 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=14025 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=14056 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_start=14059 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_end=14267 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_start=14269 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_end=14307 + _globals['_MSG']._serialized_start=14310 + _globals['_MSG']._serialized_end=19198 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2_grpc.py index e8346ec5..ab5ee4be 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2_grpc.py +++ b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2_grpc.py @@ -30,16 +30,6 @@ def __init__(self, channel): request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantSpotMarketLaunch.SerializeToString, response_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantSpotMarketLaunchResponse.FromString, _registered_method=True) - self.InstantPerpetualMarketLaunch = channel.unary_unary( - '/injective.exchange.v1beta1.Msg/InstantPerpetualMarketLaunch', - request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.SerializeToString, - response_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantPerpetualMarketLaunchResponse.FromString, - _registered_method=True) - self.InstantExpiryFuturesMarketLaunch = channel.unary_unary( - '/injective.exchange.v1beta1.Msg/InstantExpiryFuturesMarketLaunch', - request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.SerializeToString, - response_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunchResponse.FromString, - _registered_method=True) self.CreateSpotLimitOrder = channel.unary_unary( '/injective.exchange.v1beta1.Msg/CreateSpotLimitOrder', request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgCreateSpotLimitOrder.SerializeToString, @@ -190,6 +180,11 @@ def __init__(self, channel): request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgActivateStakeGrant.SerializeToString, response_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgActivateStakeGrantResponse.FromString, _registered_method=True) + self.BatchExchangeModification = channel.unary_unary( + '/injective.exchange.v1beta1.Msg/BatchExchangeModification', + request_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModification.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModificationResponse.FromString, + _registered_method=True) class MsgServicer(object): @@ -220,22 +215,6 @@ def InstantSpotMarketLaunch(self, request, context): 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. """ @@ -459,6 +438,12 @@ def ActivateStakeGrant(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def BatchExchangeModification(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 = { @@ -477,16 +462,6 @@ def add_MsgServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantSpotMarketLaunch.FromString, response_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantSpotMarketLaunchResponse.SerializeToString, ), - 'InstantPerpetualMarketLaunch': grpc.unary_unary_rpc_method_handler( - servicer.InstantPerpetualMarketLaunch, - request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.FromString, - response_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantPerpetualMarketLaunchResponse.SerializeToString, - ), - 'InstantExpiryFuturesMarketLaunch': grpc.unary_unary_rpc_method_handler( - servicer.InstantExpiryFuturesMarketLaunch, - request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.FromString, - response_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunchResponse.SerializeToString, - ), 'CreateSpotLimitOrder': grpc.unary_unary_rpc_method_handler( servicer.CreateSpotLimitOrder, request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgCreateSpotLimitOrder.FromString, @@ -637,6 +612,11 @@ def add_MsgServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgActivateStakeGrant.FromString, response_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgActivateStakeGrantResponse.SerializeToString, ), + 'BatchExchangeModification': grpc.unary_unary_rpc_method_handler( + servicer.BatchExchangeModification, + request_deserializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModification.FromString, + response_serializer=injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModificationResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective.exchange.v1beta1.Msg', rpc_method_handlers) @@ -730,60 +710,6 @@ def InstantSpotMarketLaunch(request, 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.v1beta1.Msg/InstantPerpetualMarketLaunch', - injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantPerpetualMarketLaunch.SerializeToString, - injective_dot_exchange_dot_v1beta1_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.v1beta1.Msg/InstantExpiryFuturesMarketLaunch', - injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgInstantExpiryFuturesMarketLaunch.SerializeToString, - injective_dot_exchange_dot_v1beta1_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, @@ -1593,3 +1519,30 @@ def ActivateStakeGrant(request, timeout, metadata, _registered_method=True) + + @staticmethod + def BatchExchangeModification(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.Msg/BatchExchangeModification', + injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModification.SerializeToString, + injective_dot_exchange_dot_v1beta1_dot_tx__pb2.MsgBatchExchangeModificationResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/exchange/v2/authz_pb2.py b/pyinjective/proto/injective/exchange/v2/authz_pb2.py index 49193d67..7c49d59a 100644 --- a/pyinjective/proto/injective/exchange/v2/authz_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/authz_pb2.py @@ -12,11 +12,13 @@ _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_proto import cosmos_pb2 as cosmos__proto_dot_cosmos__pb2 +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/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') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/exchange/v2/authz.proto\x12\x15injective.exchange.v2\x1a\x14gogoproto/gogo.proto\x1a\x11\x61mino/amino.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x1e\x63osmos/base/v1beta1/coin.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/BatchUpdateOrdersAuthz\"\xf2\x01\n\x1cGenericExchangeAuthorization\x12\x10\n\x03msg\x18\x01 \x01(\tR\x03msg\x12\x82\x01\n\x0bspend_limit\x18\x02 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinBF\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.Coins\x9a\xe7\xb0*\x0clegacy_coins\xa8\xe7\xb0*\x01R\nspendLimit:;\xca\xb4-\rAuthorization\x8a\xe7\xb0*%exchange/GenericExchangeAuthorizationB\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) @@ -46,26 +48,32 @@ _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 + _globals['_GENERICEXCHANGEAUTHORIZATION'].fields_by_name['spend_limit']._loaded_options = None + _globals['_GENERICEXCHANGEAUTHORIZATION'].fields_by_name['spend_limit']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins\232\347\260*\014legacy_coins\250\347\260*\001' + _globals['_GENERICEXCHANGEAUTHORIZATION']._loaded_options = None + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_options = b'\312\264-\rAuthorization\212\347\260*%exchange/GenericExchangeAuthorization' + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_start=161 + _globals['_CREATESPOTLIMITORDERAUTHZ']._serialized_end=314 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_start=317 + _globals['_CREATESPOTMARKETORDERAUTHZ']._serialized_end=472 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_start=475 + _globals['_BATCHCREATESPOTLIMITORDERSAUTHZ']._serialized_end=640 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_start=643 + _globals['_CANCELSPOTORDERAUTHZ']._serialized_end=786 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_start=789 + _globals['_BATCHCANCELSPOTORDERSAUTHZ']._serialized_end=944 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_start=947 + _globals['_CREATEDERIVATIVELIMITORDERAUTHZ']._serialized_end=1112 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_start=1115 + _globals['_CREATEDERIVATIVEMARKETORDERAUTHZ']._serialized_end=1282 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_start=1285 + _globals['_BATCHCREATEDERIVATIVELIMITORDERSAUTHZ']._serialized_end=1462 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_start=1465 + _globals['_CANCELDERIVATIVEORDERAUTHZ']._serialized_end=1620 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_start=1623 + _globals['_BATCHCANCELDERIVATIVEORDERSAUTHZ']._serialized_end=1790 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_start=1793 + _globals['_BATCHUPDATEORDERSAUTHZ']._serialized_end=1991 + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_start=1994 + _globals['_GENERICEXCHANGEAUTHORIZATION']._serialized_end=2236 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/events_pb2.py b/pyinjective/proto/injective/exchange/v2/events_pb2.py index de2274e5..bf803a2c 100644 --- a/pyinjective/proto/injective/exchange/v2/events_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -20,7 +20,7 @@ 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') +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\"P\n\x19\x45ventSettledMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"S\n\x1c\x45ventNotSettledMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\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\"\xf0\x01\n(EventTriggerConditionalMarketOrderFailed\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x42\n\nmark_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\x12\x1d\n\norder_hash\x18\x04 \x01(\x0cR\torderHash\x12\x1f\n\x0btrigger_err\x18\x05 \x01(\tR\ntriggerErr\"\xef\x01\n\'EventTriggerConditionalLimitOrderFailed\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x42\n\nmark_price\x18\x03 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\tmarkPrice\x12\x1d\n\norder_hash\x18\x04 \x01(\x0cR\torderHash\x12\x1f\n\x0btrigger_err\x18\x05 \x01(\tR\ntriggerErr\"\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) @@ -86,6 +86,10 @@ _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['_EVENTTRIGGERCONDITIONALMARKETORDERFAILED'].fields_by_name['mark_price']._loaded_options = None + _globals['_EVENTTRIGGERCONDITIONALMARKETORDERFAILED'].fields_by_name['mark_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTTRIGGERCONDITIONALLIMITORDERFAILED'].fields_by_name['mark_price']._loaded_options = None + _globals['_EVENTTRIGGERCONDITIONALLIMITORDERFAILED'].fields_by_name['mark_price']._serialized_options = b'\310\336\037\000\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 @@ -104,76 +108,84 @@ _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 + _globals['_EVENTSETTLEDMARKETBALANCE']._serialized_start=1478 + _globals['_EVENTSETTLEDMARKETBALANCE']._serialized_end=1558 + _globals['_EVENTNOTSETTLEDMARKETBALANCE']._serialized_start=1560 + _globals['_EVENTNOTSETTLEDMARKETBALANCE']._serialized_end=1643 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_start=1646 + _globals['_EVENTMARKETBEYONDBANKRUPTCY']._serialized_end=1789 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_start=1792 + _globals['_EVENTALLPOSITIONSHAIRCUT']._serialized_end=1928 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_start=1930 + _globals['_EVENTBINARYOPTIONSMARKETUPDATE']._serialized_end=2036 + _globals['_EVENTNEWSPOTORDERS']._serialized_start=2039 + _globals['_EVENTNEWSPOTORDERS']._serialized_end=2230 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_start=2233 + _globals['_EVENTNEWDERIVATIVEORDERS']._serialized_end=2442 + _globals['_EVENTCANCELSPOTORDER']._serialized_start=2444 + _globals['_EVENTCANCELSPOTORDER']._serialized_end=2562 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_start=2564 + _globals['_EVENTSPOTMARKETUPDATE']._serialized_end=2652 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_start=2655 + _globals['_EVENTPERPETUALMARKETUPDATE']._serialized_end=2935 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_start=2938 + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE']._serialized_end=3156 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_start=3159 + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE']._serialized_end=3486 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_start=3489 + _globals['_EVENTSUBACCOUNTDEPOSIT']._serialized_end=3640 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_start=3643 + _globals['_EVENTSUBACCOUNTWITHDRAW']._serialized_end=3795 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_start=3798 + _globals['_EVENTSUBACCOUNTBALANCETRANSFER']._serialized_end=3975 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_start=3977 + _globals['_EVENTBATCHDEPOSITUPDATE']._serialized_end=4081 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_start=4084 + _globals['_DERIVATIVEMARKETORDERCANCEL']._serialized_end=4278 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_start=4281 + _globals['_EVENTCANCELDERIVATIVEORDER']._serialized_end=4566 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_start=4568 + _globals['_EVENTFEEDISCOUNTSCHEDULE']._serialized_end=4666 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_start=4669 + _globals['_EVENTTRADINGREWARDCAMPAIGNUPDATE']._serialized_end=4885 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_start=4887 + _globals['_EVENTTRADINGREWARDDISTRIBUTION']._serialized_end=4999 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_start=5002 + _globals['_EVENTNEWCONDITIONALDERIVATIVEORDER']._serialized_end=5178 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_start=5181 + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER']._serialized_end=5458 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_start=5461 + _globals['_EVENTCONDITIONALDERIVATIVEORDERTRIGGER']._serialized_end=5712 + _globals['_EVENTORDERFAIL']._serialized_start=5714 + _globals['_EVENTORDERFAIL']._serialized_end=5822 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_start=5825 + _globals['_EVENTATOMICMARKETORDERFEEMULTIPLIERSUPDATED']._serialized_end=5968 + _globals['_EVENTORDERBOOKUPDATE']._serialized_start=5971 + _globals['_EVENTORDERBOOKUPDATE']._serialized_end=6155 + _globals['_ORDERBOOKUPDATE']._serialized_start=6157 + _globals['_ORDERBOOKUPDATE']._serialized_end=6256 + _globals['_ORDERBOOK']._serialized_start=6259 + _globals['_ORDERBOOK']._serialized_end=6423 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_start=6425 + _globals['_EVENTGRANTAUTHORIZATIONS']._serialized_end=6544 + _globals['_EVENTGRANTACTIVATION']._serialized_start=6547 + _globals['_EVENTGRANTACTIVATION']._serialized_end=6676 + _globals['_EVENTINVALIDGRANT']._serialized_start=6678 + _globals['_EVENTINVALIDGRANT']._serialized_end=6749 + _globals['_EVENTORDERCANCELFAIL']._serialized_start=6752 + _globals['_EVENTORDERCANCELFAIL']._serialized_end=6923 + _globals['_EVENTDERIVATIVEORDERSV2MIGRATION']._serialized_start=6926 + _globals['_EVENTDERIVATIVEORDERSV2MIGRATION']._serialized_end=7177 + _globals['_DERIVATIVEORDERV2CHANGES']._serialized_start=7180 + _globals['_DERIVATIVEORDERV2CHANGES']._serialized_end=7501 + _globals['_EVENTSPOTORDERSV2MIGRATION']._serialized_start=7504 + _globals['_EVENTSPOTORDERSV2MIGRATION']._serialized_end=7737 + _globals['_EVENTTRIGGERCONDITIONALMARKETORDERFAILED']._serialized_start=7740 + _globals['_EVENTTRIGGERCONDITIONALMARKETORDERFAILED']._serialized_end=7980 + _globals['_EVENTTRIGGERCONDITIONALLIMITORDERFAILED']._serialized_start=7983 + _globals['_EVENTTRIGGERCONDITIONALLIMITORDERFAILED']._serialized_end=8222 + _globals['_SPOTORDERV2CHANGES']._serialized_start=8225 + _globals['_SPOTORDERV2CHANGES']._serialized_end=8489 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_start=8491 + _globals['_EVENTDERIVATIVEPOSITIONV2MIGRATION']._serialized_end=8598 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/exchange_pb2.py b/pyinjective/proto/injective/exchange/v2/exchange_pb2.py index e353a54f..7f368df5 100644 --- a/pyinjective/proto/injective/exchange/v2/exchange_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/exchange_pb2.py @@ -20,7 +20,7 @@ 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') +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\"\xa4\x17\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\x12*\n\x11\x66ixed_gas_enabled\x18\x1d \x01(\x08R\x0f\x66ixedGasEnabled\x12;\n\x1a\x65mit_legacy_version_events\x18\x1e \x01(\x08R\x17\x65mitLegacyVersionEvents\x12\x62\n\x1b\x64\x65\x66\x61ult_reduce_margin_ratio\x18\x1f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x18\x64\x65\x66\x61ultReduceMarginRatio:\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\"p\n\x10\x44\x65nomMinNotional\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x46\n\x0cmin_notional\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional*\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) @@ -66,6 +66,8 @@ _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'].fields_by_name['default_reduce_margin_ratio']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_reduce_margin_ratio']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _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 @@ -150,76 +152,80 @@ _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['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._loaded_options = None + _globals['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EXECUTIONTYPE']._serialized_start=9307 + _globals['_EXECUTIONTYPE']._serialized_end=9482 _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 + _globals['_PARAMS']._serialized_end=3227 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=3229 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=3290 + _globals['_MIDPRICEANDTOB']._serialized_start=3293 + _globals['_MIDPRICEANDTOB']._serialized_end=3527 + _globals['_DEPOSIT']._serialized_start=3530 + _globals['_DEPOSIT']._serialized_end=3695 + _globals['_SUBACCOUNTTRADENONCE']._serialized_start=3697 + _globals['_SUBACCOUNTTRADENONCE']._serialized_end=3741 + _globals['_SUBACCOUNTORDER']._serialized_start=3744 + _globals['_SUBACCOUNTORDER']._serialized_end=3939 + _globals['_SUBACCOUNTORDERDATA']._serialized_start=3941 + _globals['_SUBACCOUNTORDERDATA']._serialized_end=4055 + _globals['_POSITION']._serialized_start=4058 + _globals['_POSITION']._serialized_end=4383 + _globals['_BALANCE']._serialized_start=4386 + _globals['_BALANCE']._serialized_end=4524 + _globals['_DERIVATIVEPOSITION']._serialized_start=4527 + _globals['_DERIVATIVEPOSITION']._serialized_end=4684 + _globals['_MARKETORDERINDICATOR']._serialized_start=4686 + _globals['_MARKETORDERINDICATOR']._serialized_end=4759 + _globals['_TRADELOG']._serialized_start=4762 + _globals['_TRADELOG']._serialized_end=5095 + _globals['_POSITIONDELTA']._serialized_start=5098 + _globals['_POSITIONDELTA']._serialized_end=5380 + _globals['_DERIVATIVETRADELOG']._serialized_start=5383 + _globals['_DERIVATIVETRADELOG']._serialized_end=5795 + _globals['_SUBACCOUNTPOSITION']._serialized_start=5797 + _globals['_SUBACCOUNTPOSITION']._serialized_end=5915 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=5917 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=6031 + _globals['_DEPOSITUPDATE']._serialized_start=6033 + _globals['_DEPOSITUPDATE']._serialized_end=6140 + _globals['_POINTSMULTIPLIER']._serialized_start=6143 + _globals['_POINTSMULTIPLIER']._serialized_end=6347 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=6350 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=6722 + _globals['_CAMPAIGNREWARDPOOL']._serialized_start=6725 + _globals['_CAMPAIGNREWARDPOOL']._serialized_end=6913 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=6916 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=7208 + _globals['_FEEDISCOUNTTIERINFO']._serialized_start=7211 + _globals['_FEEDISCOUNTTIERINFO']._serialized_end=7531 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=7534 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=7797 + _globals['_FEEDISCOUNTTIERTTL']._serialized_start=7799 + _globals['_FEEDISCOUNTTIERTTL']._serialized_end=7876 + _globals['_ACCOUNTREWARDS']._serialized_start=7879 + _globals['_ACCOUNTREWARDS']._serialized_end=8024 + _globals['_TRADERECORDS']._serialized_start=8027 + _globals['_TRADERECORDS']._serialized_end=8156 + _globals['_SUBACCOUNTIDS']._serialized_start=8158 + _globals['_SUBACCOUNTIDS']._serialized_end=8212 + _globals['_TRADERECORD']._serialized_start=8215 + _globals['_TRADERECORD']._serialized_end=8382 + _globals['_LEVEL']._serialized_start=8384 + _globals['_LEVEL']._serialized_end=8493 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=8496 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=8642 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=8645 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=8777 + _globals['_DENOMDECIMALS']._serialized_start=8779 + _globals['_DENOMDECIMALS']._serialized_end=8844 + _globals['_GRANTAUTHORIZATION']._serialized_start=8846 + _globals['_GRANTAUTHORIZATION']._serialized_end=8947 + _globals['_ACTIVEGRANT']._serialized_start=8949 + _globals['_ACTIVEGRANT']._serialized_end=9043 + _globals['_EFFECTIVEGRANT']._serialized_start=9046 + _globals['_EFFECTIVEGRANT']._serialized_end=9190 + _globals['_DENOMMINNOTIONAL']._serialized_start=9192 + _globals['_DENOMMINNOTIONAL']._serialized_end=9304 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/genesis_pb2.py b/pyinjective/proto/injective/exchange/v2/genesis_pb2.py index 5169d995..8e0cef7c 100644 --- a/pyinjective/proto/injective/exchange/v2/genesis_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/genesis_pb2.py @@ -19,7 +19,7 @@ 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') +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\"\xec\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\x12W\n\x13\x64\x65nom_min_notionals\x18% \x03(\x0b\x32\'.injective.exchange.v2.DenomMinNotionalR\x11\x64\x65nomMinNotionals\"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) @@ -60,23 +60,23 @@ _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 + _globals['_GENESISSTATE']._serialized_end=3922 + _globals['_ORDERBOOKSEQUENCE']._serialized_start=3924 + _globals['_ORDERBOOKSEQUENCE']._serialized_end=4000 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_start=4002 + _globals['_FEEDISCOUNTACCOUNTTIERTTL']._serialized_end=4125 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_start=4128 + _globals['_FEEDISCOUNTBUCKETVOLUMEACCOUNTS']._serialized_end=4292 + _globals['_ACCOUNTVOLUME']._serialized_start=4294 + _globals['_ACCOUNTVOLUME']._serialized_end=4396 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_start=4398 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPOINTS']._serialized_end=4521 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_start=4524 + _globals['_TRADINGREWARDCAMPAIGNACCOUNTPENDINGPOINTS']._serialized_end=4728 + _globals['_SUBACCOUNTNONCE']._serialized_start=4731 + _globals['_SUBACCOUNTNONCE']._serialized_end=4900 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_start=4903 + _globals['_FULLGRANTAUTHORIZATIONS']._serialized_end=5165 + _globals['_FULLACTIVEGRANT']._serialized_start=5167 + _globals['_FULLACTIVEGRANT']._serialized_end=5281 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/market_pb2.py b/pyinjective/proto/injective/exchange/v2/market_pb2.py index 2794d5a3..5014a6c2 100644 --- a/pyinjective/proto/injective/exchange/v2/market_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/market_pb2.py @@ -16,7 +16,7 @@ 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') +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\"\xe3\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\x12S\n\x13reduce_margin_ratio\x18\x15 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio:\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) @@ -72,6 +72,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['reduce_margin_ratio']._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 @@ -94,8 +96,8 @@ _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['_MARKETSTATUS']._serialized_start=5093 + _globals['_MARKETSTATUS']._serialized_end=5177 _globals['_MARKETFEEMULTIPLIER']._serialized_start=123 _globals['_MARKETFEEMULTIPLIER']._serialized_end=255 _globals['_SPOTMARKET']._serialized_start=258 @@ -103,21 +105,21 @@ _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 + _globals['_DERIVATIVEMARKET']._serialized_end=3479 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=3482 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=3623 + _globals['_MARKETVOLUME']._serialized_start=3625 + _globals['_MARKETVOLUME']._serialized_end=3735 + _globals['_VOLUMERECORD']._serialized_start=3738 + _globals['_VOLUMERECORD']._serialized_end=3896 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_start=3899 + _globals['_EXPIRYFUTURESMARKETINFOSTATE']._serialized_end=4039 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_start=4042 + _globals['_PERPETUALMARKETFUNDINGSTATE']._serialized_end=4173 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=4176 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=4532 + _globals['_PERPETUALMARKETINFO']._serialized_start=4535 + _globals['_PERPETUALMARKETINFO']._serialized_end=4861 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=4864 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=5091 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/order_pb2.py b/pyinjective/proto/injective/exchange/v2/order_pb2.py index 38aaeada..2a79d0c8 100644 --- a/pyinjective/proto/injective/exchange/v2/order_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/order_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!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') +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\"\xab\x02\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\x12/\n\x10\x65xpiration_block\x18\x05 \x01(\x03\x42\x04\xc8\xde\x1f\x01R\x0f\x65xpirationBlock\"\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\"\xf3\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\x12/\n\x10\x65xpiration_block\x18\x06 \x01(\x03\x42\x04\xc8\xde\x1f\x01R\x0f\x65xpirationBlock\"\xee\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\x12/\n\x10\x65xpiration_block\x18\x06 \x01(\x03\x42\x04\xc8\xde\x1f\x01R\x0f\x65xpirationBlock\"\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\"\xb6\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\x12/\n\x10\x65xpiration_block\x18\x07 \x01(\x03\x42\x04\xc8\xde\x1f\x01R\x0f\x65xpirationBlock*\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) @@ -69,6 +69,8 @@ _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['_SPOTORDER'].fields_by_name['expiration_block']._loaded_options = None + _globals['_SPOTORDER'].fields_by_name['expiration_block']._serialized_options = b'\310\336\037\001' _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 @@ -81,12 +83,16 @@ _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['_SPOTLIMITORDER'].fields_by_name['expiration_block']._loaded_options = None + _globals['_SPOTLIMITORDER'].fields_by_name['expiration_block']._serialized_options = b'\310\336\037\001' _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['_DERIVATIVEORDER'].fields_by_name['expiration_block']._loaded_options = None + _globals['_DERIVATIVEORDER'].fields_by_name['expiration_block']._serialized_options = b'\310\336\037\001' _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 @@ -103,24 +109,26 @@ _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['_DERIVATIVELIMITORDER'].fields_by_name['expiration_block']._loaded_options = None + _globals['_DERIVATIVELIMITORDER'].fields_by_name['expiration_block']._serialized_options = b'\310\336\037\001' + _globals['_ORDERTYPE']._serialized_start=2530 + _globals['_ORDERTYPE']._serialized_end=2845 + _globals['_ORDERMASK']._serialized_start=2848 + _globals['_ORDERMASK']._serialized_end=3113 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=3115 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=3231 _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 + _globals['_SPOTORDER']._serialized_end=612 + _globals['_SPOTMARKETORDER']._serialized_start=615 + _globals['_SPOTMARKETORDER']._serialized_end=945 + _globals['_SPOTLIMITORDER']._serialized_start=948 + _globals['_SPOTLIMITORDER']._serialized_end=1319 + _globals['_DERIVATIVEORDER']._serialized_start=1322 + _globals['_DERIVATIVEORDER']._serialized_end=1688 + _globals['_DERIVATIVEMARKETORDER']._serialized_start=1691 + _globals['_DERIVATIVEMARKETORDER']._serialized_end=2086 + _globals['_DERIVATIVELIMITORDER']._serialized_start=2089 + _globals['_DERIVATIVELIMITORDER']._serialized_end=2527 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/proposal_pb2.py b/pyinjective/proto/injective/exchange/v2/proposal_pb2.py index 4c8950fe..845c8389 100644 --- a/pyinjective/proto/injective/exchange/v2/proposal_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/proposal_pb2.py @@ -23,7 +23,7 @@ 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') +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\"\xce\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\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\x12n\n\x1b\x64\x65nom_min_notional_proposal\x18\x0e \x01(\x0b\x32/.injective.exchange.v2.DenomMinNotionalProposalR\x18\x64\x65nomMinNotionalProposal: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\"\xf6\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\x12S\n\x13reduce_margin_ratio\x18\x11 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio: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\"\x96\t\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\x12S\n\x13reduce_margin_ratio\x18\x12 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio:U\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0**exchange/ExpiryFuturesMarketLaunchProposal\"\xd8\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\x12S\n\x13reduce_margin_ratio\x18\x12 \x01(\tB#\xc8\xde\x1f\x01\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio: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\"\xf9\x01\n\x18\x44\x65nomMinNotionalProposal\x12\x14\n\x05title\x18\x01 \x01(\tR\x05title\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12W\n\x13\x64\x65nom_min_notionals\x18\x03 \x03(\x0b\x32\'.injective.exchange.v2.DenomMinNotionalR\x11\x64\x65nomMinNotionals:L\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\xca\xb4-\x1a\x63osmos.gov.v1beta1.Content\x8a\xe7\xb0*!exchange/DenomMinNotionalProposal*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) @@ -83,6 +83,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_PERPETUALMARKETLAUNCHPROPOSAL'].fields_by_name['reduce_margin_ratio']._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 @@ -111,6 +113,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL'].fields_by_name['reduce_margin_ratio']._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 @@ -135,6 +139,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL'].fields_by_name['reduce_margin_ratio']._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 @@ -175,48 +181,52 @@ _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['_DENOMMINNOTIONALPROPOSAL']._loaded_options = None + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_options = b'\210\240\037\000\350\240\037\000\312\264-\032cosmos.gov.v1beta1.Content\212\347\260*!exchange/DenomMinNotionalProposal' + _globals['_EXCHANGETYPE']._serialized_start=13171 + _globals['_EXCHANGETYPE']._serialized_end=13291 _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 + _globals['_BATCHEXCHANGEMODIFICATIONPROPOSAL']._serialized_end=3214 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_start=3217 + _globals['_SPOTMARKETLAUNCHPROPOSAL']._serialized_end=4002 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_start=4005 + _globals['_PERPETUALMARKETLAUNCHPROPOSAL']._serialized_end=5147 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_start=5150 + _globals['_BINARYOPTIONSMARKETLAUNCHPROPOSAL']._serialized_end=6147 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_start=6150 + _globals['_EXPIRYFUTURESMARKETLAUNCHPROPOSAL']._serialized_end=7324 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_start=7327 + _globals['_DERIVATIVEMARKETPARAMUPDATEPROPOSAL']._serialized_end=8695 + _globals['_ADMININFO']._serialized_start=8697 + _globals['_ADMININFO']._serialized_end=8775 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_start=8778 + _globals['_MARKETFORCEDSETTLEMENTPROPOSAL']._serialized_end=9059 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_start=9062 + _globals['_UPDATEDENOMDECIMALSPROPOSAL']._serialized_end=9305 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_start=9308 + _globals['_BINARYOPTIONSMARKETPARAMUPDATEPROPOSAL']._serialized_end=10388 + _globals['_PROVIDERORACLEPARAMS']._serialized_start=10391 + _globals['_PROVIDERORACLEPARAMS']._serialized_end=10584 + _globals['_ORACLEPARAMS']._serialized_start=10587 + _globals['_ORACLEPARAMS']._serialized_end=10788 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_start=10791 + _globals['_TRADINGREWARDCAMPAIGNLAUNCHPROPOSAL']._serialized_end=11155 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_start=11158 + _globals['_TRADINGREWARDCAMPAIGNUPDATEPROPOSAL']._serialized_end=11651 + _globals['_REWARDPOINTUPDATE']._serialized_start=11654 + _globals['_REWARDPOINTUPDATE']._serialized_end=11782 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_start=11785 + _globals['_TRADINGREWARDPENDINGPOINTSUPDATEPROPOSAL']._serialized_end=12123 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_start=12126 + _globals['_FEEDISCOUNTPROPOSAL']._serialized_end=12348 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_start=12351 + _globals['_BATCHCOMMUNITYPOOLSPENDPROPOSAL']._serialized_end=12612 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_start=12615 + _globals['_ATOMICMARKETORDERFEEMULTIPLIERSCHEDULEPROPOSAL']._serialized_end=12917 + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_start=12920 + _globals['_DENOMMINNOTIONALPROPOSAL']._serialized_end=13169 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v2/query_pb2.py b/pyinjective/proto/injective/exchange/v2/query_pb2.py index 13849253..b2fb4675 100644 --- a/pyinjective/proto/injective/exchange/v2/query_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/query_pb2.py @@ -21,7 +21,7 @@ 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') +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\"<\n\x1dQueryPositionsInMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"g\n\x1eQueryPositionsInMarketResponse\x12\x45\n\x05state\x18\x01 \x03(\x0b\x32).injective.exchange.v2.DerivativePositionB\x04\xc8\xde\x1f\x01R\x05state\"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\"8\n\x19QueryMarketBalanceRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"\\\n\x1aQueryMarketBalanceResponse\x12>\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32$.injective.exchange.v2.MarketBalanceR\x07\x62\x61lance\"\x1c\n\x1aQueryMarketBalancesRequest\"_\n\x1bQueryMarketBalancesResponse\x12@\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32$.injective.exchange.v2.MarketBalanceR\x08\x62\x61lances\"k\n\rMarketBalance\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12=\n\x07\x62\x61lance\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x07\x62\x61lance\"4\n\x1cQueryDenomMinNotionalRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"\\\n\x1dQueryDenomMinNotionalResponse\x12;\n\x06\x61mount\x18\x01 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x06\x61mount\"\x1f\n\x1dQueryDenomMinNotionalsRequest\"y\n\x1eQueryDenomMinNotionalsResponse\x12W\n\x13\x64\x65nom_min_notionals\x18\x01 \x03(\x0b\x32\'.injective.exchange.v2.DenomMinNotionalR\x11\x64\x65nomMinNotionals*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\xe4h\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}\x12\xaf\x01\n\rMarketBalance\x12\x30.injective.exchange.v2.QueryMarketBalanceRequest\x1a\x31.injective.exchange.v2.QueryMarketBalanceResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v2/market_balance/{market_id}\x12\xa7\x01\n\x0eMarketBalances\x12\x31.injective.exchange.v2.QueryMarketBalancesRequest\x1a\x32.injective.exchange.v2.QueryMarketBalancesResponse\".\x82\xd3\xe4\x93\x02(\x12&/injective/exchange/v2/market_balances\x12\xb8\x01\n\x10\x44\x65nomMinNotional\x12\x33.injective.exchange.v2.QueryDenomMinNotionalRequest\x1a\x34.injective.exchange.v2.QueryDenomMinNotionalResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/exchange/v2/denom_min_notional/{denom}\x12\xb4\x01\n\x11\x44\x65nomMinNotionals\x12\x34.injective.exchange.v2.QueryDenomMinNotionalsRequest\x1a\x35.injective.exchange.v2.QueryDenomMinNotionalsResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/exchange/v2/denom_min_notionalsB\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) @@ -95,6 +95,8 @@ _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['_QUERYPOSITIONSINMARKETRESPONSE'].fields_by_name['state']._loaded_options = None + _globals['_QUERYPOSITIONSINMARKETRESPONSE'].fields_by_name['state']._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 @@ -163,6 +165,10 @@ _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['_MARKETBALANCE'].fields_by_name['balance']._loaded_options = None + _globals['_MARKETBALANCE'].fields_by_name['balance']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_QUERYDENOMMINNOTIONALRESPONSE'].fields_by_name['amount']._loaded_options = None + _globals['_QUERYDENOMMINNOTIONALRESPONSE'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' _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 @@ -233,6 +239,8 @@ _globals['_QUERY'].methods_by_name['ExchangeModuleState']._serialized_options = b'\202\323\344\223\002%\022#/injective/exchange/v2/module_state' _globals['_QUERY'].methods_by_name['Positions']._loaded_options = None _globals['_QUERY'].methods_by_name['Positions']._serialized_options = b'\202\323\344\223\002\"\022 /injective/exchange/v2/positions' + _globals['_QUERY'].methods_by_name['PositionsInMarket']._loaded_options = None + _globals['_QUERY'].methods_by_name['PositionsInMarket']._serialized_options = b'\202\323\344\223\002.\022,/injective/exchange/v2/positions/{market_id}' _globals['_QUERY'].methods_by_name['SubaccountPositions']._loaded_options = None _globals['_QUERY'].methods_by_name['SubaccountPositions']._serialized_options = b'\202\323\344\223\0022\0220/injective/exchange/v2/positions/{subaccount_id}' _globals['_QUERY'].methods_by_name['SubaccountPositionInMarket']._loaded_options = None @@ -287,10 +295,18 @@ _globals['_QUERY'].methods_by_name['GrantAuthorization']._serialized_options = b'\202\323\344\223\002@\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['_QUERY'].methods_by_name['MarketBalance']._loaded_options = None + _globals['_QUERY'].methods_by_name['MarketBalance']._serialized_options = b'\202\323\344\223\0023\0221/injective/exchange/v2/market_balance/{market_id}' + _globals['_QUERY'].methods_by_name['MarketBalances']._loaded_options = None + _globals['_QUERY'].methods_by_name['MarketBalances']._serialized_options = b'\202\323\344\223\002(\022&/injective/exchange/v2/market_balances' + _globals['_QUERY'].methods_by_name['DenomMinNotional']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomMinNotional']._serialized_options = b'\202\323\344\223\0023\0221/injective/exchange/v2/denom_min_notional/{denom}' + _globals['_QUERY'].methods_by_name['DenomMinNotionals']._loaded_options = None + _globals['_QUERY'].methods_by_name['DenomMinNotionals']._serialized_options = b'\202\323\344\223\002,\022*/injective/exchange/v2/denom_min_notionals' + _globals['_ORDERSIDE']._serialized_start=18565 + _globals['_ORDERSIDE']._serialized_end=18617 + _globals['_CANCELLATIONSTRATEGY']._serialized_start=18619 + _globals['_CANCELLATIONSTRATEGY']._serialized_end=18705 _globals['_SUBACCOUNT']._serialized_start=301 _globals['_SUBACCOUNT']._serialized_end=380 _globals['_QUERYSUBACCOUNTORDERSREQUEST']._serialized_start=382 @@ -427,142 +443,164 @@ _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 + _globals['_QUERYPOSITIONSINMARKETREQUEST']._serialized_start=9403 + _globals['_QUERYPOSITIONSINMARKETREQUEST']._serialized_end=9463 + _globals['_QUERYPOSITIONSINMARKETRESPONSE']._serialized_start=9465 + _globals['_QUERYPOSITIONSINMARKETRESPONSE']._serialized_end=9568 + _globals['_QUERYSUBACCOUNTPOSITIONSREQUEST']._serialized_start=9570 + _globals['_QUERYSUBACCOUNTPOSITIONSREQUEST']._serialized_end=9640 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETREQUEST']._serialized_start=9642 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETREQUEST']._serialized_end=9748 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETREQUEST']._serialized_start=9750 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETREQUEST']._serialized_end=9865 + _globals['_QUERYSUBACCOUNTORDERMETADATAREQUEST']._serialized_start=9867 + _globals['_QUERYSUBACCOUNTORDERMETADATAREQUEST']._serialized_end=9941 + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE']._serialized_start=9943 + _globals['_QUERYSUBACCOUNTPOSITIONSRESPONSE']._serialized_end=10048 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE']._serialized_start=10050 + _globals['_QUERYSUBACCOUNTPOSITIONINMARKETRESPONSE']._serialized_end=10152 + _globals['_EFFECTIVEPOSITION']._serialized_start=10155 + _globals['_EFFECTIVEPOSITION']._serialized_end=10414 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE']._serialized_start=10416 + _globals['_QUERYSUBACCOUNTEFFECTIVEPOSITIONINMARKETRESPONSE']._serialized_end=10536 + _globals['_QUERYPERPETUALMARKETINFOREQUEST']._serialized_start=10538 + _globals['_QUERYPERPETUALMARKETINFOREQUEST']._serialized_end=10600 + _globals['_QUERYPERPETUALMARKETINFORESPONSE']._serialized_start=10602 + _globals['_QUERYPERPETUALMARKETINFORESPONSE']._serialized_end=10706 + _globals['_QUERYEXPIRYFUTURESMARKETINFOREQUEST']._serialized_start=10708 + _globals['_QUERYEXPIRYFUTURESMARKETINFOREQUEST']._serialized_end=10774 + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE']._serialized_start=10776 + _globals['_QUERYEXPIRYFUTURESMARKETINFORESPONSE']._serialized_end=10888 + _globals['_QUERYPERPETUALMARKETFUNDINGREQUEST']._serialized_start=10890 + _globals['_QUERYPERPETUALMARKETFUNDINGREQUEST']._serialized_end=10955 + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE']._serialized_start=10957 + _globals['_QUERYPERPETUALMARKETFUNDINGRESPONSE']._serialized_end=11069 + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE']._serialized_start=11072 + _globals['_QUERYSUBACCOUNTORDERMETADATARESPONSE']._serialized_end=11206 + _globals['_QUERYSUBACCOUNTTRADENONCERESPONSE']._serialized_start=11208 + _globals['_QUERYSUBACCOUNTTRADENONCERESPONSE']._serialized_end=11265 + _globals['_QUERYMODULESTATEREQUEST']._serialized_start=11267 + _globals['_QUERYMODULESTATEREQUEST']._serialized_end=11292 + _globals['_QUERYMODULESTATERESPONSE']._serialized_start=11294 + _globals['_QUERYMODULESTATERESPONSE']._serialized_end=11379 + _globals['_QUERYPOSITIONSREQUEST']._serialized_start=11381 + _globals['_QUERYPOSITIONSREQUEST']._serialized_end=11404 + _globals['_QUERYPOSITIONSRESPONSE']._serialized_start=11406 + _globals['_QUERYPOSITIONSRESPONSE']._serialized_end=11501 + _globals['_QUERYTRADEREWARDPOINTSREQUEST']._serialized_start=11503 + _globals['_QUERYTRADEREWARDPOINTSREQUEST']._serialized_end=11616 + _globals['_QUERYTRADEREWARDPOINTSRESPONSE']._serialized_start=11619 + _globals['_QUERYTRADEREWARDPOINTSRESPONSE']._serialized_end=11751 + _globals['_QUERYTRADEREWARDCAMPAIGNREQUEST']._serialized_start=11753 + _globals['_QUERYTRADEREWARDCAMPAIGNREQUEST']._serialized_end=11786 + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE']._serialized_start=11789 + _globals['_QUERYTRADEREWARDCAMPAIGNRESPONSE']._serialized_end=12411 + _globals['_QUERYISOPTEDOUTOFREWARDSREQUEST']._serialized_start=12413 + _globals['_QUERYISOPTEDOUTOFREWARDSREQUEST']._serialized_end=12472 + _globals['_QUERYISOPTEDOUTOFREWARDSRESPONSE']._serialized_start=12474 + _globals['_QUERYISOPTEDOUTOFREWARDSRESPONSE']._serialized_end=12542 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSREQUEST']._serialized_start=12544 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSREQUEST']._serialized_end=12583 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSRESPONSE']._serialized_start=12585 + _globals['_QUERYOPTEDOUTOFREWARDSACCOUNTSRESPONSE']._serialized_end=12653 + _globals['_QUERYFEEDISCOUNTACCOUNTINFOREQUEST']._serialized_start=12655 + _globals['_QUERYFEEDISCOUNTACCOUNTINFOREQUEST']._serialized_end=12717 + _globals['_QUERYFEEDISCOUNTACCOUNTINFORESPONSE']._serialized_start=12720 + _globals['_QUERYFEEDISCOUNTACCOUNTINFORESPONSE']._serialized_end=12943 + _globals['_QUERYFEEDISCOUNTSCHEDULEREQUEST']._serialized_start=12945 + _globals['_QUERYFEEDISCOUNTSCHEDULEREQUEST']._serialized_end=12978 + _globals['_QUERYFEEDISCOUNTSCHEDULERESPONSE']._serialized_start=12981 + _globals['_QUERYFEEDISCOUNTSCHEDULERESPONSE']._serialized_end=13111 + _globals['_QUERYBALANCEMISMATCHESREQUEST']._serialized_start=13113 + _globals['_QUERYBALANCEMISMATCHESREQUEST']._serialized_end=13177 + _globals['_BALANCEMISMATCH']._serialized_start=13180 + _globals['_BALANCEMISMATCH']._serialized_end=13598 + _globals['_QUERYBALANCEMISMATCHESRESPONSE']._serialized_start=13600 + _globals['_QUERYBALANCEMISMATCHESRESPONSE']._serialized_end=13719 + _globals['_QUERYBALANCEWITHBALANCEHOLDSREQUEST']._serialized_start=13721 + _globals['_QUERYBALANCEWITHBALANCEHOLDSREQUEST']._serialized_end=13758 + _globals['_BALANCEWITHMARGINHOLD']._serialized_start=13761 + _globals['_BALANCEWITHMARGINHOLD']._serialized_end=14040 + _globals['_QUERYBALANCEWITHBALANCEHOLDSRESPONSE']._serialized_start=14043 + _globals['_QUERYBALANCEWITHBALANCEHOLDSRESPONSE']._serialized_end=14188 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSREQUEST']._serialized_start=14190 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSREQUEST']._serialized_end=14229 + _globals['_TIERSTATISTIC']._serialized_start=14231 + _globals['_TIERSTATISTIC']._serialized_end=14288 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSRESPONSE']._serialized_start=14290 + _globals['_QUERYFEEDISCOUNTTIERSTATISTICSRESPONSE']._serialized_end=14400 + _globals['_MITOVAULTINFOSREQUEST']._serialized_start=14402 + _globals['_MITOVAULTINFOSREQUEST']._serialized_end=14425 + _globals['_MITOVAULTINFOSRESPONSE']._serialized_start=14428 + _globals['_MITOVAULTINFOSRESPONSE']._serialized_end=14624 + _globals['_QUERYMARKETIDFROMVAULTREQUEST']._serialized_start=14626 + _globals['_QUERYMARKETIDFROMVAULTREQUEST']._serialized_end=14694 + _globals['_QUERYMARKETIDFROMVAULTRESPONSE']._serialized_start=14696 + _globals['_QUERYMARKETIDFROMVAULTRESPONSE']._serialized_end=14757 + _globals['_QUERYHISTORICALTRADERECORDSREQUEST']._serialized_start=14759 + _globals['_QUERYHISTORICALTRADERECORDSREQUEST']._serialized_end=14824 + _globals['_QUERYHISTORICALTRADERECORDSRESPONSE']._serialized_start=14826 + _globals['_QUERYHISTORICALTRADERECORDSRESPONSE']._serialized_end=14937 + _globals['_TRADEHISTORYOPTIONS']._serialized_start=14940 + _globals['_TRADEHISTORYOPTIONS']._serialized_end=15123 + _globals['_QUERYMARKETVOLATILITYREQUEST']._serialized_start=15126 + _globals['_QUERYMARKETVOLATILITYREQUEST']._serialized_end=15281 + _globals['_QUERYMARKETVOLATILITYRESPONSE']._serialized_start=15284 + _globals['_QUERYMARKETVOLATILITYRESPONSE']._serialized_end=15538 + _globals['_QUERYBINARYMARKETSREQUEST']._serialized_start=15540 + _globals['_QUERYBINARYMARKETSREQUEST']._serialized_end=15591 + _globals['_QUERYBINARYMARKETSRESPONSE']._serialized_start=15593 + _globals['_QUERYBINARYMARKETSRESPONSE']._serialized_end=15691 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSREQUEST']._serialized_start=15693 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSREQUEST']._serialized_end=15806 + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER']._serialized_start=15809 + _globals['_TRIMMEDDERIVATIVECONDITIONALORDER']._serialized_end=16223 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_start=16226 + _globals['_QUERYTRADERDERIVATIVECONDITIONALORDERSRESPONSE']._serialized_end=16356 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_start=16358 + _globals['_QUERYFULLSPOTORDERBOOKREQUEST']._serialized_end=16418 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_start=16421 + _globals['_QUERYFULLSPOTORDERBOOKRESPONSE']._serialized_end=16577 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_start=16579 + _globals['_QUERYFULLDERIVATIVEORDERBOOKREQUEST']._serialized_end=16645 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_start=16648 + _globals['_QUERYFULLDERIVATIVEORDERBOOKRESPONSE']._serialized_end=16810 + _globals['_TRIMMEDLIMITORDER']._serialized_start=16813 + _globals['_TRIMMEDLIMITORDER']._serialized_end=17024 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_start=17026 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERREQUEST']._serialized_end=17103 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_start=17105 + _globals['_QUERYMARKETATOMICEXECUTIONFEEMULTIPLIERRESPONSE']._serialized_end=17223 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_start=17225 + _globals['_QUERYACTIVESTAKEGRANTREQUEST']._serialized_end=17281 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_start=17284 + _globals['_QUERYACTIVESTAKEGRANTRESPONSE']._serialized_end=17453 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_start=17455 + _globals['_QUERYGRANTAUTHORIZATIONREQUEST']._serialized_end=17539 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_start=17541 + _globals['_QUERYGRANTAUTHORIZATIONRESPONSE']._serialized_end=17629 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_start=17631 + _globals['_QUERYGRANTAUTHORIZATIONSREQUEST']._serialized_end=17690 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_start=17693 + _globals['_QUERYGRANTAUTHORIZATIONSRESPONSE']._serialized_end=17871 + _globals['_QUERYMARKETBALANCEREQUEST']._serialized_start=17873 + _globals['_QUERYMARKETBALANCEREQUEST']._serialized_end=17929 + _globals['_QUERYMARKETBALANCERESPONSE']._serialized_start=17931 + _globals['_QUERYMARKETBALANCERESPONSE']._serialized_end=18023 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_start=18025 + _globals['_QUERYMARKETBALANCESREQUEST']._serialized_end=18053 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_start=18055 + _globals['_QUERYMARKETBALANCESRESPONSE']._serialized_end=18150 + _globals['_MARKETBALANCE']._serialized_start=18152 + _globals['_MARKETBALANCE']._serialized_end=18259 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_start=18261 + _globals['_QUERYDENOMMINNOTIONALREQUEST']._serialized_end=18313 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_start=18315 + _globals['_QUERYDENOMMINNOTIONALRESPONSE']._serialized_end=18407 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_start=18409 + _globals['_QUERYDENOMMINNOTIONALSREQUEST']._serialized_end=18440 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_start=18442 + _globals['_QUERYDENOMMINNOTIONALSRESPONSE']._serialized_end=18563 + _globals['_QUERY']._serialized_start=18708 + _globals['_QUERY']._serialized_end=32120 # @@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 index 37e5527c..1afb2a62 100644 --- a/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py +++ b/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py @@ -190,6 +190,11 @@ def __init__(self, channel): 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.PositionsInMarket = channel.unary_unary( + '/injective.exchange.v2.Query/PositionsInMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketResponse.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, @@ -325,6 +330,26 @@ def __init__(self, channel): 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) + self.MarketBalance = channel.unary_unary( + '/injective.exchange.v2.Query/MarketBalance', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceResponse.FromString, + _registered_method=True) + self.MarketBalances = channel.unary_unary( + '/injective.exchange.v2.Query/MarketBalances', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesResponse.FromString, + _registered_method=True) + self.DenomMinNotional = channel.unary_unary( + '/injective.exchange.v2.Query/DenomMinNotional', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalResponse.FromString, + _registered_method=True) + self.DenomMinNotionals = channel.unary_unary( + '/injective.exchange.v2.Query/DenomMinNotionals', + request_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsRequest.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsResponse.FromString, + _registered_method=True) class QueryServicer(object): @@ -577,6 +602,13 @@ def Positions(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def PositionsInMarket(self, request, context): + """Retrieves all positions in market + """ + 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 """ @@ -767,6 +799,34 @@ def GrantAuthorizations(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def MarketBalance(self, request, context): + """Retrieves a derivative or binary options market's balance + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MarketBalances(self, request, context): + """Retrieves all derivative or binary options market balances + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomMinNotional(self, request, context): + """Retrieves the min notional for a denom + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DenomMinNotionals(self, request, context): + """Retrieves the min notionals for all denoms + """ + 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 = { @@ -945,6 +1005,11 @@ def add_QueryServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsRequest.FromString, response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsResponse.SerializeToString, ), + 'PositionsInMarket': grpc.unary_unary_rpc_method_handler( + servicer.PositionsInMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketResponse.SerializeToString, + ), 'SubaccountPositions': grpc.unary_unary_rpc_method_handler( servicer.SubaccountPositions, request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QuerySubaccountPositionsRequest.FromString, @@ -1080,6 +1145,26 @@ def add_QueryServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsRequest.FromString, response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryGrantAuthorizationsResponse.SerializeToString, ), + 'MarketBalance': grpc.unary_unary_rpc_method_handler( + servicer.MarketBalance, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceResponse.SerializeToString, + ), + 'MarketBalances': grpc.unary_unary_rpc_method_handler( + servicer.MarketBalances, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesResponse.SerializeToString, + ), + 'DenomMinNotional': grpc.unary_unary_rpc_method_handler( + servicer.DenomMinNotional, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalResponse.SerializeToString, + ), + 'DenomMinNotionals': grpc.unary_unary_rpc_method_handler( + servicer.DenomMinNotionals, + request_deserializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsRequest.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective.exchange.v2.Query', rpc_method_handlers) @@ -2037,6 +2122,33 @@ def Positions(request, metadata, _registered_method=True) + @staticmethod + def PositionsInMarket(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/PositionsInMarket', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryPositionsInMarketResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def SubaccountPositions(request, target, @@ -2765,3 +2877,111 @@ def GrantAuthorizations(request, timeout, metadata, _registered_method=True) + + @staticmethod + def MarketBalance(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/MarketBalance', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalanceResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def MarketBalances(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/MarketBalances', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryMarketBalancesResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomMinNotional(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/DenomMinNotional', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DenomMinNotionals(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/DenomMinNotionals', + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsRequest.SerializeToString, + injective_dot_exchange_dot_v2_dot_query__pb2.QueryDenomMinNotionalsResponse.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 index c89e8ff9..1642c1f4 100644 --- a/pyinjective/proto/injective/exchange/v2/tx_pb2.py +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2.py @@ -20,11 +20,12 @@ 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.exchange.v2 import proposal_pb2 as injective_dot_exchange_dot_v2_dot_proposal__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') +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/exchange/v2/proposal.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\"\xd3\x05\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\x12Z\n\x17new_reduce_margin_ratio\x18\t \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x14newReduceMarginRatio: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\"\x86\x08\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\x12S\n\x13reduce_margin_ratio\x18\x0f \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio:@\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\"\xa6\x08\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\x12S\n\x13reduce_margin_ratio\x18\x10 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio: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\x1dMsgActivateStakeGrantResponse\"\xcb\x01\n\x1cMsgBatchExchangeModification\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12T\n\x08proposal\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v2.BatchExchangeModificationProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgBatchExchangeModification\"&\n$MsgBatchExchangeModificationResponse\"\xb0\x01\n\x13MsgSpotMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12K\n\x08proposal\x18\x02 \x01(\x0b\x32/.injective.exchange.v2.SpotMarketLaunchProposalR\x08proposal:4\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1c\x65xchange/MsgSpotMarketLaunch\"\x1d\n\x1bMsgSpotMarketLaunchResponse\"\xbf\x01\n\x18MsgPerpetualMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12P\n\x08proposal\x18\x02 \x01(\x0b\x32\x34.injective.exchange.v2.PerpetualMarketLaunchProposalR\x08proposal:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgPerpetualMarketLaunch\"\"\n MsgPerpetualMarketLaunchResponse\"\xcb\x01\n\x1cMsgExpiryFuturesMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12T\n\x08proposal\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v2.ExpiryFuturesMarketLaunchProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgExpiryFuturesMarketLaunch\"&\n$MsgExpiryFuturesMarketLaunchResponse\"\xcb\x01\n\x1cMsgBinaryOptionsMarketLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12T\n\x08proposal\x18\x02 \x01(\x0b\x32\x38.injective.exchange.v2.BinaryOptionsMarketLaunchProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgBinaryOptionsMarketLaunch\"&\n$MsgBinaryOptionsMarketLaunchResponse\"\xc5\x01\n\x1aMsgBatchCommunityPoolSpend\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12R\n\x08proposal\x18\x02 \x01(\x0b\x32\x36.injective.exchange.v2.BatchCommunityPoolSpendProposalR\x08proposal:;\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#exchange/MsgBatchCommunityPoolSpend\"$\n\"MsgBatchCommunityPoolSpendResponse\"\xbf\x01\n\x18MsgSpotMarketParamUpdate\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12P\n\x08proposal\x18\x02 \x01(\x0b\x32\x34.injective.exchange.v2.SpotMarketParamUpdateProposalR\x08proposal:9\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*!exchange/MsgSpotMarketParamUpdate\"\"\n MsgSpotMarketParamUpdateResponse\"\xd1\x01\n\x1eMsgDerivativeMarketParamUpdate\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12V\n\x08proposal\x18\x02 \x01(\x0b\x32:.injective.exchange.v2.DerivativeMarketParamUpdateProposalR\x08proposal:?\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgDerivativeMarketParamUpdate\"(\n&MsgDerivativeMarketParamUpdateResponse\"\xda\x01\n!MsgBinaryOptionsMarketParamUpdate\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12Y\n\x08proposal\x18\x02 \x01(\x0b\x32=.injective.exchange.v2.BinaryOptionsMarketParamUpdateProposalR\x08proposal:B\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0**exchange/MsgBinaryOptionsMarketParamUpdate\"+\n)MsgBinaryOptionsMarketParamUpdateResponse\"\xc2\x01\n\x19MsgMarketForcedSettlement\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12Q\n\x08proposal\x18\x02 \x01(\x0b\x32\x35.injective.exchange.v2.MarketForcedSettlementProposalR\x08proposal::\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\"exchange/MsgMarketForcedSettlement\"#\n!MsgMarketForcedSettlementResponse\"\xd1\x01\n\x1eMsgTradingRewardCampaignLaunch\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12V\n\x08proposal\x18\x02 \x01(\x0b\x32:.injective.exchange.v2.TradingRewardCampaignLaunchProposalR\x08proposal:?\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgTradingRewardCampaignLaunch\"(\n&MsgTradingRewardCampaignLaunchResponse\"\xaa\x01\n\x11MsgExchangeEnable\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12I\n\x08proposal\x18\x02 \x01(\x0b\x32-.injective.exchange.v2.ExchangeEnableProposalR\x08proposal:2\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1a\x65xchange/MsgExchangeEnable\"\x1b\n\x19MsgExchangeEnableResponse\"\xd1\x01\n\x1eMsgTradingRewardCampaignUpdate\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12V\n\x08proposal\x18\x02 \x01(\x0b\x32:.injective.exchange.v2.TradingRewardCampaignUpdateProposalR\x08proposal:?\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\'exchange/MsgTradingRewardCampaignUpdate\"(\n&MsgTradingRewardCampaignUpdateResponse\"\xe0\x01\n#MsgTradingRewardPendingPointsUpdate\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12[\n\x08proposal\x18\x02 \x01(\x0b\x32?.injective.exchange.v2.TradingRewardPendingPointsUpdateProposalR\x08proposal:D\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*,exchange/MsgTradingRewardPendingPointsUpdate\"-\n+MsgTradingRewardPendingPointsUpdateResponse\"\xa1\x01\n\x0eMsgFeeDiscount\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x46\n\x08proposal\x18\x02 \x01(\x0b\x32*.injective.exchange.v2.FeeDiscountProposalR\x08proposal:/\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x17\x65xchange/MsgFeeDiscount\"\x18\n\x16MsgFeeDiscountResponse\"\xf2\x01\n)MsgAtomicMarketOrderFeeMultiplierSchedule\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x61\n\x08proposal\x18\x02 \x01(\x0b\x32\x45.injective.exchange.v2.AtomicMarketOrderFeeMultiplierScheduleProposalR\x08proposal:J\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*2exchange/MsgAtomicMarketOrderFeeMultiplierSchedule\"3\n1MsgAtomicMarketOrderFeeMultiplierScheduleResponse2\xc1\x36\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\x12\x8d\x01\n\x19\x42\x61tchExchangeModification\x12\x33.injective.exchange.v2.MsgBatchExchangeModification\x1a;.injective.exchange.v2.MsgBatchExchangeModificationResponse\x12r\n\x10LaunchSpotMarket\x12*.injective.exchange.v2.MsgSpotMarketLaunch\x1a\x32.injective.exchange.v2.MsgSpotMarketLaunchResponse\x12\x81\x01\n\x15LaunchPerpetualMarket\x12/.injective.exchange.v2.MsgPerpetualMarketLaunch\x1a\x37.injective.exchange.v2.MsgPerpetualMarketLaunchResponse\x12\x8d\x01\n\x19LaunchExpiryFuturesMarket\x12\x33.injective.exchange.v2.MsgExpiryFuturesMarketLaunch\x1a;.injective.exchange.v2.MsgExpiryFuturesMarketLaunchResponse\x12\x8d\x01\n\x19LaunchBinaryOptionsMarket\x12\x33.injective.exchange.v2.MsgBinaryOptionsMarketLaunch\x1a;.injective.exchange.v2.MsgBinaryOptionsMarketLaunchResponse\x12\x87\x01\n\x17\x42\x61tchSpendCommunityPool\x12\x31.injective.exchange.v2.MsgBatchCommunityPoolSpend\x1a\x39.injective.exchange.v2.MsgBatchCommunityPoolSpendResponse\x12\x81\x01\n\x15SpotMarketParamUpdate\x12/.injective.exchange.v2.MsgSpotMarketParamUpdate\x1a\x37.injective.exchange.v2.MsgSpotMarketParamUpdateResponse\x12\x93\x01\n\x1b\x44\x65rivativeMarketParamUpdate\x12\x35.injective.exchange.v2.MsgDerivativeMarketParamUpdate\x1a=.injective.exchange.v2.MsgDerivativeMarketParamUpdateResponse\x12\x9c\x01\n\x1e\x42inaryOptionsMarketParamUpdate\x12\x38.injective.exchange.v2.MsgBinaryOptionsMarketParamUpdate\x1a@.injective.exchange.v2.MsgBinaryOptionsMarketParamUpdateResponse\x12\x7f\n\x11\x46orceSettleMarket\x12\x30.injective.exchange.v2.MsgMarketForcedSettlement\x1a\x38.injective.exchange.v2.MsgMarketForcedSettlementResponse\x12\x93\x01\n\x1bLaunchTradingRewardCampaign\x12\x35.injective.exchange.v2.MsgTradingRewardCampaignLaunch\x1a=.injective.exchange.v2.MsgTradingRewardCampaignLaunchResponse\x12l\n\x0e\x45nableExchange\x12(.injective.exchange.v2.MsgExchangeEnable\x1a\x30.injective.exchange.v2.MsgExchangeEnableResponse\x12\x93\x01\n\x1bUpdateTradingRewardCampaign\x12\x35.injective.exchange.v2.MsgTradingRewardCampaignUpdate\x1a=.injective.exchange.v2.MsgTradingRewardCampaignUpdateResponse\x12\xa2\x01\n UpdateTradingRewardPendingPoints\x12:.injective.exchange.v2.MsgTradingRewardPendingPointsUpdate\x1a\x42.injective.exchange.v2.MsgTradingRewardPendingPointsUpdateResponse\x12i\n\x11UpdateFeeDiscount\x12%.injective.exchange.v2.MsgFeeDiscount\x1a-.injective.exchange.v2.MsgFeeDiscountResponse\x12\xba\x01\n,UpdateAtomicMarketOrderFeeMultiplierSchedule\x12@.injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierSchedule\x1aH.injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse\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) @@ -50,6 +51,8 @@ _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'].fields_by_name['new_reduce_margin_ratio']._loaded_options = None + _globals['_MSGUPDATEDERIVATIVEMARKET'].fields_by_name['new_reduce_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 @@ -100,6 +103,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH'].fields_by_name['reduce_margin_ratio']._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 @@ -128,6 +133,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH'].fields_by_name['reduce_margin_ratio']._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 @@ -280,162 +287,258 @@ _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['_MSGBATCHEXCHANGEMODIFICATION']._loaded_options = None + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*%exchange/MsgBatchExchangeModification' + _globals['_MSGSPOTMARKETLAUNCH']._loaded_options = None + _globals['_MSGSPOTMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\034exchange/MsgSpotMarketLaunch' + _globals['_MSGPERPETUALMARKETLAUNCH']._loaded_options = None + _globals['_MSGPERPETUALMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*!exchange/MsgPerpetualMarketLaunch' + _globals['_MSGEXPIRYFUTURESMARKETLAUNCH']._loaded_options = None + _globals['_MSGEXPIRYFUTURESMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*%exchange/MsgExpiryFuturesMarketLaunch' + _globals['_MSGBINARYOPTIONSMARKETLAUNCH']._loaded_options = None + _globals['_MSGBINARYOPTIONSMARKETLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*%exchange/MsgBinaryOptionsMarketLaunch' + _globals['_MSGBATCHCOMMUNITYPOOLSPEND']._loaded_options = None + _globals['_MSGBATCHCOMMUNITYPOOLSPEND']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*#exchange/MsgBatchCommunityPoolSpend' + _globals['_MSGSPOTMARKETPARAMUPDATE']._loaded_options = None + _globals['_MSGSPOTMARKETPARAMUPDATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*!exchange/MsgSpotMarketParamUpdate' + _globals['_MSGDERIVATIVEMARKETPARAMUPDATE']._loaded_options = None + _globals['_MSGDERIVATIVEMARKETPARAMUPDATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\'exchange/MsgDerivativeMarketParamUpdate' + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATE']._loaded_options = None + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260**exchange/MsgBinaryOptionsMarketParamUpdate' + _globals['_MSGMARKETFORCEDSETTLEMENT']._loaded_options = None + _globals['_MSGMARKETFORCEDSETTLEMENT']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\"exchange/MsgMarketForcedSettlement' + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCH']._loaded_options = None + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCH']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\'exchange/MsgTradingRewardCampaignLaunch' + _globals['_MSGEXCHANGEENABLE']._loaded_options = None + _globals['_MSGEXCHANGEENABLE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\032exchange/MsgExchangeEnable' + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATE']._loaded_options = None + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\'exchange/MsgTradingRewardCampaignUpdate' + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATE']._loaded_options = None + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*,exchange/MsgTradingRewardPendingPointsUpdate' + _globals['_MSGFEEDISCOUNT']._loaded_options = None + _globals['_MSGFEEDISCOUNT']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*\027exchange/MsgFeeDiscount' + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULE']._loaded_options = None + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULE']._serialized_options = b'\210\240\037\000\350\240\037\000\202\347\260*\006sender\212\347\260*2exchange/MsgAtomicMarketOrderFeeMultiplierSchedule' _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 + _globals['_MSGUPDATESPOTMARKET']._serialized_start=417 + _globals['_MSGUPDATESPOTMARKET']._serialized_end=836 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=838 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=867 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=870 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1593 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1595 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1630 + _globals['_MSGUPDATEPARAMS']._serialized_start=1633 + _globals['_MSGUPDATEPARAMS']._serialized_end=1812 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1814 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1839 + _globals['_MSGDEPOSIT']._serialized_start=1842 + _globals['_MSGDEPOSIT']._serialized_end=2017 + _globals['_MSGDEPOSITRESPONSE']._serialized_start=2019 + _globals['_MSGDEPOSITRESPONSE']._serialized_end=2039 + _globals['_MSGWITHDRAW']._serialized_start=2042 + _globals['_MSGWITHDRAW']._serialized_end=2219 + _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2221 + _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2242 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2245 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2414 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2416 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2508 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2511 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2694 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2697 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2875 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2878 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3401 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3403 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3439 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_start=3442 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_end=4472 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=4474 + _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=4515 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=4518 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=5423 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=5425 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=5470 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_start=5473 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_end=6535 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=6537 + _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=6582 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=6585 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=6756 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=6759 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=6931 + _globals['_SPOTMARKETORDERRESULTS']._serialized_start=6934 + _globals['_SPOTMARKETORDERRESULTS']._serialized_end=7147 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=7150 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=7333 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=7335 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=7433 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=7436 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=7625 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=7627 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=7728 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=7731 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=7928 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=7931 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=8115 + _globals['_MSGCANCELSPOTORDER']._serialized_start=8118 + _globals['_MSGCANCELSPOTORDER']._serialized_end=8326 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=8328 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=8356 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=8359 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=8524 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=8526 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=8596 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=8599 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=8782 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=8784 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=8863 + _globals['_MSGBATCHUPDATEORDERS']._serialized_start=8866 + _globals['_MSGBATCHUPDATEORDERS']._serialized_end=9846 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=9849 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=10625 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=10628 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=10813 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=10816 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=11000 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=11003 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=11366 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=11369 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=11560 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=11563 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=11750 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=11753 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=12004 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=12006 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=12040 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=12043 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=12300 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=12302 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=12339 + _globals['_ORDERDATA']._serialized_start=12342 + _globals['_ORDERDATA']._serialized_end=12499 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=12502 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=12679 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=12681 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=12757 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=12760 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=13022 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=13024 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=13055 + _globals['_MSGEXTERNALTRANSFER']._serialized_start=13058 + _globals['_MSGEXTERNALTRANSFER']._serialized_end=13316 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=13318 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=13347 + _globals['_MSGLIQUIDATEPOSITION']._serialized_start=13350 + _globals['_MSGLIQUIDATEPOSITION']._serialized_end=13577 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=13579 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=13609 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=13612 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=13779 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=13781 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=13815 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=13818 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=14121 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=14123 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=14158 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=14161 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=14464 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=14466 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=14501 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=14504 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=14706 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=14709 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=14876 + _globals['_MSGREWARDSOPTOUT']._serialized_start=14878 + _globals['_MSGREWARDSOPTOUT']._serialized_end=14971 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=14973 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=14999 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=15002 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=15177 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=15179 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=15210 + _globals['_MSGSIGNDATA']._serialized_start=15213 + _globals['_MSGSIGNDATA']._serialized_end=15341 + _globals['_MSGSIGNDOC']._serialized_start=15343 + _globals['_MSGSIGNDOC']._serialized_end=15458 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=15461 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=15852 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=15854 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=15897 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=15900 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=16066 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=16068 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=16101 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=16103 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=16224 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=16226 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=16257 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_start=16260 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_end=16463 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_start=16465 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_end=16503 + _globals['_MSGSPOTMARKETLAUNCH']._serialized_start=16506 + _globals['_MSGSPOTMARKETLAUNCH']._serialized_end=16682 + _globals['_MSGSPOTMARKETLAUNCHRESPONSE']._serialized_start=16684 + _globals['_MSGSPOTMARKETLAUNCHRESPONSE']._serialized_end=16713 + _globals['_MSGPERPETUALMARKETLAUNCH']._serialized_start=16716 + _globals['_MSGPERPETUALMARKETLAUNCH']._serialized_end=16907 + _globals['_MSGPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=16909 + _globals['_MSGPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=16943 + _globals['_MSGEXPIRYFUTURESMARKETLAUNCH']._serialized_start=16946 + _globals['_MSGEXPIRYFUTURESMARKETLAUNCH']._serialized_end=17149 + _globals['_MSGEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=17151 + _globals['_MSGEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=17189 + _globals['_MSGBINARYOPTIONSMARKETLAUNCH']._serialized_start=17192 + _globals['_MSGBINARYOPTIONSMARKETLAUNCH']._serialized_end=17395 + _globals['_MSGBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=17397 + _globals['_MSGBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=17435 + _globals['_MSGBATCHCOMMUNITYPOOLSPEND']._serialized_start=17438 + _globals['_MSGBATCHCOMMUNITYPOOLSPEND']._serialized_end=17635 + _globals['_MSGBATCHCOMMUNITYPOOLSPENDRESPONSE']._serialized_start=17637 + _globals['_MSGBATCHCOMMUNITYPOOLSPENDRESPONSE']._serialized_end=17673 + _globals['_MSGSPOTMARKETPARAMUPDATE']._serialized_start=17676 + _globals['_MSGSPOTMARKETPARAMUPDATE']._serialized_end=17867 + _globals['_MSGSPOTMARKETPARAMUPDATERESPONSE']._serialized_start=17869 + _globals['_MSGSPOTMARKETPARAMUPDATERESPONSE']._serialized_end=17903 + _globals['_MSGDERIVATIVEMARKETPARAMUPDATE']._serialized_start=17906 + _globals['_MSGDERIVATIVEMARKETPARAMUPDATE']._serialized_end=18115 + _globals['_MSGDERIVATIVEMARKETPARAMUPDATERESPONSE']._serialized_start=18117 + _globals['_MSGDERIVATIVEMARKETPARAMUPDATERESPONSE']._serialized_end=18157 + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATE']._serialized_start=18160 + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATE']._serialized_end=18378 + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATERESPONSE']._serialized_start=18380 + _globals['_MSGBINARYOPTIONSMARKETPARAMUPDATERESPONSE']._serialized_end=18423 + _globals['_MSGMARKETFORCEDSETTLEMENT']._serialized_start=18426 + _globals['_MSGMARKETFORCEDSETTLEMENT']._serialized_end=18620 + _globals['_MSGMARKETFORCEDSETTLEMENTRESPONSE']._serialized_start=18622 + _globals['_MSGMARKETFORCEDSETTLEMENTRESPONSE']._serialized_end=18657 + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCH']._serialized_start=18660 + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCH']._serialized_end=18869 + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCHRESPONSE']._serialized_start=18871 + _globals['_MSGTRADINGREWARDCAMPAIGNLAUNCHRESPONSE']._serialized_end=18911 + _globals['_MSGEXCHANGEENABLE']._serialized_start=18914 + _globals['_MSGEXCHANGEENABLE']._serialized_end=19084 + _globals['_MSGEXCHANGEENABLERESPONSE']._serialized_start=19086 + _globals['_MSGEXCHANGEENABLERESPONSE']._serialized_end=19113 + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATE']._serialized_start=19116 + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATE']._serialized_end=19325 + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATERESPONSE']._serialized_start=19327 + _globals['_MSGTRADINGREWARDCAMPAIGNUPDATERESPONSE']._serialized_end=19367 + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATE']._serialized_start=19370 + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATE']._serialized_end=19594 + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATERESPONSE']._serialized_start=19596 + _globals['_MSGTRADINGREWARDPENDINGPOINTSUPDATERESPONSE']._serialized_end=19641 + _globals['_MSGFEEDISCOUNT']._serialized_start=19644 + _globals['_MSGFEEDISCOUNT']._serialized_end=19805 + _globals['_MSGFEEDISCOUNTRESPONSE']._serialized_start=19807 + _globals['_MSGFEEDISCOUNTRESPONSE']._serialized_end=19831 + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULE']._serialized_start=19834 + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULE']._serialized_end=20076 + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULERESPONSE']._serialized_start=20078 + _globals['_MSGATOMICMARKETORDERFEEMULTIPLIERSCHEDULERESPONSE']._serialized_end=20129 + _globals['_MSG']._serialized_start=20132 + _globals['_MSG']._serialized_end=27109 # @@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 index bc2feace..fcdeb507 100644 --- a/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py @@ -190,6 +190,86 @@ def __init__(self, channel): 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) + self.BatchExchangeModification = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchExchangeModification', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModification.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModificationResponse.FromString, + _registered_method=True) + self.LaunchSpotMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/LaunchSpotMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunchResponse.FromString, + _registered_method=True) + self.LaunchPerpetualMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/LaunchPerpetualMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunchResponse.FromString, + _registered_method=True) + self.LaunchExpiryFuturesMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/LaunchExpiryFuturesMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunchResponse.FromString, + _registered_method=True) + self.LaunchBinaryOptionsMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/LaunchBinaryOptionsMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunchResponse.FromString, + _registered_method=True) + self.BatchSpendCommunityPool = channel.unary_unary( + '/injective.exchange.v2.Msg/BatchSpendCommunityPool', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpend.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpendResponse.FromString, + _registered_method=True) + self.SpotMarketParamUpdate = channel.unary_unary( + '/injective.exchange.v2.Msg/SpotMarketParamUpdate', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdate.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdateResponse.FromString, + _registered_method=True) + self.DerivativeMarketParamUpdate = channel.unary_unary( + '/injective.exchange.v2.Msg/DerivativeMarketParamUpdate', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdate.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdateResponse.FromString, + _registered_method=True) + self.BinaryOptionsMarketParamUpdate = channel.unary_unary( + '/injective.exchange.v2.Msg/BinaryOptionsMarketParamUpdate', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdate.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdateResponse.FromString, + _registered_method=True) + self.ForceSettleMarket = channel.unary_unary( + '/injective.exchange.v2.Msg/ForceSettleMarket', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlement.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlementResponse.FromString, + _registered_method=True) + self.LaunchTradingRewardCampaign = channel.unary_unary( + '/injective.exchange.v2.Msg/LaunchTradingRewardCampaign', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunch.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunchResponse.FromString, + _registered_method=True) + self.EnableExchange = channel.unary_unary( + '/injective.exchange.v2.Msg/EnableExchange', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnable.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnableResponse.FromString, + _registered_method=True) + self.UpdateTradingRewardCampaign = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateTradingRewardCampaign', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdate.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdateResponse.FromString, + _registered_method=True) + self.UpdateTradingRewardPendingPoints = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateTradingRewardPendingPoints', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdate.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdateResponse.FromString, + _registered_method=True) + self.UpdateFeeDiscount = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateFeeDiscount', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscount.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscountResponse.FromString, + _registered_method=True) + self.UpdateAtomicMarketOrderFeeMultiplierSchedule = channel.unary_unary( + '/injective.exchange.v2.Msg/UpdateAtomicMarketOrderFeeMultiplierSchedule', + request_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierSchedule.SerializeToString, + response_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse.FromString, + _registered_method=True) class MsgServicer(object): @@ -459,6 +539,102 @@ def ActivateStakeGrant(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def BatchExchangeModification(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 LaunchSpotMarket(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 LaunchPerpetualMarket(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 LaunchExpiryFuturesMarket(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 LaunchBinaryOptionsMarket(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 BatchSpendCommunityPool(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 SpotMarketParamUpdate(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 DerivativeMarketParamUpdate(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 BinaryOptionsMarketParamUpdate(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 ForceSettleMarket(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 LaunchTradingRewardCampaign(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 EnableExchange(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 UpdateTradingRewardCampaign(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 UpdateTradingRewardPendingPoints(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 UpdateFeeDiscount(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 UpdateAtomicMarketOrderFeeMultiplierSchedule(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 = { @@ -637,6 +813,86 @@ def add_MsgServicer_to_server(servicer, server): request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrant.FromString, response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgActivateStakeGrantResponse.SerializeToString, ), + 'BatchExchangeModification': grpc.unary_unary_rpc_method_handler( + servicer.BatchExchangeModification, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModification.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModificationResponse.SerializeToString, + ), + 'LaunchSpotMarket': grpc.unary_unary_rpc_method_handler( + servicer.LaunchSpotMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunchResponse.SerializeToString, + ), + 'LaunchPerpetualMarket': grpc.unary_unary_rpc_method_handler( + servicer.LaunchPerpetualMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunchResponse.SerializeToString, + ), + 'LaunchExpiryFuturesMarket': grpc.unary_unary_rpc_method_handler( + servicer.LaunchExpiryFuturesMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunchResponse.SerializeToString, + ), + 'LaunchBinaryOptionsMarket': grpc.unary_unary_rpc_method_handler( + servicer.LaunchBinaryOptionsMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunchResponse.SerializeToString, + ), + 'BatchSpendCommunityPool': grpc.unary_unary_rpc_method_handler( + servicer.BatchSpendCommunityPool, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpend.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpendResponse.SerializeToString, + ), + 'SpotMarketParamUpdate': grpc.unary_unary_rpc_method_handler( + servicer.SpotMarketParamUpdate, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdate.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdateResponse.SerializeToString, + ), + 'DerivativeMarketParamUpdate': grpc.unary_unary_rpc_method_handler( + servicer.DerivativeMarketParamUpdate, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdate.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdateResponse.SerializeToString, + ), + 'BinaryOptionsMarketParamUpdate': grpc.unary_unary_rpc_method_handler( + servicer.BinaryOptionsMarketParamUpdate, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdate.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdateResponse.SerializeToString, + ), + 'ForceSettleMarket': grpc.unary_unary_rpc_method_handler( + servicer.ForceSettleMarket, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlement.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlementResponse.SerializeToString, + ), + 'LaunchTradingRewardCampaign': grpc.unary_unary_rpc_method_handler( + servicer.LaunchTradingRewardCampaign, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunch.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunchResponse.SerializeToString, + ), + 'EnableExchange': grpc.unary_unary_rpc_method_handler( + servicer.EnableExchange, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnable.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnableResponse.SerializeToString, + ), + 'UpdateTradingRewardCampaign': grpc.unary_unary_rpc_method_handler( + servicer.UpdateTradingRewardCampaign, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdate.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdateResponse.SerializeToString, + ), + 'UpdateTradingRewardPendingPoints': grpc.unary_unary_rpc_method_handler( + servicer.UpdateTradingRewardPendingPoints, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdate.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdateResponse.SerializeToString, + ), + 'UpdateFeeDiscount': grpc.unary_unary_rpc_method_handler( + servicer.UpdateFeeDiscount, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscount.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscountResponse.SerializeToString, + ), + 'UpdateAtomicMarketOrderFeeMultiplierSchedule': grpc.unary_unary_rpc_method_handler( + servicer.UpdateAtomicMarketOrderFeeMultiplierSchedule, + request_deserializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierSchedule.FromString, + response_serializer=injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective.exchange.v2.Msg', rpc_method_handlers) @@ -1593,3 +1849,435 @@ def ActivateStakeGrant(request, timeout, metadata, _registered_method=True) + + @staticmethod + def BatchExchangeModification(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/BatchExchangeModification', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModification.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchExchangeModificationResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LaunchSpotMarket(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/LaunchSpotMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LaunchPerpetualMarket(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/LaunchPerpetualMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgPerpetualMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LaunchExpiryFuturesMarket(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/LaunchExpiryFuturesMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExpiryFuturesMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LaunchBinaryOptionsMarket(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/LaunchBinaryOptionsMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BatchSpendCommunityPool(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/BatchSpendCommunityPool', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpend.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBatchCommunityPoolSpendResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SpotMarketParamUpdate(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/SpotMarketParamUpdate', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdate.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgSpotMarketParamUpdateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DerivativeMarketParamUpdate(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/DerivativeMarketParamUpdate', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdate.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgDerivativeMarketParamUpdateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BinaryOptionsMarketParamUpdate(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/BinaryOptionsMarketParamUpdate', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdate.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgBinaryOptionsMarketParamUpdateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ForceSettleMarket(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/ForceSettleMarket', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlement.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgMarketForcedSettlementResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def LaunchTradingRewardCampaign(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/LaunchTradingRewardCampaign', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunch.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignLaunchResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EnableExchange(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/EnableExchange', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnable.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgExchangeEnableResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateTradingRewardCampaign(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/UpdateTradingRewardCampaign', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdate.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardCampaignUpdateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateTradingRewardPendingPoints(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/UpdateTradingRewardPendingPoints', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdate.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgTradingRewardPendingPointsUpdateResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateFeeDiscount(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/UpdateFeeDiscount', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscount.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgFeeDiscountResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UpdateAtomicMarketOrderFeeMultiplierSchedule(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/UpdateAtomicMarketOrderFeeMultiplierSchedule', + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierSchedule.SerializeToString, + injective_dot_exchange_dot_v2_dot_tx__pb2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/peggy/v1/events_pb2.py b/pyinjective/proto/injective/peggy/v1/events_pb2.py index 921a69ac..82152f8c 100644 --- a/pyinjective/proto/injective/peggy/v1/events_pb2.py +++ b/pyinjective/proto/injective/peggy/v1/events_pb2.py @@ -17,7 +17,7 @@ from pyinjective.proto.injective.peggy.v1 import types_pb2 as injective_dot_peggy_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1finjective/peggy/v1/events.proto\x12\x12injective.peggy.v1\x1a\x14gogoproto/gogo.proto\x1a$injective/peggy/v1/attestation.proto\x1a\x1einjective/peggy/v1/types.proto\"\xf2\x01\n\x18\x45ventAttestationObserved\x12H\n\x10\x61ttestation_type\x18\x01 \x01(\x0e\x32\x1d.injective.peggy.v1.ClaimTypeR\x0f\x61ttestationType\x12\'\n\x0f\x62ridge_contract\x18\x02 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x03 \x01(\x04R\rbridgeChainId\x12%\n\x0e\x61ttestation_id\x18\x04 \x01(\x0cR\rattestationId\x12\x14\n\x05nonce\x18\x05 \x01(\x04R\x05nonce\"n\n\x1b\x45ventBridgeWithdrawCanceled\x12\'\n\x0f\x62ridge_contract\x18\x01 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x02 \x01(\x04R\rbridgeChainId\"\xc5\x01\n\x12\x45ventOutgoingBatch\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x03 \x01(\x04R\nbatchNonce\x12#\n\rbatch_timeout\x18\x04 \x01(\x04R\x0c\x62\x61tchTimeout\x12 \n\x0c\x62\x61tch_tx_ids\x18\x05 \x03(\x04R\nbatchTxIds\"\x9e\x01\n\x1a\x45ventOutgoingBatchCanceled\x12\'\n\x0f\x62ridge_contract\x18\x01 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x02 \x01(\x04R\rbridgeChainId\x12\x19\n\x08\x62\x61tch_id\x18\x03 \x01(\x04R\x07\x62\x61tchId\x12\x14\n\x05nonce\x18\x04 \x01(\x04R\x05nonce\"\x95\x02\n\x18\x45ventValsetUpdateRequest\x12!\n\x0cvalset_nonce\x18\x01 \x01(\x04R\x0bvalsetNonce\x12#\n\rvalset_height\x18\x02 \x01(\x04R\x0cvalsetHeight\x12J\n\x0evalset_members\x18\x03 \x03(\x0b\x32#.injective.peggy.v1.BridgeValidatorR\rvalsetMembers\x12\x42\n\rreward_amount\x18\x04 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0crewardAmount\x12!\n\x0creward_token\x18\x05 \x01(\tR\x0brewardToken\"\xb1\x01\n\x1d\x45ventSetOrchestratorAddresses\x12+\n\x11validator_address\x18\x01 \x01(\tR\x10validatorAddress\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\x12\x30\n\x14operator_eth_address\x18\x03 \x01(\tR\x12operatorEthAddress\"j\n\x12\x45ventValsetConfirm\x12!\n\x0cvalset_nonce\x18\x01 \x01(\x04R\x0bvalsetNonce\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\"\x83\x02\n\x0e\x45ventSendToEth\x12$\n\x0eoutgoing_tx_id\x18\x01 \x01(\x04R\x0coutgoingTxId\x12\x16\n\x06sender\x18\x02 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x03 \x01(\tR\x08receiver\x12G\n\x06\x61mount\x18\x04 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12N\n\nbridge_fee\x18\x05 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\tbridgeFee\"g\n\x11\x45ventConfirmBatch\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x01 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\"t\n\x14\x45ventAttestationVote\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12%\n\x0e\x61ttestation_id\x18\x02 \x01(\x0cR\rattestationId\x12\x14\n\x05voter\x18\x03 \x01(\tR\x05voter\"\xf5\x02\n\x11\x45ventDepositClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12\'\n\x0f\x65thereum_sender\x18\x04 \x01(\tR\x0e\x65thereumSender\x12\'\n\x0f\x63osmos_receiver\x18\x05 \x01(\tR\x0e\x63osmosReceiver\x12%\n\x0etoken_contract\x18\x06 \x01(\tR\rtokenContract\x12\x35\n\x06\x61mount\x18\x07 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\x12\x31\n\x14orchestrator_address\x18\x08 \x01(\tR\x13orchestratorAddress\x12\x12\n\x04\x64\x61ta\x18\t \x01(\tR\x04\x64\x61ta\"\xfa\x01\n\x12\x45ventWithdrawClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x04 \x01(\x04R\nbatchNonce\x12%\n\x0etoken_contract\x18\x05 \x01(\tR\rtokenContract\x12\x31\n\x14orchestrator_address\x18\x06 \x01(\tR\x13orchestratorAddress\"\xc9\x02\n\x17\x45ventERC20DeployedClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12!\n\x0c\x63osmos_denom\x18\x04 \x01(\tR\x0b\x63osmosDenom\x12%\n\x0etoken_contract\x18\x05 \x01(\tR\rtokenContract\x12\x12\n\x04name\x18\x06 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x07 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x08 \x01(\x04R\x08\x64\x65\x63imals\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\"\x8c\x03\n\x16\x45ventValsetUpdateClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12!\n\x0cvalset_nonce\x18\x04 \x01(\x04R\x0bvalsetNonce\x12J\n\x0evalset_members\x18\x05 \x03(\x0b\x32#.injective.peggy.v1.BridgeValidatorR\rvalsetMembers\x12\x42\n\rreward_amount\x18\x06 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0crewardAmount\x12!\n\x0creward_token\x18\x07 \x01(\tR\x0brewardToken\x12\x31\n\x14orchestrator_address\x18\x08 \x01(\tR\x13orchestratorAddress\"<\n\x14\x45ventCancelSendToEth\x12$\n\x0eoutgoing_tx_id\x18\x01 \x01(\x04R\x0coutgoingTxId\"\x88\x01\n\x1f\x45ventSubmitBadSignatureEvidence\x12*\n\x11\x62\x61\x64_eth_signature\x18\x01 \x01(\tR\x0f\x62\x61\x64\x45thSignature\x12\x39\n\x19\x62\x61\x64_eth_signature_subject\x18\x02 \x01(\tR\x16\x62\x61\x64\x45thSignatureSubject\"\xb5\x01\n\x13\x45ventValidatorSlash\x12\x14\n\x05power\x18\x01 \x01(\x03R\x05power\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\x12+\n\x11\x63onsensus_address\x18\x03 \x01(\tR\x10\x63onsensusAddress\x12)\n\x10operator_address\x18\x04 \x01(\tR\x0foperatorAddress\x12\x18\n\x07moniker\x18\x05 \x01(\tR\x07monikerB\xdc\x01\n\x16\x63om.injective.peggy.v1B\x0b\x45ventsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types\xa2\x02\x03IPX\xaa\x02\x12Injective.Peggy.V1\xca\x02\x12Injective\\Peggy\\V1\xe2\x02\x1eInjective\\Peggy\\V1\\GPBMetadata\xea\x02\x14Injective::Peggy::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1finjective/peggy/v1/events.proto\x12\x12injective.peggy.v1\x1a\x14gogoproto/gogo.proto\x1a$injective/peggy/v1/attestation.proto\x1a\x1einjective/peggy/v1/types.proto\"\xf2\x01\n\x18\x45ventAttestationObserved\x12H\n\x10\x61ttestation_type\x18\x01 \x01(\x0e\x32\x1d.injective.peggy.v1.ClaimTypeR\x0f\x61ttestationType\x12\'\n\x0f\x62ridge_contract\x18\x02 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x03 \x01(\x04R\rbridgeChainId\x12%\n\x0e\x61ttestation_id\x18\x04 \x01(\x0cR\rattestationId\x12\x14\n\x05nonce\x18\x05 \x01(\x04R\x05nonce\"n\n\x1b\x45ventBridgeWithdrawCanceled\x12\'\n\x0f\x62ridge_contract\x18\x01 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x02 \x01(\x04R\rbridgeChainId\"\xc5\x01\n\x12\x45ventOutgoingBatch\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x03 \x01(\x04R\nbatchNonce\x12#\n\rbatch_timeout\x18\x04 \x01(\x04R\x0c\x62\x61tchTimeout\x12 \n\x0c\x62\x61tch_tx_ids\x18\x05 \x03(\x04R\nbatchTxIds\"\x9e\x01\n\x1a\x45ventOutgoingBatchCanceled\x12\'\n\x0f\x62ridge_contract\x18\x01 \x01(\tR\x0e\x62ridgeContract\x12&\n\x0f\x62ridge_chain_id\x18\x02 \x01(\x04R\rbridgeChainId\x12\x19\n\x08\x62\x61tch_id\x18\x03 \x01(\x04R\x07\x62\x61tchId\x12\x14\n\x05nonce\x18\x04 \x01(\x04R\x05nonce\"\x95\x02\n\x18\x45ventValsetUpdateRequest\x12!\n\x0cvalset_nonce\x18\x01 \x01(\x04R\x0bvalsetNonce\x12#\n\rvalset_height\x18\x02 \x01(\x04R\x0cvalsetHeight\x12J\n\x0evalset_members\x18\x03 \x03(\x0b\x32#.injective.peggy.v1.BridgeValidatorR\rvalsetMembers\x12\x42\n\rreward_amount\x18\x04 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0crewardAmount\x12!\n\x0creward_token\x18\x05 \x01(\tR\x0brewardToken\"\xb1\x01\n\x1d\x45ventSetOrchestratorAddresses\x12+\n\x11validator_address\x18\x01 \x01(\tR\x10validatorAddress\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\x12\x30\n\x14operator_eth_address\x18\x03 \x01(\tR\x12operatorEthAddress\"j\n\x12\x45ventValsetConfirm\x12!\n\x0cvalset_nonce\x18\x01 \x01(\x04R\x0bvalsetNonce\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\"\x83\x02\n\x0e\x45ventSendToEth\x12$\n\x0eoutgoing_tx_id\x18\x01 \x01(\x04R\x0coutgoingTxId\x12\x16\n\x06sender\x18\x02 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x03 \x01(\tR\x08receiver\x12G\n\x06\x61mount\x18\x04 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\x12N\n\nbridge_fee\x18\x05 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\tbridgeFee\"g\n\x11\x45ventConfirmBatch\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x01 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\x02 \x01(\tR\x13orchestratorAddress\"t\n\x14\x45ventAttestationVote\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12%\n\x0e\x61ttestation_id\x18\x02 \x01(\x0cR\rattestationId\x12\x14\n\x05voter\x18\x03 \x01(\tR\x05voter\"\xf5\x02\n\x11\x45ventDepositClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12\'\n\x0f\x65thereum_sender\x18\x04 \x01(\tR\x0e\x65thereumSender\x12\'\n\x0f\x63osmos_receiver\x18\x05 \x01(\tR\x0e\x63osmosReceiver\x12%\n\x0etoken_contract\x18\x06 \x01(\tR\rtokenContract\x12\x35\n\x06\x61mount\x18\x07 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mount\x12\x31\n\x14orchestrator_address\x18\x08 \x01(\tR\x13orchestratorAddress\x12\x12\n\x04\x64\x61ta\x18\t \x01(\tR\x04\x64\x61ta\"\xfa\x01\n\x12\x45ventWithdrawClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x04 \x01(\x04R\nbatchNonce\x12%\n\x0etoken_contract\x18\x05 \x01(\tR\rtokenContract\x12\x31\n\x14orchestrator_address\x18\x06 \x01(\tR\x13orchestratorAddress\"\xc9\x02\n\x17\x45ventERC20DeployedClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12!\n\x0c\x63osmos_denom\x18\x04 \x01(\tR\x0b\x63osmosDenom\x12%\n\x0etoken_contract\x18\x05 \x01(\tR\rtokenContract\x12\x12\n\x04name\x18\x06 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x07 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x08 \x01(\x04R\x08\x64\x65\x63imals\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\"\x8c\x03\n\x16\x45ventValsetUpdateClaim\x12\x1f\n\x0b\x65vent_nonce\x18\x01 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x02 \x01(\x04R\x0b\x65ventHeight\x12%\n\x0e\x61ttestation_id\x18\x03 \x01(\x0cR\rattestationId\x12!\n\x0cvalset_nonce\x18\x04 \x01(\x04R\x0bvalsetNonce\x12J\n\x0evalset_members\x18\x05 \x03(\x0b\x32#.injective.peggy.v1.BridgeValidatorR\rvalsetMembers\x12\x42\n\rreward_amount\x18\x06 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x0crewardAmount\x12!\n\x0creward_token\x18\x07 \x01(\tR\x0brewardToken\x12\x31\n\x14orchestrator_address\x18\x08 \x01(\tR\x13orchestratorAddress\"<\n\x14\x45ventCancelSendToEth\x12$\n\x0eoutgoing_tx_id\x18\x01 \x01(\x04R\x0coutgoingTxId\"\x88\x01\n\x1f\x45ventSubmitBadSignatureEvidence\x12*\n\x11\x62\x61\x64_eth_signature\x18\x01 \x01(\tR\x0f\x62\x61\x64\x45thSignature\x12\x39\n\x19\x62\x61\x64_eth_signature_subject\x18\x02 \x01(\tR\x16\x62\x61\x64\x45thSignatureSubject\"\xb5\x01\n\x13\x45ventValidatorSlash\x12\x14\n\x05power\x18\x01 \x01(\x03R\x05power\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\x12+\n\x11\x63onsensus_address\x18\x03 \x01(\tR\x10\x63onsensusAddress\x12)\n\x10operator_address\x18\x04 \x01(\tR\x0foperatorAddress\x12\x18\n\x07moniker\x18\x05 \x01(\tR\x07moniker\"\x93\x01\n\x14\x45ventDepositReceived\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12G\n\x06\x61mount\x18\x03 \x01(\tB/\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.CoinR\x06\x61mount\"s\n\x19\x45ventWithdrawalsCompleted\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12@\n\x0bwithdrawals\x18\x02 \x03(\x0b\x32\x1e.injective.peggy.v1.WithdrawalR\x0bwithdrawals\"w\n\nWithdrawal\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x35\n\x06\x61mount\x18\x03 \x01(\tB\x1d\xc8\xde\x1f\x00\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x06\x61mountB\xdc\x01\n\x16\x63om.injective.peggy.v1B\x0b\x45ventsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types\xa2\x02\x03IPX\xaa\x02\x12Injective.Peggy.V1\xca\x02\x12Injective\\Peggy\\V1\xe2\x02\x1eInjective\\Peggy\\V1\\GPBMetadata\xea\x02\x14Injective::Peggy::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,6 +35,10 @@ _globals['_EVENTDEPOSITCLAIM'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_EVENTVALSETUPDATECLAIM'].fields_by_name['reward_amount']._loaded_options = None _globals['_EVENTVALSETUPDATECLAIM'].fields_by_name['reward_amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_EVENTDEPOSITRECEIVED'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTDEPOSITRECEIVED'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\'github.com/cosmos/cosmos-sdk/types.Coin' + _globals['_WITHDRAWAL'].fields_by_name['amount']._loaded_options = None + _globals['_WITHDRAWAL'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_EVENTATTESTATIONOBSERVED']._serialized_start=148 _globals['_EVENTATTESTATIONOBSERVED']._serialized_end=390 _globals['_EVENTBRIDGEWITHDRAWCANCELED']._serialized_start=392 @@ -69,4 +73,10 @@ _globals['_EVENTSUBMITBADSIGNATUREEVIDENCE']._serialized_end=3477 _globals['_EVENTVALIDATORSLASH']._serialized_start=3480 _globals['_EVENTVALIDATORSLASH']._serialized_end=3661 + _globals['_EVENTDEPOSITRECEIVED']._serialized_start=3664 + _globals['_EVENTDEPOSITRECEIVED']._serialized_end=3811 + _globals['_EVENTWITHDRAWALSCOMPLETED']._serialized_start=3813 + _globals['_EVENTWITHDRAWALSCOMPLETED']._serialized_end=3928 + _globals['_WITHDRAWAL']._serialized_start=3930 + _globals['_WITHDRAWAL']._serialized_end=4049 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/peggy/v1/params_pb2.py b/pyinjective/proto/injective/peggy/v1/params_pb2.py index de890733..5d33a1e8 100644 --- a/pyinjective/proto/injective/peggy/v1/params_pb2.py +++ b/pyinjective/proto/injective/peggy/v1/params_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\x1finjective/peggy/v1/params.proto\x12\x12injective.peggy.v1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\"\xea\n\n\x06Params\x12\x19\n\x08peggy_id\x18\x01 \x01(\tR\x07peggyId\x12\x30\n\x14\x63ontract_source_hash\x18\x02 \x01(\tR\x12\x63ontractSourceHash\x12\x36\n\x17\x62ridge_ethereum_address\x18\x03 \x01(\tR\x15\x62ridgeEthereumAddress\x12&\n\x0f\x62ridge_chain_id\x18\x04 \x01(\x04R\rbridgeChainId\x12\x32\n\x15signed_valsets_window\x18\x05 \x01(\x04R\x13signedValsetsWindow\x12\x32\n\x15signed_batches_window\x18\x06 \x01(\x04R\x13signedBatchesWindow\x12\x30\n\x14signed_claims_window\x18\x07 \x01(\x04R\x12signedClaimsWindow\x12\x30\n\x14target_batch_timeout\x18\x08 \x01(\x04R\x12targetBatchTimeout\x12,\n\x12\x61verage_block_time\x18\t \x01(\x04R\x10\x61verageBlockTime\x12=\n\x1b\x61verage_ethereum_block_time\x18\n \x01(\x04R\x18\x61verageEthereumBlockTime\x12W\n\x15slash_fraction_valset\x18\x0b \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13slashFractionValset\x12U\n\x14slash_fraction_batch\x18\x0c \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12slashFractionBatch\x12U\n\x14slash_fraction_claim\x18\r \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12slashFractionClaim\x12l\n slash_fraction_conflicting_claim\x18\x0e \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1dslashFractionConflictingClaim\x12\x43\n\x1eunbond_slashing_valsets_window\x18\x0f \x01(\x04R\x1bunbondSlashingValsetsWindow\x12k\n slash_fraction_bad_eth_signature\x18\x10 \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1cslashFractionBadEthSignature\x12*\n\x11\x63osmos_coin_denom\x18\x11 \x01(\tR\x0f\x63osmosCoinDenom\x12;\n\x1a\x63osmos_coin_erc20_contract\x18\x12 \x01(\tR\x17\x63osmosCoinErc20Contract\x12\x34\n\x16\x63laim_slashing_enabled\x18\x13 \x01(\x08R\x14\x63laimSlashingEnabled\x12?\n\x1c\x62ridge_contract_start_height\x18\x14 \x01(\x04R\x19\x62ridgeContractStartHeight\x12\x44\n\rvalset_reward\x18\x15 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x0cvalsetReward\x12\x16\n\x06\x61\x64mins\x18\x16 \x03(\tR\x06\x61\x64mins:\x15\x80\xdc \x00\x8a\xe7\xb0*\x0cpeggy/ParamsB\xdc\x01\n\x16\x63om.injective.peggy.v1B\x0bParamsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types\xa2\x02\x03IPX\xaa\x02\x12Injective.Peggy.V1\xca\x02\x12Injective\\Peggy\\V1\xe2\x02\x1eInjective\\Peggy\\V1\\GPBMetadata\xea\x02\x14Injective::Peggy::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1finjective/peggy/v1/params.proto\x12\x12injective.peggy.v1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\"\xa6\x0b\n\x06Params\x12\x19\n\x08peggy_id\x18\x01 \x01(\tR\x07peggyId\x12\x30\n\x14\x63ontract_source_hash\x18\x02 \x01(\tR\x12\x63ontractSourceHash\x12\x36\n\x17\x62ridge_ethereum_address\x18\x03 \x01(\tR\x15\x62ridgeEthereumAddress\x12&\n\x0f\x62ridge_chain_id\x18\x04 \x01(\x04R\rbridgeChainId\x12\x32\n\x15signed_valsets_window\x18\x05 \x01(\x04R\x13signedValsetsWindow\x12\x32\n\x15signed_batches_window\x18\x06 \x01(\x04R\x13signedBatchesWindow\x12\x30\n\x14signed_claims_window\x18\x07 \x01(\x04R\x12signedClaimsWindow\x12\x30\n\x14target_batch_timeout\x18\x08 \x01(\x04R\x12targetBatchTimeout\x12,\n\x12\x61verage_block_time\x18\t \x01(\x04R\x10\x61verageBlockTime\x12=\n\x1b\x61verage_ethereum_block_time\x18\n \x01(\x04R\x18\x61verageEthereumBlockTime\x12W\n\x15slash_fraction_valset\x18\x0b \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x13slashFractionValset\x12U\n\x14slash_fraction_batch\x18\x0c \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12slashFractionBatch\x12U\n\x14slash_fraction_claim\x18\r \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x12slashFractionClaim\x12l\n slash_fraction_conflicting_claim\x18\x0e \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1dslashFractionConflictingClaim\x12\x43\n\x1eunbond_slashing_valsets_window\x18\x0f \x01(\x04R\x1bunbondSlashingValsetsWindow\x12k\n slash_fraction_bad_eth_signature\x18\x10 \x01(\x0c\x42#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x1cslashFractionBadEthSignature\x12*\n\x11\x63osmos_coin_denom\x18\x11 \x01(\tR\x0f\x63osmosCoinDenom\x12;\n\x1a\x63osmos_coin_erc20_contract\x18\x12 \x01(\tR\x17\x63osmosCoinErc20Contract\x12\x34\n\x16\x63laim_slashing_enabled\x18\x13 \x01(\x08R\x14\x63laimSlashingEnabled\x12?\n\x1c\x62ridge_contract_start_height\x18\x14 \x01(\x04R\x19\x62ridgeContractStartHeight\x12\x44\n\rvalset_reward\x18\x15 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x0cvalsetReward\x12\x16\n\x06\x61\x64mins\x18\x16 \x03(\tR\x06\x61\x64mins\x12:\n\x19segregated_wallet_address\x18\x17 \x01(\tR\x17segregatedWalletAddress:\x15\x80\xdc \x00\x8a\xe7\xb0*\x0cpeggy/ParamsB\xdc\x01\n\x16\x63om.injective.peggy.v1B\x0bParamsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types\xa2\x02\x03IPX\xaa\x02\x12Injective.Peggy.V1\xca\x02\x12Injective\\Peggy\\V1\xe2\x02\x1eInjective\\Peggy\\V1\\GPBMetadata\xea\x02\x14Injective::Peggy::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,5 +40,5 @@ _globals['_PARAMS']._loaded_options = None _globals['_PARAMS']._serialized_options = b'\200\334 \000\212\347\260*\014peggy/Params' _globals['_PARAMS']._serialized_start=129 - _globals['_PARAMS']._serialized_end=1515 + _globals['_PARAMS']._serialized_end=1575 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/permissions/v1beta1/genesis_pb2.py b/pyinjective/proto/injective/permissions/v1beta1/genesis_pb2.py index 6fa1a73a..e3ed2f66 100644 --- a/pyinjective/proto/injective/permissions/v1beta1/genesis_pb2.py +++ b/pyinjective/proto/injective/permissions/v1beta1/genesis_pb2.py @@ -17,7 +17,7 @@ from pyinjective.proto.injective.permissions.v1beta1 import permissions_pb2 as injective_dot_permissions_dot_v1beta1_dot_permissions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+injective/permissions/v1beta1/genesis.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a*injective/permissions/v1beta1/params.proto\x1a/injective/permissions/v1beta1/permissions.proto\"\xa3\x01\n\x0cGenesisState\x12\x43\n\x06params\x18\x01 \x01(\x0b\x32%.injective.permissions.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12N\n\nnamespaces\x18\x02 \x03(\x0b\x32(.injective.permissions.v1beta1.NamespaceB\x04\xc8\xde\x1f\x00R\nnamespacesB\x9a\x02\n!com.injective.permissions.v1beta1B\x0cGenesisProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+injective/permissions/v1beta1/genesis.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a*injective/permissions/v1beta1/params.proto\x1a/injective/permissions/v1beta1/permissions.proto\"\xee\x01\n\x0cGenesisState\x12\x43\n\x06params\x18\x01 \x01(\x0b\x32%.injective.permissions.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12N\n\nnamespaces\x18\x02 \x03(\x0b\x32(.injective.permissions.v1beta1.NamespaceB\x04\xc8\xde\x1f\x00R\nnamespaces\x12I\n\x08vouchers\x18\x03 \x03(\x0b\x32-.injective.permissions.v1beta1.AddressVoucherR\x08vouchersB\x9a\x02\n!com.injective.permissions.v1beta1B\x0cGenesisProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,5 +30,5 @@ _globals['_GENESISSTATE'].fields_by_name['namespaces']._loaded_options = None _globals['_GENESISSTATE'].fields_by_name['namespaces']._serialized_options = b'\310\336\037\000' _globals['_GENESISSTATE']._serialized_start=194 - _globals['_GENESISSTATE']._serialized_end=357 + _globals['_GENESISSTATE']._serialized_end=432 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/permissions/v1beta1/permissions_pb2.py b/pyinjective/proto/injective/permissions/v1beta1/permissions_pb2.py index cab8953a..bbff10ad 100644 --- a/pyinjective/proto/injective/permissions/v1beta1/permissions_pb2.py +++ b/pyinjective/proto/injective/permissions/v1beta1/permissions_pb2.py @@ -12,11 +12,11 @@ _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.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/injective/permissions/v1beta1/permissions.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\"\xc9\x02\n\tNamespace\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x1b\n\twasm_hook\x18\x02 \x01(\tR\x08wasmHook\x12!\n\x0cmints_paused\x18\x03 \x01(\x08R\x0bmintsPaused\x12!\n\x0csends_paused\x18\x04 \x01(\x08R\x0bsendsPaused\x12!\n\x0c\x62urns_paused\x18\x05 \x01(\x08R\x0b\x62urnsPaused\x12N\n\x10role_permissions\x18\x06 \x03(\x0b\x32#.injective.permissions.v1beta1.RoleR\x0frolePermissions\x12P\n\raddress_roles\x18\x07 \x03(\x0b\x32+.injective.permissions.v1beta1.AddressRolesR\x0c\x61\x64\x64ressRoles\">\n\x0c\x41\x64\x64ressRoles\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05roles\x18\x02 \x03(\tR\x05roles\"<\n\x04Role\x12\x12\n\x04role\x18\x01 \x01(\tR\x04role\x12 \n\x0bpermissions\x18\x02 \x01(\rR\x0bpermissions\"$\n\x07RoleIDs\x12\x19\n\x08role_ids\x18\x01 \x03(\rR\x07roleIds\"l\n\x07Voucher\x12\x61\n\x05\x63oins\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinB0\xc8\xde\x1f\x00\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x05\x63oins\"l\n\x0e\x41\x64\x64ressVoucher\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12@\n\x07voucher\x18\x02 \x01(\x0b\x32&.injective.permissions.v1beta1.VoucherR\x07voucher*:\n\x06\x41\x63tion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04MINT\x10\x01\x12\x0b\n\x07RECEIVE\x10\x02\x12\x08\n\x04\x42URN\x10\x04\x42\x9e\x02\n!com.injective.permissions.v1beta1B\x10PermissionsProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/injective/permissions/v1beta1/permissions.proto\x12\x1dinjective.permissions.v1beta1\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x14gogoproto/gogo.proto\"\x81\x04\n\tNamespace\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12#\n\rcontract_hook\x18\x02 \x01(\tR\x0c\x63ontractHook\x12N\n\x10role_permissions\x18\x03 \x03(\x0b\x32#.injective.permissions.v1beta1.RoleR\x0frolePermissions\x12J\n\x0b\x61\x63tor_roles\x18\x04 \x03(\x0b\x32).injective.permissions.v1beta1.ActorRolesR\nactorRoles\x12O\n\rrole_managers\x18\x05 \x03(\x0b\x32*.injective.permissions.v1beta1.RoleManagerR\x0croleManagers\x12T\n\x0fpolicy_statuses\x18\x06 \x03(\x0b\x32+.injective.permissions.v1beta1.PolicyStatusR\x0epolicyStatuses\x12v\n\x1bpolicy_manager_capabilities\x18\x07 \x03(\x0b\x32\x36.injective.permissions.v1beta1.PolicyManagerCapabilityR\x19policyManagerCapabilities\"8\n\nActorRoles\x12\x14\n\x05\x61\x63tor\x18\x01 \x01(\tR\x05\x61\x63tor\x12\x14\n\x05roles\x18\x02 \x03(\tR\x05roles\"8\n\nRoleActors\x12\x12\n\x04role\x18\x01 \x01(\tR\x04role\x12\x16\n\x06\x61\x63tors\x18\x02 \x03(\tR\x06\x61\x63tors\"=\n\x0bRoleManager\x12\x18\n\x07manager\x18\x01 \x01(\tR\x07manager\x12\x14\n\x05roles\x18\x02 \x03(\tR\x05roles\"\x8b\x01\n\x0cPolicyStatus\x12=\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32%.injective.permissions.v1beta1.ActionR\x06\x61\x63tion\x12\x1f\n\x0bis_disabled\x18\x02 \x01(\x08R\nisDisabled\x12\x1b\n\tis_sealed\x18\x03 \x01(\x08R\x08isSealed\"U\n\x04Role\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x17\n\x07role_id\x18\x02 \x01(\rR\x06roleId\x12 \n\x0bpermissions\x18\x03 \x01(\rR\x0bpermissions\"\xae\x01\n\x17PolicyManagerCapability\x12\x18\n\x07manager\x18\x01 \x01(\tR\x07manager\x12=\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32%.injective.permissions.v1beta1.ActionR\x06\x61\x63tion\x12\x1f\n\x0b\x63\x61n_disable\x18\x03 \x01(\x08R\ncanDisable\x12\x19\n\x08\x63\x61n_seal\x18\x04 \x01(\x08R\x07\x63\x61nSeal\"$\n\x07RoleIDs\x12\x19\n\x08role_ids\x18\x01 \x03(\rR\x07roleIds\"\xa5\x01\n\x0e\x41\x64\x64ressVoucher\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12y\n\x07voucher\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinBD\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.Coin\xea\xde\x1f\x11voucher,omitemptyR\x07voucher*\xd0\x01\n\x06\x41\x63tion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04MINT\x10\x01\x12\x0b\n\x07RECEIVE\x10\x02\x12\x08\n\x04\x42URN\x10\x04\x12\x08\n\x04SEND\x10\x08\x12\x0e\n\nSUPER_BURN\x10\x10\x12\x1d\n\x16MODIFY_POLICY_MANAGERS\x10\x80\x80\x80@\x12\x1c\n\x14MODIFY_CONTRACT_HOOK\x10\x80\x80\x80\x80\x01\x12\x1f\n\x17MODIFY_ROLE_PERMISSIONS\x10\x80\x80\x80\x80\x02\x12\x1c\n\x14MODIFY_ROLE_MANAGERS\x10\x80\x80\x80\x80\x04\x42\x9e\x02\n!com.injective.permissions.v1beta1B\x10PermissionsProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,20 +24,26 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n!com.injective.permissions.v1beta1B\020PermissionsProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\242\002\003IPX\252\002\035Injective.Permissions.V1beta1\312\002\035Injective\\Permissions\\V1beta1\342\002)Injective\\Permissions\\V1beta1\\GPBMetadata\352\002\037Injective::Permissions::V1beta1' - _globals['_VOUCHER'].fields_by_name['coins']._loaded_options = None - _globals['_VOUCHER'].fields_by_name['coins']._serialized_options = b'\310\336\037\000\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' - _globals['_ACTION']._serialized_start=852 - _globals['_ACTION']._serialized_end=910 + _globals['_ADDRESSVOUCHER'].fields_by_name['voucher']._loaded_options = None + _globals['_ADDRESSVOUCHER'].fields_by_name['voucher']._serialized_options = b'\310\336\037\000\332\336\037\'github.com/cosmos/cosmos-sdk/types.Coin\352\336\037\021voucher,omitempty' + _globals['_ACTION']._serialized_start=1444 + _globals['_ACTION']._serialized_end=1652 _globals['_NAMESPACE']._serialized_start=137 - _globals['_NAMESPACE']._serialized_end=466 - _globals['_ADDRESSROLES']._serialized_start=468 - _globals['_ADDRESSROLES']._serialized_end=530 - _globals['_ROLE']._serialized_start=532 - _globals['_ROLE']._serialized_end=592 - _globals['_ROLEIDS']._serialized_start=594 - _globals['_ROLEIDS']._serialized_end=630 - _globals['_VOUCHER']._serialized_start=632 - _globals['_VOUCHER']._serialized_end=740 - _globals['_ADDRESSVOUCHER']._serialized_start=742 - _globals['_ADDRESSVOUCHER']._serialized_end=850 + _globals['_NAMESPACE']._serialized_end=650 + _globals['_ACTORROLES']._serialized_start=652 + _globals['_ACTORROLES']._serialized_end=708 + _globals['_ROLEACTORS']._serialized_start=710 + _globals['_ROLEACTORS']._serialized_end=766 + _globals['_ROLEMANAGER']._serialized_start=768 + _globals['_ROLEMANAGER']._serialized_end=829 + _globals['_POLICYSTATUS']._serialized_start=832 + _globals['_POLICYSTATUS']._serialized_end=971 + _globals['_ROLE']._serialized_start=973 + _globals['_ROLE']._serialized_end=1058 + _globals['_POLICYMANAGERCAPABILITY']._serialized_start=1061 + _globals['_POLICYMANAGERCAPABILITY']._serialized_end=1235 + _globals['_ROLEIDS']._serialized_start=1237 + _globals['_ROLEIDS']._serialized_end=1273 + _globals['_ADDRESSVOUCHER']._serialized_start=1276 + _globals['_ADDRESSVOUCHER']._serialized_end=1441 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/permissions/v1beta1/query_pb2.py b/pyinjective/proto/injective/permissions/v1beta1/query_pb2.py index a03ce809..9a189f68 100644 --- a/pyinjective/proto/injective/permissions/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/permissions/v1beta1/query_pb2.py @@ -21,7 +21,7 @@ from pyinjective.proto.injective.permissions.v1beta1 import permissions_pb2 as injective_dot_permissions_dot_v1beta1_dot_permissions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/permissions/v1beta1/query.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a*injective/permissions/v1beta1/params.proto\x1a+injective/permissions/v1beta1/genesis.proto\x1a/injective/permissions/v1beta1/permissions.proto\"\x14\n\x12QueryParamsRequest\"Z\n\x13QueryParamsResponse\x12\x43\n\x06params\x18\x01 \x01(\x0b\x32%.injective.permissions.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x1b\n\x19QueryAllNamespacesRequest\"f\n\x1aQueryAllNamespacesResponse\x12H\n\nnamespaces\x18\x01 \x03(\x0b\x32(.injective.permissions.v1beta1.NamespaceR\nnamespaces\"Y\n\x1cQueryNamespaceByDenomRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12#\n\rinclude_roles\x18\x02 \x01(\x08R\x0cincludeRoles\"g\n\x1dQueryNamespaceByDenomResponse\x12\x46\n\tnamespace\x18\x01 \x01(\x0b\x32(.injective.permissions.v1beta1.NamespaceR\tnamespace\"G\n\x1bQueryAddressesByRoleRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x12\n\x04role\x18\x02 \x01(\tR\x04role\"<\n\x1cQueryAddressesByRoleResponse\x12\x1c\n\taddresses\x18\x01 \x03(\tR\taddresses\"J\n\x18QueryAddressRolesRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x19QueryAddressRolesResponse\x12\x14\n\x05roles\x18\x01 \x03(\tR\x05roles\":\n\x1eQueryVouchersForAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\xa0\x01\n\x1fQueryVouchersForAddressResponse\x12}\n\x08vouchers\x18\x01 \x03(\x0b\x32\x19.cosmos.base.v1beta1.CoinBF\xc8\xde\x1f\x00\xea\xde\x1f\x12vouchers,omitempty\xaa\xdf\x1f(github.com/cosmos/cosmos-sdk/types.CoinsR\x08vouchers2\x89\t\n\x05Query\x12\x9e\x01\n\x06Params\x12\x31.injective.permissions.v1beta1.QueryParamsRequest\x1a\x32.injective.permissions.v1beta1.QueryParamsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/injective/permissions/v1beta1/params\x12\xbb\x01\n\rAllNamespaces\x12\x38.injective.permissions.v1beta1.QueryAllNamespacesRequest\x1a\x39.injective.permissions.v1beta1.QueryAllNamespacesResponse\"5\x82\xd3\xe4\x93\x02/\x12-/injective/permissions/v1beta1/all_namespaces\x12\xc8\x01\n\x10NamespaceByDenom\x12;.injective.permissions.v1beta1.QueryNamespaceByDenomRequest\x1a<.injective.permissions.v1beta1.QueryNamespaceByDenomResponse\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/injective/permissions/v1beta1/namespace_by_denom\x12\xbb\x01\n\x0c\x41\x64\x64ressRoles\x12\x37.injective.permissions.v1beta1.QueryAddressRolesRequest\x1a\x38.injective.permissions.v1beta1.QueryAddressRolesResponse\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/injective/permissions/v1beta1/addresses_by_role\x12\xc4\x01\n\x0f\x41\x64\x64ressesByRole\x12:.injective.permissions.v1beta1.QueryAddressesByRoleRequest\x1a;.injective.permissions.v1beta1.QueryAddressesByRoleResponse\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/injective/permissions/v1beta1/addresses_by_role\x12\xd0\x01\n\x12VouchersForAddress\x12=.injective.permissions.v1beta1.QueryVouchersForAddressRequest\x1a>.injective.permissions.v1beta1.QueryVouchersForAddressResponse\";\x82\xd3\xe4\x93\x02\x35\x12\x33/injective/permissions/v1beta1/vouchers_for_addressB\x98\x02\n!com.injective.permissions.v1beta1B\nQueryProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)injective/permissions/v1beta1/query.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a*injective/permissions/v1beta1/params.proto\x1a+injective/permissions/v1beta1/genesis.proto\x1a/injective/permissions/v1beta1/permissions.proto\"\x14\n\x12QueryParamsRequest\"Z\n\x13QueryParamsResponse\x12\x43\n\x06params\x18\x01 \x01(\x0b\x32%.injective.permissions.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x1d\n\x1bQueryNamespaceDenomsRequest\"6\n\x1cQueryNamespaceDenomsResponse\x12\x16\n\x06\x64\x65noms\x18\x01 \x03(\tR\x06\x64\x65noms\"\x18\n\x16QueryNamespacesRequest\"c\n\x17QueryNamespacesResponse\x12H\n\nnamespaces\x18\x01 \x03(\x0b\x32(.injective.permissions.v1beta1.NamespaceR\nnamespaces\"-\n\x15QueryNamespaceRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"`\n\x16QueryNamespaceResponse\x12\x46\n\tnamespace\x18\x01 \x01(\x0b\x32(.injective.permissions.v1beta1.NamespaceR\tnamespace\"D\n\x18QueryActorsByRoleRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x12\n\x04role\x18\x02 \x01(\tR\x04role\"3\n\x19QueryActorsByRoleResponse\x12\x16\n\x06\x61\x63tors\x18\x01 \x03(\tR\x06\x61\x63tors\"F\n\x18QueryRolesByActorRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05\x61\x63tor\x18\x02 \x01(\tR\x05\x61\x63tor\"1\n\x19QueryRolesByActorResponse\x12\x14\n\x05roles\x18\x01 \x03(\tR\x05roles\"0\n\x18QueryRoleManagersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"l\n\x19QueryRoleManagersResponse\x12O\n\rrole_managers\x18\x01 \x03(\x0b\x32*.injective.permissions.v1beta1.RoleManagerR\x0croleManagers\"I\n\x17QueryRoleManagerRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x18\n\x07manager\x18\x02 \x01(\tR\x07manager\"i\n\x18QueryRoleManagerResponse\x12M\n\x0crole_manager\x18\x01 \x01(\x0b\x32*.injective.permissions.v1beta1.RoleManagerR\x0broleManager\"2\n\x1aQueryPolicyStatusesRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"s\n\x1bQueryPolicyStatusesResponse\x12T\n\x0fpolicy_statuses\x18\x01 \x03(\x0b\x32+.injective.permissions.v1beta1.PolicyStatusR\x0epolicyStatuses\"=\n%QueryPolicyManagerCapabilitiesRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"\xa0\x01\n&QueryPolicyManagerCapabilitiesResponse\x12v\n\x1bpolicy_manager_capabilities\x18\x01 \x03(\x0b\x32\x36.injective.permissions.v1beta1.PolicyManagerCapabilityR\x19policyManagerCapabilities\",\n\x14QueryVouchersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\"b\n\x15QueryVouchersResponse\x12I\n\x08vouchers\x18\x01 \x03(\x0b\x32-.injective.permissions.v1beta1.AddressVoucherR\x08vouchers\"E\n\x13QueryVoucherRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"\x91\x01\n\x14QueryVoucherResponse\x12y\n\x07voucher\x18\x01 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinBD\xc8\xde\x1f\x00\xda\xde\x1f\'github.com/cosmos/cosmos-sdk/types.Coin\xea\xde\x1f\x11voucher,omitemptyR\x07voucher\"\x19\n\x17QueryModuleStateRequest\"]\n\x18QueryModuleStateResponse\x12\x41\n\x05state\x18\x01 \x01(\x0b\x32+.injective.permissions.v1beta1.GenesisStateR\x05state2\xdd\x13\n\x05Query\x12\x9e\x01\n\x06Params\x12\x31.injective.permissions.v1beta1.QueryParamsRequest\x1a\x32.injective.permissions.v1beta1.QueryParamsResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/injective/permissions/v1beta1/params\x12\xc3\x01\n\x0fNamespaceDenoms\x12:.injective.permissions.v1beta1.QueryNamespaceDenomsRequest\x1a;.injective.permissions.v1beta1.QueryNamespaceDenomsResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/permissions/v1beta1/namespace_denoms\x12\xae\x01\n\nNamespaces\x12\x35.injective.permissions.v1beta1.QueryNamespacesRequest\x1a\x36.injective.permissions.v1beta1.QueryNamespacesResponse\"1\x82\xd3\xe4\x93\x02+\x12)/injective/permissions/v1beta1/namespaces\x12\xb2\x01\n\tNamespace\x12\x34.injective.permissions.v1beta1.QueryNamespaceRequest\x1a\x35.injective.permissions.v1beta1.QueryNamespaceResponse\"8\x82\xd3\xe4\x93\x02\x32\x12\x30/injective/permissions/v1beta1/namespace/{denom}\x12\xc8\x01\n\x0cRolesByActor\x12\x37.injective.permissions.v1beta1.QueryRolesByActorRequest\x1a\x38.injective.permissions.v1beta1.QueryRolesByActorResponse\"E\x82\xd3\xe4\x93\x02?\x12=/injective/permissions/v1beta1/roles_by_actor/{denom}/{actor}\x12\xc7\x01\n\x0c\x41\x63torsByRole\x12\x37.injective.permissions.v1beta1.QueryActorsByRoleRequest\x1a\x38.injective.permissions.v1beta1.QueryActorsByRoleResponse\"D\x82\xd3\xe4\x93\x02>\x12\x82\xd3\xe4\x93\x02\x38\x12\x36/injective/permissions/v1beta1/policy_statuses/{denom}\x12\xf4\x01\n\x19PolicyManagerCapabilities\x12\x44.injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesRequest\x1a\x45.injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesResponse\"J\x82\xd3\xe4\x93\x02\x44\x12\x42/injective/permissions/v1beta1/policy_manager_capabilities/{denom}\x12\xae\x01\n\x08Vouchers\x12\x33.injective.permissions.v1beta1.QueryVouchersRequest\x1a\x34.injective.permissions.v1beta1.QueryVouchersResponse\"7\x82\xd3\xe4\x93\x02\x31\x12//injective/permissions/v1beta1/vouchers/{denom}\x12\xb4\x01\n\x07Voucher\x12\x32.injective.permissions.v1beta1.QueryVoucherRequest\x1a\x33.injective.permissions.v1beta1.QueryVoucherResponse\"@\x82\xd3\xe4\x93\x02:\x12\x38/injective/permissions/v1beta1/voucher/{denom}/{address}\x12\xbe\x01\n\x16PermissionsModuleState\x12\x36.injective.permissions.v1beta1.QueryModuleStateRequest\x1a\x37.injective.permissions.v1beta1.QueryModuleStateResponse\"3\x82\xd3\xe4\x93\x02-\x12+/injective/permissions/v1beta1/module_stateB\x98\x02\n!com.injective.permissions.v1beta1B\nQueryProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,44 +31,86 @@ _globals['DESCRIPTOR']._serialized_options = b'\n!com.injective.permissions.v1beta1B\nQueryProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\242\002\003IPX\252\002\035Injective.Permissions.V1beta1\312\002\035Injective\\Permissions\\V1beta1\342\002)Injective\\Permissions\\V1beta1\\GPBMetadata\352\002\037Injective::Permissions::V1beta1' _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' - _globals['_QUERYVOUCHERSFORADDRESSRESPONSE'].fields_by_name['vouchers']._loaded_options = None - _globals['_QUERYVOUCHERSFORADDRESSRESPONSE'].fields_by_name['vouchers']._serialized_options = b'\310\336\037\000\352\336\037\022vouchers,omitempty\252\337\037(github.com/cosmos/cosmos-sdk/types.Coins' + _globals['_QUERYVOUCHERRESPONSE'].fields_by_name['voucher']._loaded_options = None + _globals['_QUERYVOUCHERRESPONSE'].fields_by_name['voucher']._serialized_options = b'\310\336\037\000\332\336\037\'github.com/cosmos/cosmos-sdk/types.Coin\352\336\037\021voucher,omitempty' _globals['_QUERY'].methods_by_name['Params']._loaded_options = None _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002\'\022%/injective/permissions/v1beta1/params' - _globals['_QUERY'].methods_by_name['AllNamespaces']._loaded_options = None - _globals['_QUERY'].methods_by_name['AllNamespaces']._serialized_options = b'\202\323\344\223\002/\022-/injective/permissions/v1beta1/all_namespaces' - _globals['_QUERY'].methods_by_name['NamespaceByDenom']._loaded_options = None - _globals['_QUERY'].methods_by_name['NamespaceByDenom']._serialized_options = b'\202\323\344\223\0023\0221/injective/permissions/v1beta1/namespace_by_denom' - _globals['_QUERY'].methods_by_name['AddressRoles']._loaded_options = None - _globals['_QUERY'].methods_by_name['AddressRoles']._serialized_options = b'\202\323\344\223\0022\0220/injective/permissions/v1beta1/addresses_by_role' - _globals['_QUERY'].methods_by_name['AddressesByRole']._loaded_options = None - _globals['_QUERY'].methods_by_name['AddressesByRole']._serialized_options = b'\202\323\344\223\0022\0220/injective/permissions/v1beta1/addresses_by_role' - _globals['_QUERY'].methods_by_name['VouchersForAddress']._loaded_options = None - _globals['_QUERY'].methods_by_name['VouchersForAddress']._serialized_options = b'\202\323\344\223\0025\0223/injective/permissions/v1beta1/vouchers_for_address' + _globals['_QUERY'].methods_by_name['NamespaceDenoms']._loaded_options = None + _globals['_QUERY'].methods_by_name['NamespaceDenoms']._serialized_options = b'\202\323\344\223\0021\022//injective/permissions/v1beta1/namespace_denoms' + _globals['_QUERY'].methods_by_name['Namespaces']._loaded_options = None + _globals['_QUERY'].methods_by_name['Namespaces']._serialized_options = b'\202\323\344\223\002+\022)/injective/permissions/v1beta1/namespaces' + _globals['_QUERY'].methods_by_name['Namespace']._loaded_options = None + _globals['_QUERY'].methods_by_name['Namespace']._serialized_options = b'\202\323\344\223\0022\0220/injective/permissions/v1beta1/namespace/{denom}' + _globals['_QUERY'].methods_by_name['RolesByActor']._loaded_options = None + _globals['_QUERY'].methods_by_name['RolesByActor']._serialized_options = b'\202\323\344\223\002?\022=/injective/permissions/v1beta1/roles_by_actor/{denom}/{actor}' + _globals['_QUERY'].methods_by_name['ActorsByRole']._loaded_options = None + _globals['_QUERY'].methods_by_name['ActorsByRole']._serialized_options = b'\202\323\344\223\002>\022.injective.permissions.v1beta1.MsgUpdateNamespaceRolesResponse\x12\x8e\x01\n\x14RevokeNamespaceRoles\x12\x36.injective.permissions.v1beta1.MsgRevokeNamespaceRoles\x1a>.injective.permissions.v1beta1.MsgRevokeNamespaceRolesResponse\x12v\n\x0c\x43laimVoucher\x12..injective.permissions.v1beta1.MsgClaimVoucher\x1a\x36.injective.permissions.v1beta1.MsgClaimVoucherResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x95\x02\n!com.injective.permissions.v1beta1B\x07TxProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/permissions/v1beta1/tx.proto\x12\x1dinjective.permissions.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x1e\x63osmos/bank/v1beta1/bank.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a*injective/permissions/v1beta1/params.proto\x1a/injective/permissions/v1beta1/permissions.proto\x1a\x11\x61mino/amino.proto\"\xbe\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x43\n\x06params\x18\x02 \x01(\x0b\x32%.injective.permissions.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:.\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x1bpermissions/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse\"\xbd\x01\n\x12MsgCreateNamespace\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12L\n\tnamespace\x18\x02 \x01(\x0b\x32(.injective.permissions.v1beta1.NamespaceB\x04\xc8\xde\x1f\x00R\tnamespace:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1epermissions/MsgCreateNamespace\"\x1c\n\x1aMsgCreateNamespaceResponse\"\x8c\x05\n\x12MsgUpdateNamespace\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12\x66\n\rcontract_hook\x18\x03 \x01(\x0b\x32\x41.injective.permissions.v1beta1.MsgUpdateNamespace.SetContractHookR\x0c\x63ontractHook\x12N\n\x10role_permissions\x18\x04 \x03(\x0b\x32#.injective.permissions.v1beta1.RoleR\x0frolePermissions\x12O\n\rrole_managers\x18\x05 \x03(\x0b\x32*.injective.permissions.v1beta1.RoleManagerR\x0croleManagers\x12T\n\x0fpolicy_statuses\x18\x06 \x03(\x0b\x32+.injective.permissions.v1beta1.PolicyStatusR\x0epolicyStatuses\x12v\n\x1bpolicy_manager_capabilities\x18\x07 \x03(\x0b\x32\x36.injective.permissions.v1beta1.PolicyManagerCapabilityR\x19policyManagerCapabilities\x1a.\n\x0fSetContractHook\x12\x1b\n\tnew_value\x18\x01 \x01(\tR\x08newValue:.\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1epermissions/MsgUpdateNamespace\"\x1c\n\x1aMsgUpdateNamespaceResponse\"\xbd\x02\n\x13MsgUpdateActorRoles\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12V\n\x12role_actors_to_add\x18\x03 \x03(\x0b\x32).injective.permissions.v1beta1.RoleActorsR\x0froleActorsToAdd\x12\\\n\x15role_actors_to_revoke\x18\x05 \x03(\x0b\x32).injective.permissions.v1beta1.RoleActorsR\x12roleActorsToRevoke:/\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1fpermissions/MsgUpdateActorRoles\"\x1d\n\x1bMsgUpdateActorRolesResponse\"\x7f\n\x0fMsgClaimVoucher\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom:+\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1bpermissions/MsgClaimVoucher\"\x19\n\x17MsgClaimVoucherResponse2\x83\x05\n\x03Msg\x12v\n\x0cUpdateParams\x12..injective.permissions.v1beta1.MsgUpdateParams\x1a\x36.injective.permissions.v1beta1.MsgUpdateParamsResponse\x12\x7f\n\x0f\x43reateNamespace\x12\x31.injective.permissions.v1beta1.MsgCreateNamespace\x1a\x39.injective.permissions.v1beta1.MsgCreateNamespaceResponse\x12\x7f\n\x0fUpdateNamespace\x12\x31.injective.permissions.v1beta1.MsgUpdateNamespace\x1a\x39.injective.permissions.v1beta1.MsgUpdateNamespaceResponse\x12\x82\x01\n\x10UpdateActorRoles\x12\x32.injective.permissions.v1beta1.MsgUpdateActorRoles\x1a:.injective.permissions.v1beta1.MsgUpdateActorRolesResponse\x12v\n\x0c\x43laimVoucher\x12..injective.permissions.v1beta1.MsgClaimVoucher\x1a\x36.injective.permissions.v1beta1.MsgClaimVoucherResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x95\x02\n!com.injective.permissions.v1beta1B\x07TxProtoP\x01ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types\xa2\x02\x03IPX\xaa\x02\x1dInjective.Permissions.V1beta1\xca\x02\x1dInjective\\Permissions\\V1beta1\xe2\x02)Injective\\Permissions\\V1beta1\\GPBMetadata\xea\x02\x1fInjective::Permissions::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,22 +42,14 @@ _globals['_MSGCREATENAMESPACE'].fields_by_name['namespace']._serialized_options = b'\310\336\037\000' _globals['_MSGCREATENAMESPACE']._loaded_options = None _globals['_MSGCREATENAMESPACE']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036permissions/MsgCreateNamespace' - _globals['_MSGDELETENAMESPACE'].fields_by_name['sender']._loaded_options = None - _globals['_MSGDELETENAMESPACE'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' - _globals['_MSGDELETENAMESPACE']._loaded_options = None - _globals['_MSGDELETENAMESPACE']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036permissions/MsgDeleteNamespace' _globals['_MSGUPDATENAMESPACE'].fields_by_name['sender']._loaded_options = None _globals['_MSGUPDATENAMESPACE'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' _globals['_MSGUPDATENAMESPACE']._loaded_options = None _globals['_MSGUPDATENAMESPACE']._serialized_options = b'\202\347\260*\006sender\212\347\260*\036permissions/MsgUpdateNamespace' - _globals['_MSGUPDATENAMESPACEROLES'].fields_by_name['sender']._loaded_options = None - _globals['_MSGUPDATENAMESPACEROLES'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' - _globals['_MSGUPDATENAMESPACEROLES']._loaded_options = None - _globals['_MSGUPDATENAMESPACEROLES']._serialized_options = b'\202\347\260*\006sender\212\347\260*#permissions/MsgUpdateNamespaceRoles' - _globals['_MSGREVOKENAMESPACEROLES'].fields_by_name['sender']._loaded_options = None - _globals['_MSGREVOKENAMESPACEROLES'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' - _globals['_MSGREVOKENAMESPACEROLES']._loaded_options = None - _globals['_MSGREVOKENAMESPACEROLES']._serialized_options = b'\202\347\260*\006sender\212\347\260*#permissions/MsgRevokeNamespaceRoles' + _globals['_MSGUPDATEACTORROLES'].fields_by_name['sender']._loaded_options = None + _globals['_MSGUPDATEACTORROLES'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' + _globals['_MSGUPDATEACTORROLES']._loaded_options = None + _globals['_MSGUPDATEACTORROLES']._serialized_options = b'\202\347\260*\006sender\212\347\260*\037permissions/MsgUpdateActorRoles' _globals['_MSGCLAIMVOUCHER'].fields_by_name['sender']._loaded_options = None _globals['_MSGCLAIMVOUCHER'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' _globals['_MSGCLAIMVOUCHER']._loaded_options = None @@ -72,34 +64,20 @@ _globals['_MSGCREATENAMESPACE']._serialized_end=733 _globals['_MSGCREATENAMESPACERESPONSE']._serialized_start=735 _globals['_MSGCREATENAMESPACERESPONSE']._serialized_end=763 - _globals['_MSGDELETENAMESPACE']._serialized_start=766 - _globals['_MSGDELETENAMESPACE']._serialized_end=918 - _globals['_MSGDELETENAMESPACERESPONSE']._serialized_start=920 - _globals['_MSGDELETENAMESPACERESPONSE']._serialized_end=948 - _globals['_MSGUPDATENAMESPACE']._serialized_start=951 - _globals['_MSGUPDATENAMESPACE']._serialized_end=1707 - _globals['_MSGUPDATENAMESPACE_MSGSETWASMHOOK']._serialized_start=1464 - _globals['_MSGUPDATENAMESPACE_MSGSETWASMHOOK']._serialized_end=1509 - _globals['_MSGUPDATENAMESPACE_MSGSETMINTSPAUSED']._serialized_start=1511 - _globals['_MSGUPDATENAMESPACE_MSGSETMINTSPAUSED']._serialized_end=1559 - _globals['_MSGUPDATENAMESPACE_MSGSETSENDSPAUSED']._serialized_start=1561 - _globals['_MSGUPDATENAMESPACE_MSGSETSENDSPAUSED']._serialized_end=1609 - _globals['_MSGUPDATENAMESPACE_MSGSETBURNSPAUSED']._serialized_start=1611 - _globals['_MSGUPDATENAMESPACE_MSGSETBURNSPAUSED']._serialized_end=1659 - _globals['_MSGUPDATENAMESPACERESPONSE']._serialized_start=1709 - _globals['_MSGUPDATENAMESPACERESPONSE']._serialized_end=1737 - _globals['_MSGUPDATENAMESPACEROLES']._serialized_start=1740 - _globals['_MSGUPDATENAMESPACEROLES']._serialized_end=2064 - _globals['_MSGUPDATENAMESPACEROLESRESPONSE']._serialized_start=2066 - _globals['_MSGUPDATENAMESPACEROLESRESPONSE']._serialized_end=2099 - _globals['_MSGREVOKENAMESPACEROLES']._serialized_start=2102 - _globals['_MSGREVOKENAMESPACEROLES']._serialized_end=2364 - _globals['_MSGREVOKENAMESPACEROLESRESPONSE']._serialized_start=2366 - _globals['_MSGREVOKENAMESPACEROLESRESPONSE']._serialized_end=2399 - _globals['_MSGCLAIMVOUCHER']._serialized_start=2401 - _globals['_MSGCLAIMVOUCHER']._serialized_end=2528 - _globals['_MSGCLAIMVOUCHERRESPONSE']._serialized_start=2530 - _globals['_MSGCLAIMVOUCHERRESPONSE']._serialized_end=2555 - _globals['_MSG']._serialized_start=2558 - _globals['_MSG']._serialized_end=3487 + _globals['_MSGUPDATENAMESPACE']._serialized_start=766 + _globals['_MSGUPDATENAMESPACE']._serialized_end=1418 + _globals['_MSGUPDATENAMESPACE_SETCONTRACTHOOK']._serialized_start=1324 + _globals['_MSGUPDATENAMESPACE_SETCONTRACTHOOK']._serialized_end=1370 + _globals['_MSGUPDATENAMESPACERESPONSE']._serialized_start=1420 + _globals['_MSGUPDATENAMESPACERESPONSE']._serialized_end=1448 + _globals['_MSGUPDATEACTORROLES']._serialized_start=1451 + _globals['_MSGUPDATEACTORROLES']._serialized_end=1768 + _globals['_MSGUPDATEACTORROLESRESPONSE']._serialized_start=1770 + _globals['_MSGUPDATEACTORROLESRESPONSE']._serialized_end=1799 + _globals['_MSGCLAIMVOUCHER']._serialized_start=1801 + _globals['_MSGCLAIMVOUCHER']._serialized_end=1928 + _globals['_MSGCLAIMVOUCHERRESPONSE']._serialized_start=1930 + _globals['_MSGCLAIMVOUCHERRESPONSE']._serialized_end=1955 + _globals['_MSG']._serialized_start=1958 + _globals['_MSG']._serialized_end=2601 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/permissions/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/permissions/v1beta1/tx_pb2_grpc.py index dbfc052d..3971a305 100644 --- a/pyinjective/proto/injective/permissions/v1beta1/tx_pb2_grpc.py +++ b/pyinjective/proto/injective/permissions/v1beta1/tx_pb2_grpc.py @@ -25,25 +25,15 @@ def __init__(self, channel): request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgCreateNamespace.SerializeToString, response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgCreateNamespaceResponse.FromString, _registered_method=True) - self.DeleteNamespace = channel.unary_unary( - '/injective.permissions.v1beta1.Msg/DeleteNamespace', - request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespace.SerializeToString, - response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespaceResponse.FromString, - _registered_method=True) self.UpdateNamespace = channel.unary_unary( '/injective.permissions.v1beta1.Msg/UpdateNamespace', request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespace.SerializeToString, response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceResponse.FromString, _registered_method=True) - self.UpdateNamespaceRoles = channel.unary_unary( - '/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles', - request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRoles.SerializeToString, - response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRolesResponse.FromString, - _registered_method=True) - self.RevokeNamespaceRoles = channel.unary_unary( - '/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles', - request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRoles.SerializeToString, - response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRolesResponse.FromString, + self.UpdateActorRoles = channel.unary_unary( + '/injective.permissions.v1beta1.Msg/UpdateActorRoles', + request_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRoles.SerializeToString, + response_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRolesResponse.FromString, _registered_method=True) self.ClaimVoucher = channel.unary_unary( '/injective.permissions.v1beta1.Msg/ClaimVoucher', @@ -68,25 +58,13 @@ def CreateNamespace(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def DeleteNamespace(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 UpdateNamespace(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 UpdateNamespaceRoles(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 RevokeNamespaceRoles(self, request, context): + def UpdateActorRoles(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -111,25 +89,15 @@ def add_MsgServicer_to_server(servicer, server): request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgCreateNamespace.FromString, response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgCreateNamespaceResponse.SerializeToString, ), - 'DeleteNamespace': grpc.unary_unary_rpc_method_handler( - servicer.DeleteNamespace, - request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespace.FromString, - response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespaceResponse.SerializeToString, - ), 'UpdateNamespace': grpc.unary_unary_rpc_method_handler( servicer.UpdateNamespace, request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespace.FromString, response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceResponse.SerializeToString, ), - 'UpdateNamespaceRoles': grpc.unary_unary_rpc_method_handler( - servicer.UpdateNamespaceRoles, - request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRoles.FromString, - response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRolesResponse.SerializeToString, - ), - 'RevokeNamespaceRoles': grpc.unary_unary_rpc_method_handler( - servicer.RevokeNamespaceRoles, - request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRoles.FromString, - response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRolesResponse.SerializeToString, + 'UpdateActorRoles': grpc.unary_unary_rpc_method_handler( + servicer.UpdateActorRoles, + request_deserializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRoles.FromString, + response_serializer=injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRolesResponse.SerializeToString, ), 'ClaimVoucher': grpc.unary_unary_rpc_method_handler( servicer.ClaimVoucher, @@ -202,33 +170,6 @@ def CreateNamespace(request, metadata, _registered_method=True) - @staticmethod - def DeleteNamespace(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.permissions.v1beta1.Msg/DeleteNamespace', - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespace.SerializeToString, - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgDeleteNamespaceResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - @staticmethod def UpdateNamespace(request, target, @@ -257,34 +198,7 @@ def UpdateNamespace(request, _registered_method=True) @staticmethod - def UpdateNamespaceRoles(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.permissions.v1beta1.Msg/UpdateNamespaceRoles', - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRoles.SerializeToString, - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateNamespaceRolesResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def RevokeNamespaceRoles(request, + def UpdateActorRoles(request, target, options=(), channel_credentials=None, @@ -297,9 +211,9 @@ def RevokeNamespaceRoles(request, return grpc.experimental.unary_unary( request, target, - '/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles', - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRoles.SerializeToString, - injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgRevokeNamespaceRolesResponse.FromString, + '/injective.permissions.v1beta1.Msg/UpdateActorRoles', + injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRoles.SerializeToString, + injective_dot_permissions_dot_v1beta1_dot_tx__pb2.MsgUpdateActorRolesResponse.FromString, options, channel_credentials, insecure, diff --git a/pyinjective/proto/injective/tokenfactory/v1beta1/authorityMetadata_pb2.py b/pyinjective/proto/injective/tokenfactory/v1beta1/authorityMetadata_pb2.py index 00205780..3e40fb08 100644 --- a/pyinjective/proto/injective/tokenfactory/v1beta1/authorityMetadata_pb2.py +++ b/pyinjective/proto/injective/tokenfactory/v1beta1/authorityMetadata_pb2.py @@ -16,7 +16,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'\n6injective/tokenfactory/v1beta1/authorityMetadata.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\"F\n\x16\x44\x65nomAuthorityMetadata\x12&\n\x05\x61\x64min\x18\x01 \x01(\tB\x10\xf2\xde\x1f\x0cyaml:\"admin\"R\x05\x61\x64min:\x04\xe8\xa0\x1f\x01\x42\xaa\x02\n\"com.injective.tokenfactory.v1beta1B\x16\x41uthorityMetadataProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6injective/tokenfactory/v1beta1/authorityMetadata.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\"\x93\x01\n\x16\x44\x65nomAuthorityMetadata\x12&\n\x05\x61\x64min\x18\x01 \x01(\tB\x10\xf2\xde\x1f\x0cyaml:\"admin\"R\x05\x61\x64min\x12K\n\x12\x61\x64min_burn_allowed\x18\x02 \x01(\x08\x42\x1d\xf2\xde\x1f\x19yaml:\"admin_burn_allowed\"R\x10\x61\x64minBurnAllowed:\x04\xe8\xa0\x1f\x01\x42\xaa\x02\n\"com.injective.tokenfactory.v1beta1B\x16\x41uthorityMetadataProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,8 +26,10 @@ _globals['DESCRIPTOR']._serialized_options = b'\n\"com.injective.tokenfactory.v1beta1B\026AuthorityMetadataProtoP\001ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\242\002\003ITX\252\002\036Injective.Tokenfactory.V1beta1\312\002\036Injective\\Tokenfactory\\V1beta1\342\002*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\352\002 Injective::Tokenfactory::V1beta1' _globals['_DENOMAUTHORITYMETADATA'].fields_by_name['admin']._loaded_options = None _globals['_DENOMAUTHORITYMETADATA'].fields_by_name['admin']._serialized_options = b'\362\336\037\014yaml:\"admin\"' + _globals['_DENOMAUTHORITYMETADATA'].fields_by_name['admin_burn_allowed']._loaded_options = None + _globals['_DENOMAUTHORITYMETADATA'].fields_by_name['admin_burn_allowed']._serialized_options = b'\362\336\037\031yaml:\"admin_burn_allowed\"' _globals['_DENOMAUTHORITYMETADATA']._loaded_options = None _globals['_DENOMAUTHORITYMETADATA']._serialized_options = b'\350\240\037\001' - _globals['_DENOMAUTHORITYMETADATA']._serialized_start=144 - _globals['_DENOMAUTHORITYMETADATA']._serialized_end=214 + _globals['_DENOMAUTHORITYMETADATA']._serialized_start=145 + _globals['_DENOMAUTHORITYMETADATA']._serialized_end=292 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/tokenfactory/v1beta1/events_pb2.py b/pyinjective/proto/injective/tokenfactory/v1beta1/events_pb2.py index 8ef8bf5c..b963d0e1 100644 --- a/pyinjective/proto/injective/tokenfactory/v1beta1/events_pb2.py +++ b/pyinjective/proto/injective/tokenfactory/v1beta1/events_pb2.py @@ -18,7 +18,7 @@ from pyinjective.proto.injective.tokenfactory.v1beta1 import authorityMetadata_pb2 as injective_dot_tokenfactory_dot_v1beta1_dot_authorityMetadata__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+injective/tokenfactory/v1beta1/events.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x1e\x63osmos/bank/v1beta1/bank.proto\x1a\x36injective/tokenfactory/v1beta1/authorityMetadata.proto\"D\n\x12\x45ventCreateTFDenom\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"x\n\x10\x45ventMintTFDenom\x12+\n\x11recipient_address\x18\x01 \x01(\tR\x10recipientAddress\x12\x37\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\"p\n\x0e\x45ventBurnDenom\x12%\n\x0e\x62urner_address\x18\x01 \x01(\tR\rburnerAddress\x12\x37\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\"V\n\x12\x45ventChangeTFAdmin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12*\n\x11new_admin_address\x18\x02 \x01(\tR\x0fnewAdminAddress\"p\n\x17\x45ventSetTFDenomMetadata\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12?\n\x08metadata\x18\x02 \x01(\x0b\x32\x1d.cosmos.bank.v1beta1.MetadataB\x04\xc8\xde\x1f\x00R\x08metadataB\x9f\x02\n\"com.injective.tokenfactory.v1beta1B\x0b\x45ventsProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+injective/tokenfactory/v1beta1/events.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x1e\x63osmos/bank/v1beta1/bank.proto\x1a\x36injective/tokenfactory/v1beta1/authorityMetadata.proto\"B\n\x10\x45ventCreateDenom\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"x\n\tEventMint\x12\x16\n\x06minter\x18\x01 \x01(\tR\x06minter\x12\x37\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\x12\x1a\n\x08receiver\x18\x03 \x01(\tR\x08receiver\"y\n\tEventBurn\x12\x16\n\x06\x62urner\x18\x01 \x01(\tR\x06\x62urner\x12\x37\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x04\xc8\xde\x1f\x00R\x06\x61mount\x12\x1b\n\tburn_from\x18\x03 \x01(\tR\x08\x62urnFrom\"T\n\x10\x45ventChangeAdmin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12*\n\x11new_admin_address\x18\x02 \x01(\tR\x0fnewAdminAddress\"n\n\x15\x45ventSetDenomMetadata\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12?\n\x08metadata\x18\x02 \x01(\x0b\x32\x1d.cosmos.bank.v1beta1.MetadataB\x04\xc8\xde\x1f\x00R\x08metadataB\x9f\x02\n\"com.injective.tokenfactory.v1beta1B\x0b\x45ventsProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -26,20 +26,20 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\"com.injective.tokenfactory.v1beta1B\013EventsProtoP\001ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\242\002\003ITX\252\002\036Injective.Tokenfactory.V1beta1\312\002\036Injective\\Tokenfactory\\V1beta1\342\002*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\352\002 Injective::Tokenfactory::V1beta1' - _globals['_EVENTMINTTFDENOM'].fields_by_name['amount']._loaded_options = None - _globals['_EVENTMINTTFDENOM'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' - _globals['_EVENTBURNDENOM'].fields_by_name['amount']._loaded_options = None - _globals['_EVENTBURNDENOM'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' - _globals['_EVENTSETTFDENOMMETADATA'].fields_by_name['metadata']._loaded_options = None - _globals['_EVENTSETTFDENOMMETADATA'].fields_by_name['metadata']._serialized_options = b'\310\336\037\000' - _globals['_EVENTCREATETFDENOM']._serialized_start=221 - _globals['_EVENTCREATETFDENOM']._serialized_end=289 - _globals['_EVENTMINTTFDENOM']._serialized_start=291 - _globals['_EVENTMINTTFDENOM']._serialized_end=411 - _globals['_EVENTBURNDENOM']._serialized_start=413 - _globals['_EVENTBURNDENOM']._serialized_end=525 - _globals['_EVENTCHANGETFADMIN']._serialized_start=527 - _globals['_EVENTCHANGETFADMIN']._serialized_end=613 - _globals['_EVENTSETTFDENOMMETADATA']._serialized_start=615 - _globals['_EVENTSETTFDENOMMETADATA']._serialized_end=727 + _globals['_EVENTMINT'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTMINT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTBURN'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTBURN'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSETDENOMMETADATA'].fields_by_name['metadata']._loaded_options = None + _globals['_EVENTSETDENOMMETADATA'].fields_by_name['metadata']._serialized_options = b'\310\336\037\000' + _globals['_EVENTCREATEDENOM']._serialized_start=221 + _globals['_EVENTCREATEDENOM']._serialized_end=287 + _globals['_EVENTMINT']._serialized_start=289 + _globals['_EVENTMINT']._serialized_end=409 + _globals['_EVENTBURN']._serialized_start=411 + _globals['_EVENTBURN']._serialized_end=532 + _globals['_EVENTCHANGEADMIN']._serialized_start=534 + _globals['_EVENTCHANGEADMIN']._serialized_end=618 + _globals['_EVENTSETDENOMMETADATA']._serialized_start=620 + _globals['_EVENTSETDENOMMETADATA']._serialized_end=730 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2.py b/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2.py index ebcba559..2d643d4f 100644 --- a/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2.py +++ b/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2.py @@ -21,7 +21,7 @@ from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'injective/tokenfactory/v1beta1/tx.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x1e\x63osmos/bank/v1beta1/bank.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a+injective/tokenfactory/v1beta1/params.proto\x1a\x11\x61mino/amino.proto\"\xa2\x02\n\x0eMsgCreateDenom\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12/\n\x08subdenom\x18\x02 \x01(\tB\x13\xf2\xde\x1f\x0fyaml:\"subdenom\"R\x08subdenom\x12#\n\x04name\x18\x03 \x01(\tB\x0f\xf2\xde\x1f\x0byaml:\"name\"R\x04name\x12)\n\x06symbol\x18\x04 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"symbol\"R\x06symbol\x12/\n\x08\x64\x65\x63imals\x18\x05 \x01(\rB\x13\xf2\xde\x1f\x0fyaml:\"decimals\"R\x08\x64\x65\x63imals:3\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#injective/tokenfactory/create-denom\"\\\n\x16MsgCreateDenomResponse\x12\x42\n\x0fnew_token_denom\x18\x01 \x01(\tB\x1a\xf2\xde\x1f\x16yaml:\"new_token_denom\"R\rnewTokenDenom\"\xab\x01\n\x07MsgMint\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12H\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x15\xc8\xde\x1f\x00\xf2\xde\x1f\ryaml:\"amount\"R\x06\x61mount:+\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1binjective/tokenfactory/mint\"\x11\n\x0fMsgMintResponse\"\xab\x01\n\x07MsgBurn\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12H\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x15\xc8\xde\x1f\x00\xf2\xde\x1f\ryaml:\"amount\"R\x06\x61mount:+\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1binjective/tokenfactory/burn\"\x11\n\x0fMsgBurnResponse\"\xcb\x01\n\x0eMsgChangeAdmin\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12&\n\x05\x64\x65nom\x18\x02 \x01(\tB\x10\xf2\xde\x1f\x0cyaml:\"denom\"R\x05\x64\x65nom\x12\x31\n\tnew_admin\x18\x03 \x01(\tB\x14\xf2\xde\x1f\x10yaml:\"new_admin\"R\x08newAdmin:3\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#injective/tokenfactory/change-admin\"\x18\n\x16MsgChangeAdminResponse\"\xcf\x01\n\x13MsgSetDenomMetadata\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12R\n\x08metadata\x18\x02 \x01(\x0b\x32\x1d.cosmos.bank.v1beta1.MetadataB\x17\xc8\xde\x1f\x00\xf2\xde\x1f\x0fyaml:\"metadata\"R\x08metadata:9\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*)injective/tokenfactory/set-denom-metadata\"\x1d\n\x1bMsgSetDenomMetadataResponse\"\xc8\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x44\n\x06params\x18\x02 \x01(\x0b\x32&.injective.tokenfactory.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:7\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*$injective/tokenfactory/update-params\"\x19\n\x17MsgUpdateParamsResponse2\xbf\x05\n\x03Msg\x12u\n\x0b\x43reateDenom\x12..injective.tokenfactory.v1beta1.MsgCreateDenom\x1a\x36.injective.tokenfactory.v1beta1.MsgCreateDenomResponse\x12`\n\x04Mint\x12\'.injective.tokenfactory.v1beta1.MsgMint\x1a/.injective.tokenfactory.v1beta1.MsgMintResponse\x12`\n\x04\x42urn\x12\'.injective.tokenfactory.v1beta1.MsgBurn\x1a/.injective.tokenfactory.v1beta1.MsgBurnResponse\x12u\n\x0b\x43hangeAdmin\x12..injective.tokenfactory.v1beta1.MsgChangeAdmin\x1a\x36.injective.tokenfactory.v1beta1.MsgChangeAdminResponse\x12\x84\x01\n\x10SetDenomMetadata\x12\x33.injective.tokenfactory.v1beta1.MsgSetDenomMetadata\x1a;.injective.tokenfactory.v1beta1.MsgSetDenomMetadataResponse\x12x\n\x0cUpdateParams\x12/.injective.tokenfactory.v1beta1.MsgUpdateParams\x1a\x37.injective.tokenfactory.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x9b\x02\n\"com.injective.tokenfactory.v1beta1B\x07TxProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'injective/tokenfactory/v1beta1/tx.proto\x12\x1einjective.tokenfactory.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x1e\x63osmos/bank/v1beta1/bank.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a+injective/tokenfactory/v1beta1/params.proto\x1a\x11\x61mino/amino.proto\"\xe9\x02\n\x0eMsgCreateDenom\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12/\n\x08subdenom\x18\x02 \x01(\tB\x13\xf2\xde\x1f\x0fyaml:\"subdenom\"R\x08subdenom\x12#\n\x04name\x18\x03 \x01(\tB\x0f\xf2\xde\x1f\x0byaml:\"name\"R\x04name\x12)\n\x06symbol\x18\x04 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"symbol\"R\x06symbol\x12/\n\x08\x64\x65\x63imals\x18\x05 \x01(\rB\x13\xf2\xde\x1f\x0fyaml:\"decimals\"R\x08\x64\x65\x63imals\x12\x45\n\x10\x61llow_admin_burn\x18\x06 \x01(\x08\x42\x1b\xf2\xde\x1f\x17yaml:\"allow_admin_burn\"R\x0e\x61llowAdminBurn:3\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#injective/tokenfactory/create-denom\"\\\n\x16MsgCreateDenomResponse\x12\x42\n\x0fnew_token_denom\x18\x01 \x01(\tB\x1a\xf2\xde\x1f\x16yaml:\"new_token_denom\"R\rnewTokenDenom\"\xdc\x01\n\x07MsgMint\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12H\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x15\xc8\xde\x1f\x00\xf2\xde\x1f\ryaml:\"amount\"R\x06\x61mount\x12/\n\x08receiver\x18\x03 \x01(\tB\x13\xf2\xde\x1f\x0fyaml:\"receiver\"R\x08receiver:+\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1binjective/tokenfactory/mint\"\x11\n\x0fMsgMintResponse\"\xf8\x01\n\x07MsgBurn\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12H\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB\x15\xc8\xde\x1f\x00\xf2\xde\x1f\ryaml:\"amount\"R\x06\x61mount\x12K\n\x0f\x62urnFromAddress\x18\x03 \x01(\tB!\xf2\xde\x1f\x18yaml:\"burn_from_address\"\xa8\xe7\xb0*\x01R\x0f\x62urnFromAddress:+\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x1binjective/tokenfactory/burn\"\x11\n\x0fMsgBurnResponse\"\xcb\x01\n\x0eMsgChangeAdmin\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12&\n\x05\x64\x65nom\x18\x02 \x01(\tB\x10\xf2\xde\x1f\x0cyaml:\"denom\"R\x05\x64\x65nom\x12\x31\n\tnew_admin\x18\x03 \x01(\tB\x14\xf2\xde\x1f\x10yaml:\"new_admin\"R\x08newAdmin:3\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*#injective/tokenfactory/change-admin\"\x18\n\x16MsgChangeAdminResponse\"\xbe\x03\n\x13MsgSetDenomMetadata\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12R\n\x08metadata\x18\x02 \x01(\x0b\x32\x1d.cosmos.bank.v1beta1.MetadataB\x17\xc8\xde\x1f\x00\xf2\xde\x1f\x0fyaml:\"metadata\"R\x08metadata\x12\x95\x01\n\x13\x61\x64min_burn_disabled\x18\x03 \x01(\x0b\x32\x45.injective.tokenfactory.v1beta1.MsgSetDenomMetadata.AdminBurnDisabledB\x1e\xf2\xde\x1f\x1ayaml:\"admin_burn_disabled\"R\x11\x61\x64minBurnDisabled\x1aU\n\x11\x41\x64minBurnDisabled\x12@\n\x0eshould_disable\x18\x01 \x01(\x08\x42\x19\xf2\xde\x1f\x15yaml:\"should_disable\"R\rshouldDisable:9\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*)injective/tokenfactory/set-denom-metadata\"\x1d\n\x1bMsgSetDenomMetadataResponse\"\xc8\x01\n\x0fMsgUpdateParams\x12\x36\n\tauthority\x18\x01 \x01(\tB\x18\xd2\xb4-\x14\x63osmos.AddressStringR\tauthority\x12\x44\n\x06params\x18\x02 \x01(\x0b\x32&.injective.tokenfactory.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:7\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*$injective/tokenfactory/update-params\"\x19\n\x17MsgUpdateParamsResponse2\xbf\x05\n\x03Msg\x12u\n\x0b\x43reateDenom\x12..injective.tokenfactory.v1beta1.MsgCreateDenom\x1a\x36.injective.tokenfactory.v1beta1.MsgCreateDenomResponse\x12`\n\x04Mint\x12\'.injective.tokenfactory.v1beta1.MsgMint\x1a/.injective.tokenfactory.v1beta1.MsgMintResponse\x12`\n\x04\x42urn\x12\'.injective.tokenfactory.v1beta1.MsgBurn\x1a/.injective.tokenfactory.v1beta1.MsgBurnResponse\x12u\n\x0b\x43hangeAdmin\x12..injective.tokenfactory.v1beta1.MsgChangeAdmin\x1a\x36.injective.tokenfactory.v1beta1.MsgChangeAdminResponse\x12\x84\x01\n\x10SetDenomMetadata\x12\x33.injective.tokenfactory.v1beta1.MsgSetDenomMetadata\x1a;.injective.tokenfactory.v1beta1.MsgSetDenomMetadataResponse\x12x\n\x0cUpdateParams\x12/.injective.tokenfactory.v1beta1.MsgUpdateParams\x1a\x37.injective.tokenfactory.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\x9b\x02\n\"com.injective.tokenfactory.v1beta1B\x07TxProtoP\x01ZRgithub.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types\xa2\x02\x03ITX\xaa\x02\x1eInjective.Tokenfactory.V1beta1\xca\x02\x1eInjective\\Tokenfactory\\V1beta1\xe2\x02*Injective\\Tokenfactory\\V1beta1\\GPBMetadata\xea\x02 Injective::Tokenfactory::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,6 +39,8 @@ _globals['_MSGCREATEDENOM'].fields_by_name['symbol']._serialized_options = b'\362\336\037\ryaml:\"symbol\"' _globals['_MSGCREATEDENOM'].fields_by_name['decimals']._loaded_options = None _globals['_MSGCREATEDENOM'].fields_by_name['decimals']._serialized_options = b'\362\336\037\017yaml:\"decimals\"' + _globals['_MSGCREATEDENOM'].fields_by_name['allow_admin_burn']._loaded_options = None + _globals['_MSGCREATEDENOM'].fields_by_name['allow_admin_burn']._serialized_options = b'\362\336\037\027yaml:\"allow_admin_burn\"' _globals['_MSGCREATEDENOM']._loaded_options = None _globals['_MSGCREATEDENOM']._serialized_options = b'\202\347\260*\006sender\212\347\260*#injective/tokenfactory/create-denom' _globals['_MSGCREATEDENOMRESPONSE'].fields_by_name['new_token_denom']._loaded_options = None @@ -47,12 +49,16 @@ _globals['_MSGMINT'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' _globals['_MSGMINT'].fields_by_name['amount']._loaded_options = None _globals['_MSGMINT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\362\336\037\ryaml:\"amount\"' + _globals['_MSGMINT'].fields_by_name['receiver']._loaded_options = None + _globals['_MSGMINT'].fields_by_name['receiver']._serialized_options = b'\362\336\037\017yaml:\"receiver\"' _globals['_MSGMINT']._loaded_options = None _globals['_MSGMINT']._serialized_options = b'\202\347\260*\006sender\212\347\260*\033injective/tokenfactory/mint' _globals['_MSGBURN'].fields_by_name['sender']._loaded_options = None _globals['_MSGBURN'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' _globals['_MSGBURN'].fields_by_name['amount']._loaded_options = None _globals['_MSGBURN'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\362\336\037\ryaml:\"amount\"' + _globals['_MSGBURN'].fields_by_name['burnFromAddress']._loaded_options = None + _globals['_MSGBURN'].fields_by_name['burnFromAddress']._serialized_options = b'\362\336\037\030yaml:\"burn_from_address\"\250\347\260*\001' _globals['_MSGBURN']._loaded_options = None _globals['_MSGBURN']._serialized_options = b'\202\347\260*\006sender\212\347\260*\033injective/tokenfactory/burn' _globals['_MSGCHANGEADMIN'].fields_by_name['sender']._loaded_options = None @@ -63,10 +69,14 @@ _globals['_MSGCHANGEADMIN'].fields_by_name['new_admin']._serialized_options = b'\362\336\037\020yaml:\"new_admin\"' _globals['_MSGCHANGEADMIN']._loaded_options = None _globals['_MSGCHANGEADMIN']._serialized_options = b'\202\347\260*\006sender\212\347\260*#injective/tokenfactory/change-admin' + _globals['_MSGSETDENOMMETADATA_ADMINBURNDISABLED'].fields_by_name['should_disable']._loaded_options = None + _globals['_MSGSETDENOMMETADATA_ADMINBURNDISABLED'].fields_by_name['should_disable']._serialized_options = b'\362\336\037\025yaml:\"should_disable\"' _globals['_MSGSETDENOMMETADATA'].fields_by_name['sender']._loaded_options = None _globals['_MSGSETDENOMMETADATA'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' _globals['_MSGSETDENOMMETADATA'].fields_by_name['metadata']._loaded_options = None _globals['_MSGSETDENOMMETADATA'].fields_by_name['metadata']._serialized_options = b'\310\336\037\000\362\336\037\017yaml:\"metadata\"' + _globals['_MSGSETDENOMMETADATA'].fields_by_name['admin_burn_disabled']._loaded_options = None + _globals['_MSGSETDENOMMETADATA'].fields_by_name['admin_burn_disabled']._serialized_options = b'\362\336\037\032yaml:\"admin_burn_disabled\"' _globals['_MSGSETDENOMMETADATA']._loaded_options = None _globals['_MSGSETDENOMMETADATA']._serialized_options = b'\202\347\260*\006sender\212\347\260*)injective/tokenfactory/set-denom-metadata' _globals['_MSGUPDATEPARAMS'].fields_by_name['authority']._loaded_options = None @@ -78,29 +88,31 @@ _globals['_MSG']._loaded_options = None _globals['_MSG']._serialized_options = b'\200\347\260*\001' _globals['_MSGCREATEDENOM']._serialized_start=278 - _globals['_MSGCREATEDENOM']._serialized_end=568 - _globals['_MSGCREATEDENOMRESPONSE']._serialized_start=570 - _globals['_MSGCREATEDENOMRESPONSE']._serialized_end=662 - _globals['_MSGMINT']._serialized_start=665 - _globals['_MSGMINT']._serialized_end=836 - _globals['_MSGMINTRESPONSE']._serialized_start=838 - _globals['_MSGMINTRESPONSE']._serialized_end=855 - _globals['_MSGBURN']._serialized_start=858 - _globals['_MSGBURN']._serialized_end=1029 - _globals['_MSGBURNRESPONSE']._serialized_start=1031 - _globals['_MSGBURNRESPONSE']._serialized_end=1048 - _globals['_MSGCHANGEADMIN']._serialized_start=1051 - _globals['_MSGCHANGEADMIN']._serialized_end=1254 - _globals['_MSGCHANGEADMINRESPONSE']._serialized_start=1256 - _globals['_MSGCHANGEADMINRESPONSE']._serialized_end=1280 - _globals['_MSGSETDENOMMETADATA']._serialized_start=1283 - _globals['_MSGSETDENOMMETADATA']._serialized_end=1490 - _globals['_MSGSETDENOMMETADATARESPONSE']._serialized_start=1492 - _globals['_MSGSETDENOMMETADATARESPONSE']._serialized_end=1521 - _globals['_MSGUPDATEPARAMS']._serialized_start=1524 - _globals['_MSGUPDATEPARAMS']._serialized_end=1724 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1726 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1751 - _globals['_MSG']._serialized_start=1754 - _globals['_MSG']._serialized_end=2457 + _globals['_MSGCREATEDENOM']._serialized_end=639 + _globals['_MSGCREATEDENOMRESPONSE']._serialized_start=641 + _globals['_MSGCREATEDENOMRESPONSE']._serialized_end=733 + _globals['_MSGMINT']._serialized_start=736 + _globals['_MSGMINT']._serialized_end=956 + _globals['_MSGMINTRESPONSE']._serialized_start=958 + _globals['_MSGMINTRESPONSE']._serialized_end=975 + _globals['_MSGBURN']._serialized_start=978 + _globals['_MSGBURN']._serialized_end=1226 + _globals['_MSGBURNRESPONSE']._serialized_start=1228 + _globals['_MSGBURNRESPONSE']._serialized_end=1245 + _globals['_MSGCHANGEADMIN']._serialized_start=1248 + _globals['_MSGCHANGEADMIN']._serialized_end=1451 + _globals['_MSGCHANGEADMINRESPONSE']._serialized_start=1453 + _globals['_MSGCHANGEADMINRESPONSE']._serialized_end=1477 + _globals['_MSGSETDENOMMETADATA']._serialized_start=1480 + _globals['_MSGSETDENOMMETADATA']._serialized_end=1926 + _globals['_MSGSETDENOMMETADATA_ADMINBURNDISABLED']._serialized_start=1782 + _globals['_MSGSETDENOMMETADATA_ADMINBURNDISABLED']._serialized_end=1867 + _globals['_MSGSETDENOMMETADATARESPONSE']._serialized_start=1928 + _globals['_MSGSETDENOMMETADATARESPONSE']._serialized_end=1957 + _globals['_MSGUPDATEPARAMS']._serialized_start=1960 + _globals['_MSGUPDATEPARAMS']._serialized_end=2160 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=2162 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=2187 + _globals['_MSG']._serialized_start=2190 + _globals['_MSG']._serialized_end=2893 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2_grpc.py index f96ee560..e7f49962 100644 --- a/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2_grpc.py +++ b/pyinjective/proto/injective/tokenfactory/v1beta1/tx_pb2_grpc.py @@ -6,7 +6,7 @@ class MsgStub(object): - """Msg defines the tokefactory module's gRPC message service. + """Msg defines the tokenfactory module's gRPC message service. """ def __init__(self, channel): @@ -48,7 +48,7 @@ def __init__(self, channel): class MsgServicer(object): - """Msg defines the tokefactory module's gRPC message service. + """Msg defines the tokenfactory module's gRPC message service. """ def CreateDenom(self, request, context): @@ -129,7 +129,7 @@ def add_MsgServicer_to_server(servicer, server): # This class is part of an EXPERIMENTAL API. class Msg(object): - """Msg defines the tokefactory module's gRPC message service. + """Msg defines the tokenfactory module's gRPC message service. """ @staticmethod diff --git a/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py new file mode 100644 index 00000000..843cb633 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.injective.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&injective/txfees/v1beta1/genesis.proto\x12\x18injective.txfees.v1beta1\x1a%injective/txfees/v1beta1/txfees.proto\x1a\x14gogoproto/gogo.proto\"N\n\x0cGenesisState\x12>\n\x06params\x18\x01 \x01(\x0b\x32 .injective.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06paramsB\xfc\x01\n\x1c\x63om.injective.txfees.v1beta1B\x0cGenesisProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.genesis_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\014GenesisProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _globals['_GENESISSTATE'].fields_by_name['params']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE']._serialized_start=129 + _globals['_GENESISSTATE']._serialized_end=207 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/genesis_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/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/txfees/v1beta1/query_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/query_pb2.py new file mode 100644 index 00000000..90e05b1f --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/query_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/txfees/v1beta1/query.proto\x12\x18injective.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a%injective/txfees/v1beta1/txfees.proto\"_\n\nEipBaseFee\x12Q\n\x08\x62\x61se_fee\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x0fyaml:\"base_fee\"R\x07\x62\x61seFee\"\x14\n\x12QueryParamsRequest\"U\n\x13QueryParamsResponse\x12>\n\x06params\x18\x01 \x01(\x0b\x32 .injective.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x18\n\x16QueryEipBaseFeeRequest\"Z\n\x17QueryEipBaseFeeResponse\x12?\n\x08\x62\x61se_fee\x18\x01 \x01(\x0b\x32$.injective.txfees.v1beta1.EipBaseFeeR\x07\x62\x61seFee2\xc4\x02\n\x05Query\x12\x8f\x01\n\x06Params\x12,.injective.txfees.v1beta1.QueryParamsRequest\x1a-.injective.txfees.v1beta1.QueryParamsResponse\"(\x82\xd3\xe4\x93\x02\"\x12 /injective/txfees/v1beta1/params\x12\xa8\x01\n\rGetEipBaseFee\x12\x30.injective.txfees.v1beta1.QueryEipBaseFeeRequest\x1a\x31.injective.txfees.v1beta1.QueryEipBaseFeeResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/txfees/v1beta1/cur_eip_base_feeB\xfa\x01\n\x1c\x63om.injective.txfees.v1beta1B\nQueryProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\nQueryProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _globals['_EIPBASEFEE'].fields_by_name['base_fee']._loaded_options = None + _globals['_EIPBASEFEE'].fields_by_name['base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\017yaml:\"base_fee\"' + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_QUERY'].methods_by_name['Params']._loaded_options = None + _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002\"\022 /injective/txfees/v1beta1/params' + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._loaded_options = None + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._serialized_options = b'\202\323\344\223\002,\022*/injective/txfees/v1beta1/cur_eip_base_fee' + _globals['_EIPBASEFEE']._serialized_start=157 + _globals['_EIPBASEFEE']._serialized_end=252 + _globals['_QUERYPARAMSREQUEST']._serialized_start=254 + _globals['_QUERYPARAMSREQUEST']._serialized_end=274 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=276 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=361 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_start=363 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_end=387 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_start=389 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_end=479 + _globals['_QUERY']._serialized_start=482 + _globals['_QUERY']._serialized_end=806 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py new file mode 100644 index 00000000..6c7a0eeb --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/query_pb2_grpc.py @@ -0,0 +1,123 @@ +# 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.txfees.v1beta1 import query_pb2 as injective_dot_txfees_dot_v1beta1_dot_query__pb2 + + +class QueryStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Params = channel.unary_unary( + '/injective.txfees.v1beta1.Query/Params', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + _registered_method=True) + self.GetEipBaseFee = channel.unary_unary( + '/injective.txfees.v1beta1.Query/GetEipBaseFee', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Missing associated documentation comment in .proto file.""" + + def Params(self, request, context): + """Params defines a gRPC query method that returns the tokenfactory module's + parameters. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetEipBaseFee(self, request, context): + """Returns the current fee market EIP fee. + """ + 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 = { + 'Params': grpc.unary_unary_rpc_method_handler( + servicer.Params, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.SerializeToString, + ), + 'GetEipBaseFee': grpc.unary_unary_rpc_method_handler( + servicer.GetEipBaseFee, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.txfees.v1beta1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.txfees.v1beta1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def Params(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.txfees.v1beta1.Query/Params', + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetEipBaseFee(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.txfees.v1beta1.Query/GetEipBaseFee', + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py new file mode 100644 index 00000000..4a6c5d99 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/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.gogoproto import gogo_pb2 as gogoproto_dot_gogo__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.injective.txfees.v1beta1 import txfees_pb2 as injective_dot_txfees_dot_v1beta1_dot_txfees__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!injective/txfees/v1beta1/tx.proto\x12\x18injective.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x17\x63osmos/msg/v1/msg.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a%injective/txfees/v1beta1/txfees.proto\x1a\x11\x61mino/amino.proto\"\xb4\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.txfees.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:)\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x16txfees/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse2z\n\x03Msg\x12l\n\x0cUpdateParams\x12).injective.txfees.v1beta1.MsgUpdateParams\x1a\x31.injective.txfees.v1beta1.MsgUpdateParamsResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xf7\x01\n\x1c\x63om.injective.txfees.v1beta1B\x07TxProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.tx_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\007TxProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1' + _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*\026txfees/MsgUpdateParams' + _globals['_MSG']._loaded_options = None + _globals['_MSG']._serialized_options = b'\200\347\260*\001' + _globals['_MSGUPDATEPARAMS']._serialized_start=196 + _globals['_MSGUPDATEPARAMS']._serialized_end=376 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=378 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=403 + _globals['_MSG']._serialized_start=405 + _globals['_MSG']._serialized_end=527 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/tx_pb2_grpc.py new file mode 100644 index 00000000..b121e219 --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/tx_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.txfees.v1beta1 import tx_pb2 as injective_dot_txfees_dot_v1beta1_dot_tx__pb2 + + +class MsgStub(object): + """Msg defines the auction Msg service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UpdateParams = channel.unary_unary( + '/injective.txfees.v1beta1.Msg/UpdateParams', + request_serializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + response_deserializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + _registered_method=True) + + +class MsgServicer(object): + """Msg defines the auction Msg service. + """ + + 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 add_MsgServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UpdateParams': grpc.unary_unary_rpc_method_handler( + servicer.UpdateParams, + request_deserializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.FromString, + response_serializer=injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.txfees.v1beta1.Msg', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.txfees.v1beta1.Msg', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Msg(object): + """Msg defines the auction Msg service. + """ + + @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.txfees.v1beta1.Msg/UpdateParams', + injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + injective_dot_txfees_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py new file mode 100644 index 00000000..d337eafd --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/txfees/v1beta1/txfees.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.amino import amino_pb2 as amino_dot_amino__pb2 +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 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%injective/txfees/v1beta1/txfees.proto\x12\x18injective.txfees.v1beta1\x1a\x11\x61mino/amino.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\"\x99\x0c\n\x06Params\x12R\n\x15max_gas_wanted_per_tx\x18\x01 \x01(\x04\x42 \xf2\xde\x1f\x1cyaml:\"max_gas_wanted_per_tx\"R\x11maxGasWantedPerTx\x12S\n\x15high_gas_tx_threshold\x18\x02 \x01(\x04\x42 \xf2\xde\x1f\x1cyaml:\"high_gas_tx_threshold\"R\x12highGasTxThreshold\x12\x8b\x01\n\x1dmin_gas_price_for_high_gas_tx\x18\x03 \x01(\tBK\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f$yaml:\"min_gas_price_for_high_gas_tx\"R\x17minGasPriceForHighGasTx\x12O\n\x13mempool1559_enabled\x18\x04 \x01(\x08\x42\x1e\xf2\xde\x1f\x1ayaml:\"mempool1559_enabled\"R\x12mempool1559Enabled\x12_\n\rmin_gas_price\x18\x05 \x01(\tB;\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x14yaml:\"min_gas_price\"R\x0bminGasPrice\x12\x88\x01\n\x1b\x64\x65\x66\x61ult_base_fee_multiplier\x18\x06 \x01(\tBI\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\"yaml:\"default_base_fee_multiplier\"R\x18\x64\x65\x66\x61ultBaseFeeMultiplier\x12|\n\x17max_base_fee_multiplier\x18\x07 \x01(\tBE\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1eyaml:\"max_base_fee_multiplier\"R\x14maxBaseFeeMultiplier\x12@\n\x0ereset_interval\x18\x08 \x01(\x03\x42\x19\xf2\xde\x1f\x15yaml:\"reset_interval\"R\rresetInterval\x12v\n\x15max_block_change_rate\x18\t \x01(\tBC\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1cyaml:\"max_block_change_rate\"R\x12maxBlockChangeRate\x12\x93\x01\n\x1ftarget_block_space_percent_rate\x18\n \x01(\tBM\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f&yaml:\"target_block_space_percent_rate\"R\x1btargetBlockSpacePercentRate\x12~\n\x18recheck_fee_low_base_fee\x18\x0b \x01(\tBF\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x1fyaml:\"recheck_fee_low_base_fee\"R\x14recheckFeeLowBaseFee\x12\x81\x01\n\x19recheck_fee_high_base_fee\x18\x0c \x01(\tBG\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f yaml:\"recheck_fee_high_base_fee\"R\x15recheckFeeHighBaseFee\x12\xb0\x01\n)recheck_fee_base_fee_threshold_multiplier\x18\r \x01(\tBW\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x30yaml:\"recheck_fee_base_fee_threshold_multiplier\"R$recheckFeeBaseFeeThresholdMultiplier:\x16\xe8\xa0\x1f\x01\x8a\xe7\xb0*\rtxfees/ParamsB\xff\x01\n\x1c\x63om.injective.txfees.v1beta1B\x0bTxfeesProtoP\x01ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\xa2\x02\x03ITX\xaa\x02\x18Injective.Txfees.V1beta1\xca\x02\x18Injective\\Txfees\\V1beta1\xe2\x02$Injective\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x1aInjective::Txfees::V1beta1\xc0\xe3\x1e\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.txfees.v1beta1.txfees_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\034com.injective.txfees.v1beta1B\013TxfeesProtoP\001ZLgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types\242\002\003ITX\252\002\030Injective.Txfees.V1beta1\312\002\030Injective\\Txfees\\V1beta1\342\002$Injective\\Txfees\\V1beta1\\GPBMetadata\352\002\032Injective::Txfees::V1beta1\300\343\036\001' + _globals['_PARAMS'].fields_by_name['max_gas_wanted_per_tx']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_gas_wanted_per_tx']._serialized_options = b'\362\336\037\034yaml:\"max_gas_wanted_per_tx\"' + _globals['_PARAMS'].fields_by_name['high_gas_tx_threshold']._loaded_options = None + _globals['_PARAMS'].fields_by_name['high_gas_tx_threshold']._serialized_options = b'\362\336\037\034yaml:\"high_gas_tx_threshold\"' + _globals['_PARAMS'].fields_by_name['min_gas_price_for_high_gas_tx']._loaded_options = None + _globals['_PARAMS'].fields_by_name['min_gas_price_for_high_gas_tx']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037$yaml:\"min_gas_price_for_high_gas_tx\"' + _globals['_PARAMS'].fields_by_name['mempool1559_enabled']._loaded_options = None + _globals['_PARAMS'].fields_by_name['mempool1559_enabled']._serialized_options = b'\362\336\037\032yaml:\"mempool1559_enabled\"' + _globals['_PARAMS'].fields_by_name['min_gas_price']._loaded_options = None + _globals['_PARAMS'].fields_by_name['min_gas_price']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\024yaml:\"min_gas_price\"' + _globals['_PARAMS'].fields_by_name['default_base_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['default_base_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\"yaml:\"default_base_fee_multiplier\"' + _globals['_PARAMS'].fields_by_name['max_base_fee_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_base_fee_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\036yaml:\"max_base_fee_multiplier\"' + _globals['_PARAMS'].fields_by_name['reset_interval']._loaded_options = None + _globals['_PARAMS'].fields_by_name['reset_interval']._serialized_options = b'\362\336\037\025yaml:\"reset_interval\"' + _globals['_PARAMS'].fields_by_name['max_block_change_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['max_block_change_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\034yaml:\"max_block_change_rate\"' + _globals['_PARAMS'].fields_by_name['target_block_space_percent_rate']._loaded_options = None + _globals['_PARAMS'].fields_by_name['target_block_space_percent_rate']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037&yaml:\"target_block_space_percent_rate\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_low_base_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_low_base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\037yaml:\"recheck_fee_low_base_fee\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_high_base_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_high_base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037 yaml:\"recheck_fee_high_base_fee\"' + _globals['_PARAMS'].fields_by_name['recheck_fee_base_fee_threshold_multiplier']._loaded_options = None + _globals['_PARAMS'].fields_by_name['recheck_fee_base_fee_threshold_multiplier']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\0370yaml:\"recheck_fee_base_fee_threshold_multiplier\"' + _globals['_PARAMS']._loaded_options = None + _globals['_PARAMS']._serialized_options = b'\350\240\037\001\212\347\260*\rtxfees/Params' + _globals['_PARAMS']._serialized_start=139 + _globals['_PARAMS']._serialized_end=1700 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py b/pyinjective/proto/injective/txfees/v1beta1/txfees_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/txfees/v1beta1/txfees_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/types/v1beta1/indexer_pb2.py b/pyinjective/proto/injective/types/v1beta1/indexer_pb2.py new file mode 100644 index 00000000..ae517930 --- /dev/null +++ b/pyinjective/proto/injective/types/v1beta1/indexer_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/types/v1beta1/indexer.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/types/v1beta1/indexer.proto\x12\x17injective.types.v1beta1\x1a\x14gogoproto/gogo.proto\"\xe5\x01\n\x08TxResult\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x19\n\x08tx_index\x18\x02 \x01(\rR\x07txIndex\x12\x1b\n\tmsg_index\x18\x03 \x01(\rR\x08msgIndex\x12 \n\x0c\x65th_tx_index\x18\x04 \x01(\x05R\nethTxIndex\x12\x16\n\x06\x66\x61iled\x18\x05 \x01(\x08R\x06\x66\x61iled\x12\x19\n\x08gas_used\x18\x06 \x01(\x04R\x07gasUsed\x12.\n\x13\x63umulative_gas_used\x18\x07 \x01(\x04R\x11\x63umulativeGasUsed:\x04\x88\xa0\x1f\x00\x42\xe8\x01\n\x1b\x63om.injective.types.v1beta1B\x0cIndexerProtoP\x01Z=github.com/InjectiveLabs/injective-core/injective-chain/types\xa2\x02\x03ITX\xaa\x02\x17Injective.Types.V1beta1\xca\x02\x17Injective\\Types\\V1beta1\xe2\x02#Injective\\Types\\V1beta1\\GPBMetadata\xea\x02\x19Injective::Types::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.types.v1beta1.indexer_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.types.v1beta1B\014IndexerProtoP\001Z=github.com/InjectiveLabs/injective-core/injective-chain/types\242\002\003ITX\252\002\027Injective.Types.V1beta1\312\002\027Injective\\Types\\V1beta1\342\002#Injective\\Types\\V1beta1\\GPBMetadata\352\002\031Injective::Types::V1beta1' + _globals['_TXRESULT']._loaded_options = None + _globals['_TXRESULT']._serialized_options = b'\210\240\037\000' + _globals['_TXRESULT']._serialized_start=89 + _globals['_TXRESULT']._serialized_end=318 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/types/v1beta1/indexer_pb2_grpc.py b/pyinjective/proto/injective/types/v1beta1/indexer_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/types/v1beta1/indexer_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/wasmx/v1/authz_pb2.py b/pyinjective/proto/injective/wasmx/v1/authz_pb2.py new file mode 100644 index 00000000..75c600ac --- /dev/null +++ b/pyinjective/proto/injective/wasmx/v1/authz_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/wasmx/v1/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.cosmwasm.wasm.v1 import authz_pb2 as cosmwasm_dot_wasm_dot_v1_dot_authz__pb2 +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 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1einjective/wasmx/v1/authz.proto\x12\x12injective.wasmx.v1\x1a\x1c\x63osmwasm/wasm/v1/authz.proto\x1a\x19\x63osmos_proto/cosmos.proto\x1a\x11\x61mino/amino.proto\x1a\x14gogoproto/gogo.proto\"\xc1\x01\n$ContractExecutionCompatAuthorization\x12\x42\n\x06grants\x18\x01 \x03(\x0b\x32\x1f.cosmwasm.wasm.v1.ContractGrantB\t\xc8\xde\x1f\x00\xa8\xe7\xb0*\x01R\x06grants:U\xca\xb4-\"cosmos.authz.v1beta1.Authorization\x8a\xe7\xb0**wasmx/ContractExecutionCompatAuthorizationB\xdb\x01\n\x16\x63om.injective.wasmx.v1B\nAuthzProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types\xa2\x02\x03IWX\xaa\x02\x12Injective.Wasmx.V1\xca\x02\x12Injective\\Wasmx\\V1\xe2\x02\x1eInjective\\Wasmx\\V1\\GPBMetadata\xea\x02\x14Injective::Wasmx::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.wasmx.v1.authz_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.injective.wasmx.v1B\nAuthzProtoP\001ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types\242\002\003IWX\252\002\022Injective.Wasmx.V1\312\002\022Injective\\Wasmx\\V1\342\002\036Injective\\Wasmx\\V1\\GPBMetadata\352\002\024Injective::Wasmx::V1' + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION'].fields_by_name['grants']._loaded_options = None + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION'].fields_by_name['grants']._serialized_options = b'\310\336\037\000\250\347\260*\001' + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION']._loaded_options = None + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION']._serialized_options = b'\312\264-\"cosmos.authz.v1beta1.Authorization\212\347\260**wasmx/ContractExecutionCompatAuthorization' + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION']._serialized_start=153 + _globals['_CONTRACTEXECUTIONCOMPATAUTHORIZATION']._serialized_end=346 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/wasmx/v1/authz_pb2_grpc.py b/pyinjective/proto/injective/wasmx/v1/authz_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/wasmx/v1/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/osmosis/txfees/v1beta1/query_pb2.py b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py new file mode 100644 index 00000000..26b8e89f --- /dev/null +++ b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: osmosis/txfees/v1beta1/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 google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"osmosis/txfees/v1beta1/query.proto\x12\x16osmosis.txfees.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\"\x18\n\x16QueryEipBaseFeeRequest\"l\n\x17QueryEipBaseFeeResponse\x12Q\n\x08\x62\x61se_fee\x18\x01 \x01(\tB6\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDec\xf2\xde\x1f\x0fyaml:\"base_fee\"R\x07\x62\x61seFee2\xac\x01\n\x05Query\x12\xa2\x01\n\rGetEipBaseFee\x12..osmosis.txfees.v1beta1.QueryEipBaseFeeRequest\x1a/.osmosis.txfees.v1beta1.QueryEipBaseFeeResponse\"0\x82\xd3\xe4\x93\x02*\x12(/osmosis/txfees/v1beta1/cur_eip_base_feeB\xf8\x01\n\x1a\x63om.osmosis.txfees.v1beta1B\nQueryProtoP\x01ZTgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/osmosis/types\xa2\x02\x03OTX\xaa\x02\x16Osmosis.Txfees.V1beta1\xca\x02\x16Osmosis\\Txfees\\V1beta1\xe2\x02\"Osmosis\\Txfees\\V1beta1\\GPBMetadata\xea\x02\x18Osmosis::Txfees::V1beta1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'osmosis.txfees.v1beta1.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\032com.osmosis.txfees.v1beta1B\nQueryProtoP\001ZTgithub.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/osmosis/types\242\002\003OTX\252\002\026Osmosis.Txfees.V1beta1\312\002\026Osmosis\\Txfees\\V1beta1\342\002\"Osmosis\\Txfees\\V1beta1\\GPBMetadata\352\002\030Osmosis::Txfees::V1beta1' + _globals['_QUERYEIPBASEFEERESPONSE'].fields_by_name['base_fee']._loaded_options = None + _globals['_QUERYEIPBASEFEERESPONSE'].fields_by_name['base_fee']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec\362\336\037\017yaml:\"base_fee\"' + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._loaded_options = None + _globals['_QUERY'].methods_by_name['GetEipBaseFee']._serialized_options = b'\202\323\344\223\002*\022(/osmosis/txfees/v1beta1/cur_eip_base_fee' + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_start=146 + _globals['_QUERYEIPBASEFEEREQUEST']._serialized_end=170 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_start=172 + _globals['_QUERYEIPBASEFEERESPONSE']._serialized_end=280 + _globals['_QUERY']._serialized_start=283 + _globals['_QUERY']._serialized_end=455 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py new file mode 100644 index 00000000..7c8cdd9b --- /dev/null +++ b/pyinjective/proto/osmosis/txfees/v1beta1/query_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from osmosis.txfees.v1beta1 import query_pb2 as osmosis_dot_txfees_dot_v1beta1_dot_query__pb2 + + +class QueryStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetEipBaseFee = channel.unary_unary( + '/osmosis.txfees.v1beta1.Query/GetEipBaseFee', + request_serializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + response_deserializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetEipBaseFee(self, request, context): + """Returns the current fee market EIP fee. + """ + 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 = { + 'GetEipBaseFee': grpc.unary_unary_rpc_method_handler( + servicer.GetEipBaseFee, + request_deserializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.FromString, + response_serializer=osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'osmosis.txfees.v1beta1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('osmosis.txfees.v1beta1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetEipBaseFee(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, + '/osmosis.txfees.v1beta1.Query/GetEipBaseFee', + osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeRequest.SerializeToString, + osmosis_dot_txfees_dot_v1beta1_dot_query__pb2.QueryEipBaseFeeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/tendermint/abci/types_pb2.py b/pyinjective/proto/tendermint/abci/types_pb2.py deleted file mode 100644 index f097f91e..00000000 --- a/pyinjective/proto/tendermint/abci/types_pb2.py +++ /dev/null @@ -1,199 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/abci/types.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.tendermint.crypto import proof_pb2 as tendermint_dot_crypto_dot_proof__pb2 -from pyinjective.proto.tendermint.crypto import keys_pb2 as tendermint_dot_crypto_dot_keys__pb2 -from pyinjective.proto.tendermint.types import params_pb2 as tendermint_dot_types_dot_params__pb2 -from pyinjective.proto.tendermint.types import validator_pb2 as tendermint_dot_types_dot_validator__pb2 -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btendermint/abci/types.proto\x12\x0ftendermint.abci\x1a\x1dtendermint/crypto/proof.proto\x1a\x1ctendermint/crypto/keys.proto\x1a\x1dtendermint/types/params.proto\x1a tendermint/types/validator.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14gogoproto/gogo.proto\"\xbf\t\n\x07Request\x12\x32\n\x04\x65\x63ho\x18\x01 \x01(\x0b\x32\x1c.tendermint.abci.RequestEchoH\x00R\x04\x65\x63ho\x12\x35\n\x05\x66lush\x18\x02 \x01(\x0b\x32\x1d.tendermint.abci.RequestFlushH\x00R\x05\x66lush\x12\x32\n\x04info\x18\x03 \x01(\x0b\x32\x1c.tendermint.abci.RequestInfoH\x00R\x04info\x12\x42\n\ninit_chain\x18\x05 \x01(\x0b\x32!.tendermint.abci.RequestInitChainH\x00R\tinitChain\x12\x35\n\x05query\x18\x06 \x01(\x0b\x32\x1d.tendermint.abci.RequestQueryH\x00R\x05query\x12<\n\x08\x63heck_tx\x18\x08 \x01(\x0b\x32\x1f.tendermint.abci.RequestCheckTxH\x00R\x07\x63heckTx\x12\x38\n\x06\x63ommit\x18\x0b \x01(\x0b\x32\x1e.tendermint.abci.RequestCommitH\x00R\x06\x63ommit\x12N\n\x0elist_snapshots\x18\x0c \x01(\x0b\x32%.tendermint.abci.RequestListSnapshotsH\x00R\rlistSnapshots\x12N\n\x0eoffer_snapshot\x18\r \x01(\x0b\x32%.tendermint.abci.RequestOfferSnapshotH\x00R\rofferSnapshot\x12[\n\x13load_snapshot_chunk\x18\x0e \x01(\x0b\x32).tendermint.abci.RequestLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12^\n\x14\x61pply_snapshot_chunk\x18\x0f \x01(\x0b\x32*.tendermint.abci.RequestApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12T\n\x10prepare_proposal\x18\x10 \x01(\x0b\x32\'.tendermint.abci.RequestPrepareProposalH\x00R\x0fprepareProposal\x12T\n\x10process_proposal\x18\x11 \x01(\x0b\x32\'.tendermint.abci.RequestProcessProposalH\x00R\x0fprocessProposal\x12\x45\n\x0b\x65xtend_vote\x18\x12 \x01(\x0b\x32\".tendermint.abci.RequestExtendVoteH\x00R\nextendVote\x12\x61\n\x15verify_vote_extension\x18\x13 \x01(\x0b\x32+.tendermint.abci.RequestVerifyVoteExtensionH\x00R\x13verifyVoteExtension\x12N\n\x0e\x66inalize_block\x18\x14 \x01(\x0b\x32%.tendermint.abci.RequestFinalizeBlockH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"\'\n\x0bRequestEcho\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0e\n\x0cRequestFlush\"\x90\x01\n\x0bRequestInfo\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12#\n\rblock_version\x18\x02 \x01(\x04R\x0c\x62lockVersion\x12\x1f\n\x0bp2p_version\x18\x03 \x01(\x04R\np2pVersion\x12!\n\x0c\x61\x62\x63i_version\x18\x04 \x01(\tR\x0b\x61\x62\x63iVersion\"\xcc\x02\n\x10RequestInitChain\x12\x38\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\tR\x07\x63hainId\x12L\n\x10\x63onsensus_params\x18\x03 \x01(\x0b\x32!.tendermint.types.ConsensusParamsR\x0f\x63onsensusParams\x12\x46\n\nvalidators\x18\x04 \x03(\x0b\x32 .tendermint.abci.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12&\n\x0f\x61pp_state_bytes\x18\x05 \x01(\x0cR\rappStateBytes\x12%\n\x0einitial_height\x18\x06 \x01(\x03R\rinitialHeight\"d\n\x0cRequestQuery\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04path\x18\x02 \x01(\tR\x04path\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x14\n\x05prove\x18\x04 \x01(\x08R\x05prove\"R\n\x0eRequestCheckTx\x12\x0e\n\x02tx\x18\x01 \x01(\x0cR\x02tx\x12\x30\n\x04type\x18\x02 \x01(\x0e\x32\x1c.tendermint.abci.CheckTxTypeR\x04type\"\x0f\n\rRequestCommit\"\x16\n\x14RequestListSnapshots\"h\n\x14RequestOfferSnapshot\x12\x35\n\x08snapshot\x18\x01 \x01(\x0b\x32\x19.tendermint.abci.SnapshotR\x08snapshot\x12\x19\n\x08\x61pp_hash\x18\x02 \x01(\x0cR\x07\x61ppHash\"`\n\x18RequestLoadSnapshotChunk\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x14\n\x05\x63hunk\x18\x03 \x01(\rR\x05\x63hunk\"_\n\x19RequestApplySnapshotChunk\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x63hunk\x18\x02 \x01(\x0cR\x05\x63hunk\x12\x16\n\x06sender\x18\x03 \x01(\tR\x06sender\"\x98\x03\n\x16RequestPrepareProposal\x12 \n\x0cmax_tx_bytes\x18\x01 \x01(\x03R\nmaxTxBytes\x12\x10\n\x03txs\x18\x02 \x03(\x0cR\x03txs\x12U\n\x11local_last_commit\x18\x03 \x01(\x0b\x32#.tendermint.abci.ExtendedCommitInfoB\x04\xc8\xde\x1f\x00R\x0flocalLastCommit\x12\x44\n\x0bmisbehavior\x18\x04 \x03(\x0b\x32\x1c.tendermint.abci.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x88\x03\n\x16RequestProcessProposal\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12S\n\x14proposed_last_commit\x18\x02 \x01(\x0b\x32\x1b.tendermint.abci.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12\x44\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\x1c.tendermint.abci.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x83\x03\n\x11RequestExtendVote\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x10\n\x03txs\x18\x04 \x03(\x0cR\x03txs\x12S\n\x14proposed_last_commit\x18\x05 \x01(\x0b\x32\x1b.tendermint.abci.CommitInfoB\x04\xc8\xde\x1f\x00R\x12proposedLastCommit\x12\x44\n\x0bmisbehavior\x18\x06 \x03(\x0b\x32\x1c.tendermint.abci.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x9c\x01\n\x1aRequestVerifyVoteExtension\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12%\n\x0evote_extension\x18\x04 \x01(\x0cR\rvoteExtension\"\x84\x03\n\x14RequestFinalizeBlock\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\x12Q\n\x13\x64\x65\x63ided_last_commit\x18\x02 \x01(\x0b\x32\x1b.tendermint.abci.CommitInfoB\x04\xc8\xde\x1f\x00R\x11\x64\x65\x63idedLastCommit\x12\x44\n\x0bmisbehavior\x18\x03 \x03(\x0b\x32\x1c.tendermint.abci.MisbehaviorB\x04\xc8\xde\x1f\x00R\x0bmisbehavior\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x16\n\x06height\x18\x05 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x30\n\x14next_validators_hash\x18\x07 \x01(\x0cR\x12nextValidatorsHash\x12)\n\x10proposer_address\x18\x08 \x01(\x0cR\x0fproposerAddress\"\x94\n\n\x08Response\x12\x42\n\texception\x18\x01 \x01(\x0b\x32\".tendermint.abci.ResponseExceptionH\x00R\texception\x12\x33\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x1d.tendermint.abci.ResponseEchoH\x00R\x04\x65\x63ho\x12\x36\n\x05\x66lush\x18\x03 \x01(\x0b\x32\x1e.tendermint.abci.ResponseFlushH\x00R\x05\x66lush\x12\x33\n\x04info\x18\x04 \x01(\x0b\x32\x1d.tendermint.abci.ResponseInfoH\x00R\x04info\x12\x43\n\ninit_chain\x18\x06 \x01(\x0b\x32\".tendermint.abci.ResponseInitChainH\x00R\tinitChain\x12\x36\n\x05query\x18\x07 \x01(\x0b\x32\x1e.tendermint.abci.ResponseQueryH\x00R\x05query\x12=\n\x08\x63heck_tx\x18\t \x01(\x0b\x32 .tendermint.abci.ResponseCheckTxH\x00R\x07\x63heckTx\x12\x39\n\x06\x63ommit\x18\x0c \x01(\x0b\x32\x1f.tendermint.abci.ResponseCommitH\x00R\x06\x63ommit\x12O\n\x0elist_snapshots\x18\r \x01(\x0b\x32&.tendermint.abci.ResponseListSnapshotsH\x00R\rlistSnapshots\x12O\n\x0eoffer_snapshot\x18\x0e \x01(\x0b\x32&.tendermint.abci.ResponseOfferSnapshotH\x00R\rofferSnapshot\x12\\\n\x13load_snapshot_chunk\x18\x0f \x01(\x0b\x32*.tendermint.abci.ResponseLoadSnapshotChunkH\x00R\x11loadSnapshotChunk\x12_\n\x14\x61pply_snapshot_chunk\x18\x10 \x01(\x0b\x32+.tendermint.abci.ResponseApplySnapshotChunkH\x00R\x12\x61pplySnapshotChunk\x12U\n\x10prepare_proposal\x18\x11 \x01(\x0b\x32(.tendermint.abci.ResponsePrepareProposalH\x00R\x0fprepareProposal\x12U\n\x10process_proposal\x18\x12 \x01(\x0b\x32(.tendermint.abci.ResponseProcessProposalH\x00R\x0fprocessProposal\x12\x46\n\x0b\x65xtend_vote\x18\x13 \x01(\x0b\x32#.tendermint.abci.ResponseExtendVoteH\x00R\nextendVote\x12\x62\n\x15verify_vote_extension\x18\x14 \x01(\x0b\x32,.tendermint.abci.ResponseVerifyVoteExtensionH\x00R\x13verifyVoteExtension\x12O\n\x0e\x66inalize_block\x18\x15 \x01(\x0b\x32&.tendermint.abci.ResponseFinalizeBlockH\x00R\rfinalizeBlockB\x07\n\x05valueJ\x04\x08\x05\x10\x06J\x04\x08\x08\x10\tJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0c\")\n\x11ResponseException\x12\x14\n\x05\x65rror\x18\x01 \x01(\tR\x05\x65rror\"(\n\x0cResponseEcho\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\"\x0f\n\rResponseFlush\"\xb8\x01\n\x0cResponseInfo\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\tR\x04\x64\x61ta\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x1f\n\x0b\x61pp_version\x18\x03 \x01(\x04R\nappVersion\x12*\n\x11last_block_height\x18\x04 \x01(\x03R\x0flastBlockHeight\x12-\n\x13last_block_app_hash\x18\x05 \x01(\x0cR\x10lastBlockAppHash\"\xc4\x01\n\x11ResponseInitChain\x12L\n\x10\x63onsensus_params\x18\x01 \x01(\x0b\x32!.tendermint.types.ConsensusParamsR\x0f\x63onsensusParams\x12\x46\n\nvalidators\x18\x02 \x03(\x0b\x32 .tendermint.abci.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\nvalidators\x12\x19\n\x08\x61pp_hash\x18\x03 \x01(\x0cR\x07\x61ppHash\"\xf7\x01\n\rResponseQuery\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x14\n\x05index\x18\x05 \x01(\x03R\x05index\x12\x10\n\x03key\x18\x06 \x01(\x0cR\x03key\x12\x14\n\x05value\x18\x07 \x01(\x0cR\x05value\x12\x38\n\tproof_ops\x18\x08 \x01(\x0b\x32\x1b.tendermint.crypto.ProofOpsR\x08proofOps\x12\x16\n\x06height\x18\t \x01(\x03R\x06height\x12\x1c\n\tcodespace\x18\n \x01(\tR\tcodespace\"\xaa\x02\n\x0fResponseCheckTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12H\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x16.tendermint.abci.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespaceJ\x04\x08\t\x10\x0cR\x06senderR\x08priorityR\rmempool_error\"A\n\x0eResponseCommit\x12#\n\rretain_height\x18\x03 \x01(\x03R\x0cretainHeightJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"P\n\x15ResponseListSnapshots\x12\x37\n\tsnapshots\x18\x01 \x03(\x0b\x32\x19.tendermint.abci.SnapshotR\tsnapshots\"\xbe\x01\n\x15ResponseOfferSnapshot\x12\x45\n\x06result\x18\x01 \x01(\x0e\x32-.tendermint.abci.ResponseOfferSnapshot.ResultR\x06result\"^\n\x06Result\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\t\n\x05\x41\x42ORT\x10\x02\x12\n\n\x06REJECT\x10\x03\x12\x11\n\rREJECT_FORMAT\x10\x04\x12\x11\n\rREJECT_SENDER\x10\x05\"1\n\x19ResponseLoadSnapshotChunk\x12\x14\n\x05\x63hunk\x18\x01 \x01(\x0cR\x05\x63hunk\"\x98\x02\n\x1aResponseApplySnapshotChunk\x12J\n\x06result\x18\x01 \x01(\x0e\x32\x32.tendermint.abci.ResponseApplySnapshotChunk.ResultR\x06result\x12%\n\x0erefetch_chunks\x18\x02 \x03(\rR\rrefetchChunks\x12%\n\x0ereject_senders\x18\x03 \x03(\tR\rrejectSenders\"`\n\x06Result\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\t\n\x05\x41\x42ORT\x10\x02\x12\t\n\x05RETRY\x10\x03\x12\x12\n\x0eRETRY_SNAPSHOT\x10\x04\x12\x13\n\x0fREJECT_SNAPSHOT\x10\x05\"+\n\x17ResponsePrepareProposal\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\xa1\x01\n\x17ResponseProcessProposal\x12O\n\x06status\x18\x01 \x01(\x0e\x32\x37.tendermint.abci.ResponseProcessProposal.ProposalStatusR\x06status\"5\n\x0eProposalStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\n\n\x06REJECT\x10\x02\";\n\x12ResponseExtendVote\x12%\n\x0evote_extension\x18\x01 \x01(\x0cR\rvoteExtension\"\xa5\x01\n\x1bResponseVerifyVoteExtension\x12Q\n\x06status\x18\x01 \x01(\x0e\x32\x39.tendermint.abci.ResponseVerifyVoteExtension.VerifyStatusR\x06status\"3\n\x0cVerifyStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x41\x43\x43\x45PT\x10\x01\x12\n\n\x06REJECT\x10\x02\"\xea\x02\n\x15ResponseFinalizeBlock\x12H\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x16.tendermint.abci.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12<\n\ntx_results\x18\x02 \x03(\x0b\x32\x1d.tendermint.abci.ExecTxResultR\ttxResults\x12S\n\x11validator_updates\x18\x03 \x03(\x0b\x32 .tendermint.abci.ValidatorUpdateB\x04\xc8\xde\x1f\x00R\x10validatorUpdates\x12Y\n\x17\x63onsensus_param_updates\x18\x04 \x01(\x0b\x32!.tendermint.types.ConsensusParamsR\x15\x63onsensusParamUpdates\x12\x19\n\x08\x61pp_hash\x18\x05 \x01(\x0cR\x07\x61ppHash\"Y\n\nCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12\x35\n\x05votes\x18\x02 \x03(\x0b\x32\x19.tendermint.abci.VoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"i\n\x12\x45xtendedCommitInfo\x12\x14\n\x05round\x18\x01 \x01(\x05R\x05round\x12=\n\x05votes\x18\x02 \x03(\x0b\x32!.tendermint.abci.ExtendedVoteInfoB\x04\xc8\xde\x1f\x00R\x05votes\"z\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12]\n\nattributes\x18\x02 \x03(\x0b\x32\x1f.tendermint.abci.EventAttributeB\x1c\xc8\xde\x1f\x00\xea\xde\x1f\x14\x61ttributes,omitemptyR\nattributes\"N\n\x0e\x45ventAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x14\n\x05index\x18\x03 \x01(\x08R\x05index\"\x80\x02\n\x0c\x45xecTxResult\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12\x10\n\x03log\x18\x03 \x01(\tR\x03log\x12\x12\n\x04info\x18\x04 \x01(\tR\x04info\x12\x1e\n\ngas_wanted\x18\x05 \x01(\x03R\ngas_wanted\x12\x1a\n\x08gas_used\x18\x06 \x01(\x03R\x08gas_used\x12H\n\x06\x65vents\x18\x07 \x03(\x0b\x32\x16.tendermint.abci.EventB\x18\xc8\xde\x1f\x00\xea\xde\x1f\x10\x65vents,omitemptyR\x06\x65vents\x12\x1c\n\tcodespace\x18\x08 \x01(\tR\tcodespace\"\x85\x01\n\x08TxResult\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05index\x18\x02 \x01(\rR\x05index\x12\x0e\n\x02tx\x18\x03 \x01(\x0cR\x02tx\x12;\n\x06result\x18\x04 \x01(\x0b\x32\x1d.tendermint.abci.ExecTxResultB\x04\xc8\xde\x1f\x00R\x06result\";\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x03 \x01(\x03R\x05power\"d\n\x0fValidatorUpdate\x12;\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1c.tendermint.crypto.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12\x14\n\x05power\x18\x02 \x01(\x03R\x05power\"\x93\x01\n\x08VoteInfo\x12>\n\tvalidator\x18\x01 \x01(\x0b\x32\x1a.tendermint.abci.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x41\n\rblock_id_flag\x18\x03 \x01(\x0e\x32\x1d.tendermint.types.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"\xf3\x01\n\x10\x45xtendedVoteInfo\x12>\n\tvalidator\x18\x01 \x01(\x0b\x32\x1a.tendermint.abci.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12%\n\x0evote_extension\x18\x03 \x01(\x0cR\rvoteExtension\x12/\n\x13\x65xtension_signature\x18\x04 \x01(\x0cR\x12\x65xtensionSignature\x12\x41\n\rblock_id_flag\x18\x05 \x01(\x0e\x32\x1d.tendermint.types.BlockIDFlagR\x0b\x62lockIdFlagJ\x04\x08\x02\x10\x03\"\x83\x02\n\x0bMisbehavior\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32 .tendermint.abci.MisbehaviorTypeR\x04type\x12>\n\tvalidator\x18\x02 \x01(\x0b\x32\x1a.tendermint.abci.ValidatorB\x04\xc8\xde\x1f\x00R\tvalidator\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12,\n\x12total_voting_power\x18\x05 \x01(\x03R\x10totalVotingPower\"\x82\x01\n\x08Snapshot\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x16\n\x06\x66ormat\x18\x02 \x01(\rR\x06\x66ormat\x12\x16\n\x06\x63hunks\x18\x03 \x01(\rR\x06\x63hunks\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hash\x12\x1a\n\x08metadata\x18\x05 \x01(\x0cR\x08metadata*9\n\x0b\x43heckTxType\x12\x10\n\x03NEW\x10\x00\x1a\x07\x8a\x9d \x03New\x12\x18\n\x07RECHECK\x10\x01\x1a\x0b\x8a\x9d \x07Recheck*K\n\x0fMisbehaviorType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x12\n\x0e\x44UPLICATE_VOTE\x10\x01\x12\x17\n\x13LIGHT_CLIENT_ATTACK\x10\x02\x32\x9d\x0b\n\x04\x41\x42\x43I\x12\x43\n\x04\x45\x63ho\x12\x1c.tendermint.abci.RequestEcho\x1a\x1d.tendermint.abci.ResponseEcho\x12\x46\n\x05\x46lush\x12\x1d.tendermint.abci.RequestFlush\x1a\x1e.tendermint.abci.ResponseFlush\x12\x43\n\x04Info\x12\x1c.tendermint.abci.RequestInfo\x1a\x1d.tendermint.abci.ResponseInfo\x12L\n\x07\x43heckTx\x12\x1f.tendermint.abci.RequestCheckTx\x1a .tendermint.abci.ResponseCheckTx\x12\x46\n\x05Query\x12\x1d.tendermint.abci.RequestQuery\x1a\x1e.tendermint.abci.ResponseQuery\x12I\n\x06\x43ommit\x12\x1e.tendermint.abci.RequestCommit\x1a\x1f.tendermint.abci.ResponseCommit\x12R\n\tInitChain\x12!.tendermint.abci.RequestInitChain\x1a\".tendermint.abci.ResponseInitChain\x12^\n\rListSnapshots\x12%.tendermint.abci.RequestListSnapshots\x1a&.tendermint.abci.ResponseListSnapshots\x12^\n\rOfferSnapshot\x12%.tendermint.abci.RequestOfferSnapshot\x1a&.tendermint.abci.ResponseOfferSnapshot\x12j\n\x11LoadSnapshotChunk\x12).tendermint.abci.RequestLoadSnapshotChunk\x1a*.tendermint.abci.ResponseLoadSnapshotChunk\x12m\n\x12\x41pplySnapshotChunk\x12*.tendermint.abci.RequestApplySnapshotChunk\x1a+.tendermint.abci.ResponseApplySnapshotChunk\x12\x64\n\x0fPrepareProposal\x12\'.tendermint.abci.RequestPrepareProposal\x1a(.tendermint.abci.ResponsePrepareProposal\x12\x64\n\x0fProcessProposal\x12\'.tendermint.abci.RequestProcessProposal\x1a(.tendermint.abci.ResponseProcessProposal\x12U\n\nExtendVote\x12\".tendermint.abci.RequestExtendVote\x1a#.tendermint.abci.ResponseExtendVote\x12p\n\x13VerifyVoteExtension\x12+.tendermint.abci.RequestVerifyVoteExtension\x1a,.tendermint.abci.ResponseVerifyVoteExtension\x12^\n\rFinalizeBlock\x12%.tendermint.abci.RequestFinalizeBlock\x1a&.tendermint.abci.ResponseFinalizeBlockB\xa7\x01\n\x13\x63om.tendermint.abciB\nTypesProtoP\x01Z\'github.com/cometbft/cometbft/abci/types\xa2\x02\x03TAX\xaa\x02\x0fTendermint.Abci\xca\x02\x0fTendermint\\Abci\xe2\x02\x1bTendermint\\Abci\\GPBMetadata\xea\x02\x10Tendermint::Abcib\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.abci.types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\023com.tendermint.abciB\nTypesProtoP\001Z\'github.com/cometbft/cometbft/abci/types\242\002\003TAX\252\002\017Tendermint.Abci\312\002\017Tendermint\\Abci\342\002\033Tendermint\\Abci\\GPBMetadata\352\002\020Tendermint::Abci' - _globals['_CHECKTXTYPE'].values_by_name["NEW"]._loaded_options = None - _globals['_CHECKTXTYPE'].values_by_name["NEW"]._serialized_options = b'\212\235 \003New' - _globals['_CHECKTXTYPE'].values_by_name["RECHECK"]._loaded_options = None - _globals['_CHECKTXTYPE'].values_by_name["RECHECK"]._serialized_options = b'\212\235 \007Recheck' - _globals['_REQUESTINITCHAIN'].fields_by_name['time']._loaded_options = None - _globals['_REQUESTINITCHAIN'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._loaded_options = None - _globals['_REQUESTINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._loaded_options = None - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['local_last_commit']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._loaded_options = None - _globals['_REQUESTPREPAREPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._loaded_options = None - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._loaded_options = None - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._loaded_options = None - _globals['_REQUESTPROCESSPROPOSAL'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_REQUESTEXTENDVOTE'].fields_by_name['time']._loaded_options = None - _globals['_REQUESTEXTENDVOTE'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_REQUESTEXTENDVOTE'].fields_by_name['proposed_last_commit']._loaded_options = None - _globals['_REQUESTEXTENDVOTE'].fields_by_name['proposed_last_commit']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTEXTENDVOTE'].fields_by_name['misbehavior']._loaded_options = None - _globals['_REQUESTEXTENDVOTE'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['decided_last_commit']._loaded_options = None - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['decided_last_commit']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['misbehavior']._loaded_options = None - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['misbehavior']._serialized_options = b'\310\336\037\000' - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['time']._loaded_options = None - _globals['_REQUESTFINALIZEBLOCK'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._loaded_options = None - _globals['_RESPONSEINITCHAIN'].fields_by_name['validators']._serialized_options = b'\310\336\037\000' - _globals['_RESPONSECHECKTX'].fields_by_name['events']._loaded_options = None - _globals['_RESPONSECHECKTX'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' - _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['events']._loaded_options = None - _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' - _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['validator_updates']._loaded_options = None - _globals['_RESPONSEFINALIZEBLOCK'].fields_by_name['validator_updates']._serialized_options = b'\310\336\037\000' - _globals['_COMMITINFO'].fields_by_name['votes']._loaded_options = None - _globals['_COMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' - _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._loaded_options = None - _globals['_EXTENDEDCOMMITINFO'].fields_by_name['votes']._serialized_options = b'\310\336\037\000' - _globals['_EVENT'].fields_by_name['attributes']._loaded_options = None - _globals['_EVENT'].fields_by_name['attributes']._serialized_options = b'\310\336\037\000\352\336\037\024attributes,omitempty' - _globals['_EXECTXRESULT'].fields_by_name['events']._loaded_options = None - _globals['_EXECTXRESULT'].fields_by_name['events']._serialized_options = b'\310\336\037\000\352\336\037\020events,omitempty' - _globals['_TXRESULT'].fields_by_name['result']._loaded_options = None - _globals['_TXRESULT'].fields_by_name['result']._serialized_options = b'\310\336\037\000' - _globals['_VALIDATORUPDATE'].fields_by_name['pub_key']._loaded_options = None - _globals['_VALIDATORUPDATE'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' - _globals['_VOTEINFO'].fields_by_name['validator']._loaded_options = None - _globals['_VOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' - _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._loaded_options = None - _globals['_EXTENDEDVOTEINFO'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' - _globals['_MISBEHAVIOR'].fields_by_name['validator']._loaded_options = None - _globals['_MISBEHAVIOR'].fields_by_name['validator']._serialized_options = b'\310\336\037\000' - _globals['_MISBEHAVIOR'].fields_by_name['time']._loaded_options = None - _globals['_MISBEHAVIOR'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_CHECKTXTYPE']._serialized_start=9832 - _globals['_CHECKTXTYPE']._serialized_end=9889 - _globals['_MISBEHAVIORTYPE']._serialized_start=9891 - _globals['_MISBEHAVIORTYPE']._serialized_end=9966 - _globals['_REQUEST']._serialized_start=230 - _globals['_REQUEST']._serialized_end=1445 - _globals['_REQUESTECHO']._serialized_start=1447 - _globals['_REQUESTECHO']._serialized_end=1486 - _globals['_REQUESTFLUSH']._serialized_start=1488 - _globals['_REQUESTFLUSH']._serialized_end=1502 - _globals['_REQUESTINFO']._serialized_start=1505 - _globals['_REQUESTINFO']._serialized_end=1649 - _globals['_REQUESTINITCHAIN']._serialized_start=1652 - _globals['_REQUESTINITCHAIN']._serialized_end=1984 - _globals['_REQUESTQUERY']._serialized_start=1986 - _globals['_REQUESTQUERY']._serialized_end=2086 - _globals['_REQUESTCHECKTX']._serialized_start=2088 - _globals['_REQUESTCHECKTX']._serialized_end=2170 - _globals['_REQUESTCOMMIT']._serialized_start=2172 - _globals['_REQUESTCOMMIT']._serialized_end=2187 - _globals['_REQUESTLISTSNAPSHOTS']._serialized_start=2189 - _globals['_REQUESTLISTSNAPSHOTS']._serialized_end=2211 - _globals['_REQUESTOFFERSNAPSHOT']._serialized_start=2213 - _globals['_REQUESTOFFERSNAPSHOT']._serialized_end=2317 - _globals['_REQUESTLOADSNAPSHOTCHUNK']._serialized_start=2319 - _globals['_REQUESTLOADSNAPSHOTCHUNK']._serialized_end=2415 - _globals['_REQUESTAPPLYSNAPSHOTCHUNK']._serialized_start=2417 - _globals['_REQUESTAPPLYSNAPSHOTCHUNK']._serialized_end=2512 - _globals['_REQUESTPREPAREPROPOSAL']._serialized_start=2515 - _globals['_REQUESTPREPAREPROPOSAL']._serialized_end=2923 - _globals['_REQUESTPROCESSPROPOSAL']._serialized_start=2926 - _globals['_REQUESTPROCESSPROPOSAL']._serialized_end=3318 - _globals['_REQUESTEXTENDVOTE']._serialized_start=3321 - _globals['_REQUESTEXTENDVOTE']._serialized_end=3708 - _globals['_REQUESTVERIFYVOTEEXTENSION']._serialized_start=3711 - _globals['_REQUESTVERIFYVOTEEXTENSION']._serialized_end=3867 - _globals['_REQUESTFINALIZEBLOCK']._serialized_start=3870 - _globals['_REQUESTFINALIZEBLOCK']._serialized_end=4258 - _globals['_RESPONSE']._serialized_start=4261 - _globals['_RESPONSE']._serialized_end=5561 - _globals['_RESPONSEEXCEPTION']._serialized_start=5563 - _globals['_RESPONSEEXCEPTION']._serialized_end=5604 - _globals['_RESPONSEECHO']._serialized_start=5606 - _globals['_RESPONSEECHO']._serialized_end=5646 - _globals['_RESPONSEFLUSH']._serialized_start=5648 - _globals['_RESPONSEFLUSH']._serialized_end=5663 - _globals['_RESPONSEINFO']._serialized_start=5666 - _globals['_RESPONSEINFO']._serialized_end=5850 - _globals['_RESPONSEINITCHAIN']._serialized_start=5853 - _globals['_RESPONSEINITCHAIN']._serialized_end=6049 - _globals['_RESPONSEQUERY']._serialized_start=6052 - _globals['_RESPONSEQUERY']._serialized_end=6299 - _globals['_RESPONSECHECKTX']._serialized_start=6302 - _globals['_RESPONSECHECKTX']._serialized_end=6600 - _globals['_RESPONSECOMMIT']._serialized_start=6602 - _globals['_RESPONSECOMMIT']._serialized_end=6667 - _globals['_RESPONSELISTSNAPSHOTS']._serialized_start=6669 - _globals['_RESPONSELISTSNAPSHOTS']._serialized_end=6749 - _globals['_RESPONSEOFFERSNAPSHOT']._serialized_start=6752 - _globals['_RESPONSEOFFERSNAPSHOT']._serialized_end=6942 - _globals['_RESPONSEOFFERSNAPSHOT_RESULT']._serialized_start=6848 - _globals['_RESPONSEOFFERSNAPSHOT_RESULT']._serialized_end=6942 - _globals['_RESPONSELOADSNAPSHOTCHUNK']._serialized_start=6944 - _globals['_RESPONSELOADSNAPSHOTCHUNK']._serialized_end=6993 - _globals['_RESPONSEAPPLYSNAPSHOTCHUNK']._serialized_start=6996 - _globals['_RESPONSEAPPLYSNAPSHOTCHUNK']._serialized_end=7276 - _globals['_RESPONSEAPPLYSNAPSHOTCHUNK_RESULT']._serialized_start=7180 - _globals['_RESPONSEAPPLYSNAPSHOTCHUNK_RESULT']._serialized_end=7276 - _globals['_RESPONSEPREPAREPROPOSAL']._serialized_start=7278 - _globals['_RESPONSEPREPAREPROPOSAL']._serialized_end=7321 - _globals['_RESPONSEPROCESSPROPOSAL']._serialized_start=7324 - _globals['_RESPONSEPROCESSPROPOSAL']._serialized_end=7485 - _globals['_RESPONSEPROCESSPROPOSAL_PROPOSALSTATUS']._serialized_start=7432 - _globals['_RESPONSEPROCESSPROPOSAL_PROPOSALSTATUS']._serialized_end=7485 - _globals['_RESPONSEEXTENDVOTE']._serialized_start=7487 - _globals['_RESPONSEEXTENDVOTE']._serialized_end=7546 - _globals['_RESPONSEVERIFYVOTEEXTENSION']._serialized_start=7549 - _globals['_RESPONSEVERIFYVOTEEXTENSION']._serialized_end=7714 - _globals['_RESPONSEVERIFYVOTEEXTENSION_VERIFYSTATUS']._serialized_start=7663 - _globals['_RESPONSEVERIFYVOTEEXTENSION_VERIFYSTATUS']._serialized_end=7714 - _globals['_RESPONSEFINALIZEBLOCK']._serialized_start=7717 - _globals['_RESPONSEFINALIZEBLOCK']._serialized_end=8079 - _globals['_COMMITINFO']._serialized_start=8081 - _globals['_COMMITINFO']._serialized_end=8170 - _globals['_EXTENDEDCOMMITINFO']._serialized_start=8172 - _globals['_EXTENDEDCOMMITINFO']._serialized_end=8277 - _globals['_EVENT']._serialized_start=8279 - _globals['_EVENT']._serialized_end=8401 - _globals['_EVENTATTRIBUTE']._serialized_start=8403 - _globals['_EVENTATTRIBUTE']._serialized_end=8481 - _globals['_EXECTXRESULT']._serialized_start=8484 - _globals['_EXECTXRESULT']._serialized_end=8740 - _globals['_TXRESULT']._serialized_start=8743 - _globals['_TXRESULT']._serialized_end=8876 - _globals['_VALIDATOR']._serialized_start=8878 - _globals['_VALIDATOR']._serialized_end=8937 - _globals['_VALIDATORUPDATE']._serialized_start=8939 - _globals['_VALIDATORUPDATE']._serialized_end=9039 - _globals['_VOTEINFO']._serialized_start=9042 - _globals['_VOTEINFO']._serialized_end=9189 - _globals['_EXTENDEDVOTEINFO']._serialized_start=9192 - _globals['_EXTENDEDVOTEINFO']._serialized_end=9435 - _globals['_MISBEHAVIOR']._serialized_start=9438 - _globals['_MISBEHAVIOR']._serialized_end=9697 - _globals['_SNAPSHOT']._serialized_start=9700 - _globals['_SNAPSHOT']._serialized_end=9830 - _globals['_ABCI']._serialized_start=9969 - _globals['_ABCI']._serialized_end=11406 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/crypto/keys_pb2.py b/pyinjective/proto/tendermint/crypto/keys_pb2.py deleted file mode 100644 index 6d1762da..00000000 --- a/pyinjective/proto/tendermint/crypto/keys_pb2.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/crypto/keys.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\x1ctendermint/crypto/keys.proto\x12\x11tendermint.crypto\x1a\x14gogoproto/gogo.proto\"X\n\tPublicKey\x12\x1a\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x01 \x01(\x0cH\x00R\x07\x65\x64\x32\x35\x35\x31\x39\x12\x1e\n\tsecp256k1\x18\x02 \x01(\x0cH\x00R\tsecp256k1:\x08\xe8\xa0\x1f\x01\xe8\xa1\x1f\x01\x42\x05\n\x03sumB\xbd\x01\n\x15\x63om.tendermint.cryptoB\tKeysProtoP\x01Z4github.com/cometbft/cometbft/proto/tendermint/crypto\xa2\x02\x03TCX\xaa\x02\x11Tendermint.Crypto\xca\x02\x11Tendermint\\Crypto\xe2\x02\x1dTendermint\\Crypto\\GPBMetadata\xea\x02\x12Tendermint::Cryptob\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.crypto.keys_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\025com.tendermint.cryptoB\tKeysProtoP\001Z4github.com/cometbft/cometbft/proto/tendermint/crypto\242\002\003TCX\252\002\021Tendermint.Crypto\312\002\021Tendermint\\Crypto\342\002\035Tendermint\\Crypto\\GPBMetadata\352\002\022Tendermint::Crypto' - _globals['_PUBLICKEY']._loaded_options = None - _globals['_PUBLICKEY']._serialized_options = b'\350\240\037\001\350\241\037\001' - _globals['_PUBLICKEY']._serialized_start=73 - _globals['_PUBLICKEY']._serialized_end=161 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/crypto/proof_pb2.py b/pyinjective/proto/tendermint/crypto/proof_pb2.py deleted file mode 100644 index 5681a5e2..00000000 --- a/pyinjective/proto/tendermint/crypto/proof_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/crypto/proof.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\x1dtendermint/crypto/proof.proto\x12\x11tendermint.crypto\x1a\x14gogoproto/gogo.proto\"f\n\x05Proof\x12\x14\n\x05total\x18\x01 \x01(\x03R\x05total\x12\x14\n\x05index\x18\x02 \x01(\x03R\x05index\x12\x1b\n\tleaf_hash\x18\x03 \x01(\x0cR\x08leafHash\x12\x14\n\x05\x61unts\x18\x04 \x03(\x0cR\x05\x61unts\"K\n\x07ValueOp\x12\x10\n\x03key\x18\x01 \x01(\x0cR\x03key\x12.\n\x05proof\x18\x02 \x01(\x0b\x32\x18.tendermint.crypto.ProofR\x05proof\"J\n\x08\x44ominoOp\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05input\x18\x02 \x01(\tR\x05input\x12\x16\n\x06output\x18\x03 \x01(\tR\x06output\"C\n\x07ProofOp\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x10\n\x03key\x18\x02 \x01(\x0cR\x03key\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\">\n\x08ProofOps\x12\x32\n\x03ops\x18\x01 \x03(\x0b\x32\x1a.tendermint.crypto.ProofOpB\x04\xc8\xde\x1f\x00R\x03opsB\xbe\x01\n\x15\x63om.tendermint.cryptoB\nProofProtoP\x01Z4github.com/cometbft/cometbft/proto/tendermint/crypto\xa2\x02\x03TCX\xaa\x02\x11Tendermint.Crypto\xca\x02\x11Tendermint\\Crypto\xe2\x02\x1dTendermint\\Crypto\\GPBMetadata\xea\x02\x12Tendermint::Cryptob\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.crypto.proof_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\025com.tendermint.cryptoB\nProofProtoP\001Z4github.com/cometbft/cometbft/proto/tendermint/crypto\242\002\003TCX\252\002\021Tendermint.Crypto\312\002\021Tendermint\\Crypto\342\002\035Tendermint\\Crypto\\GPBMetadata\352\002\022Tendermint::Crypto' - _globals['_PROOFOPS'].fields_by_name['ops']._loaded_options = None - _globals['_PROOFOPS'].fields_by_name['ops']._serialized_options = b'\310\336\037\000' - _globals['_PROOF']._serialized_start=74 - _globals['_PROOF']._serialized_end=176 - _globals['_VALUEOP']._serialized_start=178 - _globals['_VALUEOP']._serialized_end=253 - _globals['_DOMINOOP']._serialized_start=255 - _globals['_DOMINOOP']._serialized_end=329 - _globals['_PROOFOP']._serialized_start=331 - _globals['_PROOFOP']._serialized_end=398 - _globals['_PROOFOPS']._serialized_start=400 - _globals['_PROOFOPS']._serialized_end=462 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/libs/bits/types_pb2.py b/pyinjective/proto/tendermint/libs/bits/types_pb2.py deleted file mode 100644 index 207b36a4..00000000 --- a/pyinjective/proto/tendermint/libs/bits/types_pb2.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/libs/bits/types.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() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n tendermint/libs/bits/types.proto\x12\x14tendermint.libs.bits\"4\n\x08\x42itArray\x12\x12\n\x04\x62its\x18\x01 \x01(\x03R\x04\x62its\x12\x14\n\x05\x65lems\x18\x02 \x03(\x04R\x05\x65lemsB\xd1\x01\n\x18\x63om.tendermint.libs.bitsB\nTypesProtoP\x01Z7github.com/cometbft/cometbft/proto/tendermint/libs/bits\xa2\x02\x03TLB\xaa\x02\x14Tendermint.Libs.Bits\xca\x02\x14Tendermint\\Libs\\Bits\xe2\x02 Tendermint\\Libs\\Bits\\GPBMetadata\xea\x02\x16Tendermint::Libs::Bitsb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.libs.bits.types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\030com.tendermint.libs.bitsB\nTypesProtoP\001Z7github.com/cometbft/cometbft/proto/tendermint/libs/bits\242\002\003TLB\252\002\024Tendermint.Libs.Bits\312\002\024Tendermint\\Libs\\Bits\342\002 Tendermint\\Libs\\Bits\\GPBMetadata\352\002\026Tendermint::Libs::Bits' - _globals['_BITARRAY']._serialized_start=58 - _globals['_BITARRAY']._serialized_end=110 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/p2p/types_pb2.py b/pyinjective/proto/tendermint/p2p/types_pb2.py deleted file mode 100644 index 585eff1d..00000000 --- a/pyinjective/proto/tendermint/p2p/types_pb2.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/p2p/types.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\x1atendermint/p2p/types.proto\x12\x0etendermint.p2p\x1a\x14gogoproto/gogo.proto\"P\n\nNetAddress\x12\x16\n\x02id\x18\x01 \x01(\tB\x06\xe2\xde\x1f\x02IDR\x02id\x12\x16\n\x02ip\x18\x02 \x01(\tB\x06\xe2\xde\x1f\x02IPR\x02ip\x12\x12\n\x04port\x18\x03 \x01(\rR\x04port\"T\n\x0fProtocolVersion\x12\x19\n\x03p2p\x18\x01 \x01(\x04\x42\x07\xe2\xde\x1f\x03P2PR\x03p2p\x12\x14\n\x05\x62lock\x18\x02 \x01(\x04R\x05\x62lock\x12\x10\n\x03\x61pp\x18\x03 \x01(\x04R\x03\x61pp\"\xeb\x02\n\x0f\x44\x65\x66\x61ultNodeInfo\x12P\n\x10protocol_version\x18\x01 \x01(\x0b\x32\x1f.tendermint.p2p.ProtocolVersionB\x04\xc8\xde\x1f\x00R\x0fprotocolVersion\x12\x39\n\x0f\x64\x65\x66\x61ult_node_id\x18\x02 \x01(\tB\x11\xe2\xde\x1f\rDefaultNodeIDR\rdefaultNodeId\x12\x1f\n\x0blisten_addr\x18\x03 \x01(\tR\nlistenAddr\x12\x18\n\x07network\x18\x04 \x01(\tR\x07network\x12\x18\n\x07version\x18\x05 \x01(\tR\x07version\x12\x1a\n\x08\x63hannels\x18\x06 \x01(\x0cR\x08\x63hannels\x12\x18\n\x07moniker\x18\x07 \x01(\tR\x07moniker\x12@\n\x05other\x18\x08 \x01(\x0b\x32$.tendermint.p2p.DefaultNodeInfoOtherB\x04\xc8\xde\x1f\x00R\x05other\"b\n\x14\x44\x65\x66\x61ultNodeInfoOther\x12\x19\n\x08tx_index\x18\x01 \x01(\tR\x07txIndex\x12/\n\x0brpc_address\x18\x02 \x01(\tB\x0e\xe2\xde\x1f\nRPCAddressR\nrpcAddressB\xac\x01\n\x12\x63om.tendermint.p2pB\nTypesProtoP\x01Z1github.com/cometbft/cometbft/proto/tendermint/p2p\xa2\x02\x03TPX\xaa\x02\x0eTendermint.P2p\xca\x02\x0eTendermint\\P2p\xe2\x02\x1aTendermint\\P2p\\GPBMetadata\xea\x02\x0fTendermint::P2pb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.p2p.types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\022com.tendermint.p2pB\nTypesProtoP\001Z1github.com/cometbft/cometbft/proto/tendermint/p2p\242\002\003TPX\252\002\016Tendermint.P2p\312\002\016Tendermint\\P2p\342\002\032Tendermint\\P2p\\GPBMetadata\352\002\017Tendermint::P2p' - _globals['_NETADDRESS'].fields_by_name['id']._loaded_options = None - _globals['_NETADDRESS'].fields_by_name['id']._serialized_options = b'\342\336\037\002ID' - _globals['_NETADDRESS'].fields_by_name['ip']._loaded_options = None - _globals['_NETADDRESS'].fields_by_name['ip']._serialized_options = b'\342\336\037\002IP' - _globals['_PROTOCOLVERSION'].fields_by_name['p2p']._loaded_options = None - _globals['_PROTOCOLVERSION'].fields_by_name['p2p']._serialized_options = b'\342\336\037\003P2P' - _globals['_DEFAULTNODEINFO'].fields_by_name['protocol_version']._loaded_options = None - _globals['_DEFAULTNODEINFO'].fields_by_name['protocol_version']._serialized_options = b'\310\336\037\000' - _globals['_DEFAULTNODEINFO'].fields_by_name['default_node_id']._loaded_options = None - _globals['_DEFAULTNODEINFO'].fields_by_name['default_node_id']._serialized_options = b'\342\336\037\rDefaultNodeID' - _globals['_DEFAULTNODEINFO'].fields_by_name['other']._loaded_options = None - _globals['_DEFAULTNODEINFO'].fields_by_name['other']._serialized_options = b'\310\336\037\000' - _globals['_DEFAULTNODEINFOOTHER'].fields_by_name['rpc_address']._loaded_options = None - _globals['_DEFAULTNODEINFOOTHER'].fields_by_name['rpc_address']._serialized_options = b'\342\336\037\nRPCAddress' - _globals['_NETADDRESS']._serialized_start=68 - _globals['_NETADDRESS']._serialized_end=148 - _globals['_PROTOCOLVERSION']._serialized_start=150 - _globals['_PROTOCOLVERSION']._serialized_end=234 - _globals['_DEFAULTNODEINFO']._serialized_start=237 - _globals['_DEFAULTNODEINFO']._serialized_end=600 - _globals['_DEFAULTNODEINFOOTHER']._serialized_start=602 - _globals['_DEFAULTNODEINFOOTHER']._serialized_end=700 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/block_pb2.py b/pyinjective/proto/tendermint/types/block_pb2.py deleted file mode 100644 index fcbd42d0..00000000 --- a/pyinjective/proto/tendermint/types/block_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/types/block.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.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 -from pyinjective.proto.tendermint.types import evidence_pb2 as tendermint_dot_types_dot_evidence__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctendermint/types/block.proto\x12\x10tendermint.types\x1a\x14gogoproto/gogo.proto\x1a\x1ctendermint/types/types.proto\x1a\x1ftendermint/types/evidence.proto\"\xee\x01\n\x05\x42lock\x12\x36\n\x06header\x18\x01 \x01(\x0b\x32\x18.tendermint.types.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.tendermint.types.DataB\x04\xc8\xde\x1f\x00R\x04\x64\x61ta\x12@\n\x08\x65vidence\x18\x03 \x01(\x0b\x32\x1e.tendermint.types.EvidenceListB\x04\xc8\xde\x1f\x00R\x08\x65vidence\x12\x39\n\x0blast_commit\x18\x04 \x01(\x0b\x32\x18.tendermint.types.CommitR\nlastCommitB\xb8\x01\n\x14\x63om.tendermint.typesB\nBlockProtoP\x01Z3github.com/cometbft/cometbft/proto/tendermint/types\xa2\x02\x03TTX\xaa\x02\x10Tendermint.Types\xca\x02\x10Tendermint\\Types\xe2\x02\x1cTendermint\\Types\\GPBMetadata\xea\x02\x11Tendermint::Typesb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.types.block_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\024com.tendermint.typesB\nBlockProtoP\001Z3github.com/cometbft/cometbft/proto/tendermint/types\242\002\003TTX\252\002\020Tendermint.Types\312\002\020Tendermint\\Types\342\002\034Tendermint\\Types\\GPBMetadata\352\002\021Tendermint::Types' - _globals['_BLOCK'].fields_by_name['header']._loaded_options = None - _globals['_BLOCK'].fields_by_name['header']._serialized_options = b'\310\336\037\000' - _globals['_BLOCK'].fields_by_name['data']._loaded_options = None - _globals['_BLOCK'].fields_by_name['data']._serialized_options = b'\310\336\037\000' - _globals['_BLOCK'].fields_by_name['evidence']._loaded_options = None - _globals['_BLOCK'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' - _globals['_BLOCK']._serialized_start=136 - _globals['_BLOCK']._serialized_end=374 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/evidence_pb2.py b/pyinjective/proto/tendermint/types/evidence_pb2.py deleted file mode 100644 index d7f5ae43..00000000 --- a/pyinjective/proto/tendermint/types/evidence_pb2.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/types/evidence.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 google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_dot_types__pb2 -from pyinjective.proto.tendermint.types import validator_pb2 as tendermint_dot_types_dot_validator__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ftendermint/types/evidence.proto\x12\x10tendermint.types\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1ctendermint/types/types.proto\x1a tendermint/types/validator.proto\"\xe4\x01\n\x08\x45vidence\x12\x61\n\x17\x64uplicate_vote_evidence\x18\x01 \x01(\x0b\x32\'.tendermint.types.DuplicateVoteEvidenceH\x00R\x15\x64uplicateVoteEvidence\x12n\n\x1clight_client_attack_evidence\x18\x02 \x01(\x0b\x32+.tendermint.types.LightClientAttackEvidenceH\x00R\x19lightClientAttackEvidenceB\x05\n\x03sum\"\x90\x02\n\x15\x44uplicateVoteEvidence\x12-\n\x06vote_a\x18\x01 \x01(\x0b\x32\x16.tendermint.types.VoteR\x05voteA\x12-\n\x06vote_b\x18\x02 \x01(\x0b\x32\x16.tendermint.types.VoteR\x05voteB\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\x12\'\n\x0fvalidator_power\x18\x04 \x01(\x03R\x0evalidatorPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"\xcd\x02\n\x19LightClientAttackEvidence\x12I\n\x11\x63onflicting_block\x18\x01 \x01(\x0b\x32\x1c.tendermint.types.LightBlockR\x10\x63onflictingBlock\x12#\n\rcommon_height\x18\x02 \x01(\x03R\x0c\x63ommonHeight\x12N\n\x14\x62yzantine_validators\x18\x03 \x03(\x0b\x32\x1b.tendermint.types.ValidatorR\x13\x62yzantineValidators\x12,\n\x12total_voting_power\x18\x04 \x01(\x03R\x10totalVotingPower\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\"L\n\x0c\x45videnceList\x12<\n\x08\x65vidence\x18\x01 \x03(\x0b\x32\x1a.tendermint.types.EvidenceB\x04\xc8\xde\x1f\x00R\x08\x65videnceB\xbb\x01\n\x14\x63om.tendermint.typesB\rEvidenceProtoP\x01Z3github.com/cometbft/cometbft/proto/tendermint/types\xa2\x02\x03TTX\xaa\x02\x10Tendermint.Types\xca\x02\x10Tendermint\\Types\xe2\x02\x1cTendermint\\Types\\GPBMetadata\xea\x02\x11Tendermint::Typesb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.types.evidence_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\024com.tendermint.typesB\rEvidenceProtoP\001Z3github.com/cometbft/cometbft/proto/tendermint/types\242\002\003TTX\252\002\020Tendermint.Types\312\002\020Tendermint\\Types\342\002\034Tendermint\\Types\\GPBMetadata\352\002\021Tendermint::Types' - _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._loaded_options = None - _globals['_DUPLICATEVOTEEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._loaded_options = None - _globals['_LIGHTCLIENTATTACKEVIDENCE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_EVIDENCELIST'].fields_by_name['evidence']._loaded_options = None - _globals['_EVIDENCELIST'].fields_by_name['evidence']._serialized_options = b'\310\336\037\000' - _globals['_EVIDENCE']._serialized_start=173 - _globals['_EVIDENCE']._serialized_end=401 - _globals['_DUPLICATEVOTEEVIDENCE']._serialized_start=404 - _globals['_DUPLICATEVOTEEVIDENCE']._serialized_end=676 - _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_start=679 - _globals['_LIGHTCLIENTATTACKEVIDENCE']._serialized_end=1012 - _globals['_EVIDENCELIST']._serialized_start=1014 - _globals['_EVIDENCELIST']._serialized_end=1090 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/params_pb2.py b/pyinjective/proto/tendermint/types/params_pb2.py deleted file mode 100644 index 1f8df4df..00000000 --- a/pyinjective/proto/tendermint/types/params_pb2.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/types/params.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 google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dtendermint/types/params.proto\x12\x10tendermint.types\x1a\x14gogoproto/gogo.proto\x1a\x1egoogle/protobuf/duration.proto\"\xb2\x02\n\x0f\x43onsensusParams\x12\x33\n\x05\x62lock\x18\x01 \x01(\x0b\x32\x1d.tendermint.types.BlockParamsR\x05\x62lock\x12<\n\x08\x65vidence\x18\x02 \x01(\x0b\x32 .tendermint.types.EvidenceParamsR\x08\x65vidence\x12?\n\tvalidator\x18\x03 \x01(\x0b\x32!.tendermint.types.ValidatorParamsR\tvalidator\x12\x39\n\x07version\x18\x04 \x01(\x0b\x32\x1f.tendermint.types.VersionParamsR\x07version\x12\x30\n\x04\x61\x62\x63i\x18\x05 \x01(\x0b\x32\x1c.tendermint.types.ABCIParamsR\x04\x61\x62\x63i\"I\n\x0b\x42lockParams\x12\x1b\n\tmax_bytes\x18\x01 \x01(\x03R\x08maxBytes\x12\x17\n\x07max_gas\x18\x02 \x01(\x03R\x06maxGasJ\x04\x08\x03\x10\x04\"\xa9\x01\n\x0e\x45videnceParams\x12+\n\x12max_age_num_blocks\x18\x01 \x01(\x03R\x0fmaxAgeNumBlocks\x12M\n\x10max_age_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0emaxAgeDuration\x12\x1b\n\tmax_bytes\x18\x03 \x01(\x03R\x08maxBytes\"?\n\x0fValidatorParams\x12\"\n\rpub_key_types\x18\x01 \x03(\tR\x0bpubKeyTypes:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"+\n\rVersionParams\x12\x10\n\x03\x61pp\x18\x01 \x01(\x04R\x03\x61pp:\x08\xb8\xa0\x1f\x01\xe8\xa0\x1f\x01\"Z\n\x0cHashedParams\x12&\n\x0f\x62lock_max_bytes\x18\x01 \x01(\x03R\rblockMaxBytes\x12\"\n\rblock_max_gas\x18\x02 \x01(\x03R\x0b\x62lockMaxGas\"O\n\nABCIParams\x12\x41\n\x1dvote_extensions_enable_height\x18\x01 \x01(\x03R\x1avoteExtensionsEnableHeightB\xbd\x01\n\x14\x63om.tendermint.typesB\x0bParamsProtoP\x01Z3github.com/cometbft/cometbft/proto/tendermint/types\xa2\x02\x03TTX\xaa\x02\x10Tendermint.Types\xca\x02\x10Tendermint\\Types\xe2\x02\x1cTendermint\\Types\\GPBMetadata\xea\x02\x11Tendermint::Types\xa8\xe2\x1e\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.types.params_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\024com.tendermint.typesB\013ParamsProtoP\001Z3github.com/cometbft/cometbft/proto/tendermint/types\242\002\003TTX\252\002\020Tendermint.Types\312\002\020Tendermint\\Types\342\002\034Tendermint\\Types\\GPBMetadata\352\002\021Tendermint::Types\250\342\036\001' - _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._loaded_options = None - _globals['_EVIDENCEPARAMS'].fields_by_name['max_age_duration']._serialized_options = b'\310\336\037\000\230\337\037\001' - _globals['_VALIDATORPARAMS']._loaded_options = None - _globals['_VALIDATORPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' - _globals['_VERSIONPARAMS']._loaded_options = None - _globals['_VERSIONPARAMS']._serialized_options = b'\270\240\037\001\350\240\037\001' - _globals['_CONSENSUSPARAMS']._serialized_start=106 - _globals['_CONSENSUSPARAMS']._serialized_end=412 - _globals['_BLOCKPARAMS']._serialized_start=414 - _globals['_BLOCKPARAMS']._serialized_end=487 - _globals['_EVIDENCEPARAMS']._serialized_start=490 - _globals['_EVIDENCEPARAMS']._serialized_end=659 - _globals['_VALIDATORPARAMS']._serialized_start=661 - _globals['_VALIDATORPARAMS']._serialized_end=724 - _globals['_VERSIONPARAMS']._serialized_start=726 - _globals['_VERSIONPARAMS']._serialized_end=769 - _globals['_HASHEDPARAMS']._serialized_start=771 - _globals['_HASHEDPARAMS']._serialized_end=861 - _globals['_ABCIPARAMS']._serialized_start=863 - _globals['_ABCIPARAMS']._serialized_end=942 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/types_pb2.py b/pyinjective/proto/tendermint/types/types_pb2.py deleted file mode 100644 index 8d569a24..00000000 --- a/pyinjective/proto/tendermint/types/types_pb2.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/types/types.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 google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -from pyinjective.proto.tendermint.crypto import proof_pb2 as tendermint_dot_crypto_dot_proof__pb2 -from pyinjective.proto.tendermint.version import types_pb2 as tendermint_dot_version_dot_types__pb2 -from pyinjective.proto.tendermint.types import validator_pb2 as tendermint_dot_types_dot_validator__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctendermint/types/types.proto\x12\x10tendermint.types\x1a\x14gogoproto/gogo.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dtendermint/crypto/proof.proto\x1a\x1etendermint/version/types.proto\x1a tendermint/types/validator.proto\"9\n\rPartSetHeader\x12\x14\n\x05total\x18\x01 \x01(\rR\x05total\x12\x12\n\x04hash\x18\x02 \x01(\x0cR\x04hash\"h\n\x04Part\x12\x14\n\x05index\x18\x01 \x01(\rR\x05index\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x0cR\x05\x62ytes\x12\x34\n\x05proof\x18\x03 \x01(\x0b\x32\x18.tendermint.crypto.ProofB\x04\xc8\xde\x1f\x00R\x05proof\"l\n\x07\x42lockID\x12\x12\n\x04hash\x18\x01 \x01(\x0cR\x04hash\x12M\n\x0fpart_set_header\x18\x02 \x01(\x0b\x32\x1f.tendermint.types.PartSetHeaderB\x04\xc8\xde\x1f\x00R\rpartSetHeader\"\xe6\x04\n\x06Header\x12=\n\x07version\x18\x01 \x01(\x0b\x32\x1d.tendermint.version.ConsensusB\x04\xc8\xde\x1f\x00R\x07version\x12&\n\x08\x63hain_id\x18\x02 \x01(\tB\x0b\xe2\xde\x1f\x07\x43hainIDR\x07\x63hainId\x12\x16\n\x06height\x18\x03 \x01(\x03R\x06height\x12\x38\n\x04time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\x04time\x12\x43\n\rlast_block_id\x18\x05 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x04\xc8\xde\x1f\x00R\x0blastBlockId\x12(\n\x10last_commit_hash\x18\x06 \x01(\x0cR\x0elastCommitHash\x12\x1b\n\tdata_hash\x18\x07 \x01(\x0cR\x08\x64\x61taHash\x12\'\n\x0fvalidators_hash\x18\x08 \x01(\x0cR\x0evalidatorsHash\x12\x30\n\x14next_validators_hash\x18\t \x01(\x0cR\x12nextValidatorsHash\x12%\n\x0e\x63onsensus_hash\x18\n \x01(\x0cR\rconsensusHash\x12\x19\n\x08\x61pp_hash\x18\x0b \x01(\x0cR\x07\x61ppHash\x12*\n\x11last_results_hash\x18\x0c \x01(\x0cR\x0flastResultsHash\x12#\n\revidence_hash\x18\r \x01(\x0cR\x0c\x65videnceHash\x12)\n\x10proposer_address\x18\x0e \x01(\x0cR\x0fproposerAddress\"\x18\n\x04\x44\x61ta\x12\x10\n\x03txs\x18\x01 \x03(\x0cR\x03txs\"\xb7\x03\n\x04Vote\x12\x33\n\x04type\x18\x01 \x01(\x0e\x32\x1f.tendermint.types.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x45\n\x08\x62lock_id\x18\x04 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12+\n\x11validator_address\x18\x06 \x01(\x0cR\x10validatorAddress\x12\'\n\x0fvalidator_index\x18\x07 \x01(\x05R\x0evalidatorIndex\x12\x1c\n\tsignature\x18\x08 \x01(\x0cR\tsignature\x12\x1c\n\textension\x18\t \x01(\x0cR\textension\x12/\n\x13\x65xtension_signature\x18\n \x01(\x0cR\x12\x65xtensionSignature\"\xc0\x01\n\x06\x43ommit\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x45\n\x08\x62lock_id\x18\x03 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x41\n\nsignatures\x18\x04 \x03(\x0b\x32\x1b.tendermint.types.CommitSigB\x04\xc8\xde\x1f\x00R\nsignatures\"\xdd\x01\n\tCommitSig\x12\x41\n\rblock_id_flag\x18\x01 \x01(\x0e\x32\x1d.tendermint.types.BlockIDFlagR\x0b\x62lockIdFlag\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x42\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignature\"\xe1\x01\n\x0e\x45xtendedCommit\x12\x16\n\x06height\x18\x01 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x45\n\x08\x62lock_id\x18\x03 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12Z\n\x13\x65xtended_signatures\x18\x04 \x03(\x0b\x32#.tendermint.types.ExtendedCommitSigB\x04\xc8\xde\x1f\x00R\x12\x65xtendedSignatures\"\xb4\x02\n\x11\x45xtendedCommitSig\x12\x41\n\rblock_id_flag\x18\x01 \x01(\x0e\x32\x1d.tendermint.types.BlockIDFlagR\x0b\x62lockIdFlag\x12+\n\x11validator_address\x18\x02 \x01(\x0cR\x10validatorAddress\x12\x42\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignature\x12\x1c\n\textension\x18\x05 \x01(\x0cR\textension\x12/\n\x13\x65xtension_signature\x18\x06 \x01(\x0cR\x12\x65xtensionSignature\"\xb3\x02\n\x08Proposal\x12\x33\n\x04type\x18\x01 \x01(\x0e\x32\x1f.tendermint.types.SignedMsgTypeR\x04type\x12\x16\n\x06height\x18\x02 \x01(\x03R\x06height\x12\x14\n\x05round\x18\x03 \x01(\x05R\x05round\x12\x1b\n\tpol_round\x18\x04 \x01(\x05R\x08polRound\x12\x45\n\x08\x62lock_id\x18\x05 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x42\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12\x1c\n\tsignature\x18\x07 \x01(\x0cR\tsignature\"r\n\x0cSignedHeader\x12\x30\n\x06header\x18\x01 \x01(\x0b\x32\x18.tendermint.types.HeaderR\x06header\x12\x30\n\x06\x63ommit\x18\x02 \x01(\x0b\x32\x18.tendermint.types.CommitR\x06\x63ommit\"\x96\x01\n\nLightBlock\x12\x43\n\rsigned_header\x18\x01 \x01(\x0b\x32\x1e.tendermint.types.SignedHeaderR\x0csignedHeader\x12\x43\n\rvalidator_set\x18\x02 \x01(\x0b\x32\x1e.tendermint.types.ValidatorSetR\x0cvalidatorSet\"\xc2\x01\n\tBlockMeta\x12\x45\n\x08\x62lock_id\x18\x01 \x01(\x0b\x32\x19.tendermint.types.BlockIDB\x0f\xc8\xde\x1f\x00\xe2\xde\x1f\x07\x42lockIDR\x07\x62lockId\x12\x1d\n\nblock_size\x18\x02 \x01(\x03R\tblockSize\x12\x36\n\x06header\x18\x03 \x01(\x0b\x32\x18.tendermint.types.HeaderB\x04\xc8\xde\x1f\x00R\x06header\x12\x17\n\x07num_txs\x18\x04 \x01(\x03R\x06numTxs\"j\n\x07TxProof\x12\x1b\n\troot_hash\x18\x01 \x01(\x0cR\x08rootHash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\x0cR\x04\x64\x61ta\x12.\n\x05proof\x18\x03 \x01(\x0b\x32\x18.tendermint.crypto.ProofR\x05proof*\xd7\x01\n\rSignedMsgType\x12,\n\x17SIGNED_MSG_TYPE_UNKNOWN\x10\x00\x1a\x0f\x8a\x9d \x0bUnknownType\x12,\n\x17SIGNED_MSG_TYPE_PREVOTE\x10\x01\x1a\x0f\x8a\x9d \x0bPrevoteType\x12\x30\n\x19SIGNED_MSG_TYPE_PRECOMMIT\x10\x02\x1a\x11\x8a\x9d \rPrecommitType\x12.\n\x18SIGNED_MSG_TYPE_PROPOSAL\x10 \x1a\x10\x8a\x9d \x0cProposalType\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xb8\x01\n\x14\x63om.tendermint.typesB\nTypesProtoP\x01Z3github.com/cometbft/cometbft/proto/tendermint/types\xa2\x02\x03TTX\xaa\x02\x10Tendermint.Types\xca\x02\x10Tendermint\\Types\xe2\x02\x1cTendermint\\Types\\GPBMetadata\xea\x02\x11Tendermint::Typesb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.types.types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\024com.tendermint.typesB\nTypesProtoP\001Z3github.com/cometbft/cometbft/proto/tendermint/types\242\002\003TTX\252\002\020Tendermint.Types\312\002\020Tendermint\\Types\342\002\034Tendermint\\Types\\GPBMetadata\352\002\021Tendermint::Types' - _globals['_SIGNEDMSGTYPE']._loaded_options = None - _globals['_SIGNEDMSGTYPE']._serialized_options = b'\210\243\036\000\250\244\036\001' - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._loaded_options = None - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_UNKNOWN"]._serialized_options = b'\212\235 \013UnknownType' - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._loaded_options = None - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PREVOTE"]._serialized_options = b'\212\235 \013PrevoteType' - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._loaded_options = None - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PRECOMMIT"]._serialized_options = b'\212\235 \rPrecommitType' - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._loaded_options = None - _globals['_SIGNEDMSGTYPE'].values_by_name["SIGNED_MSG_TYPE_PROPOSAL"]._serialized_options = b'\212\235 \014ProposalType' - _globals['_PART'].fields_by_name['proof']._loaded_options = None - _globals['_PART'].fields_by_name['proof']._serialized_options = b'\310\336\037\000' - _globals['_BLOCKID'].fields_by_name['part_set_header']._loaded_options = None - _globals['_BLOCKID'].fields_by_name['part_set_header']._serialized_options = b'\310\336\037\000' - _globals['_HEADER'].fields_by_name['version']._loaded_options = None - _globals['_HEADER'].fields_by_name['version']._serialized_options = b'\310\336\037\000' - _globals['_HEADER'].fields_by_name['chain_id']._loaded_options = None - _globals['_HEADER'].fields_by_name['chain_id']._serialized_options = b'\342\336\037\007ChainID' - _globals['_HEADER'].fields_by_name['time']._loaded_options = None - _globals['_HEADER'].fields_by_name['time']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_HEADER'].fields_by_name['last_block_id']._loaded_options = None - _globals['_HEADER'].fields_by_name['last_block_id']._serialized_options = b'\310\336\037\000' - _globals['_VOTE'].fields_by_name['block_id']._loaded_options = None - _globals['_VOTE'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' - _globals['_VOTE'].fields_by_name['timestamp']._loaded_options = None - _globals['_VOTE'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_COMMIT'].fields_by_name['block_id']._loaded_options = None - _globals['_COMMIT'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' - _globals['_COMMIT'].fields_by_name['signatures']._loaded_options = None - _globals['_COMMIT'].fields_by_name['signatures']._serialized_options = b'\310\336\037\000' - _globals['_COMMITSIG'].fields_by_name['timestamp']._loaded_options = None - _globals['_COMMITSIG'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_EXTENDEDCOMMIT'].fields_by_name['block_id']._loaded_options = None - _globals['_EXTENDEDCOMMIT'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' - _globals['_EXTENDEDCOMMIT'].fields_by_name['extended_signatures']._loaded_options = None - _globals['_EXTENDEDCOMMIT'].fields_by_name['extended_signatures']._serialized_options = b'\310\336\037\000' - _globals['_EXTENDEDCOMMITSIG'].fields_by_name['timestamp']._loaded_options = None - _globals['_EXTENDEDCOMMITSIG'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_PROPOSAL'].fields_by_name['block_id']._loaded_options = None - _globals['_PROPOSAL'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' - _globals['_PROPOSAL'].fields_by_name['timestamp']._loaded_options = None - _globals['_PROPOSAL'].fields_by_name['timestamp']._serialized_options = b'\310\336\037\000\220\337\037\001' - _globals['_BLOCKMETA'].fields_by_name['block_id']._loaded_options = None - _globals['_BLOCKMETA'].fields_by_name['block_id']._serialized_options = b'\310\336\037\000\342\336\037\007BlockID' - _globals['_BLOCKMETA'].fields_by_name['header']._loaded_options = None - _globals['_BLOCKMETA'].fields_by_name['header']._serialized_options = b'\310\336\037\000' - _globals['_SIGNEDMSGTYPE']._serialized_start=3405 - _globals['_SIGNEDMSGTYPE']._serialized_end=3620 - _globals['_PARTSETHEADER']._serialized_start=202 - _globals['_PARTSETHEADER']._serialized_end=259 - _globals['_PART']._serialized_start=261 - _globals['_PART']._serialized_end=365 - _globals['_BLOCKID']._serialized_start=367 - _globals['_BLOCKID']._serialized_end=475 - _globals['_HEADER']._serialized_start=478 - _globals['_HEADER']._serialized_end=1092 - _globals['_DATA']._serialized_start=1094 - _globals['_DATA']._serialized_end=1118 - _globals['_VOTE']._serialized_start=1121 - _globals['_VOTE']._serialized_end=1560 - _globals['_COMMIT']._serialized_start=1563 - _globals['_COMMIT']._serialized_end=1755 - _globals['_COMMITSIG']._serialized_start=1758 - _globals['_COMMITSIG']._serialized_end=1979 - _globals['_EXTENDEDCOMMIT']._serialized_start=1982 - _globals['_EXTENDEDCOMMIT']._serialized_end=2207 - _globals['_EXTENDEDCOMMITSIG']._serialized_start=2210 - _globals['_EXTENDEDCOMMITSIG']._serialized_end=2518 - _globals['_PROPOSAL']._serialized_start=2521 - _globals['_PROPOSAL']._serialized_end=2828 - _globals['_SIGNEDHEADER']._serialized_start=2830 - _globals['_SIGNEDHEADER']._serialized_end=2944 - _globals['_LIGHTBLOCK']._serialized_start=2947 - _globals['_LIGHTBLOCK']._serialized_end=3097 - _globals['_BLOCKMETA']._serialized_start=3100 - _globals['_BLOCKMETA']._serialized_end=3294 - _globals['_TXPROOF']._serialized_start=3296 - _globals['_TXPROOF']._serialized_end=3402 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/types/validator_pb2.py b/pyinjective/proto/tendermint/types/validator_pb2.py deleted file mode 100644 index 74283b73..00000000 --- a/pyinjective/proto/tendermint/types/validator_pb2.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/types/validator.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.tendermint.crypto import keys_pb2 as tendermint_dot_crypto_dot_keys__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n tendermint/types/validator.proto\x12\x10tendermint.types\x1a\x14gogoproto/gogo.proto\x1a\x1ctendermint/crypto/keys.proto\"\xb2\x01\n\x0cValidatorSet\x12;\n\nvalidators\x18\x01 \x03(\x0b\x32\x1b.tendermint.types.ValidatorR\nvalidators\x12\x37\n\x08proposer\x18\x02 \x01(\x0b\x32\x1b.tendermint.types.ValidatorR\x08proposer\x12,\n\x12total_voting_power\x18\x03 \x01(\x03R\x10totalVotingPower\"\xb2\x01\n\tValidator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0cR\x07\x61\x64\x64ress\x12;\n\x07pub_key\x18\x02 \x01(\x0b\x32\x1c.tendermint.crypto.PublicKeyB\x04\xc8\xde\x1f\x00R\x06pubKey\x12!\n\x0cvoting_power\x18\x03 \x01(\x03R\x0bvotingPower\x12+\n\x11proposer_priority\x18\x04 \x01(\x03R\x10proposerPriority\"k\n\x0fSimpleValidator\x12\x35\n\x07pub_key\x18\x01 \x01(\x0b\x32\x1c.tendermint.crypto.PublicKeyR\x06pubKey\x12!\n\x0cvoting_power\x18\x02 \x01(\x03R\x0bvotingPower*\xd7\x01\n\x0b\x42lockIDFlag\x12\x31\n\x15\x42LOCK_ID_FLAG_UNKNOWN\x10\x00\x1a\x16\x8a\x9d \x12\x42lockIDFlagUnknown\x12/\n\x14\x42LOCK_ID_FLAG_ABSENT\x10\x01\x1a\x15\x8a\x9d \x11\x42lockIDFlagAbsent\x12/\n\x14\x42LOCK_ID_FLAG_COMMIT\x10\x02\x1a\x15\x8a\x9d \x11\x42lockIDFlagCommit\x12)\n\x11\x42LOCK_ID_FLAG_NIL\x10\x03\x1a\x12\x8a\x9d \x0e\x42lockIDFlagNil\x1a\x08\x88\xa3\x1e\x00\xa8\xa4\x1e\x01\x42\xbc\x01\n\x14\x63om.tendermint.typesB\x0eValidatorProtoP\x01Z3github.com/cometbft/cometbft/proto/tendermint/types\xa2\x02\x03TTX\xaa\x02\x10Tendermint.Types\xca\x02\x10Tendermint\\Types\xe2\x02\x1cTendermint\\Types\\GPBMetadata\xea\x02\x11Tendermint::Typesb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.types.validator_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\024com.tendermint.typesB\016ValidatorProtoP\001Z3github.com/cometbft/cometbft/proto/tendermint/types\242\002\003TTX\252\002\020Tendermint.Types\312\002\020Tendermint\\Types\342\002\034Tendermint\\Types\\GPBMetadata\352\002\021Tendermint::Types' - _globals['_BLOCKIDFLAG']._loaded_options = None - _globals['_BLOCKIDFLAG']._serialized_options = b'\210\243\036\000\250\244\036\001' - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._loaded_options = None - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_UNKNOWN"]._serialized_options = b'\212\235 \022BlockIDFlagUnknown' - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._loaded_options = None - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_ABSENT"]._serialized_options = b'\212\235 \021BlockIDFlagAbsent' - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._loaded_options = None - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_COMMIT"]._serialized_options = b'\212\235 \021BlockIDFlagCommit' - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._loaded_options = None - _globals['_BLOCKIDFLAG'].values_by_name["BLOCK_ID_FLAG_NIL"]._serialized_options = b'\212\235 \016BlockIDFlagNil' - _globals['_VALIDATOR'].fields_by_name['pub_key']._loaded_options = None - _globals['_VALIDATOR'].fields_by_name['pub_key']._serialized_options = b'\310\336\037\000' - _globals['_BLOCKIDFLAG']._serialized_start=578 - _globals['_BLOCKIDFLAG']._serialized_end=793 - _globals['_VALIDATORSET']._serialized_start=107 - _globals['_VALIDATORSET']._serialized_end=285 - _globals['_VALIDATOR']._serialized_start=288 - _globals['_VALIDATOR']._serialized_end=466 - _globals['_SIMPLEVALIDATOR']._serialized_start=468 - _globals['_SIMPLEVALIDATOR']._serialized_end=575 -# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/tendermint/version/types_pb2.py b/pyinjective/proto/tendermint/version/types_pb2.py deleted file mode 100644 index e93791f7..00000000 --- a/pyinjective/proto/tendermint/version/types_pb2.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: tendermint/version/types.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\x1etendermint/version/types.proto\x12\x12tendermint.version\x1a\x14gogoproto/gogo.proto\"=\n\x03\x41pp\x12\x1a\n\x08protocol\x18\x01 \x01(\x04R\x08protocol\x12\x1a\n\x08software\x18\x02 \x01(\tR\x08software\"9\n\tConsensus\x12\x14\n\x05\x62lock\x18\x01 \x01(\x04R\x05\x62lock\x12\x10\n\x03\x61pp\x18\x02 \x01(\x04R\x03\x61pp:\x04\xe8\xa0\x1f\x01\x42\xc4\x01\n\x16\x63om.tendermint.versionB\nTypesProtoP\x01Z5github.com/cometbft/cometbft/proto/tendermint/version\xa2\x02\x03TVX\xaa\x02\x12Tendermint.Version\xca\x02\x12Tendermint\\Version\xe2\x02\x1eTendermint\\Version\\GPBMetadata\xea\x02\x13Tendermint::Versionb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tendermint.version.types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\026com.tendermint.versionB\nTypesProtoP\001Z5github.com/cometbft/cometbft/proto/tendermint/version\242\002\003TVX\252\002\022Tendermint.Version\312\002\022Tendermint\\Version\342\002\036Tendermint\\Version\\GPBMetadata\352\002\023Tendermint::Version' - _globals['_CONSENSUS']._loaded_options = None - _globals['_CONSENSUS']._serialized_options = b'\350\240\037\001' - _globals['_APP']._serialized_start=76 - _globals['_APP']._serialized_end=137 - _globals['_CONSENSUS']._serialized_start=139 - _globals['_CONSENSUS']._serialized_end=196 -# @@protoc_insertion_point(module_scope) From 26cf36a133a5487e2c261b96ea8f925b3dce55b0 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 22 May 2025 15:53:54 -0300 Subject: [PATCH 18/35] feat: upgraded Indexer proto to version v1.16.0-rc2. Updated gas estimator using heuristics include GTB orders --- Makefile | 2 +- buf.gen.yaml | 8 +- examples/chain_client/1_LocalOrderHash.py | 8 +- .../exchange/25_MsgUpdateDerivativeMarket.py | 1 + .../exchange/28_MsgCreateGTBSpotLimitOrder.py | 78 + .../29_MsgCreateGTBDerivativeLimitOrder.py | 80 + .../4_MsgInstantPerpetualMarketLaunch.py | 1 + .../exchange/6_MsgCreateSpotLimitOrder.py | 67 +- .../tendermint/query/3_GetLatestBlock.py | 3 +- .../22_OrderbooksV2.py | 6 +- .../24_OpenInterest.py | 24 + .../derivative_exchange_rpc/4_Orderbook.py | 6 +- .../6_StreamOrderbookUpdate.py | 2 +- .../exchange_client/oracle_rpc/4_PriceV2.py | 26 + .../spot_exchange_rpc/14_Orderbooks.py | 6 +- .../spot_exchange_rpc/4_Orderbook.py | 6 +- .../8_StreamOrderbookUpdate.py | 2 +- poetry.lock | 1604 +++++++++-------- pyinjective/async_client.py | 37 +- .../grpc/indexer_grpc_derivative_api.py | 14 +- .../indexer/grpc/indexer_grpc_oracle_api.py | 8 +- .../indexer/grpc/indexer_grpc_spot_api.py | 8 +- pyinjective/composer.py | 30 +- .../gas_heuristics_gas_limit_estimator.py | 119 +- .../proto/exchange/injective_chart_rpc_pb2.py | 12 +- .../exchange/injective_chart_rpc_pb2_grpc.py | 44 + .../injective_derivative_exchange_rpc_pb2.py | 230 +-- ...ective_derivative_exchange_rpc_pb2_grpc.py | 44 + .../exchange/injective_oracle_rpc_pb2.py | 30 +- .../exchange/injective_oracle_rpc_pb2_grpc.py | 44 + .../injective_spot_exchange_rpc_pb2.py | 168 +- .../exchange/injective_trading_rpc_pb2.py | 36 +- .../injective_trading_rpc_pb2_grpc.py | 44 + .../exchange/v1beta1/exchange_pb2.py | 222 +-- .../injective/exchange/v1beta1/tx_pb2.py | 346 ++-- .../proto/injective/stream/v2/query_pb2.py | 92 +- .../grpc/test_chain_grpc_exchange_api.py | 4 + .../grpc/test_chain_grpc_exchange_v2_api.py | 10 + .../test_chain_grpc_chain_stream.py | 5 + .../configurable_derivative_query_servicer.py | 4 + .../configurable_oracle_query_servicer.py | 4 + .../grpc/test_indexer_grpc_derivative_api.py | 33 +- .../grpc/test_indexer_grpc_oracle_api.py | 42 + .../grpc/test_indexer_grpc_spot_api.py | 5 +- .../grpc/test_tendermint_grpc_api.py | 18 +- ...test_gas_heuristics_gas_limit_estimator.py | 92 +- tests/core/test_gas_limit_estimator.py | 4 +- .../test_async_client_deprecation_warnings.py | 20 - tests/test_composer.py | 46 +- tests/test_composer_deprecation_warnings.py | 53 - 50 files changed, 2151 insertions(+), 1647 deletions(-) create mode 100644 examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py create mode 100644 examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py create mode 100644 examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py create mode 100644 examples/exchange_client/oracle_rpc/4_PriceV2.py diff --git a/Makefile b/Makefile index 5e881d0f..0d132f07 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.15.6 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.0-rc2 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/buf.gen.yaml b/buf.gen.yaml index 88dfadaf..9cac4537 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -21,11 +21,11 @@ inputs: tag: v0.50.13-evm-comet1-inj.2 # - git_repo: https://github.com/InjectiveLabs/wasmd # branch: v0.51.x-inj -# subdir: proto -# - git_repo: https://github.com/InjectiveLabs/injective-core -# tag: v1.15.0 # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - branch: master + tag: v1.16.0-beta.2 subdir: proto +# - git_repo: https://github.com/InjectiveLabs/injective-core +# branch: master +# subdir: proto - directory: proto diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index 792c6272..14098892 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -178,7 +178,7 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) spot_orders = [ - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -187,7 +187,7 @@ async def main() -> None: order_type="BUY_PO", cid=str(uuid.uuid4()), ), - composer.spot_order( + composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -199,7 +199,7 @@ async def main() -> None: ] derivative_orders = [ - composer.derivative_order( + composer.create_derivative_order_v2( market_id=deriv_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -211,7 +211,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_2, fee_recipient=fee_recipient, diff --git a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py index 3afe5f7e..dd70cfb8 100644 --- a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py +++ b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py @@ -51,6 +51,7 @@ async def main() -> None: new_min_notional=Decimal("2"), new_initial_margin_ratio=Decimal("0.40"), new_maintenance_margin_ratio=Decimal("0.085"), + new_reduce_margin_ratio=Decimal("3.5"), ) # broadcast the transaction diff --git a/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py new file mode 100644 index 00000000..a35a10d9 --- /dev/null +++ b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py @@ -0,0 +1,78 @@ +import asyncio +import json +import os +import uuid +from decimal import Decimal + +import dotenv + +from pyinjective.async_client import AsyncClient +from pyinjective.core.broadcaster import MsgBroadcasterWithPk +from pyinjective.core.network import Network +from pyinjective.wallet import PrivateKey + + +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) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( + network=network, + private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + subaccount_id = address.get_subaccount_id(index=0) + + latest_block = await client.fetch_latest_block() + latest_height = int(latest_block["block"]["header"]["height"]) + + # prepare trade info + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + cid = str(uuid.uuid4()) + + # prepare tx msg + msg = composer.msg_create_spot_limit_order_v2( + sender=address.to_acc_bech32(), + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + cid=cid, + expiration_block=latest_height + 10, + ) + + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py new file mode 100644 index 00000000..05e54ecb --- /dev/null +++ b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py @@ -0,0 +1,80 @@ +import asyncio +import json +import os +import uuid +from decimal import Decimal + +import dotenv + +from pyinjective.async_client import AsyncClient +from pyinjective.core.broadcaster import MsgBroadcasterWithPk +from pyinjective.core.network import Network +from pyinjective.wallet import PrivateKey + + +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) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( + network=network, + private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + subaccount_id = address.get_subaccount_id(index=0) + + latest_block = await client.fetch_latest_block() + latest_height = int(latest_block["block"]["header"]["height"]) + + # prepare trade info + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + # prepare tx msg + msg = composer.msg_create_derivative_limit_order_v2( + sender=address.to_acc_bech32(), + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=Decimal(50000), + quantity=Decimal(0.1), + margin=composer.calculate_margin( + quantity=Decimal(0.1), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False + ), + order_type="SELL", + cid=str(uuid.uuid4()), + expiration_block=latest_height + 10, + ) + + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py index f12fa808..082673b4 100644 --- a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py +++ b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py @@ -54,6 +54,7 @@ async def main() -> None: taker_fee_rate=Decimal("0.001"), initial_margin_ratio=Decimal("0.33"), maintenance_margin_ratio=Decimal("0.095"), + reduce_margin_ratio=Decimal("3"), min_price_tick_size=Decimal("0.001"), min_quantity_tick_size=Decimal("0.01"), min_notional=Decimal("1"), diff --git a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py index c03af63e..4753612f 100644 --- a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py +++ b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py @@ -1,15 +1,14 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey @@ -23,7 +22,18 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( + network=network, + private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) # load account priv_key = PrivateKey.from_hex(configured_private_key) @@ -49,54 +59,15 @@ async def main() -> None: cid=cid, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) - print(f"\n\ncid: {cid}") + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tendermint/query/3_GetLatestBlock.py b/examples/chain_client/tendermint/query/3_GetLatestBlock.py index a30748e5..3c856c0d 100644 --- a/examples/chain_client/tendermint/query/3_GetLatestBlock.py +++ b/examples/chain_client/tendermint/query/3_GetLatestBlock.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) latest_block = await client.fetch_latest_block() - print(latest_block) + print(json.dumps(latest_block, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py index def49ded..3aff2265 100644 --- a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py +++ b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network @@ -12,8 +13,9 @@ async def main() -> None: "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", "0xd5e4b12b19ecf176e4e14b42944731c27677819d2ed93be4104ad7025529c7ff", ] - orderbooks = await client.fetch_derivative_orderbooks_v2(market_ids=market_ids) - print(orderbooks) + depth = 1 + orderbooks = await client.fetch_derivative_orderbooks_v2(market_ids=market_ids, depth=depth) + print(json.dumps(orderbooks, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py b/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py new file mode 100644 index 00000000..374a8f3a --- /dev/null +++ b/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py @@ -0,0 +1,24 @@ +import asyncio +import json + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + # select network: local, testnet, mainnet + network = Network.testnet() + client = AsyncClient(network) + market_ids = [ + "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + "0xd97d0da6f6c11710ef06315971250e4e9aed4b7d4cd02059c9477ec8cf243782", + ] + + result = await client.fetch_open_interest( + market_ids=market_ids, + ) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py index 01443459..53e288cb 100644 --- a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network @@ -9,8 +10,9 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - market = await client.fetch_derivative_orderbook_v2(market_id=market_id) - print(market) + depth = 1 + market = await client.fetch_derivative_orderbook_v2(market_id=market_id, depth=depth) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py index 93b00a0a..d961d70e 100644 --- a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py +++ b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py @@ -35,7 +35,7 @@ def __init__(self, market_id: str): async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderbook): # load the snapshot - res = await async_client.fetch_derivative_orderbooks_v2(market_ids=[orderbook.market_id]) + res = await async_client.fetch_derivative_orderbooks_v2(market_ids=[orderbook.market_id], depth=1) for snapshot in res["orderbooks"]: if snapshot["marketId"] != orderbook.market_id: raise Exception("unexpected snapshot") diff --git a/examples/exchange_client/oracle_rpc/4_PriceV2.py b/examples/exchange_client/oracle_rpc/4_PriceV2.py new file mode 100644 index 00000000..8740388f --- /dev/null +++ b/examples/exchange_client/oracle_rpc/4_PriceV2.py @@ -0,0 +1,26 @@ +import asyncio +import json + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + # select network: local, testnet, mainnet + network = Network.testnet() + client = AsyncClient(network) + market = (await client.all_derivative_markets())[ + "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + ] + + filter = client.oracle_price_v2_filter( + base_symbol=market.oracle_base, + quote_symbol=market.oracle_quote, + oracle_type=market.oracle_type, + ) + oracle_prices = await client.fetch_oracle_price_v2(filters=[filter]) + print(json.dumps(oracle_prices, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py index ac672940..ac464c94 100644 --- a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py +++ b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network @@ -11,8 +12,9 @@ async def main() -> None: "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", ] - orderbooks = await client.fetch_spot_orderbooks_v2(market_ids=market_ids) - print(orderbooks) + depth = 1 + orderbooks = await client.fetch_spot_orderbooks_v2(market_ids=market_ids, depth=depth) + print(json.dumps(orderbooks, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py index 9e4e08eb..eb707c31 100644 --- a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network @@ -8,8 +9,9 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - orderbook = await client.fetch_spot_orderbook_v2(market_id=market_id) - print(orderbook) + depth = 1 + orderbook = await client.fetch_spot_orderbook_v2(market_id=market_id, depth=depth) + print(json.dumps(orderbook, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py index 6a7fb247..7bdf4199 100644 --- a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py +++ b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py @@ -35,7 +35,7 @@ def __init__(self, market_id: str): async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderbook): # load the snapshot - res = await async_client.fetch_spot_orderbooks_v2(market_ids=[orderbook.market_id]) + res = await async_client.fetch_spot_orderbooks_v2(market_ids=[orderbook.market_id], depth=0) for snapshot in res["orderbooks"]: if snapshot["marketId"] != orderbook.market_id: raise Exception("unexpected snapshot") diff --git a/poetry.lock b/poetry.lock index fb8af2ef..fa39d6d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,92 +13,92 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.16" +version = "3.11.18" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" files = [ - {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb46bb0f24813e6cede6cc07b1961d4b04f331f7112a23b5e21f567da4ee50aa"}, - {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:54eb3aead72a5c19fad07219acd882c1643a1027fbcdefac9b502c267242f955"}, - {file = "aiohttp-3.11.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:38bea84ee4fe24ebcc8edeb7b54bf20f06fd53ce4d2cc8b74344c5b9620597fd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0666afbe984f6933fe72cd1f1c3560d8c55880a0bdd728ad774006eb4241ecd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba92a2d9ace559a0a14b03d87f47e021e4fa7681dc6970ebbc7b447c7d4b7cd"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ad1d59fd7114e6a08c4814983bb498f391c699f3c78712770077518cae63ff7"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b88a2bf26965f2015a771381624dd4b0839034b70d406dc74fd8be4cc053e3"}, - {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:576f5ca28d1b3276026f7df3ec841ae460e0fc3aac2a47cbf72eabcfc0f102e1"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a2a450bcce4931b295fc0848f384834c3f9b00edfc2150baafb4488c27953de6"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:37dcee4906454ae377be5937ab2a66a9a88377b11dd7c072df7a7c142b63c37c"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4d0c970c0d602b1017e2067ff3b7dac41c98fef4f7472ec2ea26fd8a4e8c2149"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:004511d3413737700835e949433536a2fe95a7d0297edd911a1e9705c5b5ea43"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c15b2271c44da77ee9d822552201180779e5e942f3a71fb74e026bf6172ff287"}, - {file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad9509ffb2396483ceacb1eee9134724443ee45b92141105a4645857244aecc8"}, - {file = "aiohttp-3.11.16-cp310-cp310-win32.whl", hash = "sha256:634d96869be6c4dc232fc503e03e40c42d32cfaa51712aee181e922e61d74814"}, - {file = "aiohttp-3.11.16-cp310-cp310-win_amd64.whl", hash = "sha256:938f756c2b9374bbcc262a37eea521d8a0e6458162f2a9c26329cc87fdf06534"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8cb0688a8d81c63d716e867d59a9ccc389e97ac7037ebef904c2b89334407180"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ad1fb47da60ae1ddfb316f0ff16d1f3b8e844d1a1e154641928ea0583d486ed"}, - {file = "aiohttp-3.11.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df7db76400bf46ec6a0a73192b14c8295bdb9812053f4fe53f4e789f3ea66bbb"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc3a145479a76ad0ed646434d09216d33d08eef0d8c9a11f5ae5cdc37caa3540"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d007aa39a52d62373bd23428ba4a2546eed0e7643d7bf2e41ddcefd54519842c"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6ddd90d9fb4b501c97a4458f1c1720e42432c26cb76d28177c5b5ad4e332601"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a2f451849e6b39e5c226803dcacfa9c7133e9825dcefd2f4e837a2ec5a3bb98"}, - {file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8df6612df74409080575dca38a5237282865408016e65636a76a2eb9348c2567"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:78e6e23b954644737e385befa0deb20233e2dfddf95dd11e9db752bdd2a294d3"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:696ef00e8a1f0cec5e30640e64eca75d8e777933d1438f4facc9c0cdf288a810"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3538bc9fe1b902bef51372462e3d7c96fce2b566642512138a480b7adc9d508"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3ab3367bb7f61ad18793fea2ef71f2d181c528c87948638366bf1de26e239183"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:56a3443aca82abda0e07be2e1ecb76a050714faf2be84256dae291182ba59049"}, - {file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:61c721764e41af907c9d16b6daa05a458f066015abd35923051be8705108ed17"}, - {file = "aiohttp-3.11.16-cp311-cp311-win32.whl", hash = "sha256:3e061b09f6fa42997cf627307f220315e313ece74907d35776ec4373ed718b86"}, - {file = "aiohttp-3.11.16-cp311-cp311-win_amd64.whl", hash = "sha256:745f1ed5e2c687baefc3c5e7b4304e91bf3e2f32834d07baaee243e349624b24"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:911a6e91d08bb2c72938bc17f0a2d97864c531536b7832abee6429d5296e5b27"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac13b71761e49d5f9e4d05d33683bbafef753e876e8e5a7ef26e937dd766713"}, - {file = "aiohttp-3.11.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fd36c119c5d6551bce374fcb5c19269638f8d09862445f85a5a48596fd59f4bb"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d489d9778522fbd0f8d6a5c6e48e3514f11be81cb0a5954bdda06f7e1594b321"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69a2cbd61788d26f8f1e626e188044834f37f6ae3f937bd9f08b65fc9d7e514e"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd464ba806e27ee24a91362ba3621bfc39dbbb8b79f2e1340201615197370f7c"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce63ae04719513dd2651202352a2beb9f67f55cb8490c40f056cea3c5c355ce"}, - {file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b00dd520d88eac9d1768439a59ab3d145065c91a8fab97f900d1b5f802895e"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f6428fee52d2bcf96a8aa7b62095b190ee341ab0e6b1bcf50c615d7966fd45b"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:13ceac2c5cdcc3f64b9015710221ddf81c900c5febc505dbd8f810e770011540"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fadbb8f1d4140825069db3fedbbb843290fd5f5bc0a5dbd7eaf81d91bf1b003b"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6a792ce34b999fbe04a7a71a90c74f10c57ae4c51f65461a411faa70e154154e"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f4065145bf69de124accdd17ea5f4dc770da0a6a6e440c53f6e0a8c27b3e635c"}, - {file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa73e8c2656a3653ae6c307b3f4e878a21f87859a9afab228280ddccd7369d71"}, - {file = "aiohttp-3.11.16-cp312-cp312-win32.whl", hash = "sha256:f244b8e541f414664889e2c87cac11a07b918cb4b540c36f7ada7bfa76571ea2"}, - {file = "aiohttp-3.11.16-cp312-cp312-win_amd64.whl", hash = "sha256:23a15727fbfccab973343b6d1b7181bfb0b4aa7ae280f36fd2f90f5476805682"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a3814760a1a700f3cfd2f977249f1032301d0a12c92aba74605cfa6ce9f78489"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b751a6306f330801665ae69270a8a3993654a85569b3469662efaad6cf5cc50"}, - {file = "aiohttp-3.11.16-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ad497f38a0d6c329cb621774788583ee12321863cd4bd9feee1effd60f2ad133"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca37057625693d097543bd88076ceebeb248291df9d6ca8481349efc0b05dcd0"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5abcbba9f4b463a45c8ca8b7720891200658f6f46894f79517e6cd11f3405ca"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f420bfe862fb357a6d76f2065447ef6f484bc489292ac91e29bc65d2d7a2c84d"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58ede86453a6cf2d6ce40ef0ca15481677a66950e73b0a788917916f7e35a0bb"}, - {file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fdec0213244c39973674ca2a7f5435bf74369e7d4e104d6c7473c81c9bcc8c4"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:72b1b03fb4655c1960403c131740755ec19c5898c82abd3961c364c2afd59fe7"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:780df0d837276276226a1ff803f8d0fa5f8996c479aeef52eb040179f3156cbd"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ecdb8173e6c7aa09eee342ac62e193e6904923bd232e76b4157ac0bfa670609f"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6db7458ab89c7d80bc1f4e930cc9df6edee2200127cfa6f6e080cf619eddfbd"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2540ddc83cc724b13d1838026f6a5ad178510953302a49e6d647f6e1de82bc34"}, - {file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3b4e6db8dc4879015b9955778cfb9881897339c8fab7b3676f8433f849425913"}, - {file = "aiohttp-3.11.16-cp313-cp313-win32.whl", hash = "sha256:493910ceb2764f792db4dc6e8e4b375dae1b08f72e18e8f10f18b34ca17d0979"}, - {file = "aiohttp-3.11.16-cp313-cp313-win_amd64.whl", hash = "sha256:42864e70a248f5f6a49fdaf417d9bc62d6e4d8ee9695b24c5916cb4bb666c802"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bbcba75fe879ad6fd2e0d6a8d937f34a571f116a0e4db37df8079e738ea95c71"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:87a6e922b2b2401e0b0cf6b976b97f11ec7f136bfed445e16384fbf6fd5e8602"}, - {file = "aiohttp-3.11.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccf10f16ab498d20e28bc2b5c1306e9c1512f2840f7b6a67000a517a4b37d5ee"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb3d0cc5cdb926090748ea60172fa8a213cec728bd6c54eae18b96040fcd6227"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d07502cc14ecd64f52b2a74ebbc106893d9a9717120057ea9ea1fd6568a747e7"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:776c8e959a01e5e8321f1dec77964cb6101020a69d5a94cd3d34db6d555e01f7"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0902e887b0e1d50424112f200eb9ae3dfed6c0d0a19fc60f633ae5a57c809656"}, - {file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e87fd812899aa78252866ae03a048e77bd11b80fb4878ce27c23cade239b42b2"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0a950c2eb8ff17361abd8c85987fd6076d9f47d040ebffce67dce4993285e973"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:c10d85e81d0b9ef87970ecbdbfaeec14a361a7fa947118817fcea8e45335fa46"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7951decace76a9271a1ef181b04aa77d3cc309a02a51d73826039003210bdc86"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14461157d8426bcb40bd94deb0450a6fa16f05129f7da546090cebf8f3123b0f"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9756d9b9d4547e091f99d554fbba0d2a920aab98caa82a8fb3d3d9bee3c9ae85"}, - {file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:87944bd16b7fe6160607f6a17808abd25f17f61ae1e26c47a491b970fb66d8cb"}, - {file = "aiohttp-3.11.16-cp39-cp39-win32.whl", hash = "sha256:92b7ee222e2b903e0a4b329a9943d432b3767f2d5029dbe4ca59fb75223bbe2e"}, - {file = "aiohttp-3.11.16-cp39-cp39-win_amd64.whl", hash = "sha256:17ae4664031aadfbcb34fd40ffd90976671fa0c0286e6c4113989f78bebab37a"}, - {file = "aiohttp-3.11.16.tar.gz", hash = "sha256:16f8a2c9538c14a557b4d309ed4d0a7c60f0253e8ed7b6c9a2859a7582f8b1b8"}, + {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96264854fedbea933a9ca4b7e0c745728f01380691687b7365d18d9e977179c4"}, + {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9602044ff047043430452bc3a2089743fa85da829e6fc9ee0025351d66c332b6"}, + {file = "aiohttp-3.11.18-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5691dc38750fcb96a33ceef89642f139aa315c8a193bbd42a0c33476fd4a1609"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554c918ec43f8480b47a5ca758e10e793bd7410b83701676a4782672d670da55"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a4076a2b3ba5b004b8cffca6afe18a3b2c5c9ef679b4d1e9859cf76295f8d4f"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:767a97e6900edd11c762be96d82d13a1d7c4fc4b329f054e88b57cdc21fded94"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ddc9337a0fb0e727785ad4f41163cc314376e82b31846d3835673786420ef1"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f414f37b244f2a97e79b98d48c5ff0789a0b4b4609b17d64fa81771ad780e415"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fdb239f47328581e2ec7744ab5911f97afb10752332a6dd3d98e14e429e1a9e7"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f2c50bad73ed629cc326cc0f75aed8ecfb013f88c5af116f33df556ed47143eb"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a8d8f20c39d3fa84d1c28cdb97f3111387e48209e224408e75f29c6f8e0861d"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:106032eaf9e62fd6bc6578c8b9e6dc4f5ed9a5c1c7fb2231010a1b4304393421"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b491e42183e8fcc9901d8dcd8ae644ff785590f1727f76ca86e731c61bfe6643"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad8c745ff9460a16b710e58e06a9dec11ebc0d8f4dd82091cefb579844d69868"}, + {file = "aiohttp-3.11.18-cp310-cp310-win32.whl", hash = "sha256:8e57da93e24303a883146510a434f0faf2f1e7e659f3041abc4e3fb3f6702a9f"}, + {file = "aiohttp-3.11.18-cp310-cp310-win_amd64.whl", hash = "sha256:cc93a4121d87d9f12739fc8fab0a95f78444e571ed63e40bfc78cd5abe700ac9"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:427fdc56ccb6901ff8088544bde47084845ea81591deb16f957897f0f0ba1be9"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c828b6d23b984255b85b9b04a5b963a74278b7356a7de84fda5e3b76866597b"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c2eaa145bb36b33af1ff2860820ba0589e165be4ab63a49aebfd0981c173b66"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d518ce32179f7e2096bf4e3e8438cf445f05fedd597f252de9f54c728574756"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0700055a6e05c2f4711011a44364020d7a10fbbcd02fbf3e30e8f7e7fddc8717"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bd1cde83e4684324e6ee19adfc25fd649d04078179890be7b29f76b501de8e4"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73b8870fe1c9a201b8c0d12c94fe781b918664766728783241a79e0468427e4f"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25557982dd36b9e32c0a3357f30804e80790ec2c4d20ac6bcc598533e04c6361"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e889c9df381a2433802991288a61e5a19ceb4f61bd14f5c9fa165655dcb1fd1"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9ea345fda05bae217b6cce2acf3682ce3b13d0d16dd47d0de7080e5e21362421"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9f26545b9940c4b46f0a9388fd04ee3ad7064c4017b5a334dd450f616396590e"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3a621d85e85dccabd700294494d7179ed1590b6d07a35709bb9bd608c7f5dd1d"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9c23fd8d08eb9c2af3faeedc8c56e134acdaf36e2117ee059d7defa655130e5f"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9e6b0e519067caa4fd7fb72e3e8002d16a68e84e62e7291092a5433763dc0dd"}, + {file = "aiohttp-3.11.18-cp311-cp311-win32.whl", hash = "sha256:122f3e739f6607e5e4c6a2f8562a6f476192a682a52bda8b4c6d4254e1138f4d"}, + {file = "aiohttp-3.11.18-cp311-cp311-win_amd64.whl", hash = "sha256:e6f3c0a3a1e73e88af384b2e8a0b9f4fb73245afd47589df2afcab6b638fa0e6"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:63d71eceb9cad35d47d71f78edac41fcd01ff10cacaa64e473d1aec13fa02df2"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d1929da615840969929e8878d7951b31afe0bac883d84418f92e5755d7b49508"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d0aebeb2392f19b184e3fdd9e651b0e39cd0f195cdb93328bd124a1d455cd0e"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3849ead845e8444f7331c284132ab314b4dac43bfae1e3cf350906d4fff4620f"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e8452ad6b2863709f8b3d615955aa0807bc093c34b8e25b3b52097fe421cb7f"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b8d2b42073611c860a37f718b3d61ae8b4c2b124b2e776e2c10619d920350ec"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fbf91f6a0ac317c0a07eb328a1384941872f6761f2e6f7208b63c4cc0a7ff6"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ff5625413fec55216da5eaa011cf6b0a2ed67a565914a212a51aa3755b0009"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f33a92a2fde08e8c6b0c61815521324fc1612f397abf96eed86b8e31618fdb4"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:11d5391946605f445ddafda5eab11caf310f90cdda1fd99865564e3164f5cff9"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3cc314245deb311364884e44242e00c18b5896e4fe6d5f942e7ad7e4cb640adb"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f421843b0f70740772228b9e8093289924359d306530bcd3926f39acbe1adda"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e220e7562467dc8d589e31c1acd13438d82c03d7f385c9cd41a3f6d1d15807c1"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ab2ef72f8605046115bc9aa8e9d14fd49086d405855f40b79ed9e5c1f9f4faea"}, + {file = "aiohttp-3.11.18-cp312-cp312-win32.whl", hash = "sha256:12a62691eb5aac58d65200c7ae94d73e8a65c331c3a86a2e9670927e94339ee8"}, + {file = "aiohttp-3.11.18-cp312-cp312-win_amd64.whl", hash = "sha256:364329f319c499128fd5cd2d1c31c44f234c58f9b96cc57f743d16ec4f3238c8"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:474215ec618974054cf5dc465497ae9708543cbfc312c65212325d4212525811"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ced70adf03920d4e67c373fd692123e34d3ac81dfa1c27e45904a628567d804"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2d9f6c0152f8d71361905aaf9ed979259537981f47ad099c8b3d81e0319814bd"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a35197013ed929c0aed5c9096de1fc5a9d336914d73ab3f9df14741668c0616c"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:540b8a1f3a424f1af63e0af2d2853a759242a1769f9f1ab053996a392bd70118"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9e6710ebebfce2ba21cee6d91e7452d1125100f41b906fb5af3da8c78b764c1"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8af2ef3b4b652ff109f98087242e2ab974b2b2b496304063585e3d78de0b000"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28c3f975e5ae3dbcbe95b7e3dcd30e51da561a0a0f2cfbcdea30fc1308d72137"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c28875e316c7b4c3e745172d882d8a5c835b11018e33432d281211af35794a93"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:13cd38515568ae230e1ef6919e2e33da5d0f46862943fcda74e7e915096815f3"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0e2a92101efb9f4c2942252c69c63ddb26d20f46f540c239ccfa5af865197bb8"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e6d3e32b8753c8d45ac550b11a1090dd66d110d4ef805ffe60fa61495360b3b2"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ea4cf2488156e0f281f93cc2fd365025efcba3e2d217cbe3df2840f8c73db261"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d4df95ad522c53f2b9ebc07f12ccd2cb15550941e11a5bbc5ddca2ca56316d7"}, + {file = "aiohttp-3.11.18-cp313-cp313-win32.whl", hash = "sha256:cdd1bbaf1e61f0d94aced116d6e95fe25942f7a5f42382195fd9501089db5d78"}, + {file = "aiohttp-3.11.18-cp313-cp313-win_amd64.whl", hash = "sha256:bdd619c27e44382cf642223f11cfd4d795161362a5a1fc1fa3940397bc89db01"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:469ac32375d9a716da49817cd26f1916ec787fc82b151c1c832f58420e6d3533"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3cec21dd68924179258ae14af9f5418c1ebdbba60b98c667815891293902e5e0"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b426495fb9140e75719b3ae70a5e8dd3a79def0ae3c6c27e012fc59f16544a4a"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2f41203e2808616292db5d7170cccf0c9f9c982d02544443c7eb0296e8b0c7"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc0ae0a5e9939e423e065a3e5b00b24b8379f1db46046d7ab71753dfc7dd0e1"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe7cdd3f7d1df43200e1c80f1aed86bb36033bf65e3c7cf46a2b97a253ef8798"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5199be2a2f01ffdfa8c3a6f5981205242986b9e63eb8ae03fd18f736e4840721"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ccec9e72660b10f8e283e91aa0295975c7bd85c204011d9f5eb69310555cf30"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1596ebf17e42e293cbacc7a24c3e0dc0f8f755b40aff0402cb74c1ff6baec1d3"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:eab7b040a8a873020113ba814b7db7fa935235e4cbaf8f3da17671baa1024863"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5d61df4a05476ff891cff0030329fee4088d40e4dc9b013fac01bc3c745542c2"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:46533e6792e1410f9801d09fd40cbbff3f3518d1b501d6c3c5b218f427f6ff08"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c1b90407ced992331dd6d4f1355819ea1c274cc1ee4d5b7046c6761f9ec11829"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a2fd04ae4971b914e54fe459dd7edbbd3f2ba875d69e057d5e3c8e8cac094935"}, + {file = "aiohttp-3.11.18-cp39-cp39-win32.whl", hash = "sha256:b2f317d1678002eee6fe85670039fb34a757972284614638f82b903a03feacdc"}, + {file = "aiohttp-3.11.18-cp39-cp39-win_amd64.whl", hash = "sha256:5e7007b8d1d09bce37b54111f593d173691c530b80f27c6493b928dabed9e6ef"}, + {file = "aiohttp-3.11.18.tar.gz", hash = "sha256:ae856e1138612b7e412db63b7708735cff4d38d0399f6a5435d3dac2669f558a"}, ] [package.dependencies] @@ -222,145 +222,145 @@ coincurve = ">=15.0,<21" [[package]] name = "bitarray" -version = "3.3.1" +version = "3.4.1" description = "efficient arrays of booleans -- C extension" optional = false python-versions = "*" files = [ - {file = "bitarray-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:811f559e0e5fca85d26b834e02f2a767aa7765e6b1529d4b2f9d4e9015885b4b"}, - {file = "bitarray-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e44be933a60b27ef0378a2fdc111ae4ac53a090169db9f97219910cac51ff885"}, - {file = "bitarray-3.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5aacbf54ad69248e17aab92a9f2d8a0a7efaea9d5401207cb9dac41d46294d56"}, - {file = "bitarray-3.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fcdaf79970b41cfe21b6cf6a7bbe2d0f17e3371a4d839f1279283ac03dd2a47"}, - {file = "bitarray-3.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9aa5cf7a6a8597968ff6f4e7488d5518bba911344b32b7948012a41ca3ae7e41"}, - {file = "bitarray-3.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc448e4871fc4df22dd04db4a7b34829e5c3404003b9b1709b6b496d340db9c7"}, - {file = "bitarray-3.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51ce410a2d91da4b98d0f043df9e0938c33a2d9ad4a370fa8ec1ce7352fc20d9"}, - {file = "bitarray-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f7eb851d62a3166b8d1da5d5740509e215fa5b986467bf135a5a2d197bf16345"}, - {file = "bitarray-3.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:69679fcd5f2c4b7c8920d2824519e3bff81a18fac25acf33ded4524ea68d8a39"}, - {file = "bitarray-3.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:9c8f580590822df5675b9bc04b9df534be23a4917f709f9483fa554fd2e0a4df"}, - {file = "bitarray-3.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5500052aaf761afede3763434097a59042e22fbde508c88238d34105c13564c0"}, - {file = "bitarray-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e95f13d615f91da5a5ee5a782d9041c58be051661843416f2df9453f57008d40"}, - {file = "bitarray-3.3.1-cp310-cp310-win32.whl", hash = "sha256:4ddef0b620db43dfde43fe17448ddc37289f67ad9a8ae39ffa64fa7bf529145f"}, - {file = "bitarray-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:d3f5cec4f8d27284f559a0d7c4a4bdfbae74d3b69d09c3f3b53989a730833ad8"}, - {file = "bitarray-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:76abaeac4f94eda1755eed633a720c1f5f90048cb7ea4ab217ea84c48414189a"}, - {file = "bitarray-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75eb4d353dcf571d98e2818119af303fb0181b54361ac9a3e418b31c08131e56"}, - {file = "bitarray-3.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61b7552c953e58cf2d82b95843ca410eef18af2a5380f3ff058d21eaf902eda"}, - {file = "bitarray-3.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40dbc3609f1471ca3c189815ab4596adae75d8ee0da01412b2e3d0f6e94ab46"}, - {file = "bitarray-3.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2c8b7da269eb877cc2361d868fdcb63bfe7b5821c5b3ea2640be3f4b047b4bb"}, - {file = "bitarray-3.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e362fc7a72fd00f641b3d6ed91076174cae36f49183afe8b4b4b77a2b5a116b0"}, - {file = "bitarray-3.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f51322a55687f1ac075b897d409d0314a81f1ec55ebae96eeca40c9e8ad4a1c1"}, - {file = "bitarray-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea204d3c6ec17fc3084c1db11bcad1347f707b7f5c08664e116a9c75ca134e9"}, - {file = "bitarray-3.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ea48f168274d60f900f847dd5fff9bd9d4e4f8af5a84149037c2b5fe1712fa0b"}, - {file = "bitarray-3.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8076650a08cec080f6726860c769320c27eb4379cfd22e2f5732787dec119bfe"}, - {file = "bitarray-3.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:653d56c58197940f0c1305cb474b75597421b424be99284915bb4f3529d51837"}, - {file = "bitarray-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5d47d349468177afbe77e5306e70fd131d8da6946dd22ed93cbe70c5f2965307"}, - {file = "bitarray-3.3.1-cp311-cp311-win32.whl", hash = "sha256:ac5d80cd43a9a995a501b4e3b38802628b35065e896f79d33430989e2e3f0870"}, - {file = "bitarray-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:52edf707f2fddb6a60a20093c3051c1925830d8c4e7fb2692aac2ee970cee2b0"}, - {file = "bitarray-3.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:673a21ebb6c72904d7de58fe8c557bad614fce773f21ddc86bcf8dd09a387a32"}, - {file = "bitarray-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:946e97712014784c3257e4ca45cf5071ffdbbebe83977d429e8f7329d0e2387f"}, - {file = "bitarray-3.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14f04e4eec65891523a8ca3bf9e1dcdefed52d695f40c4e50d5980471ffd22a4"}, - {file = "bitarray-3.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0580b905ad589e3be52d36fbc83d32f6e3f6a63751d6c0da0ca328c32d037790"}, - {file = "bitarray-3.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50da5ecd86ee25df9f658d8724efbe8060de97217fb12a1163bee61d42946d83"}, - {file = "bitarray-3.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42376c9e0a1357acc8830c4c0267e1c30ebd04b2d822af702044962a9f30b795"}, - {file = "bitarray-3.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9b18889a809d8f190e09dd6ee513983e1cdc04c3f23395d237ccf699dce5eaf"}, - {file = "bitarray-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f4e2fc0f6a573979462786edbf233fc9e1b644b4e790e8c29796f96bbe45353a"}, - {file = "bitarray-3.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:99ea63932e86b08e36d6246ff8f663728a5baefa7e9a0e2f682864fe13297514"}, - {file = "bitarray-3.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8627fc0c9806d6dac2fb422d9cd650b0d225f498601381d334685b9f071b793c"}, - {file = "bitarray-3.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4bb2fa914a7bbcd7c6a457d44461a8540b9450e9bb4163d734eb74bffba90e69"}, - {file = "bitarray-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dd0ba0cc46b9a7d5cee4c4a9733dce2f0aa21caf04fe18d18d2025a4211adc18"}, - {file = "bitarray-3.3.1-cp312-cp312-win32.whl", hash = "sha256:b77a03aba84bf2d2c8f2d5a81af5957da42324d9f701d584236dc735b6a191f8"}, - {file = "bitarray-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:dc6407e899fc3148d796fc4c3b0cec78153f034c5ff9baa6ae9c91d7ea05fb45"}, - {file = "bitarray-3.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31f21c7df3b40db541182db500f96cf2b9688261baec7b03a6010fdfc5e31855"}, - {file = "bitarray-3.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4c516daf790bd870d7575ac0e4136f1c3bc180b0de2a6bfa9fa112ea668131a0"}, - {file = "bitarray-3.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b81664adf97f54cb174472f5511075bfb5e8fb13151e9c1592a09b45d544dab0"}, - {file = "bitarray-3.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:421da43706c9a01d1b1454c34edbff372a7cfeff33879b6c048fc5f4481a9454"}, - {file = "bitarray-3.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb388586c9b4d338f9585885a6f4bd2736d4a7a7eb4b63746587cb8d04f7d156"}, - {file = "bitarray-3.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0bca424ee4d80a4880da332e56d2863e8d75305842c10aa6e94eb975bcad4fc"}, - {file = "bitarray-3.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f62738cc16a387aa2f0dc6e93e0b0f48d5b084db249f632a0e3048d5ace783e6"}, - {file = "bitarray-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0d11e1a8914321fac34f50c48a9b1f92a1f51f45f9beb23e990806588137c4ca"}, - {file = "bitarray-3.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:434180c1340268763439b80d21e074df24633c8748a867573bafecdbfaa68a76"}, - {file = "bitarray-3.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:518e04584654a155fca829a6fe847cd403a17007e5afdc2b05b4240b53cd0842"}, - {file = "bitarray-3.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:36851e3244950adc75670354dcd9bcad65e1695933c18762bb6f7590734c14ef"}, - {file = "bitarray-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:824bd92e53f8e32dfa4bf38643246d1a500b13461ade361d342a8fcc3ddb6905"}, - {file = "bitarray-3.3.1-cp313-cp313-win32.whl", hash = "sha256:8c84c3df9b921439189d0be6ad4f4212085155813475a58fbc5fb3f1d5e8a001"}, - {file = "bitarray-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:71838052ad546da110b8a8aaa254bda2e162e65af563d92b15c8bc7ab1642909"}, - {file = "bitarray-3.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:131ff1eed8902fb54ea64f8d0bf8fcbbda8ad6b9639d81cacc3a398c7488fecb"}, - {file = "bitarray-3.3.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2278763edc823e79b8f0a0fdc7c8c9c45a3e982db9355042839c1f0c4ea92"}, - {file = "bitarray-3.3.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:751a2cd05326e1552b56090595ba8d35fe6fef666d5ca9c0a26d329c65a9c4a0"}, - {file = "bitarray-3.3.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d57b3b92bfa453cba737716680292afb313ec92ada6c139847e005f5ac1ad08c"}, - {file = "bitarray-3.3.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c7913d3cf7017bd693177ca0a4262d51587378d9c4ae38d13be3655386f0c27"}, - {file = "bitarray-3.3.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2441da551787086c57fa8983d43e103fd2519389c8e03302908697138c287d6a"}, - {file = "bitarray-3.3.1-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:c17fd3a63b31a21a979962bd3ab0f96d22dcdb79dc5149efc2cf66a16ae0bb59"}, - {file = "bitarray-3.3.1-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:f7cee295219988b50b543791570b013e3f3325867f9650f6233b48cb00b020c2"}, - {file = "bitarray-3.3.1-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:307e4cd6b94de4b4b5b0f4599ffddabde4c33ac22a74998887048d24cb379ad3"}, - {file = "bitarray-3.3.1-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:1b7e89d4005eee831dc90d50c69af74ece6088f3c1b673d0089c8ef7d5346c37"}, - {file = "bitarray-3.3.1-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:8f267edd51db6903c67b2a2b0f780bb0e52d2e92ec569ddd241486eeff347283"}, - {file = "bitarray-3.3.1-cp36-cp36m-win32.whl", hash = "sha256:2fbd399cfdb7dee0bb4705bc8cd51163a9b2f25bb266807d57e5c693e0a14df2"}, - {file = "bitarray-3.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:551844744d22fe2e37525bd7132d2e9dae5a9621e3d8a43f46bbe6edadb4c63b"}, - {file = "bitarray-3.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:492524a28c3aab6a4ef0a741ee9f3578b6606bb52a7a94106c386bdebab1df44"}, - {file = "bitarray-3.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da225a602cb4a97900e416059bc77d7b0bb8ac5cb6cb3cc734fd01c636387d2b"}, - {file = "bitarray-3.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fd3ed1f7d2d33856252863d5fa976c41013fac4eb0898bf7c3f5341f7ae73e06"}, - {file = "bitarray-3.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a1adc8cd484de52b6b11a0e59e087cd3ae593ce4c822c18d4095d16e06e49453"}, - {file = "bitarray-3.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8360759897d50e4f7ec8be51f788119bd43a61b1fe9c68a508a7ba495144859a"}, - {file = "bitarray-3.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50df8e1915a1acfd9cd0a4657d26cacd5aee4c3286ebb63e9dd75271ea6b54e0"}, - {file = "bitarray-3.3.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:b9f2247b76e2e8c88f81fb850adb211d9b322f498ae7e5797f7629954f5b9767"}, - {file = "bitarray-3.3.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:958b75f26f8abbcb9bc47a8a546a0449ba565d6aac819e5bb80417b93e5777fa"}, - {file = "bitarray-3.3.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:54093229fec0f8c605b7873020c07681c1f1f96c433ae082d2da106ab11b206f"}, - {file = "bitarray-3.3.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:58365c6c3e4a5ebbc8f28bf7764f5b00be5c8b1ffbd70474e6f801383f3fe0a0"}, - {file = "bitarray-3.3.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:af6a09c296aa2d68b25eb154079abd5a58da883db179e9df0fc9215c405be6be"}, - {file = "bitarray-3.3.1-cp37-cp37m-win32.whl", hash = "sha256:b521c2d73f6fa1c461a68c5d220836d0fea9261d5f934833aaffde5114aecffb"}, - {file = "bitarray-3.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:90178b8c6f75b43612dadf50ff0df08a560e220424ce33cf6d2514d7ab1803a7"}, - {file = "bitarray-3.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:64a5404a258ef903db67d7911147febf112858ba30c180dae0c23405412e0a2f"}, - {file = "bitarray-3.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0952d05e1d6b0a736d73d34128b652d7549ba7d00ccc1e7c00efbc6edd687ee3"}, - {file = "bitarray-3.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c17eae957d61fea05d3f2333a95dd79dc4733f3eadf44862cd6d586daae31ea3"}, - {file = "bitarray-3.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c00b2ea9aab5b2c623b1901a4c04043fb847c8bd64a2f52518488434eb44c4e6"}, - {file = "bitarray-3.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a29ad824bf4b735cb119e2c79a4b821ad462aeb4495e80ff186f1a8e48362082"}, - {file = "bitarray-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e92d2d7d405e004f2bdf9ff6d58faed6d04e0b74a9d96905ade61c293abe315"}, - {file = "bitarray-3.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:833e06b01ff8f5a9f5b52156a23e9930402d964c96130f6d0bd5297e5dec95dc"}, - {file = "bitarray-3.3.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a0c87ffc5bf3669b0dfa91752653c41c9c38e1fd5b95aeb4c7ee40208c953fcd"}, - {file = "bitarray-3.3.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9ce64e247af33fa348694dbf7f4943a60040b5cc04df813649cc8b54c7f54061"}, - {file = "bitarray-3.3.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:52e8d36933bb3fb132c95c43171f47f07c22dd31536495be20f86ddbf383e3c6"}, - {file = "bitarray-3.3.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:434e389958ab98415ed4d9d67dd94c0ac835036a16b488df6736222f4f55ff35"}, - {file = "bitarray-3.3.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e75c4a1f00f46057f2fc98d717b2eabba09582422fe608158beed2ef0a5642da"}, - {file = "bitarray-3.3.1-cp38-cp38-win32.whl", hash = "sha256:9d6fe373572b20adde2d6a58f8dc900b0cb4eec625b05ca1adbf053772723c78"}, - {file = "bitarray-3.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:eeda85d034a2649b7e4dbd7067411e9c55c1fc65fafb9feb973d810b103e36a0"}, - {file = "bitarray-3.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:47abbec73f20176e119f5c4c68aaf243c46a5e072b9c182f2c110b5b227256a7"}, - {file = "bitarray-3.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f46e7fe734b57f3783a324bf3a7053df54299653e646d86558a4b2576cb47208"}, - {file = "bitarray-3.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2c411b7d3784109dfc33f5f7cdf331d3373b8349a4ad608ee482f1a04c30efe"}, - {file = "bitarray-3.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9511420cf727eb6e603dc6f3c122da1a16af38abc92272a715ce68c47b19b140"}, - {file = "bitarray-3.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39fdd56fd9076a4a34c3cd21e1c84dc861dac5e92c1ed9daed6aed6b11719c8c"}, - {file = "bitarray-3.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:638ad50ecbffd05efdfa9f77b24b497b8e523f078315846614c647ebc3389bb5"}, - {file = "bitarray-3.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f26f3197779fe5a90a54505334d34ceb948cec6378caea49cd9153b3bbe57566"}, - {file = "bitarray-3.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:01299fb36af3e7955967f3dbc4097a2d88845166837899350f411d95a857f8aa"}, - {file = "bitarray-3.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f1767c325ef4983f52a9d62590f09ea998c06d8d4aa9f13b9eeabaac3536381e"}, - {file = "bitarray-3.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ed6f9b158c11e7bcf9b0b6788003aed5046a0759e7b25e224d9551a01c779ee7"}, - {file = "bitarray-3.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab52dd26d24061d67f485f3400cc7d3d5696f0246294a372ef09aa8ef31a44c4"}, - {file = "bitarray-3.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ba347a4dcc990637aa700227675d8033f68b417dcd7ccf660bd2e87e10885ec"}, - {file = "bitarray-3.3.1-cp39-cp39-win32.whl", hash = "sha256:4bda4e4219c6271beec737a5361b009dcf9ff6d84a2df92bf3dd4f4e97bb87e5"}, - {file = "bitarray-3.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:3afe39028afff6e94bb90eb0f8c5eb9357c0e37ce3c249f96dbcfc1a73938015"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c001b7ac2d9cf1a73899cf857d3d66919deca677df26df905852039c46aa30a6"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:535cc398610ff22dc0341e8833c34be73634a9a0a5d04912b4044e91dfbbc413"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dcb5aaaa2d91cc04fa9adfe31222ab150e72d99c779b1ddca10400a2fd319ec"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54ac6f8d2f696d83f9ccbb4cc4ce321dc80b9fa4613749a8ab23bda5674510ea"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d069a00a8d06fb68248edd5bf2aa5e8009f4f5eae8dd5b5a529812132ad8a6"}, - {file = "bitarray-3.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cbf063667ef89b0d8b8bd1fcaaa4dcc8c65c17048eb14fb1fa9dbe9cb5197c81"}, - {file = "bitarray-3.3.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0b7e1f4139d3f17feba72e386a8f1318fb35182ff65890281e727fd07fdfbd72"}, - {file = "bitarray-3.3.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d030b96f6ccfec0812e2fc1b02ab72d56a408ec215f496a7a25cde31160a88b4"}, - {file = "bitarray-3.3.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7ead8b947a14c785d04943ff4743db90b0c40a4cb27e6bef4c3650800a927d"}, - {file = "bitarray-3.3.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5f44d71486949237679a8052cda171244d0be9279776c1d3d276861950dd608"}, - {file = "bitarray-3.3.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:601fedd0e5227a5591e2eae2d35d45a07f030783fc41fd217cdf0c74db554cb9"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7445c34e5d55ec512447efa746f046ecf4627c08281fc6e9ef844423167237bc"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:24296caffe89af65fc8029a56274db6a268f6a297a5163e65df8177c2dd67b19"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90b35553c318b49d5ffdaf3d25b6f0117fd5bbfc3be5576fc41ca506ca0e9b8e"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f937ef83e5666b6266236f59b1f38abe64851fb20e7d8d13033c5168d35ef39d"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:86dd5b8031d690afc90430997187a4fc5871bc6b81d73055354b8eb48b3e6342"}, - {file = "bitarray-3.3.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:9101d48f9532ceb6b1d6a5f7d3a2dd5c853015850c65a47045c70f5f2f9ff88f"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7964b17923c1bfa519afe273335023e0800c64bdca854008e75f2b148614d3f2"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26a26614bba95f3e4ea8c285206a4efe5ffb99e8539356d78a62491facc326cf"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ce3e352f1b7f1201b04600f93035312b00c9f8f4d606048c39adac32b2fb738"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:176991b2769425341da4d52a684795498c0cd4136f4329ba9d524bcb96d26604"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64cef9f2d15261ea667838a4460f75acf4b03d64d53df664357541cc8d2c8183"}, - {file = "bitarray-3.3.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:28d866fa462d77cafbf284aea14102a31dcfdebb9a5abbfb453f6eb6b2deb4fd"}, - {file = "bitarray-3.3.1.tar.gz", hash = "sha256:8c89219a672d0a15ab70f8a6f41bc8355296ec26becef89a127c1a32bb2e6345"}, + {file = "bitarray-3.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:61d1db9d05da8c29bc3b17908f6b49b58ae58a83af0d06aa90ef5b41d89006ac"}, + {file = "bitarray-3.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b1232f47d3685d932e97d1a4de9713ba1fdc3d342dbff2132e436ad13940deb4"}, + {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66779621b640e82f1cddc72b097e20b8c7e2840357ef1c5cd9a9f7d383d09d07"}, + {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cdd2a67ae23327146bd3a3c2c4a22405139c003a4dd0743931199fd407886ee"}, + {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:92ae7aadff037733328aa971f399474efd8bfcc448e59322572c162c85f2134b"}, + {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64b65000169ca0846335cba2c67450858d84cca05fc0e8f2e8ec120e67aee527"}, + {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0a5ef1aa7336180ca4da6581bd362db167c22f5c0111cb510dfec178b1ccf2e"}, + {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:456f736b8e5267051418305dc0ffd1da11fc981785b479fb2eb0e6787c14ba4f"}, + {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f8bba44252b6735942ee517d5b529b71ef45bc5759c0032090b982078ccc43cd"}, + {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ead4f4eee7e9398b036095ae54f2d1680fda7f3647cae6d964af5fea7c8e0426"}, + {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:7467891ea2b0deb6c3b9a5caa7aea0e4f7739dc1012bd445b3b606311bb77f5e"}, + {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:160a9cff6cd6d977f4f5d698c4d01fa227eebcf7833f69c2bea290598451e299"}, + {file = "bitarray-3.4.1-cp310-cp310-win32.whl", hash = "sha256:5beef0474dd41778224b443a89d2847429c0bea7f8ba572d4da19b05471b4f08"}, + {file = "bitarray-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7dc7dff64a346f69046c3bb39c2a4faf570dbb4aba417da676e5a92d670fa52"}, + {file = "bitarray-3.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef7d9b780c6c7d5d521bf5ed7507b6fd2c8b7a35dd853b00aed8976db1fb36fc"}, + {file = "bitarray-3.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f708e4ea99bd10d8e49be6ab9479b407f454f59351764b36e9d8252b6f78944e"}, + {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce4e7fa7baa30bca66f637d9861232269dbf10ffd3a124b66cb88e97a866bd74"}, + {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b869be5418ff61616718604c9c98b4107bcc4c49830605cc531c300d716bc847"}, + {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:293f7a0f8b1d19c975ba63d0bc96f75f268b0f789ccc16bc2330083b2d47b8d8"}, + {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8dbeeaabfe01f025d590441a4a6d676de5ca390a21c6953fe061d00f64ccea"}, + {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2de5eaa4f78446b58bb3512095cce5b36302130f45fb3617666a262ed801c26c"}, + {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:523de19544ff2c846e38bd221f714ea062e07c90f0c6e1c459b44d49d4151959"}, + {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7987f639461ce9ec9d727780d10a807fcc3fcfe386475a08b2f640d255ffa29c"}, + {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5f0b8dc33cb0679c23a8e92307e10d96bbb6ed3eeb312caecb9074e5d4a48c63"}, + {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8c688e5327647e14b39a8f264ed58158586f7995a6e4d2a797890187868d6785"}, + {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c9d4fe602fc5d7c93a0367d013edc1cd13dd93e57c6adb7060113376210248a"}, + {file = "bitarray-3.4.1-cp311-cp311-win32.whl", hash = "sha256:2a109463f0cda038171372912d4c5b7c113e464ed2da72e340bef2ce6960ef02"}, + {file = "bitarray-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:10cc20af9f6d8a5113608aef2b67b6c6efdba085c43fd6ed2086dd06df5551d1"}, + {file = "bitarray-3.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3a9b83d7ab4ff686e9ab260d25ee8389961bea0c0644a032a6bf30ad34a9c552"}, + {file = "bitarray-3.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10a12e32aed27c5feba44a59acb5a85615ae0fdae434fa4ef01be6da0d1a813c"}, + {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c17b11e86355a6dcc9be38d05e58fcc112c2492bc605a37ccff7498de5ea2cf9"}, + {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7d3d6a2679c2986ee715b8f41a09d4c8f9c3f44ab57ec4c1520c586c08fceed1"}, + {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35ced8da829ab221338f632a84226634002e418207971a99d41ea740cbf7a67b"}, + {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e35f1fcfe86c19c150d32a8754bb7cecccb70ac7e8d38982f60c2f22de68ba4"}, + {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d6914cdf8748725edbf099405f0f8cf17fc474bdfa3685e5a937c6164e3323b"}, + {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d198e4a1911283173bf6cbdde17e07228c23f4c7b640f979dda96df1c47e2994"}, + {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8a3fb6a3993abe295b8d28e0b0035dd9ae27c00841873791cb4aacd290cd6ab"}, + {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7ebfd3a5120ca92e9402ade4219bf85efeb34fe5069e8c84cb232ffe4ac787aa"}, + {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:830b577ceb27cb2cf69ab2d298845ec78cd36f938a775e2ad1832bd026732902"}, + {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:56dec8fcceb1013507b129470420cd253fd81a0531ee1824d1a9c4080ee71dca"}, + {file = "bitarray-3.4.1-cp312-cp312-win32.whl", hash = "sha256:fcf561bad02be8934fcac7e778c11f736594e6c1d72323d47f7819638afdcd6b"}, + {file = "bitarray-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff2b7082a2a278ac0a65e0e325dd72322e44259df59001bfb8bafa5cc4a7620"}, + {file = "bitarray-3.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce175e0a5bcfd8ad928a1c37832aa072072454819ade953e513e9cbaaebab9ce"}, + {file = "bitarray-3.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:550ccfa6d43d5aeb07104964710aa75d9c4b763f3a80876c2ab9c2672601597c"}, + {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c53bd87ce689d09f7a6e4e627e74ea0db1a174e3af21c9b9604cc0268ef42b67"}, + {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1e5a3003381f441d1f98a9c7535f53e9614c9261b1e86f5df2d2aabd47655d8"}, + {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a07d260e6969356d3f1184f14e04b0f1a22a47021bc9f8d9b4f3655b2906db8a"}, + {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:faa5d648a4716b1a87d3ee84b275335797f998c9bde2e6af1501b341a178c041"}, + {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cafe66e81dd1adb2fbd298fab9411dabdc7b701d1ce169847f3ee3d2b35d2f5a"}, + {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7600eaa91ae4e0b73543dcc578537f7ff0b1af63555dd177e31172f51933dc44"}, + {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:483423116291300789ecc7a19c9fce88a927be34e1d77bbd59b2b6c07440f271"}, + {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:43bd377bced1a6dbd744d3a58d70973cb29abe56fc82260de736558b776d8c7b"}, + {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1fb6d5f36fa8b38586c40674d482a9066793e273bdc5a9cee8f493393e5661eb"}, + {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2b93e29c66f29c4b389596699aa14b07e30adb714e3e37b894f02d13b1c91cc9"}, + {file = "bitarray-3.4.1-cp313-cp313-win32.whl", hash = "sha256:461ae6337660d404c9f1d1ba8d4b563b6db635e61afbb23024ead15caff0babe"}, + {file = "bitarray-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8c10b1feea76c3093597e8d3c6e23388085df3756c7d437fa195baaae3585e6e"}, + {file = "bitarray-3.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ab65e7cbd6507a5266301f75e241839f67e08a7ba47d678a49bb5030439d8897"}, + {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45d360dda160671c5b1b06b4c16d9c5e6ca2677c67b62d276d2fdf4f0e72b443"}, + {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c8dff4e17b6ba3aa230d1f3bfcf0eadd1b0dd4a42fce8dbb80a20e13cafc349"}, + {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:749508a6bef52321e35a13e6e79f9c051046880735bbc6262316d5fa88897b49"}, + {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfd76f685c6e8d22484ba0a55a1c2b4945d4720ed3cb283d31e58f456b51ce"}, + {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14755e3bad21b9f4efcee2da3b670e2fe305dca937fbab3ad74aba5fa088c488"}, + {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:7233c7487156907f5e3d10e758a989526f79925577b56343811d1d752daa5f24"}, + {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:c3e33d50c204e93f41c22c416ab484cb4506a5ed0200d6c17d1637e407eb98f8"}, + {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:4e1ad697c5f4e48638ba0a9db79b47c3da1e8bf48cfd45ee206ffdb991f4605c"}, + {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:32af7b8f6f5fd09317982a7b1aa56d587654385eaee84894c1f8ce2b03677326"}, + {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:c6803779e1fba018f6583b6ca25115d3a2a5dec97c1958272941f2910056ad8e"}, + {file = "bitarray-3.4.1-cp36-cp36m-win32.whl", hash = "sha256:f35fe9bcfedc60413c11a96845045c9211bb4b10a791563cb768fd9e615d9d70"}, + {file = "bitarray-3.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8bc4c24830f8d2c527710ffd4b562d398c79e77dff6e2f0b55c11c3122d2bb90"}, + {file = "bitarray-3.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:51862375b411e55e3454c812e646a742a1668f7a24010572c5247e5873b4d227"}, + {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b52c5630f29959250158a42e25655086a304f6ca56b029ae2d69595ad3042a39"}, + {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7ac9ac747d6b9a44b1b1a7584d16e6867309795138666fd24216a3b0226cd9b"}, + {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afbcd885c1fe34dd7c1408c168ee90e62822e9d56c02740ebc9e241e96e21743"}, + {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3a9483fb7b6b2799f34c86d751a22ee59a51b473e9bc1f09681c5cf0224c95"}, + {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a4dbdfc3c0101be80d23482b4c05d5263452b4363f85c50cb5cb118fc0fff77"}, + {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:0d2a526c3557c268a9516e7601418806a4713901bb1dc90a66b27ea72cbd76c7"}, + {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:336c6c8ba33e896294ef4fc2dbb5b5cd8cf843a0fb297102aab322a435ddeecb"}, + {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:ec03a66c06b1547c824e734efc28a25c3634dbc3dea76ce34a2df255e2b59314"}, + {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:40acd4bd4453825f17d59ccd7780b382afe195489025b1d816bbf562d2d0babf"}, + {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:57959d57e7bf01bbed96e3ffda9af03bbe5090d8708408490e1d577918f87d67"}, + {file = "bitarray-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:3251b75b4646ad627a6152e7fa3ebb8ebbda1c334786e046b6aadf9998e077a7"}, + {file = "bitarray-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0e244b0dd99346999d08de46da6bc4ce253460a123db0719cf9e6adccd178bbe"}, + {file = "bitarray-3.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a5132f75767160183796ec628fbc547f9f6c0c279b068e7cdafdc0d8407f0090"}, + {file = "bitarray-3.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0fc3013f0de4a1a7c09ba913d68b1397949a97b1cc8158bd3fdf9f2c57b41763"}, + {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1b5ee6d0127475ac01f15065cb722bffa367ae3cda8e477a2cfea890baa410"}, + {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b17f86da78acf2933a36b729e8e3d49a8b76b12e8c9a334c6be3ac937df2e80"}, + {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:502d870415dd73ac8eb302d7e3a34156f709d861c31d8b4027f3c95a0d6c8a01"}, + {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa58a086fd3197658efb1d4b7b78cc87e4975bed9c74dd95531a51cf56e0661f"}, + {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd8923ce325b02bca493e9e08196041c23d37e2374bf9eff068bc9c31eb6e4bd"}, + {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d46755b66eeb6ec14e9168d01a57fc5126e0a6f3e2ecc0f3c5aa5e61284e238f"}, + {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:68da4dd6f1c62679f073ed8eb9621da2f6ce8a7001690da0bfde1b46db659de3"}, + {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4f99ec6e1738d2684321f37db40bb0a0b90028c66bf7d36f201ec50c9b26fc3c"}, + {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3829c0f1ce72baedd702ac20aa1d9a21805e7166e7a1987daf9730a02c6fe585"}, + {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5f505c4c2760e7226556d9f582b1977d2ceeb3ee9645092afa87d43be5169920"}, + {file = "bitarray-3.4.1-cp38-cp38-win32.whl", hash = "sha256:e0e15f9d1bf3163e1cf1e2f1f41cb555ad79e8b88a219f9070fa237e6c31c0d9"}, + {file = "bitarray-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:c2e8ec5232b8608bd47c27ff2707c111c50a248ea1d8938e525b444f94e161f3"}, + {file = "bitarray-3.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:77c7f08476126b4abc93bfba60315a86faac4f0eaab1d9dae5c78c4f90e08a44"}, + {file = "bitarray-3.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f149fcd4466b9750d5f445c0ccc1bdd4494e614785ad318a0db4c4f9701fcc96"}, + {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfa0fd661856ad4e73c9c4701e99d27be22fd09597b63bccf703bbc4621329c4"}, + {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2e623af61cca95b5942958b5eb3ef5000d75537857b6e7d89d0b9c32a75347d"}, + {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e17584d5a04b93b53ab4a0b4445d4252c4e5e75ff5561908811ce0fa36e6ac9"}, + {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:449292cffa84d79445d14eea679f9343092f23cdf705a5af7a7eb402fb7e3e69"}, + {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0a42c9e81539301c0c3aee69d464185dbb9fcbaf29c6751b6c29e6c6e7ee4fb"}, + {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:52b9381b9b9685ca408792b7a1ec70797331ff5dca27c65035915fe9baca667c"}, + {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:325d9cb31cf190363af3cc581a4bafd2b55182228740bdf07288d2b7a6c89777"}, + {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:896f2cf8e1896243c226905a00940cf108924e5691c785e3abf8ace037730424"}, + {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:710c6009c469ad8b1379e1df9d740a18200fd35604e61d2d3cf4807958174872"}, + {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:19b37b9672e4d26ad4e90a6b0dc1f1e93c0fe1a895f7b439b7ba1837442914b5"}, + {file = "bitarray-3.4.1-cp39-cp39-win32.whl", hash = "sha256:be46fec3d6ed968e5c3039d5adf4e77e8b9d24d72e7ba75b71156d56ff4b09ab"}, + {file = "bitarray-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:476d7b2a6bafbebdfb636a0bb658a5638b057628e00f7b9ad83d90134f4fdd08"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:14b3bd0b2d29cc692819d4f9853bb8ba9547176c48d73adfa171bb4eb16ed2e6"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:647cd1433bcb2271f1a224456c146a42db116e57906e37bf301bb655079154d5"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1db275f2775a28a3519b6d80d5d1136746e8000a355a7c7eba586d6e5a386e7a"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a640fc0227b995caad65bbc39e1edd14e01d4741aed3c376a29d9283d9d2da15"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d5b9394d063bcd8bf7be7f4bb54b38fe1400e256f3053fe60eee8e169e6fce5"}, + {file = "bitarray-3.4.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:14b07b99c8bcbbcac6801838765e0b2ac15ec419f487ee9986982209821a7087"}, + {file = "bitarray-3.4.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c0ddcc1a80cdb1f7bfac094c60a57263b39fb44e41f86ee7c553f38da666a97a"}, + {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7892d6f71d3cb79855dd318a6bed81d0943e244ff31f5d7a04386e3403ed0f51"}, + {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12c9c6fe8e27d4bfee750d83bda45808a716dbec439ea077097806545dfc5879"}, + {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:778063aae102fbc7320b7473be3915415942155220352740c5572a08d28f4b54"}, + {file = "bitarray-3.4.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:28aaa565fb7a9611f1366db2b228f0158bb4915132572c6b73416c00baf4d8a4"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:55d10287cf4559460a73af1aafd48b4a12af825d090547af61ecf1c4bd2bb84b"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:885c50c7d6ae1a160c5e30f33580006bfe906de2bac206a427c57087b81280f8"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceab4b82ad736224f8f5d1ba9d89a25a911266f3c89d968be65a14f21c955619"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2223e44e502649de51d747ba4e52564addd90fac3838794f77ab4d3ce363cfb"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6ad49786e85538d577e27a764a02f741bc262ec302f2c2e74a886fc40bd306a"}, + {file = "bitarray-3.4.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b54500ca32e6f3af99c785f99c2f1fad4af5f577c49a02a0c39e398aabe8deec"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9e665df0eda2d398086ecb88385e8ba3f67b52607e9e711538ac8fb6ad4c2a0f"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:16ec771bcb2d5d646c826a7d24763c15fc2ee025ef826c2c84f53999107c7358"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d335df95e4d088c0e4c8d6333f25eb5ed40d068fee8185fb7dbbd9b98b849cf"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2761a82280007c0930529fab344db61eb497a6338fecac3a61e0f1980e93159c"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bae86e1a22aa55b8ee101d73119dac28879d329e80ed76f17fde5eff2d48e6f"}, + {file = "bitarray-3.4.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ae60b992461f864e5d7fc274ca0fba9ced4abfce18e9089bd542a18912824713"}, + {file = "bitarray-3.4.1.tar.gz", hash = "sha256:e5fa88732bbcfb5437ee554e18f842a8f6c86be73656b0580ee146fd373176c9"}, ] [[package]] @@ -411,13 +411,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2025.1.31" +version = "2025.4.26" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, + {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, + {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, ] [[package]] @@ -512,103 +512,103 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.4.1" +version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, - {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, - {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, - {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, + {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, + {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] [[package]] @@ -1105,13 +1105,13 @@ tools = ["hypothesis (>=6.22.0,<6.108.7)"] [[package]] name = "eth-account" -version = "0.13.6" +version = "0.13.7" description = "eth-account: Sign Ethereum transactions and messages with local private keys" optional = false python-versions = "<4,>=3.8" files = [ - {file = "eth_account-0.13.6-py3-none-any.whl", hash = "sha256:27b8c86e134ab10adec5022b55c8005f9fbdccba8b99bd318e45aa56863e1416"}, - {file = "eth_account-0.13.6.tar.gz", hash = "sha256:e496cc4c50fe4e22972f720fda4c13e126e5636d0274163888eb27f08530ac61"}, + {file = "eth_account-0.13.7-py3-none-any.whl", hash = "sha256:39727de8c94d004ff61d10da7587509c04d2dc7eac71e04830135300bdfc6d24"}, + {file = "eth_account-0.13.7.tar.gz", hash = "sha256:5853ecbcbb22e65411176f121f5f24b8afeeaf13492359d254b16d8b18c77a46"}, ] [package.dependencies] @@ -1260,15 +1260,18 @@ test = ["hypothesis (>=4.43.0)", "mypy (==1.10.0)", "pytest (>=7.0.0)", "pytest- [[package]] name = "exceptiongroup" -version = "1.2.2" +version = "1.3.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + [package.extras] test = ["pytest (>=6)"] @@ -1328,103 +1331,115 @@ docs = ["alabaster", "myst-parser (>=0.18.0,<0.19.0)", "pygments-github-lexers", [[package]] name = "frozenlist" -version = "1.5.0" +version = "1.6.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {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"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6e558ea1e47fd6fa8ac9ccdad403e5dd5ecc6ed8dda94343056fa4277d5c65e"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4b3cd7334a4bbc0c472164f3744562cb72d05002cc6fcf58adb104630bbc352"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9799257237d0479736e2b4c01ff26b5c7f7694ac9692a426cb717f3dc02fff9b"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a7bb0fe1f7a70fb5c6f497dc32619db7d2cdd53164af30ade2f34673f8b1fc"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:36d2fc099229f1e4237f563b2a3e0ff7ccebc3999f729067ce4e64a97a7f2869"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f27a9f9a86dcf00708be82359db8de86b80d029814e6693259befe82bb58a106"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ecee69073312951244f11b8627e3700ec2bfe07ed24e3a685a5979f0412d24"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2c7d5aa19714b1b01a0f515d078a629e445e667b9da869a3cd0e6fe7dec78bd"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69bbd454f0fb23b51cadc9bdba616c9678e4114b6f9fa372d462ff2ed9323ec8"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7daa508e75613809c7a57136dec4871a21bca3080b3a8fc347c50b187df4f00c"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:89ffdb799154fd4d7b85c56d5fa9d9ad48946619e0eb95755723fffa11022d75"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:920b6bd77d209931e4c263223381d63f76828bec574440f29eb497cf3394c249"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d3ceb265249fb401702fce3792e6b44c1166b9319737d21495d3611028d95769"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:52021b528f1571f98a7d4258c58aa8d4b1a96d4f01d00d51f1089f2e0323cb02"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0f2ca7810b809ed0f1917293050163c7654cefc57a49f337d5cd9de717b8fad3"}, + {file = "frozenlist-1.6.0-cp310-cp310-win32.whl", hash = "sha256:0e6f8653acb82e15e5443dba415fb62a8732b68fe09936bb6d388c725b57f812"}, + {file = "frozenlist-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f1a39819a5a3e84304cd286e3dc62a549fe60985415851b3337b6f5cc91907f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e"}, + {file = "frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860"}, + {file = "frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770"}, + {file = "frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc"}, + {file = "frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e"}, + {file = "frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4"}, + {file = "frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:536a1236065c29980c15c7229fbb830dedf809708c10e159b8136534233545f0"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ed5e3a4462ff25ca84fb09e0fada8ea267df98a450340ead4c91b44857267d70"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e19c0fc9f4f030fcae43b4cdec9e8ab83ffe30ec10c79a4a43a04d1af6c5e1ad"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c608f833897501dac548585312d73a7dca028bf3b8688f0d712b7acfaf7fb3"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0dbae96c225d584f834b8d3cc688825911960f003a85cb0fd20b6e5512468c42"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:625170a91dd7261a1d1c2a0c1a353c9e55d21cd67d0852185a5fef86587e6f5f"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1db8b2fc7ee8a940b547a14c10e56560ad3ea6499dc6875c354e2335812f739d"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4da6fc43048b648275a220e3a61c33b7fff65d11bdd6dcb9d9c145ff708b804c"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef8e7e8f2f3820c5f175d70fdd199b79e417acf6c72c5d0aa8f63c9f721646f"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aa733d123cc78245e9bb15f29b44ed9e5780dc6867cfc4e544717b91f980af3b"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ba7f8d97152b61f22d7f59491a781ba9b177dd9f318486c5fbc52cde2db12189"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:56a0b8dd6d0d3d971c91f1df75e824986667ccce91e20dca2023683814344791"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5c9e89bf19ca148efcc9e3c44fd4c09d5af85c8a7dd3dbd0da1cb83425ef4983"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1330f0a4376587face7637dfd245380a57fe21ae8f9d360c1c2ef8746c4195fa"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2187248203b59625566cac53572ec8c2647a140ee2738b4e36772930377a533c"}, + {file = "frozenlist-1.6.0-cp39-cp39-win32.whl", hash = "sha256:2b8cf4cfea847d6c12af06091561a89740f1f67f331c3fa8623391905e878530"}, + {file = "frozenlist-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:1255d5d64328c5a0d066ecb0f02034d086537925f1f04b50b1ae60d37afbf572"}, + {file = "frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191"}, + {file = "frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68"}, ] [[package]] @@ -1571,29 +1586,29 @@ ecdsa = ">=0.14.0" [[package]] name = "hexbytes" -version = "1.3.0" +version = "1.3.1" description = "hexbytes: Python `bytes` subclass that decodes hex, with a readable console output" optional = false python-versions = "<4,>=3.8" files = [ - {file = "hexbytes-1.3.0-py3-none-any.whl", hash = "sha256:83720b529c6e15ed21627962938dc2dec9bb1010f17bbbd66bf1e6a8287d522c"}, - {file = "hexbytes-1.3.0.tar.gz", hash = "sha256:4a61840c24b0909a6534350e2d28ee50159ca1c9e89ce275fd31c110312cf684"}, + {file = "hexbytes-1.3.1-py3-none-any.whl", hash = "sha256:da01ff24a1a9a2b1881c4b85f0e9f9b0f51b526b379ffa23832ae7899d29c2c7"}, + {file = "hexbytes-1.3.1.tar.gz", hash = "sha256:a657eebebdfe27254336f98d8af6e2236f3f83aed164b87466b6cf6c5f5a4765"}, ] [package.extras] -dev = ["build (>=0.9.0)", "bump_my_version (>=0.19.0)", "eth_utils (>=2.0.0)", "hypothesis (>=3.44.24,<=6.31.6)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "twine", "wheel"] +dev = ["build (>=0.9.0)", "bump_my_version (>=0.19.0)", "eth_utils (>=2.0.0)", "hypothesis (>=3.44.24)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "twine", "wheel"] docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)"] -test = ["eth_utils (>=2.0.0)", "hypothesis (>=3.44.24,<=6.31.6)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] +test = ["eth_utils (>=2.0.0)", "hypothesis (>=3.44.24)", "pytest (>=7.0.0)", "pytest-xdist (>=2.4.0)"] [[package]] name = "identify" -version = "2.6.9" +version = "2.6.10" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.9-py2.py3-none-any.whl", hash = "sha256:c98b4322da415a8e5a70ff6e51fbc2d2932c015532d77e9f8537b4ba7813b150"}, - {file = "identify-2.6.9.tar.gz", hash = "sha256:d40dfe3142a1421d8518e3d3985ef5ac42890683e32306ad614a29490abeb6bf"}, + {file = "identify-2.6.10-py2.py3-none-any.whl", hash = "sha256:5f34248f54136beed1a7ba6a6b5c4b6cf21ff495aac7c359e1ef831ae3b8ab25"}, + {file = "identify-2.6.10.tar.gz", hash = "sha256:45e92fd704f3da71cc3880036633f48b4b7265fd4de2b57627cb157216eb7eb8"}, ] [package.extras] @@ -1682,115 +1697,115 @@ files = [ [[package]] name = "multidict" -version = "6.4.3" +version = "6.4.4" description = "multidict implementation" optional = false python-versions = ">=3.9" files = [ - {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32a998bd8a64ca48616eac5a8c1cc4fa38fb244a3facf2eeb14abe186e0f6cc5"}, - {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a54ec568f1fc7f3c313c2f3b16e5db346bf3660e1309746e7fccbbfded856188"}, - {file = "multidict-6.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a7be07e5df178430621c716a63151165684d3e9958f2bbfcb644246162007ab7"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b128dbf1c939674a50dd0b28f12c244d90e5015e751a4f339a96c54f7275e291"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9cb19dfd83d35b6ff24a4022376ea6e45a2beba8ef3f0836b8a4b288b6ad685"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3cf62f8e447ea2c1395afa289b332e49e13d07435369b6f4e41f887db65b40bf"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:909f7d43ff8f13d1adccb6a397094adc369d4da794407f8dd592c51cf0eae4b1"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bb8f8302fbc7122033df959e25777b0b7659b1fd6bcb9cb6bed76b5de67afef"}, - {file = "multidict-6.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:224b79471b4f21169ea25ebc37ed6f058040c578e50ade532e2066562597b8a9"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a7bd27f7ab3204f16967a6f899b3e8e9eb3362c0ab91f2ee659e0345445e0078"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:99592bd3162e9c664671fd14e578a33bfdba487ea64bcb41d281286d3c870ad7"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a62d78a1c9072949018cdb05d3c533924ef8ac9bcb06cbf96f6d14772c5cd451"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ccdde001578347e877ca4f629450973c510e88e8865d5aefbcb89b852ccc666"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:eccb67b0e78aa2e38a04c5ecc13bab325a43e5159a181a9d1a6723db913cbb3c"}, - {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8b6fcf6054fc4114a27aa865f8840ef3d675f9316e81868e0ad5866184a6cba5"}, - {file = "multidict-6.4.3-cp310-cp310-win32.whl", hash = "sha256:f92c7f62d59373cd93bc9969d2da9b4b21f78283b1379ba012f7ee8127b3152e"}, - {file = "multidict-6.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:b57e28dbc031d13916b946719f213c494a517b442d7b48b29443e79610acd887"}, - {file = "multidict-6.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f6f19170197cc29baccd33ccc5b5d6a331058796485857cf34f7635aa25fb0cd"}, - {file = "multidict-6.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f2882bf27037eb687e49591690e5d491e677272964f9ec7bc2abbe09108bdfb8"}, - {file = "multidict-6.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fbf226ac85f7d6b6b9ba77db4ec0704fde88463dc17717aec78ec3c8546c70ad"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e329114f82ad4b9dd291bef614ea8971ec119ecd0f54795109976de75c9a852"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1f4e0334d7a555c63f5c8952c57ab6f1c7b4f8c7f3442df689fc9f03df315c08"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:740915eb776617b57142ce0bb13b7596933496e2f798d3d15a20614adf30d229"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255dac25134d2b141c944b59a0d2f7211ca12a6d4779f7586a98b4b03ea80508"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4e8535bd4d741039b5aad4285ecd9b902ef9e224711f0b6afda6e38d7ac02c7"}, - {file = "multidict-6.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c433a33be000dd968f5750722eaa0991037be0be4a9d453eba121774985bc8"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4eb33b0bdc50acd538f45041f5f19945a1f32b909b76d7b117c0c25d8063df56"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:75482f43465edefd8a5d72724887ccdcd0c83778ded8f0cb1e0594bf71736cc0"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ce5b3082e86aee80b3925ab4928198450d8e5b6466e11501fe03ad2191c6d777"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e413152e3212c4d39f82cf83c6f91be44bec9ddea950ce17af87fbf4e32ca6b2"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8aac2eeff69b71f229a405c0a4b61b54bade8e10163bc7b44fcd257949620618"}, - {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ab583ac203af1d09034be41458feeab7863c0635c650a16f15771e1386abf2d7"}, - {file = "multidict-6.4.3-cp311-cp311-win32.whl", hash = "sha256:1b2019317726f41e81154df636a897de1bfe9228c3724a433894e44cd2512378"}, - {file = "multidict-6.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:43173924fa93c7486402217fab99b60baf78d33806af299c56133a3755f69589"}, - {file = "multidict-6.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f1c2f58f08b36f8475f3ec6f5aeb95270921d418bf18f90dffd6be5c7b0e676"}, - {file = "multidict-6.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:26ae9ad364fc61b936fb7bf4c9d8bd53f3a5b4417142cd0be5c509d6f767e2f1"}, - {file = "multidict-6.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:659318c6c8a85f6ecfc06b4e57529e5a78dfdd697260cc81f683492ad7e9435a"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1eb72c741fd24d5a28242ce72bb61bc91f8451877131fa3fe930edb195f7054"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3cd06d88cb7398252284ee75c8db8e680aa0d321451132d0dba12bc995f0adcc"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4543d8dc6470a82fde92b035a92529317191ce993533c3c0c68f56811164ed07"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30a3ebdc068c27e9d6081fca0e2c33fdf132ecea703a72ea216b81a66860adde"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b038f10e23f277153f86f95c777ba1958bcd5993194fda26a1d06fae98b2f00c"}, - {file = "multidict-6.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c605a2b2dc14282b580454b9b5d14ebe0668381a3a26d0ac39daa0ca115eb2ae"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8bd2b875f4ca2bb527fe23e318ddd509b7df163407b0fb717df229041c6df5d3"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c2e98c840c9c8e65c0e04b40c6c5066c8632678cd50c8721fdbcd2e09f21a507"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:66eb80dd0ab36dbd559635e62fba3083a48a252633164857a1d1684f14326427"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c23831bdee0a2a3cf21be057b5e5326292f60472fb6c6f86392bbf0de70ba731"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1535cec6443bfd80d028052e9d17ba6ff8a5a3534c51d285ba56c18af97e9713"}, - {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3b73e7227681f85d19dec46e5b881827cd354aabe46049e1a61d2f9aaa4e285a"}, - {file = "multidict-6.4.3-cp312-cp312-win32.whl", hash = "sha256:8eac0c49df91b88bf91f818e0a24c1c46f3622978e2c27035bfdca98e0e18124"}, - {file = "multidict-6.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:11990b5c757d956cd1db7cb140be50a63216af32cd6506329c2c59d732d802db"}, - {file = "multidict-6.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a76534263d03ae0cfa721fea40fd2b5b9d17a6f85e98025931d41dc49504474"}, - {file = "multidict-6.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:805031c2f599eee62ac579843555ed1ce389ae00c7e9f74c2a1b45e0564a88dd"}, - {file = "multidict-6.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c56c179839d5dcf51d565132185409d1d5dd8e614ba501eb79023a6cab25576b"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c64f4ddb3886dd8ab71b68a7431ad4aa01a8fa5be5b11543b29674f29ca0ba3"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3002a856367c0b41cad6784f5b8d3ab008eda194ed7864aaa58f65312e2abcac"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d75e621e7d887d539d6e1d789f0c64271c250276c333480a9e1de089611f790"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:995015cf4a3c0d72cbf453b10a999b92c5629eaf3a0c3e1efb4b5c1f602253bb"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b0fabae7939d09d7d16a711468c385272fa1b9b7fb0d37e51143585d8e72e0"}, - {file = "multidict-6.4.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:61ed4d82f8a1e67eb9eb04f8587970d78fe7cddb4e4d6230b77eda23d27938f9"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:062428944a8dc69df9fdc5d5fc6279421e5f9c75a9ee3f586f274ba7b05ab3c8"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b90e27b4674e6c405ad6c64e515a505c6d113b832df52fdacb6b1ffd1fa9a1d1"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7d50d4abf6729921e9613d98344b74241572b751c6b37feed75fb0c37bd5a817"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:43fe10524fb0a0514be3954be53258e61d87341008ce4914f8e8b92bee6f875d"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:236966ca6c472ea4e2d3f02f6673ebfd36ba3f23159c323f5a496869bc8e47c9"}, - {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:422a5ec315018e606473ba1f5431e064cf8b2a7468019233dcf8082fabad64c8"}, - {file = "multidict-6.4.3-cp313-cp313-win32.whl", hash = "sha256:f901a5aace8e8c25d78960dcc24c870c8d356660d3b49b93a78bf38eb682aac3"}, - {file = "multidict-6.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:1c152c49e42277bc9a2f7b78bd5fa10b13e88d1b0328221e7aef89d5c60a99a5"}, - {file = "multidict-6.4.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:be8751869e28b9c0d368d94f5afcb4234db66fe8496144547b4b6d6a0645cfc6"}, - {file = "multidict-6.4.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d4b31f8a68dccbcd2c0ea04f0e014f1defc6b78f0eb8b35f2265e8716a6df0c"}, - {file = "multidict-6.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:032efeab3049e37eef2ff91271884303becc9e54d740b492a93b7e7266e23756"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e78006af1a7c8a8007e4f56629d7252668344442f66982368ac06522445e375"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:daeac9dd30cda8703c417e4fddccd7c4dc0c73421a0b54a7da2713be125846be"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f6f90700881438953eae443a9c6f8a509808bc3b185246992c4233ccee37fea"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f84627997008390dd15762128dcf73c3365f4ec0106739cde6c20a07ed198ec8"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3307b48cd156153b117c0ea54890a3bdbf858a5b296ddd40dc3852e5f16e9b02"}, - {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ead46b0fa1dcf5af503a46e9f1c2e80b5d95c6011526352fa5f42ea201526124"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1748cb2743bedc339d63eb1bca314061568793acd603a6e37b09a326334c9f44"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:acc9fa606f76fc111b4569348cc23a771cb52c61516dcc6bcef46d612edb483b"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:31469d5832b5885adeb70982e531ce86f8c992334edd2f2254a10fa3182ac504"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ba46b51b6e51b4ef7bfb84b82f5db0dc5e300fb222a8a13b8cd4111898a869cf"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:389cfefb599edf3fcfd5f64c0410da686f90f5f5e2c4d84e14f6797a5a337af4"}, - {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:64bc2bbc5fba7b9db5c2c8d750824f41c6994e3882e6d73c903c2afa78d091e4"}, - {file = "multidict-6.4.3-cp313-cp313t-win32.whl", hash = "sha256:0ecdc12ea44bab2807d6b4a7e5eef25109ab1c82a8240d86d3c1fc9f3b72efd5"}, - {file = "multidict-6.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:7146a8742ea71b5d7d955bffcef58a9e6e04efba704b52a460134fefd10a8208"}, - {file = "multidict-6.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5427a2679e95a642b7f8b0f761e660c845c8e6fe3141cddd6b62005bd133fc21"}, - {file = "multidict-6.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:24a8caa26521b9ad09732972927d7b45b66453e6ebd91a3c6a46d811eeb7349b"}, - {file = "multidict-6.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6b5a272bc7c36a2cd1b56ddc6bff02e9ce499f9f14ee4a45c45434ef083f2459"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf74dc5e212b8c75165b435c43eb0d5e81b6b300a938a4eb82827119115e840"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9f35de41aec4b323c71f54b0ca461ebf694fb48bec62f65221f52e0017955b39"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae93e0ff43b6f6892999af64097b18561691ffd835e21a8348a441e256592e1f"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e3929269e9d7eff905d6971d8b8c85e7dbc72c18fb99c8eae6fe0a152f2e343"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb6214fe1750adc2a1b801a199d64b5a67671bf76ebf24c730b157846d0e90d2"}, - {file = "multidict-6.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d79cf5c0c6284e90f72123f4a3e4add52d6c6ebb4a9054e88df15b8d08444c6"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2427370f4a255262928cd14533a70d9738dfacadb7563bc3b7f704cc2360fc4e"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:fbd8d737867912b6c5f99f56782b8cb81f978a97b4437a1c476de90a3e41c9a1"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0ee1bf613c448997f73fc4efb4ecebebb1c02268028dd4f11f011f02300cf1e8"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578568c4ba5f2b8abd956baf8b23790dbfdc953e87d5b110bce343b4a54fc9e7"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a059ad6b80de5b84b9fa02a39400319e62edd39d210b4e4f8c4f1243bdac4752"}, - {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dd53893675b729a965088aaadd6a1f326a72b83742b056c1065bdd2e2a42b4df"}, - {file = "multidict-6.4.3-cp39-cp39-win32.whl", hash = "sha256:abcfed2c4c139f25c2355e180bcc077a7cae91eefbb8b3927bb3f836c9586f1f"}, - {file = "multidict-6.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:b1b389ae17296dd739015d5ddb222ee99fd66adeae910de21ac950e00979d897"}, - {file = "multidict-6.4.3-py3-none-any.whl", hash = "sha256:59fe01ee8e2a1e8ceb3f6dbb216b09c8d9f4ef1c22c4fc825d045a147fa2ebc9"}, - {file = "multidict-6.4.3.tar.gz", hash = "sha256:3ada0b058c9f213c5f95ba301f922d402ac234f1111a7d8fd70f1b99f3c281ec"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8adee3ac041145ffe4488ea73fa0a622b464cc25340d98be76924d0cda8545ff"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b61e98c3e2a861035aaccd207da585bdcacef65fe01d7a0d07478efac005e028"}, + {file = "multidict-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:75493f28dbadecdbb59130e74fe935288813301a8554dc32f0c631b6bdcdf8b0"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc3c6a37e048b5395ee235e4a2a0d639c2349dffa32d9367a42fc20d399772"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87cb72263946b301570b0f63855569a24ee8758aaae2cd182aae7d95fbc92ca7"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bbf7bd39822fd07e3609b6b4467af4c404dd2b88ee314837ad1830a7f4a8299"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1f7cbd4f1f44ddf5fd86a8675b7679176eae770f2fc88115d6dddb6cefb59bc"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5ac9e5bfce0e6282e7f59ff7b7b9a74aa8e5c60d38186a4637f5aa764046ad"}, + {file = "multidict-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4efc31dfef8c4eeb95b6b17d799eedad88c4902daba39ce637e23a17ea078915"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9fcad2945b1b91c29ef2b4050f590bfcb68d8ac8e0995a74e659aa57e8d78e01"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d877447e7368c7320832acb7159557e49b21ea10ffeb135c1077dbbc0816b598"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:33a12ebac9f380714c298cbfd3e5b9c0c4e89c75fe612ae496512ee51028915f"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0f14ea68d29b43a9bf37953881b1e3eb75b2739e896ba4a6aa4ad4c5b9ffa145"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0327ad2c747a6600e4797d115d3c38a220fdb28e54983abe8964fd17e95ae83c"}, + {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d1a20707492db9719a05fc62ee215fd2c29b22b47c1b1ba347f9abc831e26683"}, + {file = "multidict-6.4.4-cp310-cp310-win32.whl", hash = "sha256:d83f18315b9fca5db2452d1881ef20f79593c4aa824095b62cb280019ef7aa3d"}, + {file = "multidict-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:9c17341ee04545fd962ae07330cb5a39977294c883485c8d74634669b1f7fe04"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a"}, + {file = "multidict-6.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2"}, + {file = "multidict-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c"}, + {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08"}, + {file = "multidict-6.4.4-cp311-cp311-win32.whl", hash = "sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49"}, + {file = "multidict-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d"}, + {file = "multidict-6.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1"}, + {file = "multidict-6.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740"}, + {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e"}, + {file = "multidict-6.4.4-cp312-cp312-win32.whl", hash = "sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b"}, + {file = "multidict-6.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf"}, + {file = "multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c"}, + {file = "multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4"}, + {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1"}, + {file = "multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd"}, + {file = "multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c"}, + {file = "multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab"}, + {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e"}, + {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd"}, + {file = "multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e"}, + {file = "multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:603f39bd1cf85705c6c1ba59644b480dfe495e6ee2b877908de93322705ad7cf"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fc60f91c02e11dfbe3ff4e1219c085695c339af72d1641800fe6075b91850c8f"}, + {file = "multidict-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:496bcf01c76a70a31c3d746fd39383aad8d685ce6331e4c709e9af4ced5fa221"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4219390fb5bf8e548e77b428bb36a21d9382960db5321b74d9d9987148074d6b"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef4e9096ff86dfdcbd4a78253090ba13b1d183daa11b973e842465d94ae1772"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49a29d7133b1fc214e818bbe025a77cc6025ed9a4f407d2850373ddde07fd04a"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e32053d6d3a8b0dfe49fde05b496731a0e6099a4df92154641c00aa76786aef5"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cc403092a49509e8ef2d2fd636a8ecefc4698cc57bbe894606b14579bc2a955"}, + {file = "multidict-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5363f9b2a7f3910e5c87d8b1855c478c05a2dc559ac57308117424dfaad6805c"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e543a40e4946cf70a88a3be87837a3ae0aebd9058ba49e91cacb0b2cd631e2b"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:60d849912350da557fe7de20aa8cf394aada6980d0052cc829eeda4a0db1c1db"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:19d08b4f22eae45bb018b9f06e2838c1e4b853c67628ef8ae126d99de0da6395"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d693307856d1ef08041e8b6ff01d5b4618715007d288490ce2c7e29013c12b9a"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fad6daaed41021934917f4fb03ca2db8d8a4d79bf89b17ebe77228eb6710c003"}, + {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c10d17371bff801af0daf8b073c30b6cf14215784dc08cd5c43ab5b7b8029bbc"}, + {file = "multidict-6.4.4-cp39-cp39-win32.whl", hash = "sha256:7e23f2f841fcb3ebd4724a40032d32e0892fbba4143e43d2a9e7695c5e50e6bd"}, + {file = "multidict-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d7b50b673ffb4ff4366e7ab43cf1f0aef4bd3608735c5fbdf0bdb6f690da411"}, + {file = "multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac"}, + {file = "multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8"}, ] [package.dependencies] @@ -1798,13 +1813,13 @@ typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} [[package]] name = "mypy-extensions" -version = "1.0.0" +version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] [[package]] @@ -1820,13 +1835,13 @@ files = [ [[package]] name = "packaging" -version = "24.2" +version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, ] [[package]] @@ -1856,13 +1871,13 @@ files = [ [[package]] name = "platformdirs" -version = "4.3.7" +version = "4.3.8" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.9" files = [ - {file = "platformdirs-4.3.7-py3-none-any.whl", hash = "sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94"}, - {file = "platformdirs-4.3.7.tar.gz", hash = "sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351"}, + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [package.extras] @@ -1872,18 +1887,18 @@ type = ["mypy (>=1.14.1)"] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, + {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, + {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] [package.extras] dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] +testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "pre-commit" @@ -2054,56 +2069,68 @@ files = [ [[package]] name = "pycryptodome" -version = "3.22.0" +version = "3.23.0" description = "Cryptographic library for Python" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "pycryptodome-3.22.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:96e73527c9185a3d9b4c6d1cfb4494f6ced418573150be170f6580cb975a7f5a"}, - {file = "pycryptodome-3.22.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:9e1bb165ea1dc83a11e5dbbe00ef2c378d148f3a2d3834fb5ba4e0f6fd0afe4b"}, - {file = "pycryptodome-3.22.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:d4d1174677855c266eed5c4b4e25daa4225ad0c9ffe7584bb1816767892545d0"}, - {file = "pycryptodome-3.22.0-cp27-cp27m-win32.whl", hash = "sha256:9dbb749cef71c28271484cbef684f9b5b19962153487735411e1020ca3f59cb1"}, - {file = "pycryptodome-3.22.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f1ae7beb64d4fc4903a6a6cca80f1f448e7a8a95b77d106f8a29f2eb44d17547"}, - {file = "pycryptodome-3.22.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:a26bcfee1293b7257c83b0bd13235a4ee58165352be4f8c45db851ba46996dc6"}, - {file = "pycryptodome-3.22.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:009e1c80eea42401a5bd5983c4bab8d516aef22e014a4705622e24e6d9d703c6"}, - {file = "pycryptodome-3.22.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3b76fa80daeff9519d7e9f6d9e40708f2fce36b9295a847f00624a08293f4f00"}, - {file = "pycryptodome-3.22.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a31fa5914b255ab62aac9265654292ce0404f6b66540a065f538466474baedbc"}, - {file = "pycryptodome-3.22.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0092fd476701eeeb04df5cc509d8b739fa381583cda6a46ff0a60639b7cd70d"}, - {file = "pycryptodome-3.22.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d5b0ddc7cf69231736d778bd3ae2b3efb681ae33b64b0c92fb4626bb48bb89"}, - {file = "pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f6cf6aa36fcf463e622d2165a5ad9963b2762bebae2f632d719dfb8544903cf5"}, - {file = "pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:aec7b40a7ea5af7c40f8837adf20a137d5e11a6eb202cde7e588a48fb2d871a8"}, - {file = "pycryptodome-3.22.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d21c1eda2f42211f18a25db4eaf8056c94a8563cd39da3683f89fe0d881fb772"}, - {file = "pycryptodome-3.22.0-cp37-abi3-win32.whl", hash = "sha256:f02baa9f5e35934c6e8dcec91fcde96612bdefef6e442813b8ea34e82c84bbfb"}, - {file = "pycryptodome-3.22.0-cp37-abi3-win_amd64.whl", hash = "sha256:d086aed307e96d40c23c42418cbbca22ecc0ab4a8a0e24f87932eeab26c08627"}, - {file = "pycryptodome-3.22.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:98fd9da809d5675f3a65dcd9ed384b9dc67edab6a4cda150c5870a8122ec961d"}, - {file = "pycryptodome-3.22.0-pp27-pypy_73-win32.whl", hash = "sha256:37ddcd18284e6b36b0a71ea495a4c4dca35bb09ccc9bfd5b91bfaf2321f131c1"}, - {file = "pycryptodome-3.22.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b4bdce34af16c1dcc7f8c66185684be15f5818afd2a82b75a4ce6b55f9783e13"}, - {file = "pycryptodome-3.22.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2988ffcd5137dc2d27eb51cd18c0f0f68e5b009d5fec56fbccb638f90934f333"}, - {file = "pycryptodome-3.22.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e653519dedcd1532788547f00eeb6108cc7ce9efdf5cc9996abce0d53f95d5a9"}, - {file = "pycryptodome-3.22.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5810bc7494e4ac12a4afef5a32218129e7d3890ce3f2b5ec520cc69eb1102ad"}, - {file = "pycryptodome-3.22.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e7514a1aebee8e85802d154fdb261381f1cb9b7c5a54594545145b8ec3056ae6"}, - {file = "pycryptodome-3.22.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:56c6f9342fcb6c74e205fbd2fee568ec4cdbdaa6165c8fde55dbc4ba5f584464"}, - {file = "pycryptodome-3.22.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87a88dc543b62b5c669895caf6c5a958ac7abc8863919e94b7a6cafd2f64064f"}, - {file = "pycryptodome-3.22.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7a683bc9fa585c0dfec7fa4801c96a48d30b30b096e3297f9374f40c2fedafc"}, - {file = "pycryptodome-3.22.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f4f6f47a7f411f2c157e77bbbda289e0c9f9e1e9944caa73c1c2e33f3f92d6e"}, - {file = "pycryptodome-3.22.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6cf9553b29624961cab0785a3177a333e09e37ba62ad22314ebdbb01ca79840"}, - {file = "pycryptodome-3.22.0.tar.gz", hash = "sha256:fd7ab568b3ad7b77c908d7c3f7e167ec5a8f035c64ff74f10d47a4edd043d723"}, + {file = "pycryptodome-3.23.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a176b79c49af27d7f6c12e4b178b0824626f40a7b9fed08f712291b6d54bf566"}, + {file = "pycryptodome-3.23.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:573a0b3017e06f2cffd27d92ef22e46aa3be87a2d317a5abf7cc0e84e321bd75"}, + {file = "pycryptodome-3.23.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:63dad881b99ca653302b2c7191998dd677226222a3f2ea79999aa51ce695f720"}, + {file = "pycryptodome-3.23.0-cp27-cp27m-win32.whl", hash = "sha256:b34e8e11d97889df57166eda1e1ddd7676da5fcd4d71a0062a760e75060514b4"}, + {file = "pycryptodome-3.23.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:7ac1080a8da569bde76c0a104589c4f414b8ba296c0b3738cf39a466a9fb1818"}, + {file = "pycryptodome-3.23.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6fe8258e2039eceb74dfec66b3672552b6b7d2c235b2dfecc05d16b8921649a8"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0011f7f00cdb74879142011f95133274741778abba114ceca229adbf8e62c3e4"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:90460fc9e088ce095f9ee8356722d4f10f86e5be06e2354230a9880b9c549aae"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4764e64b269fc83b00f682c47443c2e6e85b18273712b98aa43bcb77f8570477"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d97618c9c6684a97ef7637ba43bdf6663a2e2e77efe0f863cce97a76af396446"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a53a4fe5cb075075d515797d6ce2f56772ea7e6a1e5e4b96cf78a14bac3d265"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:763d1d74f56f031788e5d307029caef067febf890cd1f8bf61183ae142f1a77b"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:954af0e2bd7cea83ce72243b14e4fb518b18f0c1649b576d114973e2073b273d"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:257bb3572c63ad8ba40b89f6fc9d63a2a628e9f9708d31ee26560925ebe0210a"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6501790c5b62a29fcb227bd6b62012181d886a767ce9ed03b303d1f22eb5c625"}, + {file = "pycryptodome-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9a77627a330ab23ca43b48b130e202582e91cc69619947840ea4d2d1be21eb39"}, + {file = "pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27"}, + {file = "pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843"}, + {file = "pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490"}, + {file = "pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575"}, + {file = "pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b"}, + {file = "pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a"}, + {file = "pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f"}, + {file = "pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa"}, + {file = "pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886"}, + {file = "pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2"}, + {file = "pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c"}, + {file = "pycryptodome-3.23.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:350ebc1eba1da729b35ab7627a833a1a355ee4e852d8ba0447fafe7b14504d56"}, + {file = "pycryptodome-3.23.0-pp27-pypy_73-win32.whl", hash = "sha256:93837e379a3e5fd2bb00302a47aee9fdf7940d83595be3915752c74033d17ca7"}, + {file = "pycryptodome-3.23.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddb95b49df036ddd264a0ad246d1be5b672000f12d6961ea2c267083a5e19379"}, + {file = "pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e95564beb8782abfd9e431c974e14563a794a4944c29d6d3b7b5ea042110b4"}, + {file = "pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14e15c081e912c4b0d75632acd8382dfce45b258667aa3c67caf7a4d4c13f630"}, + {file = "pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7fc76bf273353dc7e5207d172b83f569540fc9a28d63171061c42e361d22353"}, + {file = "pycryptodome-3.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:45c69ad715ca1a94f778215a11e66b7ff989d792a4d63b68dc586a1da1392ff5"}, + {file = "pycryptodome-3.23.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:865d83c906b0fc6a59b510deceee656b6bc1c4fa0d82176e2b77e97a420a996a"}, + {file = "pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89d4d56153efc4d81defe8b65fd0821ef8b2d5ddf8ed19df31ba2f00872b8002"}, + {file = "pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3f2d0aaf8080bda0587d58fc9fe4766e012441e2eed4269a77de6aea981c8be"}, + {file = "pycryptodome-3.23.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64093fc334c1eccfd3933c134c4457c34eaca235eeae49d69449dc4728079339"}, + {file = "pycryptodome-3.23.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ce64e84a962b63a47a592690bdc16a7eaf709d2c2697ababf24a0def566899a6"}, + {file = "pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef"}, ] [[package]] name = "pydantic" -version = "2.11.3" +version = "2.11.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" files = [ - {file = "pydantic-2.11.3-py3-none-any.whl", hash = "sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"}, - {file = "pydantic-2.11.3.tar.gz", hash = "sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3"}, + {file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"}, + {file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"}, ] [package.dependencies] annotated-types = ">=0.6.0" -pydantic-core = "2.33.1" +pydantic-core = "2.33.2" typing-extensions = ">=4.12.2" typing-inspection = ">=0.4.0" @@ -2113,110 +2140,110 @@ timezone = ["tzdata"] [[package]] name = "pydantic-core" -version = "2.33.1" +version = "2.33.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.9" files = [ - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb"}, - {file = "pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96"}, - {file = "pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5"}, - {file = "pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672"}, - {file = "pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3"}, - {file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"}, + {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"}, ] [package.dependencies] @@ -2620,13 +2647,13 @@ files = [ [[package]] name = "setuptools" -version = "78.1.0" +version = "80.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.9" files = [ - {file = "setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8"}, - {file = "setuptools-78.1.0.tar.gz", hash = "sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54"}, + {file = "setuptools-80.8.0-py3-none-any.whl", hash = "sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0"}, + {file = "setuptools-80.8.0.tar.gz", hash = "sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257"}, ] [package.extras] @@ -2714,13 +2741,13 @@ files = [ [[package]] name = "types-requests" -version = "2.32.0.20250328" +version = "2.32.0.20250515" description = "Typing stubs for requests" optional = false python-versions = ">=3.9" files = [ - {file = "types_requests-2.32.0.20250328-py3-none-any.whl", hash = "sha256:72ff80f84b15eb3aa7a8e2625fffb6a93f2ad5a0c20215fc1dcfa61117bcb2a2"}, - {file = "types_requests-2.32.0.20250328.tar.gz", hash = "sha256:c9e67228ea103bd811c96984fac36ed2ae8da87a36a633964a21f199d60baf32"}, + {file = "types_requests-2.32.0.20250515-py3-none-any.whl", hash = "sha256:f8eba93b3a892beee32643ff836993f15a785816acca21ea0ffa006f05ef0fb2"}, + {file = "types_requests-2.32.0.20250515.tar.gz", hash = "sha256:09c8b63c11318cb2460813871aaa48b671002e59fda67ca909e9883777787581"}, ] [package.dependencies] @@ -2770,13 +2797,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.30.0" +version = "20.31.2" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.30.0-py3-none-any.whl", hash = "sha256:e34302959180fca3af42d1800df014b35019490b119eba981af27f2fa486e5d6"}, - {file = "virtualenv-20.30.0.tar.gz", hash = "sha256:800863162bcaa5450a6e4d721049730e7f2dae07720e0902b0e4040bd6f9ada8"}, + {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, + {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, ] [package.dependencies] @@ -2790,19 +2817,19 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "web3" -version = "7.10.0" +version = "7.11.1" description = "web3: A Python library for interacting with Ethereum" optional = false python-versions = "<4,>=3.8" files = [ - {file = "web3-7.10.0-py3-none-any.whl", hash = "sha256:06fcab920554450e9f7d108da5e6b9d29c0d1a981a59a5551cc82d2cb2233b34"}, - {file = "web3-7.10.0.tar.gz", hash = "sha256:0cace05ea14f800a4497649ecd99332ca4e85c8a90ea577e05ae909cb08902b9"}, + {file = "web3-7.11.1-py3-none-any.whl", hash = "sha256:37c3df8c8b48376e5708ab831e20ae1f0ea4cf2ccd16ff0d8aca3e33bfd9bceb"}, + {file = "web3-7.11.1.tar.gz", hash = "sha256:1b23f323cb939c3c9c16a92228d1a62f109fed026089b0d8ce5829eca26031a3"}, ] [package.dependencies] aiohttp = ">=3.7.4.post0" eth-abi = ">=5.0.1" -eth-account = ">=0.13.1" +eth-account = ">=0.13.6" eth-hash = {version = ">=0.5.1", extras = ["pycryptodome"]} eth-typing = ">=5.0.0" eth-utils = ">=5.0.0" @@ -2816,10 +2843,10 @@ typing-extensions = ">=4.0.1" websockets = ">=10.0.0,<16.0.0" [package.extras] -dev = ["build (>=0.9.0)", "bump_my_version (>=0.19.0)", "eth-tester[py-evm] (>=0.12.0b1,<0.13.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "setuptools (>=38.6.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "tqdm (>4.32)", "twine (>=1.13)", "wheel"] -docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)"] -test = ["eth-tester[py-evm] (>=0.12.0b1,<0.13.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "tox (>=4.0.0)"] -tester = ["eth-tester[py-evm] (>=0.12.0b1,<0.13.0b1)", "py-geth (>=5.1.0)"] +dev = ["build (>=0.9.0)", "bump-my-version (>=0.19.0)", "eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "setuptools (>=38.6.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "tqdm (>4.32)", "twine (>=1.13)", "wheel"] +docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)"] +test = ["eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "tox (>=4.0.0)"] +tester = ["eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "py-geth (>=5.1.0)"] [[package]] name = "websockets" @@ -2901,98 +2928,115 @@ files = [ [[package]] name = "yarl" -version = "1.19.0" +version = "1.20.0" description = "Yet another URL library" optional = false python-versions = ">=3.9" files = [ - {file = "yarl-1.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0bae32f8ebd35c04d6528cedb4a26b8bf25339d3616b04613b97347f919b76d3"}, - {file = "yarl-1.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8015a076daf77823e7ebdcba474156587391dab4e70c732822960368c01251e6"}, - {file = "yarl-1.19.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9973ac95327f5d699eb620286c39365990b240031672b5c436a4cd00539596c5"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd4b5fbd7b9dde785cfeb486b8cca211a0b138d4f3a7da27db89a25b3c482e5c"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75460740005de5a912b19f657848aef419387426a40f581b1dc9fac0eb9addb5"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57abd66ca913f2cfbb51eb3dbbbac3648f1f6983f614a4446e0802e241441d2a"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46ade37911b7c99ce28a959147cb28bffbd14cea9e7dd91021e06a8d2359a5aa"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8346ec72ada749a6b5d82bff7be72578eab056ad7ec38c04f668a685abde6af0"}, - {file = "yarl-1.19.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e4cb14a6ee5b6649ccf1c6d648b4da9220e8277d4d4380593c03cc08d8fe937"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:66fc1c2926a73a2fb46e4b92e3a6c03904d9bc3a0b65e01cb7d2b84146a8bd3b"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:5a70201dd1e0a4304849b6445a9891d7210604c27e67da59091d5412bc19e51c"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e4807aab1bdeab6ae6f296be46337a260ae4b1f3a8c2fcd373e236b4b2b46efd"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ae584afe81a1de4c1bb06672481050f0d001cad13163e3c019477409f638f9b7"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:30eaf4459df6e91f21b2999d1ee18f891bcd51e3cbe1de301b4858c84385895b"}, - {file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0e617d45d03c8dec0dfce6f51f3e1b8a31aa81aaf4a4d1442fdb232bcf0c6d8c"}, - {file = "yarl-1.19.0-cp310-cp310-win32.whl", hash = "sha256:32ba32d0fa23893fd8ea8d05bdb05de6eb19d7f2106787024fd969f4ba5466cb"}, - {file = "yarl-1.19.0-cp310-cp310-win_amd64.whl", hash = "sha256:545575ecfcd465891b51546c2bcafdde0acd2c62c2097d8d71902050b20e4922"}, - {file = "yarl-1.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:163ff326680de5f6d4966954cf9e3fe1bf980f5fee2255e46e89b8cf0f3418b5"}, - {file = "yarl-1.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a626c4d9cca298d1be8625cff4b17004a9066330ac82d132bbda64a4c17c18d3"}, - {file = "yarl-1.19.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:961c3e401ea7f13d02b8bb7cb0c709152a632a6e14cdc8119e9c6ee5596cd45d"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a39d7b807ab58e633ed760f80195cbd145b58ba265436af35f9080f1810dfe64"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4228978fb59c6b10f60124ba8e311c26151e176df364e996f3f8ff8b93971b5"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ba536b17ecf3c74a94239ec1137a3ad3caea8c0e4deb8c8d2ffe847d870a8c5"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a251e00e445d2e9df7b827c9843c0b87f58a3254aaa3f162fb610747491fe00f"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9b92431d8b4d4ca5ccbfdbac95b05a3a6cd70cd73aa62f32f9627acfde7549c"}, - {file = "yarl-1.19.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec2f56edaf476f70b5831bbd59700b53d9dd011b1f77cd4846b5ab5c5eafdb3f"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:acf9b92c4245ac8b59bc7ec66a38d3dcb8d1f97fac934672529562bb824ecadb"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:57711f1465c06fee8825b95c0b83e82991e6d9425f9a042c3c19070a70ac92bf"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:528e86f5b1de0ad8dd758ddef4e0ed24f5d946d4a1cef80ffb2d4fca4e10f122"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3b77173663e075d9e5a57e09d711e9da2f3266be729ecca0b8ae78190990d260"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d8717924cf0a825b62b1a96fc7d28aab7f55a81bf5338b8ef41d7a76ab9223e9"}, - {file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0df9f0221a78d858793f40cbea3915c29f969c11366646a92ca47e080a14f881"}, - {file = "yarl-1.19.0-cp311-cp311-win32.whl", hash = "sha256:8b3ade62678ee2c7c10dcd6be19045135e9badad53108f7d2ed14896ee396045"}, - {file = "yarl-1.19.0-cp311-cp311-win_amd64.whl", hash = "sha256:0626ee31edb23ac36bdffe607231de2cca055ad3a5e2dc5da587ef8bc6a321bc"}, - {file = "yarl-1.19.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7b687c334da3ff8eab848c9620c47a253d005e78335e9ce0d6868ed7e8fd170b"}, - {file = "yarl-1.19.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b0fe766febcf523a2930b819c87bb92407ae1368662c1bc267234e79b20ff894"}, - {file = "yarl-1.19.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:742ceffd3c7beeb2b20d47cdb92c513eef83c9ef88c46829f88d5b06be6734ee"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2af682a1e97437382ee0791eacbf540318bd487a942e068e7e0a6c571fadbbd3"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:63702f1a098d0eaaea755e9c9d63172be1acb9e2d4aeb28b187092bcc9ca2d17"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3560dcba3c71ae7382975dc1e912ee76e50b4cd7c34b454ed620d55464f11876"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68972df6a0cc47c8abaf77525a76ee5c5f6ea9bbdb79b9565b3234ded3c5e675"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5684e7ff93ea74e47542232bd132f608df4d449f8968fde6b05aaf9e08a140f9"}, - {file = "yarl-1.19.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8182ad422bfacdebd4759ce3adc6055c0c79d4740aea1104e05652a81cd868c6"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aee5b90a5a9b71ac57400a7bdd0feaa27c51e8f961decc8d412e720a004a1791"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:8c0b2371858d5a814b08542d5d548adb03ff2d7ab32f23160e54e92250961a72"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cd430c2b7df4ae92498da09e9b12cad5bdbb140d22d138f9e507de1aa3edfea3"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a93208282c0ccdf73065fd76c6c129bd428dba5ff65d338ae7d2ab27169861a0"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:b8179280cdeb4c36eb18d6534a328f9d40da60d2b96ac4a295c5f93e2799e9d9"}, - {file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eda3c2b42dc0c389b7cfda2c4df81c12eeb552019e0de28bde8f913fc3d1fcf3"}, - {file = "yarl-1.19.0-cp312-cp312-win32.whl", hash = "sha256:57f3fed859af367b9ca316ecc05ce79ce327d6466342734305aa5cc380e4d8be"}, - {file = "yarl-1.19.0-cp312-cp312-win_amd64.whl", hash = "sha256:5507c1f7dd3d41251b67eecba331c8b2157cfd324849879bebf74676ce76aff7"}, - {file = "yarl-1.19.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59281b9ed27bc410e0793833bcbe7fc149739d56ffa071d1e0fe70536a4f7b61"}, - {file = "yarl-1.19.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d27a6482ad5e05e8bafd47bf42866f8a1c0c3345abcb48d4511b3c29ecc197dc"}, - {file = "yarl-1.19.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7a8e19fd5a6fdf19a91f2409665c7a089ffe7b9b5394ab33c0eec04cbecdd01f"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cda34ab19099c3a1685ad48fe45172536610c312b993310b5f1ca3eb83453b36"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7908a25d33f94852b479910f9cae6cdb9e2a509894e8d5f416c8342c0253c397"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e66c14d162bac94973e767b24de5d7e6c5153f7305a64ff4fcba701210bcd638"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c03607bf932aa4cfae371e2dc9ca8b76faf031f106dac6a6ff1458418140c165"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9931343d1c1f4e77421687b6b94bbebd8a15a64ab8279adf6fbb047eff47e536"}, - {file = "yarl-1.19.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:262087a8a0d73e1d169d45c2baf968126f93c97cf403e1af23a7d5455d52721f"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:70f384921c24e703d249a6ccdabeb57dd6312b568b504c69e428a8dd3e8e68ca"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:756b9ea5292a2c180d1fe782a377bc4159b3cfefaca7e41b5b0a00328ef62fa9"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cbeb9c145d534c240a63b6ecc8a8dd451faeb67b3dc61d729ec197bb93e29497"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:087ae8f8319848c18e0d114d0f56131a9c017f29200ab1413b0137ad7c83e2ae"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362f5480ba527b6c26ff58cff1f229afe8b7fdd54ee5ffac2ab827c1a75fc71c"}, - {file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f408d4b4315e814e5c3668094e33d885f13c7809cbe831cbdc5b1bb8c7a448f4"}, - {file = "yarl-1.19.0-cp313-cp313-win32.whl", hash = "sha256:24e4c367ad69988a2283dd45ea88172561ca24b2326b9781e164eb46eea68345"}, - {file = "yarl-1.19.0-cp313-cp313-win_amd64.whl", hash = "sha256:0110f91c57ab43d1538dfa92d61c45e33b84df9257bd08fcfcda90cce931cbc9"}, - {file = "yarl-1.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85ac908cd5a97bbd3048cca9f1bf37b932ea26c3885099444f34b0bf5d5e9fa6"}, - {file = "yarl-1.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6ba0931b559f1345df48a78521c31cfe356585670e8be22af84a33a39f7b9221"}, - {file = "yarl-1.19.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5bc503e1c1fee1b86bcb58db67c032957a52cae39fe8ddd95441f414ffbab83e"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d995122dcaf180fd4830a9aa425abddab7c0246107c21ecca2fa085611fa7ce9"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:217f69e60a14da4eed454a030ea8283f8fbd01a7d6d81e57efb865856822489b"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad67c8f13a4b79990082f72ef09c078a77de2b39899aabf3960a48069704973"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dff065a1a8ed051d7e641369ba1ad030d5a707afac54cf4ede7069b959898835"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada882e26b16ee651ab6544ce956f2f4beaed38261238f67c2a96db748e17741"}, - {file = "yarl-1.19.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67a56b1acc7093451ea2de0687aa3bd4e58d6b4ef6cbeeaad137b45203deaade"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e97d2f0a06b39e231e59ebab0e6eec45c7683b339e8262299ac952707bdf7688"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a5288adb7c59d0f54e4ad58d86fb06d4b26e08a59ed06d00a1aac978c0e32884"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1efbf4d03e6eddf5da27752e0b67a8e70599053436e9344d0969532baa99df53"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:f228f42f29cc87db67020f7d71624102b2c837686e55317b16e1d3ef2747a993"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c515f7dd60ca724e4c62b34aeaa603188964abed2eb66bb8e220f7f104d5a187"}, - {file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4815ec6d3d68a96557fa71bd36661b45ac773fb50e5cfa31a7e843edb098f060"}, - {file = "yarl-1.19.0-cp39-cp39-win32.whl", hash = "sha256:9fac2dd1c5ecb921359d9546bc23a6dcc18c6acd50c6d96f118188d68010f497"}, - {file = "yarl-1.19.0-cp39-cp39-win_amd64.whl", hash = "sha256:5864f539ce86b935053bfa18205fa08ce38e9a40ea4d51b19ce923345f0ed5db"}, - {file = "yarl-1.19.0-py3-none-any.whl", hash = "sha256:a727101eb27f66727576630d02985d8a065d09cd0b5fcbe38a5793f71b2a97ef"}, - {file = "yarl-1.19.0.tar.gz", hash = "sha256:01e02bb80ae0dbed44273c304095295106e1d9470460e773268a27d11e594892"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1f6670b9ae3daedb325fa55fbe31c22c8228f6e0b513772c2e1c623caa6ab22"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85a231fa250dfa3308f3c7896cc007a47bc76e9e8e8595c20b7426cac4884c62"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a06701b647c9939d7019acdfa7ebbfbb78ba6aa05985bb195ad716ea759a569"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7595498d085becc8fb9203aa314b136ab0516c7abd97e7d74f7bb4eb95042abe"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af5607159085dcdb055d5678fc2d34949bd75ae6ea6b4381e784bbab1c3aa195"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95b50910e496567434cb77a577493c26bce0f31c8a305135f3bda6a2483b8e10"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b594113a301ad537766b4e16a5a6750fcbb1497dcc1bc8a4daae889e6402a634"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:083ce0393ea173cd37834eb84df15b6853b555d20c52703e21fbababa8c129d2"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1a350a652bbbe12f666109fbddfdf049b3ff43696d18c9ab1531fbba1c977a"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fb0caeac4a164aadce342f1597297ec0ce261ec4532bbc5a9ca8da5622f53867"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d88cc43e923f324203f6ec14434fa33b85c06d18d59c167a0637164863b8e995"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e52d6ed9ea8fd3abf4031325dc714aed5afcbfa19ee4a89898d663c9976eb487"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ce360ae48a5e9961d0c730cf891d40698a82804e85f6e74658fb175207a77cb2"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:06d06c9d5b5bc3eb56542ceeba6658d31f54cf401e8468512447834856fb0e61"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c27d98f4e5c4060582f44e58309c1e55134880558f1add7a87c1bc36ecfade19"}, + {file = "yarl-1.20.0-cp310-cp310-win32.whl", hash = "sha256:f4d3fa9b9f013f7050326e165c3279e22850d02ae544ace285674cb6174b5d6d"}, + {file = "yarl-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc906b636239631d42eb8a07df8359905da02704a868983265603887ed68c076"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5"}, + {file = "yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6"}, + {file = "yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b"}, + {file = "yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64"}, + {file = "yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384"}, + {file = "yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62"}, + {file = "yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f"}, + {file = "yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac"}, + {file = "yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:119bca25e63a7725b0c9d20ac67ca6d98fa40e5a894bd5d4686010ff73397914"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:35d20fb919546995f1d8c9e41f485febd266f60e55383090010f272aca93edcc"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:484e7a08f72683c0f160270566b4395ea5412b4359772b98659921411d32ad26"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d8a3d54a090e0fff5837cd3cc305dd8a07d3435a088ddb1f65e33b322f66a94"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f0cf05ae2d3d87a8c9022f3885ac6dea2b751aefd66a4f200e408a61ae9b7f0d"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a884b8974729e3899d9287df46f015ce53f7282d8d3340fa0ed57536b440621c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8d8aa8dd89ffb9a831fedbcb27d00ffd9f4842107d52dc9d57e64cb34073d5c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4e88d6c3c8672f45a30867817e4537df1bbc6f882a91581faf1f6d9f0f1b5a"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdb77efde644d6f1ad27be8a5d67c10b7f769804fff7a966ccb1da5a4de4b656"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba5e59f14bfe8d261a654278a0f6364feef64a794bd456a8c9e823071e5061c"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:d0bf955b96ea44ad914bc792c26a0edcd71b4668b93cbcd60f5b0aeaaed06c64"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:27359776bc359ee6eaefe40cb19060238f31228799e43ebd3884e9c589e63b20"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d9c7a1dc0a26efb33e1acb56c8849bd57a693b85f44774356c92d610369efa"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:faa709b66ae0e24c8e5134033187a972d849d87ed0a12a0366bedcc6b5dc14a5"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44869ee8538208fe5d9342ed62c11cc6a7a1af1b3d0bb79bb795101b6e77f6e0"}, + {file = "yarl-1.20.0-cp39-cp39-win32.whl", hash = "sha256:b7fa0cb9fd27ffb1211cde944b41f5c67ab1c13a13ebafe470b1e206b8459da8"}, + {file = "yarl-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4fad6e5189c847820288286732075f213eabf81be4d08d6cc309912e62be5b7"}, + {file = "yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124"}, + {file = "yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307"}, ] [package.dependencies] diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 5f11f808..566bd069 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -54,6 +54,7 @@ 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_oracle_rpc_pb2 as exchange_oracle_pb from pyinjective.proto.ibc.lightclients.tendermint.v1 import ( # noqa: F401 for validator set responses tendermint_pb2 as ibc_tendermint, ) @@ -2012,9 +2013,26 @@ async def fetch_oracle_price( oracle_scale_factor=oracle_scale_factor, ) + async def fetch_oracle_price_v2(self, filters: List[exchange_oracle_pb.PricePayloadV2]) -> Dict[str, Any]: + return await self.exchange_oracle_api.fetch_oracle_price_v2(filters=filters) + async def fetch_oracle_list(self) -> Dict[str, Any]: return await self.exchange_oracle_api.fetch_oracle_list() + def oracle_price_v2_filter( + self, + base_symbol: Optional[str] = None, + quote_symbol: Optional[str] = None, + oracle_type: Optional[str] = None, + oracle_scale_factor: Optional[int] = None, + ) -> exchange_oracle_pb.PricePayloadV2: + return exchange_oracle_pb.PricePayloadV2( + base_symbol=base_symbol, + quote_symbol=quote_symbol, + oracle_type=oracle_type, + oracle_scale_factor=oracle_scale_factor, + ) + # InsuranceRPC async def fetch_insurance_funds(self) -> Dict[str, Any]: @@ -2061,11 +2079,11 @@ async def listen_spot_markets_updates( market_ids=market_ids, ) - 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 fetch_spot_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + return await self.exchange_spot_api.fetch_orderbook_v2(market_id=market_id, depth=depth) - 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 fetch_spot_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + return await self.exchange_spot_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) async def fetch_spot_orders( self, @@ -2331,11 +2349,11 @@ async def listen_derivative_market_updates( market_ids=market_ids, ) - 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 fetch_derivative_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + return await self.exchange_derivative_api.fetch_orderbook_v2(market_id=market_id, depth=depth) - 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 fetch_derivative_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + return await self.exchange_derivative_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) async def fetch_derivative_orders( self, @@ -2651,6 +2669,9 @@ async def fetch_binary_options_markets( 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) + async def fetch_open_interest(self, market_ids: List[str]) -> Dict[str, Any]: + return await self.exchange_derivative_api.fetch_open_interest(market_ids=market_ids) + # PortfolioRPC async def fetch_account_portfolio_balances( self, account_address: str, usd: Optional[bool] = None diff --git a/pyinjective/client/indexer/grpc/indexer_grpc_derivative_api.py b/pyinjective/client/indexer/grpc/indexer_grpc_derivative_api.py index c6947ebf..3720372b 100644 --- a/pyinjective/client/indexer/grpc/indexer_grpc_derivative_api.py +++ b/pyinjective/client/indexer/grpc/indexer_grpc_derivative_api.py @@ -58,14 +58,14 @@ async def fetch_binary_options_market(self, market_id: str) -> Dict[str, Any]: return response - async def fetch_orderbook_v2(self, market_id: str) -> Dict[str, Any]: - request = exchange_derivative_pb.OrderbookV2Request(market_id=market_id) + async def fetch_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + request = exchange_derivative_pb.OrderbookV2Request(market_id=market_id, depth=depth) response = await self._execute_call(call=self._stub.OrderbookV2, request=request) return response - async def fetch_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: - request = exchange_derivative_pb.OrderbooksV2Request(market_ids=market_ids) + async def fetch_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + request = exchange_derivative_pb.OrderbooksV2Request(market_ids=market_ids, depth=depth) response = await self._execute_call(call=self._stub.OrderbooksV2, request=request) return response @@ -348,5 +348,11 @@ async def fetch_trades_v2( return response + async def fetch_open_interest(self, market_ids: List[str]) -> Dict[str, Any]: + request = exchange_derivative_pb.OpenInterestRequest(market_i_ds=market_ids) + response = await self._execute_call(call=self._stub.OpenInterest, 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/indexer/grpc/indexer_grpc_oracle_api.py b/pyinjective/client/indexer/grpc/indexer_grpc_oracle_api.py index ccf16ee9..5fc6c39f 100644 --- a/pyinjective/client/indexer/grpc/indexer_grpc_oracle_api.py +++ b/pyinjective/client/indexer/grpc/indexer_grpc_oracle_api.py @@ -1,4 +1,4 @@ -from typing import Any, Callable, Dict, Optional +from typing import Any, Callable, Dict, List, Optional from grpc.aio import Channel @@ -38,5 +38,11 @@ async def fetch_oracle_price( return response + async def fetch_oracle_price_v2(self, filters: List[exchange_oracle_pb.PricePayloadV2]) -> Dict[str, Any]: + request = exchange_oracle_pb.PriceV2Request(filters=filters) + response = await self._execute_call(call=self._stub.PriceV2, 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/indexer/grpc/indexer_grpc_spot_api.py b/pyinjective/client/indexer/grpc/indexer_grpc_spot_api.py index ef3c0907..dd0a0320 100644 --- a/pyinjective/client/indexer/grpc/indexer_grpc_spot_api.py +++ b/pyinjective/client/indexer/grpc/indexer_grpc_spot_api.py @@ -37,14 +37,14 @@ async def fetch_market(self, market_id: str) -> Dict[str, Any]: return response - async def fetch_orderbook_v2(self, market_id: str) -> Dict[str, Any]: - request = exchange_spot_pb.OrderbookV2Request(market_id=market_id) + async def fetch_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + request = exchange_spot_pb.OrderbookV2Request(market_id=market_id, depth=depth) response = await self._execute_call(call=self._stub.OrderbookV2, request=request) return response - async def fetch_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: - request = exchange_spot_pb.OrderbooksV2Request(market_ids=market_ids) + async def fetch_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + request = exchange_spot_pb.OrderbooksV2Request(market_ids=market_ids, depth=depth) response = await self._execute_call(call=self._stub.OrderbooksV2, request=request) return response diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 82545dbb..ee45155b 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -493,8 +493,10 @@ def create_spot_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, ) -> injective_order_v2_pb.SpotOrder: trigger_price = trigger_price or Decimal(0) + expiration_block = expiration_block or 0 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}" @@ -511,6 +513,7 @@ def create_spot_order_v2( ), order_type=chain_order_type, trigger_price=chain_trigger_price, + expiration_block=expiration_block, ) def calculate_margin( @@ -572,9 +575,8 @@ def create_derivative_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = 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, @@ -585,6 +587,7 @@ def create_derivative_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ) def binary_options_order( @@ -637,9 +640,8 @@ def create_binary_options_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = 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, @@ -650,6 +652,7 @@ def create_binary_options_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ) def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective_exchange_v2_pb.GrantAuthorization: @@ -879,6 +882,7 @@ def msg_instant_perpetual_market_launch_v2( taker_fee_rate: Decimal, initial_margin_ratio: Decimal, maintenance_margin_ratio: Decimal, + reduce_margin_ratio: Decimal, min_price_tick_size: Decimal, min_quantity_tick_size: Decimal, min_notional: Decimal, @@ -889,6 +893,7 @@ def msg_instant_perpetual_market_launch_v2( 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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ratio) chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) return injective_exchange_tx_v2_pb.MsgInstantPerpetualMarketLaunch( @@ -903,6 +908,7 @@ def msg_instant_perpetual_market_launch_v2( 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}", + reduce_margin_ratio=f"{chain_reduce_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}", @@ -922,6 +928,7 @@ def msg_instant_expiry_futures_market_launch_v2( taker_fee_rate: Decimal, initial_margin_ratio: Decimal, maintenance_margin_ratio: Decimal, + reduce_margin_ratio: Decimal, min_price_tick_size: Decimal, min_quantity_tick_size: Decimal, min_notional: Decimal, @@ -932,6 +939,7 @@ def msg_instant_expiry_futures_market_launch_v2( 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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ratio) chain_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) return injective_exchange_tx_v2_pb.MsgInstantExpiryFuturesMarketLaunch( @@ -947,6 +955,7 @@ def msg_instant_expiry_futures_market_launch_v2( 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}", + reduce_margin_ratio=f"{chain_reduce_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}", @@ -994,6 +1003,7 @@ def msg_create_spot_limit_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, ) -> injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( sender=sender, @@ -1006,6 +1016,7 @@ def msg_create_spot_limit_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ), ) @@ -1285,6 +1296,7 @@ def msg_create_derivative_limit_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, @@ -1298,6 +1310,7 @@ def msg_create_derivative_limit_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ), ) @@ -1611,6 +1624,7 @@ def msg_create_binary_options_limit_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( sender=sender, @@ -1624,6 +1638,7 @@ def msg_create_binary_options_limit_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ), ) @@ -2128,6 +2143,7 @@ def msg_update_derivative_market_v2( new_min_notional: Decimal, new_initial_margin_ratio: Decimal, new_maintenance_margin_ratio: Decimal, + new_reduce_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) @@ -2136,6 +2152,7 @@ def msg_update_derivative_market_v2( chain_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( value=new_maintenance_margin_ratio ) + chain_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=new_reduce_margin_ratio) return injective_exchange_tx_v2_pb.MsgUpdateDerivativeMarket( admin=admin, @@ -2146,6 +2163,7 @@ def msg_update_derivative_market_v2( 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}", + new_reduce_margin_ratio=f"{chain_reduce_margin_ratio.normalize():f}", ) def msg_authorize_stake_grants( @@ -3055,8 +3073,11 @@ def _basic_derivative_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, ) -> injective_order_v2_pb.DerivativeOrder: trigger_price = trigger_price or Decimal(0) + expiration_height = expiration_block or 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}" @@ -3075,4 +3096,5 @@ def _basic_derivative_order_v2( order_type=chain_order_type, margin=chain_margin, trigger_price=chain_trigger_price, + expiration_block=expiration_height, ) diff --git a/pyinjective/core/gas_heuristics_gas_limit_estimator.py b/pyinjective/core/gas_heuristics_gas_limit_estimator.py index 10a4da5c..22c00efe 100644 --- a/pyinjective/core/gas_heuristics_gas_limit_estimator.py +++ b/pyinjective/core/gas_heuristics_gas_limit_estimator.py @@ -1,13 +1,14 @@ import math from abc import ABC, abstractmethod -from typing import List, Union +from decimal import Decimal +from typing import Union from google.protobuf import any_pb2 from pyinjective.core.gas_limit_estimator import GasLimitEstimator from pyinjective.proto.cosmos.authz.v1beta1 import tx_pb2 as cosmos_authz_tx_pb -from pyinjective.proto.injective.exchange.v1beta1 import ( - exchange_pb2 as injective_exchange_pb, +from pyinjective.proto.injective.exchange.v2 import ( + order_pb2 as injective_order_v2_pb, tx_pb2 as injective_exchange_tx_pb, ) @@ -24,6 +25,8 @@ DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT = 70_000 BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT +GTB_ORDERS_GAS_MULTIPLIER = "1.1" + DEPOSIT_GAS_LIMIT = 38_000 WITHDRAW_GAS_LIMIT = 35_000 SUBACCOUNT_TRANSFER_GAS_LIMIT = 15_000 @@ -81,15 +84,11 @@ def _parsed_message(self, message: any_pb2.Any) -> any_pb2.Any: parsed_message = message return parsed_message - def _select_post_only_orders( - self, - orders: List[Union[injective_exchange_pb.SpotOrder, injective_exchange_pb.DerivativeOrder]], - ) -> List[Union[injective_exchange_pb.SpotOrder, injective_exchange_pb.DerivativeOrder]]: - return [ - order - for order in orders - if order.order_type in [injective_exchange_pb.OrderType.BUY_PO, injective_exchange_pb.OrderType.SELL_PO] - ] + @staticmethod + def is_post_only_order( + order: Union[injective_order_v2_pb.SpotOrder, injective_order_v2_pb.DerivativeOrder], + ) -> bool: + return order.order_type in [injective_order_v2_pb.OrderType.BUY_PO, injective_order_v2_pb.OrderType.SELL_PO] class CreateSpotLimitOrdersGasLimitEstimator(GasHeuristicsGasLimitEstimator): @@ -100,16 +99,20 @@ def __init__(self, message: any_pb2.Any): def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgCreateSpotLimitOrder") - def gas_limit(self) -> int: - if self._message.order.order_type in [ - injective_exchange_pb.OrderType.BUY_PO, - injective_exchange_pb.OrderType.SELL_PO, - ]: - total = POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT + @staticmethod + def gas_cost_for_order(order: injective_order_v2_pb.SpotOrder) -> int: + if GasHeuristicsGasLimitEstimator.is_post_only_order(order): + gas_cost = POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT else: - total = SPOT_ORDER_CREATION_GAS_LIMIT + gas_cost = SPOT_ORDER_CREATION_GAS_LIMIT - return total + if order.expiration_block > 0: + gas_cost = math.ceil(Decimal(gas_cost) * Decimal(GTB_ORDERS_GAS_MULTIPLIER)) + + return gas_cost + + def gas_limit(self) -> int: + return self.gas_cost_for_order(self._message.order) def _message_class(self, message: any_pb2.Any): return injective_exchange_tx_pb.MsgCreateSpotLimitOrder @@ -153,16 +156,20 @@ def __init__(self, message: any_pb2.Any): def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgCreateDerivativeLimitOrder") - def gas_limit(self) -> int: - if self._message.order.order_type in [ - injective_exchange_pb.OrderType.BUY_PO, - injective_exchange_pb.OrderType.SELL_PO, - ]: - total = POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT + @staticmethod + def gas_cost_for_order(order: injective_order_v2_pb.DerivativeOrder) -> int: + if GasHeuristicsGasLimitEstimator.is_post_only_order(order=order): + gas_cost = POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT else: - total = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + gas_cost = DERIVATIVE_ORDER_CREATION_GAS_LIMIT - return total + if order.expiration_block > 0: + gas_cost = math.ceil(Decimal(gas_cost) * Decimal(GTB_ORDERS_GAS_MULTIPLIER)) + + return gas_cost + + def gas_limit(self) -> int: + return self.gas_cost_for_order(self._message.order) def _message_class(self, message: any_pb2.Any): return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder @@ -206,16 +213,20 @@ def __init__(self, message: any_pb2.Any): def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgCreateBinaryOptionsLimitOrder") - def gas_limit(self) -> int: - if self._message.order.order_type in [ - injective_exchange_pb.OrderType.BUY_PO, - injective_exchange_pb.OrderType.SELL_PO, - ]: - total = POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + @staticmethod + def gas_cost_for_order(order: injective_order_v2_pb.DerivativeOrder) -> int: + if GasHeuristicsGasLimitEstimator.is_post_only_order(order=order): + gas_cost = POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT else: - total = BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT + gas_cost = BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT - return total + if order.expiration_block > 0: + gas_cost = math.ceil(Decimal(gas_cost) * Decimal(GTB_ORDERS_GAS_MULTIPLIER)) + + return gas_cost + + def gas_limit(self) -> int: + return self.gas_cost_for_order(self._message.order) def _message_class(self, message: any_pb2.Any): return injective_exchange_tx_pb.MsgCreateBinaryOptionsLimitOrder @@ -260,11 +271,10 @@ def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgBatchCreateSpotLimitOrders") def gas_limit(self) -> int: - post_only_orders = self._select_post_only_orders(orders=self._message.orders) - total = 0 - total += (len(self._message.orders) - len(post_only_orders)) * SPOT_ORDER_CREATION_GAS_LIMIT - total += math.ceil(len(post_only_orders) * POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT) + + for order in self._message.orders: + total += CreateSpotLimitOrdersGasLimitEstimator.gas_cost_for_order(order) return total @@ -299,11 +309,10 @@ def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgBatchCreateDerivativeLimitOrders") def gas_limit(self) -> int: - post_only_orders = self._select_post_only_orders(orders=self._message.orders) - total = 0 - total += (len(self._message.orders) - len(post_only_orders)) * DERIVATIVE_ORDER_CREATION_GAS_LIMIT - total += math.ceil(len(post_only_orders) * POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT) + + for order in self._message.orders: + total += CreateDerivativeLimitOrdersGasLimitEstimator.gas_cost_for_order(order) return total @@ -340,24 +349,14 @@ def applies_to(cls, message: any_pb2.Any): return cls.message_type(message=message).endswith("MsgBatchUpdateOrders") def gas_limit(self) -> int: - post_only_spot_orders = self._select_post_only_orders(orders=self._message.spot_orders_to_create) - post_only_derivative_orders = self._select_post_only_orders(orders=self._message.derivative_orders_to_create) - post_only_binary_options_orders = self._select_post_only_orders( - orders=self._message.binary_options_orders_to_create - ) - total = 0 - total += (len(self._message.spot_orders_to_create) - len(post_only_spot_orders)) * SPOT_ORDER_CREATION_GAS_LIMIT - total += ( - len(self._message.derivative_orders_to_create) - len(post_only_derivative_orders) - ) * DERIVATIVE_ORDER_CREATION_GAS_LIMIT - total += ( - len(self._message.binary_options_orders_to_create) - len(post_only_binary_options_orders) - ) * BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT - total += math.ceil(len(post_only_spot_orders) * POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT) - total += math.ceil(len(post_only_derivative_orders) * POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT) - total += math.ceil(len(post_only_binary_options_orders) * POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT) + for order in self._message.spot_orders_to_create: + total += CreateSpotLimitOrdersGasLimitEstimator.gas_cost_for_order(order) + for order in self._message.derivative_orders_to_create: + total += CreateDerivativeLimitOrdersGasLimitEstimator.gas_cost_for_order(order) + for order in self._message.binary_options_orders_to_create: + total += CreateBinaryOptionsLimitOrdersGasLimitEstimator.gas_cost_for_order(order) total += len(self._message.spot_orders_to_cancel) * SPOT_ORDER_CANCELATION_GAS_LIMIT total += len(self._message.derivative_orders_to_cancel) * DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py index acf2edf7..b1e48deb 100644 --- a/pyinjective/proto/exchange/injective_chart_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"exchange/injective_chart_rpc.proto\x12\x13injective_chart_rpc\"\xb1\x01\n\x18SpotMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"}\n\x19SpotMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"\xb7\x01\n\x1e\x44\x65rivativeMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"\x83\x01\n\x1f\x44\x65rivativeMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"W\n\x18SpotMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"\xb8\x01\n\x19SpotMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"=\n\x1b\x41llSpotMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"\\\n\x1c\x41llSpotMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield\"\xb0\x01\n\x11MarketSummaryResp\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"~\n\x1e\x44\x65rivativeMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1f\n\x0bindex_price\x18\x02 \x01(\x08R\nindexPrice\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\"\xbe\x01\n\x1f\x44\x65rivativeMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"C\n!AllDerivativeMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"b\n\"AllDerivativeMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield2\x96\x06\n\x11InjectiveChartRPC\x12r\n\x11SpotMarketHistory\x12-.injective_chart_rpc.SpotMarketHistoryRequest\x1a..injective_chart_rpc.SpotMarketHistoryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketHistory\x12\x33.injective_chart_rpc.DerivativeMarketHistoryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketHistoryResponse\x12r\n\x11SpotMarketSummary\x12-.injective_chart_rpc.SpotMarketSummaryRequest\x1a..injective_chart_rpc.SpotMarketSummaryResponse\x12{\n\x14\x41llSpotMarketSummary\x12\x30.injective_chart_rpc.AllSpotMarketSummaryRequest\x1a\x31.injective_chart_rpc.AllSpotMarketSummaryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketSummary\x12\x33.injective_chart_rpc.DerivativeMarketSummaryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketSummaryResponse\x12\x8d\x01\n\x1a\x41llDerivativeMarketSummary\x12\x36.injective_chart_rpc.AllDerivativeMarketSummaryRequest\x1a\x37.injective_chart_rpc.AllDerivativeMarketSummaryResponseB\xad\x01\n\x17\x63om.injective_chart_rpcB\x16InjectiveChartRpcProtoP\x01Z\x16/injective_chart_rpcpb\xa2\x02\x03IXX\xaa\x02\x11InjectiveChartRpc\xca\x02\x11InjectiveChartRpc\xe2\x02\x1dInjectiveChartRpc\\GPBMetadata\xea\x02\x11InjectiveChartRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"exchange/injective_chart_rpc.proto\x12\x13injective_chart_rpc\"\xb1\x01\n\x18SpotMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"}\n\x19SpotMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"\xb7\x01\n\x1e\x44\x65rivativeMarketHistoryRequest\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\x12\x12\n\x04\x66rom\x18\x04 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x11R\x02to\x12\x1c\n\tcountback\x18\x06 \x01(\x11R\tcountback\"\x83\x01\n\x1f\x44\x65rivativeMarketHistoryResponse\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x02 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x03 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x04 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x05 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x06 \x03(\x01R\x01v\x12\x0c\n\x01s\x18\x07 \x01(\tR\x01s\"W\n\x18SpotMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"\xb8\x01\n\x19SpotMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"=\n\x1b\x41llSpotMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"\\\n\x1c\x41llSpotMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield\"\xb0\x01\n\x11MarketSummaryResp\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"~\n\x1e\x44\x65rivativeMarketSummaryRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1f\n\x0bindex_price\x18\x02 \x01(\x08R\nindexPrice\x12\x1e\n\nresolution\x18\x03 \x01(\tR\nresolution\"\xbe\x01\n\x1f\x44\x65rivativeMarketSummaryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04open\x18\x02 \x01(\x01R\x04open\x12\x12\n\x04high\x18\x03 \x01(\x01R\x04high\x12\x10\n\x03low\x18\x04 \x01(\x01R\x03low\x12\x16\n\x06volume\x18\x05 \x01(\x01R\x06volume\x12\x14\n\x05price\x18\x06 \x01(\x01R\x05price\x12\x16\n\x06\x63hange\x18\x07 \x01(\x01R\x06\x63hange\"C\n!AllDerivativeMarketSummaryRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\"b\n\"AllDerivativeMarketSummaryResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_chart_rpc.MarketSummaryRespR\x05\x66ield\"u\n\x15MarketSnapshotRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\x12\x1c\n\tcountback\x18\x03 \x01(\x11R\tcountback\"b\n\x16MarketSnapshotResponse\x12H\n\x05\x66ield\x18\x01 \x03(\x0b\x32\x32.injective_chart_rpc.MarketSnapshotHistoryResponseR\x05\x66ield\"\xb0\x01\n\x1dMarketSnapshotHistoryResponse\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\x12\x0c\n\x01t\x18\x03 \x03(\x11R\x01t\x12\x0c\n\x01o\x18\x04 \x03(\x01R\x01o\x12\x0c\n\x01h\x18\x05 \x03(\x01R\x01h\x12\x0c\n\x01l\x18\x06 \x03(\x01R\x01l\x12\x0c\n\x01\x63\x18\x07 \x03(\x01R\x01\x63\x12\x0c\n\x01v\x18\x08 \x03(\x01R\x01v2\x81\x07\n\x11InjectiveChartRPC\x12r\n\x11SpotMarketHistory\x12-.injective_chart_rpc.SpotMarketHistoryRequest\x1a..injective_chart_rpc.SpotMarketHistoryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketHistory\x12\x33.injective_chart_rpc.DerivativeMarketHistoryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketHistoryResponse\x12r\n\x11SpotMarketSummary\x12-.injective_chart_rpc.SpotMarketSummaryRequest\x1a..injective_chart_rpc.SpotMarketSummaryResponse\x12{\n\x14\x41llSpotMarketSummary\x12\x30.injective_chart_rpc.AllSpotMarketSummaryRequest\x1a\x31.injective_chart_rpc.AllSpotMarketSummaryResponse\x12\x84\x01\n\x17\x44\x65rivativeMarketSummary\x12\x33.injective_chart_rpc.DerivativeMarketSummaryRequest\x1a\x34.injective_chart_rpc.DerivativeMarketSummaryResponse\x12\x8d\x01\n\x1a\x41llDerivativeMarketSummary\x12\x36.injective_chart_rpc.AllDerivativeMarketSummaryRequest\x1a\x37.injective_chart_rpc.AllDerivativeMarketSummaryResponse\x12i\n\x0eMarketSnapshot\x12*.injective_chart_rpc.MarketSnapshotRequest\x1a+.injective_chart_rpc.MarketSnapshotResponseB\xad\x01\n\x17\x63om.injective_chart_rpcB\x16InjectiveChartRpcProtoP\x01Z\x16/injective_chart_rpcpb\xa2\x02\x03IXX\xaa\x02\x11InjectiveChartRpc\xca\x02\x11InjectiveChartRpc\xe2\x02\x1dInjectiveChartRpc\\GPBMetadata\xea\x02\x11InjectiveChartRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -48,6 +48,12 @@ _globals['_ALLDERIVATIVEMARKETSUMMARYREQUEST']._serialized_end=1686 _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_start=1688 _globals['_ALLDERIVATIVEMARKETSUMMARYRESPONSE']._serialized_end=1786 - _globals['_INJECTIVECHARTRPC']._serialized_start=1789 - _globals['_INJECTIVECHARTRPC']._serialized_end=2579 + _globals['_MARKETSNAPSHOTREQUEST']._serialized_start=1788 + _globals['_MARKETSNAPSHOTREQUEST']._serialized_end=1905 + _globals['_MARKETSNAPSHOTRESPONSE']._serialized_start=1907 + _globals['_MARKETSNAPSHOTRESPONSE']._serialized_end=2005 + _globals['_MARKETSNAPSHOTHISTORYRESPONSE']._serialized_start=2008 + _globals['_MARKETSNAPSHOTHISTORYRESPONSE']._serialized_end=2184 + _globals['_INJECTIVECHARTRPC']._serialized_start=2187 + _globals['_INJECTIVECHARTRPC']._serialized_end=3084 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py index f99e2f75..54724268 100644 --- a/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_chart_rpc_pb2_grpc.py @@ -45,6 +45,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.SerializeToString, response_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.FromString, _registered_method=True) + self.MarketSnapshot = channel.unary_unary( + '/injective_chart_rpc.InjectiveChartRPC/MarketSnapshot', + request_serializer=exchange_dot_injective__chart__rpc__pb2.MarketSnapshotRequest.SerializeToString, + response_deserializer=exchange_dot_injective__chart__rpc__pb2.MarketSnapshotResponse.FromString, + _registered_method=True) class InjectiveChartRPCServicer(object): @@ -95,6 +100,13 @@ def AllDerivativeMarketSummary(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def MarketSnapshot(self, request, context): + """Request for cached markets history bars. Max age is 1h. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveChartRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -128,6 +140,11 @@ def add_InjectiveChartRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryRequest.FromString, response_serializer=exchange_dot_injective__chart__rpc__pb2.AllDerivativeMarketSummaryResponse.SerializeToString, ), + 'MarketSnapshot': grpc.unary_unary_rpc_method_handler( + servicer.MarketSnapshot, + request_deserializer=exchange_dot_injective__chart__rpc__pb2.MarketSnapshotRequest.FromString, + response_serializer=exchange_dot_injective__chart__rpc__pb2.MarketSnapshotResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_chart_rpc.InjectiveChartRPC', rpc_method_handlers) @@ -301,3 +318,30 @@ def AllDerivativeMarketSummary(request, timeout, metadata, _registered_method=True) + + @staticmethod + def MarketSnapshot(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_chart_rpc.InjectiveChartRPC/MarketSnapshot', + exchange_dot_injective__chart__rpc__pb2.MarketSnapshotRequest.SerializeToString, + exchange_dot_injective__chart__rpc__pb2.MarketSnapshotResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py index 114b0ebc..5ef32625 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\xec\x08\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\x99\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xd7\x1b\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x42\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\xec\x08\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\x99\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"5\n\x13OpenInterestRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"t\n\x14OpenInterestResponse\x12\\\n\x0eopen_interests\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.MarketOpenInterestR\ropenInterests\"V\n\x12MarketOpenInterest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\ropen_interest\x18\x02 \x01(\tR\x0copenInterest2\xd8\x1c\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x7f\n\x0cOpenInterest\x12\x36.injective_derivative_exchange_rpc.OpenInterestRequest\x1a\x37.injective_derivative_exchange_rpc.OpenInterestResponseB\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -57,115 +57,121 @@ _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_start=3823 _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_end=3936 _globals['_ORDERBOOKV2REQUEST']._serialized_start=3938 - _globals['_ORDERBOOKV2REQUEST']._serialized_end=3987 - _globals['_ORDERBOOKV2RESPONSE']._serialized_start=3989 - _globals['_ORDERBOOKV2RESPONSE']._serialized_end=4103 - _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_start=4106 - _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_end=4328 - _globals['_PRICELEVEL']._serialized_start=4330 - _globals['_PRICELEVEL']._serialized_end=4422 - _globals['_ORDERBOOKSV2REQUEST']._serialized_start=4424 - _globals['_ORDERBOOKSV2REQUEST']._serialized_end=4476 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=4478 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=4601 - _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_start=4604 - _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_end=4760 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=4762 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=4819 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=4822 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=5040 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=5042 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=5103 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=5106 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=5349 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=5352 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=5611 - _globals['_PRICELEVELUPDATE']._serialized_start=5613 - _globals['_PRICELEVELUPDATE']._serialized_end=5740 - _globals['_ORDERSREQUEST']._serialized_start=5743 - _globals['_ORDERSREQUEST']._serialized_end=6200 - _globals['_ORDERSRESPONSE']._serialized_start=6203 - _globals['_ORDERSRESPONSE']._serialized_end=6367 - _globals['_DERIVATIVELIMITORDER']._serialized_start=6370 - _globals['_DERIVATIVELIMITORDER']._serialized_end=7097 - _globals['_POSITIONSREQUEST']._serialized_start=7100 - _globals['_POSITIONSREQUEST']._serialized_end=7448 - _globals['_POSITIONSRESPONSE']._serialized_start=7451 - _globals['_POSITIONSRESPONSE']._serialized_end=7622 - _globals['_DERIVATIVEPOSITION']._serialized_start=7625 - _globals['_DERIVATIVEPOSITION']._serialized_end=8057 - _globals['_POSITIONSV2REQUEST']._serialized_start=8060 - _globals['_POSITIONSV2REQUEST']._serialized_end=8410 - _globals['_POSITIONSV2RESPONSE']._serialized_start=8413 - _globals['_POSITIONSV2RESPONSE']._serialized_end=8588 - _globals['_DERIVATIVEPOSITIONV2']._serialized_start=8591 - _globals['_DERIVATIVEPOSITIONV2']._serialized_end=8947 - _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_start=8949 - _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_end=9048 - _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_start=9050 - _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_end=9164 - _globals['_FUNDINGPAYMENTSREQUEST']._serialized_start=9167 - _globals['_FUNDINGPAYMENTSREQUEST']._serialized_end=9357 - _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_start=9360 - _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_end=9531 - _globals['_FUNDINGPAYMENT']._serialized_start=9534 - _globals['_FUNDINGPAYMENT']._serialized_end=9670 - _globals['_FUNDINGRATESREQUEST']._serialized_start=9672 - _globals['_FUNDINGRATESREQUEST']._serialized_end=9791 - _globals['_FUNDINGRATESRESPONSE']._serialized_start=9794 - _globals['_FUNDINGRATESRESPONSE']._serialized_end=9968 - _globals['_FUNDINGRATE']._serialized_start=9970 - _globals['_FUNDINGRATE']._serialized_end=10062 - _globals['_STREAMPOSITIONSREQUEST']._serialized_start=10065 - _globals['_STREAMPOSITIONSREQUEST']._serialized_end=10266 - _globals['_STREAMPOSITIONSRESPONSE']._serialized_start=10269 - _globals['_STREAMPOSITIONSRESPONSE']._serialized_end=10407 - _globals['_STREAMPOSITIONSV2REQUEST']._serialized_start=10410 - _globals['_STREAMPOSITIONSV2REQUEST']._serialized_end=10613 - _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_start=10616 - _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_end=10758 - _globals['_STREAMORDERSREQUEST']._serialized_start=10761 - _globals['_STREAMORDERSREQUEST']._serialized_end=11224 - _globals['_STREAMORDERSRESPONSE']._serialized_start=11227 - _globals['_STREAMORDERSRESPONSE']._serialized_end=11397 - _globals['_TRADESREQUEST']._serialized_start=11400 - _globals['_TRADESREQUEST']._serialized_end=11884 - _globals['_TRADESRESPONSE']._serialized_start=11887 - _globals['_TRADESRESPONSE']._serialized_end=12046 - _globals['_DERIVATIVETRADE']._serialized_start=12049 - _globals['_DERIVATIVETRADE']._serialized_end=12537 - _globals['_POSITIONDELTA']._serialized_start=12540 - _globals['_POSITIONDELTA']._serialized_end=12727 - _globals['_TRADESV2REQUEST']._serialized_start=12730 - _globals['_TRADESV2REQUEST']._serialized_end=13216 - _globals['_TRADESV2RESPONSE']._serialized_start=13219 - _globals['_TRADESV2RESPONSE']._serialized_end=13380 - _globals['_STREAMTRADESREQUEST']._serialized_start=13383 - _globals['_STREAMTRADESREQUEST']._serialized_end=13873 - _globals['_STREAMTRADESRESPONSE']._serialized_start=13876 - _globals['_STREAMTRADESRESPONSE']._serialized_end=14041 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=14044 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=14536 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14539 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14706 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14709 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14846 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14849 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15027 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15030 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15236 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15238 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15344 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=15347 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=15855 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15858 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16031 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16034 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16715 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16718 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=16938 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=16941 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17120 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17123 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=20666 + _globals['_ORDERBOOKV2REQUEST']._serialized_end=4009 + _globals['_ORDERBOOKV2RESPONSE']._serialized_start=4011 + _globals['_ORDERBOOKV2RESPONSE']._serialized_end=4125 + _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_start=4128 + _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_end=4350 + _globals['_PRICELEVEL']._serialized_start=4352 + _globals['_PRICELEVEL']._serialized_end=4444 + _globals['_ORDERBOOKSV2REQUEST']._serialized_start=4446 + _globals['_ORDERBOOKSV2REQUEST']._serialized_end=4520 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=4522 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=4645 + _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_start=4648 + _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_end=4804 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=4806 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=4863 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=4866 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=5084 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=5086 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=5147 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=5150 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=5393 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=5396 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=5655 + _globals['_PRICELEVELUPDATE']._serialized_start=5657 + _globals['_PRICELEVELUPDATE']._serialized_end=5784 + _globals['_ORDERSREQUEST']._serialized_start=5787 + _globals['_ORDERSREQUEST']._serialized_end=6244 + _globals['_ORDERSRESPONSE']._serialized_start=6247 + _globals['_ORDERSRESPONSE']._serialized_end=6411 + _globals['_DERIVATIVELIMITORDER']._serialized_start=6414 + _globals['_DERIVATIVELIMITORDER']._serialized_end=7141 + _globals['_POSITIONSREQUEST']._serialized_start=7144 + _globals['_POSITIONSREQUEST']._serialized_end=7492 + _globals['_POSITIONSRESPONSE']._serialized_start=7495 + _globals['_POSITIONSRESPONSE']._serialized_end=7666 + _globals['_DERIVATIVEPOSITION']._serialized_start=7669 + _globals['_DERIVATIVEPOSITION']._serialized_end=8101 + _globals['_POSITIONSV2REQUEST']._serialized_start=8104 + _globals['_POSITIONSV2REQUEST']._serialized_end=8454 + _globals['_POSITIONSV2RESPONSE']._serialized_start=8457 + _globals['_POSITIONSV2RESPONSE']._serialized_end=8632 + _globals['_DERIVATIVEPOSITIONV2']._serialized_start=8635 + _globals['_DERIVATIVEPOSITIONV2']._serialized_end=8991 + _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_start=8993 + _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_end=9092 + _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_start=9094 + _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_end=9208 + _globals['_FUNDINGPAYMENTSREQUEST']._serialized_start=9211 + _globals['_FUNDINGPAYMENTSREQUEST']._serialized_end=9401 + _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_start=9404 + _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_end=9575 + _globals['_FUNDINGPAYMENT']._serialized_start=9578 + _globals['_FUNDINGPAYMENT']._serialized_end=9714 + _globals['_FUNDINGRATESREQUEST']._serialized_start=9716 + _globals['_FUNDINGRATESREQUEST']._serialized_end=9835 + _globals['_FUNDINGRATESRESPONSE']._serialized_start=9838 + _globals['_FUNDINGRATESRESPONSE']._serialized_end=10012 + _globals['_FUNDINGRATE']._serialized_start=10014 + _globals['_FUNDINGRATE']._serialized_end=10106 + _globals['_STREAMPOSITIONSREQUEST']._serialized_start=10109 + _globals['_STREAMPOSITIONSREQUEST']._serialized_end=10310 + _globals['_STREAMPOSITIONSRESPONSE']._serialized_start=10313 + _globals['_STREAMPOSITIONSRESPONSE']._serialized_end=10451 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_start=10454 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_end=10657 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_start=10660 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_end=10802 + _globals['_STREAMORDERSREQUEST']._serialized_start=10805 + _globals['_STREAMORDERSREQUEST']._serialized_end=11268 + _globals['_STREAMORDERSRESPONSE']._serialized_start=11271 + _globals['_STREAMORDERSRESPONSE']._serialized_end=11441 + _globals['_TRADESREQUEST']._serialized_start=11444 + _globals['_TRADESREQUEST']._serialized_end=11928 + _globals['_TRADESRESPONSE']._serialized_start=11931 + _globals['_TRADESRESPONSE']._serialized_end=12090 + _globals['_DERIVATIVETRADE']._serialized_start=12093 + _globals['_DERIVATIVETRADE']._serialized_end=12581 + _globals['_POSITIONDELTA']._serialized_start=12584 + _globals['_POSITIONDELTA']._serialized_end=12771 + _globals['_TRADESV2REQUEST']._serialized_start=12774 + _globals['_TRADESV2REQUEST']._serialized_end=13260 + _globals['_TRADESV2RESPONSE']._serialized_start=13263 + _globals['_TRADESV2RESPONSE']._serialized_end=13424 + _globals['_STREAMTRADESREQUEST']._serialized_start=13427 + _globals['_STREAMTRADESREQUEST']._serialized_end=13917 + _globals['_STREAMTRADESRESPONSE']._serialized_start=13920 + _globals['_STREAMTRADESRESPONSE']._serialized_end=14085 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=14088 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=14580 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14583 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14750 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14753 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14890 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14893 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15071 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15074 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15280 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15282 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15388 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=15391 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=15899 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15902 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16075 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16078 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16759 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16762 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=16982 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=16985 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17164 + _globals['_OPENINTERESTREQUEST']._serialized_start=17166 + _globals['_OPENINTERESTREQUEST']._serialized_end=17219 + _globals['_OPENINTERESTRESPONSE']._serialized_start=17221 + _globals['_OPENINTERESTRESPONSE']._serialized_end=17337 + _globals['_MARKETOPENINTEREST']._serialized_start=17339 + _globals['_MARKETOPENINTEREST']._serialized_end=17425 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17428 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=21100 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py index 92bc8417..e3d0a809 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2_grpc.py @@ -146,6 +146,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersHistoryRequest.SerializeToString, response_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersHistoryResponse.FromString, _registered_method=True) + self.OpenInterest = channel.unary_unary( + '/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OpenInterest', + request_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestRequest.SerializeToString, + response_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestResponse.FromString, + _registered_method=True) class InjectiveDerivativeExchangeRPCServicer(object): @@ -338,6 +343,13 @@ def StreamOrdersHistory(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def OpenInterest(self, request, context): + """OpenInterest gets the open interest for a derivative market. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveDerivativeExchangeRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -471,6 +483,11 @@ def add_InjectiveDerivativeExchangeRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersHistoryRequest.FromString, response_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.StreamOrdersHistoryResponse.SerializeToString, ), + 'OpenInterest': grpc.unary_unary_rpc_method_handler( + servicer.OpenInterest, + request_deserializer=exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestRequest.FromString, + response_serializer=exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC', rpc_method_handlers) @@ -1185,3 +1202,30 @@ def StreamOrdersHistory(request, timeout, metadata, _registered_method=True) + + @staticmethod + def OpenInterest(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_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OpenInterest', + exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestRequest.SerializeToString, + exchange_dot_injective__derivative__exchange__rpc__pb2.OpenInterestResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/exchange/injective_oracle_rpc_pb2.py b/pyinjective/proto/exchange/injective_oracle_rpc_pb2.py index 1858d94e..b9460a40 100644 --- a/pyinjective/proto/exchange/injective_oracle_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_oracle_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#exchange/injective_oracle_rpc.proto\x12\x14injective_oracle_rpc\"\x13\n\x11OracleListRequest\"L\n\x12OracleListResponse\x12\x36\n\x07oracles\x18\x01 \x03(\x0b\x32\x1c.injective_oracle_rpc.OracleR\x07oracles\"\x9b\x01\n\x06Oracle\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1f\n\x0b\x62\x61se_symbol\x18\x02 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x03 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x04 \x01(\tR\noracleType\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\"\xa3\x01\n\x0cPriceRequest\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x04 \x01(\rR\x11oracleScaleFactor\"%\n\rPriceResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\"z\n\x13StreamPricesRequest\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\"J\n\x14StreamPricesResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"=\n\x1cStreamPricesByMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"p\n\x1dStreamPricesByMarketsResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId2\xb5\x03\n\x12InjectiveOracleRPC\x12_\n\nOracleList\x12\'.injective_oracle_rpc.OracleListRequest\x1a(.injective_oracle_rpc.OracleListResponse\x12P\n\x05Price\x12\".injective_oracle_rpc.PriceRequest\x1a#.injective_oracle_rpc.PriceResponse\x12g\n\x0cStreamPrices\x12).injective_oracle_rpc.StreamPricesRequest\x1a*.injective_oracle_rpc.StreamPricesResponse0\x01\x12\x82\x01\n\x15StreamPricesByMarkets\x12\x32.injective_oracle_rpc.StreamPricesByMarketsRequest\x1a\x33.injective_oracle_rpc.StreamPricesByMarketsResponse0\x01\x42\xb4\x01\n\x18\x63om.injective_oracle_rpcB\x17InjectiveOracleRpcProtoP\x01Z\x17/injective_oracle_rpcpb\xa2\x02\x03IXX\xaa\x02\x12InjectiveOracleRpc\xca\x02\x12InjectiveOracleRpc\xe2\x02\x1eInjectiveOracleRpc\\GPBMetadata\xea\x02\x12InjectiveOracleRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#exchange/injective_oracle_rpc.proto\x12\x14injective_oracle_rpc\"\x13\n\x11OracleListRequest\"L\n\x12OracleListResponse\x12\x36\n\x07oracles\x18\x01 \x03(\x0b\x32\x1c.injective_oracle_rpc.OracleR\x07oracles\"\x9b\x01\n\x06Oracle\x12\x16\n\x06symbol\x18\x01 \x01(\tR\x06symbol\x12\x1f\n\x0b\x62\x61se_symbol\x18\x02 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x03 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x04 \x01(\tR\noracleType\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\"\xa3\x01\n\x0cPriceRequest\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x04 \x01(\rR\x11oracleScaleFactor\"%\n\rPriceResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\"P\n\x0ePriceV2Request\x12>\n\x07\x66ilters\x18\x01 \x03(\x0b\x32$.injective_oracle_rpc.PricePayloadV2R\x07\x66ilters\"\xa5\x01\n\x0ePricePayloadV2\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x04 \x01(\rR\x11oracleScaleFactor\"N\n\x0fPriceV2Response\x12;\n\x06prices\x18\x01 \x03(\x0b\x32#.injective_oracle_rpc.PriceV2ResultR\x06prices\"\xd7\x01\n\rPriceV2Result\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x04 \x01(\rR\x11oracleScaleFactor\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1b\n\tmarket_id\x18\x06 \x01(\tR\x08marketId\"z\n\x13StreamPricesRequest\x12\x1f\n\x0b\x62\x61se_symbol\x18\x01 \x01(\tR\nbaseSymbol\x12!\n\x0cquote_symbol\x18\x02 \x01(\tR\x0bquoteSymbol\x12\x1f\n\x0boracle_type\x18\x03 \x01(\tR\noracleType\"J\n\x14StreamPricesResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"=\n\x1cStreamPricesByMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"p\n\x1dStreamPricesByMarketsResponse\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId2\x8d\x04\n\x12InjectiveOracleRPC\x12_\n\nOracleList\x12\'.injective_oracle_rpc.OracleListRequest\x1a(.injective_oracle_rpc.OracleListResponse\x12P\n\x05Price\x12\".injective_oracle_rpc.PriceRequest\x1a#.injective_oracle_rpc.PriceResponse\x12V\n\x07PriceV2\x12$.injective_oracle_rpc.PriceV2Request\x1a%.injective_oracle_rpc.PriceV2Response\x12g\n\x0cStreamPrices\x12).injective_oracle_rpc.StreamPricesRequest\x1a*.injective_oracle_rpc.StreamPricesResponse0\x01\x12\x82\x01\n\x15StreamPricesByMarkets\x12\x32.injective_oracle_rpc.StreamPricesByMarketsRequest\x1a\x33.injective_oracle_rpc.StreamPricesByMarketsResponse0\x01\x42\xb4\x01\n\x18\x63om.injective_oracle_rpcB\x17InjectiveOracleRpcProtoP\x01Z\x17/injective_oracle_rpcpb\xa2\x02\x03IXX\xaa\x02\x12InjectiveOracleRpc\xca\x02\x12InjectiveOracleRpc\xe2\x02\x1eInjectiveOracleRpc\\GPBMetadata\xea\x02\x12InjectiveOracleRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,14 +32,22 @@ _globals['_PRICEREQUEST']._serialized_end=482 _globals['_PRICERESPONSE']._serialized_start=484 _globals['_PRICERESPONSE']._serialized_end=521 - _globals['_STREAMPRICESREQUEST']._serialized_start=523 - _globals['_STREAMPRICESREQUEST']._serialized_end=645 - _globals['_STREAMPRICESRESPONSE']._serialized_start=647 - _globals['_STREAMPRICESRESPONSE']._serialized_end=721 - _globals['_STREAMPRICESBYMARKETSREQUEST']._serialized_start=723 - _globals['_STREAMPRICESBYMARKETSREQUEST']._serialized_end=784 - _globals['_STREAMPRICESBYMARKETSRESPONSE']._serialized_start=786 - _globals['_STREAMPRICESBYMARKETSRESPONSE']._serialized_end=898 - _globals['_INJECTIVEORACLERPC']._serialized_start=901 - _globals['_INJECTIVEORACLERPC']._serialized_end=1338 + _globals['_PRICEV2REQUEST']._serialized_start=523 + _globals['_PRICEV2REQUEST']._serialized_end=603 + _globals['_PRICEPAYLOADV2']._serialized_start=606 + _globals['_PRICEPAYLOADV2']._serialized_end=771 + _globals['_PRICEV2RESPONSE']._serialized_start=773 + _globals['_PRICEV2RESPONSE']._serialized_end=851 + _globals['_PRICEV2RESULT']._serialized_start=854 + _globals['_PRICEV2RESULT']._serialized_end=1069 + _globals['_STREAMPRICESREQUEST']._serialized_start=1071 + _globals['_STREAMPRICESREQUEST']._serialized_end=1193 + _globals['_STREAMPRICESRESPONSE']._serialized_start=1195 + _globals['_STREAMPRICESRESPONSE']._serialized_end=1269 + _globals['_STREAMPRICESBYMARKETSREQUEST']._serialized_start=1271 + _globals['_STREAMPRICESBYMARKETSREQUEST']._serialized_end=1332 + _globals['_STREAMPRICESBYMARKETSRESPONSE']._serialized_start=1334 + _globals['_STREAMPRICESBYMARKETSRESPONSE']._serialized_end=1446 + _globals['_INJECTIVEORACLERPC']._serialized_start=1449 + _globals['_INJECTIVEORACLERPC']._serialized_end=1974 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_oracle_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_oracle_rpc_pb2_grpc.py index 9f317b59..3e166415 100644 --- a/pyinjective/proto/exchange/injective_oracle_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_oracle_rpc_pb2_grpc.py @@ -25,6 +25,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__oracle__rpc__pb2.PriceRequest.SerializeToString, response_deserializer=exchange_dot_injective__oracle__rpc__pb2.PriceResponse.FromString, _registered_method=True) + self.PriceV2 = channel.unary_unary( + '/injective_oracle_rpc.InjectiveOracleRPC/PriceV2', + request_serializer=exchange_dot_injective__oracle__rpc__pb2.PriceV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__oracle__rpc__pb2.PriceV2Response.FromString, + _registered_method=True) self.StreamPrices = channel.unary_stream( '/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices', request_serializer=exchange_dot_injective__oracle__rpc__pb2.StreamPricesRequest.SerializeToString, @@ -55,6 +60,13 @@ def Price(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def PriceV2(self, request, context): + """Gets prices of the oracle + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def StreamPrices(self, request, context): """StreamPrices streams new price changes for a specified oracle. If no oracles are provided, all price changes are streamed. @@ -83,6 +95,11 @@ def add_InjectiveOracleRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__oracle__rpc__pb2.PriceRequest.FromString, response_serializer=exchange_dot_injective__oracle__rpc__pb2.PriceResponse.SerializeToString, ), + 'PriceV2': grpc.unary_unary_rpc_method_handler( + servicer.PriceV2, + request_deserializer=exchange_dot_injective__oracle__rpc__pb2.PriceV2Request.FromString, + response_serializer=exchange_dot_injective__oracle__rpc__pb2.PriceV2Response.SerializeToString, + ), 'StreamPrices': grpc.unary_stream_rpc_method_handler( servicer.StreamPrices, request_deserializer=exchange_dot_injective__oracle__rpc__pb2.StreamPricesRequest.FromString, @@ -159,6 +176,33 @@ def Price(request, metadata, _registered_method=True) + @staticmethod + def PriceV2(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_oracle_rpc.InjectiveOracleRPC/PriceV2', + exchange_dot_injective__oracle__rpc__pb2.PriceV2Request.SerializeToString, + exchange_dot_injective__oracle__rpc__pb2.PriceV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def StreamPrices(request, target, diff --git a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py index 4babfd85..9f363528 100644 --- a/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_spot_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"1\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"4\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*exchange/injective_spot_exchange_rpc.proto\x12\x1binjective_spot_exchange_rpc\"\x9e\x01\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1d\n\nbase_denom\x18\x02 \x01(\tR\tbaseDenom\x12\x1f\n\x0bquote_denom\x18\x03 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x04 \x03(\tR\x0emarketStatuses\"X\n\x0fMarketsResponse\x12\x45\n\x07markets\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x07markets\"\xd1\x04\n\x0eSpotMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1d\n\nbase_denom\x18\x04 \x01(\tR\tbaseDenom\x12N\n\x0f\x62\x61se_token_meta\x18\x05 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\rbaseTokenMeta\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12P\n\x10quote_token_meta\x18\x07 \x01(\x0b\x32&.injective_spot_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x08 \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\t \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\n \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0b \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x0c \x01(\tR\x13minQuantityTickSize\x12!\n\x0cmin_notional\x18\r \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"U\n\x0eMarketResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\"5\n\x14StreamMarketsRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xa1\x01\n\x15StreamMarketsResponse\x12\x43\n\x06market\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"f\n\x13OrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"\xcc\x01\n\x14SpotLimitOrderbookV2\x12;\n\x04\x62uys\x18\x01 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x04\x62uys\x12=\n\x05sells\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"o\n\x14OrderbooksV2Response\x12W\n\norderbooks\x18\x01 \x03(\x0b\x32\x37.injective_spot_exchange_rpc.SingleSpotLimitOrderbookV2R\norderbooks\"\x8a\x01\n\x1aSingleSpotLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12O\n\torderbook\x18\x02 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xce\x01\n\x19StreamOrderbookV2Response\x12O\n\torderbook\x18\x01 \x01(\x0b\x32\x31.injective_spot_exchange_rpc.SpotLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xed\x01\n\x1dStreamOrderbookUpdateResponse\x12j\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x32.injective_spot_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\xf7\x01\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12\x41\n\x04\x62uys\x18\x03 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12\x43\n\x05sells\x18\x04 \x03(\x0b\x32-.injective_spot_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x83\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x92\x01\n\x0eOrdersResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x89\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12)\n\x10include_inactive\x18\t \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\n \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\x9e\x01\n\x14StreamOrdersResponse\x12\x41\n\x05order\x18\x01 \x01(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8d\x01\n\x0eTradesResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xb2\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12=\n\x05price\x18\x06 \x01(\x0b\x32\'.injective_spot_exchange_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x99\x01\n\x14StreamTradesResponse\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x8f\x01\n\x10TradesV2Response\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9b\x01\n\x16StreamTradesV2Response\x12<\n\x05trade\x18\x01 \x01(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xa0\x01\n\x1cSubaccountOrdersListResponse\x12\x43\n\x06orders\x18\x01 \x03(\x0b\x32+.injective_spot_exchange_rpc.SpotLimitOrderR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"^\n\x1cSubaccountTradesListResponse\x12>\n\x06trades\x18\x01 \x03(\x0b\x32&.injective_spot_exchange_rpc.SpotTradeR\x06trades\"\xb6\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05state\x18\t \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\n \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\x0b \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\r \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\x9b\x01\n\x15OrdersHistoryResponse\x12\x45\n\x06orders\x18\x01 \x03(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x06orders\x12;\n\x06paging\x18\x02 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xa7\x01\n\x1bStreamOrdersHistoryResponse\x12\x43\n\x05order\x18\x01 \x01(\x0b\x32-.injective_spot_exchange_rpc.SpotOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc7\x01\n\x18\x41tomicSwapHistoryRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12)\n\x10\x63ontract_address\x18\x02 \x01(\tR\x0f\x63ontractAddress\x12\x12\n\x04skip\x18\x03 \x01(\x11R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x05 \x01(\x11R\nfromNumber\x12\x1b\n\tto_number\x18\x06 \x01(\x11R\x08toNumber\"\x95\x01\n\x19\x41tomicSwapHistoryResponse\x12;\n\x06paging\x18\x01 \x01(\x0b\x32#.injective_spot_exchange_rpc.PagingR\x06paging\x12;\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\'.injective_spot_exchange_rpc.AtomicSwapR\x04\x64\x61ta\"\xe0\x03\n\nAtomicSwap\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x14\n\x05route\x18\x02 \x01(\tR\x05route\x12\x42\n\x0bsource_coin\x18\x03 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\nsourceCoin\x12>\n\tdest_coin\x18\x04 \x01(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x08\x64\x65stCoin\x12\x35\n\x04\x66\x65\x65s\x18\x05 \x03(\x0b\x32!.injective_spot_exchange_rpc.CoinR\x04\x66\x65\x65s\x12)\n\x10\x63ontract_address\x18\x06 \x01(\tR\x0f\x63ontractAddress\x12&\n\x0findex_by_sender\x18\x07 \x01(\x11R\rindexBySender\x12\x37\n\x18index_by_sender_contract\x18\x08 \x01(\x11R\x15indexBySenderContract\x12\x17\n\x07tx_hash\x18\t \x01(\tR\x06txHash\x12\x1f\n\x0b\x65xecuted_at\x18\n \x01(\x12R\nexecutedAt\x12#\n\rrefund_amount\x18\x0b \x01(\tR\x0crefundAmount\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue2\x9e\x11\n\x18InjectiveSpotExchangeRPC\x12\x64\n\x07Markets\x12+.injective_spot_exchange_rpc.MarketsRequest\x1a,.injective_spot_exchange_rpc.MarketsResponse\x12\x61\n\x06Market\x12*.injective_spot_exchange_rpc.MarketRequest\x1a+.injective_spot_exchange_rpc.MarketResponse\x12x\n\rStreamMarkets\x12\x31.injective_spot_exchange_rpc.StreamMarketsRequest\x1a\x32.injective_spot_exchange_rpc.StreamMarketsResponse0\x01\x12p\n\x0bOrderbookV2\x12/.injective_spot_exchange_rpc.OrderbookV2Request\x1a\x30.injective_spot_exchange_rpc.OrderbookV2Response\x12s\n\x0cOrderbooksV2\x12\x30.injective_spot_exchange_rpc.OrderbooksV2Request\x1a\x31.injective_spot_exchange_rpc.OrderbooksV2Response\x12\x84\x01\n\x11StreamOrderbookV2\x12\x35.injective_spot_exchange_rpc.StreamOrderbookV2Request\x1a\x36.injective_spot_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x90\x01\n\x15StreamOrderbookUpdate\x12\x39.injective_spot_exchange_rpc.StreamOrderbookUpdateRequest\x1a:.injective_spot_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12\x61\n\x06Orders\x12*.injective_spot_exchange_rpc.OrdersRequest\x1a+.injective_spot_exchange_rpc.OrdersResponse\x12u\n\x0cStreamOrders\x12\x30.injective_spot_exchange_rpc.StreamOrdersRequest\x1a\x31.injective_spot_exchange_rpc.StreamOrdersResponse0\x01\x12\x61\n\x06Trades\x12*.injective_spot_exchange_rpc.TradesRequest\x1a+.injective_spot_exchange_rpc.TradesResponse\x12u\n\x0cStreamTrades\x12\x30.injective_spot_exchange_rpc.StreamTradesRequest\x1a\x31.injective_spot_exchange_rpc.StreamTradesResponse0\x01\x12g\n\x08TradesV2\x12,.injective_spot_exchange_rpc.TradesV2Request\x1a-.injective_spot_exchange_rpc.TradesV2Response\x12{\n\x0eStreamTradesV2\x12\x32.injective_spot_exchange_rpc.StreamTradesV2Request\x1a\x33.injective_spot_exchange_rpc.StreamTradesV2Response0\x01\x12\x8b\x01\n\x14SubaccountOrdersList\x12\x38.injective_spot_exchange_rpc.SubaccountOrdersListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountOrdersListResponse\x12\x8b\x01\n\x14SubaccountTradesList\x12\x38.injective_spot_exchange_rpc.SubaccountTradesListRequest\x1a\x39.injective_spot_exchange_rpc.SubaccountTradesListResponse\x12v\n\rOrdersHistory\x12\x31.injective_spot_exchange_rpc.OrdersHistoryRequest\x1a\x32.injective_spot_exchange_rpc.OrdersHistoryResponse\x12\x8a\x01\n\x13StreamOrdersHistory\x12\x37.injective_spot_exchange_rpc.StreamOrdersHistoryRequest\x1a\x38.injective_spot_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x82\x01\n\x11\x41tomicSwapHistory\x12\x35.injective_spot_exchange_rpc.AtomicSwapHistoryRequest\x1a\x36.injective_spot_exchange_rpc.AtomicSwapHistoryResponseB\xe0\x01\n\x1f\x63om.injective_spot_exchange_rpcB\x1dInjectiveSpotExchangeRpcProtoP\x01Z\x1e/injective_spot_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x18InjectiveSpotExchangeRpc\xca\x02\x18InjectiveSpotExchangeRpc\xe2\x02$InjectiveSpotExchangeRpc\\GPBMetadata\xea\x02\x18InjectiveSpotExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,87 +39,87 @@ _globals['_STREAMMARKETSRESPONSE']._serialized_start=1274 _globals['_STREAMMARKETSRESPONSE']._serialized_end=1435 _globals['_ORDERBOOKV2REQUEST']._serialized_start=1437 - _globals['_ORDERBOOKV2REQUEST']._serialized_end=1486 - _globals['_ORDERBOOKV2RESPONSE']._serialized_start=1488 - _globals['_ORDERBOOKV2RESPONSE']._serialized_end=1590 - _globals['_SPOTLIMITORDERBOOKV2']._serialized_start=1593 - _globals['_SPOTLIMITORDERBOOKV2']._serialized_end=1797 - _globals['_PRICELEVEL']._serialized_start=1799 - _globals['_PRICELEVEL']._serialized_end=1891 - _globals['_ORDERBOOKSV2REQUEST']._serialized_start=1893 - _globals['_ORDERBOOKSV2REQUEST']._serialized_end=1945 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=1947 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=2058 - _globals['_SINGLESPOTLIMITORDERBOOKV2']._serialized_start=2061 - _globals['_SINGLESPOTLIMITORDERBOOKV2']._serialized_end=2199 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=2201 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=2258 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=2261 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=2467 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=2469 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=2530 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=2533 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=2770 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=2773 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=3020 - _globals['_PRICELEVELUPDATE']._serialized_start=3022 - _globals['_PRICELEVELUPDATE']._serialized_end=3149 - _globals['_ORDERSREQUEST']._serialized_start=3152 - _globals['_ORDERSREQUEST']._serialized_end=3539 - _globals['_ORDERSRESPONSE']._serialized_start=3542 - _globals['_ORDERSRESPONSE']._serialized_end=3688 - _globals['_SPOTLIMITORDER']._serialized_start=3691 - _globals['_SPOTLIMITORDER']._serialized_end=4131 - _globals['_PAGING']._serialized_start=4134 - _globals['_PAGING']._serialized_end=4268 - _globals['_STREAMORDERSREQUEST']._serialized_start=4271 - _globals['_STREAMORDERSREQUEST']._serialized_end=4664 - _globals['_STREAMORDERSRESPONSE']._serialized_start=4667 - _globals['_STREAMORDERSRESPONSE']._serialized_end=4825 - _globals['_TRADESREQUEST']._serialized_start=4828 - _globals['_TRADESREQUEST']._serialized_end=5312 - _globals['_TRADESRESPONSE']._serialized_start=5315 - _globals['_TRADESRESPONSE']._serialized_end=5456 - _globals['_SPOTTRADE']._serialized_start=5459 - _globals['_SPOTTRADE']._serialized_end=5893 - _globals['_STREAMTRADESREQUEST']._serialized_start=5896 - _globals['_STREAMTRADESREQUEST']._serialized_end=6386 - _globals['_STREAMTRADESRESPONSE']._serialized_start=6389 - _globals['_STREAMTRADESRESPONSE']._serialized_end=6542 - _globals['_TRADESV2REQUEST']._serialized_start=6545 - _globals['_TRADESV2REQUEST']._serialized_end=7031 - _globals['_TRADESV2RESPONSE']._serialized_start=7034 - _globals['_TRADESV2RESPONSE']._serialized_end=7177 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=7180 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=7672 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=7675 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=7830 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=7833 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=7970 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=7973 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=8133 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=8136 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=8342 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=8344 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=8438 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=8441 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=8879 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=8882 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=9037 - _globals['_SPOTORDERHISTORY']._serialized_start=9040 - _globals['_SPOTORDERHISTORY']._serialized_end=9539 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=9542 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=9762 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=9765 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=9932 - _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_start=9935 - _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_end=10134 - _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_start=10137 - _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_end=10286 - _globals['_ATOMICSWAP']._serialized_start=10289 - _globals['_ATOMICSWAP']._serialized_end=10769 - _globals['_COIN']._serialized_start=10771 - _globals['_COIN']._serialized_end=10852 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10855 - _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=13061 + _globals['_ORDERBOOKV2REQUEST']._serialized_end=1508 + _globals['_ORDERBOOKV2RESPONSE']._serialized_start=1510 + _globals['_ORDERBOOKV2RESPONSE']._serialized_end=1612 + _globals['_SPOTLIMITORDERBOOKV2']._serialized_start=1615 + _globals['_SPOTLIMITORDERBOOKV2']._serialized_end=1819 + _globals['_PRICELEVEL']._serialized_start=1821 + _globals['_PRICELEVEL']._serialized_end=1913 + _globals['_ORDERBOOKSV2REQUEST']._serialized_start=1915 + _globals['_ORDERBOOKSV2REQUEST']._serialized_end=1989 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=1991 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=2102 + _globals['_SINGLESPOTLIMITORDERBOOKV2']._serialized_start=2105 + _globals['_SINGLESPOTLIMITORDERBOOKV2']._serialized_end=2243 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=2245 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=2302 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=2305 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=2511 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=2513 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=2574 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=2577 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=2814 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=2817 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=3064 + _globals['_PRICELEVELUPDATE']._serialized_start=3066 + _globals['_PRICELEVELUPDATE']._serialized_end=3193 + _globals['_ORDERSREQUEST']._serialized_start=3196 + _globals['_ORDERSREQUEST']._serialized_end=3583 + _globals['_ORDERSRESPONSE']._serialized_start=3586 + _globals['_ORDERSRESPONSE']._serialized_end=3732 + _globals['_SPOTLIMITORDER']._serialized_start=3735 + _globals['_SPOTLIMITORDER']._serialized_end=4175 + _globals['_PAGING']._serialized_start=4178 + _globals['_PAGING']._serialized_end=4312 + _globals['_STREAMORDERSREQUEST']._serialized_start=4315 + _globals['_STREAMORDERSREQUEST']._serialized_end=4708 + _globals['_STREAMORDERSRESPONSE']._serialized_start=4711 + _globals['_STREAMORDERSRESPONSE']._serialized_end=4869 + _globals['_TRADESREQUEST']._serialized_start=4872 + _globals['_TRADESREQUEST']._serialized_end=5356 + _globals['_TRADESRESPONSE']._serialized_start=5359 + _globals['_TRADESRESPONSE']._serialized_end=5500 + _globals['_SPOTTRADE']._serialized_start=5503 + _globals['_SPOTTRADE']._serialized_end=5937 + _globals['_STREAMTRADESREQUEST']._serialized_start=5940 + _globals['_STREAMTRADESREQUEST']._serialized_end=6430 + _globals['_STREAMTRADESRESPONSE']._serialized_start=6433 + _globals['_STREAMTRADESRESPONSE']._serialized_end=6586 + _globals['_TRADESV2REQUEST']._serialized_start=6589 + _globals['_TRADESV2REQUEST']._serialized_end=7075 + _globals['_TRADESV2RESPONSE']._serialized_start=7078 + _globals['_TRADESV2RESPONSE']._serialized_end=7221 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=7224 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=7716 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=7719 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=7874 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=7877 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=8014 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=8017 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=8177 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=8180 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=8386 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=8388 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=8482 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=8485 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=8923 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=8926 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=9081 + _globals['_SPOTORDERHISTORY']._serialized_start=9084 + _globals['_SPOTORDERHISTORY']._serialized_end=9583 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=9586 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=9806 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=9809 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=9976 + _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_start=9979 + _globals['_ATOMICSWAPHISTORYREQUEST']._serialized_end=10178 + _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_start=10181 + _globals['_ATOMICSWAPHISTORYRESPONSE']._serialized_end=10330 + _globals['_ATOMICSWAP']._serialized_start=10333 + _globals['_ATOMICSWAP']._serialized_end=10813 + _globals['_COIN']._serialized_start=10815 + _globals['_COIN']._serialized_end=10896 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_start=10899 + _globals['_INJECTIVESPOTEXCHANGERPC']._serialized_end=13105 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py index 35a90018..2d086c16 100644 --- a/pyinjective/proto/exchange/injective_trading_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_trading_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\x9c\x04\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\x12,\n\x12last_executed_time\x18\x0c \x01(\x12R\x10lastExecutedTime\x12\x19\n\x08with_tvl\x18\r \x01(\x08R\x07withTvl\x12\x30\n\x14is_trailing_strategy\x18\x0e \x01(\x08R\x12isTrailingStrategy\x12)\n\x10with_performance\x18\x0f \x01(\x08R\x0fwithPerformance\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\x9f\x10\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\x12(\n\x10last_executed_at\x18\" \x01(\x12R\x0elastExecutedAt\x12$\n\x0etrail_up_price\x18# \x01(\tR\x0ctrailUpPrice\x12(\n\x10trail_down_price\x18$ \x01(\tR\x0etrailDownPrice\x12(\n\x10trail_up_counter\x18% \x01(\x12R\x0etrailUpCounter\x12,\n\x12trail_down_counter\x18& \x01(\x12R\x10trailDownCounter\x12\x10\n\x03tvl\x18\' \x01(\tR\x03tvl\x12\x10\n\x03pnl\x18( \x01(\tR\x03pnl\x12\x19\n\x08pnl_perc\x18) \x01(\tR\x07pnlPerc\x12$\n\x0epnl_updated_at\x18* \x01(\x12R\x0cpnlUpdatedAt\x12 \n\x0bperformance\x18+ \x01(\tR\x0bperformance\x12\x10\n\x03roi\x18, \x01(\tR\x03roi\x12,\n\x12initial_base_price\x18- \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18. \x01(\tR\x11initialQuotePrice\x12,\n\x12\x63urrent_base_price\x18/ \x01(\tR\x10\x63urrentBasePrice\x12.\n\x13\x63urrent_quote_price\x18\x30 \x01(\tR\x11\x63urrentQuotePrice\x12(\n\x10\x66inal_base_price\x18\x31 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x32 \x01(\tR\x0f\x66inalQuotePrice\x12G\n\nfinal_data\x18\x33 \x01(\x0b\x32(.injective_trading_rpc.StrategyFinalDataR\tfinalData\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x83\x03\n\x11StrategyFinalData\x12.\n\x13initial_base_amount\x18\x01 \x01(\tR\x11initialBaseAmount\x12\x30\n\x14initial_quote_amount\x18\x02 \x01(\tR\x12initialQuoteAmount\x12*\n\x11\x66inal_base_amount\x18\x03 \x01(\tR\x0f\x66inalBaseAmount\x12,\n\x12\x66inal_quote_amount\x18\x04 \x01(\tR\x10\x66inalQuoteAmount\x12,\n\x12initial_base_price\x18\x05 \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18\x06 \x01(\tR\x11initialQuotePrice\x12(\n\x10\x66inal_base_price\x18\x07 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x08 \x01(\tR\x0f\x66inalQuotePrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x18\n\x16GetTradingStatsRequest\"\xf4\x01\n\x17GetTradingStatsResponse\x12:\n\x19\x61\x63tive_trading_strategies\x18\x01 \x01(\x04R\x17\x61\x63tiveTradingStrategies\x12G\n total_trading_strategies_created\x18\x02 \x01(\x04R\x1dtotalTradingStrategiesCreated\x12\x1b\n\ttotal_tvl\x18\x03 \x01(\tR\x08totalTvl\x12\x37\n\x07markets\x18\x04 \x03(\x0b\x32\x1d.injective_trading_rpc.MarketR\x07markets\"a\n\x06Market\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12:\n\x19\x61\x63tive_trading_strategies\x18\x02 \x01(\x04R\x17\x61\x63tiveTradingStrategies2\x8c\x02\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponse\x12p\n\x0fGetTradingStats\x12-.injective_trading_rpc.GetTradingStatsRequest\x1a..injective_trading_rpc.GetTradingStatsResponseB\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$exchange/injective_trading_rpc.proto\x12\x15injective_trading_rpc\"\x9c\x04\n\x1cListTradingStrategiesRequest\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12+\n\x11pending_execution\x18\x05 \x01(\x08R\x10pendingExecution\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x14\n\x05limit\x18\x08 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\t \x01(\x04R\x04skip\x12#\n\rstrategy_type\x18\n \x03(\tR\x0cstrategyType\x12\x1f\n\x0bmarket_type\x18\x0b \x01(\tR\nmarketType\x12,\n\x12last_executed_time\x18\x0c \x01(\x12R\x10lastExecutedTime\x12\x19\n\x08with_tvl\x18\r \x01(\x08R\x07withTvl\x12\x30\n\x14is_trailing_strategy\x18\x0e \x01(\x08R\x12isTrailingStrategy\x12)\n\x10with_performance\x18\x0f \x01(\x08R\x0fwithPerformance\"\x9e\x01\n\x1dListTradingStrategiesResponse\x12\x46\n\nstrategies\x18\x01 \x03(\x0b\x32&.injective_trading_rpc.TradingStrategyR\nstrategies\x12\x35\n\x06paging\x18\x02 \x01(\x0b\x32\x1d.injective_trading_rpc.PagingR\x06paging\"\xf6\x11\n\x0fTradingStrategy\x12\x14\n\x05state\x18\x01 \x01(\tR\x05state\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x04 \x01(\tR\x0e\x61\x63\x63ountAddress\x12)\n\x10\x63ontract_address\x18\x05 \x01(\tR\x0f\x63ontractAddress\x12\'\n\x0f\x65xecution_price\x18\x06 \x01(\tR\x0e\x65xecutionPrice\x12#\n\rbase_quantity\x18\x07 \x01(\tR\x0c\x62\x61seQuantity\x12%\n\x0equote_quantity\x18\x14 \x01(\tR\rquoteQuantity\x12\x1f\n\x0blower_bound\x18\x08 \x01(\tR\nlowerBound\x12\x1f\n\x0bupper_bound\x18\t \x01(\tR\nupperBound\x12\x1b\n\tstop_loss\x18\n \x01(\tR\x08stopLoss\x12\x1f\n\x0btake_profit\x18\x0b \x01(\tR\ntakeProfit\x12\x19\n\x08swap_fee\x18\x0c \x01(\tR\x07swapFee\x12!\n\x0c\x62\x61se_deposit\x18\x11 \x01(\tR\x0b\x62\x61seDeposit\x12#\n\rquote_deposit\x18\x12 \x01(\tR\x0cquoteDeposit\x12(\n\x10market_mid_price\x18\x13 \x01(\tR\x0emarketMidPrice\x12>\n\x1bsubscription_quote_quantity\x18\x15 \x01(\tR\x19subscriptionQuoteQuantity\x12<\n\x1asubscription_base_quantity\x18\x16 \x01(\tR\x18subscriptionBaseQuantity\x12\x31\n\x15number_of_grid_levels\x18\x17 \x01(\tR\x12numberOfGridLevels\x12<\n\x1bshould_exit_with_quote_only\x18\x18 \x01(\x08R\x17shouldExitWithQuoteOnly\x12\x1f\n\x0bstop_reason\x18\x19 \x01(\tR\nstopReason\x12+\n\x11pending_execution\x18\x1a \x01(\x08R\x10pendingExecution\x12%\n\x0e\x63reated_height\x18\r \x01(\x12R\rcreatedHeight\x12%\n\x0eremoved_height\x18\x0e \x01(\x12R\rremovedHeight\x12\x1d\n\ncreated_at\x18\x0f \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\x12R\tupdatedAt\x12\x1b\n\texit_type\x18\x1b \x01(\tR\x08\x65xitType\x12K\n\x10stop_loss_config\x18\x1c \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x0estopLossConfig\x12O\n\x12take_profit_config\x18\x1d \x01(\x0b\x32!.injective_trading_rpc.ExitConfigR\x10takeProfitConfig\x12#\n\rstrategy_type\x18\x1e \x01(\tR\x0cstrategyType\x12)\n\x10\x63ontract_version\x18\x1f \x01(\tR\x0f\x63ontractVersion\x12#\n\rcontract_name\x18 \x01(\tR\x0c\x63ontractName\x12\x1f\n\x0bmarket_type\x18! \x01(\tR\nmarketType\x12(\n\x10last_executed_at\x18\" \x01(\x12R\x0elastExecutedAt\x12$\n\x0etrail_up_price\x18# \x01(\tR\x0ctrailUpPrice\x12(\n\x10trail_down_price\x18$ \x01(\tR\x0etrailDownPrice\x12(\n\x10trail_up_counter\x18% \x01(\x12R\x0etrailUpCounter\x12,\n\x12trail_down_counter\x18& \x01(\x12R\x10trailDownCounter\x12\x10\n\x03tvl\x18\' \x01(\tR\x03tvl\x12\x10\n\x03pnl\x18( \x01(\tR\x03pnl\x12\x19\n\x08pnl_perc\x18) \x01(\tR\x07pnlPerc\x12$\n\x0epnl_updated_at\x18* \x01(\x12R\x0cpnlUpdatedAt\x12 \n\x0bperformance\x18+ \x01(\tR\x0bperformance\x12\x10\n\x03roi\x18, \x01(\tR\x03roi\x12,\n\x12initial_base_price\x18- \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18. \x01(\tR\x11initialQuotePrice\x12,\n\x12\x63urrent_base_price\x18/ \x01(\tR\x10\x63urrentBasePrice\x12.\n\x13\x63urrent_quote_price\x18\x30 \x01(\tR\x11\x63urrentQuotePrice\x12(\n\x10\x66inal_base_price\x18\x31 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x32 \x01(\tR\x0f\x66inalQuotePrice\x12G\n\nfinal_data\x18\x33 \x01(\x0b\x32(.injective_trading_rpc.StrategyFinalDataR\tfinalData\x12!\n\x0cmargin_ratio\x18\x34 \x01(\tR\x0bmarginRatio\x12\x30\n\x14lower_trailing_bound\x18\x35 \x01(\tR\x12lowerTrailingBound\x12\x30\n\x14upper_trailing_bound\x18\x36 \x01(\tR\x12upperTrailingBound\x12&\n\x0fnew_upper_bound\x18\x37 \x01(\tR\rnewUpperBound\x12&\n\x0fnew_lower_bound\x18\x38 \x01(\tR\rnewLowerBound\"H\n\nExitConfig\x12\x1b\n\texit_type\x18\x01 \x01(\tR\x08\x65xitType\x12\x1d\n\nexit_price\x18\x02 \x01(\tR\texitPrice\"\x83\x03\n\x11StrategyFinalData\x12.\n\x13initial_base_amount\x18\x01 \x01(\tR\x11initialBaseAmount\x12\x30\n\x14initial_quote_amount\x18\x02 \x01(\tR\x12initialQuoteAmount\x12*\n\x11\x66inal_base_amount\x18\x03 \x01(\tR\x0f\x66inalBaseAmount\x12,\n\x12\x66inal_quote_amount\x18\x04 \x01(\tR\x10\x66inalQuoteAmount\x12,\n\x12initial_base_price\x18\x05 \x01(\tR\x10initialBasePrice\x12.\n\x13initial_quote_price\x18\x06 \x01(\tR\x11initialQuotePrice\x12(\n\x10\x66inal_base_price\x18\x07 \x01(\tR\x0e\x66inalBasePrice\x12*\n\x11\x66inal_quote_price\x18\x08 \x01(\tR\x0f\x66inalQuotePrice\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x18\n\x16GetTradingStatsRequest\"\xf4\x01\n\x17GetTradingStatsResponse\x12:\n\x19\x61\x63tive_trading_strategies\x18\x01 \x01(\x04R\x17\x61\x63tiveTradingStrategies\x12G\n total_trading_strategies_created\x18\x02 \x01(\x04R\x1dtotalTradingStrategiesCreated\x12\x1b\n\ttotal_tvl\x18\x03 \x01(\tR\x08totalTvl\x12\x37\n\x07markets\x18\x04 \x03(\x0b\x32\x1d.injective_trading_rpc.MarketR\x07markets\"a\n\x06Market\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12:\n\x19\x61\x63tive_trading_strategies\x18\x02 \x01(\x04R\x17\x61\x63tiveTradingStrategies\"a\n\x15StreamStrategyRequest\x12+\n\x11\x61\x63\x63ount_addresses\x18\x01 \x03(\tR\x10\x61\x63\x63ountAddresses\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\"\x89\x01\n\x16StreamStrategyResponse\x12Q\n\x10trading_strategy\x18\x01 \x01(\x0b\x32&.injective_trading_rpc.TradingStrategyR\x0ftradingStrategy\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp2\xfd\x02\n\x13InjectiveTradingRPC\x12\x82\x01\n\x15ListTradingStrategies\x12\x33.injective_trading_rpc.ListTradingStrategiesRequest\x1a\x34.injective_trading_rpc.ListTradingStrategiesResponse\x12p\n\x0fGetTradingStats\x12-.injective_trading_rpc.GetTradingStatsRequest\x1a..injective_trading_rpc.GetTradingStatsResponse\x12o\n\x0eStreamStrategy\x12,.injective_trading_rpc.StreamStrategyRequest\x1a-.injective_trading_rpc.StreamStrategyResponse0\x01\x42\xbb\x01\n\x19\x63om.injective_trading_rpcB\x18InjectiveTradingRpcProtoP\x01Z\x18/injective_trading_rpcpb\xa2\x02\x03IXX\xaa\x02\x13InjectiveTradingRpc\xca\x02\x13InjectiveTradingRpc\xe2\x02\x1fInjectiveTradingRpc\\GPBMetadata\xea\x02\x13InjectiveTradingRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,19 +27,23 @@ _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_start=607 _globals['_LISTTRADINGSTRATEGIESRESPONSE']._serialized_end=765 _globals['_TRADINGSTRATEGY']._serialized_start=768 - _globals['_TRADINGSTRATEGY']._serialized_end=2847 - _globals['_EXITCONFIG']._serialized_start=2849 - _globals['_EXITCONFIG']._serialized_end=2921 - _globals['_STRATEGYFINALDATA']._serialized_start=2924 - _globals['_STRATEGYFINALDATA']._serialized_end=3311 - _globals['_PAGING']._serialized_start=3314 - _globals['_PAGING']._serialized_end=3448 - _globals['_GETTRADINGSTATSREQUEST']._serialized_start=3450 - _globals['_GETTRADINGSTATSREQUEST']._serialized_end=3474 - _globals['_GETTRADINGSTATSRESPONSE']._serialized_start=3477 - _globals['_GETTRADINGSTATSRESPONSE']._serialized_end=3721 - _globals['_MARKET']._serialized_start=3723 - _globals['_MARKET']._serialized_end=3820 - _globals['_INJECTIVETRADINGRPC']._serialized_start=3823 - _globals['_INJECTIVETRADINGRPC']._serialized_end=4091 + _globals['_TRADINGSTRATEGY']._serialized_end=3062 + _globals['_EXITCONFIG']._serialized_start=3064 + _globals['_EXITCONFIG']._serialized_end=3136 + _globals['_STRATEGYFINALDATA']._serialized_start=3139 + _globals['_STRATEGYFINALDATA']._serialized_end=3526 + _globals['_PAGING']._serialized_start=3529 + _globals['_PAGING']._serialized_end=3663 + _globals['_GETTRADINGSTATSREQUEST']._serialized_start=3665 + _globals['_GETTRADINGSTATSREQUEST']._serialized_end=3689 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_start=3692 + _globals['_GETTRADINGSTATSRESPONSE']._serialized_end=3936 + _globals['_MARKET']._serialized_start=3938 + _globals['_MARKET']._serialized_end=4035 + _globals['_STREAMSTRATEGYREQUEST']._serialized_start=4037 + _globals['_STREAMSTRATEGYREQUEST']._serialized_end=4134 + _globals['_STREAMSTRATEGYRESPONSE']._serialized_start=4137 + _globals['_STREAMSTRATEGYRESPONSE']._serialized_end=4274 + _globals['_INJECTIVETRADINGRPC']._serialized_start=4277 + _globals['_INJECTIVETRADINGRPC']._serialized_end=4658 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py index 5ec0dd52..d6176321 100644 --- a/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_trading_rpc_pb2_grpc.py @@ -26,6 +26,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsRequest.SerializeToString, response_deserializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsResponse.FromString, _registered_method=True) + self.StreamStrategy = channel.unary_stream( + '/injective_trading_rpc.InjectiveTradingRPC/StreamStrategy', + request_serializer=exchange_dot_injective__trading__rpc__pb2.StreamStrategyRequest.SerializeToString, + response_deserializer=exchange_dot_injective__trading__rpc__pb2.StreamStrategyResponse.FromString, + _registered_method=True) class InjectiveTradingRPCServicer(object): @@ -47,6 +52,13 @@ def GetTradingStats(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def StreamStrategy(self, request, context): + """StreamStrategy streams the trading strategies on state change + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_InjectiveTradingRPCServicer_to_server(servicer, server): rpc_method_handlers = { @@ -60,6 +72,11 @@ def add_InjectiveTradingRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsRequest.FromString, response_serializer=exchange_dot_injective__trading__rpc__pb2.GetTradingStatsResponse.SerializeToString, ), + 'StreamStrategy': grpc.unary_stream_rpc_method_handler( + servicer.StreamStrategy, + request_deserializer=exchange_dot_injective__trading__rpc__pb2.StreamStrategyRequest.FromString, + response_serializer=exchange_dot_injective__trading__rpc__pb2.StreamStrategyResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'injective_trading_rpc.InjectiveTradingRPC', rpc_method_handlers) @@ -126,3 +143,30 @@ def GetTradingStats(request, timeout, metadata, _registered_method=True) + + @staticmethod + def StreamStrategy(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_trading_rpc.InjectiveTradingRPC/StreamStrategy', + exchange_dot_injective__trading__rpc__pb2.StreamStrategyRequest.SerializeToString, + exchange_dot_injective__trading__rpc__pb2.StreamStrategyResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/exchange_pb2.py index d8aa7031..8ae7d304 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\"\x89\x16\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\x12*\n\x11\x66ixed_gas_enabled\x18\x1d \x01(\x08R\x0f\x66ixedGasEnabled:\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\"p\n\x10\x44\x65nomMinNotional\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x46\n\x0cmin_notional\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional*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\"\x89\x16\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\x12*\n\x11\x66ixed_gas_enabled\x18\x1d \x01(\x08R\x0f\x66ixedGasEnabled:\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\"\xe8\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\x12S\n\x13reduce_margin_ratio\x18\x15 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x11reduceMarginRatio:\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\"p\n\x10\x44\x65nomMinNotional\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x46\n\x0cmin_notional\x18\x02 \x01(\tB#\xc8\xde\x1f\x00\xda\xde\x1f\x1b\x63osmossdk.io/math.LegacyDecR\x0bminNotional*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) @@ -124,6 +124,8 @@ _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'].fields_by_name['reduce_margin_ratio']._loaded_options = None + _globals['_DERIVATIVEMARKET'].fields_by_name['reduce_margin_ratio']._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['_BINARYOPTIONSMARKET'].fields_by_name['maker_fee_rate']._loaded_options = None @@ -300,118 +302,118 @@ _globals['_EFFECTIVEGRANT'].fields_by_name['net_granted_stake']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' _globals['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._loaded_options = None _globals['_DENOMMINNOTIONAL'].fields_by_name['min_notional']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' - _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=16300 - _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=16416 - _globals['_MARKETSTATUS']._serialized_start=16418 - _globals['_MARKETSTATUS']._serialized_end=16502 - _globals['_ORDERTYPE']._serialized_start=16505 - _globals['_ORDERTYPE']._serialized_end=16820 - _globals['_EXECUTIONTYPE']._serialized_start=16823 - _globals['_EXECUTIONTYPE']._serialized_end=16998 - _globals['_ORDERMASK']._serialized_start=17001 - _globals['_ORDERMASK']._serialized_end=17266 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_start=16385 + _globals['_ATOMICMARKETORDERACCESSLEVEL']._serialized_end=16501 + _globals['_MARKETSTATUS']._serialized_start=16503 + _globals['_MARKETSTATUS']._serialized_end=16587 + _globals['_ORDERTYPE']._serialized_start=16590 + _globals['_ORDERTYPE']._serialized_end=16905 + _globals['_EXECUTIONTYPE']._serialized_start=16908 + _globals['_EXECUTIONTYPE']._serialized_end=17083 + _globals['_ORDERMASK']._serialized_start=17086 + _globals['_ORDERMASK']._serialized_end=17351 _globals['_PARAMS']._serialized_start=186 _globals['_PARAMS']._serialized_end=3011 _globals['_MARKETFEEMULTIPLIER']._serialized_start=3014 _globals['_MARKETFEEMULTIPLIER']._serialized_end=3146 _globals['_DERIVATIVEMARKET']._serialized_start=3149 - _globals['_DERIVATIVEMARKET']._serialized_end=4320 - _globals['_BINARYOPTIONSMARKET']._serialized_start=4323 - _globals['_BINARYOPTIONSMARKET']._serialized_end=5473 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=5476 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=5832 - _globals['_PERPETUALMARKETINFO']._serialized_start=5835 - _globals['_PERPETUALMARKETINFO']._serialized_end=6161 - _globals['_PERPETUALMARKETFUNDING']._serialized_start=6164 - _globals['_PERPETUALMARKETFUNDING']._serialized_end=6391 - _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=6394 - _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=6535 - _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=6537 - _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=6598 - _globals['_MIDPRICEANDTOB']._serialized_start=6601 - _globals['_MIDPRICEANDTOB']._serialized_end=6835 - _globals['_SPOTMARKET']._serialized_start=6838 - _globals['_SPOTMARKET']._serialized_end=7662 - _globals['_DEPOSIT']._serialized_start=7665 - _globals['_DEPOSIT']._serialized_end=7830 - _globals['_SUBACCOUNTTRADENONCE']._serialized_start=7832 - _globals['_SUBACCOUNTTRADENONCE']._serialized_end=7876 - _globals['_ORDERINFO']._serialized_start=7879 - _globals['_ORDERINFO']._serialized_end=8106 - _globals['_SPOTORDER']._serialized_start=8109 - _globals['_SPOTORDER']._serialized_end=8369 - _globals['_SPOTLIMITORDER']._serialized_start=8372 - _globals['_SPOTLIMITORDER']._serialized_end=8704 - _globals['_SPOTMARKETORDER']._serialized_start=8707 - _globals['_SPOTMARKETORDER']._serialized_end=9047 - _globals['_DERIVATIVEORDER']._serialized_start=9050 - _globals['_DERIVATIVEORDER']._serialized_end=9377 - _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=9380 - _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=9888 - _globals['_SUBACCOUNTORDER']._serialized_start=9891 - _globals['_SUBACCOUNTORDER']._serialized_end=10086 - _globals['_SUBACCOUNTORDERDATA']._serialized_start=10088 - _globals['_SUBACCOUNTORDERDATA']._serialized_end=10207 - _globals['_DERIVATIVELIMITORDER']._serialized_start=10210 - _globals['_DERIVATIVELIMITORDER']._serialized_end=10609 - _globals['_DERIVATIVEMARKETORDER']._serialized_start=10612 - _globals['_DERIVATIVEMARKETORDER']._serialized_end=11017 - _globals['_POSITION']._serialized_start=11020 - _globals['_POSITION']._serialized_end=11345 - _globals['_MARKETORDERINDICATOR']._serialized_start=11347 - _globals['_MARKETORDERINDICATOR']._serialized_end=11420 - _globals['_TRADELOG']._serialized_start=11423 - _globals['_TRADELOG']._serialized_end=11756 - _globals['_POSITIONDELTA']._serialized_start=11759 - _globals['_POSITIONDELTA']._serialized_end=12041 - _globals['_DERIVATIVETRADELOG']._serialized_start=12044 - _globals['_DERIVATIVETRADELOG']._serialized_end=12461 - _globals['_SUBACCOUNTPOSITION']._serialized_start=12463 - _globals['_SUBACCOUNTPOSITION']._serialized_end=12586 - _globals['_SUBACCOUNTDEPOSIT']._serialized_start=12588 - _globals['_SUBACCOUNTDEPOSIT']._serialized_end=12707 - _globals['_DEPOSITUPDATE']._serialized_start=12709 - _globals['_DEPOSITUPDATE']._serialized_end=12821 - _globals['_POINTSMULTIPLIER']._serialized_start=12824 - _globals['_POINTSMULTIPLIER']._serialized_end=13028 - _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=13031 - _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=13413 - _globals['_CAMPAIGNREWARDPOOL']._serialized_start=13416 - _globals['_CAMPAIGNREWARDPOOL']._serialized_end=13604 - _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=13607 - _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=13904 - _globals['_FEEDISCOUNTTIERINFO']._serialized_start=13907 - _globals['_FEEDISCOUNTTIERINFO']._serialized_end=14227 - _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=14230 - _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=14498 - _globals['_FEEDISCOUNTTIERTTL']._serialized_start=14500 - _globals['_FEEDISCOUNTTIERTTL']._serialized_end=14577 - _globals['_VOLUMERECORD']._serialized_start=14580 - _globals['_VOLUMERECORD']._serialized_end=14738 - _globals['_ACCOUNTREWARDS']._serialized_start=14741 - _globals['_ACCOUNTREWARDS']._serialized_end=14886 - _globals['_TRADERECORDS']._serialized_start=14889 - _globals['_TRADERECORDS']._serialized_end=15023 - _globals['_SUBACCOUNTIDS']._serialized_start=15025 - _globals['_SUBACCOUNTIDS']._serialized_end=15079 - _globals['_TRADERECORD']._serialized_start=15082 - _globals['_TRADERECORD']._serialized_end=15249 - _globals['_LEVEL']._serialized_start=15251 - _globals['_LEVEL']._serialized_end=15360 - _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=15363 - _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=15514 - _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=15517 - _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=15654 - _globals['_MARKETVOLUME']._serialized_start=15656 - _globals['_MARKETVOLUME']._serialized_end=15771 - _globals['_DENOMDECIMALS']._serialized_start=15773 - _globals['_DENOMDECIMALS']._serialized_end=15838 - _globals['_GRANTAUTHORIZATION']._serialized_start=15840 - _globals['_GRANTAUTHORIZATION']._serialized_end=15941 - _globals['_ACTIVEGRANT']._serialized_start=15943 - _globals['_ACTIVEGRANT']._serialized_end=16037 - _globals['_EFFECTIVEGRANT']._serialized_start=16040 - _globals['_EFFECTIVEGRANT']._serialized_end=16184 - _globals['_DENOMMINNOTIONAL']._serialized_start=16186 - _globals['_DENOMMINNOTIONAL']._serialized_end=16298 + _globals['_DERIVATIVEMARKET']._serialized_end=4405 + _globals['_BINARYOPTIONSMARKET']._serialized_start=4408 + _globals['_BINARYOPTIONSMARKET']._serialized_end=5558 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=5561 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=5917 + _globals['_PERPETUALMARKETINFO']._serialized_start=5920 + _globals['_PERPETUALMARKETINFO']._serialized_end=6246 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=6249 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=6476 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_start=6479 + _globals['_DERIVATIVEMARKETSETTLEMENTINFO']._serialized_end=6620 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_start=6622 + _globals['_NEXTFUNDINGTIMESTAMP']._serialized_end=6683 + _globals['_MIDPRICEANDTOB']._serialized_start=6686 + _globals['_MIDPRICEANDTOB']._serialized_end=6920 + _globals['_SPOTMARKET']._serialized_start=6923 + _globals['_SPOTMARKET']._serialized_end=7747 + _globals['_DEPOSIT']._serialized_start=7750 + _globals['_DEPOSIT']._serialized_end=7915 + _globals['_SUBACCOUNTTRADENONCE']._serialized_start=7917 + _globals['_SUBACCOUNTTRADENONCE']._serialized_end=7961 + _globals['_ORDERINFO']._serialized_start=7964 + _globals['_ORDERINFO']._serialized_end=8191 + _globals['_SPOTORDER']._serialized_start=8194 + _globals['_SPOTORDER']._serialized_end=8454 + _globals['_SPOTLIMITORDER']._serialized_start=8457 + _globals['_SPOTLIMITORDER']._serialized_end=8789 + _globals['_SPOTMARKETORDER']._serialized_start=8792 + _globals['_SPOTMARKETORDER']._serialized_end=9132 + _globals['_DERIVATIVEORDER']._serialized_start=9135 + _globals['_DERIVATIVEORDER']._serialized_end=9462 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_start=9465 + _globals['_SUBACCOUNTORDERBOOKMETADATA']._serialized_end=9973 + _globals['_SUBACCOUNTORDER']._serialized_start=9976 + _globals['_SUBACCOUNTORDER']._serialized_end=10171 + _globals['_SUBACCOUNTORDERDATA']._serialized_start=10173 + _globals['_SUBACCOUNTORDERDATA']._serialized_end=10292 + _globals['_DERIVATIVELIMITORDER']._serialized_start=10295 + _globals['_DERIVATIVELIMITORDER']._serialized_end=10694 + _globals['_DERIVATIVEMARKETORDER']._serialized_start=10697 + _globals['_DERIVATIVEMARKETORDER']._serialized_end=11102 + _globals['_POSITION']._serialized_start=11105 + _globals['_POSITION']._serialized_end=11430 + _globals['_MARKETORDERINDICATOR']._serialized_start=11432 + _globals['_MARKETORDERINDICATOR']._serialized_end=11505 + _globals['_TRADELOG']._serialized_start=11508 + _globals['_TRADELOG']._serialized_end=11841 + _globals['_POSITIONDELTA']._serialized_start=11844 + _globals['_POSITIONDELTA']._serialized_end=12126 + _globals['_DERIVATIVETRADELOG']._serialized_start=12129 + _globals['_DERIVATIVETRADELOG']._serialized_end=12546 + _globals['_SUBACCOUNTPOSITION']._serialized_start=12548 + _globals['_SUBACCOUNTPOSITION']._serialized_end=12671 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=12673 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=12792 + _globals['_DEPOSITUPDATE']._serialized_start=12794 + _globals['_DEPOSITUPDATE']._serialized_end=12906 + _globals['_POINTSMULTIPLIER']._serialized_start=12909 + _globals['_POINTSMULTIPLIER']._serialized_end=13113 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_start=13116 + _globals['_TRADINGREWARDCAMPAIGNBOOSTINFO']._serialized_end=13498 + _globals['_CAMPAIGNREWARDPOOL']._serialized_start=13501 + _globals['_CAMPAIGNREWARDPOOL']._serialized_end=13689 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_start=13692 + _globals['_TRADINGREWARDCAMPAIGNINFO']._serialized_end=13989 + _globals['_FEEDISCOUNTTIERINFO']._serialized_start=13992 + _globals['_FEEDISCOUNTTIERINFO']._serialized_end=14312 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_start=14315 + _globals['_FEEDISCOUNTSCHEDULE']._serialized_end=14583 + _globals['_FEEDISCOUNTTIERTTL']._serialized_start=14585 + _globals['_FEEDISCOUNTTIERTTL']._serialized_end=14662 + _globals['_VOLUMERECORD']._serialized_start=14665 + _globals['_VOLUMERECORD']._serialized_end=14823 + _globals['_ACCOUNTREWARDS']._serialized_start=14826 + _globals['_ACCOUNTREWARDS']._serialized_end=14971 + _globals['_TRADERECORDS']._serialized_start=14974 + _globals['_TRADERECORDS']._serialized_end=15108 + _globals['_SUBACCOUNTIDS']._serialized_start=15110 + _globals['_SUBACCOUNTIDS']._serialized_end=15164 + _globals['_TRADERECORD']._serialized_start=15167 + _globals['_TRADERECORD']._serialized_end=15334 + _globals['_LEVEL']._serialized_start=15336 + _globals['_LEVEL']._serialized_end=15445 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_start=15448 + _globals['_AGGREGATESUBACCOUNTVOLUMERECORD']._serialized_end=15599 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_start=15602 + _globals['_AGGREGATEACCOUNTVOLUMERECORD']._serialized_end=15739 + _globals['_MARKETVOLUME']._serialized_start=15741 + _globals['_MARKETVOLUME']._serialized_end=15856 + _globals['_DENOMDECIMALS']._serialized_start=15858 + _globals['_DENOMDECIMALS']._serialized_end=15923 + _globals['_GRANTAUTHORIZATION']._serialized_start=15925 + _globals['_GRANTAUTHORIZATION']._serialized_end=16026 + _globals['_ACTIVEGRANT']._serialized_start=16028 + _globals['_ACTIVEGRANT']._serialized_end=16122 + _globals['_EFFECTIVEGRANT']._serialized_start=16125 + _globals['_EFFECTIVEGRANT']._serialized_end=16269 + _globals['_DENOMMINNOTIONAL']._serialized_start=16271 + _globals['_DENOMMINNOTIONAL']._serialized_end=16383 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py index 205093d9..f4266b3d 100644 --- a/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py +++ b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2.py @@ -23,7 +23,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/exchange/v1beta1/proposal.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\"\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\x1dMsgActivateStakeGrantResponse\"\xd0\x01\n\x1cMsgBatchExchangeModification\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12Y\n\x08proposal\x18\x02 \x01(\x0b\x32=.injective.exchange.v1beta1.BatchExchangeModificationProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgBatchExchangeModification\"&\n$MsgBatchExchangeModificationResponse2\xea(\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\x12\x97\x01\n\x19\x42\x61tchExchangeModification\x12\x38.injective.exchange.v1beta1.MsgBatchExchangeModification\x1a@.injective.exchange.v1beta1.MsgBatchExchangeModificationResponse\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/exchange/v1beta1/proposal.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\"\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\"\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\x1dMsgActivateStakeGrantResponse\"\xd0\x01\n\x1cMsgBatchExchangeModification\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12Y\n\x08proposal\x18\x02 \x01(\x0b\x32=.injective.exchange.v1beta1.BatchExchangeModificationProposalR\x08proposal:=\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*%exchange/MsgBatchExchangeModification\"&\n$MsgBatchExchangeModificationResponse2\x98&\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\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\x12\x97\x01\n\x19\x42\x61tchExchangeModification\x12\x38.injective.exchange.v1beta1.MsgBatchExchangeModification\x1a@.injective.exchange.v1beta1.MsgBatchExchangeModificationResponse\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) @@ -38,7 +38,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 @@ -85,22 +85,6 @@ _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 @@ -113,22 +97,6 @@ _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 @@ -284,163 +252,155 @@ _globals['_MSG']._loaded_options = None _globals['_MSG']._serialized_options = b'\200\347\260*\001' _globals['_MSGUPDATESPOTMARKET']._serialized_start=366 - _globals['_MSGUPDATESPOTMARKET']._serialized_end=789 - _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=791 - _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=820 - _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=823 - _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1454 - _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1456 - _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1491 - _globals['_MSGUPDATEPARAMS']._serialized_start=1494 - _globals['_MSGUPDATEPARAMS']._serialized_end=1678 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1680 - _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1705 - _globals['_MSGDEPOSIT']._serialized_start=1708 - _globals['_MSGDEPOSIT']._serialized_end=1883 - _globals['_MSGDEPOSITRESPONSE']._serialized_start=1885 - _globals['_MSGDEPOSITRESPONSE']._serialized_end=1905 - _globals['_MSGWITHDRAW']._serialized_start=1908 - _globals['_MSGWITHDRAW']._serialized_end=2085 - _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2087 - _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2108 - _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2111 - _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2285 - _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2287 - _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2379 - _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2382 - _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2570 - _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2573 - _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2751 - _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2754 - _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3277 - _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3279 - _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3315 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_start=3318 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCH']._serialized_end=4263 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_start=4265 - _globals['_MSGINSTANTPERPETUALMARKETLAUNCHRESPONSE']._serialized_end=4306 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=4309 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=5214 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=5216 - _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=5261 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_start=5264 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCH']._serialized_end=6241 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_start=6243 - _globals['_MSGINSTANTEXPIRYFUTURESMARKETLAUNCHRESPONSE']._serialized_end=6288 - _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=6291 - _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=6467 - _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=6470 - _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=6647 - _globals['_SPOTMARKETORDERRESULTS']._serialized_start=6650 - _globals['_SPOTMARKETORDERRESULTS']._serialized_end=6863 - _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=6866 - _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=7054 - _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=7056 - _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=7154 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=7157 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=7351 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=7353 - _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=7454 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=7457 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=7659 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=7662 - _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=7846 - _globals['_MSGCANCELSPOTORDER']._serialized_start=7849 - _globals['_MSGCANCELSPOTORDER']._serialized_end=8057 - _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=8059 - _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=8087 - _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=8090 - _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=8260 - _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=8262 - _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=8332 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=8335 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=8523 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=8525 - _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=8604 - _globals['_MSGBATCHUPDATEORDERS']._serialized_start=8607 - _globals['_MSGBATCHUPDATEORDERS']._serialized_end=9617 - _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=9620 - _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=10396 - _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=10399 - _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=10589 - _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=10592 - _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=10781 - _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=10784 - _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=11152 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=11155 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=11351 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=11354 - _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=11546 - _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=11549 - _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=11800 - _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=11802 - _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=11836 - _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=11839 - _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=12096 - _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=12098 - _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=12135 - _globals['_ORDERDATA']._serialized_start=12138 - _globals['_ORDERDATA']._serialized_end=12295 - _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=12298 - _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=12480 - _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=12482 - _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=12558 - _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=12561 - _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=12823 - _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=12825 - _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=12856 - _globals['_MSGEXTERNALTRANSFER']._serialized_start=12859 - _globals['_MSGEXTERNALTRANSFER']._serialized_end=13117 - _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=13119 - _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=13148 - _globals['_MSGLIQUIDATEPOSITION']._serialized_start=13151 - _globals['_MSGLIQUIDATEPOSITION']._serialized_end=13383 - _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=13385 - _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=13415 - _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=13418 - _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=13585 - _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=13587 - _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=13621 - _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=13624 - _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=13927 - _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=13929 - _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=13964 - _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=13967 - _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=14270 - _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=14272 - _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=14307 - _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=14310 - _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=14512 - _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=14515 - _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=14682 - _globals['_MSGREWARDSOPTOUT']._serialized_start=14684 - _globals['_MSGREWARDSOPTOUT']._serialized_end=14777 - _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=14779 - _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=14805 - _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=14808 - _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=14983 - _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=14985 - _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=15016 - _globals['_MSGSIGNDATA']._serialized_start=15019 - _globals['_MSGSIGNDATA']._serialized_end=15147 - _globals['_MSGSIGNDOC']._serialized_start=15149 - _globals['_MSGSIGNDOC']._serialized_end=15269 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=15272 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=15668 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=15670 - _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=15713 - _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=15716 - _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=15887 - _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=15889 - _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=15922 - _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=15924 - _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=16045 - _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=16047 - _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=16078 - _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_start=16081 - _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_end=16289 - _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_start=16291 - _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_end=16329 - _globals['_MSG']._serialized_start=16332 - _globals['_MSG']._serialized_end=21558 + _globals['_MSGUPDATESPOTMARKET']._serialized_end=785 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_start=787 + _globals['_MSGUPDATESPOTMARKETRESPONSE']._serialized_end=816 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_start=819 + _globals['_MSGUPDATEDERIVATIVEMARKET']._serialized_end=1450 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_start=1452 + _globals['_MSGUPDATEDERIVATIVEMARKETRESPONSE']._serialized_end=1487 + _globals['_MSGUPDATEPARAMS']._serialized_start=1490 + _globals['_MSGUPDATEPARAMS']._serialized_end=1674 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=1676 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=1701 + _globals['_MSGDEPOSIT']._serialized_start=1704 + _globals['_MSGDEPOSIT']._serialized_end=1879 + _globals['_MSGDEPOSITRESPONSE']._serialized_start=1881 + _globals['_MSGDEPOSITRESPONSE']._serialized_end=1901 + _globals['_MSGWITHDRAW']._serialized_start=1904 + _globals['_MSGWITHDRAW']._serialized_end=2081 + _globals['_MSGWITHDRAWRESPONSE']._serialized_start=2083 + _globals['_MSGWITHDRAWRESPONSE']._serialized_end=2104 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_start=2107 + _globals['_MSGCREATESPOTLIMITORDER']._serialized_end=2281 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_start=2283 + _globals['_MSGCREATESPOTLIMITORDERRESPONSE']._serialized_end=2375 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_start=2378 + _globals['_MSGBATCHCREATESPOTLIMITORDERS']._serialized_end=2566 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_start=2569 + _globals['_MSGBATCHCREATESPOTLIMITORDERSRESPONSE']._serialized_end=2747 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_start=2750 + _globals['_MSGINSTANTSPOTMARKETLAUNCH']._serialized_end=3273 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_start=3275 + _globals['_MSGINSTANTSPOTMARKETLAUNCHRESPONSE']._serialized_end=3311 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_start=3314 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCH']._serialized_end=4219 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_start=4221 + _globals['_MSGINSTANTBINARYOPTIONSMARKETLAUNCHRESPONSE']._serialized_end=4266 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_start=4269 + _globals['_MSGCREATESPOTMARKETORDER']._serialized_end=4445 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_start=4448 + _globals['_MSGCREATESPOTMARKETORDERRESPONSE']._serialized_end=4625 + _globals['_SPOTMARKETORDERRESULTS']._serialized_start=4628 + _globals['_SPOTMARKETORDERRESULTS']._serialized_end=4841 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_start=4844 + _globals['_MSGCREATEDERIVATIVELIMITORDER']._serialized_end=5032 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_start=5034 + _globals['_MSGCREATEDERIVATIVELIMITORDERRESPONSE']._serialized_end=5132 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_start=5135 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDER']._serialized_end=5329 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_start=5331 + _globals['_MSGCREATEBINARYOPTIONSLIMITORDERRESPONSE']._serialized_end=5432 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_start=5435 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERS']._serialized_end=5637 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_start=5640 + _globals['_MSGBATCHCREATEDERIVATIVELIMITORDERSRESPONSE']._serialized_end=5824 + _globals['_MSGCANCELSPOTORDER']._serialized_start=5827 + _globals['_MSGCANCELSPOTORDER']._serialized_end=6035 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_start=6037 + _globals['_MSGCANCELSPOTORDERRESPONSE']._serialized_end=6065 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_start=6068 + _globals['_MSGBATCHCANCELSPOTORDERS']._serialized_end=6238 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_start=6240 + _globals['_MSGBATCHCANCELSPOTORDERSRESPONSE']._serialized_end=6310 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_start=6313 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERS']._serialized_end=6501 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_start=6503 + _globals['_MSGBATCHCANCELBINARYOPTIONSORDERSRESPONSE']._serialized_end=6582 + _globals['_MSGBATCHUPDATEORDERS']._serialized_start=6585 + _globals['_MSGBATCHUPDATEORDERS']._serialized_end=7595 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_start=7598 + _globals['_MSGBATCHUPDATEORDERSRESPONSE']._serialized_end=8374 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_start=8377 + _globals['_MSGCREATEDERIVATIVEMARKETORDER']._serialized_end=8567 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_start=8570 + _globals['_MSGCREATEDERIVATIVEMARKETORDERRESPONSE']._serialized_end=8759 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_start=8762 + _globals['_DERIVATIVEMARKETORDERRESULTS']._serialized_end=9130 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_start=9133 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDER']._serialized_end=9329 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_start=9332 + _globals['_MSGCREATEBINARYOPTIONSMARKETORDERRESPONSE']._serialized_end=9524 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_start=9527 + _globals['_MSGCANCELDERIVATIVEORDER']._serialized_end=9778 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_start=9780 + _globals['_MSGCANCELDERIVATIVEORDERRESPONSE']._serialized_end=9814 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_start=9817 + _globals['_MSGCANCELBINARYOPTIONSORDER']._serialized_end=10074 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_start=10076 + _globals['_MSGCANCELBINARYOPTIONSORDERRESPONSE']._serialized_end=10113 + _globals['_ORDERDATA']._serialized_start=10116 + _globals['_ORDERDATA']._serialized_end=10273 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_start=10276 + _globals['_MSGBATCHCANCELDERIVATIVEORDERS']._serialized_end=10458 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_start=10460 + _globals['_MSGBATCHCANCELDERIVATIVEORDERSRESPONSE']._serialized_end=10536 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_start=10539 + _globals['_MSGSUBACCOUNTTRANSFER']._serialized_end=10801 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_start=10803 + _globals['_MSGSUBACCOUNTTRANSFERRESPONSE']._serialized_end=10834 + _globals['_MSGEXTERNALTRANSFER']._serialized_start=10837 + _globals['_MSGEXTERNALTRANSFER']._serialized_end=11095 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_start=11097 + _globals['_MSGEXTERNALTRANSFERRESPONSE']._serialized_end=11126 + _globals['_MSGLIQUIDATEPOSITION']._serialized_start=11129 + _globals['_MSGLIQUIDATEPOSITION']._serialized_end=11361 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_start=11363 + _globals['_MSGLIQUIDATEPOSITIONRESPONSE']._serialized_end=11393 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_start=11396 + _globals['_MSGEMERGENCYSETTLEMARKET']._serialized_end=11563 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_start=11565 + _globals['_MSGEMERGENCYSETTLEMARKETRESPONSE']._serialized_end=11599 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_start=11602 + _globals['_MSGINCREASEPOSITIONMARGIN']._serialized_end=11905 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_start=11907 + _globals['_MSGINCREASEPOSITIONMARGINRESPONSE']._serialized_end=11942 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_start=11945 + _globals['_MSGDECREASEPOSITIONMARGIN']._serialized_end=12248 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_start=12250 + _globals['_MSGDECREASEPOSITIONMARGINRESPONSE']._serialized_end=12285 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_start=12288 + _globals['_MSGPRIVILEGEDEXECUTECONTRACT']._serialized_end=12490 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_start=12493 + _globals['_MSGPRIVILEGEDEXECUTECONTRACTRESPONSE']._serialized_end=12660 + _globals['_MSGREWARDSOPTOUT']._serialized_start=12662 + _globals['_MSGREWARDSOPTOUT']._serialized_end=12755 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_start=12757 + _globals['_MSGREWARDSOPTOUTRESPONSE']._serialized_end=12783 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_start=12786 + _globals['_MSGRECLAIMLOCKEDFUNDS']._serialized_end=12961 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_start=12963 + _globals['_MSGRECLAIMLOCKEDFUNDSRESPONSE']._serialized_end=12994 + _globals['_MSGSIGNDATA']._serialized_start=12997 + _globals['_MSGSIGNDATA']._serialized_end=13125 + _globals['_MSGSIGNDOC']._serialized_start=13127 + _globals['_MSGSIGNDOC']._serialized_end=13247 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_start=13250 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKET']._serialized_end=13646 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_start=13648 + _globals['_MSGADMINUPDATEBINARYOPTIONSMARKETRESPONSE']._serialized_end=13691 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_start=13694 + _globals['_MSGAUTHORIZESTAKEGRANTS']._serialized_end=13865 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_start=13867 + _globals['_MSGAUTHORIZESTAKEGRANTSRESPONSE']._serialized_end=13900 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_start=13902 + _globals['_MSGACTIVATESTAKEGRANT']._serialized_end=14023 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_start=14025 + _globals['_MSGACTIVATESTAKEGRANTRESPONSE']._serialized_end=14056 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_start=14059 + _globals['_MSGBATCHEXCHANGEMODIFICATION']._serialized_end=14267 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_start=14269 + _globals['_MSGBATCHEXCHANGEMODIFICATIONRESPONSE']._serialized_end=14307 + _globals['_MSG']._serialized_start=14310 + _globals['_MSG']._serialized_end=19198 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/stream/v2/query_pb2.py b/pyinjective/proto/injective/stream/v2/query_pb2.py index 0c35f781..d83d0087 100644 --- a/pyinjective/proto/injective/stream/v2/query_pb2.py +++ b/pyinjective/proto/injective/stream/v2/query_pb2.py @@ -19,7 +19,7 @@ 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') +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\"\x8c\x07\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\x12\x1b\n\tgas_price\x18\r \x01(\tR\x08gasPrice\"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) @@ -81,52 +81,52 @@ _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['_ORDERUPDATESTATUS']._serialized_start=5334 + _globals['_ORDERUPDATESTATUS']._serialized_end=5410 _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 + _globals['_STREAMRESPONSE']._serialized_end=2119 + _globals['_ORDERBOOKUPDATE']._serialized_start=2121 + _globals['_ORDERBOOKUPDATE']._serialized_end=2218 + _globals['_ORDERBOOK']._serialized_start=2221 + _globals['_ORDERBOOK']._serialized_end=2385 + _globals['_BANKBALANCE']._serialized_start=2388 + _globals['_BANKBALANCE']._serialized_end=2532 + _globals['_SUBACCOUNTDEPOSITS']._serialized_start=2535 + _globals['_SUBACCOUNTDEPOSITS']._serialized_end=2666 + _globals['_SUBACCOUNTDEPOSIT']._serialized_start=2668 + _globals['_SUBACCOUNTDEPOSIT']._serialized_end=2773 + _globals['_SPOTORDERUPDATE']._serialized_start=2776 + _globals['_SPOTORDERUPDATE']._serialized_end=2960 + _globals['_SPOTORDER']._serialized_start=2962 + _globals['_SPOTORDER']._serialized_end=3069 + _globals['_DERIVATIVEORDERUPDATE']._serialized_start=3072 + _globals['_DERIVATIVEORDERUPDATE']._serialized_end=3268 + _globals['_DERIVATIVEORDER']._serialized_start=3271 + _globals['_DERIVATIVEORDER']._serialized_end=3419 + _globals['_POSITION']._serialized_start=3422 + _globals['_POSITION']._serialized_end=3813 + _globals['_ORACLEPRICE']._serialized_start=3815 + _globals['_ORACLEPRICE']._serialized_end=3931 + _globals['_SPOTTRADE']._serialized_start=3934 + _globals['_SPOTTRADE']._serialized_end=4385 + _globals['_DERIVATIVETRADE']._serialized_start=4388 + _globals['_DERIVATIVETRADE']._serialized_end=4859 + _globals['_TRADESFILTER']._serialized_start=4861 + _globals['_TRADESFILTER']._serialized_end=4945 + _globals['_POSITIONSFILTER']._serialized_start=4947 + _globals['_POSITIONSFILTER']._serialized_end=5034 + _globals['_ORDERSFILTER']._serialized_start=5036 + _globals['_ORDERSFILTER']._serialized_end=5120 + _globals['_ORDERBOOKFILTER']._serialized_start=5122 + _globals['_ORDERBOOKFILTER']._serialized_end=5170 + _globals['_BANKBALANCESFILTER']._serialized_start=5172 + _globals['_BANKBALANCESFILTER']._serialized_end=5220 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_start=5222 + _globals['_SUBACCOUNTDEPOSITSFILTER']._serialized_end=5287 + _globals['_ORACLEPRICEFILTER']._serialized_start=5289 + _globals['_ORACLEPRICEFILTER']._serialized_end=5332 + _globals['_STREAM']._serialized_start=5412 + _globals['_STREAM']._serialized_end=5507 # @@protoc_insertion_point(module_scope) 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 51f3135b..c8f184d1 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py @@ -1242,6 +1242,7 @@ async def test_fetch_derivative_markets( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", initial_margin_ratio="50000000000000000", maintenance_margin_ratio="20000000000000000", + reduce_margin_ratio="10000000000000000", maker_fee_rate="-0.0001", taker_fee_rate="0.001", relayer_fee_share_rate="400000000000000000", @@ -1307,6 +1308,7 @@ async def test_fetch_derivative_markets( "marketId": market.market_id, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "makerFeeRate": market.maker_fee_rate, "takerFeeRate": market.taker_fee_rate, "relayerFeeShareRate": market.relayer_fee_share_rate, @@ -1360,6 +1362,7 @@ async def test_fetch_derivative_market( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", initial_margin_ratio="50000000000000000", maintenance_margin_ratio="20000000000000000", + reduce_margin_ratio="10000000000000000", maker_fee_rate="-0.0001", taker_fee_rate="0.001", relayer_fee_share_rate="400000000000000000", @@ -1423,6 +1426,7 @@ async def test_fetch_derivative_market( "marketId": market.market_id, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "makerFeeRate": market.maker_fee_rate, "takerFeeRate": market.taker_fee_rate, "relayerFeeShareRate": market.relayer_fee_share_rate, 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 index c8cb7f97..c7e10286 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py @@ -62,6 +62,9 @@ async def test_fetch_exchange_params( margin_decrease_price_timestamp_threshold_seconds=10, exchange_admins=[admin], inj_auction_max_cap="1000000000000000000000", + fixed_gas_enabled=False, + emit_legacy_version_events=True, + default_reduce_margin_ratio="3", ) exchange_servicer.exchange_params.append(exchange_query_pb.QueryExchangeParamsResponse(params=params)) @@ -111,6 +114,9 @@ async def test_fetch_exchange_params( ), "exchangeAdmins": [admin], "injAuctionMaxCap": params.inj_auction_max_cap, + "fixedGasEnabled": params.fixed_gas_enabled, + "emitLegacyVersionEvents": params.emit_legacy_version_events, + "defaultReduceMarginRatio": params.default_reduce_margin_ratio, } } @@ -1242,6 +1248,7 @@ async def test_fetch_derivative_markets( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", initial_margin_ratio="50000000000000000", maintenance_margin_ratio="20000000000000000", + reduce_margin_ratio="30000000000000000", maker_fee_rate="-0.0001", taker_fee_rate="0.001", relayer_fee_share_rate="400000000000000000", @@ -1307,6 +1314,7 @@ async def test_fetch_derivative_markets( "marketId": market.market_id, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "makerFeeRate": market.maker_fee_rate, "takerFeeRate": market.taker_fee_rate, "relayerFeeShareRate": market.relayer_fee_share_rate, @@ -1360,6 +1368,7 @@ async def test_fetch_derivative_market( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", initial_margin_ratio="50000000000000000", maintenance_margin_ratio="20000000000000000", + reduce_margin_ratio="30000000000000000", maker_fee_rate="-0.0001", taker_fee_rate="0.001", relayer_fee_share_rate="400000000000000000", @@ -1423,6 +1432,7 @@ async def test_fetch_derivative_market( "marketId": market.market_id, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "makerFeeRate": market.maker_fee_rate, "takerFeeRate": market.taker_fee_rate, "relayerFeeShareRate": market.relayer_fee_share_rate, 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 53f9cd66..cc99c6dc 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 @@ -422,6 +422,7 @@ async def test_stream_v2( ): block_height = 19114391 block_time = 1701457189786 + gas_price = "1600000000" balance_coin = coin_pb.Coin( denom="inj", amount="6941221373191000000000", @@ -573,6 +574,7 @@ async def test_stream_v2( chain_stream_v2_pb.StreamResponse( block_height=block_height, block_time=block_time, + gas_price=gas_price, bank_balances=[bank_balance], subaccount_deposits=[subaccount_deposits], spot_trades=[spot_trade], @@ -611,6 +613,7 @@ async def test_stream_v2( expected_update = { "blockHeight": str(block_height), "blockTime": str(block_time), + "gasPrice": gas_price, "bankBalances": [ { "account": bank_balance.account, @@ -689,6 +692,7 @@ async def test_stream_v2( "orderType": "SELL_PO", "fillable": spot_limit_order.fillable, "triggerPrice": spot_limit_order.trigger_price, + "expirationBlock": "0", "orderHash": base64.b64encode(spot_limit_order.order_hash).decode(), }, }, @@ -713,6 +717,7 @@ async def test_stream_v2( "margin": derivative_limit_order.margin, "fillable": derivative_limit_order.fillable, "triggerPrice": derivative_limit_order.trigger_price, + "expirationBlock": "0", "orderHash": base64.b64encode(derivative_limit_order.order_hash).decode(), }, "isMarket": derivative_order.is_market, diff --git a/tests/client/indexer/configurable_derivative_query_servicer.py b/tests/client/indexer/configurable_derivative_query_servicer.py index 35b6d976..24c1aeb8 100644 --- a/tests/client/indexer/configurable_derivative_query_servicer.py +++ b/tests/client/indexer/configurable_derivative_query_servicer.py @@ -26,6 +26,7 @@ def __init__(self): self.subaccount_orders_list_responses = deque() self.subaccount_trades_list_responses = deque() self.orders_history_responses = deque() + self.open_interest_responses = deque() self.stream_market_responses = deque() self.stream_orderbook_v2_responses = deque() self.stream_orderbook_update_responses = deque() @@ -99,6 +100,9 @@ async def SubaccountTradesList( async def OrdersHistory(self, request: exchange_derivative_pb.OrdersHistoryRequest, context=None, metadata=None): return self.orders_history_responses.pop() + async def OpenInterest(self, request: exchange_derivative_pb.OpenInterestRequest, context=None, metadata=None): + return self.open_interest_responses.pop() + async def StreamMarket(self, request: exchange_derivative_pb.StreamMarketRequest, context=None, metadata=None): for event in self.stream_market_responses: yield event diff --git a/tests/client/indexer/configurable_oracle_query_servicer.py b/tests/client/indexer/configurable_oracle_query_servicer.py index c7c06820..56ea1116 100644 --- a/tests/client/indexer/configurable_oracle_query_servicer.py +++ b/tests/client/indexer/configurable_oracle_query_servicer.py @@ -11,6 +11,7 @@ def __init__(self): super().__init__() self.oracle_list_responses = deque() self.price_responses = deque() + self.price_v2_responses = deque() self.stream_prices_responses = deque() self.stream_prices_by_markets_responses = deque() @@ -20,6 +21,9 @@ async def OracleList(self, request: exchange_oracle_pb.OracleListRequest, contex async def Price(self, request: exchange_oracle_pb.PriceRequest, context=None, metadata=None): return self.price_responses.pop() + async def PriceV2(self, request: exchange_oracle_pb.PriceV2Request, context=None, metadata=None): + return self.price_v2_responses.pop() + async def StreamPrices(self, request: exchange_oracle_pb.StreamPricesRequest, context=None, metadata=None): for event in self.stream_prices_responses: yield event diff --git a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py index 654e9113..50d0c210 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py @@ -417,7 +417,8 @@ async def test_fetch_orderbook_v2( api = self._api_instance(servicer=derivative_servicer) result_orderbook = await api.fetch_orderbook_v2( - market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + depth=1, ) expected_orderbook = { "orderbook": { @@ -478,7 +479,7 @@ async def test_fetch_orderbooks_v2( api = self._api_instance(servicer=derivative_servicer) - result_orderbook = await api.fetch_orderbooks_v2(market_ids=[single_orderbook.market_id]) + result_orderbook = await api.fetch_orderbooks_v2(market_ids=[single_orderbook.market_id], depth=1) expected_orderbook = { "orderbooks": [ { @@ -1342,6 +1343,34 @@ async def test_fetch_trades_v2( assert result_trades == expected_trades + @pytest.mark.asyncio + async def test_fetch_open_interest( + self, + derivative_servicer, + ): + market_open_interest = exchange_derivative_pb.MarketOpenInterest( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + open_interest="1.2343567898", + ) + + derivative_servicer.open_interest_responses.append( + exchange_derivative_pb.OpenInterestResponse(open_interests=[market_open_interest]) + ) + + api = self._api_instance(servicer=derivative_servicer) + + result_trades = await api.fetch_open_interest(market_ids=[market_open_interest.market_id]) + expected_trades = { + "openInterests": [ + { + "marketId": market_open_interest.market_id, + "openInterest": market_open_interest.open_interest, + }, + ], + } + + assert result_trades == expected_trades + def _api_instance(self, servicer): network = Network.devnet() channel = grpc.aio.insecure_channel(network.grpc_endpoint) diff --git a/tests/client/indexer/grpc/test_indexer_grpc_oracle_api.py b/tests/client/indexer/grpc/test_indexer_grpc_oracle_api.py index 96ac10d7..824b3287 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_oracle_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_oracle_api.py @@ -74,6 +74,48 @@ async def test_fetch_oracle_price( assert result_oracle_list == expected_oracle_list + @pytest.mark.asyncio + async def test_fetch_oracle_price_v2( + self, + oracle_servicer, + ): + price_result = exchange_oracle_pb.PriceV2Result( + base_symbol="Gold", + quote_symbol="USDT", + oracle_type="pricefeed", + oracle_scale_factor=6, + price="10.56", + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + ) + + price_response = exchange_oracle_pb.PriceV2Response(prices=[price_result]) + + oracle_servicer.price_v2_responses.append(price_response) + + api = self._api_instance(servicer=oracle_servicer) + + filter = exchange_oracle_pb.PricePayloadV2( + base_symbol="Gold", + quote_symbol="USDT", + oracle_type="pricefeed", + oracle_scale_factor=6, + ) + result_oracle_list = await api.fetch_oracle_price_v2(filters=[filter]) + expected_oracle_list = { + "prices": [ + { + "baseSymbol": price_result.base_symbol, + "quoteSymbol": price_result.quote_symbol, + "oracleType": price_result.oracle_type, + "oracleScaleFactor": price_result.oracle_scale_factor, + "price": price_result.price, + "marketId": price_result.market_id, + } + ] + } + + assert result_oracle_list == expected_oracle_list + def _api_instance(self, servicer): network = Network.devnet() channel = grpc.aio.insecure_channel(network.grpc_endpoint) diff --git a/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py b/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py index fe891743..312c0937 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_spot_api.py @@ -214,7 +214,8 @@ async def test_fetch_orderbook_v2( api = self._api_instance(servicer=spot_servicer) result_orderbook = await api.fetch_orderbook_v2( - market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + depth=1, ) expected_orderbook = { "orderbook": { @@ -275,7 +276,7 @@ async def test_fetch_orderbooks_v2( api = self._api_instance(servicer=spot_servicer) - result_orderbook = await api.fetch_orderbooks_v2(market_ids=[single_orderbook.market_id]) + result_orderbook = await api.fetch_orderbooks_v2(market_ids=[single_orderbook.market_id], depth=1) expected_orderbook = { "orderbooks": [ { diff --git a/tests/core/tendermint/grpc/test_tendermint_grpc_api.py b/tests/core/tendermint/grpc/test_tendermint_grpc_api.py index cf61f18b..487a75be 100644 --- a/tests/core/tendermint/grpc/test_tendermint_grpc_api.py +++ b/tests/core/tendermint/grpc/test_tendermint_grpc_api.py @@ -6,10 +6,10 @@ from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import DisabledCookieAssistant, Network from pyinjective.core.tendermint.grpc.tendermint_grpc_api import TendermintGrpcApi +from pyinjective.proto.cometbft.p2p.v1 import types_pb2 as cometbft_p2p_types +from pyinjective.proto.cometbft.types.v1 import types_pb2 as cometbft_types from pyinjective.proto.cosmos.base.query.v1beta1 import pagination_pb2 as pagination_pb from pyinjective.proto.cosmos.base.tendermint.v1beta1 import query_pb2 as tendermint_query -from pyinjective.proto.tendermint.p2p import types_pb2 as tendermint_p2p_types -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_types from tests.core.tendermint.grpc.configurable_tendermint_query_servicer import ConfigurableTendermintQueryServicer @@ -24,16 +24,16 @@ async def test_fetch_node_info( self, tendermint_servicer, ): - protocol_version = tendermint_p2p_types.ProtocolVersion( + protocol_version = cometbft_p2p_types.ProtocolVersion( p2p=7, block=10, app=0, ) - other = tendermint_p2p_types.DefaultNodeInfoOther( + other = cometbft_p2p_types.DefaultNodeInfoOther( tx_index="on", rpc_address="tcp://0.0.0.0:26657", ) - node_info = tendermint_p2p_types.DefaultNodeInfo( + node_info = cometbft_p2p_types.DefaultNodeInfo( protocol_version=protocol_version, default_node_id="dda2a9ee6dc43955d0942be709a16a301f7ba318", listen_addr="tcp://0.0.0.0:26656", @@ -132,9 +132,9 @@ async def test_fetch_latest_block( self, tendermint_servicer, ): - block_id = tendermint_types.BlockID( + block_id = cometbft_types.BlockID( hash="bdc7f6e819864a8fd050dd4494dd560c1a1519fba3383dfabbec0ea271a34979".encode(), - part_set_header=tendermint_types.PartSetHeader( + part_set_header=cometbft_types.PartSetHeader( total=1, hash="859e00bfb56409cc182a308bd72d0816e24d57f18fe5f2c5748111daaeb19fbd".encode(), ), @@ -166,9 +166,9 @@ async def test_fetch_block_by_height( self, tendermint_servicer, ): - block_id = tendermint_types.BlockID( + block_id = cometbft_types.BlockID( hash="bdc7f6e819864a8fd050dd4494dd560c1a1519fba3383dfabbec0ea271a34979".encode(), - part_set_header=tendermint_types.PartSetHeader( + part_set_header=cometbft_types.PartSetHeader( total=1, hash="859e00bfb56409cc182a308bd72d0816e24d57f18fe5f2c5748111daaeb19fbd".encode(), ), diff --git a/tests/core/test_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py index 32d0cc95..114c7050 100644 --- a/tests/core/test_gas_heuristics_gas_limit_estimator.py +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -68,7 +68,7 @@ def test_estimation_for_message_without_applying_rule(self, basic_composer): def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -76,7 +76,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): quantity=Decimal("1"), order_type="BUY", ), - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -85,7 +85,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): order_type="BUY", ), ] - message = basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_spot_limit_orders_v2(sender="sender", orders=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT @@ -96,23 +96,23 @@ def test_estimation_for_batch_cancel_spot_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + 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(sender="sender", orders_data=orders) + message = composer.msg_batch_cancel_spot_orders_v2(sender="sender", orders_data=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT @@ -122,7 +122,7 @@ def test_estimation_for_batch_cancel_spot_orders(self): def test_estimation_for_batch_create_derivative_limit_orders(self, basic_composer): market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - basic_composer.derivative_order( + basic_composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -131,7 +131,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose margin=Decimal(3), order_type="BUY", ), - basic_composer.derivative_order( + basic_composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -141,7 +141,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose order_type="SELL", ), ] - message = basic_composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_derivative_limit_orders_v2(sender="sender", orders=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT @@ -152,23 +152,23 @@ def test_estimation_for_batch_cancel_derivative_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + 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(sender="sender", orders_data=orders) + message = composer.msg_batch_cancel_derivative_orders_v2(sender="sender", orders_data=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT @@ -178,7 +178,7 @@ def test_estimation_for_batch_cancel_derivative_orders(self): def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_composer): market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -186,7 +186,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co quantity=Decimal("1"), order_type="BUY", ), - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -195,7 +195,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co order_type="BUY", ), ] - message = basic_composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, @@ -211,7 +211,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, basic_composer): market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - basic_composer.derivative_order( + basic_composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -220,7 +220,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba margin=Decimal(3), order_type="BUY", ), - basic_composer.derivative_order( + basic_composer.create_derivative_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -230,7 +230,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba order_type="SELL", ), ] - message = basic_composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=orders, spot_orders_to_create=[], @@ -266,7 +266,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t ) composer.binary_option_markets[market.id] = market orders = [ - composer.binary_options_order( + composer.create_binary_options_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -275,7 +275,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( + composer.create_binary_options_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -285,7 +285,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 = composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -303,23 +303,23 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -336,23 +336,23 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -369,23 +369,23 @@ def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" composer = Composer(network="testnet") orders = [ - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + composer.create_order_data_without_mask_v2( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -403,7 +403,7 @@ 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( + message = composer.msg_batch_update_orders_v2( sender="senders", subaccount_id="subaccount_id", spot_market_ids_to_cancel_all=[market_id], @@ -424,7 +424,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market( market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") - message = composer.msg_batch_update_orders( + message = composer.msg_batch_update_orders_v2( sender="senders", subaccount_id="subaccount_id", derivative_market_ids_to_cancel_all=[market_id], @@ -446,7 +446,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") - message = composer.msg_batch_update_orders( + message = composer.msg_batch_update_orders_v2( sender="senders", subaccount_id="subaccount_id", binary_options_market_ids_to_cancel_all=[market_id], @@ -468,7 +468,7 @@ def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_s composer = basic_composer market_id = inj_usdt_spot_market.id - message = composer.msg_create_spot_limit_order( + message = composer.msg_create_spot_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -483,7 +483,7 @@ def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_s assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_spot_limit_order( + po_order_message = composer.msg_create_spot_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -537,7 +537,7 @@ def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_ composer = basic_composer market_id = btc_usdt_perp_market.id - message = composer.msg_create_derivative_limit_order( + message = composer.msg_create_derivative_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -553,7 +553,7 @@ def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_ assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_derivative_limit_order( + po_order_message = composer.msg_create_derivative_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -609,7 +609,7 @@ def test_estimation_for_create_binary_options_limit_order(self, basic_composer, composer = basic_composer market_id = first_match_bet_market.id - message = composer.msg_create_binary_options_limit_order( + message = composer.msg_create_binary_options_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -625,7 +625,7 @@ def test_estimation_for_create_binary_options_limit_order(self, basic_composer, assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_binary_options_limit_order( + po_order_message = composer.msg_create_binary_options_limit_order_v2( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -774,7 +774,7 @@ def test_estimation_for_decrease_position_margin(self, basic_composer, btc_usdt_ def test_estimation_for_exec_message(self, basic_composer): market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -783,7 +783,7 @@ def test_estimation_for_exec_message(self, basic_composer): order_type="BUY", ), ] - inner_message = basic_composer.msg_batch_update_orders( + inner_message = basic_composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index dbef0073..73e1a72f 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -498,7 +498,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar def test_estimation_for_exec_message(self, basic_composer): market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - basic_composer.spot_order( + basic_composer.create_spot_order_v2( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -507,7 +507,7 @@ def test_estimation_for_exec_message(self, basic_composer): order_type="BUY", ), ] - inner_message = basic_composer.msg_batch_update_orders( + inner_message = basic_composer.msg_batch_update_orders_v2( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py index e68dfbe0..ae90333b 100644 --- a/tests/test_async_client_deprecation_warnings.py +++ b/tests/test_async_client_deprecation_warnings.py @@ -984,26 +984,6 @@ async def test_fetch_l3_spot_orderbook_deprecation_warning( str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead" ) - @pytest.mark.asyncio - async def test_chain_stream_deprecation_warning( - self, - chain_stream_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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() - - 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" - ) - @pytest.mark.asyncio async def test_listen_derivative_positions_updates_deprecation(self): # Create a mock AsyncClient (you might need to adjust this based on your actual implementation) diff --git a/tests/test_composer.py b/tests/test_composer.py index da9f6a36..3e77e45c 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -349,6 +349,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): initial_margin_ratio = Decimal("0.05") maintenance_margin_ratio = Decimal("0.03") min_notional = Decimal("2") + reduce_margin_ratio = Decimal("3") 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}") @@ -356,6 +357,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): 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_reduce_margin_ratio = reduce_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") expected_min_notional = min_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") message = basic_composer.msg_instant_perpetual_market_launch_v2( @@ -370,6 +372,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): taker_fee_rate=taker_fee_rate, initial_margin_ratio=initial_margin_ratio, maintenance_margin_ratio=maintenance_margin_ratio, + reduce_margin_ratio=reduce_margin_ratio, min_price_tick_size=min_price_tick_size, min_quantity_tick_size=min_quantity_tick_size, min_notional=min_notional, @@ -387,6 +390,7 @@ def test_msg_instant_perpetual_market_launch(self, basic_composer): "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", "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}", @@ -412,6 +416,7 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): taker_fee_rate = Decimal("-0.002") initial_margin_ratio = Decimal("0.05") maintenance_margin_ratio = Decimal("0.03") + reduce_margin_ratio = Decimal("3") min_notional = Decimal("2") expected_min_price_tick_size = Token.convert_value_to_extended_decimal_format(value=min_price_tick_size) @@ -422,6 +427,7 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): expected_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( value=maintenance_margin_ratio ) + expected_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ratio) expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) message = basic_composer.msg_instant_expiry_futures_market_launch_v2( @@ -437,6 +443,7 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): taker_fee_rate=taker_fee_rate, initial_margin_ratio=initial_margin_ratio, maintenance_margin_ratio=maintenance_margin_ratio, + reduce_margin_ratio=reduce_margin_ratio, min_price_tick_size=min_price_tick_size, min_quantity_tick_size=min_quantity_tick_size, min_notional=min_notional, @@ -455,6 +462,7 @@ def test_msg_instant_expiry_futures_market_launch(self, basic_composer): "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", "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}", @@ -475,7 +483,7 @@ def test_spot_order(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, @@ -484,11 +492,12 @@ def test_spot_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=1234567, ) - 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) expected_order = { "marketId": spot_market.id, @@ -501,6 +510,7 @@ def test_spot_order(self, basic_composer): }, "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": "1234567", } dict_message = json_format.MessageToDict( message=order, @@ -519,7 +529,7 @@ def test_derivative_order(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, @@ -529,12 +539,13 @@ def test_derivative_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=1234567, ) - 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_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_order = { "marketId": derivative_market.id, @@ -548,6 +559,7 @@ def test_derivative_order(self, basic_composer): "orderType": order_type, "margin": f"{expected_margin.normalize():f}", "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": "1234567", } dict_message = json_format.MessageToDict( message=order, @@ -565,6 +577,7 @@ def test_msg_create_spot_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") + expiration_block = 123456789 message = basic_composer.msg_create_spot_limit_order_v2( market_id=spot_market.id, @@ -576,6 +589,7 @@ def test_msg_create_spot_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ) expected_price = Token.convert_value_to_extended_decimal_format(value=price) @@ -596,6 +610,7 @@ def test_msg_create_spot_limit_order(self, basic_composer): }, "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": str(expiration_block), }, } dict_message = json_format.MessageToDict( @@ -678,6 +693,7 @@ def test_msg_create_spot_market_order(self, basic_composer): }, "orderType": order_type, "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", }, } dict_message = json_format.MessageToDict( @@ -880,6 +896,7 @@ def test_msg_create_derivative_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") + expiration_block = 123456789 message = basic_composer.msg_create_derivative_limit_order_v2( market_id=derivative_market.id, @@ -892,6 +909,7 @@ def test_msg_create_derivative_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ) expected_message = { @@ -908,6 +926,7 @@ def test_msg_create_derivative_limit_order(self, basic_composer): "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": str(expiration_block), }, } dict_message = json_format.MessageToDict( @@ -993,6 +1012,7 @@ def test_msg_create_derivative_market_order(self, basic_composer): "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", }, } dict_message = json_format.MessageToDict( @@ -1141,6 +1161,7 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") + expiration_block = 123456789 message = basic_composer.msg_create_binary_options_limit_order_v2( market_id=market.id, @@ -1153,6 +1174,7 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, + expiration_block=expiration_block, ) expected_price = Token.convert_value_to_extended_decimal_format(value=price) @@ -1174,6 +1196,7 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): "margin": f"{expected_margin.normalize():f}", "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": str(expiration_block), }, } dict_message = json_format.MessageToDict( @@ -1221,6 +1244,7 @@ def test_msg_create_binary_options_market_order(self, basic_composer): "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", "orderType": order_type, "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", }, } dict_message = json_format.MessageToDict( @@ -1538,6 +1562,7 @@ def test_msg_update_derivative_market(self, basic_composer): min_notional = Decimal("5") initial_margin_ratio = Decimal("0.05") maintenance_margin_ratio = Decimal("0.009") + reduce_margin_ration = Decimal("3") 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) @@ -1546,6 +1571,7 @@ def test_msg_update_derivative_market(self, basic_composer): expected_maintenance_margin_ratio = Token.convert_value_to_extended_decimal_format( value=maintenance_margin_ratio ) + expected_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ration) message = basic_composer.msg_update_derivative_market_v2( admin=sender, @@ -1556,6 +1582,7 @@ def test_msg_update_derivative_market(self, basic_composer): new_min_notional=min_notional, new_initial_margin_ratio=initial_margin_ratio, new_maintenance_margin_ratio=maintenance_margin_ratio, + new_reduce_margin_ratio=reduce_margin_ration, ) expected_message = { @@ -1567,6 +1594,7 @@ def test_msg_update_derivative_market(self, basic_composer): "newMinNotional": f"{expected_min_notional.normalize():f}", "newInitialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", "newMaintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "newReduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", } dict_message = json_format.MessageToDict( message=message, diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index a0bee361..b9d90b53 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -645,32 +645,6 @@ def test_msg_instant_spot_market_launch_deprecation_warning(self, basic_composer == "This method is deprecated. Use msg_instant_spot_market_launch_v2 instead" ) - 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: basic_composer.msg_liquidate_position( @@ -685,33 +659,6 @@ def test_msg_liquidate_position_deprecation_warning(self, basic_composer): str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_liquidate_position_v2 instead" ) - 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.msg_create_spot_limit_order( From 8febafa88cacd8f46e9ff49028b2d0ea250df785 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 22 May 2025 16:05:05 -0300 Subject: [PATCH 19/35] chore: added unit tests for the GTB gas estimation using gas heuristics --- ...test_gas_heuristics_gas_limit_estimator.py | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/tests/core/test_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py index 114c7050..49858cb5 100644 --- a/tests/core/test_gas_heuristics_gas_limit_estimator.py +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -1,3 +1,4 @@ +import math from decimal import Decimal import pytest @@ -13,6 +14,7 @@ DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT, DERIVATIVE_ORDER_CREATION_GAS_LIMIT, EXTERNAL_TRANSFER_GAS_LIMIT, + GTB_ORDERS_GAS_MULTIPLIER, INCREASE_POSITION_MARGIN_TRANSFER_GAS_LIMIT, POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT, POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT, @@ -498,6 +500,44 @@ def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_s assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_gtb_spot_limit_order(self, basic_composer, inj_usdt_spot_market): + composer = basic_composer + market_id = inj_usdt_spot_market.id + + message = composer.msg_create_spot_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = math.ceil(Decimal(SPOT_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER)) + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_spot_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY_PO", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = math.ceil( + Decimal(POST_ONLY_SPOT_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER) + ) + + assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_spot_market_order(self, basic_composer, inj_usdt_spot_market): composer = basic_composer market_id = inj_usdt_spot_market.id @@ -569,6 +609,46 @@ def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_ assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_gtb_derivative_limit_order(self, basic_composer, btc_usdt_perp_market): + composer = basic_composer + market_id = btc_usdt_perp_market.id + + message = composer.msg_create_derivative_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + margin=Decimal("7.523") * Decimal("0.01"), + order_type="BUY", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = math.ceil(Decimal(DERIVATIVE_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER)) + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_derivative_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + margin=Decimal("7.523") * Decimal("0.01"), + order_type="BUY_PO", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = math.ceil( + Decimal(POST_ONLY_DERIVATIVE_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER) + ) + + assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_derivative_market_order(self, basic_composer, btc_usdt_perp_market): composer = basic_composer market_id = btc_usdt_perp_market.id @@ -641,6 +721,48 @@ def test_estimation_for_create_binary_options_limit_order(self, basic_composer, assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_gtb_binary_options_limit_order(self, basic_composer, first_match_bet_market): + composer = basic_composer + market_id = first_match_bet_market.id + + message = composer.msg_create_binary_options_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("0.5"), + quantity=Decimal("10"), + margin=Decimal("0.5") * Decimal("10"), + order_type="BUY", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) + + expected_gas_cost = math.ceil( + Decimal(BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER) + ) + + assert expected_gas_cost == estimator.gas_limit() + + po_order_message = composer.msg_create_binary_options_limit_order_v2( + market_id=market_id, + sender="senders", + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("0.5"), + quantity=Decimal("10"), + margin=Decimal("0.5") * Decimal("10"), + order_type="BUY_PO", + expiration_block=1234567, + ) + estimator = GasHeuristicsGasLimitEstimator.for_message(message=po_order_message) + + expected_gas_cost = math.ceil( + Decimal(POST_ONLY_BINARY_OPTIONS_ORDER_CREATION_GAS_LIMIT) * Decimal(GTB_ORDERS_GAS_MULTIPLIER) + ) + + assert expected_gas_cost == estimator.gas_limit() + def test_estimation_for_create_binary_options_market_order(self, basic_composer, first_match_bet_market): composer = basic_composer market_id = first_match_bet_market.id From de24ebd5ed866f610395417c3033e9663e4f6008 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 22 May 2025 16:16:06 -0300 Subject: [PATCH 20/35] fix: excluded deprecation unit test that freezed the Windows validation workflow CI --- tests/test_async_client_deprecation_warnings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py index ae90333b..10adaa79 100644 --- a/tests/test_async_client_deprecation_warnings.py +++ b/tests/test_async_client_deprecation_warnings.py @@ -984,6 +984,7 @@ async def test_fetch_l3_spot_orderbook_deprecation_warning( str(deprecation_warnings[0].message) == "This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead" ) + @pytest.mark.skip(reason="This test is failing in Windows CI") @pytest.mark.asyncio async def test_listen_derivative_positions_updates_deprecation(self): # Create a mock AsyncClient (you might need to adjust this based on your actual implementation) From cad5bf57fef66915a11d43dc14f69f35d881f7a5 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 28 May 2025 16:42:39 -0300 Subject: [PATCH 21/35] cp-396: Added support and examples for ERC20 and EVM modules' queries and messages --- CHANGELOG.md | 4 + Makefile | 2 +- buf.gen.yaml | 4 +- .../chain_client/erc20/1_CreateTokenPair.py | 64 ++++ .../chain_client/erc20/2_DeleteTokenPair.py | 62 ++++ .../erc20/query/1_AllTokenPairs.py | 33 ++ .../erc20/query/2_TokenPairByDenom.py | 33 ++ .../erc20/query/3_TokenPairByERC20Address.py | 34 ++ examples/chain_client/evm/query/1_Account.py | 34 ++ .../chain_client/evm/query/2_CosmosAccount.py | 34 ++ .../evm/query/3_ValidatorAccount.py | 34 ++ examples/chain_client/evm/query/4_Balance.py | 34 ++ examples/chain_client/evm/query/5_Storage.py | 35 +++ examples/chain_client/evm/query/6_Code.py | 34 ++ examples/chain_client/evm/query/7_BaseFee.py | 33 ++ .../exchange/28_MsgCreateGTBSpotLimitOrder.py | 2 +- .../29_MsgCreateGTBDerivativeLimitOrder.py | 2 +- pyinjective/async_client.py | 48 +++ .../client/chain/grpc/chain_grpc_erc20_api.py | 40 +++ .../client/chain/grpc/chain_grpc_evm_api.py | 64 ++++ pyinjective/composer.py | 22 ++ .../injective_derivative_exchange_rpc_pb2.py | 296 +++++++++--------- pyproject.toml | 2 +- .../grpc/configurable_erc20_query_servicer.py | 26 ++ .../grpc/configurable_evm_query_servicer.py | 40 +++ .../chain/grpc/test_chain_grpc_erc20_api.py | 116 +++++++ .../chain/grpc/test_chain_grpc_evm_api.py | 250 +++++++++++++++ .../grpc/test_indexer_grpc_derivative_api.py | 8 + .../test_indexer_grpc_derivative_stream.py | 4 + tests/test_composer.py | 38 +++ 30 files changed, 1278 insertions(+), 154 deletions(-) create mode 100644 examples/chain_client/erc20/1_CreateTokenPair.py create mode 100644 examples/chain_client/erc20/2_DeleteTokenPair.py create mode 100644 examples/chain_client/erc20/query/1_AllTokenPairs.py create mode 100644 examples/chain_client/erc20/query/2_TokenPairByDenom.py create mode 100644 examples/chain_client/erc20/query/3_TokenPairByERC20Address.py create mode 100644 examples/chain_client/evm/query/1_Account.py create mode 100644 examples/chain_client/evm/query/2_CosmosAccount.py create mode 100644 examples/chain_client/evm/query/3_ValidatorAccount.py create mode 100644 examples/chain_client/evm/query/4_Balance.py create mode 100644 examples/chain_client/evm/query/5_Storage.py create mode 100644 examples/chain_client/evm/query/6_Code.py create mode 100644 examples/chain_client/evm/query/7_BaseFee.py create mode 100644 pyinjective/client/chain/grpc/chain_grpc_erc20_api.py create mode 100644 pyinjective/client/chain/grpc/chain_grpc_evm_api.py create mode 100644 tests/client/chain/grpc/configurable_erc20_query_servicer.py create mode 100644 tests/client/chain/grpc/configurable_evm_query_servicer.py create mode 100644 tests/client/chain/grpc/test_chain_grpc_erc20_api.py create mode 100644 tests/client/chain/grpc/test_chain_grpc_evm_api.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 76827022..bc5d1cad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file. ## [Unreleased] - 9999-99-99 ### Added - Added support for Exchange V2 proto queries and types +- Added support for ERC20 proto queries and types +- Added support for EVM proto queries and types - Updated all chain exchange module examples to use the new Exchange V2 proto queries and types +- Added examples for ERC20 queries and messages +- Added examples for EVM queries ### Removed - Removed all methods marked as deprecated in AsyncClient and Composer diff --git a/Makefile b/Makefile index 0d132f07..e9662922 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.0-rc2 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.3 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/buf.gen.yaml b/buf.gen.yaml index 9cac4537..23479b6c 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -16,9 +16,9 @@ inputs: - git_repo: https://github.com/InjectiveLabs/wasmd tag: v0.53.2-evm-comet1-inj - git_repo: https://github.com/InjectiveLabs/cometbft - tag: v1.0.1-inj + tag: v1.0.1-inj.2 - git_repo: https://github.com/InjectiveLabs/cosmos-sdk - tag: v0.50.13-evm-comet1-inj.2 + tag: v0.50.13-evm-comet1-inj.3 # - git_repo: https://github.com/InjectiveLabs/wasmd # branch: v0.51.x-inj # subdir: proto diff --git a/examples/chain_client/erc20/1_CreateTokenPair.py b/examples/chain_client/erc20/1_CreateTokenPair.py new file mode 100644 index 00000000..f08ca792 --- /dev/null +++ b/examples/chain_client/erc20/1_CreateTokenPair.py @@ -0,0 +1,64 @@ +import asyncio +import json +import os + +import dotenv + +from pyinjective.async_client import AsyncClient +from pyinjective.core.broadcaster import MsgBroadcasterWithPk +from pyinjective.core.network import Network +from pyinjective.wallet import PrivateKey + + +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) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + usdt_denom = "factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt" + usdt_erc20 = "0xdAC17F958D2ee523a2206206994597C13D831ec7" + + # prepare tx msg + msg = composer.msg_create_token_pair( + sender=address.to_acc_bech32(), + bank_denom=usdt_denom, + erc20_address=usdt_erc20, + ) + + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/erc20/2_DeleteTokenPair.py b/examples/chain_client/erc20/2_DeleteTokenPair.py new file mode 100644 index 00000000..4cb508e4 --- /dev/null +++ b/examples/chain_client/erc20/2_DeleteTokenPair.py @@ -0,0 +1,62 @@ +import asyncio +import json +import os + +import dotenv + +from pyinjective.async_client import AsyncClient +from pyinjective.core.broadcaster import MsgBroadcasterWithPk +from pyinjective.core.network import Network +from pyinjective.wallet import PrivateKey + + +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) + composer = await client.composer() + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=configured_private_key, + gas_price=gas_price, + client=client, + composer=composer, + ) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + usdt_denom = "factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt" + + # prepare tx msg + msg = composer.msg_delete_token_pair( + sender=address.to_acc_bech32(), + bank_denom=usdt_denom, + ) + + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + message_broadcaster.update_gas_price(gas_price=gas_price) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/erc20/query/1_AllTokenPairs.py b/examples/chain_client/erc20/query/1_AllTokenPairs.py new file mode 100644 index 00000000..07c7a359 --- /dev/null +++ b/examples/chain_client/erc20/query/1_AllTokenPairs.py @@ -0,0 +1,33 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + pairs = await client.fetch_erc20_all_token_pairs() + print(json.dumps(pairs, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/erc20/query/2_TokenPairByDenom.py b/examples/chain_client/erc20/query/2_TokenPairByDenom.py new file mode 100644 index 00000000..cc748c51 --- /dev/null +++ b/examples/chain_client/erc20/query/2_TokenPairByDenom.py @@ -0,0 +1,33 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + result = await client.fetch_erc20_token_pair_by_denom(bank_denom="usdt") + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py b/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py new file mode 100644 index 00000000..15f40394 --- /dev/null +++ b/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + erc20_address = "0xdAC17F958D2ee523a2206206994597C13D831ec7" + result = await client.fetch_erc20_token_pair_by_erc20_address(erc20_address=erc20_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/1_Account.py b/examples/chain_client/evm/query/1_Account.py new file mode 100644 index 00000000..1932b003 --- /dev/null +++ b/examples/chain_client/evm/query/1_Account.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + erc20_address = "0xDFd5293D8e347dFe59E90eFd55b2956a1343963d" + result = await client.fetch_evm_account(address=erc20_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/2_CosmosAccount.py b/examples/chain_client/evm/query/2_CosmosAccount.py new file mode 100644 index 00000000..767dce73 --- /dev/null +++ b/examples/chain_client/evm/query/2_CosmosAccount.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + erc20_address = "0xDFd5293D8e347dFe59E90eFd55b2956a1343963d" + result = await client.fetch_evm_cosmos_account(address=erc20_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/3_ValidatorAccount.py b/examples/chain_client/evm/query/3_ValidatorAccount.py new file mode 100644 index 00000000..f89f2c20 --- /dev/null +++ b/examples/chain_client/evm/query/3_ValidatorAccount.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + cons_address = "injvalcons1h5u937etuat5hnr2s34yaaalfpkkscl5ndadqm" + result = await client.fetch_evm_validator_account(cons_address=cons_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/4_Balance.py b/examples/chain_client/evm/query/4_Balance.py new file mode 100644 index 00000000..f26131e2 --- /dev/null +++ b/examples/chain_client/evm/query/4_Balance.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + erc20_address = "0xDFd5293D8e347dFe59E90eFd55b2956a1343963d" + result = await client.fetch_evm_balance(address=erc20_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/5_Storage.py b/examples/chain_client/evm/query/5_Storage.py new file mode 100644 index 00000000..b4d54e4d --- /dev/null +++ b/examples/chain_client/evm/query/5_Storage.py @@ -0,0 +1,35 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + erc20_address = "0xDFd5293D8e347dFe59E90eFd55b2956a1343963d" + key = "key" + result = await client.fetch_evm_storage(address=erc20_address, key=key) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/6_Code.py b/examples/chain_client/evm/query/6_Code.py new file mode 100644 index 00000000..5b79d873 --- /dev/null +++ b/examples/chain_client/evm/query/6_Code.py @@ -0,0 +1,34 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + evm_address = "0xDFd5293D8e347dFe59E90eFd55b2956a1343963d" + result = await client.fetch_evm_code(address=evm_address) + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/evm/query/7_BaseFee.py b/examples/chain_client/evm/query/7_BaseFee.py new file mode 100644 index 00000000..339251c9 --- /dev/null +++ b/examples/chain_client/evm/query/7_BaseFee.py @@ -0,0 +1,33 @@ +import asyncio +import json +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) + + # load account + priv_key = PrivateKey.from_hex(configured_private_key) + pub_key = priv_key.to_public_key() + address = pub_key.to_address() + await client.fetch_account(address.to_acc_bech32()) + + result = await client.fetch_evm_base_fee() + print(json.dumps(result, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py index a35a10d9..bfb6507b 100644 --- a/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py +++ b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py @@ -27,7 +27,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py index 05e54ecb..03b14924 100644 --- a/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py @@ -27,7 +27,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_using_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 566bd069..b9136886 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -10,6 +10,8 @@ from pyinjective.client.chain.grpc.chain_grpc_authz_api import ChainGrpcAuthZApi 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_erc20_api import ChainGrpcERC20Api +from pyinjective.client.chain.grpc.chain_grpc_evm_api import ChainGrpcEVMApi 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 @@ -124,6 +126,14 @@ def __init__( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, ) + self.chain_erc20_api = ChainGrpcERC20Api( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.chain_evm_api = ChainGrpcEVMApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) self.chain_exchange_api = ChainGrpcExchangeApi( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, @@ -2994,6 +3004,44 @@ async def fetch_eip_base_fee(self) -> Dict[str, Any]: # endregion + # ------------------------- + # region Chain ERC20 module + async def fetch_erc20_all_token_pairs(self) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_all_token_pairs() + + async def fetch_erc20_token_pair_by_denom(self, bank_denom: str) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_token_pair_by_denom(bank_denom=bank_denom) + + async def fetch_erc20_token_pair_by_erc20_address(self, erc20_address: str) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_token_pair_by_erc20_address(erc20_address=erc20_address) + + # endregion + + # ------------------------- + # region Chain EVM module + async def fetch_evm_account(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_account(address=address) + + async def fetch_evm_cosmos_account(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_cosmos_account(address=address) + + async def fetch_evm_validator_account(self, cons_address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_validator_account(cons_address=cons_address) + + async def fetch_evm_balance(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_balance(address=address) + + async def fetch_evm_storage(self, address: str, key: Optional[str] = None) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_storage(address=address, key=key) + + async def fetch_evm_code(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_code(address=address) + + async def fetch_evm_base_fee(self) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_base_fee() + + # endregion + async def composer(self): return Composer( network=self.network.string(), diff --git a/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py new file mode 100644 index 00000000..f4254bab --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py @@ -0,0 +1,40 @@ +from typing import Any, Callable, Dict + +from grpc.aio import Channel + +from pyinjective.core.network import CookieAssistant +from pyinjective.proto.injective.erc20.v1beta1 import query_pb2 as erc20_query_pb, query_pb2_grpc as erc20_query_grpc +from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant + + +class ChainGrpcERC20Api: + def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): + self._stub = erc20_query_grpc.QueryStub(channel) + self._assistant = GrpcApiRequestAssistant(cookie_assistant=cookie_assistant) + + async def fetch_erc20_params(self) -> Dict[str, Any]: + request = erc20_query_pb.QueryParamsRequest() + response = await self._execute_call(call=self._stub.Params, request=request) + + return response + + async def fetch_all_token_pairs(self) -> Dict[str, Any]: + request = erc20_query_pb.QueryAllTokenPairsRequest() + response = await self._execute_call(call=self._stub.AllTokenPairs, request=request) + + return response + + async def fetch_token_pair_by_denom(self, bank_denom: str) -> Dict[str, Any]: + request = erc20_query_pb.QueryTokenPairByDenomRequest(bank_denom=bank_denom) + response = await self._execute_call(call=self._stub.TokenPairByDenom, request=request) + + return response + + async def fetch_token_pair_by_erc20_address(self, erc20_address: str) -> Dict[str, Any]: + request = erc20_query_pb.QueryTokenPairByERC20AddressRequest(erc20_address=erc20_address) + response = await self._execute_call(call=self._stub.TokenPairByERC20Address, 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_evm_api.py b/pyinjective/client/chain/grpc/chain_grpc_evm_api.py new file mode 100644 index 00000000..2eba4bc6 --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_evm_api.py @@ -0,0 +1,64 @@ +from typing import Any, Callable, Dict, Optional + +from grpc.aio import Channel + +from pyinjective.core.network import CookieAssistant +from pyinjective.proto.injective.evm.v1 import query_pb2 as evm_query_pb, query_pb2_grpc as evm_query_grpc +from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant + + +class ChainGrpcEVMApi: + def __init__(self, channel: Channel, cookie_assistant: CookieAssistant): + self._stub = evm_query_grpc.QueryStub(channel) + self._assistant = GrpcApiRequestAssistant(cookie_assistant=cookie_assistant) + + async def fetch_params(self) -> Dict[str, Any]: + request = evm_query_pb.QueryParamsRequest() + response = await self._execute_call(call=self._stub.Params, request=request) + + return response + + async def fetch_account(self, address: str) -> Dict[str, Any]: + request = evm_query_pb.QueryAccountRequest(address=address) + response = await self._execute_call(call=self._stub.Account, request=request) + + return response + + async def fetch_cosmos_account(self, address: str) -> Dict[str, Any]: + request = evm_query_pb.QueryCosmosAccountRequest(address=address) + response = await self._execute_call(call=self._stub.CosmosAccount, request=request) + + return response + + async def fetch_validator_account(self, cons_address: str) -> Dict[str, Any]: + request = evm_query_pb.QueryValidatorAccountRequest(cons_address=cons_address) + response = await self._execute_call(call=self._stub.ValidatorAccount, request=request) + + return response + + async def fetch_balance(self, address: str) -> Dict[str, Any]: + request = evm_query_pb.QueryBalanceRequest(address=address) + response = await self._execute_call(call=self._stub.Balance, request=request) + + return response + + async def fetch_storage(self, address: str, key: Optional[str] = None) -> Dict[str, Any]: + request = evm_query_pb.QueryStorageRequest(address=address, key=key) + response = await self._execute_call(call=self._stub.Storage, request=request) + + return response + + async def fetch_code(self, address: str) -> Dict[str, Any]: + request = evm_query_pb.QueryCodeRequest(address=address) + response = await self._execute_call(call=self._stub.Code, request=request) + + return response + + async def fetch_base_fee(self) -> Dict[str, Any]: + request = evm_query_pb.QueryBaseFeeRequest() + response = await self._execute_call(call=self._stub.BaseFee, 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/composer.py b/pyinjective/composer.py index ee45155b..360ceb46 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -25,6 +25,7 @@ from pyinjective.proto.ibc.applications.transfer.v1 import tx_pb2 as ibc_transfer_tx_pb from pyinjective.proto.ibc.core.client.v1 import client_pb2 as ibc_core_client_pb from pyinjective.proto.injective.auction.v1beta1 import tx_pb2 as injective_auction_tx_pb +from pyinjective.proto.injective.erc20.v1beta1 import erc20_pb2 as injective_erc20_pb2, tx_pb2 as injective_erc20_tx_pb from pyinjective.proto.injective.exchange.v1beta1 import ( authz_pb2 as injective_authz_pb, exchange_pb2 as injective_exchange_pb, @@ -2930,6 +2931,27 @@ def msg_claim_voucher( # endregion + # region ERC20 module + def msg_create_token_pair( + self, sender: str, bank_denom: str, erc20_address: str + ) -> injective_erc20_tx_pb.MsgCreateTokenPair: + token_pair = injective_erc20_pb2.TokenPair( + bank_denom=bank_denom, + erc20_address=erc20_address, + ) + return injective_erc20_tx_pb.MsgCreateTokenPair( + sender=sender, + token_pair=token_pair, + ) + + def msg_delete_token_pair(self, sender: str, bank_denom: str) -> injective_erc20_tx_pb.MsgDeleteTokenPair: + return injective_erc20_tx_pb.MsgDeleteTokenPair( + sender=sender, + bank_denom=bank_denom, + ) + + # endregion + # data field format: [request-msg-header][raw-byte-msg-response] # you need to figure out this magic prefix number to trim request-msg-header off the data # this method handles only exchange responses diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py index 5ef32625..62508ffc 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\xec\x08\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\x99\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"5\n\x13OpenInterestRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"t\n\x14OpenInterestResponse\x12\\\n\x0eopen_interests\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.MarketOpenInterestR\ropenInterests\"V\n\x12MarketOpenInterest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\ropen_interest\x18\x02 \x01(\tR\x0copenInterest2\xd8\x1c\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x7f\n\x0cOpenInterest\x12\x36.injective_derivative_exchange_rpc.OpenInterestRequest\x1a\x37.injective_derivative_exchange_rpc.OpenInterestResponseB\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\x9c\t\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\x12.\n\x13reduce_margin_ratio\x18\x16 \x01(\tR\x11reduceMarginRatio\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\xc5\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\x12*\n\x11last_funding_rate\x18\x04 \x01(\tR\x0flastFundingRate\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"5\n\x13OpenInterestRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"t\n\x14OpenInterestResponse\x12\\\n\x0eopen_interests\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.MarketOpenInterestR\ropenInterests\"V\n\x12MarketOpenInterest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\ropen_interest\x18\x02 \x01(\tR\x0copenInterest2\xd8\x1c\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x7f\n\x0cOpenInterest\x12\x36.injective_derivative_exchange_rpc.OpenInterestRequest\x1a\x37.injective_derivative_exchange_rpc.OpenInterestResponseB\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,151 +27,151 @@ _globals['_MARKETSRESPONSE']._serialized_start=216 _globals['_MARKETSRESPONSE']._serialized_end=316 _globals['_DERIVATIVEMARKETINFO']._serialized_start=319 - _globals['_DERIVATIVEMARKETINFO']._serialized_end=1451 - _globals['_TOKENMETA']._serialized_start=1454 - _globals['_TOKENMETA']._serialized_end=1614 - _globals['_PERPETUALMARKETINFO']._serialized_start=1617 - _globals['_PERPETUALMARKETINFO']._serialized_end=1840 - _globals['_PERPETUALMARKETFUNDING']._serialized_start=1843 - _globals['_PERPETUALMARKETFUNDING']._serialized_end=1996 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=1998 - _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=2117 - _globals['_MARKETREQUEST']._serialized_start=2119 - _globals['_MARKETREQUEST']._serialized_end=2163 - _globals['_MARKETRESPONSE']._serialized_start=2165 - _globals['_MARKETRESPONSE']._serialized_end=2262 - _globals['_STREAMMARKETREQUEST']._serialized_start=2264 - _globals['_STREAMMARKETREQUEST']._serialized_end=2316 - _globals['_STREAMMARKETRESPONSE']._serialized_start=2319 - _globals['_STREAMMARKETRESPONSE']._serialized_end=2491 - _globals['_BINARYOPTIONSMARKETSREQUEST']._serialized_start=2494 - _globals['_BINARYOPTIONSMARKETSREQUEST']._serialized_end=2635 - _globals['_BINARYOPTIONSMARKETSRESPONSE']._serialized_start=2638 - _globals['_BINARYOPTIONSMARKETSRESPONSE']._serialized_end=2821 - _globals['_BINARYOPTIONSMARKETINFO']._serialized_start=2824 - _globals['_BINARYOPTIONSMARKETINFO']._serialized_end=3625 - _globals['_PAGING']._serialized_start=3628 - _globals['_PAGING']._serialized_end=3762 - _globals['_BINARYOPTIONSMARKETREQUEST']._serialized_start=3764 - _globals['_BINARYOPTIONSMARKETREQUEST']._serialized_end=3821 - _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_start=3823 - _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_end=3936 - _globals['_ORDERBOOKV2REQUEST']._serialized_start=3938 - _globals['_ORDERBOOKV2REQUEST']._serialized_end=4009 - _globals['_ORDERBOOKV2RESPONSE']._serialized_start=4011 - _globals['_ORDERBOOKV2RESPONSE']._serialized_end=4125 - _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_start=4128 - _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_end=4350 - _globals['_PRICELEVEL']._serialized_start=4352 - _globals['_PRICELEVEL']._serialized_end=4444 - _globals['_ORDERBOOKSV2REQUEST']._serialized_start=4446 - _globals['_ORDERBOOKSV2REQUEST']._serialized_end=4520 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=4522 - _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=4645 - _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_start=4648 - _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_end=4804 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=4806 - _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=4863 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=4866 - _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=5084 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=5086 - _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=5147 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=5150 - _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=5393 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=5396 - _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=5655 - _globals['_PRICELEVELUPDATE']._serialized_start=5657 - _globals['_PRICELEVELUPDATE']._serialized_end=5784 - _globals['_ORDERSREQUEST']._serialized_start=5787 - _globals['_ORDERSREQUEST']._serialized_end=6244 - _globals['_ORDERSRESPONSE']._serialized_start=6247 - _globals['_ORDERSRESPONSE']._serialized_end=6411 - _globals['_DERIVATIVELIMITORDER']._serialized_start=6414 - _globals['_DERIVATIVELIMITORDER']._serialized_end=7141 - _globals['_POSITIONSREQUEST']._serialized_start=7144 - _globals['_POSITIONSREQUEST']._serialized_end=7492 - _globals['_POSITIONSRESPONSE']._serialized_start=7495 - _globals['_POSITIONSRESPONSE']._serialized_end=7666 - _globals['_DERIVATIVEPOSITION']._serialized_start=7669 - _globals['_DERIVATIVEPOSITION']._serialized_end=8101 - _globals['_POSITIONSV2REQUEST']._serialized_start=8104 - _globals['_POSITIONSV2REQUEST']._serialized_end=8454 - _globals['_POSITIONSV2RESPONSE']._serialized_start=8457 - _globals['_POSITIONSV2RESPONSE']._serialized_end=8632 - _globals['_DERIVATIVEPOSITIONV2']._serialized_start=8635 - _globals['_DERIVATIVEPOSITIONV2']._serialized_end=8991 - _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_start=8993 - _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_end=9092 - _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_start=9094 - _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_end=9208 - _globals['_FUNDINGPAYMENTSREQUEST']._serialized_start=9211 - _globals['_FUNDINGPAYMENTSREQUEST']._serialized_end=9401 - _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_start=9404 - _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_end=9575 - _globals['_FUNDINGPAYMENT']._serialized_start=9578 - _globals['_FUNDINGPAYMENT']._serialized_end=9714 - _globals['_FUNDINGRATESREQUEST']._serialized_start=9716 - _globals['_FUNDINGRATESREQUEST']._serialized_end=9835 - _globals['_FUNDINGRATESRESPONSE']._serialized_start=9838 - _globals['_FUNDINGRATESRESPONSE']._serialized_end=10012 - _globals['_FUNDINGRATE']._serialized_start=10014 - _globals['_FUNDINGRATE']._serialized_end=10106 - _globals['_STREAMPOSITIONSREQUEST']._serialized_start=10109 - _globals['_STREAMPOSITIONSREQUEST']._serialized_end=10310 - _globals['_STREAMPOSITIONSRESPONSE']._serialized_start=10313 - _globals['_STREAMPOSITIONSRESPONSE']._serialized_end=10451 - _globals['_STREAMPOSITIONSV2REQUEST']._serialized_start=10454 - _globals['_STREAMPOSITIONSV2REQUEST']._serialized_end=10657 - _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_start=10660 - _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_end=10802 - _globals['_STREAMORDERSREQUEST']._serialized_start=10805 - _globals['_STREAMORDERSREQUEST']._serialized_end=11268 - _globals['_STREAMORDERSRESPONSE']._serialized_start=11271 - _globals['_STREAMORDERSRESPONSE']._serialized_end=11441 - _globals['_TRADESREQUEST']._serialized_start=11444 - _globals['_TRADESREQUEST']._serialized_end=11928 - _globals['_TRADESRESPONSE']._serialized_start=11931 - _globals['_TRADESRESPONSE']._serialized_end=12090 - _globals['_DERIVATIVETRADE']._serialized_start=12093 - _globals['_DERIVATIVETRADE']._serialized_end=12581 - _globals['_POSITIONDELTA']._serialized_start=12584 - _globals['_POSITIONDELTA']._serialized_end=12771 - _globals['_TRADESV2REQUEST']._serialized_start=12774 - _globals['_TRADESV2REQUEST']._serialized_end=13260 - _globals['_TRADESV2RESPONSE']._serialized_start=13263 - _globals['_TRADESV2RESPONSE']._serialized_end=13424 - _globals['_STREAMTRADESREQUEST']._serialized_start=13427 - _globals['_STREAMTRADESREQUEST']._serialized_end=13917 - _globals['_STREAMTRADESRESPONSE']._serialized_start=13920 - _globals['_STREAMTRADESRESPONSE']._serialized_end=14085 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=14088 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=14580 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14583 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14750 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14753 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14890 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14893 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15071 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15074 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15280 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15282 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15388 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=15391 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=15899 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15902 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16075 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16078 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16759 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16762 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=16982 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=16985 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17164 - _globals['_OPENINTERESTREQUEST']._serialized_start=17166 - _globals['_OPENINTERESTREQUEST']._serialized_end=17219 - _globals['_OPENINTERESTRESPONSE']._serialized_start=17221 - _globals['_OPENINTERESTRESPONSE']._serialized_end=17337 - _globals['_MARKETOPENINTEREST']._serialized_start=17339 - _globals['_MARKETOPENINTEREST']._serialized_end=17425 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17428 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=21100 + _globals['_DERIVATIVEMARKETINFO']._serialized_end=1499 + _globals['_TOKENMETA']._serialized_start=1502 + _globals['_TOKENMETA']._serialized_end=1662 + _globals['_PERPETUALMARKETINFO']._serialized_start=1665 + _globals['_PERPETUALMARKETINFO']._serialized_end=1888 + _globals['_PERPETUALMARKETFUNDING']._serialized_start=1891 + _globals['_PERPETUALMARKETFUNDING']._serialized_end=2088 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_start=2090 + _globals['_EXPIRYFUTURESMARKETINFO']._serialized_end=2209 + _globals['_MARKETREQUEST']._serialized_start=2211 + _globals['_MARKETREQUEST']._serialized_end=2255 + _globals['_MARKETRESPONSE']._serialized_start=2257 + _globals['_MARKETRESPONSE']._serialized_end=2354 + _globals['_STREAMMARKETREQUEST']._serialized_start=2356 + _globals['_STREAMMARKETREQUEST']._serialized_end=2408 + _globals['_STREAMMARKETRESPONSE']._serialized_start=2411 + _globals['_STREAMMARKETRESPONSE']._serialized_end=2583 + _globals['_BINARYOPTIONSMARKETSREQUEST']._serialized_start=2586 + _globals['_BINARYOPTIONSMARKETSREQUEST']._serialized_end=2727 + _globals['_BINARYOPTIONSMARKETSRESPONSE']._serialized_start=2730 + _globals['_BINARYOPTIONSMARKETSRESPONSE']._serialized_end=2913 + _globals['_BINARYOPTIONSMARKETINFO']._serialized_start=2916 + _globals['_BINARYOPTIONSMARKETINFO']._serialized_end=3717 + _globals['_PAGING']._serialized_start=3720 + _globals['_PAGING']._serialized_end=3854 + _globals['_BINARYOPTIONSMARKETREQUEST']._serialized_start=3856 + _globals['_BINARYOPTIONSMARKETREQUEST']._serialized_end=3913 + _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_start=3915 + _globals['_BINARYOPTIONSMARKETRESPONSE']._serialized_end=4028 + _globals['_ORDERBOOKV2REQUEST']._serialized_start=4030 + _globals['_ORDERBOOKV2REQUEST']._serialized_end=4101 + _globals['_ORDERBOOKV2RESPONSE']._serialized_start=4103 + _globals['_ORDERBOOKV2RESPONSE']._serialized_end=4217 + _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_start=4220 + _globals['_DERIVATIVELIMITORDERBOOKV2']._serialized_end=4442 + _globals['_PRICELEVEL']._serialized_start=4444 + _globals['_PRICELEVEL']._serialized_end=4536 + _globals['_ORDERBOOKSV2REQUEST']._serialized_start=4538 + _globals['_ORDERBOOKSV2REQUEST']._serialized_end=4612 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_start=4614 + _globals['_ORDERBOOKSV2RESPONSE']._serialized_end=4737 + _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_start=4740 + _globals['_SINGLEDERIVATIVELIMITORDERBOOKV2']._serialized_end=4896 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_start=4898 + _globals['_STREAMORDERBOOKV2REQUEST']._serialized_end=4955 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_start=4958 + _globals['_STREAMORDERBOOKV2RESPONSE']._serialized_end=5176 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_start=5178 + _globals['_STREAMORDERBOOKUPDATEREQUEST']._serialized_end=5239 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_start=5242 + _globals['_STREAMORDERBOOKUPDATERESPONSE']._serialized_end=5485 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_start=5488 + _globals['_ORDERBOOKLEVELUPDATES']._serialized_end=5747 + _globals['_PRICELEVELUPDATE']._serialized_start=5749 + _globals['_PRICELEVELUPDATE']._serialized_end=5876 + _globals['_ORDERSREQUEST']._serialized_start=5879 + _globals['_ORDERSREQUEST']._serialized_end=6336 + _globals['_ORDERSRESPONSE']._serialized_start=6339 + _globals['_ORDERSRESPONSE']._serialized_end=6503 + _globals['_DERIVATIVELIMITORDER']._serialized_start=6506 + _globals['_DERIVATIVELIMITORDER']._serialized_end=7233 + _globals['_POSITIONSREQUEST']._serialized_start=7236 + _globals['_POSITIONSREQUEST']._serialized_end=7584 + _globals['_POSITIONSRESPONSE']._serialized_start=7587 + _globals['_POSITIONSRESPONSE']._serialized_end=7758 + _globals['_DERIVATIVEPOSITION']._serialized_start=7761 + _globals['_DERIVATIVEPOSITION']._serialized_end=8193 + _globals['_POSITIONSV2REQUEST']._serialized_start=8196 + _globals['_POSITIONSV2REQUEST']._serialized_end=8546 + _globals['_POSITIONSV2RESPONSE']._serialized_start=8549 + _globals['_POSITIONSV2RESPONSE']._serialized_end=8724 + _globals['_DERIVATIVEPOSITIONV2']._serialized_start=8727 + _globals['_DERIVATIVEPOSITIONV2']._serialized_end=9083 + _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_start=9085 + _globals['_LIQUIDABLEPOSITIONSREQUEST']._serialized_end=9184 + _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_start=9186 + _globals['_LIQUIDABLEPOSITIONSRESPONSE']._serialized_end=9300 + _globals['_FUNDINGPAYMENTSREQUEST']._serialized_start=9303 + _globals['_FUNDINGPAYMENTSREQUEST']._serialized_end=9493 + _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_start=9496 + _globals['_FUNDINGPAYMENTSRESPONSE']._serialized_end=9667 + _globals['_FUNDINGPAYMENT']._serialized_start=9670 + _globals['_FUNDINGPAYMENT']._serialized_end=9806 + _globals['_FUNDINGRATESREQUEST']._serialized_start=9808 + _globals['_FUNDINGRATESREQUEST']._serialized_end=9927 + _globals['_FUNDINGRATESRESPONSE']._serialized_start=9930 + _globals['_FUNDINGRATESRESPONSE']._serialized_end=10104 + _globals['_FUNDINGRATE']._serialized_start=10106 + _globals['_FUNDINGRATE']._serialized_end=10198 + _globals['_STREAMPOSITIONSREQUEST']._serialized_start=10201 + _globals['_STREAMPOSITIONSREQUEST']._serialized_end=10402 + _globals['_STREAMPOSITIONSRESPONSE']._serialized_start=10405 + _globals['_STREAMPOSITIONSRESPONSE']._serialized_end=10543 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_start=10546 + _globals['_STREAMPOSITIONSV2REQUEST']._serialized_end=10749 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_start=10752 + _globals['_STREAMPOSITIONSV2RESPONSE']._serialized_end=10894 + _globals['_STREAMORDERSREQUEST']._serialized_start=10897 + _globals['_STREAMORDERSREQUEST']._serialized_end=11360 + _globals['_STREAMORDERSRESPONSE']._serialized_start=11363 + _globals['_STREAMORDERSRESPONSE']._serialized_end=11533 + _globals['_TRADESREQUEST']._serialized_start=11536 + _globals['_TRADESREQUEST']._serialized_end=12020 + _globals['_TRADESRESPONSE']._serialized_start=12023 + _globals['_TRADESRESPONSE']._serialized_end=12182 + _globals['_DERIVATIVETRADE']._serialized_start=12185 + _globals['_DERIVATIVETRADE']._serialized_end=12673 + _globals['_POSITIONDELTA']._serialized_start=12676 + _globals['_POSITIONDELTA']._serialized_end=12863 + _globals['_TRADESV2REQUEST']._serialized_start=12866 + _globals['_TRADESV2REQUEST']._serialized_end=13352 + _globals['_TRADESV2RESPONSE']._serialized_start=13355 + _globals['_TRADESV2RESPONSE']._serialized_end=13516 + _globals['_STREAMTRADESREQUEST']._serialized_start=13519 + _globals['_STREAMTRADESREQUEST']._serialized_end=14009 + _globals['_STREAMTRADESRESPONSE']._serialized_start=14012 + _globals['_STREAMTRADESRESPONSE']._serialized_end=14177 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=14180 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=14672 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14675 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14842 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14845 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14982 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14985 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15163 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15166 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15372 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15374 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15480 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=15483 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=15991 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15994 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16167 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16170 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16851 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16854 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=17074 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=17077 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17256 + _globals['_OPENINTERESTREQUEST']._serialized_start=17258 + _globals['_OPENINTERESTREQUEST']._serialized_end=17311 + _globals['_OPENINTERESTRESPONSE']._serialized_start=17313 + _globals['_OPENINTERESTRESPONSE']._serialized_end=17429 + _globals['_MARKETOPENINTEREST']._serialized_start=17431 + _globals['_MARKETOPENINTEREST']._serialized_end=17517 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17520 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=21192 # @@protoc_insertion_point(module_scope) diff --git a/pyproject.toml b/pyproject.toml index 7dd8e6fd..fca45f29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc1" +version = "1.11.0-rc2" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" diff --git a/tests/client/chain/grpc/configurable_erc20_query_servicer.py b/tests/client/chain/grpc/configurable_erc20_query_servicer.py new file mode 100644 index 00000000..1452e1af --- /dev/null +++ b/tests/client/chain/grpc/configurable_erc20_query_servicer.py @@ -0,0 +1,26 @@ +from collections import deque + +from pyinjective.proto.injective.erc20.v1beta1 import query_pb2 as erc20_query_pb, query_pb2_grpc as erc20_query_grpc + + +class ConfigurableERC20QueryServicer(erc20_query_grpc.QueryServicer): + def __init__(self): + super().__init__() + self.erc20_params_responses = deque() + self.all_token_pairs_responses = deque() + self.token_pair_by_denom_responses = deque() + self.token_pair_by_erc20_address_responses = deque() + + async def Params(self, request: erc20_query_pb.QueryParamsRequest, context=None, metadata=None): + return self.erc20_params_responses.pop() + + async def AllTokenPairs(self, request: erc20_query_pb.QueryAllTokenPairsRequest, context=None, metadata=None): + return self.all_token_pairs_responses.pop() + + async def TokenPairByDenom(self, request: erc20_query_pb.QueryTokenPairByDenomRequest, context=None, metadata=None): + return self.token_pair_by_denom_responses.pop() + + async def TokenPairByERC20Address( + self, request: erc20_query_pb.QueryTokenPairByERC20AddressRequest, context=None, metadata=None + ): + return self.token_pair_by_erc20_address_responses.pop() diff --git a/tests/client/chain/grpc/configurable_evm_query_servicer.py b/tests/client/chain/grpc/configurable_evm_query_servicer.py new file mode 100644 index 00000000..ee3e9b25 --- /dev/null +++ b/tests/client/chain/grpc/configurable_evm_query_servicer.py @@ -0,0 +1,40 @@ +from collections import deque + +from pyinjective.proto.injective.evm.v1 import query_pb2 as evm_query_pb, query_pb2_grpc as evm_query_grpc + + +class ConfigurableEVMQueryServicer(evm_query_grpc.QueryServicer): + def __init__(self): + super().__init__() + self.params_responses = deque() + self.account_responses = deque() + self.cosmos_account_responses = deque() + self.validator_account_responses = deque() + self.balance_responses = deque() + self.storage_responses = deque() + self.code_responses = deque() + self.base_fee_responses = deque() + + async def Params(self, request: evm_query_pb.QueryParamsRequest, context=None, metadata=None): + return self.params_responses.pop() + + async def Account(self, request: evm_query_pb.QueryAccountRequest, context=None, metadata=None): + return self.account_responses.pop() + + async def CosmosAccount(self, request: evm_query_pb.QueryCosmosAccountRequest, context=None, metadata=None): + return self.cosmos_account_responses.pop() + + async def ValidatorAccount(self, request: evm_query_pb.QueryValidatorAccountRequest, context=None, metadata=None): + return self.validator_account_responses.pop() + + async def Balance(self, request: evm_query_pb.QueryBalanceRequest, context=None, metadata=None): + return self.balance_responses.pop() + + async def Storage(self, request: evm_query_pb.QueryStorageRequest, context=None, metadata=None): + return self.storage_responses.pop() + + async def Code(self, request: evm_query_pb.QueryCodeRequest, context=None, metadata=None): + return self.code_responses.pop() + + async def BaseFee(self, request: evm_query_pb.QueryBaseFeeRequest, context=None, metadata=None): + return self.base_fee_responses.pop() diff --git a/tests/client/chain/grpc/test_chain_grpc_erc20_api.py b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py new file mode 100644 index 00000000..d2d24087 --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py @@ -0,0 +1,116 @@ +import grpc +import pytest + +from pyinjective.client.chain.grpc.chain_grpc_erc20_api import ChainGrpcERC20Api +from pyinjective.core.network import DisabledCookieAssistant, Network +from pyinjective.proto.injective.erc20.v1beta1 import ( + erc20_pb2 as erc20_pb, + params_pb2 as erc20_params_pb, + query_pb2 as erc20_query_pb, +) +from tests.client.chain.grpc.configurable_erc20_query_servicer import ConfigurableERC20QueryServicer + + +@pytest.fixture +def erc20_servicer(): + return ConfigurableERC20QueryServicer() + + +class TestChainGrpcBankApi: + @pytest.mark.asyncio + async def test_fetch_erc20_params( + self, + erc20_servicer, + ): + params = erc20_params_pb.Params() + + erc20_servicer.erc20_params_responses.append( + erc20_query_pb.QueryParamsResponse( + params=params, + ) + ) + + api = self._api_instance(erc20_servicer) + response = await api.fetch_erc20_params() + + expected_params = {"params": {}} + + assert response == expected_params + + @pytest.mark.asyncio + async def test_fetch_all_token_pairs(self, erc20_servicer): + token_pair = erc20_pb.TokenPair( + bank_denom="denom", + erc20_address="0xd2C6753F6B1783EF0a3857275e16e79D91b539a3", + ) + erc20_servicer.all_token_pairs_responses.append( + erc20_query_pb.QueryAllTokenPairsResponse(token_pairs=[token_pair]) + ) + + api = self._api_instance(erc20_servicer) + response = await api.fetch_all_token_pairs() + + expected_token_pairs = { + "tokenPairs": [ + { + "bankDenom": token_pair.bank_denom, + "erc20Address": token_pair.erc20_address, + } + ] + } + + assert response == expected_token_pairs + + @pytest.mark.asyncio + async def test_fetch_token_pair_by_denom(self, erc20_servicer): + token_pair = erc20_pb.TokenPair( + bank_denom="denom", + erc20_address="0xd2C6753F6B1783EF0a3857275e16e79D91b539a3", + ) + erc20_servicer.token_pair_by_denom_responses.append( + erc20_query_pb.QueryTokenPairByDenomResponse(token_pair=token_pair) + ) + + api = self._api_instance(erc20_servicer) + response = await api.fetch_token_pair_by_denom(bank_denom=token_pair.bank_denom) + + expected_token_pair = { + "tokenPair": { + "bankDenom": token_pair.bank_denom, + "erc20Address": token_pair.erc20_address, + } + } + + assert response == expected_token_pair + + @pytest.mark.asyncio + async def test_fetch_token_pair_by_erc20_address(self, erc20_servicer): + token_pair = erc20_pb.TokenPair( + bank_denom="denom", + erc20_address="0xd2C6753F6B1783EF0a3857275e16e79D91b539a3", + ) + erc20_servicer.token_pair_by_erc20_address_responses.append( + erc20_query_pb.QueryTokenPairByERC20AddressResponse(token_pair=token_pair) + ) + + api = self._api_instance(erc20_servicer) + response = await api.fetch_token_pair_by_erc20_address(erc20_address=token_pair.erc20_address) + + expected_token_pair = { + "tokenPair": { + "bankDenom": token_pair.bank_denom, + "erc20Address": token_pair.erc20_address, + } + } + + assert response == expected_token_pair + + def _api_instance(self, servicer): + network = Network.devnet() + channel = grpc.aio.insecure_channel(network.grpc_endpoint) + cookie_assistant = DisabledCookieAssistant() + + api = ChainGrpcERC20Api(channel=channel, cookie_assistant=cookie_assistant) + api._stub = servicer + + return api diff --git a/tests/client/chain/grpc/test_chain_grpc_evm_api.py b/tests/client/chain/grpc/test_chain_grpc_evm_api.py new file mode 100644 index 00000000..f6378033 --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_evm_api.py @@ -0,0 +1,250 @@ +import base64 + +import grpc +import pytest + +from pyinjective.client.chain.grpc.chain_grpc_evm_api import ChainGrpcEVMApi +from pyinjective.core.network import DisabledCookieAssistant, Network +from pyinjective.proto.injective.evm.v1 import ( + chain_config_pb2 as evm_chain_config_pb, + params_pb2 as evm_params_pb, + query_pb2 as evm_query_pb, +) +from tests.client.chain.grpc.configurable_evm_query_servicer import ConfigurableEVMQueryServicer + + +@pytest.fixture +def evm_servicer(): + return ConfigurableEVMQueryServicer() + + +class TestChainGrpcBankApi: + @pytest.mark.asyncio + async def test_fetch_evm_params( + self, + evm_servicer, + ): + # Create a chain_config with different values for each variable + chain_config = evm_chain_config_pb.ChainConfig( + homestead_block="1000000", + dao_fork_block="1500000", + dao_fork_support=True, + eip150_block="2000000", + eip150_hash="0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0", + eip155_block="2500000", + eip158_block="3000000", + byzantium_block="4000000", + constantinople_block="5000000", + petersburg_block="6000000", + istanbul_block="7000000", + muir_glacier_block="8000000", + berlin_block="9000000", + london_block="10000000", + arrow_glacier_block="11000000", + gray_glacier_block="12000000", + merge_netsplit_block="13000000", + shanghai_time="14000000", + cancun_time="15000000", + prague_time="16000000", + eip155_chain_id="1337", # Common test chain ID + ) + + params = evm_params_pb.Params( + evm_denom="inj", + enable_create=True, + enable_call=False, + extra_eips=[11, 12], + chain_config=chain_config, + allow_unprotected_txs=True, + authorized_deployers=["inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7"], + permissioned=False, + ) + + evm_servicer.params_responses.append( + evm_query_pb.QueryParamsResponse( + params=params, + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_params() + + expected_params = { + "params": { + "evmDenom": "inj", + "enableCreate": True, + "enableCall": False, + "extraEips": ["11", "12"], + "chainConfig": { + "homesteadBlock": "1000000", + "daoForkBlock": "1500000", + "daoForkSupport": True, + "eip150Block": "2000000", + "eip150Hash": "0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0", + "eip155Block": "2500000", + "eip158Block": "3000000", + "byzantiumBlock": "4000000", + "constantinopleBlock": "5000000", + "petersburgBlock": "6000000", + "istanbulBlock": "7000000", + "muirGlacierBlock": "8000000", + "berlinBlock": "9000000", + "londonBlock": "10000000", + "arrowGlacierBlock": "11000000", + "grayGlacierBlock": "12000000", + "mergeNetsplitBlock": "13000000", + "shanghaiTime": "14000000", + "cancunTime": "15000000", + "pragueTime": "16000000", + "eip155ChainId": "1337", + }, + "allowUnprotectedTxs": True, + "authorizedDeployers": ["inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7"], + "permissioned": False, + } + } + + assert response == expected_params + + @pytest.mark.asyncio + async def test_fetch_account(self, evm_servicer): + evm_servicer.account_responses.append( + evm_query_pb.QueryAccountResponse( + balance="1500.123", + code_hash="0x0000000000000000000000000000000000000000000000000000000000000000", + nonce=1234567890, + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_account(address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30") + + expected_response = { + "balance": "1500.123", + "codeHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "1234567890", + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_cosmos_account(self, evm_servicer): + evm_servicer.cosmos_account_responses.append( + evm_query_pb.QueryCosmosAccountResponse( + cosmos_address="inj1234567890abcdefghijklmnopqrstuvwxyz", + sequence=1234567890, + account_number=12344321, + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_cosmos_account(address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30") + + expected_response = { + "cosmosAddress": "inj1234567890abcdefghijklmnopqrstuvwxyz", + "sequence": "1234567890", + "accountNumber": "12344321", + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_validator_account(self, evm_servicer): + evm_servicer.validator_account_responses.append( + evm_query_pb.QueryValidatorAccountResponse( + account_address="inj1234567890abcdefghijklmnopqrstuvwxyz", + sequence=1234567890, + account_number=12344321, + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_validator_account(cons_address="injvalcons1h5u937etuat5hnr2s34yaaalfpkkscl5ndadqm") + + expected_response = { + "accountAddress": "inj1234567890abcdefghijklmnopqrstuvwxyz", + "sequence": "1234567890", + "accountNumber": "12344321", + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_balance(self, evm_servicer): + evm_servicer.balance_responses.append( + evm_query_pb.QueryBalanceResponse( + balance="1500.123", + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_balance(address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30") + + expected_response = { + "balance": "1500.123", + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_storage(self, evm_servicer): + evm_servicer.storage_responses.append( + evm_query_pb.QueryStorageResponse( + value="0x0000000000000000000000000000000000000000000000000000000000000000", + ) + ) + + api = self._api_instance(evm_servicer) + response = await api.fetch_storage( + address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30", + key="0x0000000000000000000000000000000000000000000000000000000000000000", + ) + + expected_response = { + "value": "0x0000000000000000000000000000000000000000000000000000000000000000", + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_code(self, evm_servicer): + code_response = evm_query_pb.QueryCodeResponse( + code=b"\305\322F\001\206\367#<\222~}\262\334\307\003\300\345\000\266S\312\202';{\372\330\004]\205\244p", + ) + evm_servicer.code_responses.append(code_response) + + api = self._api_instance(evm_servicer) + response = await api.fetch_code(address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30") + + expected_response = { + "code": base64.b64encode(code_response.code).decode(), + } + + assert response == expected_response + + @pytest.mark.asyncio + async def test_fetch_base_fee(self, evm_servicer): + evm_servicer.base_fee_responses.append( + evm_query_pb.QueryBaseFeeResponse( + base_fee="160000000", + ) + ) + + api = self._api_instance(evm_servicer) + resposne = await api.fetch_base_fee() + + expected_response = { + "baseFee": "160000000", + } + + assert resposne["baseFee"] == expected_response["baseFee"] + + def _api_instance(self, servicer): + network = Network.devnet() + channel = grpc.aio.insecure_channel(network.grpc_endpoint) + cookie_assistant = DisabledCookieAssistant() + + api = ChainGrpcEVMApi(channel=channel, cookie_assistant=cookie_assistant) + api._stub = servicer + + return api diff --git a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py index 50d0c210..8a09c5e6 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py @@ -37,6 +37,7 @@ async def test_fetch_markets( cumulative_funding="-82680.076492986572881307", cumulative_price="-78.41752505919454668", last_timestamp=1700004260, + last_funding_rate="0.12345", ) market = exchange_derivative_pb.DerivativeMarketInfo( @@ -49,6 +50,7 @@ async def test_fetch_markets( oracle_scale_factor=6, initial_margin_ratio="0.05", maintenance_margin_ratio="0.02", + reduce_margin_ratio="0.3", quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", quote_token_meta=quote_token_meta, maker_fee_rate="-0.0001", @@ -86,6 +88,7 @@ async def test_fetch_markets( "oracleScaleFactor": market.oracle_scale_factor, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "quoteDenom": market.quote_denom, "quoteTokenMeta": { "name": market.quote_token_meta.name, @@ -112,6 +115,7 @@ async def test_fetch_markets( "cumulativeFunding": perpetual_market_funding.cumulative_funding, "cumulativePrice": perpetual_market_funding.cumulative_price, "lastTimestamp": str(perpetual_market_funding.last_timestamp), + "lastFundingRate": perpetual_market_funding.last_funding_rate, }, } ] @@ -142,6 +146,7 @@ async def test_fetch_market( cumulative_funding="-82680.076492986572881307", cumulative_price="-78.41752505919454668", last_timestamp=1700004260, + last_funding_rate="0.12345", ) market = exchange_derivative_pb.DerivativeMarketInfo( @@ -154,6 +159,7 @@ async def test_fetch_market( oracle_scale_factor=6, initial_margin_ratio="0.05", maintenance_margin_ratio="0.02", + reduce_margin_ratio="0.3", quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", quote_token_meta=quote_token_meta, maker_fee_rate="-0.0001", @@ -187,6 +193,7 @@ async def test_fetch_market( "oracleScaleFactor": market.oracle_scale_factor, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "quoteDenom": market.quote_denom, "quoteTokenMeta": { "name": market.quote_token_meta.name, @@ -213,6 +220,7 @@ async def test_fetch_market( "cumulativeFunding": perpetual_market_funding.cumulative_funding, "cumulativePrice": perpetual_market_funding.cumulative_price, "lastTimestamp": str(perpetual_market_funding.last_timestamp), + "lastFundingRate": perpetual_market_funding.last_funding_rate, }, } } diff --git a/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py b/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py index 80637cc6..f8e33847 100644 --- a/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py +++ b/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py @@ -42,6 +42,7 @@ async def test_stream_market( cumulative_funding="-82680.076492986572881307", cumulative_price="-78.41752505919454668", last_timestamp=1700004260, + last_funding_rate="0.12345", ) market = exchange_derivative_pb.DerivativeMarketInfo( @@ -54,6 +55,7 @@ async def test_stream_market( oracle_scale_factor=6, initial_margin_ratio="0.05", maintenance_margin_ratio="0.02", + reduce_margin_ratio="0.3", quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", quote_token_meta=quote_token_meta, maker_fee_rate="-0.0001", @@ -103,6 +105,7 @@ async def test_stream_market( "oracleScaleFactor": market.oracle_scale_factor, "initialMarginRatio": market.initial_margin_ratio, "maintenanceMarginRatio": market.maintenance_margin_ratio, + "reduceMarginRatio": market.reduce_margin_ratio, "quoteDenom": market.quote_denom, "quoteTokenMeta": { "name": market.quote_token_meta.name, @@ -129,6 +132,7 @@ async def test_stream_market( "cumulativeFunding": perpetual_market_funding.cumulative_funding, "cumulativePrice": perpetual_market_funding.cumulative_price, "lastTimestamp": str(perpetual_market_funding.last_timestamp), + "lastFundingRate": perpetual_market_funding.last_funding_rate, }, }, "operationType": operation_type, diff --git a/tests/test_composer.py b/tests/test_composer.py index 3e77e45c..130b55d8 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -2173,3 +2173,41 @@ def test_msg_send(self, basic_composer): always_print_fields_with_no_presence=True, ) assert dict_message == expected_message + + def test_msg_create_token_pair(self, basic_composer): + message = basic_composer.msg_create_token_pair( + sender="sender", + bank_denom="denom", + erc20_address="erc20_address", + ) + + expected_message = { + "sender": "sender", + "tokenPair": { + "bankDenom": "denom", + "erc20Address": "erc20_address", + }, + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_delete_token_pair(self, basic_composer): + message = basic_composer.msg_delete_token_pair( + sender="sender", + bank_denom="denom", + ) + + expected_message = { + "sender": "sender", + "bankDenom": "denom", + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message From 9ef69b152763554a29c5ef88b6e12c3d67692918 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 28 May 2025 17:45:37 -0300 Subject: [PATCH 22/35] cp-396: fixed typos --- tests/client/chain/grpc/test_chain_grpc_erc20_api.py | 2 +- tests/client/chain/grpc/test_chain_grpc_evm_api.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/client/chain/grpc/test_chain_grpc_erc20_api.py b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py index d2d24087..a9f08941 100644 --- a/tests/client/chain/grpc/test_chain_grpc_erc20_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py @@ -16,7 +16,7 @@ def erc20_servicer(): return ConfigurableERC20QueryServicer() -class TestChainGrpcBankApi: +class TestChainGrpcERC20Api: @pytest.mark.asyncio async def test_fetch_erc20_params( self, diff --git a/tests/client/chain/grpc/test_chain_grpc_evm_api.py b/tests/client/chain/grpc/test_chain_grpc_evm_api.py index f6378033..551953ca 100644 --- a/tests/client/chain/grpc/test_chain_grpc_evm_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_evm_api.py @@ -18,7 +18,7 @@ def evm_servicer(): return ConfigurableEVMQueryServicer() -class TestChainGrpcBankApi: +class TestChainGrpcEVMApi: @pytest.mark.asyncio async def test_fetch_evm_params( self, @@ -231,13 +231,13 @@ async def test_fetch_base_fee(self, evm_servicer): ) api = self._api_instance(evm_servicer) - resposne = await api.fetch_base_fee() + response = await api.fetch_base_fee() expected_response = { "baseFee": "160000000", } - assert resposne["baseFee"] == expected_response["baseFee"] + assert response == expected_response def _api_instance(self, servicer): network = Network.devnet() From d8112fb0ff34faaf201e8b1303caedb15c7393a3 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 28 May 2025 23:43:22 -0300 Subject: [PATCH 23/35] fix: updated AsyncClient tests to try to avoid tests hanging when executed in Windows machines --- tests/test_async_client.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/test_async_client.py b/tests/test_async_client.py index 46e30d4b..6b11ab6b 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -9,6 +9,7 @@ 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_v2_query_servicer import ConfigurableExchangeV2QueryServicer +from tests.core.tendermint.grpc.configurable_tendermint_query_servicer import ConfigurableTendermintQueryServicer from tests.rpc_fixtures.markets_fixtures import ( # noqa: F401 ape_token_meta, ape_usdt_spot_market_meta, @@ -33,13 +34,20 @@ def exchange_servicer(): return ConfigurableExchangeV2QueryServicer() +@pytest.fixture +def tendermint_servicer(): + return ConfigurableTendermintQueryServicer() + + class TestAsyncClient: @pytest.mark.asyncio - async def test_sync_timeout_height_logs_exception(self, caplog): + async def test_sync_timeout_height_logs_exception(self, caplog, tendermint_servicer): client = AsyncClient( network=Network.local(), ) + client.tendermint_api._stub = tendermint_servicer + with caplog.at_level(logging.DEBUG): await client.sync_timeout_height() @@ -53,11 +61,13 @@ async def test_sync_timeout_height_logs_exception(self, caplog): assert found_log[1] == logging.DEBUG @pytest.mark.asyncio - async def test_get_account_logs_exception(self, caplog): + async def test_get_account_logs_exception(self, caplog, tendermint_servicer): client = AsyncClient( network=Network.local(), ) + client.tendermint_api._stub = tendermint_servicer + with caplog.at_level(logging.DEBUG): await client.fetch_account(address="") @@ -74,6 +84,7 @@ async def test_get_account_logs_exception(self, caplog): async def test_initialize_tokens_and_markets( self, exchange_servicer, + tendermint_servicer, inj_usdt_spot_market_meta, ape_usdt_spot_market_meta, btc_usdt_perp_market_meta, @@ -163,6 +174,7 @@ async def test_initialize_tokens_and_markets( ) client.chain_exchange_v2_api._stub = exchange_servicer + client.tendermint_api._stub = tendermint_servicer await client._initialize_tokens_and_markets() @@ -199,6 +211,7 @@ async def test_initialize_tokens_and_markets( async def test_tokens_and_markets_initialization_read_tokens_from_official_list( self, exchange_servicer, + tendermint_servicer, inj_usdt_spot_market_meta, ape_usdt_spot_market_meta, btc_usdt_perp_market_meta, @@ -255,6 +268,7 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( ) client.chain_exchange_v2_api._stub = exchange_servicer + client.tendermint_api._stub = tendermint_servicer await client._initialize_tokens_and_markets() @@ -267,6 +281,7 @@ async def test_initialize_tokens_from_chain_denoms( self, bank_servicer, exchange_servicer, + tendermint_servicer, smart_denom_metadata, aioresponses, ): @@ -296,8 +311,9 @@ async def test_initialize_tokens_from_chain_denoms( network=test_network, ) - client.chain_exchange_v2_api._stub = exchange_servicer client.bank_api._stub = bank_servicer + client.chain_exchange_v2_api._stub = exchange_servicer + client.tendermint_api._stub = tendermint_servicer await client._initialize_tokens_and_markets() await client.initialize_tokens_from_chain_denoms() From 7aba4d286012abbf49ee9a965cf0b6368f2136cc Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:50:11 -0300 Subject: [PATCH 24/35] (feat) Created a new Composer and a new AsyncClient to support exchange v2 endpoints. The original Composer and AsyncClient are still supported. Created an IndexerClient for all indexer endpoints --- .gitignore | 1 + CHANGELOG.md | 3 + examples/chain_client/1_LocalOrderHash.py | 26 +- examples/chain_client/3_MessageBroadcaster.py | 8 +- .../4_MessageBroadcasterWithGranteeAccount.py | 4 +- .../5_MessageBroadcasterWithoutSimulation.py | 8 +- ...sterWithGranteeAccountWithoutSimulation.py | 4 +- examples/chain_client/7_ChainStream.py | 27 +- .../chain_client/9_PaginatedRequestExample.py | 2 +- examples/chain_client/auction/1_MsgBid.py | 4 +- examples/chain_client/auth/query/1_Account.py | 2 +- examples/chain_client/authz/1_MsgGrant.py | 6 +- examples/chain_client/authz/2_MsgExec.py | 6 +- examples/chain_client/authz/3_MsgRevoke.py | 4 +- examples/chain_client/authz/query/1_Grants.py | 2 +- examples/chain_client/bank/1_MsgSend.py | 4 +- .../chain_client/bank/query/10_SendEnabled.py | 2 +- .../chain_client/bank/query/1_BankBalance.py | 2 +- .../chain_client/bank/query/2_BankBalances.py | 2 +- .../bank/query/3_SpendableBalances.py | 2 +- .../bank/query/4_SpendableBalancesByDenom.py | 2 +- .../chain_client/bank/query/5_TotalSupply.py | 2 +- .../chain_client/bank/query/6_SupplyOf.py | 2 +- .../bank/query/7_DenomMetadata.py | 2 +- .../bank/query/8_DenomsMetadata.py | 2 +- .../chain_client/bank/query/9_DenomOwners.py | 2 +- .../distribution/2_WithdrawDelegatorReward.py | 2 +- .../3_WithdrawValidatorCommission.py | 2 +- .../query/1_ValidatorDistributionInfo.py | 2 +- .../query/2_ValidatorOutstandingRewards.py | 2 +- .../query/3_ValidatorCommission.py | 2 +- .../distribution/query/4_ValidatorSlashes.py | 2 +- .../distribution/query/5_DelegationRewards.py | 2 +- .../query/6_DelegationTotalRewards.py | 2 +- .../query/7_DelegatorValidators.py | 2 +- .../query/8_DelegatorWithdrawAddress.py | 2 +- .../distribution/query/9_CommunityPool.py | 2 +- .../chain_client/erc20/1_CreateTokenPair.py | 2 +- .../chain_client/erc20/2_DeleteTokenPair.py | 2 +- .../erc20/query/1_AllTokenPairs.py | 2 +- .../erc20/query/2_TokenPairByDenom.py | 2 +- .../erc20/query/3_TokenPairByERC20Address.py | 2 +- examples/chain_client/evm/query/1_Account.py | 2 +- .../chain_client/evm/query/2_CosmosAccount.py | 2 +- .../evm/query/3_ValidatorAccount.py | 2 +- examples/chain_client/evm/query/4_Balance.py | 2 +- examples/chain_client/evm/query/5_Storage.py | 2 +- examples/chain_client/evm/query/6_Code.py | 2 +- examples/chain_client/evm/query/7_BaseFee.py | 2 +- .../10_MsgCreateDerivativeLimitOrder.py | 4 +- .../11_MsgCreateDerivativeMarketOrder.py | 4 +- .../exchange/12_MsgCancelDerivativeOrder.py | 4 +- .../13_MsgInstantBinaryOptionsMarketLaunch.py | 4 +- .../14_MsgCreateBinaryOptionsLimitOrder.py | 4 +- .../15_MsgCreateBinaryOptionsMarketOrder.py | 4 +- .../16_MsgCancelBinaryOptionsOrder.py | 4 +- .../exchange/17_MsgSubaccountTransfer.py | 4 +- .../exchange/18_MsgExternalTransfer.py | 4 +- .../exchange/19_MsgLiquidatePosition.py | 6 +- .../chain_client/exchange/1_MsgDeposit.py | 4 +- .../exchange/20_MsgIncreasePositionMargin.py | 4 +- .../exchange/21_MsgRewardsOptOut.py | 2 +- .../22_MsgAdminUpdateBinaryOptionsMarket.py | 2 +- .../exchange/23_MsgDecreasePositionMargin.py | 4 +- .../exchange/24_MsgUpdateSpotMarket.py | 4 +- .../exchange/25_MsgUpdateDerivativeMarket.py | 4 +- .../exchange/26_MsgAuthorizeStakeGrants.py | 2 +- .../exchange/27_MsgActivateStakeGrant.py | 2 +- .../exchange/28_MsgCreateGTBSpotLimitOrder.py | 4 +- .../29_MsgCreateGTBDerivativeLimitOrder.py | 4 +- .../chain_client/exchange/2_MsgWithdraw.py | 4 +- .../exchange/3_MsgInstantSpotMarketLaunch.py | 4 +- .../4_MsgInstantPerpetualMarketLaunch.py | 2 +- .../5_MsgInstantExpiryFuturesMarketLaunch.py | 2 +- .../exchange/6_MsgCreateSpotLimitOrder.py | 4 +- .../exchange/7_MsgCreateSpotMarketOrder.py | 4 +- .../exchange/8_MsgCancelSpotOrder.py | 4 +- .../exchange/9_MsgBatchUpdateOrders.py | 20 +- .../exchange/query/10_SpotMarkets.py | 4 +- .../exchange/query/11_SpotMarket.py | 4 +- .../exchange/query/12_FullSpotMarkets.py | 4 +- .../exchange/query/13_FullSpotMarket.py | 4 +- .../exchange/query/14_SpotOrderbook.py | 4 +- .../exchange/query/15_TraderSpotOrders.py | 4 +- .../query/16_AccountAddressSpotOrders.py | 4 +- .../exchange/query/17_SpotOrdersByHashes.py | 4 +- .../exchange/query/18_SubaccountOrders.py | 4 +- .../query/19_TraderSpotTransientOrders.py | 4 +- .../exchange/query/1_SubaccountDeposits.py | 2 +- .../exchange/query/20_SpotMidPriceAndTOB.py | 4 +- .../query/21_DerivativeMidPriceAndTOB.py | 4 +- .../exchange/query/22_DerivativeOrderbook.py | 4 +- .../query/23_TraderDerivativeOrders.py | 4 +- .../24_AccountAddressDerivativeOrders.py | 4 +- .../query/25_DerivativeOrdersByHashes.py | 4 +- .../26_TraderDerivativeTransientOrders.py | 4 +- .../exchange/query/27_DerivativeMarkets.py | 4 +- .../exchange/query/28_DerivativeMarket.py | 4 +- .../query/29_DerivativeMarketAddress.py | 2 +- .../exchange/query/2_SubaccountDeposit.py | 2 +- .../exchange/query/30_SubaccountTradeNonce.py | 2 +- .../exchange/query/31_Positions.py | 4 +- .../exchange/query/32_SubaccountPositions.py | 4 +- .../query/33_SubaccountPositionInMarket.py | 4 +- .../34_SubaccountEffectivePositionInMarket.py | 4 +- .../exchange/query/35_PerpetualMarketInfo.py | 2 +- .../query/36_ExpiryFuturesMarketInfo.py | 4 +- .../query/37_PerpetualMarketFunding.py | 4 +- .../query/38_SubaccountOrderMetadata.py | 4 +- .../exchange/query/39_TradeRewardPoints.py | 2 +- .../exchange/query/3_ExchangeBalances.py | 2 +- .../query/40_PendingTradeRewardPoints.py | 2 +- .../exchange/query/41_TradeRewardCampaign.py | 2 +- .../query/42_FeeDiscountAccountInfo.py | 4 +- .../exchange/query/43_FeeDiscountSchedule.py | 4 +- .../exchange/query/44_BalanceMismatches.py | 2 +- .../query/45_BalanceWithBalanceHolds.py | 2 +- .../query/46_FeeDiscountTierStatistics.py | 2 +- .../exchange/query/47_MitoVaultInfos.py | 2 +- .../query/48_QueryMarketIDFromVault.py | 2 +- .../query/49_HistoricalTradeRecords.py | 4 +- .../exchange/query/4_AggregateVolume.py | 6 +- .../exchange/query/50_IsOptedOutOfRewards.py | 2 +- .../query/51_OptedOutOfRewardsAccounts.py | 2 +- .../exchange/query/52_MarketVolatility.py | 4 +- .../exchange/query/53_BinaryOptionsMarkets.py | 4 +- .../54_TraderDerivativeConditionalOrders.py | 4 +- .../55_MarketAtomicExecutionFeeMultiplier.py | 2 +- .../exchange/query/56_ActiveStakeGrant.py | 2 +- .../query/56_L3DerivativeOrderBook.py | 2 +- .../exchange/query/57_GrantAuthorization.py | 2 +- .../exchange/query/57_L3SpotOrderBook.py | 2 +- .../exchange/query/58_GrantAuthorizations.py | 2 +- .../exchange/query/58_MarketBalance.py | 2 +- .../query/59_L3DerivativeOrderBook.py | 4 +- .../exchange/query/59_MarketBalances.py | 2 +- .../exchange/query/5_AggregateVolumes.py | 4 +- .../exchange/query/60_DenomMinNotional.py | 2 +- .../exchange/query/60_L3SpotOrderBook.py | 4 +- .../exchange/query/61_DenomMinNotionals.py | 2 +- .../exchange/query/6_AggregateMarketVolume.py | 4 +- .../query/7_AggregateMarketVolumes.py | 4 +- .../exchange/query/8_DenomDecimal.py | 2 +- .../exchange/query/9_DenomDecimals.py | 2 +- .../query/10_PacketAcknowledgements.py | 2 +- .../ibc/channel/query/11_UnreceivedPackets.py | 2 +- .../ibc/channel/query/12_UnreceivedAcks.py | 2 +- .../channel/query/13_NextSequenceReceive.py | 2 +- .../ibc/channel/query/1_Channel.py | 2 +- .../ibc/channel/query/2_Channels.py | 2 +- .../ibc/channel/query/3_ConnectionChannels.py | 2 +- .../ibc/channel/query/4_ChannelClientState.py | 2 +- .../channel/query/5_ChannelConsensusState.py | 2 +- .../ibc/channel/query/6_PacketCommitment.py | 2 +- .../ibc/channel/query/7_PacketCommitments.py | 2 +- .../ibc/channel/query/8_PacketReceipt.py | 2 +- .../channel/query/9_PacketAcknowledgement.py | 2 +- .../ibc/client/query/1_ClientState.py | 2 +- .../ibc/client/query/2_ClientStates.py | 2 +- .../ibc/client/query/3_ConsensusState.py | 2 +- .../ibc/client/query/4_ConsensusStates.py | 2 +- .../client/query/5_ConsensusStateHeights.py | 2 +- .../ibc/client/query/6_ClientStatus.py | 2 +- .../ibc/client/query/7_ClientParams.py | 2 +- .../ibc/client/query/8_UpgradedClientState.py | 2 +- .../client/query/9_UpgradedConsensusState.py | 2 +- .../ibc/connection/query/1_Connection.py | 2 +- .../ibc/connection/query/2_Connections.py | 2 +- .../connection/query/3_ClientConnections.py | 2 +- .../query/4_ConnectionClientState.py | 2 +- .../query/5_ConnectionConsensusState.py | 2 +- .../connection/query/6_ConnectionParams.py | 2 +- .../ibc/transfer/1_MsgTransfer.py | 2 +- .../ibc/transfer/query/1_DenomTrace.py | 2 +- .../ibc/transfer/query/2_DenomTraces.py | 2 +- .../ibc/transfer/query/3_DenomHash.py | 2 +- .../ibc/transfer/query/4_EscrowAddress.py | 2 +- .../transfer/query/5_TotalEscrowForDenom.py | 2 +- .../insurance/1_MsgCreateInsuranceFund.py | 2 +- .../chain_client/insurance/2_MsgUnderwrite.py | 2 +- .../insurance/3_MsgRequestRedemption.py | 4 +- .../oracle/1_MsgRelayPriceFeedPrice.py | 6 +- .../oracle/2_MsgRelayProviderPrices.py | 4 +- examples/chain_client/peggy/1_MsgSendToEth.py | 2 +- .../permissions/1_MsgCreateNamespace.py | 2 +- .../permissions/2_MsgUpdateNamespace.py | 2 +- .../permissions/3_MsgUpdateActorRoles.py | 2 +- .../permissions/4_MsgClaimVoucher.py | 2 +- .../permissions/query/10_Vouchers.py | 2 +- .../permissions/query/11_Voucher.py | 2 +- .../query/12_PermissionsModuleState.py | 2 +- .../permissions/query/1_NamespaceDenoms.py | 2 +- .../permissions/query/2_Namespaces.py | 2 +- .../permissions/query/3_Namespace.py | 2 +- .../permissions/query/4_RolesByActor.py | 2 +- .../permissions/query/5_ActorsByRole.py | 2 +- .../permissions/query/6_RoleManagers.py | 2 +- .../permissions/query/7_RoleManager.py | 2 +- .../permissions/query/8_PolicyStatuses.py | 2 +- .../query/9_PolicyManagerCapabilities.py | 2 +- .../chain_client/staking/1_MsgDelegate.py | 4 +- .../tendermint/query/1_GetNodeInfo.py | 2 +- .../tendermint/query/2_GetSyncing.py | 2 +- .../tendermint/query/3_GetLatestBlock.py | 2 +- .../tendermint/query/4_GetBlockByHeight.py | 2 +- .../query/5_GetLatestValidatorSet.py | 2 +- .../query/6_GetValidatorSetByHeight.py | 2 +- .../tokenfactory/1_CreateDenom.py | 2 +- .../chain_client/tokenfactory/2_MsgMint.py | 2 +- .../chain_client/tokenfactory/3_MsgBurn.py | 2 +- .../tokenfactory/4_MsgChangeAdmin.py | 2 +- .../tokenfactory/5_MsgSetDenomMetadata.py | 2 +- .../query/1_DenomAuthorityMetadata.py | 2 +- .../tokenfactory/query/2_DenomsFromCreator.py | 2 +- .../query/3_TokenfactoryModuleState.py | 2 +- examples/chain_client/tx/query/1_GetTx.py | 2 +- .../txfees/query/1_GetEipBaseFee.py | 2 +- .../chain_client/wasm/1_MsgExecuteContract.py | 4 +- .../wasm/query/10_ContractsByCreator.py | 2 +- .../chain_client/wasm/query/1_ContractInfo.py | 2 +- .../wasm/query/2_ContractHistory.py | 2 +- .../wasm/query/3_ContractsByCode.py | 2 +- .../wasm/query/4_AllContractsState.py | 2 +- .../wasm/query/5_RawContractState.py | 2 +- .../wasm/query/6_SmartContractState.py | 2 +- .../wasm/query/7_SmartContractCode.py | 2 +- .../wasm/query/8_SmartContractCodes.py | 2 +- .../wasm/query/9_SmartContractPinnedCodes.py | 2 +- .../wasmx/1_MsgExecuteContractCompat.py | 2 +- .../accounts_rpc/1_StreamSubaccountBalance.py | 4 +- .../accounts_rpc/2_SubaccountBalance.py | 7 +- .../accounts_rpc/3_SubaccountsList.py | 7 +- .../accounts_rpc/4_SubaccountBalancesList.py | 7 +- .../accounts_rpc/5_SubaccountHistory.py | 7 +- .../accounts_rpc/6_SubaccountOrderSummary.py | 7 +- .../accounts_rpc/7_OrderStates.py | 7 +- .../accounts_rpc/8_Portfolio.py | 7 +- .../exchange_client/accounts_rpc/9_Rewards.py | 7 +- .../exchange_client/auctions_rpc/1_Auction.py | 7 +- .../auctions_rpc/2_Auctions.py | 7 +- .../auctions_rpc/3_StreamBids.py | 4 +- .../auctions_rpc/4_InjBurntEndpoint.py | 9 +- .../10_StreamHistoricalOrders.py | 4 +- .../derivative_exchange_rpc/11_Trades.py | 7 +- .../12_StreamTrades.py | 4 +- .../13_SubaccountOrdersList.py | 7 +- .../14_SubaccountTradesList.py | 7 +- .../15_FundingPayments.py | 7 +- .../17_FundingRates.py | 7 +- .../19_Binary_Options_Markets.py | 7 +- .../derivative_exchange_rpc/1_Market.py | 7 +- .../20_Binary_Options_Market.py | 7 +- .../21_Historical_Orders.py | 7 +- .../22_OrderbooksV2.py | 4 +- .../23_LiquidablePositions.py | 7 +- .../24_OpenInterest.py | 4 +- .../derivative_exchange_rpc/2_Markets.py | 7 +- .../derivative_exchange_rpc/3_StreamMarket.py | 4 +- .../derivative_exchange_rpc/4_Orderbook.py | 4 +- .../5_StreamOrderbooks.py | 4 +- .../6_StreamOrderbookUpdate.py | 13 +- .../derivative_exchange_rpc/7_Positions.py | 7 +- .../9_StreamPositions.py | 4 +- .../explorer_rpc/10_GetIBCTransfers.py | 7 +- .../explorer_rpc/11_GetContractsTxsV2.py | 4 +- .../explorer_rpc/12_GetValidators.py | 9 +- .../explorer_rpc/13_GetValidator.py | 8 +- .../explorer_rpc/14_GetValidatorUptime.py | 8 +- .../explorer_rpc/15_GetWasmCodes.py | 9 +- .../explorer_rpc/16_GetWasmCodeById.py | 10 +- .../explorer_rpc/17_GetWasmContracts.py | 10 +- .../18_GetWasmContractByAddress.py | 10 +- .../explorer_rpc/19_GetCw20Balance.py | 10 +- .../explorer_rpc/1_GetTxByHash.py | 19 +- .../explorer_rpc/20_Relayers.py | 11 +- .../explorer_rpc/21_GetBankTransfers.py | 7 +- .../explorer_rpc/2_AccountTxs.py | 19 +- .../exchange_client/explorer_rpc/3_Blocks.py | 7 +- .../exchange_client/explorer_rpc/4_Block.py | 7 +- .../explorer_rpc/5_TxsRequest.py | 7 +- .../explorer_rpc/6_StreamTxs.py | 4 +- .../explorer_rpc/7_StreamBlocks.py | 4 +- .../explorer_rpc/8_GetPeggyDeposits.py | 7 +- .../explorer_rpc/9_GetPeggyWithdrawals.py | 7 +- .../insurance_rpc/1_InsuranceFunds.py | 7 +- .../insurance_rpc/2_Redemptions.py | 7 +- examples/exchange_client/meta_rpc/1_Ping.py | 7 +- .../exchange_client/meta_rpc/2_Version.py | 7 +- examples/exchange_client/meta_rpc/3_Info.py | 7 +- .../meta_rpc/4_StreamKeepAlive.py | 4 +- .../oracle_rpc/1_StreamPrices.py | 4 +- .../exchange_client/oracle_rpc/2_Price.py | 7 +- .../oracle_rpc/3_OracleList.py | 7 +- .../exchange_client/oracle_rpc/4_PriceV2.py | 4 +- .../portfolio_rpc/1_AccountPortfolio.py | 7 +- .../portfolio_rpc/2_StreamAccountPortfolio.py | 4 +- .../spot_exchange_rpc/10_StreamTrades.py | 4 +- .../11_SubaccountOrdersList.py | 7 +- .../12_SubaccountTradesList.py | 7 +- .../spot_exchange_rpc/14_Orderbooks.py | 4 +- .../spot_exchange_rpc/15_HistoricalOrders.py | 7 +- .../spot_exchange_rpc/1_Market.py | 7 +- .../spot_exchange_rpc/2_Markets.py | 7 +- .../spot_exchange_rpc/3_StreamMarkets.py | 4 +- .../spot_exchange_rpc/4_Orderbook.py | 4 +- .../spot_exchange_rpc/6_Trades.py | 7 +- .../7_StreamOrderbookSnapshot.py | 4 +- .../8_StreamOrderbookUpdate.py | 13 +- .../9_StreamHistoricalOrders.py | 4 +- pyinjective/async_client.py | 1403 +++-------- pyinjective/async_client_v2.py | 1470 +++++++++++ pyinjective/composer.py | 1923 +++----------- pyinjective/composer_v2.py | 1858 ++++++++++++++ pyinjective/core/broadcaster.py | 113 +- pyinjective/core/chain_formatted_market.py | 274 ++ pyinjective/indexer_client.py | 1183 +++++++++ .../test_chain_grpc_chain_stream.py | 27 +- tests/core/test_broadcaster.py | 4 +- tests/core/test_chain_formatted_market.py | 587 +++++ ...test_gas_heuristics_gas_limit_estimator.py | 180 +- tests/core/test_gas_limit_estimator.py | 157 +- ...essage_based_transaction_fee_calculator.py | 16 +- .../chain_formatted_markets_fixtures.py | 75 + tests/test_async_client.py | 6 +- .../test_async_client_deprecation_warnings.py | 1007 -------- tests/test_composer.py | 652 ++--- tests/test_composer_deprecation_warnings.py | 752 +----- tests/test_composer_v2.py | 2209 +++++++++++++++++ tests/test_orderhash.py | 6 +- 329 files changed, 9422 insertions(+), 5722 deletions(-) create mode 100644 pyinjective/async_client_v2.py create mode 100644 pyinjective/composer_v2.py create mode 100644 pyinjective/core/chain_formatted_market.py create mode 100644 pyinjective/indexer_client.py create mode 100644 tests/core/test_chain_formatted_market.py create mode 100644 tests/model_fixtures/chain_formatted_markets_fixtures.py delete mode 100644 tests/test_async_client_deprecation_warnings.py create mode 100644 tests/test_composer_v2.py diff --git a/.gitignore b/.gitignore index 0afa586b..a82b828e 100644 --- a/.gitignore +++ b/.gitignore @@ -145,3 +145,4 @@ cython_debug/ .exchange_cookie .flakeheaven_cache +.vscode/settings.json diff --git a/CHANGELOG.md b/CHANGELOG.md index bc5d1cad..8929f40a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ All notable changes to this project will be documented in this file. - Updated all chain exchange module examples to use the new Exchange V2 proto queries and types - Added examples for ERC20 queries and messages - Added examples for EVM queries +- Created a new AsyncClient in the pyinjective.async_client_v2 module. This new AsyncClient provides support for the newe v2 exchange endpoints. AsyncClient in pyinjective.async_client module still provides access to the v1 exchange endpoints. +- Created a new Composer in the pyinjective.composer_v2 module. This new Composer provides support to create exchange v2 objects. Composer in pyinjective.composer module still provides access to the v1 exchange objects. +- Created the IndexerClient class to have all indexer queries. AsyncClient v2 now does not include any logic related to the indexer endpoints. The original AsyncClient still does support indexer endpoints (for backwards compatibility) but it does that by using an instance of the IndexerClient ### Removed - Removed all methods marked as deprecated in AsyncClient and Composer diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index 14098892..89ca21a4 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.orderhash import OrderHashManager @@ -41,7 +41,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - composer.create_spot_order_v2( + composer.spot_order( 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.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -62,7 +62,7 @@ async def main() -> None: ] derivative_orders = [ - composer.create_derivative_order_v2( + composer.derivative_order( 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.create_derivative_order_v2( + composer.derivative_order( 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_v2(sender=address.to_acc_bech32(), orders=spot_orders) + spot_msg = composer.msg_batch_create_spot_limit_orders(sender=address.to_acc_bech32(), orders=spot_orders) - deriv_msg = composer.msg_batch_create_derivative_limit_orders_v2( + deriv_msg = composer.msg_batch_create_derivative_limit_orders( sender=address.to_acc_bech32(), orders=derivative_orders ) @@ -178,7 +178,7 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) spot_orders = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -187,7 +187,7 @@ async def main() -> None: order_type="BUY_PO", cid=str(uuid.uuid4()), ), - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -199,7 +199,7 @@ async def main() -> None: ] derivative_orders = [ - composer.create_derivative_order_v2( + composer.derivative_order( market_id=deriv_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -211,7 +211,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.create_derivative_order_v2( + composer.derivative_order( market_id=deriv_market_id, subaccount_id=subaccount_id_2, fee_recipient=fee_recipient, @@ -226,9 +226,9 @@ async def main() -> None: ] # prepare tx msg - spot_msg = composer.msg_batch_create_spot_limit_orders_v2(sender=address.to_acc_bech32(), orders=spot_orders) + spot_msg = composer.msg_batch_create_spot_limit_orders(sender=address.to_acc_bech32(), orders=spot_orders) - deriv_msg = composer.msg_batch_create_derivative_limit_orders_v2( + deriv_msg = composer.msg_batch_create_derivative_limit_orders( sender=address.to_acc_bech32(), orders=derivative_orders ) diff --git a/examples/chain_client/3_MessageBroadcaster.py b/examples/chain_client/3_MessageBroadcaster.py index 9a7884a2..1d4534a7 100644 --- a/examples/chain_client/3_MessageBroadcaster.py +++ b/examples/chain_client/3_MessageBroadcaster.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -45,7 +45,7 @@ async def main() -> None: spot_market_id_create = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" spot_orders_to_create = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -54,7 +54,7 @@ async def main() -> None: order_type="BUY", cid=(str(uuid.uuid4())), ), - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -66,7 +66,7 @@ async def main() -> None: ] # prepare tx msg - msg = composer.msg_batch_update_orders_v2( + msg = composer.msg_batch_update_orders( 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 59cc8917..f96adb9e 100644 --- a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py +++ b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import Address, PrivateKey @@ -48,7 +48,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_v2( + msg = composer.msg_create_spot_limit_order( 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 a340b5fd..d91f7d1f 100644 --- a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py +++ b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -46,7 +46,7 @@ async def main() -> None: spot_market_id_create = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" spot_orders_to_create = [ - composer.create_spot_order_v2( + composer.composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -55,7 +55,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.create_spot_order_v2( + composer.composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -67,7 +67,7 @@ async def main() -> None: ] # prepare tx msg - msg = composer.msg_batch_update_orders_v2( + msg = composer.msg_batch_update_orders( 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 398da166..7ce49208 100644 --- a/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py +++ b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import Address, PrivateKey @@ -46,7 +46,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_v2( + msg = composer.msg_create_spot_limit_order( 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 d63ff6ea..99ef54a1 100644 --- a/examples/chain_client/7_ChainStream.py +++ b/examples/chain_client/7_ChainStream.py @@ -3,8 +3,7 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -24,36 +23,36 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) - composer = Composer(network=network.string()) + composer = await client.composer() subaccount_id = "0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000" inj_usdt_market = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" inj_usdt_perp_market = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - bank_balances_filter = composer.chain_stream_bank_balances_v2_filter( + bank_balances_filter = composer.chain_stream_bank_balances_filter( accounts=["inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r"] ) - 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_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_ids=["*"], market_ids=[inj_usdt_perp_market] ) - spot_orders_filter = composer.chain_stream_orders_v2_filter( + spot_orders_filter = composer.chain_stream_orders_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_market] ) - derivative_orders_filter = composer.chain_stream_orders_v2_filter( + derivative_orders_filter = composer.chain_stream_orders_filter( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - 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( + 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( subaccount_ids=[subaccount_id], market_ids=[inj_usdt_perp_market] ) - oracle_price_filter = composer.chain_stream_oracle_price_v2_filter(symbols=["INJ", "USDT"]) + oracle_price_filter = composer.chain_stream_oracle_price_filter(symbols=["INJ", "USDT"]) task = asyncio.get_event_loop().create_task( - client.listen_chain_stream_v2_updates( + client.listen_chain_stream_updates( callback=chain_stream_event_processor, on_end_callback=stream_closed_processor, on_status_callback=stream_error_processor, diff --git a/examples/chain_client/9_PaginatedRequestExample.py b/examples/chain_client/9_PaginatedRequestExample.py index 515aed8b..05a6b1ee 100644 --- a/examples/chain_client/9_PaginatedRequestExample.py +++ b/examples/chain_client/9_PaginatedRequestExample.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/auction/1_MsgBid.py b/examples/chain_client/auction/1_MsgBid.py index 858195e6..350d82f6 100644 --- a/examples/chain_client/auction/1_MsgBid.py +++ b/examples/chain_client/auction/1_MsgBid.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -30,7 +30,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - msg = composer.MsgBid(sender=address.to_acc_bech32(), round=16250, bid_amount=1) + msg = composer.msg_bid(sender=address.to_acc_bech32(), round=16250, bid_amount=1) # build sim tx tx = ( diff --git a/examples/chain_client/auth/query/1_Account.py b/examples/chain_client/auth/query/1_Account.py index ed193834..7a1d7522 100644 --- a/examples/chain_client/auth/query/1_Account.py +++ b/examples/chain_client/auth/query/1_Account.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/authz/1_MsgGrant.py b/examples/chain_client/authz/1_MsgGrant.py index 6802b731..a57bed85 100644 --- a/examples/chain_client/authz/1_MsgGrant.py +++ b/examples/chain_client/authz/1_MsgGrant.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,7 @@ async def main() -> None: # prepare tx msg # GENERIC AUTHZ - msg = composer.MsgGrantGeneric( + msg = composer.msg_grant_generic( granter=address.to_acc_bech32(), grantee=grantee_public_address, msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", @@ -43,7 +43,7 @@ async def main() -> None: ) # TYPED AUTHZ - # msg = composer.MsgGrantTyped( + # msg = composer.msg_grant_typed( # granter = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku", # grantee = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", # msg_type = "CreateSpotLimitOrderAuthz", diff --git a/examples/chain_client/authz/2_MsgExec.py b/examples/chain_client/authz/2_MsgExec.py index f3789491..691fd830 100644 --- a/examples/chain_client/authz/2_MsgExec.py +++ b/examples/chain_client/authz/2_MsgExec.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -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_v2( + msg0 = composer.msg_create_spot_limit_order( sender=granter_inj_address, market_id=market_id, subaccount_id=granter_subaccount_id, @@ -49,7 +49,7 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - msg = composer.MsgExec(grantee=grantee, msgs=[msg0]) + msg = composer.msg_exec(grantee=grantee, msgs=[msg0]) # build sim tx tx = ( diff --git a/examples/chain_client/authz/3_MsgRevoke.py b/examples/chain_client/authz/3_MsgRevoke.py index 44b26808..3e534f7c 100644 --- a/examples/chain_client/authz/3_MsgRevoke.py +++ b/examples/chain_client/authz/3_MsgRevoke.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -31,7 +31,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - msg = composer.MsgRevoke( + msg = composer.msg_revoke( granter=address.to_acc_bech32(), grantee=grantee_public_address, msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", diff --git a/examples/chain_client/authz/query/1_Grants.py b/examples/chain_client/authz/query/1_Grants.py index b11fb486..1f252508 100644 --- a/examples/chain_client/authz/query/1_Grants.py +++ b/examples/chain_client/authz/query/1_Grants.py @@ -3,7 +3,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/1_MsgSend.py b/examples/chain_client/bank/1_MsgSend.py index d957c1f6..4b34d6f4 100644 --- a/examples/chain_client/bank/1_MsgSend.py +++ b/examples/chain_client/bank/1_MsgSend.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -33,7 +33,7 @@ async def main() -> None: msg = composer.msg_send( from_address=address.to_acc_bech32(), to_address="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", - amount=1, + amount=100000000000000000, denom="inj", ) diff --git a/examples/chain_client/bank/query/10_SendEnabled.py b/examples/chain_client/bank/query/10_SendEnabled.py index 03ed41d9..f043e878 100644 --- a/examples/chain_client/bank/query/10_SendEnabled.py +++ b/examples/chain_client/bank/query/10_SendEnabled.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/1_BankBalance.py b/examples/chain_client/bank/query/1_BankBalance.py index af17dfac..fa9e5aac 100644 --- a/examples/chain_client/bank/query/1_BankBalance.py +++ b/examples/chain_client/bank/query/1_BankBalance.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/2_BankBalances.py b/examples/chain_client/bank/query/2_BankBalances.py index 6ead7b13..5fb6d8e0 100644 --- a/examples/chain_client/bank/query/2_BankBalances.py +++ b/examples/chain_client/bank/query/2_BankBalances.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/3_SpendableBalances.py b/examples/chain_client/bank/query/3_SpendableBalances.py index d13836e0..81f294ff 100644 --- a/examples/chain_client/bank/query/3_SpendableBalances.py +++ b/examples/chain_client/bank/query/3_SpendableBalances.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py b/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py index 639d7933..06d13e6b 100644 --- a/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py +++ b/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/5_TotalSupply.py b/examples/chain_client/bank/query/5_TotalSupply.py index 8156c54b..adba28cc 100644 --- a/examples/chain_client/bank/query/5_TotalSupply.py +++ b/examples/chain_client/bank/query/5_TotalSupply.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/6_SupplyOf.py b/examples/chain_client/bank/query/6_SupplyOf.py index 225b9db7..681453a2 100644 --- a/examples/chain_client/bank/query/6_SupplyOf.py +++ b/examples/chain_client/bank/query/6_SupplyOf.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/7_DenomMetadata.py b/examples/chain_client/bank/query/7_DenomMetadata.py index ff8a9337..5bf78e71 100644 --- a/examples/chain_client/bank/query/7_DenomMetadata.py +++ b/examples/chain_client/bank/query/7_DenomMetadata.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/8_DenomsMetadata.py b/examples/chain_client/bank/query/8_DenomsMetadata.py index 26402f49..8540c9cd 100644 --- a/examples/chain_client/bank/query/8_DenomsMetadata.py +++ b/examples/chain_client/bank/query/8_DenomsMetadata.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/bank/query/9_DenomOwners.py b/examples/chain_client/bank/query/9_DenomOwners.py index 3204cc34..da8a6538 100644 --- a/examples/chain_client/bank/query/9_DenomOwners.py +++ b/examples/chain_client/bank/query/9_DenomOwners.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py index d560556c..be2ada42 100644 --- a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py +++ b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py index c0c86bbc..63b37a6d 100644 --- a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py +++ b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py b/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py index 13161630..3d8442b7 100644 --- a/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py +++ b/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py b/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py index 31833682..12321f9f 100644 --- a/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py +++ b/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/3_ValidatorCommission.py b/examples/chain_client/distribution/query/3_ValidatorCommission.py index a82e191b..7ce6104b 100644 --- a/examples/chain_client/distribution/query/3_ValidatorCommission.py +++ b/examples/chain_client/distribution/query/3_ValidatorCommission.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/4_ValidatorSlashes.py b/examples/chain_client/distribution/query/4_ValidatorSlashes.py index 08dbfea1..198327f4 100644 --- a/examples/chain_client/distribution/query/4_ValidatorSlashes.py +++ b/examples/chain_client/distribution/query/4_ValidatorSlashes.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/5_DelegationRewards.py b/examples/chain_client/distribution/query/5_DelegationRewards.py index da112263..f0c822d2 100644 --- a/examples/chain_client/distribution/query/5_DelegationRewards.py +++ b/examples/chain_client/distribution/query/5_DelegationRewards.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/6_DelegationTotalRewards.py b/examples/chain_client/distribution/query/6_DelegationTotalRewards.py index c67dc94f..0945ae26 100644 --- a/examples/chain_client/distribution/query/6_DelegationTotalRewards.py +++ b/examples/chain_client/distribution/query/6_DelegationTotalRewards.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/7_DelegatorValidators.py b/examples/chain_client/distribution/query/7_DelegatorValidators.py index f03fb8ec..b27373d9 100644 --- a/examples/chain_client/distribution/query/7_DelegatorValidators.py +++ b/examples/chain_client/distribution/query/7_DelegatorValidators.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py b/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py index d3c27091..bcc5a732 100644 --- a/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py +++ b/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/distribution/query/9_CommunityPool.py b/examples/chain_client/distribution/query/9_CommunityPool.py index 7a803d03..190d3b95 100644 --- a/examples/chain_client/distribution/query/9_CommunityPool.py +++ b/examples/chain_client/distribution/query/9_CommunityPool.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/erc20/1_CreateTokenPair.py b/examples/chain_client/erc20/1_CreateTokenPair.py index f08ca792..5fe3c00f 100644 --- a/examples/chain_client/erc20/1_CreateTokenPair.py +++ b/examples/chain_client/erc20/1_CreateTokenPair.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/erc20/2_DeleteTokenPair.py b/examples/chain_client/erc20/2_DeleteTokenPair.py index 4cb508e4..b4fd73da 100644 --- a/examples/chain_client/erc20/2_DeleteTokenPair.py +++ b/examples/chain_client/erc20/2_DeleteTokenPair.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/erc20/query/1_AllTokenPairs.py b/examples/chain_client/erc20/query/1_AllTokenPairs.py index 07c7a359..299a8914 100644 --- a/examples/chain_client/erc20/query/1_AllTokenPairs.py +++ b/examples/chain_client/erc20/query/1_AllTokenPairs.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/erc20/query/2_TokenPairByDenom.py b/examples/chain_client/erc20/query/2_TokenPairByDenom.py index cc748c51..fa52bb0d 100644 --- a/examples/chain_client/erc20/query/2_TokenPairByDenom.py +++ b/examples/chain_client/erc20/query/2_TokenPairByDenom.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py b/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py index 15f40394..d67db422 100644 --- a/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py +++ b/examples/chain_client/erc20/query/3_TokenPairByERC20Address.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/1_Account.py b/examples/chain_client/evm/query/1_Account.py index 1932b003..76917ed2 100644 --- a/examples/chain_client/evm/query/1_Account.py +++ b/examples/chain_client/evm/query/1_Account.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/2_CosmosAccount.py b/examples/chain_client/evm/query/2_CosmosAccount.py index 767dce73..a062d756 100644 --- a/examples/chain_client/evm/query/2_CosmosAccount.py +++ b/examples/chain_client/evm/query/2_CosmosAccount.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/3_ValidatorAccount.py b/examples/chain_client/evm/query/3_ValidatorAccount.py index f89f2c20..57d2271c 100644 --- a/examples/chain_client/evm/query/3_ValidatorAccount.py +++ b/examples/chain_client/evm/query/3_ValidatorAccount.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/4_Balance.py b/examples/chain_client/evm/query/4_Balance.py index f26131e2..32c072c7 100644 --- a/examples/chain_client/evm/query/4_Balance.py +++ b/examples/chain_client/evm/query/4_Balance.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/5_Storage.py b/examples/chain_client/evm/query/5_Storage.py index b4d54e4d..48021968 100644 --- a/examples/chain_client/evm/query/5_Storage.py +++ b/examples/chain_client/evm/query/5_Storage.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/6_Code.py b/examples/chain_client/evm/query/6_Code.py index 5b79d873..43d08667 100644 --- a/examples/chain_client/evm/query/6_Code.py +++ b/examples/chain_client/evm/query/6_Code.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/evm/query/7_BaseFee.py b/examples/chain_client/evm/query/7_BaseFee.py index 339251c9..67dcfee4 100644 --- a/examples/chain_client/evm/query/7_BaseFee.py +++ b/examples/chain_client/evm/query/7_BaseFee.py @@ -5,7 +5,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py index cdb301b9..ea1f3afd 100644 --- a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_derivative_limit_order_v2( + msg = composer.msg_create_derivative_limit_order( 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 7f2aa40a..84bf1ff1 100644 --- a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py +++ b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_derivative_market_order_v2( + msg = composer.msg_create_derivative_market_order( 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 e39d46b5..01e5778c 100644 --- a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py +++ b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,7 @@ async def main() -> None: order_hash = "0x667ee6f37f6d06bf473f4e1434e92ac98ff43c785405e2a511a0843daeca2de9" # prepare tx msg - msg = composer.msg_cancel_derivative_order_v2( + msg = composer.msg_cancel_derivative_order( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py index 0b9fd3e4..78e078f6 100644 --- a/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py +++ b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -41,7 +41,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_binary_options_market_launch_v2( + message = composer.msg_instant_binary_options_market_launch( 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 97fb1c96..4f83e4f3 100644 --- a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_binary_options_limit_order_v2( + msg = composer.msg_create_binary_options_limit_order( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py index 9fef0a23..42142538 100644 --- a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py +++ b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_binary_options_market_order_v2( + msg = composer.msg_create_binary_options_market_order( 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 0882978a..26e8a984 100644 --- a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py +++ b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,7 @@ async def main() -> None: order_hash = "a975fbd72b874bdbf5caf5e1e8e2653937f33ce6dd14d241c06c8b1f7b56be46" # prepare tx msg - msg = composer.msg_cancel_binary_options_order_v2( + msg = composer.msg_cancel_binary_options_order( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py index 5c7601dd..878befc7 100644 --- a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py +++ b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -32,7 +32,7 @@ async def main() -> None: dest_subaccount_id = address.get_subaccount_id(index=1) # prepare tx msg - msg = composer.msg_subaccount_transfer_v2( + msg = composer.msg_subaccount_transfer( sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, diff --git a/examples/chain_client/exchange/18_MsgExternalTransfer.py b/examples/chain_client/exchange/18_MsgExternalTransfer.py index 617a0bc3..b4720310 100644 --- a/examples/chain_client/exchange/18_MsgExternalTransfer.py +++ b/examples/chain_client/exchange/18_MsgExternalTransfer.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -32,7 +32,7 @@ async def main() -> None: dest_subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" # prepare tx msg - msg = composer.msg_external_transfer_v2( + msg = composer.msg_external_transfer( sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, diff --git a/examples/chain_client/exchange/19_MsgLiquidatePosition.py b/examples/chain_client/exchange/19_MsgLiquidatePosition.py index 58444d23..3e9054e9 100644 --- a/examples/chain_client/exchange/19_MsgLiquidatePosition.py +++ b/examples/chain_client/exchange/19_MsgLiquidatePosition.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" cid = str(uuid.uuid4()) - order = composer.create_derivative_order_v2( + order = composer.derivative_order( 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_v2( + msg = composer.msg_liquidate_position( 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 6061253f..efc6144e 100644 --- a/examples/chain_client/exchange/1_MsgDeposit.py +++ b/examples/chain_client/exchange/1_MsgDeposit.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -31,7 +31,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) # prepare tx msg - msg = composer.msg_deposit_v2(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom="inj") + msg = composer.msg_deposit(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 25e3ee53..c5c3d006 100644 --- a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py +++ b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py @@ -5,7 +5,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,7 @@ async def main() -> None: market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" # prepare tx msg - msg = composer.msg_increase_position_margin_v2( + msg = composer.msg_increase_position_margin( sender=address.to_acc_bech32(), market_id=market_id, source_subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/21_MsgRewardsOptOut.py b/examples/chain_client/exchange/21_MsgRewardsOptOut.py index 0730fe76..a7be5b27 100644 --- a/examples/chain_client/exchange/21_MsgRewardsOptOut.py +++ b/examples/chain_client/exchange/21_MsgRewardsOptOut.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py index 7114fb6a..748c4459 100644 --- a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py +++ b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py @@ -5,7 +5,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py index 7f58d2ee..cfc05ab8 100644 --- a/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py +++ b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -45,7 +45,7 @@ async def main() -> None: market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" # prepare tx msg - msg = composer.msg_decrease_position_margin_v2( + msg = composer.msg_decrease_position_margin( 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 52a7d22c..4bdcbf14 100644 --- a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py +++ b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -42,7 +42,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_update_spot_market_v2( + message = composer.msg_update_spot_market( 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 dd70cfb8..9c4f1e99 100644 --- a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py +++ b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -42,7 +42,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_update_derivative_market_v2( + message = composer.msg_update_derivative_market( admin=address.to_acc_bech32(), market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", new_ticker="INJ/USDT PERP 2", diff --git a/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py b/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py index d84f0629..778344e9 100644 --- a/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py +++ b/examples/chain_client/exchange/26_MsgAuthorizeStakeGrants.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/exchange/27_MsgActivateStakeGrant.py b/examples/chain_client/exchange/27_MsgActivateStakeGrant.py index 1a799231..24584c33 100644 --- a/examples/chain_client/exchange/27_MsgActivateStakeGrant.py +++ b/examples/chain_client/exchange/27_MsgActivateStakeGrant.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py index bfb6507b..ddaaa2ca 100644 --- a/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py +++ b/examples/chain_client/exchange/28_MsgCreateGTBSpotLimitOrder.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -51,7 +51,7 @@ async def main() -> None: cid = str(uuid.uuid4()) # prepare tx msg - msg = composer.msg_create_spot_limit_order_v2( + msg = composer.msg_create_spot_limit_order( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py index 03b14924..cbf980af 100644 --- a/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/29_MsgCreateGTBDerivativeLimitOrder.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -50,7 +50,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_derivative_limit_order_v2( + msg = composer.msg_create_derivative_limit_order( sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, diff --git a/examples/chain_client/exchange/2_MsgWithdraw.py b/examples/chain_client/exchange/2_MsgWithdraw.py index d3defa85..72d69668 100644 --- a/examples/chain_client/exchange/2_MsgWithdraw.py +++ b/examples/chain_client/exchange/2_MsgWithdraw.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -32,7 +32,7 @@ async def main() -> None: denom = "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" # prepare tx msg - msg = composer.msg_withdraw_v2(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom=denom) + msg = composer.msg_withdraw(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 ba863201..9aa7cf9a 100644 --- a/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py +++ b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -42,7 +42,7 @@ async def main() -> None: await client.fetch_account(address.to_acc_bech32()) # prepare tx msg - message = composer.msg_instant_spot_market_launch_v2( + message = composer.msg_instant_spot_market_launch( sender=address.to_acc_bech32(), ticker="INJ/USDC", base_denom="inj", diff --git a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py index 082673b4..60b7368f 100644 --- a/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py +++ b/examples/chain_client/exchange/4_MsgInstantPerpetualMarketLaunch.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py index 6f65a772..daa2bafa 100644 --- a/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py +++ b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py index 4753612f..afc984ce 100644 --- a/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py +++ b/examples/chain_client/exchange/6_MsgCreateSpotLimitOrder.py @@ -6,7 +6,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey @@ -48,7 +48,7 @@ async def main() -> None: cid = str(uuid.uuid4()) # prepare tx msg - msg = composer.msg_create_spot_limit_order_v2( + msg = composer.msg_create_spot_limit_order( 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 85e6b8a7..89423499 100644 --- a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py +++ b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -37,7 +37,7 @@ async def main() -> None: fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" # prepare tx msg - msg = composer.msg_create_spot_market_order_v2( + msg = composer.msg_create_spot_market_order( 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 cc200ed3..ab1381db 100644 --- a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py +++ b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,7 @@ async def main() -> None: order_hash = "0x52888d397d5ae821869c8acde5823dfd8018802d2ef642d3aa639e5308173fcf" # prepare tx msg - msg = composer.msg_cancel_spot_order_v2( + msg = composer.msg_cancel_spot_order( 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 8bd5204f..463cb762 100644 --- a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py +++ b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py @@ -6,7 +6,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -44,12 +44,12 @@ async def main() -> None: spot_market_id_cancel_2 = "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0" derivative_orders_to_cancel = [ - composer.create_order_data_without_mask_v2( + composer.create_order_data_without_mask( market_id=derivative_market_id_cancel, subaccount_id=subaccount_id, order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", ), - composer.create_order_data_without_mask_v2( + composer.create_order_data_without_mask( 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.create_order_data_without_mask_v2( + composer.create_order_data_without_mask( market_id=spot_market_id_cancel, subaccount_id=subaccount_id, cid="0e5c3ad5-2cc4-4a2a-bbe5-b12697739163", ), - composer.create_order_data_without_mask_v2( + composer.create_order_data_without_mask( 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.create_derivative_order_v2( + composer.derivative_order( 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.create_derivative_order_v2( + composer.derivative_order( 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.create_spot_order_v2( + composer.composer.spot_order( 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.create_spot_order_v2( + composer.composer.spot_order( 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_v2( + msg = composer.msg_batch_update_orders( 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 54d7ee9a..71345caf 100644 --- a/examples/chain_client/exchange/query/10_SpotMarkets.py +++ b/examples/chain_client/exchange/query/10_SpotMarkets.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_markets = await client.fetch_chain_spot_markets_v2( + spot_markets = await client.fetch_chain_spot_markets( 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 e61b2c1e..7eb4ea8f 100644 --- a/examples/chain_client/exchange/query/11_SpotMarket.py +++ b/examples/chain_client/exchange/query/11_SpotMarket.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_market = await client.fetch_chain_spot_market_v2( + spot_market = await client.fetch_chain_spot_market( 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 7b035ad1..72ffecd0 100644 --- a/examples/chain_client/exchange/query/12_FullSpotMarkets.py +++ b/examples/chain_client/exchange/query/12_FullSpotMarkets.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_markets = await client.fetch_chain_full_spot_markets_v2( + spot_markets = await client.fetch_chain_full_spot_markets( 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 0f19c442..9b0f6754 100644 --- a/examples/chain_client/exchange/query/13_FullSpotMarket.py +++ b/examples/chain_client/exchange/query/13_FullSpotMarket.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - spot_market = await client.fetch_chain_full_spot_market_v2( + spot_market = await client.fetch_chain_full_spot_market( 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 601b8c87..120cae52 100644 --- a/examples/chain_client/exchange/query/14_SpotOrderbook.py +++ b/examples/chain_client/exchange/query/14_SpotOrderbook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network @@ -14,7 +14,7 @@ async def main() -> None: pagination = PaginationOption(limit=2) - orderbook = await client.fetch_chain_spot_orderbook_v2( + orderbook = await client.fetch_chain_spot_orderbook( 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 3d817404..e7c658cd 100644 --- a/examples/chain_client/exchange/query/15_TraderSpotOrders.py +++ b/examples/chain_client/exchange/query/15_TraderSpotOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_spot_orders_v2( + orders = await client.fetch_chain_trader_spot_orders( 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 cfd732d4..9b380098 100644 --- a/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py +++ b/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_account_address_spot_orders( 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 dbc4cfcd..cfc1151a 100644 --- a/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py +++ b/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_spot_orders_by_hashes( 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 75669295..d2f1b043 100644 --- a/examples/chain_client/exchange/query/18_SubaccountOrders.py +++ b/examples/chain_client/exchange/query/18_SubaccountOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_subaccount_orders_v2( + orders = await client.fetch_chain_subaccount_orders( 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 557ff649..f60a8d28 100644 --- a/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py +++ b/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_trader_spot_transient_orders( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id=subaccount_id, ) diff --git a/examples/chain_client/exchange/query/1_SubaccountDeposits.py b/examples/chain_client/exchange/query/1_SubaccountDeposits.py index f9afb8ae..e4f07c30 100644 --- a/examples/chain_client/exchange/query/1_SubaccountDeposits.py +++ b/examples/chain_client/exchange/query/1_SubaccountDeposits.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py b/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py index 66a25482..1fe29a87 100644 --- a/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py +++ b/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - prices = await client.fetch_spot_mid_price_and_tob_v2( + prices = await client.fetch_spot_mid_price_and_tob( 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 0c0acbc0..b2057f04 100644 --- a/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py +++ b/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - prices = await client.fetch_derivative_mid_price_and_tob_v2( + prices = await client.fetch_derivative_mid_price_and_tob( 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 946b099f..3eb40c1e 100644 --- a/examples/chain_client/exchange/query/22_DerivativeOrderbook.py +++ b/examples/chain_client/exchange/query/22_DerivativeOrderbook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network @@ -14,7 +14,7 @@ async def main() -> None: pagination = PaginationOption(limit=2) - orderbook = await client.fetch_chain_derivative_orderbook_v2( + orderbook = await client.fetch_chain_derivative_orderbook( 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 86d3908b..6075eeec 100644 --- a/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py +++ b/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_chain_trader_derivative_orders_v2( + orders = await client.fetch_chain_trader_derivative_orders( 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 639d8407..ed4dfeb3 100644 --- a/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py +++ b/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_account_address_derivative_orders( 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 7b4111d7..74bacf00 100644 --- a/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py +++ b/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_derivative_orders_by_hashes( 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 9bcd2e32..65ecd7df 100644 --- a/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py +++ b/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + orders = await client.fetch_chain_trader_derivative_transient_orders( 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 ab7ba653..e51f619a 100644 --- a/examples/chain_client/exchange/query/27_DerivativeMarkets.py +++ b/examples/chain_client/exchange/query/27_DerivativeMarkets.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - derivative_markets = await client.fetch_chain_derivative_markets_v2( + derivative_markets = await client.fetch_chain_derivative_markets( 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 4e5418fe..168cc169 100644 --- a/examples/chain_client/exchange/query/28_DerivativeMarket.py +++ b/examples/chain_client/exchange/query/28_DerivativeMarket.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - derivative_market = await client.fetch_chain_derivative_market_v2( + derivative_market = await client.fetch_chain_derivative_market( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(derivative_market) diff --git a/examples/chain_client/exchange/query/29_DerivativeMarketAddress.py b/examples/chain_client/exchange/query/29_DerivativeMarketAddress.py index c2d88805..ef97f9a8 100644 --- a/examples/chain_client/exchange/query/29_DerivativeMarketAddress.py +++ b/examples/chain_client/exchange/query/29_DerivativeMarketAddress.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/2_SubaccountDeposit.py b/examples/chain_client/exchange/query/2_SubaccountDeposit.py index 5002397d..28df1ab0 100644 --- a/examples/chain_client/exchange/query/2_SubaccountDeposit.py +++ b/examples/chain_client/exchange/query/2_SubaccountDeposit.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/30_SubaccountTradeNonce.py b/examples/chain_client/exchange/query/30_SubaccountTradeNonce.py index ad81aca3..220e1ac1 100644 --- a/examples/chain_client/exchange/query/30_SubaccountTradeNonce.py +++ b/examples/chain_client/exchange/query/30_SubaccountTradeNonce.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/31_Positions.py b/examples/chain_client/exchange/query/31_Positions.py index f2011166..8d2b2f9d 100644 --- a/examples/chain_client/exchange/query/31_Positions.py +++ b/examples/chain_client/exchange/query/31_Positions.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - positions = await client.fetch_chain_positions_v2() + positions = await client.fetch_chain_positions() print(positions) diff --git a/examples/chain_client/exchange/query/32_SubaccountPositions.py b/examples/chain_client/exchange/query/32_SubaccountPositions.py index 2103352d..1c925781 100644 --- a/examples/chain_client/exchange/query/32_SubaccountPositions.py +++ b/examples/chain_client/exchange/query/32_SubaccountPositions.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - positions = await client.fetch_chain_subaccount_positions_v2( + positions = await client.fetch_chain_subaccount_positions( 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 9bcde762..5ff5cd16 100644 --- a/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py +++ b/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + position = await client.fetch_chain_subaccount_position_in_market( 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 1c4307b1..7e3a2dd5 100644 --- a/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py +++ b/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + position = await client.fetch_chain_subaccount_effective_position_in_market( subaccount_id=subaccount_id, market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) diff --git a/examples/chain_client/exchange/query/35_PerpetualMarketInfo.py b/examples/chain_client/exchange/query/35_PerpetualMarketInfo.py index ca27f552..2b2cb79a 100644 --- a/examples/chain_client/exchange/query/35_PerpetualMarketInfo.py +++ b/examples/chain_client/exchange/query/35_PerpetualMarketInfo.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py b/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py index d8bc392f..877c7b12 100644 --- a/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py +++ b/examples/chain_client/exchange/query/36_ExpiryFuturesMarketInfo.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - market_info = await client.fetch_chain_expiry_futures_market_info_v2( + market_info = await client.fetch_chain_expiry_futures_market_info( 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 d735c2c2..d669c3e3 100644 --- a/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py +++ b/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - funding = await client.fetch_chain_perpetual_market_funding_v2( + funding = await client.fetch_chain_perpetual_market_funding( 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 3f9caa8f..b4ab45b6 100644 --- a/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py +++ b/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - metadata = await client.fetch_subaccount_order_metadata_v2( + metadata = await client.fetch_subaccount_order_metadata( subaccount_id=subaccount_id, ) print(metadata) diff --git a/examples/chain_client/exchange/query/39_TradeRewardPoints.py b/examples/chain_client/exchange/query/39_TradeRewardPoints.py index 13f08730..dc557dc9 100644 --- a/examples/chain_client/exchange/query/39_TradeRewardPoints.py +++ b/examples/chain_client/exchange/query/39_TradeRewardPoints.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/3_ExchangeBalances.py b/examples/chain_client/exchange/query/3_ExchangeBalances.py index 091bf10c..86cd43a7 100644 --- a/examples/chain_client/exchange/query/3_ExchangeBalances.py +++ b/examples/chain_client/exchange/query/3_ExchangeBalances.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/40_PendingTradeRewardPoints.py b/examples/chain_client/exchange/query/40_PendingTradeRewardPoints.py index fa3e8aa2..1d7af19f 100644 --- a/examples/chain_client/exchange/query/40_PendingTradeRewardPoints.py +++ b/examples/chain_client/exchange/query/40_PendingTradeRewardPoints.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/41_TradeRewardCampaign.py b/examples/chain_client/exchange/query/41_TradeRewardCampaign.py index 33e45a7e..ad48a1f4 100644 --- a/examples/chain_client/exchange/query/41_TradeRewardCampaign.py +++ b/examples/chain_client/exchange/query/41_TradeRewardCampaign.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py b/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py index ab349de3..5ddd6b96 100644 --- a/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py +++ b/examples/chain_client/exchange/query/42_FeeDiscountAccountInfo.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + fee_discount = await client.fetch_fee_discount_account_info( 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 a0856bc5..ffbe6a32 100644 --- a/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py +++ b/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - schedule = await client.fetch_fee_discount_schedule_v2() + schedule = await client.fetch_fee_discount_schedule() print(schedule) diff --git a/examples/chain_client/exchange/query/44_BalanceMismatches.py b/examples/chain_client/exchange/query/44_BalanceMismatches.py index c7f7ca5e..529bb756 100644 --- a/examples/chain_client/exchange/query/44_BalanceMismatches.py +++ b/examples/chain_client/exchange/query/44_BalanceMismatches.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/45_BalanceWithBalanceHolds.py b/examples/chain_client/exchange/query/45_BalanceWithBalanceHolds.py index 6587c59a..b47120c6 100644 --- a/examples/chain_client/exchange/query/45_BalanceWithBalanceHolds.py +++ b/examples/chain_client/exchange/query/45_BalanceWithBalanceHolds.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/46_FeeDiscountTierStatistics.py b/examples/chain_client/exchange/query/46_FeeDiscountTierStatistics.py index 5671e4ce..f2259241 100644 --- a/examples/chain_client/exchange/query/46_FeeDiscountTierStatistics.py +++ b/examples/chain_client/exchange/query/46_FeeDiscountTierStatistics.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/47_MitoVaultInfos.py b/examples/chain_client/exchange/query/47_MitoVaultInfos.py index 3faa5cb9..c61b27f8 100644 --- a/examples/chain_client/exchange/query/47_MitoVaultInfos.py +++ b/examples/chain_client/exchange/query/47_MitoVaultInfos.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/48_QueryMarketIDFromVault.py b/examples/chain_client/exchange/query/48_QueryMarketIDFromVault.py index e699dbaa..9ace3593 100644 --- a/examples/chain_client/exchange/query/48_QueryMarketIDFromVault.py +++ b/examples/chain_client/exchange/query/48_QueryMarketIDFromVault.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py b/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py index a2d5adeb..650a6130 100644 --- a/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py +++ b/examples/chain_client/exchange/query/49_HistoricalTradeRecords.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - records = await client.fetch_historical_trade_records_v2( + records = await client.fetch_historical_trade_records( 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 b7ca7b59..66c5b12f 100644 --- a/examples/chain_client/exchange/query/4_AggregateVolume.py +++ b/examples/chain_client/exchange/query/4_AggregateVolume.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -25,10 +25,10 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - volume = await client.fetch_aggregate_volume_v2(account=address.to_acc_bech32()) + volume = await client.fetch_aggregate_volume(account=address.to_acc_bech32()) print(volume) - volume = await client.fetch_aggregate_volume_v2(account=subaccount_id) + volume = await client.fetch_aggregate_volume(account=subaccount_id) print(volume) diff --git a/examples/chain_client/exchange/query/50_IsOptedOutOfRewards.py b/examples/chain_client/exchange/query/50_IsOptedOutOfRewards.py index 28c0925c..c5bfccbb 100644 --- a/examples/chain_client/exchange/query/50_IsOptedOutOfRewards.py +++ b/examples/chain_client/exchange/query/50_IsOptedOutOfRewards.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/51_OptedOutOfRewardsAccounts.py b/examples/chain_client/exchange/query/51_OptedOutOfRewardsAccounts.py index 9940f799..36eb606b 100644 --- a/examples/chain_client/exchange/query/51_OptedOutOfRewardsAccounts.py +++ b/examples/chain_client/exchange/query/51_OptedOutOfRewardsAccounts.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/52_MarketVolatility.py b/examples/chain_client/exchange/query/52_MarketVolatility.py index 6f532675..50d50991 100644 --- a/examples/chain_client/exchange/query/52_MarketVolatility.py +++ b/examples/chain_client/exchange/query/52_MarketVolatility.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -16,7 +16,7 @@ async def main() -> None: max_age = 0 include_raw_history = True include_metadata = True - volatility = await client.fetch_market_volatility_v2( + volatility = await client.fetch_market_volatility( 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 3068bf33..bdf22810 100644 --- a/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py +++ b/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - markets = await client.fetch_chain_binary_options_markets_v2(status="Active") + markets = await client.fetch_chain_binary_options_markets(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 7481c7df..8e35afd0 100644 --- a/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py +++ b/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -26,7 +26,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) - orders = await client.fetch_trader_derivative_conditional_orders_v2( + orders = await client.fetch_trader_derivative_conditional_orders( subaccount_id=subaccount_id, market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) diff --git a/examples/chain_client/exchange/query/55_MarketAtomicExecutionFeeMultiplier.py b/examples/chain_client/exchange/query/55_MarketAtomicExecutionFeeMultiplier.py index 328028d3..76ef30fe 100644 --- a/examples/chain_client/exchange/query/55_MarketAtomicExecutionFeeMultiplier.py +++ b/examples/chain_client/exchange/query/55_MarketAtomicExecutionFeeMultiplier.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/56_ActiveStakeGrant.py b/examples/chain_client/exchange/query/56_ActiveStakeGrant.py index f5c66c9b..582aaad4 100644 --- a/examples/chain_client/exchange/query/56_ActiveStakeGrant.py +++ b/examples/chain_client/exchange/query/56_ActiveStakeGrant.py @@ -3,7 +3,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py index a59fd81d..38f10f92 100644 --- a/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py +++ b/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/57_GrantAuthorization.py b/examples/chain_client/exchange/query/57_GrantAuthorization.py index c9509987..f2b9bcba 100644 --- a/examples/chain_client/exchange/query/57_GrantAuthorization.py +++ b/examples/chain_client/exchange/query/57_GrantAuthorization.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/57_L3SpotOrderBook.py b/examples/chain_client/exchange/query/57_L3SpotOrderBook.py index c1fce58e..f2fee345 100644 --- a/examples/chain_client/exchange/query/57_L3SpotOrderBook.py +++ b/examples/chain_client/exchange/query/57_L3SpotOrderBook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/58_GrantAuthorizations.py b/examples/chain_client/exchange/query/58_GrantAuthorizations.py index 0dc140f4..5ca0009c 100644 --- a/examples/chain_client/exchange/query/58_GrantAuthorizations.py +++ b/examples/chain_client/exchange/query/58_GrantAuthorizations.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/58_MarketBalance.py b/examples/chain_client/exchange/query/58_MarketBalance.py index fb31e2a7..fc8a8df1 100644 --- a/examples/chain_client/exchange/query/58_MarketBalance.py +++ b/examples/chain_client/exchange/query/58_MarketBalance.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py index 5d605f26..38f10f92 100644 --- a/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py +++ b/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - orderbook = await client.fetch_l3_derivative_orderbook_v2( + orderbook = await client.fetch_l3_derivative_orderbook( market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", ) print(orderbook) diff --git a/examples/chain_client/exchange/query/59_MarketBalances.py b/examples/chain_client/exchange/query/59_MarketBalances.py index 03cad68a..219a5f62 100644 --- a/examples/chain_client/exchange/query/59_MarketBalances.py +++ b/examples/chain_client/exchange/query/59_MarketBalances.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/5_AggregateVolumes.py b/examples/chain_client/exchange/query/5_AggregateVolumes.py index 506cea2f..06fe8152 100644 --- a/examples/chain_client/exchange/query/5_AggregateVolumes.py +++ b/examples/chain_client/exchange/query/5_AggregateVolumes.py @@ -4,7 +4,7 @@ import dotenv from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -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_v2( + volume = await client.fetch_aggregate_volumes( accounts=[address.to_acc_bech32()], market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) diff --git a/examples/chain_client/exchange/query/60_DenomMinNotional.py b/examples/chain_client/exchange/query/60_DenomMinNotional.py index 40919df9..842c822e 100644 --- a/examples/chain_client/exchange/query/60_DenomMinNotional.py +++ b/examples/chain_client/exchange/query/60_DenomMinNotional.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/60_L3SpotOrderBook.py b/examples/chain_client/exchange/query/60_L3SpotOrderBook.py index 21e55aff..f2fee345 100644 --- a/examples/chain_client/exchange/query/60_L3SpotOrderBook.py +++ b/examples/chain_client/exchange/query/60_L3SpotOrderBook.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - orderbook = await client.fetch_l3_spot_orderbook_v2( + orderbook = await client.fetch_l3_spot_orderbook( market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", ) print(orderbook) diff --git a/examples/chain_client/exchange/query/61_DenomMinNotionals.py b/examples/chain_client/exchange/query/61_DenomMinNotionals.py index 8925f663..b652f9fb 100644 --- a/examples/chain_client/exchange/query/61_DenomMinNotionals.py +++ b/examples/chain_client/exchange/query/61_DenomMinNotionals.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py index 55f34d9a..d1ce6c8b 100644 --- a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py +++ b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -13,7 +13,7 @@ async def main() -> None: market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - volume = await client.fetch_aggregate_market_volume_v2(market_id=market_id) + volume = await client.fetch_aggregate_market_volume(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 7eb22a26..1a58ea0f 100644 --- a/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py +++ b/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +11,7 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) - volume = await client.fetch_aggregate_market_volumes_v2( + volume = await client.fetch_aggregate_market_volumes( market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) print(volume) diff --git a/examples/chain_client/exchange/query/8_DenomDecimal.py b/examples/chain_client/exchange/query/8_DenomDecimal.py index 2079f5e8..5f4a7ce2 100644 --- a/examples/chain_client/exchange/query/8_DenomDecimal.py +++ b/examples/chain_client/exchange/query/8_DenomDecimal.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/exchange/query/9_DenomDecimals.py b/examples/chain_client/exchange/query/9_DenomDecimals.py index d96df30b..672cee45 100644 --- a/examples/chain_client/exchange/query/9_DenomDecimals.py +++ b/examples/chain_client/exchange/query/9_DenomDecimals.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/10_PacketAcknowledgements.py b/examples/chain_client/ibc/channel/query/10_PacketAcknowledgements.py index 4d3d9edd..23d08e6b 100644 --- a/examples/chain_client/ibc/channel/query/10_PacketAcknowledgements.py +++ b/examples/chain_client/ibc/channel/query/10_PacketAcknowledgements.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/11_UnreceivedPackets.py b/examples/chain_client/ibc/channel/query/11_UnreceivedPackets.py index 81c2298a..9e530b49 100644 --- a/examples/chain_client/ibc/channel/query/11_UnreceivedPackets.py +++ b/examples/chain_client/ibc/channel/query/11_UnreceivedPackets.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/12_UnreceivedAcks.py b/examples/chain_client/ibc/channel/query/12_UnreceivedAcks.py index 530828df..cf3be17a 100644 --- a/examples/chain_client/ibc/channel/query/12_UnreceivedAcks.py +++ b/examples/chain_client/ibc/channel/query/12_UnreceivedAcks.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/13_NextSequenceReceive.py b/examples/chain_client/ibc/channel/query/13_NextSequenceReceive.py index 099a5bad..1bc09a3d 100644 --- a/examples/chain_client/ibc/channel/query/13_NextSequenceReceive.py +++ b/examples/chain_client/ibc/channel/query/13_NextSequenceReceive.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/1_Channel.py b/examples/chain_client/ibc/channel/query/1_Channel.py index 09712d03..7eb0477b 100644 --- a/examples/chain_client/ibc/channel/query/1_Channel.py +++ b/examples/chain_client/ibc/channel/query/1_Channel.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/2_Channels.py b/examples/chain_client/ibc/channel/query/2_Channels.py index 7f7a7f91..16ca7490 100644 --- a/examples/chain_client/ibc/channel/query/2_Channels.py +++ b/examples/chain_client/ibc/channel/query/2_Channels.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/3_ConnectionChannels.py b/examples/chain_client/ibc/channel/query/3_ConnectionChannels.py index fbff67d9..3288e34e 100644 --- a/examples/chain_client/ibc/channel/query/3_ConnectionChannels.py +++ b/examples/chain_client/ibc/channel/query/3_ConnectionChannels.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/4_ChannelClientState.py b/examples/chain_client/ibc/channel/query/4_ChannelClientState.py index f4e96b64..2523fadf 100644 --- a/examples/chain_client/ibc/channel/query/4_ChannelClientState.py +++ b/examples/chain_client/ibc/channel/query/4_ChannelClientState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/5_ChannelConsensusState.py b/examples/chain_client/ibc/channel/query/5_ChannelConsensusState.py index fd4f64b2..7a7d622b 100644 --- a/examples/chain_client/ibc/channel/query/5_ChannelConsensusState.py +++ b/examples/chain_client/ibc/channel/query/5_ChannelConsensusState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/6_PacketCommitment.py b/examples/chain_client/ibc/channel/query/6_PacketCommitment.py index b190af42..97fb2ab7 100644 --- a/examples/chain_client/ibc/channel/query/6_PacketCommitment.py +++ b/examples/chain_client/ibc/channel/query/6_PacketCommitment.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/7_PacketCommitments.py b/examples/chain_client/ibc/channel/query/7_PacketCommitments.py index 537120f6..d659c984 100644 --- a/examples/chain_client/ibc/channel/query/7_PacketCommitments.py +++ b/examples/chain_client/ibc/channel/query/7_PacketCommitments.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/8_PacketReceipt.py b/examples/chain_client/ibc/channel/query/8_PacketReceipt.py index a64fe215..01e9e9ac 100644 --- a/examples/chain_client/ibc/channel/query/8_PacketReceipt.py +++ b/examples/chain_client/ibc/channel/query/8_PacketReceipt.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/channel/query/9_PacketAcknowledgement.py b/examples/chain_client/ibc/channel/query/9_PacketAcknowledgement.py index e9cdc324..e572cb80 100644 --- a/examples/chain_client/ibc/channel/query/9_PacketAcknowledgement.py +++ b/examples/chain_client/ibc/channel/query/9_PacketAcknowledgement.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/1_ClientState.py b/examples/chain_client/ibc/client/query/1_ClientState.py index 47ad1eda..da275ecd 100644 --- a/examples/chain_client/ibc/client/query/1_ClientState.py +++ b/examples/chain_client/ibc/client/query/1_ClientState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/2_ClientStates.py b/examples/chain_client/ibc/client/query/2_ClientStates.py index 511bc33c..91f951ec 100644 --- a/examples/chain_client/ibc/client/query/2_ClientStates.py +++ b/examples/chain_client/ibc/client/query/2_ClientStates.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/3_ConsensusState.py b/examples/chain_client/ibc/client/query/3_ConsensusState.py index 33220967..26759dad 100644 --- a/examples/chain_client/ibc/client/query/3_ConsensusState.py +++ b/examples/chain_client/ibc/client/query/3_ConsensusState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/4_ConsensusStates.py b/examples/chain_client/ibc/client/query/4_ConsensusStates.py index 66b946dd..ea46139b 100644 --- a/examples/chain_client/ibc/client/query/4_ConsensusStates.py +++ b/examples/chain_client/ibc/client/query/4_ConsensusStates.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/5_ConsensusStateHeights.py b/examples/chain_client/ibc/client/query/5_ConsensusStateHeights.py index acd4a440..7620d848 100644 --- a/examples/chain_client/ibc/client/query/5_ConsensusStateHeights.py +++ b/examples/chain_client/ibc/client/query/5_ConsensusStateHeights.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/6_ClientStatus.py b/examples/chain_client/ibc/client/query/6_ClientStatus.py index 9d5954aa..461b3940 100644 --- a/examples/chain_client/ibc/client/query/6_ClientStatus.py +++ b/examples/chain_client/ibc/client/query/6_ClientStatus.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/7_ClientParams.py b/examples/chain_client/ibc/client/query/7_ClientParams.py index 1b461b5c..cdcc7220 100644 --- a/examples/chain_client/ibc/client/query/7_ClientParams.py +++ b/examples/chain_client/ibc/client/query/7_ClientParams.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/8_UpgradedClientState.py b/examples/chain_client/ibc/client/query/8_UpgradedClientState.py index e200ae80..1b4b01d6 100644 --- a/examples/chain_client/ibc/client/query/8_UpgradedClientState.py +++ b/examples/chain_client/ibc/client/query/8_UpgradedClientState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/client/query/9_UpgradedConsensusState.py b/examples/chain_client/ibc/client/query/9_UpgradedConsensusState.py index a6e00f7c..a40ae584 100644 --- a/examples/chain_client/ibc/client/query/9_UpgradedConsensusState.py +++ b/examples/chain_client/ibc/client/query/9_UpgradedConsensusState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/1_Connection.py b/examples/chain_client/ibc/connection/query/1_Connection.py index eb40118f..ace42917 100644 --- a/examples/chain_client/ibc/connection/query/1_Connection.py +++ b/examples/chain_client/ibc/connection/query/1_Connection.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/2_Connections.py b/examples/chain_client/ibc/connection/query/2_Connections.py index 8b5532f6..520105d8 100644 --- a/examples/chain_client/ibc/connection/query/2_Connections.py +++ b/examples/chain_client/ibc/connection/query/2_Connections.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/3_ClientConnections.py b/examples/chain_client/ibc/connection/query/3_ClientConnections.py index 5306dc51..25b4e8e5 100644 --- a/examples/chain_client/ibc/connection/query/3_ClientConnections.py +++ b/examples/chain_client/ibc/connection/query/3_ClientConnections.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/4_ConnectionClientState.py b/examples/chain_client/ibc/connection/query/4_ConnectionClientState.py index 35de5638..cf20c39f 100644 --- a/examples/chain_client/ibc/connection/query/4_ConnectionClientState.py +++ b/examples/chain_client/ibc/connection/query/4_ConnectionClientState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/5_ConnectionConsensusState.py b/examples/chain_client/ibc/connection/query/5_ConnectionConsensusState.py index d541b502..7b0f923a 100644 --- a/examples/chain_client/ibc/connection/query/5_ConnectionConsensusState.py +++ b/examples/chain_client/ibc/connection/query/5_ConnectionConsensusState.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/connection/query/6_ConnectionParams.py b/examples/chain_client/ibc/connection/query/6_ConnectionParams.py index 88cb73bf..44f5cd21 100644 --- a/examples/chain_client/ibc/connection/query/6_ConnectionParams.py +++ b/examples/chain_client/ibc/connection/query/6_ConnectionParams.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/transfer/1_MsgTransfer.py b/examples/chain_client/ibc/transfer/1_MsgTransfer.py index a8e2a51e..fae0c923 100644 --- a/examples/chain_client/ibc/transfer/1_MsgTransfer.py +++ b/examples/chain_client/ibc/transfer/1_MsgTransfer.py @@ -5,7 +5,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/ibc/transfer/query/1_DenomTrace.py b/examples/chain_client/ibc/transfer/query/1_DenomTrace.py index adb980d0..8b5f4a93 100644 --- a/examples/chain_client/ibc/transfer/query/1_DenomTrace.py +++ b/examples/chain_client/ibc/transfer/query/1_DenomTrace.py @@ -3,7 +3,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/transfer/query/2_DenomTraces.py b/examples/chain_client/ibc/transfer/query/2_DenomTraces.py index 8e8d9deb..8f175806 100644 --- a/examples/chain_client/ibc/transfer/query/2_DenomTraces.py +++ b/examples/chain_client/ibc/transfer/query/2_DenomTraces.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/transfer/query/3_DenomHash.py b/examples/chain_client/ibc/transfer/query/3_DenomHash.py index db1db07e..b4f34fb1 100644 --- a/examples/chain_client/ibc/transfer/query/3_DenomHash.py +++ b/examples/chain_client/ibc/transfer/query/3_DenomHash.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/transfer/query/4_EscrowAddress.py b/examples/chain_client/ibc/transfer/query/4_EscrowAddress.py index 90d69838..f2ecf31e 100644 --- a/examples/chain_client/ibc/transfer/query/4_EscrowAddress.py +++ b/examples/chain_client/ibc/transfer/query/4_EscrowAddress.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/ibc/transfer/query/5_TotalEscrowForDenom.py b/examples/chain_client/ibc/transfer/query/5_TotalEscrowForDenom.py index b7b4df68..c5b27938 100644 --- a/examples/chain_client/ibc/transfer/query/5_TotalEscrowForDenom.py +++ b/examples/chain_client/ibc/transfer/query/5_TotalEscrowForDenom.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py index f2a961fb..5aec1df7 100644 --- a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py +++ b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/chain_client/insurance/2_MsgUnderwrite.py b/examples/chain_client/insurance/2_MsgUnderwrite.py index 5dbd5056..000625f7 100644 --- a/examples/chain_client/insurance/2_MsgUnderwrite.py +++ b/examples/chain_client/insurance/2_MsgUnderwrite.py @@ -5,7 +5,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/chain_client/insurance/3_MsgRequestRedemption.py b/examples/chain_client/insurance/3_MsgRequestRedemption.py index b1cc3762..7f39c7e9 100644 --- a/examples/chain_client/insurance/3_MsgRequestRedemption.py +++ b/examples/chain_client/insurance/3_MsgRequestRedemption.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -30,7 +30,7 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - msg = composer.MsgRequestRedemption( + msg = composer.msg_request_redemption( sender=address.to_acc_bech32(), market_id="0x141e3c92ed55107067ceb60ee412b86256cedef67b1227d6367b4cdf30c55a74", share_denom="share15", diff --git a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py index 6a0de597..885ffcb2 100644 --- a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py +++ b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -35,7 +35,9 @@ async def main() -> None: quote = ["WETH"] # prepare tx msg - msg = composer.MsgRelayPriceFeedPrice(sender=address.to_acc_bech32(), price=price_to_send, base=base, quote=quote) + msg = composer.msg_relay_price_feed_price( + sender=address.to_acc_bech32(), price=price_to_send, base=base, quote=quote + ) # build sim tx tx = ( diff --git a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py index 74400ec7..c681d777 100644 --- a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py +++ b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -34,7 +34,7 @@ async def main() -> None: prices = [0.5, 0.8] # prepare tx msg - msg = composer.MsgRelayProviderPrices( + msg = composer.msg_relay_provider_prices( sender=address.to_acc_bech32(), provider=provider, symbols=symbols, prices=prices ) diff --git a/examples/chain_client/peggy/1_MsgSendToEth.py b/examples/chain_client/peggy/1_MsgSendToEth.py index 0606c018..4f369a8a 100644 --- a/examples/chain_client/peggy/1_MsgSendToEth.py +++ b/examples/chain_client/peggy/1_MsgSendToEth.py @@ -6,7 +6,7 @@ import requests from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/chain_client/permissions/1_MsgCreateNamespace.py b/examples/chain_client/permissions/1_MsgCreateNamespace.py index f7f071a9..b53682d8 100644 --- a/examples/chain_client/permissions/1_MsgCreateNamespace.py +++ b/examples/chain_client/permissions/1_MsgCreateNamespace.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/permissions/2_MsgUpdateNamespace.py b/examples/chain_client/permissions/2_MsgUpdateNamespace.py index 688413ba..536768ef 100644 --- a/examples/chain_client/permissions/2_MsgUpdateNamespace.py +++ b/examples/chain_client/permissions/2_MsgUpdateNamespace.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/permissions/3_MsgUpdateActorRoles.py b/examples/chain_client/permissions/3_MsgUpdateActorRoles.py index af69f4b5..71ab1214 100644 --- a/examples/chain_client/permissions/3_MsgUpdateActorRoles.py +++ b/examples/chain_client/permissions/3_MsgUpdateActorRoles.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/permissions/4_MsgClaimVoucher.py b/examples/chain_client/permissions/4_MsgClaimVoucher.py index 90b10180..1b678d7f 100644 --- a/examples/chain_client/permissions/4_MsgClaimVoucher.py +++ b/examples/chain_client/permissions/4_MsgClaimVoucher.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/permissions/query/10_Vouchers.py b/examples/chain_client/permissions/query/10_Vouchers.py index 46f250b6..fe9298b4 100644 --- a/examples/chain_client/permissions/query/10_Vouchers.py +++ b/examples/chain_client/permissions/query/10_Vouchers.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/11_Voucher.py b/examples/chain_client/permissions/query/11_Voucher.py index 01bfcb10..783257b9 100644 --- a/examples/chain_client/permissions/query/11_Voucher.py +++ b/examples/chain_client/permissions/query/11_Voucher.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/12_PermissionsModuleState.py b/examples/chain_client/permissions/query/12_PermissionsModuleState.py index 14d7f22f..425be152 100644 --- a/examples/chain_client/permissions/query/12_PermissionsModuleState.py +++ b/examples/chain_client/permissions/query/12_PermissionsModuleState.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/1_NamespaceDenoms.py b/examples/chain_client/permissions/query/1_NamespaceDenoms.py index bafc7f0a..39782e4d 100644 --- a/examples/chain_client/permissions/query/1_NamespaceDenoms.py +++ b/examples/chain_client/permissions/query/1_NamespaceDenoms.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/2_Namespaces.py b/examples/chain_client/permissions/query/2_Namespaces.py index a9a1b25c..eb4b11df 100644 --- a/examples/chain_client/permissions/query/2_Namespaces.py +++ b/examples/chain_client/permissions/query/2_Namespaces.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/3_Namespace.py b/examples/chain_client/permissions/query/3_Namespace.py index a8046443..9b1ea1a6 100644 --- a/examples/chain_client/permissions/query/3_Namespace.py +++ b/examples/chain_client/permissions/query/3_Namespace.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/4_RolesByActor.py b/examples/chain_client/permissions/query/4_RolesByActor.py index 03840eaf..2dfc6e77 100644 --- a/examples/chain_client/permissions/query/4_RolesByActor.py +++ b/examples/chain_client/permissions/query/4_RolesByActor.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/5_ActorsByRole.py b/examples/chain_client/permissions/query/5_ActorsByRole.py index c1f93b44..126c9f5b 100644 --- a/examples/chain_client/permissions/query/5_ActorsByRole.py +++ b/examples/chain_client/permissions/query/5_ActorsByRole.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/6_RoleManagers.py b/examples/chain_client/permissions/query/6_RoleManagers.py index 67cf0a39..e606c5ec 100644 --- a/examples/chain_client/permissions/query/6_RoleManagers.py +++ b/examples/chain_client/permissions/query/6_RoleManagers.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/7_RoleManager.py b/examples/chain_client/permissions/query/7_RoleManager.py index e6ff8d2a..8fad51b7 100644 --- a/examples/chain_client/permissions/query/7_RoleManager.py +++ b/examples/chain_client/permissions/query/7_RoleManager.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/8_PolicyStatuses.py b/examples/chain_client/permissions/query/8_PolicyStatuses.py index 4617a72b..e1477762 100644 --- a/examples/chain_client/permissions/query/8_PolicyStatuses.py +++ b/examples/chain_client/permissions/query/8_PolicyStatuses.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/permissions/query/9_PolicyManagerCapabilities.py b/examples/chain_client/permissions/query/9_PolicyManagerCapabilities.py index 87accfa9..52d53264 100644 --- a/examples/chain_client/permissions/query/9_PolicyManagerCapabilities.py +++ b/examples/chain_client/permissions/query/9_PolicyManagerCapabilities.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/staking/1_MsgDelegate.py b/examples/chain_client/staking/1_MsgDelegate.py index c532a1d6..33b13889 100644 --- a/examples/chain_client/staking/1_MsgDelegate.py +++ b/examples/chain_client/staking/1_MsgDelegate.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -33,7 +33,7 @@ async def main() -> None: validator_address = "injvaloper1ultw9r29l8nxy5u6thcgusjn95vsy2caw722q5" amount = 100 - msg = composer.MsgDelegate( + msg = composer.msg_delegate( delegator_address=address.to_acc_bech32(), validator_address=validator_address, amount=amount ) diff --git a/examples/chain_client/tendermint/query/1_GetNodeInfo.py b/examples/chain_client/tendermint/query/1_GetNodeInfo.py index 9e116e80..bb9a2256 100644 --- a/examples/chain_client/tendermint/query/1_GetNodeInfo.py +++ b/examples/chain_client/tendermint/query/1_GetNodeInfo.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tendermint/query/2_GetSyncing.py b/examples/chain_client/tendermint/query/2_GetSyncing.py index 29a8b5b7..8de8a9df 100644 --- a/examples/chain_client/tendermint/query/2_GetSyncing.py +++ b/examples/chain_client/tendermint/query/2_GetSyncing.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tendermint/query/3_GetLatestBlock.py b/examples/chain_client/tendermint/query/3_GetLatestBlock.py index 3c856c0d..bfa7e799 100644 --- a/examples/chain_client/tendermint/query/3_GetLatestBlock.py +++ b/examples/chain_client/tendermint/query/3_GetLatestBlock.py @@ -1,7 +1,7 @@ import asyncio import json -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tendermint/query/4_GetBlockByHeight.py b/examples/chain_client/tendermint/query/4_GetBlockByHeight.py index fdab714b..5ce8dcfe 100644 --- a/examples/chain_client/tendermint/query/4_GetBlockByHeight.py +++ b/examples/chain_client/tendermint/query/4_GetBlockByHeight.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tendermint/query/5_GetLatestValidatorSet.py b/examples/chain_client/tendermint/query/5_GetLatestValidatorSet.py index 204cd06f..9d914449 100644 --- a/examples/chain_client/tendermint/query/5_GetLatestValidatorSet.py +++ b/examples/chain_client/tendermint/query/5_GetLatestValidatorSet.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tendermint/query/6_GetValidatorSetByHeight.py b/examples/chain_client/tendermint/query/6_GetValidatorSetByHeight.py index 118ec2b3..916971d0 100644 --- a/examples/chain_client/tendermint/query/6_GetValidatorSetByHeight.py +++ b/examples/chain_client/tendermint/query/6_GetValidatorSetByHeight.py @@ -2,7 +2,7 @@ from google.protobuf import symbol_database -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/tokenfactory/1_CreateDenom.py b/examples/chain_client/tokenfactory/1_CreateDenom.py index 870e68b7..9fd731b5 100644 --- a/examples/chain_client/tokenfactory/1_CreateDenom.py +++ b/examples/chain_client/tokenfactory/1_CreateDenom.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/tokenfactory/2_MsgMint.py b/examples/chain_client/tokenfactory/2_MsgMint.py index 78b79a74..5d5205f0 100644 --- a/examples/chain_client/tokenfactory/2_MsgMint.py +++ b/examples/chain_client/tokenfactory/2_MsgMint.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/tokenfactory/3_MsgBurn.py b/examples/chain_client/tokenfactory/3_MsgBurn.py index e65c0f5f..ae6a3423 100644 --- a/examples/chain_client/tokenfactory/3_MsgBurn.py +++ b/examples/chain_client/tokenfactory/3_MsgBurn.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py index f2939c78..3a311586 100644 --- a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py +++ b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py index a0cba885..993dc953 100644 --- a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py +++ b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py @@ -4,7 +4,7 @@ import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network from pyinjective.wallet import PrivateKey diff --git a/examples/chain_client/tokenfactory/query/1_DenomAuthorityMetadata.py b/examples/chain_client/tokenfactory/query/1_DenomAuthorityMetadata.py index 0abd7801..7f9fd27a 100644 --- a/examples/chain_client/tokenfactory/query/1_DenomAuthorityMetadata.py +++ b/examples/chain_client/tokenfactory/query/1_DenomAuthorityMetadata.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tokenfactory/query/2_DenomsFromCreator.py b/examples/chain_client/tokenfactory/query/2_DenomsFromCreator.py index 17a486d1..b3e13ce8 100644 --- a/examples/chain_client/tokenfactory/query/2_DenomsFromCreator.py +++ b/examples/chain_client/tokenfactory/query/2_DenomsFromCreator.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tokenfactory/query/3_TokenfactoryModuleState.py b/examples/chain_client/tokenfactory/query/3_TokenfactoryModuleState.py index 8f9b08f3..e5162114 100644 --- a/examples/chain_client/tokenfactory/query/3_TokenfactoryModuleState.py +++ b/examples/chain_client/tokenfactory/query/3_TokenfactoryModuleState.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/tx/query/1_GetTx.py b/examples/chain_client/tx/query/1_GetTx.py index 38d13342..020e2e19 100644 --- a/examples/chain_client/tx/query/1_GetTx.py +++ b/examples/chain_client/tx/query/1_GetTx.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/txfees/query/1_GetEipBaseFee.py b/examples/chain_client/txfees/query/1_GetEipBaseFee.py index 4d3cc2eb..e5a34f71 100644 --- a/examples/chain_client/txfees/query/1_GetEipBaseFee.py +++ b/examples/chain_client/txfees/query/1_GetEipBaseFee.py @@ -1,7 +1,7 @@ import asyncio import json -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/1_MsgExecuteContract.py b/examples/chain_client/wasm/1_MsgExecuteContract.py index a711f1b8..ce939f6c 100644 --- a/examples/chain_client/wasm/1_MsgExecuteContract.py +++ b/examples/chain_client/wasm/1_MsgExecuteContract.py @@ -4,7 +4,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction @@ -40,7 +40,7 @@ async def main() -> None: composer.coin(amount=420, denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7"), composer.coin(amount=1, denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"), ] - msg = composer.MsgExecuteContract( + msg = composer.msg_execute_contract( sender=address.to_acc_bech32(), contract="inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7", msg='{"increment":{}}', diff --git a/examples/chain_client/wasm/query/10_ContractsByCreator.py b/examples/chain_client/wasm/query/10_ContractsByCreator.py index 2014eee1..cdfcafee 100644 --- a/examples/chain_client/wasm/query/10_ContractsByCreator.py +++ b/examples/chain_client/wasm/query/10_ContractsByCreator.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/1_ContractInfo.py b/examples/chain_client/wasm/query/1_ContractInfo.py index 9cee904c..9b5aa3b9 100644 --- a/examples/chain_client/wasm/query/1_ContractInfo.py +++ b/examples/chain_client/wasm/query/1_ContractInfo.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/2_ContractHistory.py b/examples/chain_client/wasm/query/2_ContractHistory.py index 460056a8..0e73c143 100644 --- a/examples/chain_client/wasm/query/2_ContractHistory.py +++ b/examples/chain_client/wasm/query/2_ContractHistory.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/3_ContractsByCode.py b/examples/chain_client/wasm/query/3_ContractsByCode.py index 1994ce87..a1909123 100644 --- a/examples/chain_client/wasm/query/3_ContractsByCode.py +++ b/examples/chain_client/wasm/query/3_ContractsByCode.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/4_AllContractsState.py b/examples/chain_client/wasm/query/4_AllContractsState.py index a96bfe40..dc6d17e2 100644 --- a/examples/chain_client/wasm/query/4_AllContractsState.py +++ b/examples/chain_client/wasm/query/4_AllContractsState.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/5_RawContractState.py b/examples/chain_client/wasm/query/5_RawContractState.py index 5c9bce71..51194ae7 100644 --- a/examples/chain_client/wasm/query/5_RawContractState.py +++ b/examples/chain_client/wasm/query/5_RawContractState.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/6_SmartContractState.py b/examples/chain_client/wasm/query/6_SmartContractState.py index b416d88c..6b32b047 100644 --- a/examples/chain_client/wasm/query/6_SmartContractState.py +++ b/examples/chain_client/wasm/query/6_SmartContractState.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/7_SmartContractCode.py b/examples/chain_client/wasm/query/7_SmartContractCode.py index d523605d..4579524d 100644 --- a/examples/chain_client/wasm/query/7_SmartContractCode.py +++ b/examples/chain_client/wasm/query/7_SmartContractCode.py @@ -1,7 +1,7 @@ import asyncio import base64 -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/8_SmartContractCodes.py b/examples/chain_client/wasm/query/8_SmartContractCodes.py index 96135ba3..393d2899 100644 --- a/examples/chain_client/wasm/query/8_SmartContractCodes.py +++ b/examples/chain_client/wasm/query/8_SmartContractCodes.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasm/query/9_SmartContractPinnedCodes.py b/examples/chain_client/wasm/query/9_SmartContractPinnedCodes.py index 9d435314..2417f053 100644 --- a/examples/chain_client/wasm/query/9_SmartContractPinnedCodes.py +++ b/examples/chain_client/wasm/query/9_SmartContractPinnedCodes.py @@ -1,6 +1,6 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network diff --git a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py index 1b271961..7c413fd5 100644 --- a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py +++ b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py @@ -5,7 +5,7 @@ import dotenv from grpc import RpcError -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT from pyinjective.core.network import Network from pyinjective.transaction import Transaction diff --git a/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py b/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py index 2a9e9c23..e9ab7245 100644 --- a/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py +++ b/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def balance_event_processor(event: Dict[str, Any]): @@ -21,7 +21,7 @@ def stream_closed_processor(): async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xc7dca7c15c364865f77a4fb67ab11dc95502e6fe000000000000000000000001" denoms = ["inj", "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"] task = asyncio.get_event_loop().create_task( diff --git a/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py b/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py index ecec1061..1f1363a7 100644 --- a/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py +++ b/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" denom = "inj" balance = await client.fetch_subaccount_balance(subaccount_id=subaccount_id, denom=denom) - print(balance) + print(json.dumps(balance, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/3_SubaccountsList.py b/examples/exchange_client/accounts_rpc/3_SubaccountsList.py index c7243509..baa9cff6 100644 --- a/examples/exchange_client/accounts_rpc/3_SubaccountsList.py +++ b/examples/exchange_client/accounts_rpc/3_SubaccountsList.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) account_address = "inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt" subacc_list = await client.fetch_subaccounts_list(account_address) - print(subacc_list) + print(json.dumps(subacc_list, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py b/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py index 7df3be17..d4444fc2 100644 --- a/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py +++ b/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" denoms = ["inj", "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"] subacc_balances_list = await client.fetch_subaccount_balances_list(subaccount_id=subaccount, denoms=denoms) - print(subacc_balances_list) + print(json.dumps(subacc_balances_list, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py b/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py index a71951cf..6c9e9ea2 100644 --- a/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py +++ b/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py @@ -1,13 +1,14 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" denom = "inj" transfer_types = ["withdraw", "deposit"] @@ -21,7 +22,7 @@ async def main() -> None: transfer_types=transfer_types, pagination=pagination, ) - print(subacc_history) + print(json.dumps(subacc_history, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py b/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py index a150cd22..0d6c8393 100644 --- a/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py +++ b/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py @@ -1,19 +1,20 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" order_direction = "buy" market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" subacc_order_summary = await client.fetch_subaccount_order_summary( subaccount_id=subaccount, order_direction=order_direction, market_id=market_id ) - print(subacc_order_summary) + print(json.dumps(subacc_order_summary, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/7_OrderStates.py b/examples/exchange_client/accounts_rpc/7_OrderStates.py index 038d42d5..f831647d 100644 --- a/examples/exchange_client/accounts_rpc/7_OrderStates.py +++ b/examples/exchange_client/accounts_rpc/7_OrderStates.py @@ -1,12 +1,13 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) spot_order_hashes = [ "0xce0d9b701f77cd6ddfda5dd3a4fe7b2d53ba83e5d6c054fb2e9e886200b7b7bb", "0x2e2245b5431638d76c6e0cc6268970418a1b1b7df60a8e94b8cf37eae6105542", @@ -18,7 +19,7 @@ async def main() -> None: orders = await client.fetch_order_states( spot_order_hashes=spot_order_hashes, derivative_order_hashes=derivative_order_hashes ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/8_Portfolio.py b/examples/exchange_client/accounts_rpc/8_Portfolio.py index 90cd9565..55c63a70 100644 --- a/examples/exchange_client/accounts_rpc/8_Portfolio.py +++ b/examples/exchange_client/accounts_rpc/8_Portfolio.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) account_address = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku" portfolio = await client.fetch_portfolio(account_address=account_address) - print(portfolio) + print(json.dumps(portfolio, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/accounts_rpc/9_Rewards.py b/examples/exchange_client/accounts_rpc/9_Rewards.py index 10012c2a..ef0fe91d 100644 --- a/examples/exchange_client/accounts_rpc/9_Rewards.py +++ b/examples/exchange_client/accounts_rpc/9_Rewards.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) account_address = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku" epoch = -1 rewards = await client.fetch_rewards(account_address=account_address, epoch=epoch) - print(rewards) + print(json.dumps(rewards, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/auctions_rpc/1_Auction.py b/examples/exchange_client/auctions_rpc/1_Auction.py index 71fbd36c..16697c3d 100644 --- a/examples/exchange_client/auctions_rpc/1_Auction.py +++ b/examples/exchange_client/auctions_rpc/1_Auction.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) bid_round = 31 auction = await client.fetch_auction(round=bid_round) - print(auction) + print(json.dumps(auction, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/auctions_rpc/2_Auctions.py b/examples/exchange_client/auctions_rpc/2_Auctions.py index f2b7f7bf..c7b6d101 100644 --- a/examples/exchange_client/auctions_rpc/2_Auctions.py +++ b/examples/exchange_client/auctions_rpc/2_Auctions.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) auctions = await client.fetch_auctions() - print(auctions) + print(json.dumps(auctions, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/auctions_rpc/3_StreamBids.py b/examples/exchange_client/auctions_rpc/3_StreamBids.py index 8bfceba1..e25537de 100644 --- a/examples/exchange_client/auctions_rpc/3_StreamBids.py +++ b/examples/exchange_client/auctions_rpc/3_StreamBids.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def bid_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) task = asyncio.get_event_loop().create_task( client.listen_bids_updates( diff --git a/examples/exchange_client/auctions_rpc/4_InjBurntEndpoint.py b/examples/exchange_client/auctions_rpc/4_InjBurntEndpoint.py index 4e945612..c44595ac 100644 --- a/examples/exchange_client/auctions_rpc/4_InjBurntEndpoint.py +++ b/examples/exchange_client/auctions_rpc/4_InjBurntEndpoint.py @@ -1,21 +1,20 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main(): # Select network: testnet, mainnet, or local network = Network.testnet() - - # Initialize AsyncClient - client = AsyncClient(network) + client = IndexerClient(network) try: # Fetch INJ burnt amount inj_burnt_response = await client.fetch_inj_burnt() print("INJ Burnt Endpoint Response:") - print(inj_burnt_response) + print(json.dumps(inj_burnt_response, indent=2)) except Exception as e: print(f"Error fetching INJ burnt amount: {e}") diff --git a/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py b/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py index 140639fe..cebff990 100644 --- a/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py +++ b/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def order_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" task = asyncio.get_event_loop().create_task( diff --git a/examples/exchange_client/derivative_exchange_rpc/11_Trades.py b/examples/exchange_client/derivative_exchange_rpc/11_Trades.py index 3befd828..79b0c4a8 100644 --- a/examples/exchange_client/derivative_exchange_rpc/11_Trades.py +++ b/examples/exchange_client/derivative_exchange_rpc/11_Trades.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] subaccount_ids = ["0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000"] skip = 0 @@ -17,7 +18,7 @@ async def main() -> None: trades = await client.fetch_derivative_trades( market_ids=market_ids, subaccount_ids=subaccount_ids, pagination=pagination ) - print(trades) + print(json.dumps(trades, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py b/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py index 9ccf11de..4ef3b85d 100644 --- a/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py +++ b/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def market_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", "0x70bc8d7feab38b23d5fdfb12b9c3726e400c265edbcbf449b6c80c31d63d3a02", diff --git a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py index 91efc4d4..38ae5882 100644 --- a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py +++ b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" skip = 1 @@ -17,7 +18,7 @@ async def main() -> None: orders = await client.fetch_derivative_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py b/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py index ed90a456..c46703f4 100644 --- a/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py +++ b/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" execution_type = "market" @@ -23,7 +24,7 @@ async def main() -> None: direction=direction, pagination=pagination, ) - print(trades) + print(json.dumps(trades, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py b/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py index 5321d723..37e988c9 100644 --- a/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py +++ b/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" skip = 0 @@ -18,7 +19,7 @@ async def main() -> None: funding_payments = await client.fetch_funding_payments( market_ids=market_ids, subaccount_id=subaccount_id, pagination=pagination ) - print(funding_payments) + print(json.dumps(funding_payments, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py b/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py index f7bc3b7f..ee4d07d9 100644 --- a/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py +++ b/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py @@ -1,21 +1,22 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" skip = 0 limit = 3 end_time = 1675717201465 pagination = PaginationOption(skip=skip, limit=limit, end_time=end_time) funding_rates = await client.fetch_funding_rates(market_id=market_id, pagination=pagination) - print(funding_rates) + print(json.dumps(funding_rates, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py b/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py index 97b90bca..ef8edaff 100644 --- a/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py +++ b/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py @@ -1,17 +1,18 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_status = "active" quote_denom = "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7" market = await client.fetch_binary_options_markets(market_status=market_status, quote_denom=quote_denom) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/1_Market.py b/examples/exchange_client/derivative_exchange_rpc/1_Market.py index dd5b2091..9cefe15e 100644 --- a/examples/exchange_client/derivative_exchange_rpc/1_Market.py +++ b/examples/exchange_client/derivative_exchange_rpc/1_Market.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" market = await client.fetch_derivative_market(market_id=market_id) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py b/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py index 18edbbed..284a3d05 100644 --- a/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py +++ b/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x175513943b8677368d138e57bcd6bef53170a0da192e7eaa8c2cd4509b54f8db" market = await client.fetch_binary_options_market(market_id=market_id) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py b/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py index 3e8641ae..67dc286c 100644 --- a/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py +++ b/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] subaccount_id = "0x295639d56c987f0e24d21bb167872b3542a6e05a000000000000000000000000" is_conditional = "false" @@ -21,7 +22,7 @@ async def main() -> None: is_conditional=is_conditional, pagination=pagination, ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py index 3aff2265..fa54822f 100644 --- a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py +++ b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py @@ -1,14 +1,14 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) market_ids = [ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", "0xd5e4b12b19ecf176e4e14b42944731c27677819d2ed93be4104ad7025529c7ff", diff --git a/examples/exchange_client/derivative_exchange_rpc/23_LiquidablePositions.py b/examples/exchange_client/derivative_exchange_rpc/23_LiquidablePositions.py index 55e76492..7d8c7d35 100644 --- a/examples/exchange_client/derivative_exchange_rpc/23_LiquidablePositions.py +++ b/examples/exchange_client/derivative_exchange_rpc/23_LiquidablePositions.py @@ -1,13 +1,14 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" skip = 10 limit = 3 @@ -16,7 +17,7 @@ async def main() -> None: market_id=market_id, pagination=pagination, ) - print(positions) + print(json.dumps(positions, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py b/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py index 374a8f3a..bd54f606 100644 --- a/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py +++ b/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py @@ -1,14 +1,14 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", "0xd97d0da6f6c11710ef06315971250e4e9aed4b7d4cd02059c9477ec8cf243782", diff --git a/examples/exchange_client/derivative_exchange_rpc/2_Markets.py b/examples/exchange_client/derivative_exchange_rpc/2_Markets.py index b5a5999a..bd99e376 100644 --- a/examples/exchange_client/derivative_exchange_rpc/2_Markets.py +++ b/examples/exchange_client/derivative_exchange_rpc/2_Markets.py @@ -1,17 +1,18 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_statuses = ["active"] quote_denom = "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" market = await client.fetch_derivative_markets(market_statuses=market_statuses, quote_denom=quote_denom) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py b/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py index d8663ba2..877f1c70 100644 --- a/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py +++ b/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def market_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) task = asyncio.get_event_loop().create_task( client.listen_derivative_market_updates( diff --git a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py index 53e288cb..a7ea8660 100644 --- a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py @@ -1,14 +1,14 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" depth = 1 market = await client.fetch_derivative_orderbook_v2(market_id=market_id, depth=depth) diff --git a/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py b/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py index e2044eae..fcf29d14 100644 --- a/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py +++ b/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def orderbook_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] task = asyncio.get_event_loop().create_task( diff --git a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py index d961d70e..a84d2115 100644 --- a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py +++ b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py @@ -4,8 +4,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient def stream_error_processor(exception: RpcError): @@ -33,9 +33,9 @@ def __init__(self, market_id: str): self.levels = {"buys": {}, "sells": {}} -async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderbook): +async def load_orderbook_snapshot(client: IndexerClient, orderbook: Orderbook): # load the snapshot - res = await async_client.fetch_derivative_orderbooks_v2(market_ids=[orderbook.market_id], depth=1) + res = await client.fetch_derivative_orderbooks_v2(market_ids=[orderbook.market_id], depth=1) for snapshot in res["orderbooks"]: if snapshot["marketId"] != orderbook.market_id: raise Exception("unexpected snapshot") @@ -54,13 +54,12 @@ async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderboo quantity=Decimal(sell["quantity"]), timestamp=int(sell["timestamp"]), ) - break async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - async_client = AsyncClient(network) + indexer_client = IndexerClient(network) market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" orderbook = Orderbook(market_id=market_id) @@ -72,7 +71,7 @@ async def queue_event(event: Dict[str, Any]): # start getting price levels updates task = asyncio.get_event_loop().create_task( - async_client.listen_derivative_orderbook_updates( + indexer_client.listen_derivative_orderbook_updates( market_ids=[market_id], callback=queue_event, on_end_callback=stream_closed_processor, @@ -82,7 +81,7 @@ async def queue_event(event: Dict[str, Any]): tasks.append(task) # load the snapshot once we are already receiving updates, so we don't miss any - await load_orderbook_snapshot(async_client=async_client, orderbook=orderbook) + await load_orderbook_snapshot(client=indexer_client, orderbook=orderbook) task = asyncio.get_event_loop().create_task( apply_orderbook_update(orderbook=orderbook, updates_queue=updates_queue) diff --git a/examples/exchange_client/derivative_exchange_rpc/7_Positions.py b/examples/exchange_client/derivative_exchange_rpc/7_Positions.py index 06be45a7..091bb7ba 100644 --- a/examples/exchange_client/derivative_exchange_rpc/7_Positions.py +++ b/examples/exchange_client/derivative_exchange_rpc/7_Positions.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", "0xd97d0da6f6c11710ef06315971250e4e9aed4b7d4cd02059c9477ec8cf243782", @@ -26,7 +27,7 @@ async def main() -> None: subaccount_total_positions=subaccount_total_positions, pagination=pagination, ) - print(positions) + print(json.dumps(positions, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py b/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py index 9e695732..d5794bb1 100644 --- a/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py +++ b/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def positions_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) market_ids = ["0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6"] subaccount_ids = ["0xea98e3aa091a6676194df40ac089e40ab4604bf9000000000000000000000000"] diff --git a/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py b/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py index b6219b1c..b613a8f2 100644 --- a/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py +++ b/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) sender = "inj1cll5cv3ezgal30gagkhnq2um6zf6qrmhw4r6c8" receiver = "cosmos1usr9g5a4s2qrwl63sdjtrs2qd4a7huh622pg82" src_channel = "channel-2" @@ -27,7 +28,7 @@ async def main() -> None: dest_port=dest_port, pagination=pagination, ) - print(ibc_transfers) + print(json.dumps(ibc_transfers, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/11_GetContractsTxsV2.py b/examples/exchange_client/explorer_rpc/11_GetContractsTxsV2.py index 22f01844..08c6b132 100644 --- a/examples/exchange_client/explorer_rpc/11_GetContractsTxsV2.py +++ b/examples/exchange_client/explorer_rpc/11_GetContractsTxsV2.py @@ -1,9 +1,9 @@ import asyncio import time -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: @@ -11,7 +11,7 @@ async def main() -> None: network = Network.testnet() # Initialize client - client = AsyncClient(network) + client = IndexerClient(network=network) try: # Example parameters for fetching contract transactions diff --git a/examples/exchange_client/explorer_rpc/12_GetValidators.py b/examples/exchange_client/explorer_rpc/12_GetValidators.py index fcaf0f8d..9e0d048d 100644 --- a/examples/exchange_client/explorer_rpc/12_GetValidators.py +++ b/examples/exchange_client/explorer_rpc/12_GetValidators.py @@ -1,15 +1,14 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main(): # Select network: choose between testnet, mainnet, or local network = Network.testnet() - - # Initialize AsyncClient - client = AsyncClient(network) + client = IndexerClient(network=network) try: # Fetch validators @@ -17,7 +16,7 @@ async def main(): # Print validators print("Validators:") - print(validators) + print(json.dumps(validators, indent=2)) except Exception as e: print(f"Error: {e}") diff --git a/examples/exchange_client/explorer_rpc/13_GetValidator.py b/examples/exchange_client/explorer_rpc/13_GetValidator.py index 2adac7d7..1cea9b5b 100644 --- a/examples/exchange_client/explorer_rpc/13_GetValidator.py +++ b/examples/exchange_client/explorer_rpc/13_GetValidator.py @@ -1,15 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main(): # Select network: choose between testnet, mainnet, or local network = Network.testnet() + client = IndexerClient(network=network) - # Initialize AsyncClient - client = AsyncClient(network) address = "injvaloper1kk523rsm9pey740cx4plalp40009ncs0wrchfe" try: @@ -18,7 +18,7 @@ async def main(): # Print validators print("Validator:") - print(validator) + print(json.dumps(validator, indent=2)) except Exception as e: print(f"Error: {e}") diff --git a/examples/exchange_client/explorer_rpc/14_GetValidatorUptime.py b/examples/exchange_client/explorer_rpc/14_GetValidatorUptime.py index fc4a1a84..63e2461d 100644 --- a/examples/exchange_client/explorer_rpc/14_GetValidatorUptime.py +++ b/examples/exchange_client/explorer_rpc/14_GetValidatorUptime.py @@ -1,15 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main(): # Select network: choose between testnet, mainnet, or local network = Network.testnet() + client = IndexerClient(network=network) - # Initialize AsyncClient - client = AsyncClient(network) address = "injvaloper1kk523rsm9pey740cx4plalp40009ncs0wrchfe" try: @@ -18,7 +18,7 @@ async def main(): # Print uptime print("Validator uptime:") - print(uptime) + print(json.dumps(uptime, indent=2)) except Exception as e: print(f"Error: {e}") diff --git a/examples/exchange_client/explorer_rpc/15_GetWasmCodes.py b/examples/exchange_client/explorer_rpc/15_GetWasmCodes.py index 49c48698..8404d1b4 100644 --- a/examples/exchange_client/explorer_rpc/15_GetWasmCodes.py +++ b/examples/exchange_client/explorer_rpc/15_GetWasmCodes.py @@ -1,15 +1,16 @@ import asyncio +import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) pagination = PaginationOption( limit=10, @@ -21,7 +22,7 @@ async def main() -> None: pagination=pagination, ) print("Wasm codes:") - print(wasm_codes) + print(json.dumps(wasm_codes, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/16_GetWasmCodeById.py b/examples/exchange_client/explorer_rpc/16_GetWasmCodeById.py index fc8f3c89..c273c166 100644 --- a/examples/exchange_client/explorer_rpc/16_GetWasmCodeById.py +++ b/examples/exchange_client/explorer_rpc/16_GetWasmCodeById.py @@ -1,14 +1,14 @@ import asyncio +import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: - # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) code_id = 2008 @@ -16,7 +16,7 @@ async def main() -> None: code_id=code_id, ) print("Wasm code:") - print(wasm_code) + print(json.dumps(wasm_code, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/17_GetWasmContracts.py b/examples/exchange_client/explorer_rpc/17_GetWasmContracts.py index 93a46b9e..0f16e99e 100644 --- a/examples/exchange_client/explorer_rpc/17_GetWasmContracts.py +++ b/examples/exchange_client/explorer_rpc/17_GetWasmContracts.py @@ -1,15 +1,15 @@ import asyncio +import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: - # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) pagination = PaginationOption( limit=10, @@ -22,7 +22,7 @@ async def main() -> None: pagination=pagination, ) print("Wasm contracts:") - print(wasm_contracts) + print(json.dumps(wasm_contracts, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/18_GetWasmContractByAddress.py b/examples/exchange_client/explorer_rpc/18_GetWasmContractByAddress.py index fd43d8c7..a31f6d30 100644 --- a/examples/exchange_client/explorer_rpc/18_GetWasmContractByAddress.py +++ b/examples/exchange_client/explorer_rpc/18_GetWasmContractByAddress.py @@ -1,20 +1,20 @@ import asyncio +import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: - # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) address = "inj1yhz4e7df95908jhs9erl87vdzjkdsc24q7afjf" wasm_contract = await client.fetch_wasm_contract_by_address(address=address) print("Wasm contract:") - print(wasm_contract) + print(json.dumps(wasm_contract, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/19_GetCw20Balance.py b/examples/exchange_client/explorer_rpc/19_GetCw20Balance.py index e2eb64c3..27a15554 100644 --- a/examples/exchange_client/explorer_rpc/19_GetCw20Balance.py +++ b/examples/exchange_client/explorer_rpc/19_GetCw20Balance.py @@ -1,20 +1,20 @@ import asyncio +import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: - # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) address = "inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex" balance = await client.fetch_cw20_balance(address=address) print("Cw20 balance:") - print(balance) + print(json.dumps(balance, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/1_GetTxByHash.py b/examples/exchange_client/explorer_rpc/1_GetTxByHash.py index f1158993..a5d40fc8 100644 --- a/examples/exchange_client/explorer_rpc/1_GetTxByHash.py +++ b/examples/exchange_client/explorer_rpc/1_GetTxByHash.py @@ -1,23 +1,28 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) - composer = Composer(network=network.string()) + client = IndexerClient(network=network) + composer = Composer(network=network) + tx_hash = "0F3EBEC1882E1EEAC5B7BDD836E976250F1CD072B79485877CEACCB92ACDDF52" transaction_response = await client.fetch_tx_by_tx_hash(tx_hash=tx_hash) - print(transaction_response) + print("Transaction response:") + print(f"{json.dumps(transaction_response, indent=2)}\n") transaction_messages = composer.unpack_transaction_messages(transaction_data=transaction_response["data"]) - print(transaction_messages) + print("Transaction messages:") + print(f"{json.dumps(transaction_messages, indent=2)}\n") first_message = transaction_messages[0] - print(first_message) + print("First message:") + print(f"{json.dumps(first_message, indent=2)}\n") if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/20_Relayers.py b/examples/exchange_client/explorer_rpc/20_Relayers.py index ffb21849..7984083e 100644 --- a/examples/exchange_client/explorer_rpc/20_Relayers.py +++ b/examples/exchange_client/explorer_rpc/20_Relayers.py @@ -1,23 +1,22 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main(): # Select network: choose between testnet, mainnet, or local network = Network.testnet() - - # Initialize AsyncClient - client = AsyncClient(network) + client = IndexerClient(network=network) try: # Fetch relayers - validators = await client.fetch_relayers() + relayers = await client.fetch_relayers() # Print relayers print("Relayers:") - print(validators) + print(json.dumps(relayers, indent=2)) except Exception as e: print(f"Error: {e}") diff --git a/examples/exchange_client/explorer_rpc/21_GetBankTransfers.py b/examples/exchange_client/explorer_rpc/21_GetBankTransfers.py index ed1f00b7..0deb7f67 100644 --- a/examples/exchange_client/explorer_rpc/21_GetBankTransfers.py +++ b/examples/exchange_client/explorer_rpc/21_GetBankTransfers.py @@ -2,15 +2,14 @@ import json import logging -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: - # network: Network = Network.testnet() - network: Network = Network.testnet() - client: AsyncClient = AsyncClient(network) + network = Network.testnet() + client = IndexerClient(network=network) pagination = PaginationOption(limit=5) senders = ["inj17xpfvakm2amg962yls6f84z3kell8c5l6s5ye9"] diff --git a/examples/exchange_client/explorer_rpc/2_AccountTxs.py b/examples/exchange_client/explorer_rpc/2_AccountTxs.py index f743e302..50168198 100644 --- a/examples/exchange_client/explorer_rpc/2_AccountTxs.py +++ b/examples/exchange_client/explorer_rpc/2_AccountTxs.py @@ -1,16 +1,18 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption -from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) - composer = Composer(network=network.string()) + client = IndexerClient(network=network) + composer = Composer(network=network) + address = "inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex" message_type = "cosmos.bank.v1beta1.MsgSend" limit = 2 @@ -20,11 +22,14 @@ async def main() -> None: message_type=message_type, pagination=pagination, ) - print(transactions_response) + print("Transactions response:") + print(f"{json.dumps(transactions_response, indent=2)}\n") first_transaction_messages = composer.unpack_transaction_messages(transaction_data=transactions_response["data"][0]) - print(first_transaction_messages) + print("First transaction messages:") + print(f"{json.dumps(first_transaction_messages, indent=2)}\n") first_message = first_transaction_messages[0] - print(first_message) + print("First message:") + print(f"{json.dumps(first_message, indent=2)}\n") if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/3_Blocks.py b/examples/exchange_client/explorer_rpc/3_Blocks.py index 4807030c..0379585c 100644 --- a/examples/exchange_client/explorer_rpc/3_Blocks.py +++ b/examples/exchange_client/explorer_rpc/3_Blocks.py @@ -1,18 +1,19 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) limit = 2 pagination = PaginationOption(limit=limit) blocks = await client.fetch_blocks(pagination=pagination) - print(blocks) + print(json.dumps(blocks, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/4_Block.py b/examples/exchange_client/explorer_rpc/4_Block.py index b41d5595..706c177e 100644 --- a/examples/exchange_client/explorer_rpc/4_Block.py +++ b/examples/exchange_client/explorer_rpc/4_Block.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) block_height = "5825046" block = await client.fetch_block(block_id=block_height) - print(block) + print(json.dumps(block, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/5_TxsRequest.py b/examples/exchange_client/explorer_rpc/5_TxsRequest.py index 70b91f68..111c3b24 100644 --- a/examples/exchange_client/explorer_rpc/5_TxsRequest.py +++ b/examples/exchange_client/explorer_rpc/5_TxsRequest.py @@ -1,18 +1,19 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) limit = 2 pagination = PaginationOption(limit=limit) txs = await client.fetch_txs(pagination=pagination) - print(txs) + print(json.dumps(txs, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/6_StreamTxs.py b/examples/exchange_client/explorer_rpc/6_StreamTxs.py index 07851daa..40f629d0 100644 --- a/examples/exchange_client/explorer_rpc/6_StreamTxs.py +++ b/examples/exchange_client/explorer_rpc/6_StreamTxs.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def tx_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) task = asyncio.get_event_loop().create_task( client.listen_txs_updates( diff --git a/examples/exchange_client/explorer_rpc/7_StreamBlocks.py b/examples/exchange_client/explorer_rpc/7_StreamBlocks.py index b9665742..465b5b24 100644 --- a/examples/exchange_client/explorer_rpc/7_StreamBlocks.py +++ b/examples/exchange_client/explorer_rpc/7_StreamBlocks.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def block_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) task = asyncio.get_event_loop().create_task( client.listen_blocks_updates( diff --git a/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py b/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py index 936ede47..20bb3b86 100644 --- a/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py +++ b/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) receiver = "inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex" peggy_deposits = await client.fetch_peggy_deposit_txs(receiver=receiver) - print(peggy_deposits) + print(json.dumps(peggy_deposits, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py b/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py index 0c38e9dc..1aaa0c97 100644 --- a/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py +++ b/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py @@ -1,19 +1,20 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network=network) sender = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku" limit = 2 pagination = PaginationOption(limit=limit) peggy_deposits = await client.fetch_peggy_withdrawal_txs(sender=sender, pagination=pagination) - print(peggy_deposits) + print(json.dumps(peggy_deposits, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py b/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py index 4f962b08..f8c81351 100644 --- a/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py +++ b/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) insurance_funds = await client.fetch_insurance_funds() - print(insurance_funds) + print(json.dumps(insurance_funds, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/insurance_rpc/2_Redemptions.py b/examples/exchange_client/insurance_rpc/2_Redemptions.py index 2118f210..4a125ded 100644 --- a/examples/exchange_client/insurance_rpc/2_Redemptions.py +++ b/examples/exchange_client/insurance_rpc/2_Redemptions.py @@ -1,18 +1,19 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) redeemer = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku" redemption_denom = "share4" status = "disbursed" insurance_redemptions = await client.fetch_redemptions(address=redeemer, denom=redemption_denom, status=status) - print(insurance_redemptions) + print(json.dumps(insurance_redemptions, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/meta_rpc/1_Ping.py b/examples/exchange_client/meta_rpc/1_Ping.py index 46feca3e..e1b74e83 100644 --- a/examples/exchange_client/meta_rpc/1_Ping.py +++ b/examples/exchange_client/meta_rpc/1_Ping.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) resp = await client.fetch_ping() - print("Health OK?", resp) + print(json.dumps(resp, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/meta_rpc/2_Version.py b/examples/exchange_client/meta_rpc/2_Version.py index 11681dc2..c5fe427b 100644 --- a/examples/exchange_client/meta_rpc/2_Version.py +++ b/examples/exchange_client/meta_rpc/2_Version.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) resp = await client.fetch_version() - print("Version:", resp) + print(json.dumps(resp, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/meta_rpc/3_Info.py b/examples/exchange_client/meta_rpc/3_Info.py index 3e103e51..d28c7b7f 100644 --- a/examples/exchange_client/meta_rpc/3_Info.py +++ b/examples/exchange_client/meta_rpc/3_Info.py @@ -1,17 +1,18 @@ import asyncio +import json import time -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) resp = await client.fetch_info() print("[!] Info:") - print(resp) + print(json.dumps(resp, indent=2)) latency = int(time.time() * 1000) - int(resp["timestamp"]) print(f"Server Latency: {latency}ms") diff --git a/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py b/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py index 84a22eb8..e7770e66 100644 --- a/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py +++ b/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient def stream_error_processor(exception: RpcError): @@ -18,7 +18,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) tasks = [] async def keepalive_event_processor(event: Dict[str, Any]): diff --git a/examples/exchange_client/oracle_rpc/1_StreamPrices.py b/examples/exchange_client/oracle_rpc/1_StreamPrices.py index f4f98274..c76adf76 100644 --- a/examples/exchange_client/oracle_rpc/1_StreamPrices.py +++ b/examples/exchange_client/oracle_rpc/1_StreamPrices.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def price_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market = (await client.all_derivative_markets())[ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" ] diff --git a/examples/exchange_client/oracle_rpc/2_Price.py b/examples/exchange_client/oracle_rpc/2_Price.py index b5fb4d0c..45e5d769 100644 --- a/examples/exchange_client/oracle_rpc/2_Price.py +++ b/examples/exchange_client/oracle_rpc/2_Price.py @@ -1,13 +1,14 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market = (await client.all_derivative_markets())[ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" ] @@ -21,7 +22,7 @@ async def main() -> None: quote_symbol=quote_symbol, oracle_type=oracle_type, ) - print(oracle_prices) + print(json.dumps(oracle_prices, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/oracle_rpc/3_OracleList.py b/examples/exchange_client/oracle_rpc/3_OracleList.py index db2b7f03..6681e462 100644 --- a/examples/exchange_client/oracle_rpc/3_OracleList.py +++ b/examples/exchange_client/oracle_rpc/3_OracleList.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) oracle_list = await client.fetch_oracle_list() - print(oracle_list) + print(json.dumps(oracle_list, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/oracle_rpc/4_PriceV2.py b/examples/exchange_client/oracle_rpc/4_PriceV2.py index 8740388f..cb0a9f8c 100644 --- a/examples/exchange_client/oracle_rpc/4_PriceV2.py +++ b/examples/exchange_client/oracle_rpc/4_PriceV2.py @@ -1,14 +1,14 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market = (await client.all_derivative_markets())[ "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" ] diff --git a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py index f1cf0739..a1869c67 100644 --- a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py +++ b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py @@ -1,16 +1,17 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) account_address = "inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt" portfolio = await client.fetch_account_portfolio_balances(account_address=account_address, usd=False) - print(portfolio) + print(json.dumps(portfolio, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py b/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py index 4b3b6a04..6842648b 100644 --- a/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py +++ b/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def account_portfolio_event_processor(event: Dict[str, Any]): @@ -21,7 +21,7 @@ def stream_closed_processor(): async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) account_address = "inj1clw20s2uxeyxtam6f7m84vgae92s9eh7vygagt" task = asyncio.get_event_loop().create_task( diff --git a/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py b/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py index a1d63511..8e9940a2 100644 --- a/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py +++ b/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def trade_event_processor(event: Dict[str, Any]): @@ -21,7 +21,7 @@ def stream_closed_processor(): async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", diff --git a/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py b/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py index 760119dc..8953d7ba 100644 --- a/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py +++ b/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xc7dca7c15c364865f77a4fb67ab11dc95502e6fe000000000000000000000001" market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" skip = 10 @@ -17,7 +18,7 @@ async def main() -> None: orders = await client.fetch_spot_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py b/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py index d35a12e9..6f45015d 100644 --- a/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py +++ b/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py @@ -1,14 +1,15 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" execution_type = "market" @@ -23,7 +24,7 @@ async def main() -> None: direction=direction, pagination=pagination, ) - print(trades) + print(json.dumps(trades, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py index ac464c94..92381cdb 100644 --- a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py +++ b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py @@ -1,13 +1,13 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", diff --git a/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py b/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py index bac4b2c1..377224e1 100644 --- a/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py +++ b/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py @@ -1,13 +1,14 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"] subaccount_id = "0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000" skip = 10 @@ -20,7 +21,7 @@ async def main() -> None: order_types=order_types, pagination=pagination, ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/1_Market.py b/examples/exchange_client/spot_exchange_rpc/1_Market.py index e8705d68..9bc65358 100644 --- a/examples/exchange_client/spot_exchange_rpc/1_Market.py +++ b/examples/exchange_client/spot_exchange_rpc/1_Market.py @@ -1,15 +1,16 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" market = await client.fetch_spot_market(market_id=market_id) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/2_Markets.py b/examples/exchange_client/spot_exchange_rpc/2_Markets.py index 3dc815eb..4815c3f7 100644 --- a/examples/exchange_client/spot_exchange_rpc/2_Markets.py +++ b/examples/exchange_client/spot_exchange_rpc/2_Markets.py @@ -1,19 +1,20 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_status = "active" base_denom = "inj" quote_denom = "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" market = await client.fetch_spot_markets( market_statuses=[market_status], base_denom=base_denom, quote_denom=quote_denom ) - print(market) + print(json.dumps(market, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py b/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py index ac56d2d7..0cfee99d 100644 --- a/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py +++ b/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def market_event_processor(event: Dict[str, Any]): @@ -22,7 +22,7 @@ def stream_closed_processor(): async def main() -> None: # select network: local, testnet, mainnet network = Network.mainnet() - client = AsyncClient(network) + client = IndexerClient(network) task = asyncio.get_event_loop().create_task( client.listen_spot_markets_updates( diff --git a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py index eb707c31..6ff61ace 100644 --- a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py @@ -1,13 +1,13 @@ import asyncio import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" depth = 1 orderbook = await client.fetch_spot_orderbook_v2(market_id=market_id, depth=depth) diff --git a/examples/exchange_client/spot_exchange_rpc/6_Trades.py b/examples/exchange_client/spot_exchange_rpc/6_Trades.py index 029a4f90..7fdc585a 100644 --- a/examples/exchange_client/spot_exchange_rpc/6_Trades.py +++ b/examples/exchange_client/spot_exchange_rpc/6_Trades.py @@ -1,12 +1,13 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = ["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"] execution_side = "taker" direction = "buy" @@ -19,7 +20,7 @@ async def main() -> None: direction=direction, execution_types=execution_types, ) - print(orders) + print(json.dumps(orders, indent=2)) if __name__ == "__main__": diff --git a/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py b/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py index 7eacf4df..9634206c 100644 --- a/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py +++ b/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def orderbook_event_processor(event: Dict[str, Any]): @@ -21,7 +21,7 @@ def stream_closed_processor(): async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_ids = [ "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", diff --git a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py index 7bdf4199..062ef96e 100644 --- a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py +++ b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py @@ -4,8 +4,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient def stream_error_processor(exception: RpcError): @@ -33,9 +33,9 @@ def __init__(self, market_id: str): self.levels = {"buys": {}, "sells": {}} -async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderbook): +async def load_orderbook_snapshot(client: IndexerClient, orderbook: Orderbook): # load the snapshot - res = await async_client.fetch_spot_orderbooks_v2(market_ids=[orderbook.market_id], depth=0) + res = await client.fetch_spot_orderbooks_v2(market_ids=[orderbook.market_id], depth=0) for snapshot in res["orderbooks"]: if snapshot["marketId"] != orderbook.market_id: raise Exception("unexpected snapshot") @@ -54,13 +54,12 @@ async def load_orderbook_snapshot(async_client: AsyncClient, orderbook: Orderboo quantity=Decimal(sell["quantity"]), timestamp=int(sell["timestamp"]), ) - break async def main() -> None: # select network: local, testnet, mainnet network = Network.testnet() - async_client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orderbook = Orderbook(market_id=market_id) @@ -72,7 +71,7 @@ async def queue_event(event: Dict[str, Any]): # start getting price levels updates task = asyncio.get_event_loop().create_task( - async_client.listen_spot_orderbook_updates( + client.listen_spot_orderbook_updates( market_ids=[market_id], callback=queue_event, on_end_callback=stream_closed_processor, @@ -82,7 +81,7 @@ async def queue_event(event: Dict[str, Any]): tasks.append(task) # load the snapshot once we are already receiving updates, so we don't miss any - await load_orderbook_snapshot(async_client=async_client, orderbook=orderbook) + await load_orderbook_snapshot(client=client, orderbook=orderbook) task = asyncio.get_event_loop().create_task( apply_orderbook_update(orderbook=orderbook, updates_queue=updates_queue) diff --git a/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py b/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py index 91ed7810..445e2d42 100644 --- a/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py +++ b/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py @@ -3,8 +3,8 @@ from grpc import RpcError -from pyinjective.async_client import AsyncClient from pyinjective.core.network import Network +from pyinjective.indexer_client import IndexerClient async def order_event_processor(event: Dict[str, Any]): @@ -21,7 +21,7 @@ def stream_closed_processor(): async def main() -> None: network = Network.testnet() - client = AsyncClient(network) + client = IndexerClient(network) market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" order_direction = "buy" diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index b9136886..ff272ec6 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -10,58 +10,40 @@ from pyinjective.client.chain.grpc.chain_grpc_authz_api import ChainGrpcAuthZApi 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_erc20_api import ChainGrpcERC20Api -from pyinjective.client.chain.grpc.chain_grpc_evm_api import ChainGrpcEVMApi 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_txfees_api import ChainGrpcTxfeesApi from pyinjective.client.chain.grpc.chain_grpc_wasm_api import ChainGrpcWasmApi from pyinjective.client.chain.grpc_stream.chain_grpc_chain_stream import ChainGrpcChainStream -from pyinjective.client.indexer.grpc.indexer_grpc_account_api import IndexerGrpcAccountApi -from pyinjective.client.indexer.grpc.indexer_grpc_auction_api import IndexerGrpcAuctionApi -from pyinjective.client.indexer.grpc.indexer_grpc_derivative_api import IndexerGrpcDerivativeApi -from pyinjective.client.indexer.grpc.indexer_grpc_explorer_api import IndexerGrpcExplorerApi -from pyinjective.client.indexer.grpc.indexer_grpc_insurance_api import IndexerGrpcInsuranceApi -from pyinjective.client.indexer.grpc.indexer_grpc_meta_api import IndexerGrpcMetaApi -from pyinjective.client.indexer.grpc.indexer_grpc_oracle_api import IndexerGrpcOracleApi -from pyinjective.client.indexer.grpc.indexer_grpc_portfolio_api import IndexerGrpcPortfolioApi -from pyinjective.client.indexer.grpc.indexer_grpc_spot_api import IndexerGrpcSpotApi -from pyinjective.client.indexer.grpc_stream.indexer_grpc_account_stream import IndexerGrpcAccountStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_auction_stream import IndexerGrpcAuctionStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_derivative_stream import IndexerGrpcDerivativeStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_explorer_stream import IndexerGrpcExplorerStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_meta_stream import IndexerGrpcMetaStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_oracle_stream import IndexerGrpcOracleStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_portfolio_stream import IndexerGrpcPortfolioStream -from pyinjective.client.indexer.grpc_stream.indexer_grpc_spot_stream import IndexerGrpcSpotStream from pyinjective.client.model.pagination import PaginationOption from pyinjective.composer import Composer from pyinjective.constant import GAS_PRICE +from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.ibc.channel.grpc.ibc_channel_grpc_api import IBCChannelGrpcApi from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi from pyinjective.core.ibc.transfer.grpc.ibc_transfer_grpc_api import IBCTransferGrpcApi -from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.network import Network from pyinjective.core.tendermint.grpc.tendermint_grpc_api import TendermintGrpcApi from pyinjective.core.token import Token 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.indexer_client import IndexerClient 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_oracle_rpc_pb2 as exchange_oracle_pb 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 -from pyinjective.proto.injective.stream.v2 import query_pb2 as chain_stream_v2_query +from pyinjective.proto.injective.stream.v1beta1 import ( + query_pb2 as chain_stream_query, + query_pb2_grpc as stream_rpc_grpc, +) from pyinjective.proto.injective.types.v1beta1 import account_pb2 from pyinjective.utils.logger import LoggerProvider @@ -81,6 +63,7 @@ def __init__( self.sequence = 0 self.network = network + self.indexer_client = IndexerClient(network=network) # chain stubs self.chain_channel = self.network.create_chain_grpc_channel() @@ -91,14 +74,10 @@ def __init__( self.stubBank = bank_query_grpc.QueryStub(self.chain_channel) self.stubTx = tx_service_grpc.ServiceStub(self.chain_channel) - self.exchange_cookie = "" self.timeout_height = 1 - # exchange stubs - self.exchange_channel = self.network.create_exchange_grpc_channel() - # explorer stubs - self.explorer_channel = self.network.create_explorer_grpc_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() @@ -126,22 +105,10 @@ def __init__( channel=self.chain_channel, cookie_assistant=network.chain_cookie_assistant, ) - self.chain_erc20_api = ChainGrpcERC20Api( - channel=self.chain_channel, - cookie_assistant=network.chain_cookie_assistant, - ) - self.chain_evm_api = ChainGrpcEVMApi( - channel=self.chain_channel, - cookie_assistant=network.chain_cookie_assistant, - ) self.chain_exchange_api = ChainGrpcExchangeApi( 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, @@ -188,88 +155,9 @@ def __init__( cookie_assistant=network.chain_cookie_assistant, ) - self.exchange_account_api = IndexerGrpcAccountApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_auction_api = IndexerGrpcAuctionApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_derivative_api = IndexerGrpcDerivativeApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_insurance_api = IndexerGrpcInsuranceApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_meta_api = IndexerGrpcMetaApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_oracle_api = IndexerGrpcOracleApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_portfolio_api = IndexerGrpcPortfolioApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_spot_api = IndexerGrpcSpotApi( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - - self.exchange_account_stream_api = IndexerGrpcAccountStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_auction_stream_api = IndexerGrpcAuctionStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_derivative_stream_api = IndexerGrpcDerivativeStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_meta_stream_api = IndexerGrpcMetaStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_oracle_stream_api = IndexerGrpcOracleStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_portfolio_stream_api = IndexerGrpcPortfolioStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - self.exchange_spot_stream_api = IndexerGrpcSpotStream( - channel=self.exchange_channel, - cookie_assistant=network.exchange_cookie_assistant, - ) - - self.exchange_explorer_api = IndexerGrpcExplorerApi( - channel=self.explorer_channel, - cookie_assistant=network.explorer_cookie_assistant, - ) - self.exchange_explorer_stream_api = IndexerGrpcExplorerStream( - channel=self.explorer_channel, - cookie_assistant=network.explorer_cookie_assistant, - ) - def __del__(self): self._cancel_timeout_height_sync_task() - async def close_exchange_channel(self): - await self.exchange_channel.close() - self._cancel_timeout_height_sync_task() - - async def close_explorer_channel(self): - await self.explorer_channel.close() - self._cancel_timeout_height_sync_task() - async def close_chain_channel(self): await self.chain_channel.close() self._cancel_timeout_height_sync_task() @@ -475,815 +363,126 @@ async def fetch_delegation_total_rewards( async def fetch_delegator_validators( self, - delegator_address: str, - ) -> Dict[str, Any]: - return await self.distribution_api.fetch_delegator_validators( - delegator_address=delegator_address, - ) - - async def fetch_delegator_withdraw_address( - self, - delegator_address: str, - ) -> Dict[str, Any]: - return await self.distribution_api.fetch_delegator_withdraw_address( - delegator_address=delegator_address, - ) - - async def fetch_community_pool(self) -> Dict[str, Any]: - return await self.distribution_api.fetch_community_pool() - - # Exchange module - - async def fetch_subaccount_deposits( - self, - subaccount_id: Optional[str] = None, - subaccount_trader: Optional[str] = None, - subaccount_nonce: Optional[int] = None, - ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_subaccount_deposits( - subaccount_id=subaccount_id, - subaccount_trader=subaccount_trader, - subaccount_nonce=subaccount_nonce, - ) - - async def fetch_subaccount_deposit( - self, - subaccount_id: str, - denom: str, - ) -> Dict[str, Any]: - 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_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( - self, - 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, - ) - - 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, - ) - - 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_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_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, - ) - - 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, - ) - - async def fetch_chain_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]: - """ - 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, - with_mid_price_and_tob=with_mid_price_and_tob, - ) - - async def fetch_chain_full_spot_market( - self, - 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, - ) - - async def fetch_chain_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]: - """ - 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, - 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( - self, - 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, - ) - - async def fetch_chain_account_address_spot_orders( - self, - 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, - ) - - async def fetch_chain_spot_orders_by_hashes( - self, - market_id: str, - 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, - order_hashes=order_hashes, - ) - - async def fetch_chain_subaccount_orders( - self, - 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, - ) - - async def fetch_chain_trader_spot_transient_orders( - self, - 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, - ) - - 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, - ) - - 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, - ) - - async def fetch_chain_derivative_orderbook( - self, - market_id: str, - 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, - pagination=pagination, - ) - - async def fetch_chain_trader_derivative_orders( - self, - 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, - ) - - async def fetch_chain_account_address_derivative_orders( - self, - 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, - ) - - async def fetch_chain_derivative_orders_by_hashes( - self, - market_id: str, - 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, - order_hashes=order_hashes, - ) - - async def fetch_chain_trader_derivative_transient_orders( - self, - 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, - ) - - async def fetch_chain_derivative_markets( - self, - status: Optional[str] = None, - 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, - with_mid_price_and_tob=with_mid_price_and_tob, - ) - - 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_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_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, - ) - - 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_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( - self, - accounts: Optional[List[str]] = None, - pending_pool_timestamp: Optional[int] = None, - ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_trade_reward_points( - accounts=accounts, - pending_pool_timestamp=pending_pool_timestamp, - ) - - async def fetch_pending_trade_reward_points( - self, - accounts: Optional[List[str]] = None, - pending_pool_timestamp: Optional[int] = None, - ) -> Dict[str, Any]: - 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_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_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_v2_api.fetch_balance_with_balance_holds() - - async def fetch_fee_discount_tier_statistics(self) -> Dict[str, Any]: - 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_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_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_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_v2_api.fetch_opted_out_of_rewards_accounts() - - 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]: - """ - 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, - max_age=max_age, - include_raw_history=include_raw_history, - include_metadata=include_metadata, - ) - - 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( - self, - 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, + delegator_address: str, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_delegator_validators( + delegator_address=delegator_address, ) - async def fetch_market_atomic_execution_fee_multiplier( + async def fetch_delegator_withdraw_address( self, - market_id: str, + delegator_address: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_market_atomic_execution_fee_multiplier( - market_id=market_id, + return await self.distribution_api.fetch_delegator_withdraw_address( + delegator_address=delegator_address, ) - 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 fetch_community_pool(self) -> Dict[str, Any]: + return await self.distribution_api.fetch_community_pool() + + # Exchange module - async def fetch_grant_authorization( + async def fetch_subaccount_deposits( self, - granter: str, - grantee: str, + subaccount_id: Optional[str] = None, + subaccount_trader: Optional[str] = None, + subaccount_nonce: Optional[int] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_grant_authorization( - granter=granter, - grantee=grantee, + return await self.chain_exchange_api.fetch_subaccount_deposits( + subaccount_id=subaccount_id, + subaccount_trader=subaccount_trader, + subaccount_nonce=subaccount_nonce, ) - 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_l3_derivative_orderbook_v2` instead - """ - warn( - "This method is deprecated. Use fetch_l3_derivative_orderbook_v2 instead", DeprecationWarning, stacklevel=2 + async def fetch_subaccount_deposit( + self, + subaccount_id: str, + denom: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_subaccount_deposit( + subaccount_id=subaccount_id, + denom=denom, ) - return await self.chain_exchange_api.fetch_l3_derivative_orderbook(market_id=market_id) - - 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_l3_spot_orderbook_v2` instead - """ - 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_market_balance(self, market_id: str) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_market_balance(market_id=market_id) - - async def fetch_market_balances(self) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_market_balances() - - async def fetch_denom_min_notional(self, denom: str) -> Dict[str, Any]: - """ - This method is deprecated and will be removed soon. Please use `fetch_denom_min_notional_v2` instead - """ - warn("This method is deprecated. Use fetch_denom_min_notional_v2 instead", DeprecationWarning, stacklevel=2) - - return await self.chain_exchange_api.fetch_denom_min_notional(denom=denom) - - async def fetch_denom_min_notionals(self) -> Dict[str, Any]: - """ - This method is deprecated and will be removed soon. Please use `fetch_denom_min_notionals_v2` instead - """ - warn("This method is deprecated. Use fetch_denom_min_notionals_v2 instead", DeprecationWarning, stacklevel=2) - - return await self.chain_exchange_api.fetch_denom_min_notionals() + async def fetch_exchange_balances(self) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_exchange_balances() - 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_volume(self, account: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_aggregate_volume(account=account) - async def fetch_aggregate_volumes_v2( + async def fetch_aggregate_volumes( 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( + return await self.chain_exchange_api.fetch_aggregate_volumes( accounts=accounts, market_ids=market_ids, ) - async def fetch_aggregate_market_volume_v2( + async def fetch_aggregate_market_volume( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_aggregate_market_volume( + return await self.chain_exchange_api.fetch_aggregate_market_volume( market_id=market_id, ) - async def fetch_aggregate_market_volumes_v2( + async def fetch_aggregate_market_volumes( self, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_aggregate_market_volumes( + return await self.chain_exchange_api.fetch_aggregate_market_volumes( market_ids=market_ids, ) - async def fetch_chain_spot_markets_v2( + async def fetch_denom_decimal(self, denom: str) -> Dict[str, Any]: + return await self.chain_exchange_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) + + async def fetch_chain_spot_markets( self, status: Optional[str] = None, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_spot_markets( + return await self.chain_exchange_api.fetch_spot_markets( status=status, market_ids=market_ids, ) - async def fetch_chain_spot_market_v2( + async def fetch_chain_spot_market( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_spot_market( + return await self.chain_exchange_api.fetch_spot_market( market_id=market_id, ) - async def fetch_chain_full_spot_markets_v2( + async def fetch_chain_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]: - return await self.chain_exchange_v2_api.fetch_full_spot_markets( + return await self.chain_exchange_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( + async def fetch_chain_full_spot_market( 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( + return await self.chain_exchange_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( + async def fetch_chain_spot_orderbook( self, market_id: str, order_side: Optional[str] = None, @@ -1292,7 +491,7 @@ async def fetch_chain_spot_orderbook_v2( 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( + return await self.chain_exchange_api.fetch_spot_orderbook( market_id=market_id, order_side=order_side, limit_cumulative_notional=limit_cumulative_notional, @@ -1300,187 +499,240 @@ async def fetch_chain_spot_orderbook_v2( pagination=pagination, ) - async def fetch_chain_trader_spot_orders_v2( + async def fetch_chain_trader_spot_orders( self, market_id: str, subaccount_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_trader_spot_orders( + return await self.chain_exchange_api.fetch_trader_spot_orders( market_id=market_id, subaccount_id=subaccount_id, ) - async def fetch_chain_account_address_spot_orders_v2( + async def fetch_chain_account_address_spot_orders( self, market_id: str, account_address: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_account_address_spot_orders( + return await self.chain_exchange_api.fetch_account_address_spot_orders( market_id=market_id, account_address=account_address, ) - async def fetch_chain_spot_orders_by_hashes_v2( + async def fetch_chain_spot_orders_by_hashes( 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( + return await self.chain_exchange_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( + async def fetch_chain_subaccount_orders( self, subaccount_id: str, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_subaccount_orders( + return await self.chain_exchange_api.fetch_subaccount_orders( subaccount_id=subaccount_id, market_id=market_id, ) - async def fetch_chain_trader_spot_transient_orders_v2( + async def fetch_chain_trader_spot_transient_orders( self, market_id: str, subaccount_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_trader_spot_transient_orders( + return await self.chain_exchange_api.fetch_trader_spot_transient_orders( market_id=market_id, subaccount_id=subaccount_id, ) - async def fetch_spot_mid_price_and_tob_v2( + async def fetch_spot_mid_price_and_tob( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_spot_mid_price_and_tob( + return await self.chain_exchange_api.fetch_spot_mid_price_and_tob( market_id=market_id, ) - async def fetch_derivative_mid_price_and_tob_v2( + async def fetch_derivative_mid_price_and_tob( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_derivative_mid_price_and_tob( + return await self.chain_exchange_api.fetch_derivative_mid_price_and_tob( market_id=market_id, ) - async def fetch_chain_derivative_orderbook_v2( + async def fetch_chain_derivative_orderbook( 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( + return await self.chain_exchange_api.fetch_derivative_orderbook( market_id=market_id, limit_cumulative_notional=limit_cumulative_notional, pagination=pagination, ) - async def fetch_chain_trader_derivative_orders_v2( + async def fetch_chain_trader_derivative_orders( self, market_id: str, subaccount_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_trader_derivative_orders( + return await self.chain_exchange_api.fetch_trader_derivative_orders( market_id=market_id, subaccount_id=subaccount_id, ) - async def fetch_chain_account_address_derivative_orders_v2( + async def fetch_chain_account_address_derivative_orders( self, market_id: str, account_address: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_account_address_derivative_orders( + return await self.chain_exchange_api.fetch_account_address_derivative_orders( market_id=market_id, account_address=account_address, ) - async def fetch_chain_derivative_orders_by_hashes_v2( + async def fetch_chain_derivative_orders_by_hashes( 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( + return await self.chain_exchange_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( + async def fetch_chain_trader_derivative_transient_orders( self, market_id: str, subaccount_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_trader_derivative_transient_orders( + return await self.chain_exchange_api.fetch_trader_derivative_transient_orders( market_id=market_id, subaccount_id=subaccount_id, ) - async def fetch_chain_derivative_markets_v2( + async def fetch_chain_derivative_markets( 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( + return await self.chain_exchange_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( + async def fetch_chain_derivative_market( self, market_id: str, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_derivative_market( + return await self.chain_exchange_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_derivative_market_address(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_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) + + async def fetch_chain_positions(self) -> Dict[str, Any]: + return await self.chain_exchange_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_positions(self, subaccount_id: str) -> Dict[str, Any]: + return await self.chain_exchange_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( + async def fetch_chain_subaccount_position_in_market(self, subaccount_id: str, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_subaccount_position_in_market( subaccount_id=subaccount_id, market_id=market_id, ) - async def fetch_chain_subaccount_effective_position_in_market_v2( + async def fetch_chain_subaccount_effective_position_in_market( self, subaccount_id: str, market_id: str ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_subaccount_effective_position_in_market( + return await self.chain_exchange_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_info(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_perpetual_market_info(market_id=market_id) + + async def fetch_chain_expiry_futures_market_info(self, market_id: str) -> Dict[str, Any]: + 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]: + 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]: + return await self.chain_exchange_api.fetch_subaccount_order_metadata(subaccount_id=subaccount_id) + + async def fetch_trade_reward_points( + self, + accounts: Optional[List[str]] = None, + pending_pool_timestamp: Optional[int] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_trade_reward_points( + accounts=accounts, + pending_pool_timestamp=pending_pool_timestamp, + ) + + async def fetch_pending_trade_reward_points( + self, + 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( + 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() + + async def fetch_fee_discount_account_info(self, account: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_fee_discount_account_info(account=account) + + async def fetch_fee_discount_schedule(self) -> Dict[str, Any]: + 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) + + async def fetch_balance_with_balance_holds(self) -> Dict[str, Any]: + return await self.chain_exchange_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() - 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_mito_vault_infos(self) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_mito_vault_infos() - 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_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) - 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_historical_trade_records(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_historical_trade_records(market_id=market_id) - 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_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) - 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_opted_out_of_rewards_accounts(self) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_opted_out_of_rewards_accounts() - async def fetch_market_volatility_v2( + async def fetch_market_volatility( self, market_id: str, trade_grouping_sec: Optional[int] = None, @@ -1488,7 +740,7 @@ async def fetch_market_volatility_v2( include_raw_history: Optional[bool] = None, include_metadata: Optional[bool] = None, ) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_market_volatility( + return await self.chain_exchange_api.fetch_market_volatility( market_id=market_id, trade_grouping_sec=trade_grouping_sec, max_age=max_age, @@ -1496,40 +748,54 @@ async def fetch_market_volatility_v2( 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_chain_binary_options_markets(self, status: Optional[str] = None) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_binary_options_markets(status=status) - async def fetch_trader_derivative_conditional_orders_v2( + async def fetch_trader_derivative_conditional_orders( 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( + return await self.chain_exchange_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_market_atomic_execution_fee_multiplier( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_market_atomic_execution_fee_multiplier( + market_id=market_id, + ) + + async def fetch_l3_derivative_orderbook(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_l3_derivative_orderbook(market_id=market_id) + + async def fetch_l3_spot_orderbook(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_l3_spot_orderbook(market_id=market_id) + + async def fetch_market_balance(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_market_balance(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) + async def fetch_market_balances(self) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_market_balances() - async def fetch_denom_min_notional_v2(self, denom: str) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_denom_min_notional(denom=denom) + async def fetch_denom_min_notional(self, denom: str) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_denom_min_notional(denom=denom) - async def fetch_denom_min_notionals_v2(self) -> Dict[str, Any]: - return await self.chain_exchange_v2_api.fetch_denom_min_notionals() + async def fetch_denom_min_notionals(self) -> Dict[str, Any]: + return await self.chain_exchange_api.fetch_denom_min_notionals() # 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) + return await self.indexer_client.fetch_auction(round=round) async def fetch_auctions(self) -> Dict[str, Any]: - return await self.exchange_auction_api.fetch_auctions() + return await self.indexer_client.fetch_auctions() async def listen_bids_updates( self, @@ -1537,25 +803,25 @@ async def listen_bids_updates( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_auction_stream_api.stream_bids( + await self.indexer_client.listen_bids_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, ) async def fetch_inj_burnt(self) -> Dict[str, Any]: - return await self.exchange_auction_api.fetch_inj_burnt() + return await self.indexer_client.fetch_inj_burnt() # Meta RPC async def fetch_ping(self) -> Dict[str, Any]: - return await self.exchange_meta_api.fetch_ping() + return await self.indexer_client.fetch_ping() async def fetch_version(self) -> Dict[str, Any]: - return await self.exchange_meta_api.fetch_version() + return await self.indexer_client.fetch_version() async def fetch_info(self) -> Dict[str, Any]: - return await self.exchange_meta_api.fetch_info() + return await self.indexer_client.fetch_info() async def listen_keepalive( self, @@ -1563,7 +829,7 @@ async def listen_keepalive( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_meta_stream_api.stream_keepalive( + await self.indexer_client.listen_keepalive( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -1687,8 +953,9 @@ async def abci_query( # ------------------------------ # Explorer RPC + 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) + return await self.indexer_client.fetch_tx_by_tx_hash(tx_hash=tx_hash) async def fetch_account_txs( self, @@ -1702,7 +969,7 @@ async def fetch_account_txs( status: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_account_txs( + return await self.indexer_client.fetch_account_txs( address=address, before=before, after=after, @@ -1721,7 +988,7 @@ async def fetch_contract_txs_v2( token: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_contract_txs_v2( + return await self.indexer_client.fetch_contract_txs_v2( address=address, height=height, token=token, @@ -1734,25 +1001,19 @@ async def fetch_blocks( 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) + return await self.indexer_client.fetch_blocks(before=before, after=after, pagination=pagination) async def fetch_block(self, block_id: str) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_block(block_id=block_id) + return await self.indexer_client.fetch_block(block_id=block_id) async def fetch_validators(self) -> Dict[str, Any]: - """ - Fetch validators from the explorer API. - - Returns: - Dict containing validator information - """ - return await self.exchange_explorer_api.fetch_validators() + return await self.indexer_client.fetch_validators() async def fetch_validator(self, address: str) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_validator(address) + return await self.indexer_client.fetch_validator(address=address) async def fetch_validator_uptime(self, address: str) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_validator_uptime(address=address) + return await self.indexer_client.fetch_validator_uptime(address=address) async def fetch_txs( self, @@ -1765,7 +1026,7 @@ async def fetch_txs( status: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_txs( + return await self.indexer_client.fetch_txs( before=before, after=after, message_type=message_type, @@ -1782,7 +1043,7 @@ async def listen_txs_updates( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_explorer_stream_api.stream_txs( + await self.indexer_client.listen_txs_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -1794,7 +1055,7 @@ async def listen_blocks_updates( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_explorer_stream_api.stream_blocks( + await self.indexer_client.listen_blocks_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -1806,7 +1067,7 @@ async def fetch_peggy_deposit_txs( receiver: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_peggy_deposit_txs( + return await self.indexer_client.fetch_peggy_deposit_txs( sender=sender, receiver=receiver, pagination=pagination, @@ -1818,7 +1079,7 @@ async def fetch_peggy_withdrawal_txs( receiver: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_peggy_withdrawal_txs( + return await self.indexer_client.fetch_peggy_withdrawal_txs( sender=sender, receiver=receiver, pagination=pagination, @@ -1834,7 +1095,7 @@ async def fetch_ibc_transfer_txs( dest_port: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_ibc_transfer_txs( + return await self.indexer_client.fetch_ibc_transfer_txs( sender=sender, receiver=receiver, src_channel=src_channel, @@ -1848,7 +1109,7 @@ async def fetch_wasm_codes( self, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_wasm_codes( + return await self.indexer_client.fetch_wasm_codes( pagination=pagination, ) @@ -1856,7 +1117,7 @@ async def fetch_wasm_code_by_id( self, code_id: int, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_wasm_code_by_id(code_id=code_id) + return await self.indexer_client.fetch_wasm_code_by_id(code_id=code_id) async def fetch_wasm_contracts( self, @@ -1865,7 +1126,7 @@ async def fetch_wasm_contracts( label: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_wasm_contracts( + return await self.indexer_client.fetch_wasm_contracts( code_id=code_id, assets_only=assets_only, label=label, @@ -1876,14 +1137,14 @@ async def fetch_wasm_contract_by_address( self, address: str, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_wasm_contract_by_address(address=address) + return await self.indexer_client.fetch_wasm_contract_by_address(address=address) async def fetch_cw20_balance( self, address: str, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_cw20_balance( + return await self.indexer_client.fetch_cw20_balance( address=address, pagination=pagination, ) @@ -1892,7 +1153,7 @@ async def fetch_relayers( self, market_ids: Optional[List[str]] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_relayers( + return await self.indexer_client.fetch_relayers( market_ids=market_ids, ) @@ -1906,7 +1167,7 @@ async def fetch_bank_transfers( token: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_explorer_api.fetch_bank_transfers( + return await self.indexer_client.fetch_bank_transfers( senders=senders, recipients=recipients, is_community_pool_related=is_community_pool_related, @@ -1926,7 +1187,7 @@ async def listen_subaccount_balance_updates( on_status_callback: Optional[Callable] = None, denoms: Optional[List[str]] = None, ): - await self.exchange_account_stream_api.stream_subaccount_balance( + await self.indexer_client.listen_subaccount_balance_updates( subaccount_id=subaccount_id, callback=callback, on_end_callback=on_end_callback, @@ -1935,17 +1196,15 @@ async def listen_subaccount_balance_updates( ) 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) + return await self.indexer_client.fetch_subaccount_balance(subaccount_id=subaccount_id, denom=denom) async def fetch_subaccounts_list(self, address: str) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_subaccounts_list(address=address) + return await self.indexer_client.fetch_subaccounts_list(address=address) async def fetch_subaccount_balances_list( self, subaccount_id: str, denoms: Optional[List[str]] = None ) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_subaccount_balances_list( - subaccount_id=subaccount_id, denoms=denoms - ) + return await self.indexer_client.fetch_subaccount_balances_list(subaccount_id=subaccount_id, denoms=denoms) async def fetch_subaccount_history( self, @@ -1954,7 +1213,7 @@ async def fetch_subaccount_history( transfer_types: Optional[List[str]] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_subaccount_history( + return await self.indexer_client.fetch_subaccount_history( subaccount_id=subaccount_id, denom=denom, transfer_types=transfer_types, @@ -1967,7 +1226,7 @@ async def fetch_subaccount_order_summary( market_id: Optional[str] = None, order_direction: Optional[str] = None, ) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_subaccount_order_summary( + return await self.indexer_client.fetch_subaccount_order_summary( subaccount_id=subaccount_id, market_id=market_id, order_direction=order_direction, @@ -1978,16 +1237,16 @@ async def fetch_order_states( spot_order_hashes: Optional[List[str]] = None, derivative_order_hashes: Optional[List[str]] = None, ) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_order_states( + return await self.indexer_client.fetch_order_states( spot_order_hashes=spot_order_hashes, derivative_order_hashes=derivative_order_hashes, ) async def fetch_portfolio(self, account_address: str) -> Dict[str, Any]: - return await self.exchange_account_api.fetch_portfolio(account_address=account_address) + return await self.indexer_client.fetch_portfolio(account_address=account_address) 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) + return await self.indexer_client.fetch_rewards(account_address=account_address, epoch=epoch) # OracleRPC @@ -2000,7 +1259,7 @@ async def listen_oracle_prices_updates( quote_symbol: Optional[str] = None, oracle_type: Optional[str] = None, ): - await self.exchange_oracle_stream_api.stream_oracle_prices( + await self.indexer_client.listen_oracle_prices_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2016,37 +1275,20 @@ async def fetch_oracle_price( oracle_type: Optional[str] = None, oracle_scale_factor: Optional[int] = None, ) -> Dict[str, Any]: - return await self.exchange_oracle_api.fetch_oracle_price( + return await self.indexer_client.fetch_oracle_price( base_symbol=base_symbol, quote_symbol=quote_symbol, oracle_type=oracle_type, oracle_scale_factor=oracle_scale_factor, ) - async def fetch_oracle_price_v2(self, filters: List[exchange_oracle_pb.PricePayloadV2]) -> Dict[str, Any]: - return await self.exchange_oracle_api.fetch_oracle_price_v2(filters=filters) - async def fetch_oracle_list(self) -> Dict[str, Any]: - return await self.exchange_oracle_api.fetch_oracle_list() - - def oracle_price_v2_filter( - self, - base_symbol: Optional[str] = None, - quote_symbol: Optional[str] = None, - oracle_type: Optional[str] = None, - oracle_scale_factor: Optional[int] = None, - ) -> exchange_oracle_pb.PricePayloadV2: - return exchange_oracle_pb.PricePayloadV2( - base_symbol=base_symbol, - quote_symbol=quote_symbol, - oracle_type=oracle_type, - oracle_scale_factor=oracle_scale_factor, - ) + return await self.indexer_client.fetch_oracle_list() # InsuranceRPC async def fetch_insurance_funds(self) -> Dict[str, Any]: - return await self.exchange_insurance_api.fetch_insurance_funds() + return await self.indexer_client.fetch_insurance_funds() async def fetch_redemptions( self, @@ -2054,7 +1296,7 @@ async def fetch_redemptions( denom: Optional[str] = None, status: Optional[str] = None, ) -> Dict[str, Any]: - return await self.exchange_insurance_api.fetch_redemptions( + return await self.indexer_client.fetch_redemptions( address=address, denom=denom, status=status, @@ -2063,7 +1305,7 @@ async def fetch_redemptions( # SpotRPC async def fetch_spot_market(self, market_id: str) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_market(market_id=market_id) + return await self.indexer_client.fetch_spot_market(market_id=market_id) async def fetch_spot_markets( self, @@ -2071,7 +1313,7 @@ async def fetch_spot_markets( base_denom: Optional[str] = None, quote_denom: Optional[str] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_markets( + return await self.indexer_client.fetch_spot_markets( market_statuses=market_statuses, base_denom=base_denom, quote_denom=quote_denom ) @@ -2082,18 +1324,18 @@ async def listen_spot_markets_updates( on_status_callback: Optional[Callable] = None, market_ids: Optional[List[str]] = None, ): - await self.exchange_spot_stream_api.stream_markets( + await self.indexer_client.listen_spot_markets_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, market_ids=market_ids, ) - async def fetch_spot_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_orderbook_v2(market_id=market_id, depth=depth) + async def fetch_spot_orderbook_v2(self, market_id: str) -> Dict[str, Any]: + return await self.indexer_client.fetch_spot_orderbook_v2(market_id=market_id) - async def fetch_spot_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) + async def fetch_spot_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: + return await self.indexer_client.fetch_spot_orderbooks_v2(market_ids=market_ids) async def fetch_spot_orders( self, @@ -2106,7 +1348,7 @@ async def fetch_spot_orders( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_orders( + return await self.indexer_client.fetch_spot_orders( market_ids=market_ids, order_side=order_side, subaccount_id=subaccount_id, @@ -2130,7 +1372,7 @@ async def fetch_spot_orders_history( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_orders_history( + return await self.indexer_client.fetch_spot_orders_history( subaccount_id=subaccount_id, market_ids=market_ids, order_types=order_types, @@ -2156,7 +1398,7 @@ async def fetch_spot_trades( fee_recipient: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_trades_v2( + return await self.indexer_client.fetch_spot_trades( market_ids=market_ids, subaccount_ids=subaccount_ids, execution_side=execution_side, @@ -2176,7 +1418,7 @@ async def listen_spot_orderbook_snapshots( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_spot_stream_api.stream_orderbook_v2( + await self.indexer_client.listen_spot_orderbook_snapshots( market_ids=market_ids, callback=callback, on_end_callback=on_end_callback, @@ -2190,7 +1432,7 @@ async def listen_spot_orderbook_updates( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_spot_stream_api.stream_orderbook_update( + await self.indexer_client.listen_spot_orderbook_updates( market_ids=market_ids, callback=callback, on_end_callback=on_end_callback, @@ -2211,7 +1453,7 @@ async def listen_spot_orders_updates( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ): - await self.exchange_spot_stream_api.stream_orders( + await self.indexer_client.listen_spot_orders_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2237,7 +1479,7 @@ async def listen_spot_orders_history_updates( state: Optional[str] = None, execution_types: Optional[List[str]] = None, ): - await self.exchange_spot_stream_api.stream_orders_history( + await self.indexer_client.listen_spot_orders_history_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2261,7 +1503,7 @@ async def listen_derivative_orders_history_updates( state: Optional[str] = None, execution_types: Optional[List[str]] = None, ): - await self.exchange_derivative_stream_api.stream_orders_history( + await self.indexer_client.listen_derivative_orders_history_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2289,7 +1531,7 @@ async def listen_spot_trades_updates( fee_recipient: Optional[str] = None, pagination: Optional[PaginationOption] = None, ): - await self.exchange_spot_stream_api.stream_trades_v2( + await self.indexer_client.listen_spot_trades_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2311,7 +1553,7 @@ async def fetch_spot_subaccount_orders_list( market_id: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_subaccount_orders_list( + return await self.indexer_client.fetch_spot_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) @@ -2323,7 +1565,7 @@ async def fetch_spot_subaccount_trades_list( direction: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_spot_api.fetch_subaccount_trades_list( + return await self.indexer_client.fetch_spot_subaccount_trades_list( subaccount_id=subaccount_id, market_id=market_id, execution_type=execution_type, @@ -2332,15 +1574,16 @@ async def fetch_spot_subaccount_trades_list( ) # DerivativeRPC + async def fetch_derivative_market(self, market_id: str) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_market(market_id=market_id) + return await self.indexer_client.fetch_derivative_market(market_id=market_id) async def fetch_derivative_markets( self, market_statuses: Optional[List[str]] = None, quote_denom: Optional[str] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_markets( + return await self.indexer_client.fetch_derivative_markets( market_statuses=market_statuses, quote_denom=quote_denom, ) @@ -2352,18 +1595,18 @@ async def listen_derivative_market_updates( on_status_callback: Optional[Callable] = None, market_ids: Optional[List[str]] = None, ): - await self.exchange_derivative_stream_api.stream_market( + await self.indexer_client.listen_derivative_market_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, market_ids=market_ids, ) - async def fetch_derivative_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_orderbook_v2(market_id=market_id, depth=depth) + async def fetch_derivative_orderbook_v2(self, market_id: str) -> Dict[str, Any]: + return await self.indexer_client.fetch_derivative_orderbook_v2(market_id=market_id) - async def fetch_derivative_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) + async def fetch_derivative_orderbooks_v2(self, market_ids: List[str]) -> Dict[str, Any]: + return await self.indexer_client.fetch_derivative_orderbooks_v2(market_ids=market_ids) async def fetch_derivative_orders( self, @@ -2378,7 +1621,7 @@ async def fetch_derivative_orders( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_orders( + return await self.indexer_client.fetch_derivative_orders( market_ids=market_ids, order_side=order_side, subaccount_id=subaccount_id, @@ -2405,7 +1648,7 @@ async def fetch_derivative_orders_history( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_orders_history( + return await self.indexer_client.fetch_derivative_orders_history( subaccount_id=subaccount_id, market_ids=market_ids, order_types=order_types, @@ -2432,7 +1675,7 @@ async def fetch_derivative_trades( fee_recipient: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_trades_v2( + return await self.indexer_client.fetch_derivative_trades( market_ids=market_ids, subaccount_ids=subaccount_ids, execution_side=execution_side, @@ -2452,7 +1695,7 @@ async def listen_derivative_orderbook_snapshots( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_derivative_stream_api.stream_orderbook_v2( + await self.indexer_client.listen_derivative_orderbook_snapshots( market_ids=market_ids, callback=callback, on_end_callback=on_end_callback, @@ -2466,7 +1709,7 @@ async def listen_derivative_orderbook_updates( on_end_callback: Optional[Callable] = None, on_status_callback: Optional[Callable] = None, ): - await self.exchange_derivative_stream_api.stream_orderbook_update( + await self.indexer_client.listen_derivative_orderbook_updates( market_ids=market_ids, callback=callback, on_end_callback=on_end_callback, @@ -2489,7 +1732,7 @@ async def listen_derivative_orders_updates( cid: Optional[str] = None, pagination: Optional[PaginationOption] = None, ): - await self.exchange_derivative_stream_api.stream_orders( + await self.indexer_client.listen_derivative_orders_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2521,7 +1764,7 @@ async def listen_derivative_trades_updates( fee_recipient: Optional[str] = None, pagination: Optional[PaginationOption] = None, ): - return await self.exchange_derivative_stream_api.stream_trades_v2( + return await self.indexer_client.listen_derivative_trades_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2545,7 +1788,7 @@ async def fetch_derivative_positions_v2( subaccount_total_positions: Optional[bool] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_positions_v2( + return await self.indexer_client.fetch_derivative_positions_v2( market_ids=market_ids, subaccount_id=subaccount_id, direction=direction, @@ -2569,7 +1812,7 @@ async def listen_derivative_positions_updates( DeprecationWarning, stacklevel=2, ) - await self.exchange_derivative_stream_api.stream_positions( + await self.indexer_client.listen_derivative_positions_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2600,7 +1843,7 @@ async def listen_derivative_positions_v2_updates( :param subaccount_ids: Optional list of subaccount IDs to filter positions :param account_address: Optional account address to filter positions """ - await self.indexer_derivative_stream.stream_positions_v2( + await self.indexer_client.listen_derivative_positions_v2_updates( callback=callback, on_end_callback=on_end_callback, on_status_callback=on_status_callback, @@ -2616,7 +1859,7 @@ async def fetch_derivative_liquidable_positions( market_id: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_liquidable_positions( + return await self.indexer_client.fetch_derivative_liquidable_positions( market_id=market_id, pagination=pagination, ) @@ -2627,7 +1870,7 @@ async def fetch_derivative_subaccount_orders_list( market_id: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_subaccount_orders_list( + return await self.indexer_client.fetch_derivative_subaccount_orders_list( subaccount_id=subaccount_id, market_id=market_id, pagination=pagination ) @@ -2639,7 +1882,7 @@ async def fetch_derivative_subaccount_trades_list( direction: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_subaccount_trades_list( + return await self.indexer_client.fetch_derivative_subaccount_trades_list( subaccount_id=subaccount_id, market_id=market_id, execution_type=execution_type, @@ -2653,7 +1896,7 @@ async def fetch_funding_payments( subaccount_id: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_funding_payments( + return await self.indexer_client.fetch_funding_payments( market_ids=market_ids, subaccount_id=subaccount_id, pagination=pagination ) @@ -2662,7 +1905,7 @@ async def fetch_funding_rates( market_id: str, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_funding_rates(market_id=market_id, pagination=pagination) + return await self.indexer_client.fetch_funding_rates(market_id=market_id, pagination=pagination) async def fetch_binary_options_markets( self, @@ -2670,25 +1913,20 @@ async def fetch_binary_options_markets( quote_denom: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_binary_options_markets( + return await self.indexer_client.fetch_binary_options_markets( market_status=market_status, quote_denom=quote_denom, pagination=pagination, ) 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) - - async def fetch_open_interest(self, market_ids: List[str]) -> Dict[str, Any]: - return await self.exchange_derivative_api.fetch_open_interest(market_ids=market_ids) + return await self.indexer_client.fetch_binary_options_market(market_id=market_id) # PortfolioRPC async def fetch_account_portfolio_balances( self, account_address: str, usd: Optional[bool] = None ) -> Dict[str, Any]: - return await self.exchange_portfolio_api.fetch_account_portfolio_balances( - account_address=account_address, usd=usd - ) + return await self.indexer_client.fetch_account_portfolio_balances(account_address=account_address, usd=usd) async def listen_account_portfolio_updates( self, @@ -2699,7 +1937,7 @@ async def listen_account_portfolio_updates( subaccount_id: Optional[str] = None, update_type: Optional[str] = None, ): - await self.exchange_portfolio_stream_api.stream_account_portfolio( + await self.indexer_client.listen_account_portfolio_updates( account_address=account_address, callback=callback, on_end_callback=on_end_callback, @@ -2724,11 +1962,6 @@ async def listen_chain_stream_updates( positions_filter: Optional[chain_stream_query.PositionsFilter] = None, oracle_price_filter: Optional[chain_stream_query.OraclePriceFilter] = None, ): - """ - 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_v2_updates instead", DeprecationWarning, stacklevel=2) - return await self.chain_stream_api.stream( callback=callback, on_end_callback=on_end_callback, @@ -2745,38 +1978,6 @@ async def listen_chain_stream_updates( oracle_price_filter=oracle_price_filter, ) - 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_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_v2( - 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, - 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, - ) - # region IBC Transfer module async def fetch_denom_trace(self, hash: str) -> Dict[str, Any]: return await self.ibc_transfer_api.fetch_denom_trace(hash=hash) @@ -3004,44 +2205,6 @@ async def fetch_eip_base_fee(self) -> Dict[str, Any]: # endregion - # ------------------------- - # region Chain ERC20 module - async def fetch_erc20_all_token_pairs(self) -> Dict[str, Any]: - return await self.chain_erc20_api.fetch_all_token_pairs() - - async def fetch_erc20_token_pair_by_denom(self, bank_denom: str) -> Dict[str, Any]: - return await self.chain_erc20_api.fetch_token_pair_by_denom(bank_denom=bank_denom) - - async def fetch_erc20_token_pair_by_erc20_address(self, erc20_address: str) -> Dict[str, Any]: - return await self.chain_erc20_api.fetch_token_pair_by_erc20_address(erc20_address=erc20_address) - - # endregion - - # ------------------------- - # region Chain EVM module - async def fetch_evm_account(self, address: str) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_account(address=address) - - async def fetch_evm_cosmos_account(self, address: str) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_cosmos_account(address=address) - - async def fetch_evm_validator_account(self, cons_address: str) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_validator_account(cons_address=cons_address) - - async def fetch_evm_balance(self, address: str) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_balance(address=address) - - async def fetch_evm_storage(self, address: str, key: Optional[str] = None) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_storage(address=address, key=key) - - async def fetch_evm_code(self, address: str) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_code(address=address) - - async def fetch_evm_base_fee(self) -> Dict[str, Any]: - return await self.chain_evm_api.fetch_base_fee() - - # endregion - async def composer(self): return Composer( network=self.network.string(), @@ -3117,7 +2280,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_v2(status="Active"))["markets"] + markets_info = (await self.fetch_chain_spot_markets(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"]) @@ -3144,7 +2307,7 @@ async def _initialize_tokens_and_markets(self): spot_markets[market.id] = market - markets_info = (await self.fetch_chain_derivative_markets_v2(status="Active", with_mid_price_and_tob=False))[ + markets_info = (await self.fetch_chain_derivative_markets(status="Active", with_mid_price_and_tob=False))[ "markets" ] for market_info in markets_info: @@ -3182,7 +2345,7 @@ async def _initialize_tokens_and_markets(self): derivative_markets[derivative_market.id] = derivative_market - markets_info = (await self.fetch_chain_binary_options_markets_v2(status="Active"))["markets"] + markets_info = (await self.fetch_chain_binary_options_markets(status="Active"))["markets"] for market_info in markets_info: quote_token = self._tokens_by_denom.get(market_info["quoteDenom"]) diff --git a/pyinjective/async_client_v2.py b/pyinjective/async_client_v2.py new file mode 100644 index 00000000..515df54a --- /dev/null +++ b/pyinjective/async_client_v2.py @@ -0,0 +1,1470 @@ +import asyncio +from copy import deepcopy +from decimal import Decimal +from typing import Any, Callable, Dict, List, Optional, Tuple + +from google.protobuf import json_format + +from pyinjective.client.chain.grpc.chain_grpc_auth_api import ChainGrpcAuthApi +from pyinjective.client.chain.grpc.chain_grpc_authz_api import ChainGrpcAuthZApi +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_erc20_api import ChainGrpcERC20Api +from pyinjective.client.chain.grpc.chain_grpc_evm_api import ChainGrpcEVMApi +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_txfees_api import ChainGrpcTxfeesApi +from pyinjective.client.chain.grpc.chain_grpc_wasm_api import ChainGrpcWasmApi +from pyinjective.client.chain.grpc_stream.chain_grpc_chain_stream import ChainGrpcChainStream +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.composer_v2 import Composer +from pyinjective.constant import GAS_PRICE +from pyinjective.core.ibc.channel.grpc.ibc_channel_grpc_api import IBCChannelGrpcApi +from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi +from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi +from pyinjective.core.ibc.transfer.grpc.ibc_transfer_grpc_api import IBCTransferGrpcApi +from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.network import Network +from pyinjective.core.tendermint.grpc.tendermint_grpc_api import TendermintGrpcApi +from pyinjective.core.token import Token +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_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.ibc.lightclients.tendermint.v1 import ( # noqa: F401 for validator set responses + tendermint_pb2 as ibc_tendermint, +) +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 + +DEFAULT_TIMEOUTHEIGHT_SYNC_INTERVAL = 20 # seconds +DEFAULT_TIMEOUTHEIGHT = 30 # blocks +DEFAULT_SESSION_RENEWAL_OFFSET = 120 # seconds +DEFAULT_BLOCK_TIME = 2 # seconds + + +class AsyncClient: + def __init__( + self, + network: Network, + ): + self.addr = "" + self.number = 0 + self.sequence = 0 + + self.network = network + + # chain stubs + self.chain_channel = self.network.create_chain_grpc_channel() + + self.stubCosmosTendermint = tendermint_query_grpc.ServiceStub(self.chain_channel) + self.stubAuth = auth_query_grpc.QueryStub(self.chain_channel) + self.stubAuthz = authz_query_grpc.QueryStub(self.chain_channel) + self.stubBank = bank_query_grpc.QueryStub(self.chain_channel) + self.stubTx = tx_service_grpc.ServiceStub(self.chain_channel) + + self.timeout_height = 1 + + # exchange stubs + self.exchange_channel = self.network.create_exchange_grpc_channel() + # explorer stubs + self.explorer_channel = self.network.create_explorer_grpc_channel() + self.chain_stream_channel = self.network.create_chain_stream_grpc_channel() + + self._timeout_height_sync_task = None + self._initialize_timeout_height_sync_task() + + self._tokens_and_markets_initialization_lock = asyncio.Lock() + self._tokens_by_denom = dict() + self._tokens_by_symbol = dict() + self._spot_markets: Optional[Dict[str, SpotMarket]] = None + self._derivative_markets: Optional[Dict[str, DerivativeMarket]] = None + self._binary_option_markets: Optional[Dict[str, BinaryOptionMarket]] = None + + self.bank_api = ChainGrpcBankApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.auth_api = ChainGrpcAuthApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.authz_api = ChainGrpcAuthZApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.distribution_api = ChainGrpcDistributionApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.chain_erc20_api = ChainGrpcERC20Api( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.chain_evm_api = ChainGrpcEVMApi( + 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, + ) + self.ibc_client_api = IBCClientGrpcApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.ibc_connection_api = IBCConnectionGrpcApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.ibc_transfer_api = IBCTransferGrpcApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.permissions_api = ChainGrpcPermissionsApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.tendermint_api = TendermintGrpcApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.token_factory_api = ChainGrpcTokenFactoryApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.tx_api = TxGrpcApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.txfees_api = ChainGrpcTxfeesApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + self.wasm_api = ChainGrpcWasmApi( + channel=self.chain_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + + self.chain_stream_api = ChainGrpcChainStream( + channel=self.chain_stream_channel, + cookie_assistant=network.chain_cookie_assistant, + ) + + def __del__(self): + self._cancel_timeout_height_sync_task() + + async def close_chain_channel(self): + await self.chain_channel.close() + self._cancel_timeout_height_sync_task() + + async def close_chain_stream_channel(self): + await self.chain_stream_channel.close() + self._cancel_timeout_height_sync_task() + + async def all_tokens(self) -> Dict[str, Token]: + if self._tokens_by_symbol is None: + async with self._tokens_and_markets_initialization_lock: + if self._tokens_by_symbol is None: + await self._initialize_tokens_and_markets() + return deepcopy(self._tokens_by_symbol) + + async def all_spot_markets(self) -> Dict[str, SpotMarket]: + if self._spot_markets is None: + async with self._tokens_and_markets_initialization_lock: + if self._spot_markets is None: + await self._initialize_tokens_and_markets() + return deepcopy(self._spot_markets) + + async def all_derivative_markets(self) -> Dict[str, DerivativeMarket]: + if self._derivative_markets is None: + async with self._tokens_and_markets_initialization_lock: + if self._derivative_markets is None: + await self._initialize_tokens_and_markets() + return deepcopy(self._derivative_markets) + + async def all_binary_option_markets(self) -> Dict[str, BinaryOptionMarket]: + if self._binary_option_markets is None: + async with self._tokens_and_markets_initialization_lock: + if self._binary_option_markets is None: + await self._initialize_tokens_and_markets() + return deepcopy(self._binary_option_markets) + + def get_sequence(self): + current_seq = self.sequence + self.sequence += 1 + return current_seq + + def get_number(self): + return self.number + + async def fetch_tx(self, hash: str) -> Dict[str, Any]: + return await self.tx_api.fetch_tx(hash=hash) + + async def sync_timeout_height(self): + try: + block = await self.fetch_latest_block() + self.timeout_height = int(block["block"]["header"]["height"]) + DEFAULT_TIMEOUTHEIGHT + except Exception as e: + LoggerProvider().logger_for_class(logging_class=self.__class__).debug( + f"error while fetching latest block, setting timeout height to 0: {e}" + ) + self.timeout_height = 0 + + # default client methods + + async def fetch_account(self, address: str) -> Optional[account_pb2.EthAccount]: + result_account = None + try: + account = await self.auth_api.fetch_account(address=address) + parsed_account = account_pb2.EthAccount() + if parsed_account.DESCRIPTOR.full_name in account["account"]["@type"]: + json_format.ParseDict(js_dict=account["account"], message=parsed_account, ignore_unknown_fields=True) + self.number = parsed_account.base_account.account_number + self.sequence = parsed_account.base_account.sequence + result_account = parsed_account + except Exception as e: + LoggerProvider().logger_for_class(logging_class=self.__class__).debug( + f"error while fetching sequence and number {e}" + ) + + return result_account + + async def get_request_id_by_tx_hash(self, tx_hash: str) -> List[int]: + tx = await self.tx_api.fetch_tx(hash=tx_hash) + request_ids = [] + for log in tx["txResponse"].get("logs", []): + request_event = [ + event for event in log.get("events", []) if event["type"] == "request" or event["type"] == "report" + ] + if len(request_event) == 1: + attrs = request_event[0].get("attributes", []) + attr_id = [attr for attr in attrs if attr["key"] == "id"] + if len(attr_id) == 1: + request_id = attr_id[0]["value"] + request_ids.append(int(request_id)) + if len(request_ids) == 0: + raise NotFoundError("Request Id is not found") + return request_ids + + async def simulate(self, tx_bytes: bytes) -> Dict[str, Any]: + return await self.tx_api.simulate(tx_bytes=tx_bytes) + + 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 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 get_chain_id(self) -> str: + latest_block = await self.fetch_latest_block() + return latest_block["block"]["header"]["chainId"] + + async def fetch_grants( + self, + granter: str, + grantee: str, + msg_type_url: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.authz_api.fetch_grants( + granter=granter, + grantee=grantee, + msg_type_url=msg_type_url, + pagination=pagination, + ) + + async def fetch_bank_balances(self, address: str) -> Dict[str, Any]: + return await self.bank_api.fetch_balances(account_address=address) + + 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) + + async def fetch_spendable_balances( + self, + address: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.bank_api.fetch_spendable_balances(account_address=address, pagination=pagination) + + async def fetch_spendable_balances_by_denom( + self, + address: str, + denom: str, + ) -> Dict[str, Any]: + return await self.bank_api.fetch_spendable_balances_by_denom(account_address=address, denom=denom) + + async def fetch_total_supply(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.bank_api.fetch_total_supply(pagination=pagination) + + async def fetch_supply_of(self, denom: str) -> Dict[str, Any]: + return await self.bank_api.fetch_supply_of(denom=denom) + + async def fetch_denom_metadata(self, denom: str) -> Dict[str, Any]: + return await self.bank_api.fetch_denom_metadata(denom=denom) + + async def fetch_denoms_metadata(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.bank_api.fetch_denoms_metadata(pagination=pagination) + + async def fetch_denom_owners(self, denom: str, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.bank_api.fetch_denom_owners(denom=denom, pagination=pagination) + + async def fetch_send_enabled( + self, + denoms: Optional[List[str]] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.bank_api.fetch_send_enabled(denoms=denoms, pagination=pagination) + + async def fetch_validator_distribution_info(self, validator_address: str) -> Dict[str, Any]: + return await self.distribution_api.fetch_validator_distribution_info(validator_address=validator_address) + + async def fetch_validator_outstanding_rewards(self, validator_address: str) -> Dict[str, Any]: + return await self.distribution_api.fetch_validator_outstanding_rewards(validator_address=validator_address) + + async def fetch_validator_commission(self, validator_address: str) -> Dict[str, Any]: + return await self.distribution_api.fetch_validator_commission(validator_address=validator_address) + + async def fetch_validator_slashes( + self, + validator_address: str, + starting_height: Optional[int] = None, + ending_height: Optional[int] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_validator_slashes( + validator_address=validator_address, + starting_height=starting_height, + ending_height=ending_height, + pagination=pagination, + ) + + async def fetch_delegation_rewards( + self, + delegator_address: str, + validator_address: str, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_delegation_rewards( + delegator_address=delegator_address, + validator_address=validator_address, + ) + + async def fetch_delegation_total_rewards( + self, + delegator_address: str, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_delegation_total_rewards( + delegator_address=delegator_address, + ) + + async def fetch_delegator_validators( + self, + delegator_address: str, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_delegator_validators( + delegator_address=delegator_address, + ) + + async def fetch_delegator_withdraw_address( + self, + delegator_address: str, + ) -> Dict[str, Any]: + return await self.distribution_api.fetch_delegator_withdraw_address( + delegator_address=delegator_address, + ) + + async def fetch_community_pool(self) -> Dict[str, Any]: + return await self.distribution_api.fetch_community_pool() + + # Exchange module + + async def fetch_subaccount_deposits( + self, + subaccount_id: Optional[str] = None, + subaccount_trader: Optional[str] = None, + subaccount_nonce: Optional[int] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_subaccount_deposits( + subaccount_id=subaccount_id, + subaccount_trader=subaccount_trader, + subaccount_nonce=subaccount_nonce, + ) + + async def fetch_subaccount_deposit( + self, + subaccount_id: str, + denom: str, + ) -> Dict[str, Any]: + 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_v2_api.fetch_exchange_balances() + + async def fetch_denom_decimal(self, denom: str) -> Dict[str, Any]: + 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_v2_api.fetch_denom_decimals(denoms=denoms) + + async def fetch_derivative_market_address(self, market_id: str) -> Dict[str, Any]: + 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_v2_api.fetch_subaccount_trade_nonce(subaccount_id=subaccount_id) + + async def fetch_chain_perpetual_market_info(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_perpetual_market_info(market_id=market_id) + + async def fetch_trade_reward_points( + self, + accounts: Optional[List[str]] = None, + pending_pool_timestamp: Optional[int] = None, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_trade_reward_points( + accounts=accounts, + pending_pool_timestamp=pending_pool_timestamp, + ) + + async def fetch_pending_trade_reward_points( + self, + accounts: Optional[List[str]] = None, + pending_pool_timestamp: Optional[int] = None, + ) -> Dict[str, Any]: + 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_v2_api.fetch_trade_reward_campaign() + + async def fetch_balance_mismatches(self, dust_factor: int) -> Dict[str, Any]: + 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_v2_api.fetch_balance_with_balance_holds() + + async def fetch_fee_discount_tier_statistics(self) -> Dict[str, Any]: + 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_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_v2_api.fetch_market_id_from_vault(vault_address=vault_address) + + async def fetch_is_opted_out_of_rewards(self, account: str) -> Dict[str, Any]: + 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_v2_api.fetch_opted_out_of_rewards_accounts() + + async def fetch_market_atomic_execution_fee_multiplier( + self, + market_id: str, + ) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_market_atomic_execution_fee_multiplier( + market_id=market_id, + ) + + 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 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_market_balance(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_market_balance(market_id=market_id) + + async def fetch_market_balances(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_market_balances() + + async def fetch_aggregate_volume(self, account: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_aggregate_volume(account=account) + + async def fetch_aggregate_volumes( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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( + 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(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_positions() + + async def fetch_chain_subaccount_positions(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(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( + 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(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(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(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(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(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_fee_discount_schedule() + + async def fetch_historical_trade_records(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( + 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(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( + 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(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(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_l3_spot_orderbook(market_id=market_id) + + async def fetch_denom_min_notional(self, denom: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_denom_min_notional(denom=denom) + + async def fetch_denom_min_notionals(self) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_denom_min_notionals() + + # Wasm module + async def fetch_contract_info(self, address: str) -> Dict[str, Any]: + return await self.wasm_api.fetch_contract_info(address=address) + + async def fetch_contract_history( + self, + address: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_contract_history( + address=address, + pagination=pagination, + ) + + async def fetch_contracts_by_code( + self, + code_id: int, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_contracts_by_code( + code_id=code_id, + pagination=pagination, + ) + + async def fetch_all_contracts_state( + self, + address: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_all_contracts_state( + address=address, + pagination=pagination, + ) + + async def fetch_raw_contract_state(self, address: str, query_data: str) -> Dict[str, Any]: + return await self.wasm_api.fetch_raw_contract_state(address=address, query_data=query_data) + + async def fetch_smart_contract_state(self, address: str, query_data: str) -> Dict[str, Any]: + return await self.wasm_api.fetch_smart_contract_state(address=address, query_data=query_data) + + async def fetch_code(self, code_id: int) -> Dict[str, Any]: + return await self.wasm_api.fetch_code(code_id=code_id) + + async def fetch_codes( + self, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_codes( + pagination=pagination, + ) + + async def fetch_pinned_codes( + self, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_pinned_codes( + pagination=pagination, + ) + + async def fetch_contracts_by_creator( + self, + creator_address: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.wasm_api.fetch_contracts_by_creator( + creator_address=creator_address, + pagination=pagination, + ) + + # Token Factory module + + async def fetch_denom_authority_metadata( + self, + creator: str, + sub_denom: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.token_factory_api.fetch_denom_authority_metadata(creator=creator, sub_denom=sub_denom) + + async def fetch_denoms_from_creator( + self, + creator: str, + ) -> Dict[str, Any]: + return await self.token_factory_api.fetch_denoms_from_creator(creator=creator) + + async def fetch_tokenfactory_module_state(self) -> Dict[str, Any]: + return await self.token_factory_api.fetch_tokenfactory_module_state() + + # ------------------------------ + # region Tendermint module + async def fetch_node_info(self) -> Dict[str, Any]: + return await self.tendermint_api.fetch_node_info() + + async def fetch_syncing(self) -> Dict[str, Any]: + return await self.tendermint_api.fetch_syncing() + + async def fetch_latest_block(self) -> Dict[str, Any]: + return await self.tendermint_api.fetch_latest_block() + + async def fetch_block_by_height(self, height: int) -> Dict[str, Any]: + return await self.tendermint_api.fetch_block_by_height(height=height) + + async def fetch_latest_validator_set(self) -> Dict[str, Any]: + return await self.tendermint_api.fetch_latest_validator_set() + + async def fetch_validator_set_by_height( + self, height: int, pagination: Optional[PaginationOption] = None + ) -> Dict[str, Any]: + return await self.tendermint_api.fetch_validator_set_by_height(height=height, pagination=pagination) + + async def abci_query( + self, path: str, data: Optional[bytes] = None, height: Optional[int] = None, prove: bool = False + ) -> Dict[str, Any]: + return await self.tendermint_api.abci_query(path=path, data=data, height=height, prove=prove) + + # endregion + + 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_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_v2( + 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, + 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, + ) + + # region IBC Transfer module + async def fetch_denom_trace(self, hash: str) -> Dict[str, Any]: + return await self.ibc_transfer_api.fetch_denom_trace(hash=hash) + + async def fetch_denom_traces(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.ibc_transfer_api.fetch_denom_traces(pagination=pagination) + + async def fetch_denom_hash(self, trace: str) -> Dict[str, Any]: + return await self.ibc_transfer_api.fetch_denom_hash(trace=trace) + + async def fetch_escrow_address(self, port_id: str, channel_id: str) -> Dict[str, Any]: + return await self.ibc_transfer_api.fetch_escrow_address(port_id=port_id, channel_id=channel_id) + + async def fetch_total_escrow_for_denom(self, denom: str) -> Dict[str, Any]: + return await self.ibc_transfer_api.fetch_total_escrow_for_denom(denom=denom) + + # endregion + + # region IBC Channel module + async def fetch_ibc_channel(self, port_id: str, channel_id: str) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_channel(port_id=port_id, channel_id=channel_id) + + async def fetch_ibc_channels(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_channels(pagination=pagination) + + async def fetch_ibc_connection_channels( + self, connection: str, pagination: Optional[PaginationOption] = None + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_connection_channels(connection=connection, pagination=pagination) + + async def fetch_ibc_channel_client_state(self, port_id: str, channel_id: str) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_channel_client_state(port_id=port_id, channel_id=channel_id) + + async def fetch_ibc_channel_consensus_state( + self, + port_id: str, + channel_id: str, + revision_number: int, + revision_height: int, + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_channel_consensus_state( + port_id=port_id, + channel_id=channel_id, + revision_number=revision_number, + revision_height=revision_height, + ) + + async def fetch_ibc_packet_commitment(self, port_id: str, channel_id: str, sequence: int) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_packet_commitment( + port_id=port_id, channel_id=channel_id, sequence=sequence + ) + + async def fetch_ibc_packet_commitments( + self, port_id: str, channel_id: str, pagination: Optional[PaginationOption] = None + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_packet_commitments( + port_id=port_id, channel_id=channel_id, pagination=pagination + ) + + async def fetch_ibc_packet_receipt(self, port_id: str, channel_id: str, sequence: int) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_packet_receipt( + port_id=port_id, channel_id=channel_id, sequence=sequence + ) + + async def fetch_ibc_packet_acknowledgement(self, port_id: str, channel_id: str, sequence: int) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_packet_acknowledgement( + port_id=port_id, channel_id=channel_id, sequence=sequence + ) + + async def fetch_ibc_packet_acknowledgements( + self, + port_id: str, + channel_id: str, + packet_commitment_sequences: Optional[List[int]] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_packet_acknowledgements( + port_id=port_id, + channel_id=channel_id, + packet_commitment_sequences=packet_commitment_sequences, + pagination=pagination, + ) + + async def fetch_ibc_unreceived_packets( + self, port_id: str, channel_id: str, packet_commitment_sequences: Optional[List[int]] = None + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_unreceived_packets( + port_id=port_id, channel_id=channel_id, packet_commitment_sequences=packet_commitment_sequences + ) + + async def fetch_ibc_unreceived_acks( + self, port_id: str, channel_id: str, packet_ack_sequences: Optional[List[int]] = None + ) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_unreceived_acks( + port_id=port_id, channel_id=channel_id, packet_ack_sequences=packet_ack_sequences + ) + + async def fetch_next_sequence_receive(self, port_id: str, channel_id: str) -> Dict[str, Any]: + return await self.ibc_channel_api.fetch_next_sequence_receive(port_id=port_id, channel_id=channel_id) + + # endregion + + # region IBC Client module + async def fetch_ibc_client_state(self, client_id: str) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_client_state(client_id=client_id) + + async def fetch_ibc_client_states(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_client_states(pagination=pagination) + + async def fetch_ibc_consensus_state( + self, + client_id: str, + revision_number: int, + revision_height: int, + latest_height: Optional[bool] = None, + ) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_consensus_state( + client_id=client_id, + revision_number=revision_number, + revision_height=revision_height, + latest_height=latest_height, + ) + + async def fetch_ibc_consensus_states( + self, + client_id: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_consensus_states(client_id=client_id, pagination=pagination) + + async def fetch_ibc_consensus_state_heights( + self, + client_id: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_consensus_state_heights(client_id=client_id, pagination=pagination) + + async def fetch_ibc_client_status(self, client_id: str) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_client_status(client_id=client_id) + + async def fetch_ibc_client_params(self) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_client_params() + + async def fetch_ibc_upgraded_client_state(self) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_upgraded_client_state() + + async def fetch_ibc_upgraded_consensus_state(self) -> Dict[str, Any]: + return await self.ibc_client_api.fetch_upgraded_consensus_state() + + # endregion + + # region IBC Connection module + async def fetch_ibc_connection(self, connection_id: str) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_connection(connection_id=connection_id) + + async def fetch_ibc_connections(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_connections(pagination=pagination) + + async def fetch_ibc_client_connections(self, client_id: str) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_client_connections(client_id=client_id) + + async def fetch_ibc_connection_client_state(self, connection_id: str) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_connection_client_state(connection_id=connection_id) + + async def fetch_ibc_connection_consensus_state( + self, + connection_id: str, + revision_number: int, + revision_height: int, + ) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_connection_consensus_state( + connection_id=connection_id, revision_number=revision_number, revision_height=revision_height + ) + + async def fetch_ibc_connection_params(self) -> Dict[str, Any]: + return await self.ibc_connection_api.fetch_connection_params() + + # endregion + + # ------------------------------ + # region Permissions module + + async def fetch_permissions_namespace_denoms(self) -> Dict[str, Any]: + return await self.permissions_api.fetch_namespace_denoms() + + async def fetch_permissions_namespaces(self) -> Dict[str, Any]: + return await self.permissions_api.fetch_namespaces() + + async def fetch_permissions_namespace(self, denom: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_namespace(denom=denom) + + async def fetch_permissions_roles_by_actor(self, denom: str, actor: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_roles_by_actor(denom=denom, actor=actor) + + async def fetch_permissions_actors_by_role(self, denom: str, role: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_actors_by_role(denom=denom, role=role) + + async def fetch_permissions_role_managers(self, denom: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_role_managers(denom=denom) + + async def fetch_permissions_role_manager(self, denom: str, manager: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_role_manager(denom=denom, manager=manager) + + async def fetch_permissions_policy_statuses(self, denom: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_policy_statuses(denom=denom) + + async def fetch_permissions_policy_manager_capabilities(self, denom: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_policy_manager_capabilities(denom=denom) + + async def fetch_permissions_vouchers(self, denom: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_vouchers(denom=denom) + + async def fetch_permissions_voucher(self, denom: str, address: str) -> Dict[str, Any]: + return await self.permissions_api.fetch_voucher(denom=denom, address=address) + + async def fetch_permissions_module_state(self) -> Dict[str, Any]: + return await self.permissions_api.fetch_permissions_module_state() + + # endregion + + # ------------------------- + # region IBC Channel module + async def fetch_eip_base_fee(self) -> Dict[str, Any]: + return await self.txfees_api.fetch_eip_base_fee() + + # endregion + + # ------------------------- + # region Chain ERC20 module + async def fetch_erc20_all_token_pairs(self) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_all_token_pairs() + + async def fetch_erc20_token_pair_by_denom(self, bank_denom: str) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_token_pair_by_denom(bank_denom=bank_denom) + + async def fetch_erc20_token_pair_by_erc20_address(self, erc20_address: str) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_token_pair_by_erc20_address(erc20_address=erc20_address) + + # endregion + + # ------------------------- + # region Chain EVM module + async def fetch_evm_account(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_account(address=address) + + async def fetch_evm_cosmos_account(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_cosmos_account(address=address) + + async def fetch_evm_validator_account(self, cons_address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_validator_account(cons_address=cons_address) + + async def fetch_evm_balance(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_balance(address=address) + + async def fetch_evm_storage(self, address: str, key: Optional[str] = None) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_storage(address=address, key=key) + + async def fetch_evm_code(self, address: str) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_code(address=address) + + async def fetch_evm_base_fee(self) -> Dict[str, Any]: + return await self.chain_evm_api.fetch_base_fee() + + # endregion + + async def composer(self): + return Composer( + network=self.network.string(), + ) + + async def current_chain_gas_price(self) -> int: + gas_price = GAS_PRICE + try: + eip_base_fee_response = await self.fetch_eip_base_fee() + gas_price = int( + Token.convert_value_from_extended_decimal_format(Decimal(eip_base_fee_response["baseFee"]["baseFee"])) + ) + except Exception as e: + logger = LoggerProvider().logger_for_class(logging_class=self.__class__) + logger.error("an error occurred when querying the gas price from the chain, using the default gas price") + logger.debug(f"error querying the gas price from chain {e}") + + return gas_price + + async def initialize_tokens_from_chain_denoms(self): + # force initialization of markets and tokens + await self.all_tokens() + + all_denoms_metadata = [] + + query_result = await self.fetch_denoms_metadata() + + all_denoms_metadata.extend(query_result.get("metadatas", [])) + next_key = query_result.get("pagination", {}).get("nextKey", "") + + while next_key != "": + query_result = await self.fetch_denoms_metadata(pagination=PaginationOption(encoded_page_key=next_key)) + + all_denoms_metadata.extend(query_result.get("metadatas", [])) + next_key = query_result.get("pagination", {}).get("nextKey", "") + + for token_metadata in all_denoms_metadata: + symbol = token_metadata["symbol"] + denom = token_metadata["base"] + + if denom != "" and symbol != "" and denom not in self._tokens_by_denom: + name = token_metadata["name"] or symbol + decimals = max({denom_unit["exponent"] for denom_unit in token_metadata["denomUnits"]}) + + unique_symbol = denom + for symbol_candidate in [symbol, name]: + if symbol_candidate not in self._tokens_by_symbol: + unique_symbol = symbol_candidate + break + + token = Token( + name=name, + symbol=symbol, + denom=denom, + address="", + decimals=decimals, + logo=token_metadata["uri"], + updated=-1, + ) + + self._tokens_by_denom[denom] = token + self._tokens_by_symbol[unique_symbol] = token + + async def _initialize_tokens_and_markets(self): + spot_markets = dict() + derivative_markets = dict() + binary_option_markets = dict() + tokens_by_symbol, tokens_by_denom = await self._tokens_from_official_lists(network=self.network) + 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"] + 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"]) + + market = SpotMarket( + id=market_info["marketId"], + status=market_info["status"], + ticker=market_info["ticker"], + base_token=base_token, + quote_token=quote_token, + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market_info["minNotional"])), + ) + + spot_markets[market.id] = market + + markets_info = (await self.fetch_chain_derivative_markets(status="Active", with_mid_price_and_tob=False))[ + "markets" + ] + for market_info in markets_info: + market = market_info["market"] + quote_token = self._tokens_by_denom.get(market["quoteDenom"]) + + derivative_market = DerivativeMarket( + id=market["marketId"], + status=market["status"], + ticker=market["ticker"], + oracle_base=market["oracleBase"], + oracle_quote=market["oracleQuote"], + oracle_type=market["oracleType"], + oracle_scale_factor=market["oracleScaleFactor"], + initial_margin_ratio=Token.convert_value_from_extended_decimal_format( + Decimal(market["initialMarginRatio"]) + ), + maintenance_margin_ratio=Token.convert_value_from_extended_decimal_format( + Decimal(market["maintenanceMarginRatio"]) + ), + quote_token=quote_token, + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market["minNotional"])), + ) + + derivative_markets[derivative_market.id] = derivative_market + + markets_info = (await self.fetch_chain_binary_options_markets(status="Active"))["markets"] + for market_info in markets_info: + quote_token = self._tokens_by_denom.get(market_info["quoteDenom"]) + + market = BinaryOptionMarket( + id=market_info["marketId"], + status=market_info["status"], + ticker=market_info["ticker"], + oracle_symbol=market_info["oracleSymbol"], + oracle_provider=market_info["oracleProvider"], + oracle_type=market_info["oracleType"], + oracle_scale_factor=market_info["oracleScaleFactor"], + expiration_timestamp=market_info["expirationTimestamp"], + settlement_timestamp=market_info["settlementTimestamp"], + quote_token=quote_token, + maker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["makerFeeRate"])), + taker_fee_rate=Token.convert_value_from_extended_decimal_format(Decimal(market_info["takerFeeRate"])), + service_provider_fee=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["relayerFeeShareRate"]) + ), + min_price_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minPriceTickSize"]) + ), + min_quantity_tick_size=Token.convert_value_from_extended_decimal_format( + Decimal(market_info["minQuantityTickSize"]) + ), + min_notional=Token.convert_value_from_extended_decimal_format(Decimal(market_info["minNotional"])), + settlement_price=None + if market_info["settlementPrice"] == "" + else Token.convert_value_from_extended_decimal_format(Decimal(market_info["settlementPrice"])), + ) + + binary_option_markets[market.id] = market + + self._spot_markets = spot_markets + self._derivative_markets = derivative_markets + self._binary_option_markets = binary_option_markets + + def _token_representation( + self, + token_meta: Dict[str, Any], + denom: str, + tokens_by_denom: Dict[str, Token], + tokens_by_symbol: Dict[str, Token], + ) -> Token: + if denom not in tokens_by_denom: + unique_symbol = denom + for symbol_candidate in [token_meta["symbol"], token_meta["name"]]: + if symbol_candidate not in tokens_by_symbol: + unique_symbol = symbol_candidate + break + + token = Token( + name=token_meta["name"], + symbol=token_meta["symbol"], + denom=denom, + address=token_meta["address"], + decimals=token_meta["decimals"], + logo=token_meta["logo"], + updated=int(token_meta["updatedAt"]), + ) + + tokens_by_denom[denom] = token + tokens_by_symbol[unique_symbol] = token + + return tokens_by_denom[denom] + + async def _tokens_from_official_lists( + self, + network: Network, + ) -> Tuple[Dict[str, Token], Dict[str, Token]]: + tokens_by_symbol = dict() + tokens_by_denom = dict() + + loader = TokensFileLoader() + tokens = await loader.load_tokens(network.official_tokens_list_url) + + for token in tokens: + if token.denom is not None and token.denom != "" and token.denom not in tokens_by_denom: + unique_symbol = token.denom + for symbol_candidate in [token.symbol, token.name]: + if symbol_candidate not in tokens_by_symbol: + unique_symbol = symbol_candidate + break + + tokens_by_denom[token.denom] = token + tokens_by_symbol[unique_symbol] = token + + return tokens_by_symbol, tokens_by_denom + + def _initialize_timeout_height_sync_task(self): + self._cancel_timeout_height_sync_task() + self._timeout_height_sync_task = asyncio.get_event_loop().create_task(self._timeout_height_sync_process()) + + async def _timeout_height_sync_process(self): + while True: + await self.sync_timeout_height() + await asyncio.sleep(DEFAULT_TIMEOUTHEIGHT_SYNC_INTERVAL) + + def _cancel_timeout_height_sync_task(self): + if self._timeout_height_sync_task is not None: + try: + self._timeout_height_sync_task.cancel() + asyncio.get_event_loop().run_until_complete(asyncio.wait_for(self._timeout_height_sync_task, timeout=1)) + except Exception as e: + logger = LoggerProvider().logger_for_class(logging_class=self.__class__) + logger.warning("error canceling timeout height sync task") + logger.debug("error canceling timeout height sync task", exc_info=e) + self._timeout_height_sync_task = None diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 360ceb46..6a83e2e8 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -8,7 +8,7 @@ from google.protobuf import any_pb2, json_format, timestamp_pb2 from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS, INJ_DECIMALS, INJ_DENOM -from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.token import Token from pyinjective.ofac import OfacChecker from pyinjective.proto.cosmos.authz.v1beta1 import authz_pb2 as cosmos_authz_pb, tx_pb2 as cosmos_authz_tx_pb @@ -25,18 +25,11 @@ from pyinjective.proto.ibc.applications.transfer.v1 import tx_pb2 as ibc_transfer_tx_pb from pyinjective.proto.ibc.core.client.v1 import client_pb2 as ibc_core_client_pb from pyinjective.proto.injective.auction.v1beta1 import tx_pb2 as injective_auction_tx_pb -from pyinjective.proto.injective.erc20.v1beta1 import erc20_pb2 as injective_erc20_pb2, tx_pb2 as injective_erc20_tx_pb from pyinjective.proto.injective.exchange.v1beta1 import ( authz_pb2 as injective_authz_pb, 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, @@ -48,261 +41,65 @@ 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_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, + "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, } 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, - "/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, + "/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, } -# fmt: on - class Composer: PERMISSIONS_ACTION = IntFlag( @@ -373,11 +170,6 @@ def order_data( 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 `create_order_data_v2` instead - """ - warn("This method is deprecated. Use create_order_data_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.OrderData( @@ -395,13 +187,6 @@ def order_data_without_mask( order_hash: Optional[str] = None, cid: Optional[str] = None, ) -> injective_exchange_tx_pb.OrderData: - """ - 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, @@ -410,41 +195,6 @@ def order_data_without_mask( 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, - order_mask=order_mask, - cid=cid, - ) - - 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_v2_pb.OrderData: - return injective_exchange_tx_v2_pb.OrderData( - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - order_mask=1, - cid=cid, - ) - def spot_order( self, market_id: str, @@ -456,11 +206,6 @@ def spot_order( cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, ) -> injective_exchange_pb.SpotOrder: - """ - This method is deprecated and will be removed soon. Please use `create_spot_order_v2` instead - """ - warn("This method is deprecated. Use create_spot_order_v2 instead", DeprecationWarning, stacklevel=2) - market = self.spot_markets[market_id] chain_quantity = f"{market.quantity_to_chain_format(human_readable_value=quantity).normalize():f}" @@ -484,39 +229,6 @@ def spot_order( trigger_price=chain_trigger_price, ) - def create_spot_order_v2( - self, - market_id: str, - subaccount_id: str, - fee_recipient: str, - price: Decimal, - quantity: Decimal, - order_type: str, - cid: Optional[str] = None, - trigger_price: Optional[Decimal] = None, - expiration_block: Optional[int] = None, - ) -> injective_order_v2_pb.SpotOrder: - trigger_price = trigger_price or Decimal(0) - expiration_block = expiration_block or 0 - 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_order_v2_pb.SpotOrder( - 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, - trigger_price=chain_trigger_price, - expiration_block=expiration_block, - ) - def calculate_margin( self, quantity: Decimal, price: Decimal, leverage: Decimal, is_reduce_only: bool = False ) -> Decimal: @@ -539,11 +251,6 @@ 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) @@ -565,32 +272,6 @@ 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, - expiration_block: Optional[int] = None, - ) -> injective_order_v2_pb.DerivativeOrder: - 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, - expiration_block=expiration_block, - ) - def binary_options_order( self, market_id: str, @@ -604,11 +285,6 @@ 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) @@ -630,39 +306,21 @@ def binary_options_order( chain_trigger_price=chain_trigger_price, ) - 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, - expiration_block: Optional[int] = None, - ) -> injective_order_v2_pb.DerivativeOrder: - 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, - expiration_block=expiration_block, - ) - - def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective_exchange_v2_pb.GrantAuthorization: + def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective_exchange_pb.GrantAuthorization: chain_formatted_amount = int(amount * Decimal(f"1e{INJ_DECIMALS}")) - return injective_exchange_v2_pb.GrantAuthorization(grantee=grantee, amount=str(chain_formatted_amount)) + return injective_exchange_pb.GrantAuthorization(grantee=grantee, amount=str(chain_formatted_amount)) # region Auction module - def MsgBid(self, sender: str, bid_amount: float, round: float): - be_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bid_amount))) + def MsgBid(self, sender: str, bid_amount: float, round: float) -> injective_auction_tx_pb.MsgBid: + """ + This method is deprecated and will be removed soon. Please use `msg_bid` instead + """ + warn("This method is deprecated. Use msg_bid instead", DeprecationWarning, stacklevel=2) + + return self.msg_bid(sender=sender, bid_amount=bid_amount, round=round) + + def msg_bid(self, sender: str, bid_amount: float, round: float) -> injective_auction_tx_pb.MsgBid: + be_amount = Decimal(str(bid_amount)) * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return injective_auction_tx_pb.MsgBid( sender=sender, @@ -673,7 +331,17 @@ def MsgBid(self, sender: str, bid_amount: float, round: float): # endregion # region Authz module - def MsgGrantGeneric(self, granter: str, grantee: str, msg_type: str, expire_in: int): + def MsgGrantGeneric(self, granter: str, grantee: str, msg_type: str, expire_in: int) -> cosmos_authz_tx_pb.MsgGrant: + """ + This method is deprecated and will be removed soon. Please use `msg_grant_generic` instead + """ + warn("This method is deprecated. Use msg_grant_generic instead", DeprecationWarning, stacklevel=2) + + return self.msg_grant_generic(granter=granter, grantee=grantee, msg_type=msg_type, expire_in=expire_in) + + def msg_grant_generic( + self, granter: str, grantee: str, msg_type: str, expire_in: int + ) -> cosmos_authz_tx_pb.MsgGrant: if self._ofac_checker.is_blacklisted(granter): raise Exception(f"Address {granter} is in the OFAC list") auth = cosmos_authz_pb.GenericAuthorization(msg=msg_type) @@ -688,6 +356,14 @@ def MsgGrantGeneric(self, granter: str, grantee: str, msg_type: str, expire_in: return cosmos_authz_tx_pb.MsgGrant(granter=granter, grantee=grantee, grant=grant) def MsgExec(self, grantee: str, msgs: List): + """ + This method is deprecated and will be removed soon. Please use `msg_exec` instead + """ + warn("This method is deprecated. Use msg_exec instead", DeprecationWarning, stacklevel=2) + + return self.msg_exec(grantee=grantee, msgs=msgs) + + def msg_exec(self, grantee: str, msgs: List): any_msgs: List[any_pb2.Any] = [] for msg in msgs: any_msg = any_pb2.Any() @@ -696,7 +372,15 @@ def MsgExec(self, grantee: str, msgs: List): return cosmos_authz_tx_pb.MsgExec(grantee=grantee, msgs=any_msgs) - def MsgRevoke(self, granter: str, grantee: str, msg_type: str): + def MsgRevoke(self, granter: str, grantee: str, msg_type: str) -> cosmos_authz_tx_pb.MsgRevoke: + """ + This method is deprecated and will be removed soon. Please use `msg_revoke` instead + """ + warn("This method is deprecated. Use msg_revoke instead", DeprecationWarning, stacklevel=2) + + return self.msg_revoke(granter=granter, grantee=grantee, msg_type=msg_type) + + def msg_revoke(self, granter: str, grantee: str, msg_type: str) -> cosmos_authz_tx_pb.MsgRevoke: return cosmos_authz_tx_pb.MsgRevoke(granter=granter, grantee=grantee, msg_type_url=msg_type) def msg_execute_contract_compat(self, sender: str, contract: str, msg: str, funds: str): @@ -710,22 +394,16 @@ def msg_execute_contract_compat(self, sender: str, contract: str, msg: str, fund # endregion # region Bank module - def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str): + def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str) -> cosmos_bank_tx_pb.MsgSend: """ 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( - from_address=from_address, - to_address=to_address, - amount=[coin], - ) + return self.msg_send(from_address=from_address, to_address=to_address, amount=amount, denom=denom) - def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): - coin = self.coin(amount=int(amount), denom=denom) + def msg_send(self, from_address: str, to_address: str, amount: float, denom: str) -> cosmos_bank_tx_pb.MsgSend: + coin = self.create_coin_amount(amount=Decimal(str(amount)), token_name=denom) return cosmos_bank_tx_pb.MsgSend( from_address=from_address, @@ -736,14 +414,8 @@ def msg_send(self, from_address: str, to_address: str, amount: int, denom: str): # endregion # region Chain Exchange module - 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_v2` instead - """ - warn("This method is deprecated. Use msg_deposit_v2 instead", DeprecationWarning, stacklevel=2) + def msg_deposit(self, sender: str, subaccount_id: str, amount: Decimal, denom: str): coin = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgDeposit( @@ -752,25 +424,7 @@ def msg_deposit( amount=coin, ) - 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_v2_pb.MsgDeposit( - sender=sender, - subaccount_id=subaccount_id, - amount=coin, - ) - - 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_v2` instead - """ - warn("This method is deprecated. Use msg_withdraw_v2 instead", DeprecationWarning, stacklevel=2) - + def msg_withdraw(self, sender: str, subaccount_id: str, amount: Decimal, denom: str): be_amount = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgWithdraw( @@ -779,21 +433,6 @@ def msg_withdraw( amount=be_amount, ) - 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_v2_pb.MsgWithdraw( - sender=sender, - subaccount_id=subaccount_id, - amount=coin, - ) - def msg_instant_spot_market_launch( self, sender: str, @@ -806,13 +445,6 @@ def msg_instant_spot_market_launch( 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] @@ -838,130 +470,6 @@ def msg_instant_spot_market_launch( 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_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, - reduce_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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_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}", - reduce_margin_ratio=f"{chain_reduce_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_v2( - self, - sender: str, - 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, - reduce_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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_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}", - reduce_margin_ratio=f"{chain_reduce_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, @@ -974,11 +482,6 @@ def msg_create_spot_limit_order( 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_v2` instead - """ - warn("This method is deprecated. Use msg_create_spot_limit_order_v2 instead", DeprecationWarning, stacklevel=2) - return injective_exchange_tx_pb.MsgCreateSpotLimitOrder( sender=sender, order=self.spot_order( @@ -993,7 +496,12 @@ def msg_create_spot_limit_order( ), ) - def msg_create_spot_limit_order_v2( + 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 msg_create_spot_market_order( self, market_id: str, sender: str, @@ -1004,11 +512,10 @@ def msg_create_spot_limit_order_v2( order_type: str, cid: Optional[str] = None, trigger_price: Optional[Decimal] = None, - expiration_block: Optional[int] = None, - ) -> injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder: - return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( + ) -> injective_exchange_tx_pb.MsgCreateSpotMarketOrder: + return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( sender=sender, - order=self.create_spot_order_v2( + order=self.spot_order( market_id=market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -1017,87 +524,10 @@ def msg_create_spot_limit_order_v2( order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=expiration_block, ), ) - 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_v2` instead - """ - warn( - "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_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: 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_v2` instead - """ - warn("This method is deprecated. Use msg_create_spot_market_order_v2 instead", DeprecationWarning, stacklevel=2) - - return injective_exchange_tx_pb.MsgCreateSpotMarketOrder( - sender=sender, - order=self.spot_order( - market_id=market_id, - subaccount_id=subaccount_id, - fee_recipient=fee_recipient, - price=price, - quantity=quantity, - order_type=order_type, - cid=cid, - trigger_price=trigger_price, - ), - ) - - def msg_create_spot_market_order_v2( - 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_v2_pb.MsgCreateSpotMarketOrder: - return injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder( - sender=sender, - order=self.create_spot_order_v2( - market_id=market_id, - subaccount_id=subaccount_id, - fee_recipient=fee_recipient, - price=price, - quantity=quantity, - order_type=order_type, - cid=cid, - trigger_price=trigger_price, - ), - ) - - def msg_cancel_spot_order( + def msg_cancel_spot_order( self, market_id: str, sender: str, @@ -1105,11 +535,6 @@ def msg_cancel_spot_order( 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_v2` instead - """ - 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, @@ -1118,37 +543,11 @@ def msg_cancel_spot_order( cid=cid, ) - 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_v2_pb.MsgCancelSpotOrder: - return injective_exchange_tx_v2_pb.MsgCancelSpotOrder( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - cid=cid, - ) - def msg_batch_cancel_spot_orders( self, sender: str, orders_data: List[injective_exchange_tx_pb.OrderData] ) -> injective_exchange_tx_pb.MsgBatchCancelSpotOrders: - """ - 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_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, sender: str, @@ -1163,11 +562,6 @@ 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, @@ -1182,34 +576,6 @@ def msg_batch_update_orders( binary_options_orders_to_create=binary_options_orders_to_create, ) - 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, @@ -1217,15 +583,6 @@ def msg_privileged_execute_contract( 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_v2` instead - """ - 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, @@ -1234,20 +591,6 @@ def msg_privileged_execute_contract( funds=funds, ) - def msg_privileged_execute_contract_v2( - self, - sender: str, - contract_address: str, - data: str, - funds: Optional[str] = None, - ) -> injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract: - return injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract( - sender=sender, - contract_address=contract_address, - data=data, - funds=funds, - ) - def msg_create_derivative_limit_order( self, market_id: str, @@ -1261,15 +604,6 @@ def msg_create_derivative_limit_order( cid: Optional[str] = None, 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_create_derivative_limit_order_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.derivative_order( @@ -1285,60 +619,13 @@ def msg_create_derivative_limit_order( ), ) - def msg_create_derivative_limit_order_v2( - self, - market_id: str, - sender: 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, - expiration_block: Optional[int] = None, - ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: - return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( - sender=sender, - order=self.create_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, - expiration_block=expiration_block, - ), - ) - 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_v2` instead - """ - warn( - "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_v2( - self, - sender: str, - 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 msg_create_derivative_market_order( self, market_id: str, @@ -1352,15 +639,6 @@ def msg_create_derivative_market_order( cid: Optional[str] = None, 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_create_derivative_market_order_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgCreateDerivativeMarketOrder( sender=sender, order=self.derivative_order( @@ -1376,34 +654,6 @@ def msg_create_derivative_market_order( ), ) - def msg_create_derivative_market_order_v2( - self, - market_id: str, - sender: 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_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder: - return injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder( - sender=sender, - order=self.create_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 msg_cancel_derivative_order( self, market_id: str, @@ -1415,11 +665,6 @@ def msg_cancel_derivative_order( 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_v2` instead - """ - warn("This method is deprecated. Use msg_cancel_derivative_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.MsgCancelDerivativeOrder( @@ -1431,48 +676,11 @@ def msg_cancel_derivative_order( cid=cid, ) - 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, - ) -> 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_v2_pb.MsgCancelDerivativeOrder( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - order_mask=order_mask, - cid=cid, - ) - 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_batch_cancel_derivative_orders_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgBatchCancelDerivativeOrders(sender=sender, data=orders_data) - 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, @@ -1491,16 +699,6 @@ def msg_instant_binary_options_market_launch( min_quantity_tick_size: Decimal, min_notional: Decimal, ) -> injective_exchange_tx_pb.MsgInstantBinaryOptionsMarketLaunch: - """ - This method is deprecated and will be removed soon. - Please use `msg_instant_binary_options_market_launch_v2` instead - """ - warn( - "This method is deprecated. Use msg_instant_binary_options_market_launch_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - quote_token = self.tokens[quote_denom] chain_min_price_tick_size = min_price_tick_size * Decimal( @@ -1531,48 +729,6 @@ def msg_instant_binary_options_market_launch( min_notional=f"{chain_min_notional.normalize():f}", ) - def msg_instant_binary_options_market_launch_v2( - self, - sender: str, - ticker: str, - oracle_symbol: str, - oracle_provider: str, - oracle_type: str, - oracle_scale_factor: int, - maker_fee_rate: Decimal, - taker_fee_rate: Decimal, - expiration_timestamp: int, - settlement_timestamp: int, - admin: str, - quote_denom: str, - 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_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, - oracle_provider=oracle_provider, - oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), - oracle_scale_factor=oracle_scale_factor, - 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, - admin=admin, - 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 msg_create_binary_options_limit_order( self, market_id: str, @@ -1587,16 +743,6 @@ def msg_create_binary_options_limit_order( 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_create_binary_options_limit_order_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - return injective_exchange_tx_pb.MsgCreateDerivativeLimitOrder( sender=sender, order=self.binary_options_order( @@ -1613,36 +759,6 @@ def msg_create_binary_options_limit_order( ), ) - def msg_create_binary_options_limit_order_v2( - self, - market_id: str, - sender: 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, - expiration_block: Optional[int] = None, - ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: - return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( - sender=sender, - order=self.create_binary_options_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, - expiration_block=expiration_block, - ), - ) - def msg_create_binary_options_market_order( self, market_id: str, @@ -1656,17 +772,7 @@ def msg_create_binary_options_market_order( cid: Optional[str] = None, 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_create_binary_options_market_order_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - + ): return injective_exchange_tx_pb.MsgCreateBinaryOptionsMarketOrder( sender=sender, order=self.binary_options_order( @@ -1683,34 +789,6 @@ def msg_create_binary_options_market_order( ), ) - def msg_create_binary_options_market_order_v2( - self, - market_id: str, - sender: 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_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder: - return injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder( - sender=sender, - order=self.create_binary_options_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 msg_cancel_binary_options_order( self, market_id: str, @@ -1722,15 +800,6 @@ def msg_cancel_binary_options_order( 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_v2` instead - """ - warn( - "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( @@ -1742,28 +811,6 @@ def msg_cancel_binary_options_order( cid=cid, ) - 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, - ) -> 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_v2_pb.MsgCancelBinaryOptionsOrder( - sender=sender, - market_id=market_id, - subaccount_id=subaccount_id, - order_hash=order_hash, - order_mask=order_mask, - cid=cid, - ) - def msg_subaccount_transfer( self, sender: str, @@ -1772,11 +819,6 @@ def msg_subaccount_transfer( amount: Decimal, denom: str, ) -> injective_exchange_tx_pb.MsgSubaccountTransfer: - """ - 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_v2 instead", DeprecationWarning, stacklevel=2) - be_amount = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgSubaccountTransfer( @@ -1786,23 +828,6 @@ def msg_subaccount_transfer( amount=be_amount, ) - def msg_subaccount_transfer_v2( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - amount: int, - denom: str, - ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: - amount_coin = self.coin(amount=int(amount), denom=denom) - - return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( - sender=sender, - source_subaccount_id=source_subaccount_id, - destination_subaccount_id=destination_subaccount_id, - amount=amount_coin, - ) - def msg_external_transfer( self, sender: str, @@ -1811,11 +836,6 @@ def msg_external_transfer( amount: Decimal, denom: str, ) -> injective_exchange_tx_pb.MsgExternalTransfer: - """ - 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_v2 instead", DeprecationWarning, stacklevel=2) - coin = self.create_coin_amount(amount=amount, token_name=denom) return injective_exchange_tx_pb.MsgExternalTransfer( @@ -1825,23 +845,6 @@ def msg_external_transfer( amount=coin, ) - def msg_external_transfer_v2( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - amount: int, - denom: str, - ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: - coin = self.coin(amount=int(amount), denom=denom) - - return injective_exchange_tx_v2_pb.MsgExternalTransfer( - sender=sender, - source_subaccount_id=source_subaccount_id, - destination_subaccount_id=destination_subaccount_id, - amount=coin, - ) - def msg_liquidate_position( self, sender: str, @@ -1849,51 +852,20 @@ def msg_liquidate_position( 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_v2` instead - """ - 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_v2( - self, - sender: str, - subaccount_id: str, - market_id: str, - 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 - ) - def msg_emergency_settle_market( self, sender: str, 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 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, @@ -1901,12 +873,7 @@ def msg_increase_position_margin( destination_subaccount_id: str, market_id: str, amount: Decimal, - ) -> injective_exchange_tx_pb.MsgIncreasePositionMargin: - """ - 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_v2 instead", DeprecationWarning, stacklevel=2) - + ): market = self.derivative_markets[market_id] additional_margin = market.margin_to_chain_format(human_readable_value=amount) @@ -1918,25 +885,8 @@ def msg_increase_position_margin( amount=str(int(additional_margin)), ) - def msg_increase_position_margin_v2( - self, - sender: str, - source_subaccount_id: str, - destination_subaccount_id: str, - market_id: str, - amount: Decimal, - ) -> 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 msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_v2_pb.MsgRewardsOptOut: - return injective_exchange_tx_v2_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_admin_update_binary_options_market( self, @@ -1947,16 +897,6 @@ def msg_admin_update_binary_options_market( 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_v2` instead - """ - warn( - "This method is deprecated. Use msg_admin_update_binary_options_market_v2 instead", - DeprecationWarning, - stacklevel=2, - ) - market = self.binary_option_markets[market_id] if settlement_price is not None: @@ -1974,29 +914,6 @@ def msg_admin_update_binary_options_market( status=status, ) - def msg_admin_update_binary_options_market_v2( - self, - sender: str, - market_id: str, - status: str, - settlement_price: Optional[Decimal] = None, - expiration_timestamp: Optional[int] = None, - settlement_timestamp: Optional[int] = None, - ) -> injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket: - message = injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket( - sender=sender, - market_id=market_id, - expiration_timestamp=expiration_timestamp, - settlement_timestamp=settlement_timestamp, - status=status, - ) - - 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, @@ -2005,11 +922,6 @@ def msg_decrease_position_margin( 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) @@ -2021,23 +933,6 @@ def msg_decrease_position_margin( 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_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=f"{margin_to_remove.normalize():f}", - ) - def msg_update_spot_market( self, admin: str, @@ -2047,11 +942,6 @@ 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( @@ -2073,28 +963,6 @@ 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, @@ -2106,11 +974,6 @@ 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( @@ -2134,49 +997,16 @@ 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, - new_reduce_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 - ) - chain_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=new_reduce_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}", - new_reduce_margin_ratio=f"{chain_reduce_margin_ratio.normalize():f}", - ) - def msg_authorize_stake_grants( - self, sender: str, grants: List[injective_exchange_v2_pb.GrantAuthorization] - ) -> injective_exchange_tx_v2_pb.MsgAuthorizeStakeGrants: - return injective_exchange_tx_v2_pb.MsgAuthorizeStakeGrants( + self, sender: str, grants: List[injective_exchange_pb.GrantAuthorization] + ) -> injective_exchange_tx_pb.MsgAuthorizeStakeGrants: + return injective_exchange_tx_pb.MsgAuthorizeStakeGrants( sender=sender, grants=grants, ) - def msg_activate_stake_grant(self, sender: str, granter: str) -> injective_exchange_tx_v2_pb.MsgActivateStakeGrant: - return injective_exchange_tx_v2_pb.MsgActivateStakeGrant( + def msg_activate_stake_grant(self, sender: str, granter: str) -> injective_exchange_tx_pb.MsgActivateStakeGrant: + return injective_exchange_tx_pb.MsgActivateStakeGrant( sender=sender, granter=granter, ) @@ -2194,24 +1024,21 @@ def MsgCreateInsuranceFund( oracle_type: int, expiry: int, initial_deposit: int, - ): + ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: """ 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) - - return injective_insurance_tx_pb.MsgCreateInsuranceFund( + return self.msg_create_insurance_fund( sender=sender, ticker=ticker, - quote_denom=token.denom, + quote_denom=quote_denom, oracle_base=oracle_base, oracle_quote=oracle_quote, oracle_type=oracle_type, expiry=expiry, - initial_deposit=deposit, + initial_deposit=initial_deposit, ) def msg_create_insurance_fund( @@ -2221,19 +1048,20 @@ def msg_create_insurance_fund( quote_denom: str, oracle_base: str, oracle_quote: str, - oracle_type: str, + oracle_type: int, expiry: int, initial_deposit: int, ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: - deposit = self.coin(amount=int(initial_deposit), denom=quote_denom) + token = self.tokens[quote_denom] + deposit = self.create_coin_amount(Decimal(str(initial_deposit)), quote_denom) return injective_insurance_tx_pb.MsgCreateInsuranceFund( sender=sender, ticker=ticker, - quote_denom=quote_denom, + quote_denom=token.denom, oracle_base=oracle_base, oracle_quote=oracle_quote, - oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + oracle_type=oracle_type, expiry=expiry, initial_deposit=deposit, ) @@ -2244,18 +1072,17 @@ def MsgUnderwrite( market_id: str, quote_denom: str, amount: int, - ): + ) -> injective_insurance_tx_pb.MsgUnderwrite: """ 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( + return self.msg_underwrite( sender=sender, market_id=market_id, - deposit=be_amount, + quote_denom=quote_denom, + amount=amount, ) def msg_underwrite( @@ -2264,13 +1091,13 @@ def msg_underwrite( market_id: str, quote_denom: str, amount: int, - ): - coin = self.coin(amount=int(amount), denom=quote_denom) + ) -> injective_insurance_tx_pb.MsgUnderwrite: + be_amount = self.create_coin_amount(amount=Decimal(str(amount)), token_name=quote_denom) return injective_insurance_tx_pb.MsgUnderwrite( sender=sender, market_id=market_id, - deposit=coin, + deposit=be_amount, ) def MsgRequestRedemption( @@ -2279,22 +1106,48 @@ def MsgRequestRedemption( market_id: str, share_denom: str, amount: int, - ): - chain_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(amount))) + ) -> injective_insurance_tx_pb.MsgRequestRedemption: + """ + This method is deprecated and will be removed soon. Please use `msg_request_redemption` instead + """ + warn("This method is deprecated. Use msg_request_redemption instead", DeprecationWarning, stacklevel=2) + + return self.msg_request_redemption( + sender=sender, + market_id=market_id, + share_denom=share_denom, + amount=amount, + ) + + def msg_request_redemption( + self, + sender: str, + market_id: str, + share_denom: str, + amount: int, + ) -> injective_insurance_tx_pb.MsgRequestRedemption: return injective_insurance_tx_pb.MsgRequestRedemption( sender=sender, market_id=market_id, - amount=self.coin(amount=int(chain_amount), denom=share_denom), + amount=self.coin(amount=amount, denom=share_denom), ) # endregion # region Oracle module def MsgRelayProviderPrices(self, sender: str, provider: str, symbols: list, prices: list): + """ + This method is deprecated and will be removed soon. Please use `msg_relay_provider_prices` instead + """ + warn("This method is deprecated. Use msg_relay_provider_prices instead", DeprecationWarning, stacklevel=2) + + return self.msg_relay_provider_prices(sender=sender, provider=provider, symbols=symbols, prices=prices) + + def msg_relay_provider_prices(self, sender: str, provider: str, symbols: list, prices: list): 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) @@ -2302,18 +1155,37 @@ def MsgRelayProviderPrices(self, sender: str, provider: str, symbols: list, pric sender=sender, provider=provider, symbols=symbols, prices=oracle_prices ) - def MsgRelayPriceFeedPrice(self, sender: list, base: list, quote: list, price: list): + def MsgRelayPriceFeedPrice( + self, sender: list, base: list, quote: list, price: list + ) -> injective_oracle_tx_pb.MsgRelayPriceFeedPrice: + """ + This method is deprecated and will be removed soon. Please use `msg_relay_price_feed_price` instead + """ + warn("This method is deprecated. Use msg_relay_price_feed_price instead", DeprecationWarning, stacklevel=2) + + return self.msg_relay_price_feed_price(sender=sender, base=base, quote=quote, price=price) + + def msg_relay_price_feed_price( + self, sender: list, base: list, quote: list, price: list + ) -> injective_oracle_tx_pb.MsgRelayPriceFeedPrice: return injective_oracle_tx_pb.MsgRelayPriceFeedPrice(sender=sender, base=base, quote=quote, price=price) # endregion # region Peggy module - def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, bridge_fee: float): + def MsgSendToEth( + self, denom: str, sender: str, eth_dest: str, amount: float, bridge_fee: float + ) -> injective_peggy_tx_pb.MsgSendToEth: """ 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) + return self.msg_send_to_eth(denom=denom, sender=sender, eth_dest=eth_dest, amount=amount, bridge_fee=bridge_fee) + + def msg_send_to_eth( + self, denom: str, sender: str, eth_dest: str, amount: float, bridge_fee: float + ) -> injective_peggy_tx_pb.MsgSendToEth: 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) @@ -2324,22 +1196,25 @@ 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 = Token.convert_value_to_extended_decimal_format(Decimal(str(amount))) + def MsgDelegate( + self, delegator_address: str, validator_address: str, amount: float + ) -> cosmos_staking_tx_pb.MsgDelegate: + """ + This method is deprecated and will be removed soon. Please use `msg_delegate` instead + """ + warn("This method is deprecated. Use msg_delegate instead", DeprecationWarning, stacklevel=2) + + return self.msg_delegate( + delegator_address=delegator_address, validator_address=validator_address, amount=amount + ) + + def msg_delegate( + self, delegator_address: str, validator_address: str, amount: float + ) -> cosmos_staking_tx_pb.MsgDelegate: + be_amount = Decimal(str(amount)) * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return cosmos_staking_tx_pb.MsgDelegate( delegator_address=delegator_address, @@ -2436,6 +1311,24 @@ def msg_change_admin( # region Wasm module def MsgInstantiateContract( self, sender: str, admin: str, code_id: int, label: str, message: bytes, **kwargs + ) -> wasm_tx_pb.MsgInstantiateContract: + """ + This method is deprecated and will be removed soon. Please use `msg_instantiate_contract` instead + """ + warn("This method is deprecated. Use msg_instantiate_contract instead", DeprecationWarning, stacklevel=2) + + return self.msg_instantiate_contract( + sender=sender, admin=admin, code_id=code_id, label=label, message=message, funds=kwargs.get("funds") + ) + + def msg_instantiate_contract( + self, + sender: str, + admin: str, + code_id: int, + label: str, + message: bytes, + funds: Optional[List[base_coin_pb.Coin]] = None, ) -> wasm_tx_pb.MsgInstantiateContract: return wasm_tx_pb.MsgInstantiateContract( sender=sender, @@ -2443,17 +1336,29 @@ def MsgInstantiateContract( code_id=code_id, label=label, msg=message, - funds=kwargs.get("funds"), # funds is a list of base_coin_pb.Coin. - # The coins in the list must be sorted in alphabetical order by denoms. + funds=funds, # The coins in the list must be sorted in alphabetical order by denoms. ) def MsgExecuteContract(self, sender: str, contract: str, msg: str, **kwargs): + """ + This method is deprecated and will be removed soon. Please use `msg_execute_contract` instead + """ + warn("This method is deprecated. Use msg_execute_contract instead", DeprecationWarning, stacklevel=2) + + return self.msg_execute_contract(sender=sender, contract=contract, msg=msg, funds=kwargs.get("funds")) + + def msg_execute_contract( + self, + sender: str, + contract: str, + msg: str, + funds: Optional[List[base_coin_pb.Coin]] = None, + ) -> wasm_tx_pb.MsgExecuteContract: return wasm_tx_pb.MsgExecuteContract( sender=sender, contract=contract, msg=bytes(msg, "utf-8"), - funds=kwargs.get("funds") # funds is a list of base_coin_pb.Coin. - # The coins in the list must be sorted in alphabetical order by denoms. + funds=funds, # The coins in the list must be sorted in alphabetical order by denoms. ) # endregion @@ -2466,74 +1371,24 @@ def MsgGrantTyped( expire_in: int, subaccount_id: str, **kwargs, - ): + ) -> cosmos_authz_tx_pb.MsgGrant: """ - This method is deprecated and will be removed soon. Please use `create_typed_msg_grant` instead + This method is deprecated and will be removed soon. Please use `msg_grant_typed` 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") - - auth = None - if msg_type == "CreateSpotLimitOrderAuthz": - auth = injective_authz_pb.CreateSpotLimitOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "CreateSpotMarketOrderAuthz": - auth = injective_authz_pb.CreateSpotMarketOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "BatchCreateSpotLimitOrdersAuthz": - auth = injective_authz_pb.BatchCreateSpotLimitOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "CancelSpotOrderAuthz": - auth = injective_authz_pb.CancelSpotOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "BatchCancelSpotOrdersAuthz": - auth = injective_authz_pb.BatchCancelSpotOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "CreateDerivativeLimitOrderAuthz": - auth = injective_authz_pb.CreateDerivativeLimitOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "CreateDerivativeMarketOrderAuthz": - auth = injective_authz_pb.CreateDerivativeMarketOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "BatchCreateDerivativeLimitOrdersAuthz": - auth = injective_authz_pb.BatchCreateDerivativeLimitOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "CancelDerivativeOrderAuthz": - auth = injective_authz_pb.CancelDerivativeOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "BatchCancelDerivativeOrdersAuthz": - auth = injective_authz_pb.BatchCancelDerivativeOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) - elif msg_type == "BatchUpdateOrdersAuthz": - auth = injective_authz_pb.BatchUpdateOrdersAuthz( - subaccount_id=subaccount_id, - spot_markets=kwargs.get("spot_markets"), - derivative_markets=kwargs.get("derivative_markets"), - ) + warn("This method is deprecated. Use msg_grant_typed instead", DeprecationWarning, stacklevel=2) - 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()) + expire_in)), + return self.msg_grant_typed( + granter=granter, + grantee=grantee, + msg_type=msg_type, + expiration_time_seconds=expire_in, + subaccount_id=subaccount_id, + market_ids=kwargs.get("market_ids"), + spot_markets=kwargs.get("spot_markets"), + derivative_markets=kwargs.get("derivative_markets"), ) - return cosmos_authz_tx_pb.MsgGrant(granter=granter, grantee=grantee, grant=grant) - - def create_typed_msg_grant( + def msg_grant_typed( self, granter: str, grantee: str, @@ -2550,40 +1405,40 @@ def create_typed_msg_grant( 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) + auth = injective_authz_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) + auth = injective_authz_pb.CreateSpotMarketOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "BatchCreateSpotLimitOrdersAuthz": - auth = injective_authz_v2_pb.BatchCreateSpotLimitOrdersAuthz( + auth = injective_authz_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) + auth = injective_authz_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) + auth = injective_authz_pb.BatchCancelSpotOrdersAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "CreateDerivativeLimitOrderAuthz": - auth = injective_authz_v2_pb.CreateDerivativeLimitOrderAuthz( + auth = injective_authz_pb.CreateDerivativeLimitOrderAuthz( subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "CreateDerivativeMarketOrderAuthz": - auth = injective_authz_v2_pb.CreateDerivativeMarketOrderAuthz( + auth = injective_authz_pb.CreateDerivativeMarketOrderAuthz( subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "BatchCreateDerivativeLimitOrdersAuthz": - auth = injective_authz_v2_pb.BatchCreateDerivativeLimitOrdersAuthz( + auth = injective_authz_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) + auth = injective_authz_pb.CancelDerivativeOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "BatchCancelDerivativeOrdersAuthz": - auth = injective_authz_v2_pb.BatchCancelDerivativeOrdersAuthz( + auth = injective_authz_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( + auth = injective_authz_pb.BatchUpdateOrdersAuthz( subaccount_id=subaccount_id, spot_markets=spot_markets_ids, derivative_markets=derivative_markets_ids, @@ -2601,26 +1456,28 @@ def create_typed_msg_grant( def MsgVote( self, - proposal_id: str, + proposal_id: int, voter: str, option: int, - ): - return cosmos_gov_tx_pb.MsgVote(proposal_id=proposal_id, voter=voter, option=option) + ) -> cosmos_gov_tx_pb.MsgVote: + """ + This method is deprecated and will be removed soon. Please use `msg_vote` instead + """ + warn("This method is deprecated. Use msg_vote instead", DeprecationWarning, stacklevel=2) - # ------------------------------------------------ - # region Chain stream module's messages + return self.msg_vote(proposal_id=proposal_id, voter=voter, option=option) + + def msg_vote( + self, + proposal_id: int, + voter: str, + option: int, + ) -> cosmos_gov_tx_pb.MsgVote: + return cosmos_gov_tx_pb.MsgVote(proposal_id=proposal_id, voter=voter, option=option) 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) @@ -2628,15 +1485,6 @@ 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) @@ -2645,11 +1493,6 @@ 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) @@ -2659,11 +1502,6 @@ 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) @@ -2672,13 +1510,6 @@ 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) @@ -2687,13 +1518,6 @@ 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) @@ -2702,74 +1526,9 @@ 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 @@ -2799,8 +1558,6 @@ 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, @@ -2931,27 +1688,6 @@ def msg_claim_voucher( # endregion - # region ERC20 module - def msg_create_token_pair( - self, sender: str, bank_denom: str, erc20_address: str - ) -> injective_erc20_tx_pb.MsgCreateTokenPair: - token_pair = injective_erc20_pb2.TokenPair( - bank_denom=bank_denom, - erc20_address=erc20_address, - ) - return injective_erc20_tx_pb.MsgCreateTokenPair( - sender=sender, - token_pair=token_pair, - ) - - def msg_delete_token_pair(self, sender: str, bank_denom: str) -> injective_erc20_tx_pb.MsgDeleteTokenPair: - return injective_erc20_tx_pb.MsgDeleteTokenPair( - sender=sender, - bank_denom=bank_denom, - ) - - # endregion - # data field format: [request-msg-header][raw-byte-msg-response] # you need to figure out this magic prefix number to trim request-msg-header off the data # this method handles only exchange responses @@ -2960,10 +1696,69 @@ 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(GRPC_RESPONSE_TYPE_TO_CLASS_MAP[msg.type_url].FromString(msg.value)) + msgs.append(header_map[msg.type_url].FromString(msg.value)) return msgs @@ -3025,19 +1820,19 @@ def _order_mask(self, is_conditional: bool, is_buy: bool, is_market_order: bool) order_mask = 0 if is_conditional: - order_mask += injective_order_v2_pb.OrderMask.CONDITIONAL + order_mask += injective_exchange_pb.OrderMask.CONDITIONAL else: - order_mask += injective_order_v2_pb.OrderMask.REGULAR + order_mask += injective_exchange_pb.OrderMask.REGULAR if is_buy: - order_mask += injective_order_v2_pb.OrderMask.DIRECTION_BUY_OR_HIGHER + order_mask += injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER else: - order_mask += injective_order_v2_pb.OrderMask.DIRECTION_SELL_OR_LOWER + order_mask += injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER if is_market_order: - order_mask += injective_order_v2_pb.OrderMask.TYPE_MARKET + order_mask += injective_exchange_pb.OrderMask.TYPE_MARKET else: - order_mask += injective_order_v2_pb.OrderMask.TYPE_LIMIT + order_mask += injective_exchange_pb.OrderMask.TYPE_LIMIT if order_mask == 0: order_mask = 1 @@ -3056,11 +1851,6 @@ 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}" @@ -3083,40 +1873,3 @@ 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, - expiration_block: Optional[int] = None, - ) -> injective_order_v2_pb.DerivativeOrder: - trigger_price = trigger_price or Decimal(0) - expiration_height = expiration_block or 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, - expiration_block=expiration_height, - ) diff --git a/pyinjective/composer_v2.py b/pyinjective/composer_v2.py new file mode 100644 index 00000000..ae4f7fe4 --- /dev/null +++ b/pyinjective/composer_v2.py @@ -0,0 +1,1858 @@ +import json +from decimal import Decimal +from enum import IntFlag +from time import time +from typing import Any, Dict, List, Optional + +from google.protobuf import any_pb2, json_format, timestamp_pb2 + +from pyinjective.constant import INJ_DECIMALS, INJ_DENOM +from pyinjective.core.token import Token +from pyinjective.ofac import OfacChecker +from pyinjective.proto.cosmos.authz.v1beta1 import authz_pb2 as cosmos_authz_pb, tx_pb2 as cosmos_authz_tx_pb +from pyinjective.proto.cosmos.bank.v1beta1 import bank_pb2 as bank_pb, tx_pb2 as cosmos_bank_tx_pb +from pyinjective.proto.cosmos.base.v1beta1 import coin_pb2 as base_coin_pb +from pyinjective.proto.cosmos.distribution.v1beta1 import ( + distribution_pb2 as cosmos_distribution_pb2, + tx_pb2 as cosmos_distribution_tx_pb, +) +from pyinjective.proto.cosmos.gov.v1beta1 import tx_pb2 as cosmos_gov_tx_pb +from pyinjective.proto.cosmos.staking.v1beta1 import tx_pb2 as cosmos_staking_tx_pb +from pyinjective.proto.cosmwasm.wasm.v1 import tx_pb2 as wasm_tx_pb +from pyinjective.proto.exchange import injective_explorer_rpc_pb2 as explorer_pb2 +from pyinjective.proto.ibc.applications.transfer.v1 import tx_pb2 as ibc_transfer_tx_pb +from pyinjective.proto.ibc.core.client.v1 import client_pb2 as ibc_core_client_pb +from pyinjective.proto.injective.auction.v1beta1 import tx_pb2 as injective_auction_tx_pb +from pyinjective.proto.injective.erc20.v1beta1 import erc20_pb2 as injective_erc20_pb2, tx_pb2 as injective_erc20_tx_pb +from pyinjective.proto.injective.exchange.v1beta1 import 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, + tx_pb2 as injective_oracle_tx_pb, +) +from pyinjective.proto.injective.peggy.v1 import msgs_pb2 as injective_peggy_tx_pb +from pyinjective.proto.injective.permissions.v1beta1 import ( + permissions_pb2 as injective_permissions_pb, + tx_pb2 as injective_permissions_tx_pb, +) +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 + +# fmt: off +REQUEST_TO_RESPONSE_TYPE_MAP = { + "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, + "/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: + PERMISSIONS_ACTION = IntFlag( + "PERMISSIONS_ACTION", + [ + (permission_name, injective_permissions_pb.Action.Value(permission_name)) + for permission_name in injective_permissions_pb.Action.keys() + ], + ) + + def __init__(self, network: str): + """Composer is used to create the requests to send to the nodes using the Client + + :param network: the name of the network to use (mainnet, testnet, devnet) + :type network: str + """ + self.network = network + self._ofac_checker = OfacChecker() + + 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 + """ + formatted_amount_string = str(int(amount)) + return base_coin_pb.Coin(amount=formatted_amount_string, denom=denom) + + def order_data( + 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, + order_mask=order_mask, + cid=cid, + ) + + def order_data_without_mask( + self, + market_id: str, + subaccount_id: str, + order_hash: Optional[str] = None, + cid: Optional[str] = None, + ) -> 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, + order_mask=1, + cid=cid, + ) + + def spot_order( + self, + market_id: str, + subaccount_id: str, + fee_recipient: str, + price: Decimal, + quantity: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + expiration_block: Optional[int] = None, + ) -> injective_order_v2_pb.SpotOrder: + trigger_price = trigger_price or Decimal(0) + expiration_block = expiration_block or 0 + 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_order_v2_pb.SpotOrder( + 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, + trigger_price=chain_trigger_price, + expiration_block=expiration_block, + ) + + def calculate_margin( + self, quantity: Decimal, price: Decimal, leverage: Decimal, is_reduce_only: bool = False + ) -> Decimal: + if is_reduce_only: + margin = Decimal(0) + else: + margin = quantity * price / leverage + + return margin + + def derivative_order( + 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, + expiration_block: Optional[int] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + return self._basic_derivative_order( + 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, + expiration_block=expiration_block, + ) + + def binary_options_order( + 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, + expiration_block: Optional[int] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + return self._basic_derivative_order( + 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, + expiration_block=expiration_block, + ) + + 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_v2_pb.GrantAuthorization(grantee=grantee, amount=str(chain_formatted_amount)) + + # region Auction module + def msg_bid(self, sender: str, bid_amount: float, round: float) -> injective_auction_tx_pb.MsgBid: + be_amount = Token.convert_value_to_extended_decimal_format(value=Decimal(str(bid_amount))) + + return injective_auction_tx_pb.MsgBid( + sender=sender, + round=round, + bid_amount=self.coin(amount=int(be_amount), denom=INJ_DENOM), + ) + + # endregion + + # region Authz module + def msg_grant_generic( + self, granter: str, grantee: str, msg_type: str, expire_in: int + ) -> cosmos_authz_tx_pb.MsgGrant: + if self._ofac_checker.is_blacklisted(granter): + raise Exception(f"Address {granter} is in the OFAC list") + auth = cosmos_authz_pb.GenericAuthorization(msg=msg_type) + 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()) + expire_in)), + ) + + return cosmos_authz_tx_pb.MsgGrant(granter=granter, grantee=grantee, grant=grant) + + def msg_exec(self, grantee: str, msgs: List): + any_msgs: List[any_pb2.Any] = [] + for msg in msgs: + any_msg = any_pb2.Any() + any_msg.Pack(msg, type_url_prefix="") + any_msgs.append(any_msg) + + return cosmos_authz_tx_pb.MsgExec(grantee=grantee, msgs=any_msgs) + + def msg_revoke(self, granter: str, grantee: str, msg_type: str) -> cosmos_authz_tx_pb.MsgRevoke: + return cosmos_authz_tx_pb.MsgRevoke(granter=granter, grantee=grantee, msg_type_url=msg_type) + + def msg_execute_contract_compat(self, sender: str, contract: str, msg: str, funds: str): + return wasmx_tx_pb.MsgExecuteContractCompat( + sender=sender, + contract=contract, + msg=msg, + funds=funds, + ) + + # endregion + + # region Bank module + 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 msg_deposit( + 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_v2_pb.MsgDeposit( + sender=sender, + subaccount_id=subaccount_id, + amount=coin, + ) + + def msg_withdraw( + 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_v2_pb.MsgWithdraw( + sender=sender, + subaccount_id=subaccount_id, + amount=coin, + ) + + def msg_instant_spot_market_launch( + 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_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, + reduce_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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_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}", + reduce_margin_ratio=f"{chain_reduce_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_v2( + self, + sender: str, + 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, + reduce_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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_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}", + reduce_margin_ratio=f"{chain_reduce_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, + expiration_block: Optional[int] = None, + ) -> injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotLimitOrder( + sender=sender, + order=self.spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + expiration_block=expiration_block, + ), + ) + + def msg_batch_create_spot_limit_orders( + 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: Decimal, + quantity: Decimal, + order_type: str, + cid: Optional[str] = None, + trigger_price: Optional[Decimal] = None, + ) -> injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateSpotMarketOrder( + sender=sender, + order=self.spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ), + ) + + 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_v2_pb.MsgCancelSpotOrder: + return injective_exchange_tx_v2_pb.MsgCancelSpotOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + cid=cid, + ) + + def msg_batch_cancel_spot_orders( + 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, + 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_v2_pb.MsgPrivilegedExecuteContract: + return injective_exchange_tx_v2_pb.MsgPrivilegedExecuteContract( + sender=sender, + contract_address=contract_address, + data=data, + funds=funds, + ) + + def msg_create_derivative_limit_order( + self, + market_id: str, + sender: 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, + expiration_block: Optional[int] = None, + ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( + sender=sender, + order=self.derivative_order( + 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, + expiration_block=expiration_block, + ), + ) + + def msg_batch_create_derivative_limit_orders( + self, + sender: str, + 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 msg_create_derivative_market_order( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeMarketOrder( + sender=sender, + order=self.derivative_order( + 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 msg_cancel_derivative_order( + 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, + ) -> 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_v2_pb.MsgCancelDerivativeOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + order_mask=order_mask, + cid=cid, + ) + + def msg_batch_cancel_derivative_orders( + 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, + oracle_symbol: str, + oracle_provider: str, + oracle_type: str, + oracle_scale_factor: int, + maker_fee_rate: Decimal, + taker_fee_rate: Decimal, + expiration_timestamp: int, + settlement_timestamp: int, + admin: str, + quote_denom: str, + 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_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, + oracle_provider=oracle_provider, + oracle_type=injective_oracle_pb.OracleType.Value(oracle_type), + oracle_scale_factor=oracle_scale_factor, + 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, + admin=admin, + 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 msg_create_binary_options_limit_order( + self, + market_id: str, + sender: 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, + expiration_block: Optional[int] = None, + ) -> injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder: + return injective_exchange_tx_v2_pb.MsgCreateDerivativeLimitOrder( + sender=sender, + order=self.binary_options_order( + 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, + expiration_block=expiration_block, + ), + ) + + def msg_create_binary_options_market_order( + self, + market_id: str, + sender: 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_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder: + return injective_exchange_tx_v2_pb.MsgCreateBinaryOptionsMarketOrder( + sender=sender, + order=self.binary_options_order( + 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 msg_cancel_binary_options_order( + 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, + ) -> 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_v2_pb.MsgCancelBinaryOptionsOrder( + sender=sender, + market_id=market_id, + subaccount_id=subaccount_id, + order_hash=order_hash, + order_mask=order_mask, + cid=cid, + ) + + def msg_subaccount_transfer( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgSubaccountTransfer: + amount_coin = self.coin(amount=int(amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgSubaccountTransfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=amount_coin, + ) + + def msg_external_transfer( + self, + sender: str, + source_subaccount_id: str, + destination_subaccount_id: str, + amount: int, + denom: str, + ) -> injective_exchange_tx_v2_pb.MsgExternalTransfer: + coin = self.coin(amount=int(amount), denom=denom) + + return injective_exchange_tx_v2_pb.MsgExternalTransfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=coin, + ) + + def msg_liquidate_position( + self, + sender: str, + subaccount_id: str, + market_id: str, + 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 + ) + + def msg_emergency_settle_market( + 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: Decimal, + ) -> 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 msg_rewards_opt_out(self, sender: str) -> injective_exchange_tx_v2_pb.MsgRewardsOptOut: + return injective_exchange_tx_v2_pb.MsgRewardsOptOut(sender=sender) + + def msg_admin_update_binary_options_market( + self, + sender: str, + market_id: str, + status: str, + settlement_price: Optional[Decimal] = None, + expiration_timestamp: Optional[int] = None, + settlement_timestamp: Optional[int] = None, + ) -> injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket: + message = injective_exchange_tx_v2_pb.MsgAdminUpdateBinaryOptionsMarket( + sender=sender, + market_id=market_id, + expiration_timestamp=expiration_timestamp, + settlement_timestamp=settlement_timestamp, + status=status, + ) + + 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_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=f"{margin_to_remove.normalize():f}", + ) + + def msg_update_spot_market( + 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, + 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, + new_reduce_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 + ) + chain_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=new_reduce_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}", + new_reduce_margin_ratio=f"{chain_reduce_margin_ratio.normalize():f}", + ) + + def msg_authorize_stake_grants( + 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_v2_pb.MsgActivateStakeGrant: + return injective_exchange_tx_v2_pb.MsgActivateStakeGrant( + sender=sender, + granter=granter, + ) + + # endregion + + # region Insurance module + 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 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 msg_request_redemption( + self, + sender: str, + market_id: str, + share_denom: str, + amount: int, + ) -> injective_insurance_tx_pb.MsgRequestRedemption: + 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=int(chain_amount), denom=share_denom), + ) + + # endregion + + # region Oracle module + def msg_relay_provider_prices( + self, sender: str, provider: str, symbols: list, prices: list + ) -> injective_oracle_tx_pb.MsgRelayProviderPrices: + oracle_prices = [] + + for price in prices: + scale_price = Decimal(price * pow(10, 18)) + price_to_bytes = bytes(str(scale_price), "utf-8") + oracle_prices.append(price_to_bytes) + + return injective_oracle_tx_pb.MsgRelayProviderPrices( + sender=sender, provider=provider, symbols=symbols, prices=oracle_prices + ) + + def msg_relay_price_feed_price( + self, sender: list, base: list, quote: list, price: list + ) -> injective_oracle_tx_pb.MsgRelayPriceFeedPrice: + return injective_oracle_tx_pb.MsgRelayPriceFeedPrice(sender=sender, base=base, quote=quote, price=price) + + # endregion + + # region Peggy module + 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 msg_delegate( + self, delegator_address: str, validator_address: str, amount: float + ) -> cosmos_staking_tx_pb.MsgDelegate: + be_amount = Token.convert_value_to_extended_decimal_format(Decimal(str(amount))) + + return cosmos_staking_tx_pb.MsgDelegate( + delegator_address=delegator_address, + validator_address=validator_address, + amount=self.coin(amount=int(be_amount), denom=INJ_DENOM), + ) + + # endregion + + # region Tokenfactory module + def msg_create_denom( + self, + sender: str, + subdenom: str, + name: str, + symbol: str, + decimals: int, + allow_admin_burn: bool, + ) -> token_factory_tx_pb.MsgCreateDenom: + return token_factory_tx_pb.MsgCreateDenom( + sender=sender, + subdenom=subdenom, + name=name, + symbol=symbol, + decimals=decimals, + allow_admin_burn=allow_admin_burn, + ) + + def msg_mint( + self, + sender: str, + amount: base_coin_pb.Coin, + receiver: str, + ) -> token_factory_tx_pb.MsgMint: + return token_factory_tx_pb.MsgMint(sender=sender, amount=amount, receiver=receiver) + + def msg_burn( + self, + sender: str, + amount: base_coin_pb.Coin, + burn_from_address: str, + ) -> token_factory_tx_pb.MsgBurn: + return token_factory_tx_pb.MsgBurn(sender=sender, amount=amount, burnFromAddress=burn_from_address) + + def msg_set_denom_metadata( + self, + sender: str, + description: str, + denom: str, + subdenom: str, + token_decimals: int, + name: str, + symbol: str, + uri: str, + uri_hash: str, + ) -> token_factory_tx_pb.MsgSetDenomMetadata: + micro_denom_unit = bank_pb.DenomUnit( + denom=denom, + exponent=0, + aliases=[f"micro{subdenom}"], + ) + denom_unit = bank_pb.DenomUnit( + denom=subdenom, + exponent=token_decimals, + aliases=[subdenom], + ) + metadata = bank_pb.Metadata( + description=description, + denom_units=[micro_denom_unit, denom_unit], + base=denom, + display=subdenom, + name=name, + symbol=symbol, + uri=uri, + uri_hash=uri_hash, + decimals=token_decimals, + ) + return token_factory_tx_pb.MsgSetDenomMetadata(sender=sender, metadata=metadata) + + def msg_change_admin( + self, + sender: str, + denom: str, + new_admin: str, + ) -> token_factory_tx_pb.MsgChangeAdmin: + return token_factory_tx_pb.MsgChangeAdmin( + sender=sender, + denom=denom, + new_admin=new_admin, + ) + + # endregion + + # region Wasm module + def msg_instantiate_contract( + self, + sender: str, + admin: str, + code_id: int, + label: str, + message: bytes, + funds: Optional[List[base_coin_pb.Coin]] = None, + ) -> wasm_tx_pb.MsgInstantiateContract: + return wasm_tx_pb.MsgInstantiateContract( + sender=sender, + admin=admin, + code_id=code_id, + label=label, + msg=message, + funds=funds, # The coins in the list must be sorted in alphabetical order by denoms. + ) + + def msg_execute_contract( + self, sender: str, contract: str, msg: str, funds: Optional[List[base_coin_pb.Coin]] = None + ): + return wasm_tx_pb.MsgExecuteContract( + sender=sender, + contract=contract, + msg=bytes(msg, "utf-8"), + funds=funds, # The coins in the list must be sorted in alphabetical order by denoms. + ) + + # endregion + + def msg_grant_typed( + 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 msg_vote( + self, + proposal_id: int, + voter: str, + option: int, + ) -> cosmos_gov_tx_pb.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_v2_query.BankBalancesFilter: + accounts = accounts or ["*"] + return chain_stream_v2_query.BankBalancesFilter(accounts=accounts) + + def chain_stream_subaccount_deposits_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_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_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_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_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_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 + + def msg_set_withdraw_address(self, delegator_address: str, withdraw_address: str): + return cosmos_distribution_tx_pb.MsgSetWithdrawAddress( + delegator_address=delegator_address, withdraw_address=withdraw_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 msg_withdraw_validator_commission(self, validator_address: str): + return cosmos_distribution_tx_pb.MsgWithdrawValidatorCommission(validator_address=validator_address) + + def msg_fund_community_pool(self, amounts: List[base_coin_pb.Coin], depositor: str): + return cosmos_distribution_tx_pb.MsgFundCommunityPool(amount=amounts, depositor=depositor) + + def msg_update_distribution_params(self, authority: str, community_tax: str, withdraw_address_enabled: bool): + params = cosmos_distribution_pb2.Params( + community_tax=community_tax, + withdraw_addr_enabled=withdraw_address_enabled, + ) + return cosmos_distribution_tx_pb.MsgUpdateParams(authority=authority, params=params) + + 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, + source_port: str, + source_channel: str, + token_amount: base_coin_pb.Coin, + sender: str, + receiver: str, + timeout_height: Optional[int] = None, + timeout_timestamp: Optional[int] = None, + memo: Optional[str] = None, + ) -> ibc_transfer_tx_pb.MsgTransfer: + if timeout_height is None and timeout_timestamp is None: + raise ValueError("IBC Transfer error: Either timeout_height or timeout_timestamp must be provided") + parsed_timeout_height = None + if timeout_height: + parsed_timeout_height = ibc_core_client_pb.Height( + revision_number=timeout_height, revision_height=timeout_height + ) + return ibc_transfer_tx_pb.MsgTransfer( + source_port=source_port, + source_channel=source_channel, + token=token_amount, + sender=sender, + receiver=receiver, + timeout_height=parsed_timeout_height, + timeout_timestamp=timeout_timestamp, + memo=memo, + ) + + # endregion + + # region Permissions module + def permissions_role(self, name: str, role_id: int, permissions: int) -> injective_permissions_pb.Role: + return injective_permissions_pb.Role(name=name, role_id=role_id, permissions=permissions) + + def permissions_actor_roles(self, actor: str, roles: List[str]) -> injective_permissions_pb.ActorRoles: + return injective_permissions_pb.ActorRoles(actor=actor, roles=roles) + + def permissions_role_manager(self, manager: str, roles: List[str]) -> injective_permissions_pb.RoleManager: + return injective_permissions_pb.RoleManager(manager=manager, roles=roles) + + def permissions_policy_status( + self, action: int, is_disabled: bool, is_sealed: bool + ) -> injective_permissions_pb.PolicyStatus: + return injective_permissions_pb.PolicyStatus(action=action, is_disabled=is_disabled, is_sealed=is_sealed) + + def permissions_policy_manager_capability( + self, manager: str, action: int, can_disable: bool, can_seal: bool + ) -> injective_permissions_pb.PolicyManagerCapability: + return injective_permissions_pb.PolicyManagerCapability( + manager=manager, action=action, can_disable=can_disable, can_seal=can_seal + ) + + def permissions_role_actors(self, role: str, actors: List[str]) -> injective_permissions_pb.RoleActors: + return injective_permissions_pb.RoleActors(role=role, actors=actors) + + def msg_create_namespace( + self, + sender: str, + denom: str, + contract_hook: str, + role_permissions: List[injective_permissions_pb.Role], + actor_roles: List[injective_permissions_pb.ActorRoles], + role_managers: List[injective_permissions_pb.RoleManager], + policy_statuses: List[injective_permissions_pb.PolicyStatus], + policy_manager_capabilities: List[injective_permissions_pb.PolicyManagerCapability], + ) -> injective_permissions_tx_pb.MsgCreateNamespace: + namespace = injective_permissions_pb.Namespace( + denom=denom, + contract_hook=contract_hook, + role_permissions=role_permissions, + actor_roles=actor_roles, + role_managers=role_managers, + policy_statuses=policy_statuses, + policy_manager_capabilities=policy_manager_capabilities, + ) + return injective_permissions_tx_pb.MsgCreateNamespace( + sender=sender, + namespace=namespace, + ) + + def msg_update_namespace( + self, + sender: str, + denom: str, + contract_hook: str, + role_permissions: List[injective_permissions_pb.Role], + role_managers: List[injective_permissions_pb.RoleManager], + policy_statuses: List[injective_permissions_pb.PolicyStatus], + policy_manager_capabilities: List[injective_permissions_pb.PolicyManagerCapability], + ) -> injective_permissions_tx_pb.MsgUpdateNamespace: + contract_hook_update = injective_permissions_tx_pb.MsgUpdateNamespace.SetContractHook(new_value=contract_hook) + + return injective_permissions_tx_pb.MsgUpdateNamespace( + sender=sender, + denom=denom, + contract_hook=contract_hook_update, + role_permissions=role_permissions, + role_managers=role_managers, + policy_statuses=policy_statuses, + policy_manager_capabilities=policy_manager_capabilities, + ) + + def msg_update_actor_roles( + self, + sender: str, + denom: str, + role_actors_to_add: List[injective_permissions_pb.RoleActors], + role_actors_to_revoke: List[injective_permissions_pb.RoleActors], + ) -> injective_permissions_tx_pb.MsgUpdateActorRoles: + return injective_permissions_tx_pb.MsgUpdateActorRoles( + sender=sender, + denom=denom, + role_actors_to_add=role_actors_to_add, + role_actors_to_revoke=role_actors_to_revoke, + ) + + def msg_claim_voucher( + self, + sender: str, + denom: str, + ) -> injective_permissions_tx_pb.MsgClaimVoucher: + return injective_permissions_tx_pb.MsgClaimVoucher( + sender=sender, + denom=denom, + ) + + # endregion + + # region ERC20 module + def msg_create_token_pair( + self, sender: str, bank_denom: str, erc20_address: str + ) -> injective_erc20_tx_pb.MsgCreateTokenPair: + token_pair = injective_erc20_pb2.TokenPair( + bank_denom=bank_denom, + erc20_address=erc20_address, + ) + return injective_erc20_tx_pb.MsgCreateTokenPair( + sender=sender, + token_pair=token_pair, + ) + + def msg_delete_token_pair(self, sender: str, bank_denom: str) -> injective_erc20_tx_pb.MsgDeleteTokenPair: + return injective_erc20_tx_pb.MsgDeleteTokenPair( + sender=sender, + bank_denom=bank_denom, + ) + + # endregion + + # data field format: [request-msg-header][raw-byte-msg-response] + # you need to figure out this magic prefix number to trim request-msg-header off the data + # this method handles only exchange responses + @staticmethod + def MsgResponses(response, simulation=False): + data = response.result + if not simulation: + data = bytes.fromhex(data) + + msgs = [] + for msg in data.msg_responses: + msgs.append(GRPC_RESPONSE_TYPE_TO_CLASS_MAP[msg.type_url].FromString(msg.value)) + + return msgs + + @staticmethod + def UnpackMsgExecResponse(msg_type, data): + responses = [] + dict_message = json_format.MessageToDict(message=data, always_print_fields_with_no_presence=True) + json_responses = Composer.unpack_msg_exec_response(underlying_msg_type=msg_type, msg_exec_response=dict_message) + for json_response in json_responses: + response = REQUEST_TO_RESPONSE_TYPE_MAP[msg_type]() + json_format.ParseDict(js_dict=json_response, message=response, ignore_unknown_fields=True) + responses.append(response) + return responses + + @staticmethod + def unpack_msg_exec_response(underlying_msg_type: str, msg_exec_response: Dict[str, Any]) -> List[Dict[str, Any]]: + grpc_response = cosmos_authz_tx_pb.MsgExecResponse() + json_format.ParseDict(js_dict=msg_exec_response, message=grpc_response, ignore_unknown_fields=True) + responses = [ + json_format.MessageToDict( + message=REQUEST_TO_RESPONSE_TYPE_MAP[underlying_msg_type].FromString(result), + always_print_fields_with_no_presence=True, + ) + for result in grpc_response.results + ] + + return responses + + @staticmethod + def UnpackTransactionMessages(transaction): + meta_messages = json.loads(transaction.messages.decode()) + header_map = GRPC_MESSAGE_TYPE_TO_CLASS_MAP + msgs = [] + for msg in meta_messages: + msg_as_string_dict = json.dumps(msg["value"]) + msgs.append(json_format.Parse(msg_as_string_dict, header_map[msg["type"]]())) + + return msgs + + @staticmethod + def unpack_transaction_messages(transaction_data: Dict[str, Any]) -> List[Dict[str, Any]]: + grpc_tx = explorer_pb2.TxDetailData() + json_format.ParseDict(js_dict=transaction_data, message=grpc_tx, ignore_unknown_fields=True) + meta_messages = json.loads(grpc_tx.messages.decode()) + msgs = [] + for msg in meta_messages: + msg_as_string_dict = json.dumps(msg["value"]) + grpc_message = json_format.Parse(msg_as_string_dict, GRPC_MESSAGE_TYPE_TO_CLASS_MAP[msg["type"]]()) + msgs.append( + { + "type": msg["type"], + "value": json_format.MessageToDict(message=grpc_message, always_print_fields_with_no_presence=True), + } + ) + + return msgs + + def _order_mask(self, is_conditional: bool, is_buy: bool, is_market_order: bool) -> int: + order_mask = 0 + + if is_conditional: + order_mask += injective_order_v2_pb.OrderMask.CONDITIONAL + else: + order_mask += injective_order_v2_pb.OrderMask.REGULAR + + if is_buy: + order_mask += injective_order_v2_pb.OrderMask.DIRECTION_BUY_OR_HIGHER + else: + order_mask += injective_order_v2_pb.OrderMask.DIRECTION_SELL_OR_LOWER + + if is_market_order: + order_mask += injective_order_v2_pb.OrderMask.TYPE_MARKET + else: + order_mask += injective_order_v2_pb.OrderMask.TYPE_LIMIT + + if order_mask == 0: + order_mask = 1 + + return order_mask + + def _basic_derivative_order( + 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, + expiration_block: Optional[int] = None, + ) -> injective_order_v2_pb.DerivativeOrder: + trigger_price = trigger_price or Decimal(0) + expiration_height = expiration_block or 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, + expiration_block=expiration_height, + ) diff --git a/pyinjective/core/broadcaster.py b/pyinjective/core/broadcaster.py index 030547ed..3911f921 100644 --- a/pyinjective/core/broadcaster.py +++ b/pyinjective/core/broadcaster.py @@ -1,14 +1,16 @@ import math from abc import ABC, abstractmethod from decimal import Decimal -from typing import List, Optional, Type +from typing import List, Optional, Type, Union from google.protobuf import any_pb2 from grpc import RpcError from pyinjective import PrivateKey, PublicKey, Transaction from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient as AsyncClientV2 from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer as ComposerV2 from pyinjective.constant import GAS_PRICE from pyinjective.core.gas_heuristics_gas_limit_estimator import GasHeuristicsGasLimitEstimator from pyinjective.core.gas_limit_estimator import GasLimitEstimator @@ -64,14 +66,12 @@ def __init__( self, network: Network, account_config: BroadcasterAccountConfig, - client: AsyncClient, - composer: Composer, + client: Union[AsyncClient, AsyncClientV2], fee_calculator: TransactionFeeCalculator, ): self._network = network self._account_config = account_config self._client = client - self._composer = composer self._fee_calculator = fee_calculator self._ofac_checker = OfacChecker() @@ -84,8 +84,8 @@ def new_using_simulation( network: Network, private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance that uses transaction simulation for gas estimation. @@ -94,21 +94,20 @@ def new_using_simulation( private_key (str): The private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using simulation-based fee calculation """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = StandardAccountBroadcasterConfig(private_key=private_key) fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer, gas_price=gas_price) instance = cls( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -119,8 +118,7 @@ def new_without_simulation( network: Network, private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, ): """Creates a new broadcaster instance that uses message-based gas estimation without simulation. @@ -129,8 +127,7 @@ def new_without_simulation( private_key (str): The private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation @@ -140,7 +137,6 @@ def new_without_simulation( private_key=private_key, gas_price=gas_price, client=client, - composer=composer, ) @classmethod @@ -149,8 +145,8 @@ def new_using_gas_heuristics( network: Network, private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance that uses gas heuristics for gas calculation @@ -159,14 +155,14 @@ def new_using_gas_heuristics( private_key (str): The private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = StandardAccountBroadcasterConfig(private_key=private_key) fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_heuristics( client=client, @@ -177,7 +173,6 @@ def new_using_gas_heuristics( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -188,8 +183,8 @@ def new_using_estimate_gas( network: Network, private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance that uses message-based gas estimation without simulation. @@ -198,14 +193,14 @@ def new_using_estimate_gas( private_key (str): The private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = StandardAccountBroadcasterConfig(private_key=private_key) fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_estimation( client=client, @@ -216,7 +211,6 @@ def new_using_estimate_gas( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -227,8 +221,8 @@ def new_for_grantee_account_using_simulation( network: Network, grantee_private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance for a grantee account that uses transaction simulation for gas estimation. @@ -237,22 +231,21 @@ def new_for_grantee_account_using_simulation( grantee_private_key (str): The grantee's private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using simulation-based fee calculation for a grantee account """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) fee_calculator = SimulatedTransactionFeeCalculator(client=client, composer=composer, gas_price=gas_price) instance = cls( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -263,8 +256,8 @@ def new_for_grantee_account_without_simulation( network: Network, grantee_private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance for a grantee account that uses gas estimator using gas heuristics. @@ -273,8 +266,8 @@ def new_for_grantee_account_without_simulation( grantee_private_key (str): The grantee's private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee @@ -294,8 +287,8 @@ def new_for_grantee_account_using_gas_heuristics( network: Network, grantee_private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance for a grantee account that uses gas heuristics. @@ -304,15 +297,15 @@ def new_for_grantee_account_using_gas_heuristics( grantee_private_key (str): The grantee's private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee account """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_heuristics( client=client, @@ -323,7 +316,6 @@ def new_for_grantee_account_using_gas_heuristics( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -334,8 +326,8 @@ def new_for_grantee_account_using_estimated_gas( network: Network, grantee_private_key: str, gas_price: Optional[int] = None, - client: Optional[AsyncClient] = None, - composer: Optional[Composer] = None, + client: Optional[Union[AsyncClient, AsyncClientV2]] = None, + composer: Optional[Union[Composer, ComposerV2]] = None, ): """Creates a new broadcaster instance for a grantee account that uses message-based gas estimation without simulation. @@ -345,15 +337,15 @@ def new_for_grantee_account_using_estimated_gas( grantee_private_key (str): The grantee's private key in hex format for signing transactions gas_price (Optional[int]): Custom gas price in chain format (e.g. 500000000000000000 for 0.5 INJ). Defaults to None - client (Optional[AsyncClient]): Custom AsyncClient instance. Defaults to None - composer (Optional[Composer]): Custom Composer instance. Defaults to None + client (Optional[Union[AsyncClient, AsyncClientV2]]): Custom AsyncClient instance. Defaults to None + composer (Optional[Union[Composer, ComposerV2]]): Custom Composer instance. Defaults to None Returns: MsgBroadcasterWithPk: A configured broadcaster instance using message-based fee calculation for a grantee account """ - client = client or AsyncClient(network=network) - composer = composer or Composer(network=client.network.string()) + client = client or AsyncClientV2(network=network) + composer = composer or ComposerV2(network=client.network.string()) account_config = GranteeAccountBroadcasterConfig(grantee_private_key=grantee_private_key, composer=composer) fee_calculator = MessageBasedTransactionFeeCalculator.new_using_gas_estimation( client=client, @@ -364,7 +356,6 @@ def new_for_grantee_account_using_estimated_gas( network=network, account_config=account_config, client=client, - composer=composer, fee_calculator=fee_calculator, ) return instance @@ -435,7 +426,7 @@ def messages_prepared_for_transaction(self, messages: List[any_pb2.Any]) -> List class GranteeAccountBroadcasterConfig(BroadcasterAccountConfig): - def __init__(self, grantee_private_key: str, composer: Composer): + def __init__(self, grantee_private_key: str, composer: Union[Composer, ComposerV2]): self._grantee_private_key = PrivateKey.from_hex(grantee_private_key) self._grantee_public_key = self._grantee_private_key.to_public_key() self._grantee_address = self._grantee_public_key.to_address() @@ -454,7 +445,7 @@ def trading_public_key(self) -> PublicKey: return self._grantee_public_key def messages_prepared_for_transaction(self, messages: List[any_pb2.Any]) -> List[any_pb2.Any]: - exec_message = self._composer.MsgExec( + exec_message = self._composer.msg_exec( grantee=self.trading_injective_address, msgs=messages, ) @@ -465,8 +456,8 @@ def messages_prepared_for_transaction(self, messages: List[any_pb2.Any]) -> List class SimulatedTransactionFeeCalculator(TransactionFeeCalculator): def __init__( self, - client: AsyncClient, - composer: Composer, + client: Union[AsyncClient, AsyncClientV2], + composer: Union[Composer, ComposerV2], gas_price: Optional[int] = None, gas_limit_adjustment_multiplier: Optional[Decimal] = None, ): @@ -517,8 +508,8 @@ class MessageBasedTransactionFeeCalculator(TransactionFeeCalculator): def __init__( self, - client: AsyncClient, - composer: Composer, + client: Union[AsyncClient, AsyncClientV2], + composer: Union[Composer, ComposerV2], gas_price: Optional[int] = None, estimator_class: Optional[Type] = None, ): diff --git a/pyinjective/core/chain_formatted_market.py b/pyinjective/core/chain_formatted_market.py new file mode 100644 index 00000000..01973dc8 --- /dev/null +++ b/pyinjective/core/chain_formatted_market.py @@ -0,0 +1,274 @@ +from dataclasses import dataclass +from decimal import ROUND_UP, Decimal +from typing import Optional + +from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS +from pyinjective.core.token import Token +from pyinjective.utils.denom import Denom + + +@dataclass(eq=True, frozen=True) +class SpotMarket: + id: str + status: str + ticker: str + base_token: Token + quote_token: Token + maker_fee_rate: Decimal + taker_fee_rate: Decimal + service_provider_fee: Decimal + min_price_tick_size: Decimal + min_quantity_tick_size: Decimal + 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}") + + return extended_chain_formatted_value + + def price_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + 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}") + + return extended_chain_formatted_value + + def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + decimals = self.quote_token.decimals + chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") + quantized_balue = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_balue * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + return extended_chain_formatted_value + + def quantity_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{self.base_token.decimals}") + + def price_from_chain_format(self, chain_value: Decimal) -> Decimal: + decimals = self.base_token.decimals - self.quote_token.decimals + return chain_value * Decimal(f"1e{decimals}") + + def notional_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{self.quote_token.decimals}") + + def quantity_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.quantity_from_chain_format(chain_value=chain_value)) + + def price_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.price_from_chain_format(chain_value=chain_value)) + + def notional_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.notional_from_chain_format(chain_value=chain_value)) + + def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + +@dataclass(eq=True, frozen=True) +class DerivativeMarket: + id: str + status: str + ticker: str + oracle_base: str + oracle_quote: str + oracle_type: str + oracle_scale_factor: int + initial_margin_ratio: Decimal + maintenance_margin_ratio: Decimal + quote_token: Token + maker_fee_rate: Decimal + taker_fee_rate: Decimal + service_provider_fee: Decimal + min_price_tick_size: Decimal + min_quantity_tick_size: Decimal + min_notional: Decimal + + 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}") + + return extended_chain_formatted_value + + def price_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + 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}") + + return extended_chain_formatted_value + + def margin_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + return self.notional_to_chain_format(human_readable_value=human_readable_value) + + 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 + # 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 + + def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + decimals = self.quote_token.decimals + chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") + quantized_notional = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + return extended_chain_formatted_value + + def quantity_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value + + def price_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value * Decimal(f"1e-{self.quote_token.decimals}") + + def margin_from_chain_format(self, chain_value: Decimal) -> Decimal: + return self.notional_from_chain_format(chain_value=chain_value) + + def notional_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{self.quote_token.decimals}") + + def quantity_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.quantity_from_chain_format(chain_value=chain_value)) + + def price_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.price_from_chain_format(chain_value=chain_value)) + + def margin_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self.notional_from_extended_chain_format(chain_value=chain_value) + + def notional_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.notional_from_chain_format(chain_value=chain_value)) + + def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + +@dataclass(eq=True, frozen=True) +class BinaryOptionMarket: + id: str + status: str + ticker: str + oracle_symbol: str + oracle_provider: str + oracle_type: str + oracle_scale_factor: int + expiration_timestamp: int + settlement_timestamp: int + quote_token: Token + maker_fee_rate: Decimal + taker_fee_rate: Decimal + service_provider_fee: Decimal + min_price_tick_size: Decimal + min_quantity_tick_size: Decimal + min_notional: Decimal + settlement_price: Optional[Decimal] = None + + def quantity_to_chain_format(self, human_readable_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal: + # Binary option markets do not have a base market to provide the number of decimals + decimals = 0 if special_denom is None else special_denom.base + 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}") + + 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}") + + return extended_chain_formatted_value + + def margin_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_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}") + + return extended_chain_formatted_value + + def calculate_margin_in_chain_format( + self, + human_readable_quantity: Decimal, + human_readable_price: Decimal, + 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 + 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 + # 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}") + + return extended_chain_formatted_margin + + def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: + decimals = self.quote_token.decimals + chain_formatted_value = human_readable_value * Decimal(f"1e{decimals}") + quantized_value = chain_formatted_value.quantize(Decimal("1"), rounding=ROUND_UP) + extended_chain_formatted_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + return extended_chain_formatted_value + + def quantity_from_chain_format(self, chain_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal: + # Binary option markets do not have a base market to provide the number of decimals + decimals = 0 if special_denom is None else special_denom.base + return chain_value * Decimal(f"1e-{decimals}") + + def price_from_chain_format(self, chain_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal: + decimals = self.quote_token.decimals if special_denom is None else special_denom.quote + return chain_value * Decimal(f"1e-{decimals}") + + def margin_from_chain_format(self, chain_value: Decimal) -> Decimal: + return self.notional_from_chain_format(chain_value=chain_value) + + def notional_from_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{self.quote_token.decimals}") + + def quantity_from_extended_chain_format( + self, chain_value: Decimal, special_denom: Optional[Denom] = None + ) -> Decimal: + return self._from_extended_chain_format( + chain_value=self.quantity_from_chain_format(chain_value=chain_value, special_denom=special_denom) + ) + + def price_from_extended_chain_format(self, chain_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal: + return self._from_extended_chain_format( + chain_value=self.price_from_chain_format(chain_value=chain_value, special_denom=special_denom) + ) + + def margin_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self.notional_from_extended_chain_format(chain_value=chain_value) + + def notional_from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return self._from_extended_chain_format(chain_value=self.notional_from_chain_format(chain_value=chain_value)) + + def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal: + return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") diff --git a/pyinjective/indexer_client.py b/pyinjective/indexer_client.py new file mode 100644 index 00000000..3e6109eb --- /dev/null +++ b/pyinjective/indexer_client.py @@ -0,0 +1,1183 @@ +from typing import Any, Callable, Dict, List, Optional +from warnings import warn + +from pyinjective.client.indexer.grpc.indexer_grpc_account_api import IndexerGrpcAccountApi +from pyinjective.client.indexer.grpc.indexer_grpc_auction_api import IndexerGrpcAuctionApi +from pyinjective.client.indexer.grpc.indexer_grpc_derivative_api import IndexerGrpcDerivativeApi +from pyinjective.client.indexer.grpc.indexer_grpc_explorer_api import IndexerGrpcExplorerApi +from pyinjective.client.indexer.grpc.indexer_grpc_insurance_api import IndexerGrpcInsuranceApi +from pyinjective.client.indexer.grpc.indexer_grpc_meta_api import IndexerGrpcMetaApi +from pyinjective.client.indexer.grpc.indexer_grpc_oracle_api import IndexerGrpcOracleApi +from pyinjective.client.indexer.grpc.indexer_grpc_portfolio_api import IndexerGrpcPortfolioApi +from pyinjective.client.indexer.grpc.indexer_grpc_spot_api import IndexerGrpcSpotApi +from pyinjective.client.indexer.grpc_stream.indexer_grpc_account_stream import IndexerGrpcAccountStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_auction_stream import IndexerGrpcAuctionStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_derivative_stream import IndexerGrpcDerivativeStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_explorer_stream import IndexerGrpcExplorerStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_meta_stream import IndexerGrpcMetaStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_oracle_stream import IndexerGrpcOracleStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_portfolio_stream import IndexerGrpcPortfolioStream +from pyinjective.client.indexer.grpc_stream.indexer_grpc_spot_stream import IndexerGrpcSpotStream +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import Network +from pyinjective.proto.exchange import injective_oracle_rpc_pb2 as exchange_oracle_pb + + +class IndexerClient: + def __init__( + self, + network: Network, + ): + self.network = network + + # exchange stubs + self.exchange_channel = self.network.create_exchange_grpc_channel() + # explorer stubs + self.explorer_channel = self.network.create_explorer_grpc_channel() + + self.account_api = IndexerGrpcAccountApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.auction_api = IndexerGrpcAuctionApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.derivative_api = IndexerGrpcDerivativeApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.insurance_api = IndexerGrpcInsuranceApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.meta_api = IndexerGrpcMetaApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.oracle_api = IndexerGrpcOracleApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.portfolio_api = IndexerGrpcPortfolioApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.spot_api = IndexerGrpcSpotApi( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + + self.account_stream_api = IndexerGrpcAccountStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.auction_stream_api = IndexerGrpcAuctionStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.derivative_stream_api = IndexerGrpcDerivativeStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.meta_stream_api = IndexerGrpcMetaStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.oracle_stream_api = IndexerGrpcOracleStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.portfolio_stream_api = IndexerGrpcPortfolioStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + self.spot_stream_api = IndexerGrpcSpotStream( + channel=self.exchange_channel, + cookie_assistant=network.exchange_cookie_assistant, + ) + + self.explorer_api = IndexerGrpcExplorerApi( + channel=self.explorer_channel, + cookie_assistant=network.explorer_cookie_assistant, + ) + self.explorer_stream_api = IndexerGrpcExplorerStream( + channel=self.explorer_channel, + cookie_assistant=network.explorer_cookie_assistant, + ) + + async def close_exchange_channel(self): + await self.exchange_channel.close() + + async def close_explorer_channel(self): + await self.explorer_channel.close() + + # region account + async def fetch_subaccount_balance(self, subaccount_id: str, denom: str) -> Dict[str, Any]: + return await self.account_api.fetch_subaccount_balance(subaccount_id=subaccount_id, denom=denom) + + async def fetch_subaccounts_list(self, address: str) -> Dict[str, Any]: + return await self.account_api.fetch_subaccounts_list(address=address) + + async def fetch_subaccount_balances_list( + self, subaccount_id: str, denoms: Optional[List[str]] = None + ) -> Dict[str, Any]: + return await self.account_api.fetch_subaccount_balances_list(subaccount_id=subaccount_id, denoms=denoms) + + async def fetch_subaccount_history( + self, + subaccount_id: str, + denom: Optional[str] = None, + transfer_types: Optional[List[str]] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.account_api.fetch_subaccount_history( + subaccount_id=subaccount_id, + denom=denom, + transfer_types=transfer_types, + pagination=pagination, + ) + + async def fetch_subaccount_order_summary( + self, + subaccount_id: str, + market_id: Optional[str] = None, + order_direction: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.account_api.fetch_subaccount_order_summary( + subaccount_id=subaccount_id, + market_id=market_id, + order_direction=order_direction, + ) + + async def fetch_order_states( + self, + spot_order_hashes: Optional[List[str]] = None, + derivative_order_hashes: Optional[List[str]] = None, + ) -> Dict[str, Any]: + return await self.account_api.fetch_order_states( + spot_order_hashes=spot_order_hashes, + derivative_order_hashes=derivative_order_hashes, + ) + + async def fetch_portfolio(self, account_address: str) -> Dict[str, Any]: + return await self.account_api.fetch_portfolio(account_address=account_address) + + async def fetch_rewards(self, account_address: Optional[str] = None, epoch: Optional[int] = None) -> Dict[str, Any]: + return await self.account_api.fetch_rewards(account_address=account_address, epoch=epoch) + + async def listen_subaccount_balance_updates( + self, + subaccount_id: str, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + denoms: Optional[List[str]] = None, + ): + await self.account_stream_api.stream_subaccount_balance( + subaccount_id=subaccount_id, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + denoms=denoms, + ) + + # endregion + + # region auction + async def fetch_auction(self, round: int) -> Dict[str, Any]: + return await self.auction_api.fetch_auction(round=round) + + async def fetch_auctions(self) -> Dict[str, Any]: + return await self.auction_api.fetch_auctions() + + async def fetch_inj_burnt(self) -> Dict[str, Any]: + return await self.auction_api.fetch_inj_burnt() + + async def listen_bids_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.auction_stream_api.stream_bids( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + # endregion + + # region derivative + async def fetch_derivative_market(self, market_id: str) -> Dict[str, Any]: + return await self.derivative_api.fetch_market(market_id=market_id) + + async def fetch_derivative_markets( + self, + market_statuses: Optional[List[str]] = None, + quote_denom: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_markets( + market_statuses=market_statuses, + quote_denom=quote_denom, + ) + + async def fetch_derivative_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + return await self.derivative_api.fetch_orderbook_v2(market_id=market_id, depth=depth) + + async def fetch_derivative_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + return await self.derivative_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) + + async def fetch_derivative_orders( + self, + market_ids: Optional[List[str]] = None, + order_side: Optional[str] = None, + subaccount_id: Optional[str] = None, + is_conditional: Optional[str] = None, + order_type: Optional[str] = None, + include_inactive: Optional[bool] = None, + subaccount_total_orders: Optional[bool] = None, + trade_id: Optional[str] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_orders( + market_ids=market_ids, + order_side=order_side, + subaccount_id=subaccount_id, + is_conditional=is_conditional, + order_type=order_type, + include_inactive=include_inactive, + subaccount_total_orders=subaccount_total_orders, + trade_id=trade_id, + cid=cid, + pagination=pagination, + ) + + async def fetch_derivative_orders_history( + self, + subaccount_id: Optional[str] = None, + market_ids: Optional[List[str]] = None, + order_types: Optional[List[str]] = None, + direction: Optional[str] = None, + is_conditional: Optional[str] = None, + state: Optional[str] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + active_markets_only: Optional[bool] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_orders_history( + subaccount_id=subaccount_id, + market_ids=market_ids, + order_types=order_types, + direction=direction, + is_conditional=is_conditional, + state=state, + execution_types=execution_types, + trade_id=trade_id, + active_markets_only=active_markets_only, + cid=cid, + pagination=pagination, + ) + + async def fetch_derivative_trades( + self, + market_ids: Optional[List[str]] = None, + subaccount_ids: Optional[List[str]] = None, + execution_side: Optional[str] = None, + direction: Optional[str] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + account_address: Optional[str] = None, + cid: Optional[str] = None, + fee_recipient: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_trades_v2( + market_ids=market_ids, + subaccount_ids=subaccount_ids, + execution_side=execution_side, + direction=direction, + execution_types=execution_types, + trade_id=trade_id, + account_address=account_address, + cid=cid, + fee_recipient=fee_recipient, + pagination=pagination, + ) + + async def fetch_derivative_positions_v2( + self, + market_ids: Optional[List[str]] = None, + subaccount_id: Optional[str] = None, + direction: Optional[str] = None, + subaccount_total_positions: Optional[bool] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_positions_v2( + market_ids=market_ids, + subaccount_id=subaccount_id, + direction=direction, + subaccount_total_positions=subaccount_total_positions, + pagination=pagination, + ) + + async def fetch_derivative_liquidable_positions( + self, + market_id: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_liquidable_positions( + market_id=market_id, + pagination=pagination, + ) + + async def fetch_derivative_subaccount_orders_list( + self, + subaccount_id: str, + market_id: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_subaccount_orders_list( + subaccount_id=subaccount_id, market_id=market_id, pagination=pagination + ) + + async def fetch_derivative_subaccount_trades_list( + self, + subaccount_id: str, + market_id: Optional[str] = None, + execution_type: Optional[str] = None, + direction: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_subaccount_trades_list( + subaccount_id=subaccount_id, + market_id=market_id, + execution_type=execution_type, + direction=direction, + pagination=pagination, + ) + + async def fetch_funding_payments( + self, + market_ids: Optional[List[str]] = None, + subaccount_id: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_funding_payments( + market_ids=market_ids, subaccount_id=subaccount_id, pagination=pagination + ) + + async def fetch_funding_rates( + self, + market_id: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_funding_rates(market_id=market_id, pagination=pagination) + + async def fetch_binary_options_markets( + self, + market_status: Optional[str] = None, + quote_denom: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.derivative_api.fetch_binary_options_markets( + market_status=market_status, + quote_denom=quote_denom, + pagination=pagination, + ) + + async def fetch_binary_options_market(self, market_id: str) -> Dict[str, Any]: + return await self.derivative_api.fetch_binary_options_market(market_id=market_id) + + async def fetch_open_interest(self, market_ids: List[str]) -> Dict[str, Any]: + return await self.derivative_api.fetch_open_interest(market_ids=market_ids) + + async def listen_derivative_orders_history_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + subaccount_id: Optional[str] = None, + market_id: Optional[str] = None, + order_types: Optional[List[str]] = None, + direction: Optional[str] = None, + state: Optional[str] = None, + execution_types: Optional[List[str]] = None, + ): + await self.derivative_stream_api.stream_orders_history( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + subaccount_id=subaccount_id, + market_id=market_id, + order_types=order_types, + direction=direction, + state=state, + execution_types=execution_types, + ) + + async def listen_derivative_market_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + ): + await self.derivative_stream_api.stream_market( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + ) + + async def listen_derivative_orderbook_snapshots( + self, + market_ids: List[str], + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.derivative_stream_api.stream_orderbook_v2( + market_ids=market_ids, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + async def listen_derivative_orderbook_updates( + self, + market_ids: List[str], + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.derivative_stream_api.stream_orderbook_update( + market_ids=market_ids, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + async def listen_derivative_orders_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + order_side: Optional[str] = None, + subaccount_id: Optional[PaginationOption] = None, + is_conditional: Optional[str] = None, + order_type: Optional[str] = None, + include_inactive: Optional[bool] = None, + subaccount_total_orders: Optional[bool] = None, + trade_id: Optional[str] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ): + await self.derivative_stream_api.stream_orders( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + order_side=order_side, + subaccount_id=subaccount_id, + is_conditional=is_conditional, + order_type=order_type, + include_inactive=include_inactive, + subaccount_total_orders=subaccount_total_orders, + trade_id=trade_id, + cid=cid, + pagination=pagination, + ) + + async def listen_derivative_trades_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + execution_side: Optional[str] = None, + direction: Optional[str] = None, + subaccount_ids: Optional[List[str]] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + account_address: Optional[str] = None, + cid: Optional[str] = None, + fee_recipient: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ): + return await self.derivative_stream_api.stream_trades_v2( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + subaccount_ids=subaccount_ids, + execution_side=execution_side, + direction=direction, + execution_types=execution_types, + trade_id=trade_id, + account_address=account_address, + cid=cid, + fee_recipient=fee_recipient, + pagination=pagination, + ) + + async def listen_derivative_positions_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + subaccount_ids: Optional[List[str]] = None, + ): + """ + This method is deprecated and will be removed soon. Please use `listen_derivative_positions_v2_updates` instead. + """ + warn( + "This method is deprecated. Use listen_derivative_positions_v2_updates instead", + DeprecationWarning, + stacklevel=2, + ) + await self.derivative_stream_api.stream_positions( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + subaccount_ids=subaccount_ids, + ) + + async def listen_derivative_positions_v2_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + subaccount_id: Optional[str] = None, + market_id: Optional[str] = None, + market_ids: Optional[List[str]] = None, + subaccount_ids: Optional[List[str]] = None, + account_address: Optional[str] = None, + ): + """ + Listen to derivative positions V2 updates. + + :param callback: Callback function to process each update + :param on_end_callback: Optional callback when the stream ends + :param on_status_callback: Optional callback for handling stream status + :param subaccount_id: Optional subaccount ID to filter positions + :param market_id: Optional market ID to filter positions + :param market_ids: Optional list of market IDs to filter positions + :param subaccount_ids: Optional list of subaccount IDs to filter positions + :param account_address: Optional account address to filter positions + """ + await self.derivative_stream_api.stream_positions_v2( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + subaccount_id=subaccount_id, + market_id=market_id, + market_ids=market_ids, + subaccount_ids=subaccount_ids, + account_address=account_address, + ) + + # endregion + + # region insurance + async def fetch_insurance_funds(self) -> Dict[str, Any]: + return await self.insurance_api.fetch_insurance_funds() + + async def fetch_redemptions( + self, + address: Optional[str] = None, + denom: Optional[str] = None, + status: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.insurance_api.fetch_redemptions( + address=address, + denom=denom, + status=status, + ) + + # endregion + + # region meta + async def fetch_ping(self) -> Dict[str, Any]: + return await self.meta_api.fetch_ping() + + async def fetch_version(self) -> Dict[str, Any]: + return await self.meta_api.fetch_version() + + async def fetch_info(self) -> Dict[str, Any]: + return await self.meta_api.fetch_info() + + async def listen_keepalive( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.meta_stream_api.stream_keepalive( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + # endregion + + # region oracle + async def fetch_oracle_price( + self, + base_symbol: Optional[str] = None, + quote_symbol: Optional[str] = None, + oracle_type: Optional[str] = None, + oracle_scale_factor: Optional[int] = None, + ) -> Dict[str, Any]: + return await self.oracle_api.fetch_oracle_price( + base_symbol=base_symbol, + quote_symbol=quote_symbol, + oracle_type=oracle_type, + oracle_scale_factor=oracle_scale_factor, + ) + + def oracle_price_v2_filter( + self, + base_symbol: Optional[str] = None, + quote_symbol: Optional[str] = None, + oracle_type: Optional[str] = None, + oracle_scale_factor: Optional[int] = None, + ) -> exchange_oracle_pb.PricePayloadV2: + return exchange_oracle_pb.PricePayloadV2( + base_symbol=base_symbol, + quote_symbol=quote_symbol, + oracle_type=oracle_type, + oracle_scale_factor=oracle_scale_factor, + ) + + async def fetch_oracle_price_v2(self, filters: List[exchange_oracle_pb.PricePayloadV2]) -> Dict[str, Any]: + return await self.oracle_api.fetch_oracle_price_v2(filters=filters) + + async def fetch_oracle_list(self) -> Dict[str, Any]: + return await self.oracle_api.fetch_oracle_list() + + async def listen_oracle_prices_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + base_symbol: Optional[str] = None, + quote_symbol: Optional[str] = None, + oracle_type: Optional[str] = None, + ): + await self.oracle_stream_api.stream_oracle_prices( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + base_symbol=base_symbol, + quote_symbol=quote_symbol, + oracle_type=oracle_type, + ) + + # endregion + + # region portfolio + async def fetch_account_portfolio_balances( + self, account_address: str, usd: Optional[bool] = None + ) -> Dict[str, Any]: + return await self.portfolio_api.fetch_account_portfolio_balances(account_address=account_address, usd=usd) + + async def listen_account_portfolio_updates( + self, + account_address: str, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + subaccount_id: Optional[str] = None, + update_type: Optional[str] = None, + ): + await self.portfolio_stream_api.stream_account_portfolio( + account_address=account_address, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + subaccount_id=subaccount_id, + update_type=update_type, + ) + + # endregion + + # region spot + async def fetch_spot_market(self, market_id: str) -> Dict[str, Any]: + return await self.spot_api.fetch_market(market_id=market_id) + + async def fetch_spot_markets( + self, + market_statuses: Optional[List[str]] = None, + base_denom: Optional[str] = None, + quote_denom: Optional[str] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_markets( + market_statuses=market_statuses, base_denom=base_denom, quote_denom=quote_denom + ) + + async def fetch_spot_orderbook_v2(self, market_id: str, depth: int) -> Dict[str, Any]: + return await self.spot_api.fetch_orderbook_v2(market_id=market_id, depth=depth) + + async def fetch_spot_orderbooks_v2(self, market_ids: List[str], depth: int) -> Dict[str, Any]: + return await self.spot_api.fetch_orderbooks_v2(market_ids=market_ids, depth=depth) + + async def fetch_spot_orders( + self, + market_ids: Optional[List[str]] = None, + order_side: Optional[str] = None, + subaccount_id: Optional[str] = None, + include_inactive: Optional[bool] = None, + subaccount_total_orders: Optional[bool] = None, + trade_id: Optional[str] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_orders( + market_ids=market_ids, + order_side=order_side, + subaccount_id=subaccount_id, + include_inactive=include_inactive, + subaccount_total_orders=subaccount_total_orders, + trade_id=trade_id, + cid=cid, + pagination=pagination, + ) + + async def fetch_spot_orders_history( + self, + subaccount_id: Optional[str] = None, + market_ids: Optional[List[str]] = None, + order_types: Optional[List[str]] = None, + direction: Optional[str] = None, + state: Optional[str] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + active_markets_only: Optional[bool] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_orders_history( + subaccount_id=subaccount_id, + market_ids=market_ids, + order_types=order_types, + direction=direction, + state=state, + execution_types=execution_types, + trade_id=trade_id, + active_markets_only=active_markets_only, + cid=cid, + pagination=pagination, + ) + + async def fetch_spot_trades( + self, + market_ids: Optional[List[str]] = None, + subaccount_ids: Optional[List[str]] = None, + execution_side: Optional[str] = None, + direction: Optional[str] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + account_address: Optional[str] = None, + cid: Optional[str] = None, + fee_recipient: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_trades_v2( + market_ids=market_ids, + subaccount_ids=subaccount_ids, + execution_side=execution_side, + direction=direction, + execution_types=execution_types, + trade_id=trade_id, + account_address=account_address, + cid=cid, + fee_recipient=fee_recipient, + pagination=pagination, + ) + + async def fetch_spot_subaccount_orders_list( + self, + subaccount_id: str, + market_id: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_subaccount_orders_list( + subaccount_id=subaccount_id, market_id=market_id, pagination=pagination + ) + + async def fetch_spot_subaccount_trades_list( + self, + subaccount_id: str, + market_id: Optional[str] = None, + execution_type: Optional[str] = None, + direction: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.spot_api.fetch_subaccount_trades_list( + subaccount_id=subaccount_id, + market_id=market_id, + execution_type=execution_type, + direction=direction, + pagination=pagination, + ) + + async def listen_spot_markets_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + ): + await self.spot_stream_api.stream_markets( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + ) + + async def listen_spot_orderbook_snapshots( + self, + market_ids: List[str], + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.spot_stream_api.stream_orderbook_v2( + market_ids=market_ids, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + async def listen_spot_orderbook_updates( + self, + market_ids: List[str], + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.spot_stream_api.stream_orderbook_update( + market_ids=market_ids, + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + async def listen_spot_orders_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + order_side: Optional[str] = None, + subaccount_id: Optional[PaginationOption] = None, + include_inactive: Optional[bool] = None, + subaccount_total_orders: Optional[bool] = None, + trade_id: Optional[str] = None, + cid: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ): + await self.spot_stream_api.stream_orders( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + order_side=order_side, + subaccount_id=subaccount_id, + include_inactive=include_inactive, + subaccount_total_orders=subaccount_total_orders, + trade_id=trade_id, + cid=cid, + pagination=pagination, + ) + + async def listen_spot_orders_history_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + subaccount_id: Optional[str] = None, + market_id: Optional[str] = None, + order_types: Optional[List[str]] = None, + direction: Optional[str] = None, + state: Optional[str] = None, + execution_types: Optional[List[str]] = None, + ): + await self.spot_stream_api.stream_orders_history( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + subaccount_id=subaccount_id, + market_id=market_id, + order_types=order_types, + direction=direction, + state=state, + execution_types=execution_types, + ) + + async def listen_spot_trades_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + market_ids: Optional[List[str]] = None, + subaccount_ids: Optional[List[str]] = None, + execution_side: Optional[str] = None, + direction: Optional[str] = None, + execution_types: Optional[List[str]] = None, + trade_id: Optional[str] = None, + account_address: Optional[str] = None, + cid: Optional[str] = None, + fee_recipient: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ): + await self.spot_stream_api.stream_trades_v2( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + market_ids=market_ids, + subaccount_ids=subaccount_ids, + execution_side=execution_side, + direction=direction, + execution_types=execution_types, + trade_id=trade_id, + account_address=account_address, + cid=cid, + fee_recipient=fee_recipient, + pagination=pagination, + ) + + # endregion + + # region explorer + async def fetch_tx_by_tx_hash(self, tx_hash: str) -> Dict[str, Any]: + return await self.explorer_api.fetch_tx_by_tx_hash(tx_hash=tx_hash) + + async def fetch_account_txs( + self, + address: str, + before: Optional[int] = None, + after: Optional[int] = None, + message_type: Optional[str] = None, + module: Optional[str] = None, + from_number: Optional[int] = None, + to_number: Optional[int] = None, + status: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_account_txs( + address=address, + before=before, + after=after, + message_type=message_type, + module=module, + from_number=from_number, + to_number=to_number, + status=status, + pagination=pagination, + ) + + async def fetch_contract_txs_v2( + self, + address: str, + height: Optional[int] = None, + token: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_contract_txs_v2( + address=address, + height=height, + token=token, + pagination=pagination, + ) + + async def fetch_blocks( + self, + before: Optional[int] = None, + after: Optional[int] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_blocks(before=before, after=after, pagination=pagination) + + async def fetch_block(self, block_id: str) -> Dict[str, Any]: + return await self.explorer_api.fetch_block(block_id=block_id) + + async def fetch_validators(self) -> Dict[str, Any]: + return await self.explorer_api.fetch_validators() + + async def fetch_validator(self, address: str) -> Dict[str, Any]: + return await self.explorer_api.fetch_validator(address) + + async def fetch_validator_uptime(self, address: str) -> Dict[str, Any]: + return await self.explorer_api.fetch_validator_uptime(address=address) + + async def fetch_txs( + self, + before: Optional[int] = None, + after: Optional[int] = None, + message_type: Optional[str] = None, + module: Optional[str] = None, + from_number: Optional[int] = None, + to_number: Optional[int] = None, + status: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_txs( + before=before, + after=after, + message_type=message_type, + module=module, + from_number=from_number, + to_number=to_number, + status=status, + pagination=pagination, + ) + + async def fetch_peggy_deposit_txs( + self, + sender: Optional[str] = None, + receiver: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_peggy_deposit_txs( + sender=sender, + receiver=receiver, + pagination=pagination, + ) + + async def fetch_peggy_withdrawal_txs( + self, + sender: Optional[str] = None, + receiver: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_peggy_withdrawal_txs( + sender=sender, + receiver=receiver, + pagination=pagination, + ) + + async def fetch_ibc_transfer_txs( + self, + sender: Optional[str] = None, + receiver: Optional[str] = None, + src_channel: Optional[str] = None, + src_port: Optional[str] = None, + dest_channel: Optional[str] = None, + dest_port: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_ibc_transfer_txs( + sender=sender, + receiver=receiver, + src_channel=src_channel, + src_port=src_port, + dest_channel=dest_channel, + dest_port=dest_port, + pagination=pagination, + ) + + async def fetch_wasm_codes( + self, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_wasm_codes( + pagination=pagination, + ) + + async def fetch_wasm_code_by_id( + self, + code_id: int, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_wasm_code_by_id(code_id=code_id) + + async def fetch_wasm_contracts( + self, + code_id: Optional[int] = None, + assets_only: Optional[bool] = None, + label: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_wasm_contracts( + code_id=code_id, + assets_only=assets_only, + label=label, + pagination=pagination, + ) + + async def fetch_wasm_contract_by_address( + self, + address: str, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_wasm_contract_by_address(address=address) + + async def fetch_cw20_balance( + self, + address: str, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_cw20_balance( + address=address, + pagination=pagination, + ) + + async def fetch_relayers( + self, + market_ids: Optional[List[str]] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_relayers( + market_ids=market_ids, + ) + + async def fetch_bank_transfers( + self, + senders: Optional[List[str]] = None, + recipients: Optional[List[str]] = None, + is_community_pool_related: Optional[bool] = None, + address: Optional[List[str]] = None, + per_page: Optional[int] = None, + token: Optional[str] = None, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + return await self.explorer_api.fetch_bank_transfers( + senders=senders, + recipients=recipients, + is_community_pool_related=is_community_pool_related, + address=address, + per_page=per_page, + token=token, + pagination=pagination, + ) + + async def listen_txs_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.explorer_stream_api.stream_txs( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + async def listen_blocks_updates( + self, + callback: Callable, + on_end_callback: Optional[Callable] = None, + on_status_callback: Optional[Callable] = None, + ): + await self.explorer_stream_api.stream_blocks( + callback=callback, + on_end_callback=on_end_callback, + on_status_callback=on_status_callback, + ) + + # endregion 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 cc99c6dc..37475d5a 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 @@ -5,7 +5,8 @@ import pytest from pyinjective.client.chain.grpc_stream.chain_grpc_chain_stream import ChainGrpcChainStream -from pyinjective.composer import Composer +from pyinjective.composer import Composer as ComposerV1 +from pyinjective.composer_v2 import Composer as ComposerV2 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 @@ -202,7 +203,7 @@ async def test_stream( ) network = Network.devnet() - composer = Composer(network=network.string()) + composer = ComposerV1(network=network.string()) api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) events = asyncio.Queue() @@ -589,7 +590,7 @@ async def test_stream_v2( ) network = Network.devnet() - composer = Composer(network=network.string()) + composer = ComposerV2(network=network.string()) api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) events = asyncio.Queue() @@ -599,16 +600,16 @@ async def test_stream_v2( 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() + bank_balances_filter = composer.chain_stream_bank_balances_filter() + subaccount_deposits_filter = composer.chain_stream_subaccount_deposits_filter() + spot_trades_filter = composer.chain_stream_trades_filter() + derivative_trades_filter = composer.chain_stream_trades_filter() + spot_orders_filter = composer.chain_stream_orders_filter() + derivative_orders_filter = composer.chain_stream_orders_filter() + spot_orderbooks_filter = composer.chain_stream_orderbooks_filter() + derivative_orderbooks_filter = composer.chain_stream_orderbooks_filter() + positions_filter = composer.chain_stream_positions_filter() + oracle_price_filter = composer.chain_stream_oracle_price_filter() expected_update = { "blockHeight": str(block_height), diff --git a/tests/core/test_broadcaster.py b/tests/core/test_broadcaster.py index fc688777..f12b81e2 100644 --- a/tests/core/test_broadcaster.py +++ b/tests/core/test_broadcaster.py @@ -7,8 +7,8 @@ import pyinjective.ofac as ofac from pyinjective import PrivateKey -from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer +from pyinjective.async_client_v2 import AsyncClient +from pyinjective.composer_v2 import Composer from pyinjective.core.broadcaster import MsgBroadcasterWithPk, StandardAccountBroadcasterConfig from pyinjective.core.network import Network diff --git a/tests/core/test_chain_formatted_market.py b/tests/core/test_chain_formatted_market.py new file mode 100644 index 00000000..0052c062 --- /dev/null +++ b/tests/core/test_chain_formatted_market.py @@ -0,0 +1,587 @@ +from decimal import Decimal + +from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS +from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.utils.denom import Denom +from tests.model_fixtures.chain_formatted_markets_fixtures import btc_usdt_perp_market # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import first_match_bet_market # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import inj_token # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import inj_usdt_spot_market # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import usdt_perp_token # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import usdt_token # noqa: F401; noqa: F401 + + +class TestSpotMarket: + 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 + ) * inj_usdt_spot_market.min_quantity_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_price_to_chain_format(self, inj_usdt_spot_market: SpotMarket): + original_quantity = Decimal("123.456789") + + 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 + ) * inj_usdt_spot_market.min_price_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_notional_to_chain_format(self, inj_usdt_spot_market: SpotMarket): + original_notional = Decimal("123.456789") + + chain_value = inj_usdt_spot_market.notional_to_chain_format(human_readable_value=original_notional) + notional_decimals = inj_usdt_spot_market.quote_token.decimals + expected_value = original_notional * Decimal(f"1e{notional_decimals}") + expected_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert expected_chain_format_value == chain_value + + def test_convert_quantity_from_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_quantity = Decimal("123.456") + + chain_format_quantity = expected_quantity * Decimal(f"1e{inj_usdt_spot_market.base_token.decimals}") + human_readable_quantity = inj_usdt_spot_market.quantity_from_chain_format(chain_value=chain_format_quantity) + + assert expected_quantity == human_readable_quantity + + def test_convert_price_from_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_price = Decimal("123.456") + + price_decimals = inj_usdt_spot_market.quote_token.decimals - inj_usdt_spot_market.base_token.decimals + chain_format_price = expected_price * Decimal(f"1e{price_decimals}") + human_readable_price = inj_usdt_spot_market.price_from_chain_format(chain_value=chain_format_price) + + assert expected_price == human_readable_price + + def test_convert_notional_from_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_notional = Decimal("123.456") + + notional_decimals = inj_usdt_spot_market.quote_token.decimals + chain_format_notional = expected_notional * Decimal(f"1e{notional_decimals}") + human_readable_notional = inj_usdt_spot_market.notional_from_chain_format(chain_value=chain_format_notional) + + assert expected_notional == human_readable_notional + + def test_convert_quantity_from_extended_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_quantity = Decimal("123.456") + + chain_format_quantity = ( + expected_quantity + * Decimal(f"1e{inj_usdt_spot_market.base_token.decimals}") + * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_quantity = inj_usdt_spot_market.quantity_from_extended_chain_format( + chain_value=chain_format_quantity + ) + + assert expected_quantity == human_readable_quantity + + def test_convert_price_from_extended_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_price = Decimal("123.456") + + price_decimals = inj_usdt_spot_market.quote_token.decimals - inj_usdt_spot_market.base_token.decimals + chain_format_price = ( + expected_price * Decimal(f"1e{price_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_price = inj_usdt_spot_market.price_from_extended_chain_format(chain_value=chain_format_price) + + assert expected_price == human_readable_price + + def test_convert_notional_from_extended_chain_format(self, inj_usdt_spot_market: SpotMarket): + expected_notional = Decimal("123.456") + + notional_decimals = inj_usdt_spot_market.quote_token.decimals + chain_format_notional = ( + expected_notional * Decimal(f"1e{notional_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_notional = inj_usdt_spot_market.notional_from_extended_chain_format( + chain_value=chain_format_notional + ) + + assert expected_notional == human_readable_notional + + +class TestDerivativeMarket: + def test_convert_quantity_to_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + original_quantity = Decimal("123.456789") + + chain_value = btc_usdt_perp_market.quantity_to_chain_format(human_readable_value=original_quantity) + quantized_value = ( + original_quantity // btc_usdt_perp_market.min_quantity_tick_size + ) * btc_usdt_perp_market.min_quantity_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_price_to_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + original_quantity = Decimal("123.456789") + + 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 + ) * btc_usdt_perp_market.min_price_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_margin_to_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + original_quantity = Decimal("123.456789") + + chain_value = btc_usdt_perp_market.margin_to_chain_format(human_readable_value=original_quantity) + margin_decimals = btc_usdt_perp_market.quote_token.decimals + expected_value = original_quantity * Decimal(f"1e{margin_decimals}") + quantized_value = ( + expected_value // btc_usdt_perp_market.min_quantity_tick_size + ) * btc_usdt_perp_market.min_quantity_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_notional_to_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + original_notional = Decimal("123.456789") + + chain_value = btc_usdt_perp_market.notional_to_chain_format(human_readable_value=original_notional) + notional_decimals = btc_usdt_perp_market.quote_token.decimals + expected_value = original_notional * Decimal(f"1e{notional_decimals}") + expected_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert expected_chain_format_value == chain_value + + def test_convert_quantity_from_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_quantity = Decimal("123.456") + + chain_format_quantity = expected_quantity + human_readable_quantity = btc_usdt_perp_market.quantity_from_chain_format(chain_value=chain_format_quantity) + + assert expected_quantity == human_readable_quantity + + def test_convert_price_from_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_price = Decimal("123.456") + + price_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_price = expected_price * Decimal(f"1e{price_decimals}") + human_readable_price = btc_usdt_perp_market.price_from_chain_format(chain_value=chain_format_price) + + assert expected_price == human_readable_price + + def test_convert_margin_from_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_margin = Decimal("123.456") + + price_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_margin = expected_margin * Decimal(f"1e{price_decimals}") + human_readable_margin = btc_usdt_perp_market.margin_from_chain_format(chain_value=chain_format_margin) + + assert expected_margin == human_readable_margin + + def test_convert_notional_from_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_notional = Decimal("123.456") + + notional_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_notional = expected_notional * Decimal(f"1e{notional_decimals}") + human_readable_notional = btc_usdt_perp_market.notional_from_chain_format(chain_value=chain_format_notional) + + assert expected_notional == human_readable_notional + + def test_convert_quantity_from_extended_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_quantity = Decimal("123.456") + + chain_format_quantity = expected_quantity * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + human_readable_quantity = btc_usdt_perp_market.quantity_from_extended_chain_format( + chain_value=chain_format_quantity + ) + + assert expected_quantity == human_readable_quantity + + def test_convert_price_from_extended_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_price = Decimal("123.456") + + price_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_price = ( + expected_price * Decimal(f"1e{price_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_price = btc_usdt_perp_market.price_from_extended_chain_format(chain_value=chain_format_price) + + assert expected_price == human_readable_price + + def test_convert_margin_from_extended_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_margin = Decimal("123.456") + + price_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_margin = ( + expected_margin * Decimal(f"1e{price_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_margin = btc_usdt_perp_market.margin_from_extended_chain_format(chain_value=chain_format_margin) + + assert expected_margin == human_readable_margin + + def test_convert_notional_from_extended_chain_format(self, btc_usdt_perp_market: DerivativeMarket): + expected_notional = Decimal("123.456") + + notional_decimals = btc_usdt_perp_market.quote_token.decimals + chain_format_notional = ( + expected_notional * Decimal(f"1e{notional_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_notional = btc_usdt_perp_market.notional_from_extended_chain_format( + chain_value=chain_format_notional + ) + + assert expected_notional == human_readable_notional + + +class TestBinaryOptionMarket: + def test_convert_quantity_to_chain_format_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + 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( + str(fixed_denom.min_quantity_tick_size) + ) + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_quantity_to_chain_format_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + + chain_value = first_match_bet_market.quantity_to_chain_format( + human_readable_value=original_quantity, + ) + quantized_value = ( + 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}") + + assert quantized_chain_format_value == chain_value + + def test_convert_price_to_chain_format_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_value = first_match_bet_market.price_to_chain_format( + human_readable_value=original_quantity, + 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( + str(fixed_denom.min_price_tick_size) + ) + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_price_to_chain_format_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + + 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 + ) * first_match_bet_market.min_price_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_margin_to_chain_format_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_value = first_match_bet_market.margin_to_chain_format( + human_readable_value=original_quantity, + 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( + str(fixed_denom.min_quantity_tick_size) + ) + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_convert_margin_to_chain_format_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + + 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 + ) * first_match_bet_market.min_quantity_tick_size + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_value == chain_value + + def test_calculate_margin_for_buy_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + original_price = Decimal("0.6789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_value = first_match_bet_market.calculate_margin_in_chain_format( + human_readable_quantity=original_quantity, + human_readable_price=original_price, + is_buy=True, + 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( + str(fixed_denom.min_quantity_tick_size) + ) + quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_margin == chain_value + + def test_calculate_margin_for_buy_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + original_price = Decimal("0.6789") + + chain_value = first_match_bet_market.calculate_margin_in_chain_format( + human_readable_quantity=original_quantity, + human_readable_price=original_price, + is_buy=True, + ) + + 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( + str(first_match_bet_market.min_quantity_tick_size) + ) + quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_margin == chain_value + + def test_calculate_margin_for_sell_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + original_price = Decimal("0.6789") + + chain_value = first_match_bet_market.calculate_margin_in_chain_format( + human_readable_quantity=original_quantity, + human_readable_price=original_price, + is_buy=False, + ) + + 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( + str(first_match_bet_market.min_quantity_tick_size) + ) + quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert quantized_chain_format_margin == chain_value + + def test_convert_notional_to_chain_format(self, first_match_bet_market: BinaryOptionMarket): + original_notional = Decimal("123.456789") + + chain_value = first_match_bet_market.notional_to_chain_format(human_readable_value=original_notional) + notional_decimals = first_match_bet_market.quote_token.decimals + expected_value = original_notional * Decimal(f"1e{notional_decimals}") + expected_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + assert expected_chain_format_value == chain_value + + def test_convert_quantity_from_chain_format_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_formatted_quantity = original_quantity * Decimal(f"1e{fixed_denom.base}") + + human_readable_quantity = first_match_bet_market.quantity_from_chain_format( + chain_value=chain_formatted_quantity, special_denom=fixed_denom + ) + + assert original_quantity == human_readable_quantity + + def test_convert_quantity_from_chain_format_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_quantity = Decimal("123.456789") + + chain_formatted_quantity = original_quantity + + human_readable_quantity = first_match_bet_market.quantity_from_chain_format( + chain_value=chain_formatted_quantity + ) + + assert original_quantity == human_readable_quantity + + def test_convert_price_from_chain_format_with_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_price = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_formatted_price = original_price * Decimal(f"1e{fixed_denom.quote}") + + human_readable_price = first_match_bet_market.price_from_chain_format( + chain_value=chain_formatted_price, special_denom=fixed_denom + ) + + assert original_price == human_readable_price + + def test_convert_price_from_chain_format_without_fixed_denom(self, first_match_bet_market: BinaryOptionMarket): + original_price = Decimal("123.456789") + chain_formatted_price = original_price * Decimal(f"1e{first_match_bet_market.quote_token.decimals}") + + human_readable_price = first_match_bet_market.price_from_chain_format(chain_value=chain_formatted_price) + + assert original_price == human_readable_price + + def test_convert_notional_from_chain_format(self, first_match_bet_market: BinaryOptionMarket): + expected_notional = Decimal("123.456") + + notional_decimals = first_match_bet_market.quote_token.decimals + chain_format_notional = expected_notional * Decimal(f"1e{notional_decimals}") + human_readable_notional = first_match_bet_market.notional_from_chain_format(chain_value=chain_format_notional) + + assert expected_notional == human_readable_notional + + def test_convert_quantity_from_extended_chain_format_with_fixed_denom( + self, first_match_bet_market: BinaryOptionMarket + ): + original_quantity = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_formatted_quantity = ( + original_quantity * Decimal(f"1e{fixed_denom.base}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + + human_readable_quantity = first_match_bet_market.quantity_from_extended_chain_format( + chain_value=chain_formatted_quantity, special_denom=fixed_denom + ) + + assert original_quantity == human_readable_quantity + + def test_convert_quantity_from_extended_chain_format_without_fixed_denom( + self, first_match_bet_market: BinaryOptionMarket + ): + original_quantity = Decimal("123.456789") + + chain_formatted_quantity = original_quantity * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + human_readable_quantity = first_match_bet_market.quantity_from_extended_chain_format( + chain_value=chain_formatted_quantity + ) + + assert original_quantity == human_readable_quantity + + def test_convert_price_from_extended_chain_format_with_fixed_denom( + self, first_match_bet_market: BinaryOptionMarket + ): + original_price = Decimal("123.456789") + fixed_denom = Denom( + description="Fixed denom", + base=2, + quote=4, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, + ) + + chain_formatted_price = ( + original_price * Decimal(f"1e{fixed_denom.quote}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + + human_readable_price = first_match_bet_market.price_from_extended_chain_format( + chain_value=chain_formatted_price, special_denom=fixed_denom + ) + + assert original_price == human_readable_price + + def test_convert_price_from_extended_chain_format_without_fixed_denom( + self, first_match_bet_market: BinaryOptionMarket + ): + original_price = Decimal("123.456789") + chain_formatted_price = ( + original_price + * Decimal(f"1e{first_match_bet_market.quote_token.decimals}") + * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + + human_readable_price = first_match_bet_market.price_from_extended_chain_format( + chain_value=chain_formatted_price + ) + + assert original_price == human_readable_price + + def test_convert_notional_from_extended_chain_format(self, first_match_bet_market: BinaryOptionMarket): + expected_notional = Decimal("123.456") + + notional_decimals = first_match_bet_market.quote_token.decimals + chain_format_notional = ( + expected_notional * Decimal(f"1e{notional_decimals}") * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + ) + human_readable_notional = first_match_bet_market.notional_from_extended_chain_format( + chain_value=chain_format_notional + ) + + assert expected_notional == human_readable_notional diff --git a/tests/core/test_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py index 49858cb5..14bcb555 100644 --- a/tests/core/test_gas_heuristics_gas_limit_estimator.py +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -3,7 +3,7 @@ import pytest -from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer from pyinjective.core.gas_heuristics_gas_limit_estimator import ( BINARY_OPTIONS_MARKET_ORDER_CREATION_GAS_LIMIT, BINARY_OPTIONS_ORDER_CANCELATION_GAS_LIMIT, @@ -28,17 +28,18 @@ GasHeuristicsGasLimitEstimator, ) from pyinjective.core.gas_limit_estimator import ExecGasLimitEstimator -from pyinjective.core.market import BinaryOptionMarket from pyinjective.core.network import Network 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: @@ -46,20 +47,12 @@ class TestGasLimitEstimator: 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_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") + message = basic_composer.msg_send(from_address="from_address", to_address="to_address", amount=1, denom="INJ") estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -68,9 +61,9 @@ def test_estimation_for_message_without_applying_rule(self, basic_composer): 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] + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orders = [ - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -78,7 +71,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): quantity=Decimal("1"), order_type="BUY", ), - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -87,7 +80,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): order_type="BUY", ), ] - message = basic_composer.msg_batch_create_spot_limit_orders_v2(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT @@ -98,23 +91,23 @@ 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( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( 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) + message = composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT @@ -122,9 +115,9 @@ def test_estimation_for_batch_cancel_spot_orders(self): assert (expected_order_gas_limit * 3) == estimator.gas_limit() def test_estimation_for_batch_create_derivative_limit_orders(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orders = [ - basic_composer.create_derivative_order_v2( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -133,7 +126,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose margin=Decimal(3), order_type="BUY", ), - basic_composer.create_derivative_order_v2( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -143,7 +136,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose order_type="SELL", ), ] - message = basic_composer.msg_batch_create_derivative_limit_orders_v2(sender="sender", orders=orders) + message = basic_composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT @@ -154,23 +147,23 @@ 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( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( 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) + message = composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT @@ -178,9 +171,9 @@ def test_estimation_for_batch_cancel_derivative_orders(self): assert (expected_order_gas_limit * 3) == estimator.gas_limit() def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orders = [ - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -188,7 +181,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co quantity=Decimal("1"), order_type="BUY", ), - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -197,7 +190,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co order_type="BUY", ), ] - message = basic_composer.msg_batch_update_orders_v2( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, @@ -211,9 +204,9 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self, basic_co assert (expected_order_gas_limit * 2) == estimator.gas_limit() def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orders = [ - basic_composer.create_derivative_order_v2( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -222,7 +215,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba margin=Decimal(3), order_type="BUY", ), - basic_composer.create_derivative_order_v2( + basic_composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -232,7 +225,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba order_type="SELL", ), ] - message = basic_composer.msg_batch_update_orders_v2( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=orders, spot_orders_to_create=[], @@ -248,27 +241,8 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba 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( + composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -277,7 +251,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t margin=Decimal(3), order_type="BUY", ), - composer.create_binary_options_order_v2( + composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -287,7 +261,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t order_type="SELL", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -305,23 +279,23 @@ 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( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -338,23 +312,23 @@ 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( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -371,23 +345,23 @@ 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( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -405,7 +379,7 @@ 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( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", spot_market_ids_to_cancel_all=[market_id], @@ -426,7 +400,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market( market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", derivative_market_ids_to_cancel_all=[market_id], @@ -448,7 +422,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" composer = Composer(network="testnet") - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", binary_options_market_ids_to_cancel_all=[market_id], @@ -470,7 +444,7 @@ def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_s composer = basic_composer market_id = inj_usdt_spot_market.id - message = composer.msg_create_spot_limit_order_v2( + message = composer.msg_create_spot_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -485,7 +459,7 @@ def test_estimation_for_create_spot_limit_order(self, basic_composer, inj_usdt_s assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_spot_limit_order_v2( + po_order_message = composer.msg_create_spot_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -504,7 +478,7 @@ def test_estimation_for_create_gtb_spot_limit_order(self, basic_composer, inj_us composer = basic_composer market_id = inj_usdt_spot_market.id - message = composer.msg_create_spot_limit_order_v2( + message = composer.msg_create_spot_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -520,7 +494,7 @@ def test_estimation_for_create_gtb_spot_limit_order(self, basic_composer, inj_us assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_spot_limit_order_v2( + po_order_message = composer.msg_create_spot_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -577,7 +551,7 @@ def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_ composer = basic_composer market_id = btc_usdt_perp_market.id - message = composer.msg_create_derivative_limit_order_v2( + message = composer.msg_create_derivative_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -593,7 +567,7 @@ def test_estimation_for_create_derivative_limit_order(self, basic_composer, btc_ assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_derivative_limit_order_v2( + po_order_message = composer.msg_create_derivative_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -613,7 +587,7 @@ def test_estimation_for_create_gtb_derivative_limit_order(self, basic_composer, composer = basic_composer market_id = btc_usdt_perp_market.id - message = composer.msg_create_derivative_limit_order_v2( + message = composer.msg_create_derivative_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -630,7 +604,7 @@ def test_estimation_for_create_gtb_derivative_limit_order(self, basic_composer, assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_derivative_limit_order_v2( + po_order_message = composer.msg_create_derivative_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -677,6 +651,9 @@ def test_estimation_for_cancel_derivative_order(self, basic_composer, btc_usdt_p market_id=market_id, sender="senders", subaccount_id="subaccount_id", + is_buy=True, + is_market_order=False, + is_conditional=False, cid="cid", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -689,7 +666,7 @@ def test_estimation_for_create_binary_options_limit_order(self, basic_composer, composer = basic_composer market_id = first_match_bet_market.id - message = composer.msg_create_binary_options_limit_order_v2( + message = composer.msg_create_binary_options_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -705,7 +682,7 @@ def test_estimation_for_create_binary_options_limit_order(self, basic_composer, assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_binary_options_limit_order_v2( + po_order_message = composer.msg_create_binary_options_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -725,7 +702,7 @@ def test_estimation_for_create_gtb_binary_options_limit_order(self, basic_compos composer = basic_composer market_id = first_match_bet_market.id - message = composer.msg_create_binary_options_limit_order_v2( + message = composer.msg_create_binary_options_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -744,7 +721,7 @@ def test_estimation_for_create_gtb_binary_options_limit_order(self, basic_compos assert expected_gas_cost == estimator.gas_limit() - po_order_message = composer.msg_create_binary_options_limit_order_v2( + po_order_message = composer.msg_create_binary_options_limit_order( market_id=market_id, sender="senders", subaccount_id="subaccount_id", @@ -791,6 +768,9 @@ def test_estimation_for_cancel_binary_options_order(self, basic_composer, first_ market_id=market_id, sender="senders", subaccount_id="subaccount_id", + is_buy=True, + is_market_order=False, + is_conditional=False, cid="cid", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -806,7 +786,7 @@ def test_estimation_for_deposit(self, basic_composer): sender="senders", subaccount_id="subaccount_id", amount=Decimal("10"), - denom=list(composer.tokens.keys())[0], + denom="inj", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -821,7 +801,7 @@ def test_estimation_for_withdraw(self, basic_composer): sender="senders", subaccount_id="subaccount_id", amount=Decimal("10"), - denom=list(composer.tokens.keys())[0], + denom="inj", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -837,7 +817,7 @@ def test_estimation_for_subaccount_transfer(self, basic_composer): source_subaccount_id="subaccount_id", destination_subaccount_id="destination_subaccount_id", amount=Decimal("10"), - denom=list(composer.tokens.keys())[0], + denom="inj", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -853,7 +833,7 @@ def test_estimation_for_external_transfer(self, basic_composer): source_subaccount_id="subaccount_id", destination_subaccount_id="destination_subaccount_id", amount=Decimal("10"), - denom=list(composer.tokens.keys())[0], + denom="inj", ) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -894,9 +874,9 @@ def test_estimation_for_decrease_position_margin(self, basic_composer, btc_usdt_ assert expected_gas_cost == estimator.gas_limit() def test_estimation_for_exec_message(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" orders = [ - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -905,14 +885,14 @@ def test_estimation_for_exec_message(self, basic_composer): order_type="BUY", ), ] - inner_message = basic_composer.msg_batch_update_orders_v2( + inner_message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, derivative_orders_to_cancel=[], spot_orders_to_cancel=[], ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = basic_composer.msg_exec(grantee="grantee", msgs=[inner_message]) estimator = GasHeuristicsGasLimitEstimator.for_message(message=message) @@ -931,7 +911,7 @@ def test_estimation_for_privileged_execute_contract_message(self): def test_estimation_for_execute_contract_message(self): composer = Composer(network="testnet") - message = composer.MsgExecuteContract( + message = composer.msg_execute_contract( sender="", contract="", msg="", @@ -959,7 +939,7 @@ def test_estimation_for_governance_message(self): assert expected_gas_limit == estimator.gas_limit() def test_estimation_for_generic_exchange_message(self, basic_composer): - market_id = list(basic_composer.derivative_markets.keys())[0] + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" message = basic_composer.msg_liquidate_position( sender="sender", market_id=market_id, diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index 73e1a72f..b407697c 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -2,7 +2,8 @@ import pytest -from pyinjective.composer import Composer +from pyinjective.composer import Composer as ComposerV1 +from pyinjective.composer_v2 import Composer as ComposerV2 from pyinjective.core.gas_limit_estimator import ( DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT, DERIVATIVE_ORDER_CREATION_GAS_LIMIT, @@ -33,7 +34,7 @@ class TestGasLimitEstimator: def test_estimation_for_message_without_applying_rule(self): - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") message = composer.msg_send(from_address="from_address", to_address="to_address", amount=1, denom="inj") estimator = GasLimitEstimator.for_message(message=message) @@ -51,8 +52,8 @@ def test_estimation_for_privileged_execute_contract_message(self): assert expected_gas_limit == estimator.gas_limit() def test_estimation_for_execute_contract_message(self): - composer = Composer(network="testnet") - message = composer.MsgExecuteContract( + composer = ComposerV2(network="testnet") + message = composer.msg_execute_contract( sender="", contract="", msg="", @@ -83,7 +84,7 @@ def test_estimation_for_governance_message(self): class TestGasLimitEstimatorForV1ExchangeMessages: @pytest.fixture def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( + composer = ComposerV1( 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}, @@ -437,7 +438,7 @@ def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self, basic_ def test_estimation_for_batch_update_orders_to_cancel_all_for_spot_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV1(network="testnet") message = composer.msg_batch_update_orders( sender="senders", @@ -457,7 +458,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_spot_market(self): def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV1(network="testnet") message = composer.msg_batch_update_orders( sender="senders", @@ -477,7 +478,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market( def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV1(network="testnet") message = composer.msg_batch_update_orders( sender="senders", @@ -498,7 +499,7 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar def test_estimation_for_exec_message(self, basic_composer): market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - basic_composer.create_spot_order_v2( + basic_composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -507,14 +508,14 @@ def test_estimation_for_exec_message(self, basic_composer): order_type="BUY", ), ] - inner_message = basic_composer.msg_batch_update_orders_v2( + inner_message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, derivative_orders_to_cancel=[], spot_orders_to_cancel=[], ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = basic_composer.msg_exec(grantee="grantee", msgs=[inner_message]) estimator = GasLimitEstimator.for_message(message=message) @@ -548,9 +549,9 @@ def test_estimation_for_generic_exchange_message(self, basic_composer): class TestGasLimitEstimatorForV2ExchangeMessages: def test_estimation_for_batch_create_spot_limit_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -558,7 +559,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -567,7 +568,7 @@ def test_estimation_for_batch_create_spot_limit_orders(self): order_type="BUY", ), ] - message = composer.msg_batch_create_spot_limit_orders_v2(sender="sender", orders=orders) + message = composer.msg_batch_create_spot_limit_orders(sender="sender", orders=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CREATION_GAS_LIMIT @@ -577,25 +578,25 @@ def test_estimation_for_batch_create_spot_limit_orders(self): def test_estimation_for_batch_cancel_spot_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( 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) + message = 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 @@ -605,9 +606,9 @@ def test_estimation_for_batch_cancel_spot_orders(self): def test_estimation_for_batch_create_derivative_limit_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_derivative_order_v2( + composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -616,7 +617,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.create_derivative_order_v2( + composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -626,7 +627,7 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): order_type="SELL", ), ] - message = composer.msg_batch_create_derivative_limit_orders_v2(sender="sender", orders=orders) + message = composer.msg_batch_create_derivative_limit_orders(sender="sender", orders=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT @@ -636,25 +637,25 @@ def test_estimation_for_batch_create_derivative_limit_orders(self): def test_estimation_for_batch_cancel_derivative_orders(self): spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( 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) + message = 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 @@ -664,9 +665,9 @@ def test_estimation_for_batch_cancel_derivative_orders(self): def test_estimation_for_batch_update_orders_to_create_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -674,7 +675,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): quantity=Decimal("1"), order_type="BUY", ), - composer.create_spot_order_v2( + composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -683,7 +684,7 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): order_type="BUY", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=orders, @@ -699,9 +700,9 @@ def test_estimation_for_batch_update_orders_to_create_spot_orders(self): def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_derivative_order_v2( + composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -710,7 +711,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): margin=Decimal(3), order_type="BUY", ), - composer.create_derivative_order_v2( + composer.derivative_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -720,7 +721,7 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): order_type="SELL", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=orders, spot_orders_to_create=[], @@ -736,28 +737,10 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self): 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 + composer = ComposerV2(network="testnet") + orders = [ - composer.create_binary_options_order_v2( + composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -766,7 +749,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t margin=Decimal(3), order_type="BUY", ), - composer.create_binary_options_order_v2( + composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -776,7 +759,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t order_type="SELL", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -793,25 +776,25 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -827,25 +810,25 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -861,25 +844,25 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.create_order_data_without_mask_v2( + composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -896,9 +879,9 @@ def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): def test_estimation_for_batch_update_orders_to_cancel_all_for_spot_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", spot_market_ids_to_cancel_all=[market_id], @@ -916,9 +899,9 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_spot_market(self): def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", derivative_market_ids_to_cancel_all=[market_id], @@ -936,9 +919,9 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_derivative_market( def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_market(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") - message = composer.msg_batch_update_orders_v2( + message = composer.msg_batch_update_orders( sender="senders", subaccount_id="subaccount_id", binary_options_market_ids_to_cancel_all=[market_id], @@ -956,9 +939,9 @@ def test_estimation_for_batch_update_orders_to_cancel_all_for_binary_options_mar def test_estimation_for_exec_message(self): market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + composer = ComposerV2(network="testnet") orders = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -967,14 +950,14 @@ def test_estimation_for_exec_message(self): order_type="BUY", ), ] - inner_message = composer.msg_batch_update_orders_v2( + inner_message = composer.msg_batch_update_orders( 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]) + message = composer.msg_exec(grantee="grantee", msgs=[inner_message]) estimator = GasLimitEstimator.for_message(message=message) @@ -988,8 +971,8 @@ def test_estimation_for_exec_message(self): ) def test_estimation_for_generic_exchange_message(self): - composer = Composer(network="testnet") - message = composer.msg_create_spot_limit_order_v2( + composer = ComposerV2(network="testnet") + message = composer.msg_create_spot_limit_order( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", diff --git a/tests/core/test_message_based_transaction_fee_calculator.py b/tests/core/test_message_based_transaction_fee_calculator.py index 33428bc7..970391b6 100644 --- a/tests/core/test_message_based_transaction_fee_calculator.py +++ b/tests/core/test_message_based_transaction_fee_calculator.py @@ -4,8 +4,8 @@ import pytest from pyinjective import Transaction -from pyinjective.async_client import AsyncClient -from pyinjective.composer import Composer +from pyinjective.async_client_v2 import AsyncClient +from pyinjective.composer_v2 import Composer from pyinjective.core.broadcaster import MessageBasedTransactionFeeCalculator from pyinjective.core.gas_limit_estimator import ( DefaultGasLimitEstimator, @@ -55,7 +55,7 @@ async def test_gas_fee_for_execute_contract_message(self): gas_price=5_000_000, ) - message = composer.MsgExecuteContract( + message = composer.msg_execute_contract( sender="", contract="", msg="", @@ -125,7 +125,7 @@ async def test_gas_fee_for_exchange_message(self): gas_price=5_000_000, ) - message = composer.msg_create_spot_limit_order_v2( + message = composer.msg_create_spot_limit_order( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -155,7 +155,7 @@ async def test_gas_fee_for_msg_exec_message(self): gas_price=5_000_000, ) - inner_message = composer.msg_create_spot_limit_order_v2( + inner_message = composer.msg_create_spot_limit_order( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -164,7 +164,7 @@ async def test_gas_fee_for_msg_exec_message(self): quantity=Decimal("0.01"), order_type="BUY", ) - message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.msg_exec(grantee="grantee", msgs=[inner_message]) transaction = Transaction() transaction.with_messages(message) @@ -190,7 +190,7 @@ async def test_gas_fee_for_two_messages_in_one_transaction(self): gas_price=5_000_000, ) - inner_message = composer.msg_create_spot_limit_order_v2( + inner_message = composer.msg_create_spot_limit_order( sender="sender", market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", @@ -199,7 +199,7 @@ async def test_gas_fee_for_two_messages_in_one_transaction(self): quantity=Decimal("0.01"), order_type="BUY", ) - message = composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.msg_exec(grantee="grantee", msgs=[inner_message]) send_message = composer.msg_send(from_address="address", to_address="to_address", amount=1, denom="INJ") diff --git a/tests/model_fixtures/chain_formatted_markets_fixtures.py b/tests/model_fixtures/chain_formatted_markets_fixtures.py new file mode 100644 index 00000000..c595fe2b --- /dev/null +++ b/tests/model_fixtures/chain_formatted_markets_fixtures.py @@ -0,0 +1,75 @@ +from decimal import Decimal + +import pytest + +from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from tests.model_fixtures.markets_fixtures import inj_token # 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 + + +@pytest.fixture +def inj_usdt_spot_market(inj_token, usdt_token): + market = SpotMarket( + id="0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0", + status="active", + ticker="INJ/USDT", + base_token=inj_token, + quote_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"), + ) + + return market + + +@pytest.fixture +def btc_usdt_perp_market(usdt_perp_token): + market = DerivativeMarket( + id="0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", + status="active", + ticker="BTC/USDT PERP", + oracle_base="BTC", + oracle_quote=usdt_perp_token.symbol, + oracle_type="bandibc", + oracle_scale_factor=6, + initial_margin_ratio=Decimal("0.095"), + maintenance_margin_ratio=Decimal("0.025"), + quote_token=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_quantity_tick_size=Decimal("0.0001"), + min_notional=Decimal("0.000001"), + ) + + return market + + +@pytest.fixture +def first_match_bet_market(usdt_token): + market = BinaryOptionMarket( + id="0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957", + 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.000001"), + ) + + return market diff --git a/tests/test_async_client.py b/tests/test_async_client.py index 6b11ab6b..3a09b33e 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -2,7 +2,7 @@ import pytest -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient 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 @@ -57,7 +57,7 @@ async def test_sync_timeout_height_logs_exception(self, caplog, tendermint_servi None, ) assert found_log is not None - assert found_log[0] == "pyinjective.async_client.AsyncClient" + assert found_log[0] == "pyinjective.async_client_v2.AsyncClient" assert found_log[1] == logging.DEBUG @pytest.mark.asyncio @@ -77,7 +77,7 @@ async def test_get_account_logs_exception(self, caplog, tendermint_servicer): None, ) assert found_log is not None - assert found_log[0] == "pyinjective.async_client.AsyncClient" + assert found_log[0] == "pyinjective.async_client_v2.AsyncClient" assert found_log[1] == logging.DEBUG @pytest.mark.asyncio diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py deleted file mode 100644 index 10adaa79..00000000 --- a/tests/test_async_client_deprecation_warnings.py +++ /dev/null @@ -1,1007 +0,0 @@ -from warnings import catch_warnings - -import pytest - -from pyinjective.async_client import AsyncClient -from pyinjective.core.network import Network -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 tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer -from tests.client.chain.stream_grpc.configurable_chain_stream_query_servicer import ConfigurableChainStreamQueryServicer - - -@pytest.fixture -def chain_stream_servicer(): - return ConfigurableChainStreamQueryServicer() - - -@pytest.fixture -def exchange_servicer(): - return ConfigurableExchangeQueryServicer() - - -class TestAsyncClientDeprecationWarnings: - @pytest.mark.asyncio - async def test_listen_chain_stream_updates_deprecation_warning( - self, - chain_stream_servicer, - ): - async def callback(event): - pass - - client = AsyncClient( - network=Network.local(), - ) - 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.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 listen_chain_stream_v2_updates instead" - ) - - @pytest.mark.asyncio - async def test_fetch_aggregate_volume_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.aggregate_volume_responses.append(exchange_query_pb.QueryAggregateVolumeResponse()) - - with catch_warnings(record=True) as all_warnings: - 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_aggregate_volume_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_aggregate_volumes_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_aggregate_volumes_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_aggregate_market_volume_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.aggregate_market_volume_responses.append( - exchange_query_pb.QueryAggregateMarketVolumeResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_aggregate_market_volume_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_aggregate_market_volumes_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_aggregate_market_volumes_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_spot_markets_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_spot_markets_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_spot_market_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_spot_market_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_full_spot_markets_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_full_spot_markets_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_full_spot_markets_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_full_spot_market_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_spot_orderbook_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.spot_orderbook_responses.append(exchange_query_pb.QuerySpotOrderbookResponse()) - - with catch_warnings(record=True) as all_warnings: - 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 fetch_chain_spot_orderbook_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_trader_spot_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_trader_spot_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_account_address_spot_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.account_address_spot_orders_responses.append( - exchange_query_pb.QueryAccountAddressSpotOrdersResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_chain_account_address_spot_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_spot_orders_by_hashes_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_spot_orders_by_hashes_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_subaccount_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_subaccount_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_trader_spot_transient_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_trader_spot_transient_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_spot_mid_price_and_tob_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_spot_mid_price_and_tob_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_derivative_mid_price_and_tob_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.derivative_mid_price_and_tob_responses.append( - exchange_query_pb.QueryDerivativeMidPriceAndTOBResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_mid_price_and_tob_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_derivative_orderbook_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_derivative_orderbook_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_trader_derivative_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.trader_derivative_orders_responses.append( - exchange_query_pb.QueryTraderDerivativeOrdersResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_chain_trader_derivative_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_account_address_derivative_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_account_address_derivative_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_derivative_orders_by_hashes_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_derivative_orders_by_hashes_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_trader_derivative_transient_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_trader_derivative_transient_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_derivative_markets_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_derivative_markets_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_derivative_market_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_derivative_market_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_positions_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_positions_v2 instead" - - @pytest.mark.asyncio - async def test_fetch_chain_subaccount_positions_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_subaccount_positions_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_subaccount_position_in_market_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_subaccount_position_in_market_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_subaccount_effective_position_in_market_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_subaccount_effective_position_in_market_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_expiry_futures_market_info_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_chain_expiry_futures_market_info_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_perpetual_market_funding_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_perpetual_market_funding_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_subaccount_order_metadata_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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 fetch_subaccount_order_metadata_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_fee_discount_account_info_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.fee_discount_account_info_responses.append( - exchange_query_pb.QueryFeeDiscountAccountInfoResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_fee_discount_account_info_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_fee_discount_schedule_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_fee_discount_schedule_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_historical_trade_records_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.historical_trade_records_responses.append( - exchange_query_pb.QueryHistoricalTradeRecordsResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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_historical_trade_records_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_market_volatility_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_market_volatility_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_chain_binary_options_markets_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - 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.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_chain_binary_options_markets_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_trader_derivative_conditional_orders_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.trader_derivative_conditional_orders_responses.append( - exchange_query_pb.QueryTraderDerivativeConditionalOrdersResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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 fetch_trader_derivative_conditional_orders_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_l3_derivative_orderbook_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.l3_derivative_orderbook_responses.append( - exchange_query_pb.QueryFullDerivativeOrderbookResponse() - ) - - with catch_warnings(record=True) as all_warnings: - 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 fetch_l3_derivative_orderbook_v2 instead" - ) - - @pytest.mark.asyncio - async def test_fetch_l3_spot_orderbook_deprecation_warning( - self, - exchange_servicer, - ): - client = AsyncClient( - network=Network.local(), - ) - client.chain_exchange_api._stub = exchange_servicer - - exchange_servicer.l3_spot_orderbook_responses.append(exchange_query_pb.QueryFullSpotOrderbookResponse()) - - with catch_warnings(record=True) as all_warnings: - 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) == "This method is deprecated. Use fetch_l3_spot_orderbook_v2 instead" - ) - - @pytest.mark.skip(reason="This test is failing in Windows CI") - @pytest.mark.asyncio - async def test_listen_derivative_positions_updates_deprecation(self): - # Create a mock AsyncClient (you might need to adjust this based on your actual implementation) - client = AsyncClient(network=Network.local()) - - # Expect a DeprecationWarning to be raised - with catch_warnings(record=True) as captured_warnings: - # Mock callback and other required parameters - async def mock_callback(update): - pass - - # Call the deprecated method - await client.listen_derivative_positions_updates( - callback=mock_callback, market_ids=["test_market"], subaccount_ids=["test_subaccount"] - ) - - # Assert that a DeprecationWarning was raised - assert len(captured_warnings) > 0 - assert issubclass(captured_warnings[-1].category, DeprecationWarning) - assert "deprecated. Use listen_derivative_positions_v2_updates" in str(captured_warnings[-1].message) diff --git a/tests/test_composer.py b/tests/test_composer.py index 130b55d8..e137db79 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -7,9 +7,8 @@ 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 pyinjective.proto.injective.permissions.v1beta1 import permissions_pb2 as permissions_pb -from tests.model_fixtures.markets_fixtures import ( # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, @@ -237,12 +236,14 @@ def test_msg_execute_contract_compat(self, basic_composer): def test_msg_deposit(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - amount = 100 - denom = "inj" + amount = Decimal(100) + denom = "INJ" + + token = basic_composer.tokens[denom] - expected_amount = Decimal(str(amount)) + expected_amount = token.chain_formatted_value(human_readable_value=Decimal(amount)) - message = basic_composer.msg_deposit_v2( + message = basic_composer.msg_deposit( sender=sender, subaccount_id=subaccount_id, amount=amount, @@ -254,7 +255,7 @@ def test_msg_deposit(self, basic_composer): "subaccountId": subaccount_id, "amount": { "amount": f"{expected_amount.normalize():f}", - "denom": denom, + "denom": token.denom, }, } dict_message = json_format.MessageToDict( @@ -266,10 +267,14 @@ def test_msg_deposit(self, basic_composer): def test_msg_withdraw(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - amount = 100 - denom = "inj" + amount = Decimal(100) + denom = "INJ" + + token = basic_composer.tokens[denom] - message = basic_composer.msg_withdraw_v2( + expected_amount = token.chain_formatted_value(human_readable_value=Decimal(amount)) + + message = basic_composer.msg_withdraw( sender=sender, subaccount_id=subaccount_id, amount=amount, @@ -280,8 +285,8 @@ def test_msg_withdraw(self, basic_composer): "sender": sender, "subaccountId": subaccount_id, "amount": { - "amount": f"{Decimal(str(amount)):f}", - "denom": denom, + "amount": f"{expected_amount.normalize():f}", + "denom": token.denom, }, } dict_message = json_format.MessageToDict( @@ -293,179 +298,47 @@ 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 = "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7" + base_denom = "INJ" + quote_denom = "USDT" min_price_tick_size = Decimal("0.01") min_quantity_tick_size = Decimal("1") min_notional = Decimal("2") base_decimals = 18 quote_decimals = 6 - message = basic_composer.msg_instant_spot_market_launch_v2( - sender=sender, - ticker=ticker, - base_denom=base_denom, - quote_denom=quote_denom, - 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) + base_token = basic_composer.tokens[base_denom] + quote_token = basic_composer.tokens[quote_denom] - expected_message = { - "sender": sender, - "ticker": ticker, - "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, - always_print_fields_with_no_presence=True, + expected_min_price_tick_size = min_price_tick_size * Decimal( + f"1e{quote_token.decimals - base_token.decimals + ADDITIONAL_CHAIN_FORMAT_DECIMALS}" ) - assert dict_message == expected_message - - def test_msg_instant_perpetual_market_launch(self, basic_composer): - sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - ticker = "BTC/INJ PERP" - quote_denom = "inj" - oracle_base = "BTC" - oracle_quote = "INJ" - oracle_scale_factor = 6 - oracle_type = "Band" - min_price_tick_size = Decimal("0.01") - min_quantity_tick_size = Decimal("1") - maker_fee_rate = Decimal("0.001") - taker_fee_rate = Decimal("-0.002") - initial_margin_ratio = Decimal("0.05") - maintenance_margin_ratio = Decimal("0.03") - min_notional = Decimal("2") - reduce_margin_ratio = Decimal("3") - - 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_reduce_margin_ratio = reduce_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - expected_min_notional = min_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") - - message = basic_composer.msg_instant_perpetual_market_launch_v2( - sender=sender, - ticker=ticker, - quote_denom=quote_denom, - oracle_base=oracle_base, - oracle_quote=oracle_quote, - oracle_scale_factor=oracle_scale_factor, - oracle_type=oracle_type, - maker_fee_rate=maker_fee_rate, - taker_fee_rate=taker_fee_rate, - initial_margin_ratio=initial_margin_ratio, - maintenance_margin_ratio=maintenance_margin_ratio, - reduce_margin_ratio=reduce_margin_ratio, - min_price_tick_size=min_price_tick_size, - min_quantity_tick_size=min_quantity_tick_size, - min_notional=min_notional, + 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}") - expected_message = { - "sender": sender, - "ticker": ticker, - "quoteDenom": quote_denom, - "oracleBase": oracle_base, - "oracleQuote": oracle_quote, - "oracleScaleFactor": oracle_scale_factor, - "oracleType": oracle_type, - "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", - "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", - "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", - "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", - "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", - "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}", - } - dict_message = json_format.MessageToDict( - message=message, - always_print_fields_with_no_presence=True, - ) - assert dict_message == expected_message - - def test_msg_instant_expiry_futures_market_launch(self, basic_composer): - sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - ticker = "BTC/INJ PERP" - quote_denom = "inj" - oracle_base = "BTC" - oracle_quote = "INJ" - oracle_scale_factor = 6 - oracle_type = "Band" - expiry = 1630000000 - min_price_tick_size = Decimal("0.01") - min_quantity_tick_size = Decimal("1") - maker_fee_rate = Decimal("0.001") - taker_fee_rate = Decimal("-0.002") - initial_margin_ratio = Decimal("0.05") - maintenance_margin_ratio = Decimal("0.03") - reduce_margin_ratio = Decimal("3") - min_notional = Decimal("2") - - 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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ratio) - expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) - - message = basic_composer.msg_instant_expiry_futures_market_launch_v2( + message = basic_composer.msg_instant_spot_market_launch( sender=sender, ticker=ticker, + base_denom=base_denom, quote_denom=quote_denom, - oracle_base=oracle_base, - oracle_quote=oracle_quote, - oracle_scale_factor=oracle_scale_factor, - oracle_type=oracle_type, - expiry=expiry, - maker_fee_rate=maker_fee_rate, - taker_fee_rate=taker_fee_rate, - initial_margin_ratio=initial_margin_ratio, - maintenance_margin_ratio=maintenance_margin_ratio, - reduce_margin_ratio=reduce_margin_ratio, 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, ) expected_message = { "sender": sender, "ticker": ticker, - "quoteDenom": quote_denom, - "oracleBase": oracle_base, - "oracleQuote": oracle_quote, - "oracleType": oracle_type, - "oracleScaleFactor": oracle_scale_factor, - "expiry": str(expiry), - "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", - "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", - "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", - "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", - "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", + "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}", + "baseDecimals": base_decimals, + "quoteDecimals": quote_decimals, } dict_message = json_format.MessageToDict( message=message, @@ -483,7 +356,7 @@ def test_spot_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_spot_order_v2( + order = basic_composer.spot_order( market_id=spot_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -492,12 +365,11 @@ def test_spot_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=1234567, ) - 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) + 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_order = { "marketId": spot_market.id, @@ -510,7 +382,6 @@ def test_spot_order(self, basic_composer): }, "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", - "expirationBlock": "1234567", } dict_message = json_format.MessageToDict( message=order, @@ -529,7 +400,7 @@ def test_derivative_order(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_derivative_order_v2( + order = basic_composer.derivative_order( market_id=derivative_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -539,13 +410,12 @@ def test_derivative_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=1234567, ) - 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_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_order = { "marketId": derivative_market.id, @@ -559,7 +429,6 @@ def test_derivative_order(self, basic_composer): "orderType": order_type, "margin": f"{expected_margin.normalize():f}", "triggerPrice": f"{expected_trigger_price.normalize():f}", - "expirationBlock": "1234567", } dict_message = json_format.MessageToDict( message=order, @@ -577,9 +446,8 @@ def test_msg_create_spot_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") - expiration_block = 123456789 - message = basic_composer.msg_create_spot_limit_order_v2( + message = basic_composer.msg_create_spot_limit_order( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -589,14 +457,13 @@ def test_msg_create_spot_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=expiration_block, ) - 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) + 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.v2.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name + assert "injective.exchange.v1beta1.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name expected_message = { "sender": sender, "order": { @@ -610,7 +477,6 @@ def test_msg_create_spot_limit_order(self, basic_composer): }, "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", - "expirationBlock": str(expiration_block), }, } dict_message = json_format.MessageToDict( @@ -630,7 +496,7 @@ def test_msg_batch_create_spot_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_spot_order_v2( + order = basic_composer.spot_order( market_id=spot_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -641,7 +507,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_v2( + message = basic_composer.msg_batch_create_spot_limit_orders( sender=sender, orders=[order], ) @@ -667,7 +533,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_v2( + message = basic_composer.msg_create_spot_market_order( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -679,7 +545,11 @@ def test_msg_create_spot_market_order(self, basic_composer): trigger_price=trigger_price, ) - assert "injective.exchange.v2.MsgCreateSpotMarketOrder" == message.DESCRIPTOR.full_name + 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 expected_message = { "sender": sender, "order": { @@ -687,13 +557,12 @@ def test_msg_create_spot_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "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}", + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", "cid": cid, }, "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", - "expirationBlock": "0", + "triggerPrice": f"{expected_trigger_price.normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -709,7 +578,7 @@ def test_msg_cancel_spot_order(self, basic_composer): order_hash = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" cid = "test_cid" - message = basic_composer.msg_cancel_spot_order_v2( + message = basic_composer.msg_cancel_spot_order( market_id=spot_market.id, sender=sender, subaccount_id=subaccount_id, @@ -735,18 +604,18 @@ def test_msg_batch_cancel_spot_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.create_order_data_without_mask_v2( + order_data = basic_composer.order_data( market_id=spot_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - message = basic_composer.msg_batch_cancel_spot_orders_v2( + message = basic_composer.msg_batch_cancel_spot_orders( sender=sender, orders_data=[order_data], ) - assert "injective.exchange.v2.MsgBatchCancelSpotOrders" == message.DESCRIPTOR.full_name + assert "injective.exchange.v1beta1.MsgBatchCancelSpotOrders" == message.DESCRIPTOR.full_name expected_message = { "sender": sender, "data": [json_format.MessageToDict(message=order_data, always_print_fields_with_no_presence=True)], @@ -767,22 +636,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.create_order_data_without_mask_v2( + spot_order_to_cancel = basic_composer.order_data( market_id=spot_market_id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - derivative_order_to_cancel = basic_composer.create_order_data_without_mask_v2( + derivative_order_to_cancel = basic_composer.order_data( market_id=derivative_market_id, subaccount_id=subaccount_id, order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ) - binary_options_order_to_cancel = basic_composer.create_order_data_without_mask_v2( + binary_options_order_to_cancel = basic_composer.order_data( market_id=binary_options_market_id, subaccount_id=subaccount_id, order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ) - spot_order_to_create = basic_composer.create_spot_order_v2( + spot_order_to_create = basic_composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -792,7 +661,7 @@ def test_msg_batch_update_orders(self, basic_composer): cid="test_cid", trigger_price=Decimal("43.5"), ) - derivative_order_to_create = basic_composer.create_derivative_order_v2( + derivative_order_to_create = basic_composer.derivative_order( market_id=derivative_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -801,7 +670,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.create_binary_options_order_v2( + binary_options_order_to_create = basic_composer.binary_options_order( market_id=binary_options_market_id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -811,7 +680,7 @@ def test_msg_batch_update_orders(self, basic_composer): order_type="BUY", ) - message = basic_composer.msg_batch_update_orders_v2( + message = basic_composer.msg_batch_update_orders( sender=sender, subaccount_id=subaccount_id, spot_market_ids_to_cancel_all=[spot_market_id], @@ -896,9 +765,8 @@ def test_msg_create_derivative_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") - expiration_block = 123456789 - message = basic_composer.msg_create_derivative_limit_order_v2( + message = basic_composer.msg_create_derivative_limit_order( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -909,9 +777,13 @@ def test_msg_create_derivative_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=expiration_block, ) + 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": { @@ -919,14 +791,13 @@ def test_msg_create_derivative_limit_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "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}", + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", "cid": cid, }, - "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "margin": f"{expected_margin.normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", - "expirationBlock": str(expiration_block), + "triggerPrice": f"{expected_trigger_price.normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -946,7 +817,7 @@ def test_msg_batch_create_derivative_limit_orders(self, basic_composer): cid = "test_cid" trigger_price = Decimal("43.5") - order = basic_composer.create_derivative_order_v2( + order = basic_composer.derivative_order( market_id=derivative_market.id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -958,7 +829,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_v2( + message = basic_composer.msg_batch_create_derivative_limit_orders( sender=sender, orders=[order], ) @@ -985,7 +856,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_v2( + message = basic_composer.msg_create_derivative_market_order( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -998,6 +869,11 @@ 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": { @@ -1005,14 +881,13 @@ def test_msg_create_derivative_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "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}", + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", "cid": cid, }, - "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "margin": f"{expected_margin.normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", - "expirationBlock": "0", + "triggerPrice": f"{expected_trigger_price.normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1037,7 +912,7 @@ def test_msg_cancel_derivative_order(self, basic_composer): is_market_order=is_market_order, ) - message = basic_composer.msg_cancel_derivative_order_v2( + message = basic_composer.msg_cancel_derivative_order( market_id=derivative_market.id, sender=sender, subaccount_id=subaccount_id, @@ -1067,13 +942,13 @@ def test_msg_batch_cancel_derivative_orders(self, basic_composer): subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - order_data = basic_composer.create_order_data_without_mask_v2( + order_data = basic_composer.order_data( market_id=derivative_market.id, subaccount_id=subaccount_id, order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", ) - message = basic_composer.msg_batch_cancel_derivative_orders_v2( + message = basic_composer.msg_batch_cancel_derivative_orders( sender=sender, orders_data=[order_data], ) @@ -1095,7 +970,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") @@ -1105,7 +980,17 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): admin = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" min_notional = Decimal("2") - message = basic_composer.msg_instant_binary_options_market_launch_v2( + 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( sender=sender, ticker=ticker, oracle_symbol=oracle_symbol, @@ -1123,10 +1008,6 @@ 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, @@ -1134,15 +1015,15 @@ def test_msg_instant_binary_options_market_launch(self, basic_composer): "oracleProvider": oracle_provider, "oracleType": oracle_type, "oracleScaleFactor": oracle_scale_factor, - "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}", + "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", + "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", "expirationTimestamp": str(expiration_timestamp), "settlementTimestamp": str(settlement_timestamp), "admin": admin, - "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}", + "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}", } dict_message = json_format.MessageToDict( message=message, @@ -1161,9 +1042,8 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): order_type = "BUY" cid = "test_cid" trigger_price = Decimal("43.5") - expiration_block = 123456789 - message = basic_composer.msg_create_binary_options_limit_order_v2( + message = basic_composer.msg_create_binary_options_limit_order( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1174,13 +1054,12 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): order_type=order_type, cid=cid, trigger_price=trigger_price, - expiration_block=expiration_block, ) - 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_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, @@ -1196,7 +1075,6 @@ def test_msg_create_binary_options_limit_order(self, basic_composer): "margin": f"{expected_margin.normalize():f}", "orderType": order_type, "triggerPrice": f"{expected_trigger_price.normalize():f}", - "expirationBlock": str(expiration_block), }, } dict_message = json_format.MessageToDict( @@ -1217,7 +1095,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_v2( + message = basic_composer.msg_create_binary_options_market_order( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1230,6 +1108,11 @@ 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": { @@ -1237,14 +1120,13 @@ def test_msg_create_binary_options_market_order(self, basic_composer): "orderInfo": { "subaccountId": subaccount_id, "feeRecipient": fee_recipient, - "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}", + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", "cid": cid, }, - "margin": f"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "margin": f"{expected_margin.normalize():f}", "orderType": order_type, - "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", - "expirationBlock": "0", + "triggerPrice": f"{expected_trigger_price.normalize():f}", }, } dict_message = json_format.MessageToDict( @@ -1269,7 +1151,7 @@ def test_msg_cancel_derivative_order(self, basic_composer): is_market_order=is_market_order, ) - message = basic_composer.msg_cancel_derivative_order_v2( + message = basic_composer.msg_cancel_derivative_order( market_id=market.id, sender=sender, subaccount_id=subaccount_id, @@ -1298,10 +1180,14 @@ def test_msg_subaccount_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" destination_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000002" - amount = 100 - denom = "inj" + amount = Decimal(100) + denom = "INJ" + + token = basic_composer.tokens[denom] - message = basic_composer.msg_subaccount_transfer_v2( + expected_amount = token.chain_formatted_value(human_readable_value=amount) + + message = basic_composer.msg_subaccount_transfer( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1314,8 +1200,8 @@ def test_msg_subaccount_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Decimal(str(amount)).normalize():f}", - "denom": denom, + "amount": f"{expected_amount.normalize():f}", + "denom": token.denom, }, } dict_message = json_format.MessageToDict( @@ -1328,14 +1214,18 @@ def test_msg_external_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" - amount = 100 - denom = "inj" + amount = Decimal(100) + denom = "INJ" + + token = basic_composer.tokens[denom] - message = basic_composer.msg_external_transfer_v2( + expected_amount = token.chain_formatted_value(human_readable_value=amount) + + message = basic_composer.msg_subaccount_transfer( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, - amount=100, + amount=amount, denom=denom, ) @@ -1344,8 +1234,8 @@ def test_msg_external_transfer(self, basic_composer): "sourceSubaccountId": source_subaccount_id, "destinationSubaccountId": destination_subaccount_id, "amount": { - "amount": f"{Decimal(str(amount)).normalize():f}", - "denom": denom, + "amount": f"{expected_amount.normalize():f}", + "denom": token.denom, }, } dict_message = json_format.MessageToDict( @@ -1358,7 +1248,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.create_derivative_order_v2( + order = basic_composer.derivative_order( market_id=market.id, subaccount_id=subaccount_id, fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", @@ -1368,7 +1258,7 @@ def test_msg_liquidate_position(self, basic_composer): order_type="BUY", ) - message = basic_composer.msg_liquidate_position_v2( + message = basic_composer.msg_liquidate_position( sender=sender, subaccount_id=subaccount_id, market_id=market.id, @@ -1392,7 +1282,7 @@ def test_msg_emergency_settle_market(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" - message = basic_composer.msg_emergency_settle_market_v2( + message = basic_composer.msg_emergency_settle_market( sender=sender, subaccount_id=subaccount_id, market_id=market.id, @@ -1416,9 +1306,9 @@ def test_msg_increase_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) + expected_amount = market.margin_to_chain_format(human_readable_value=amount) - message = basic_composer.msg_increase_position_margin_v2( + message = basic_composer.msg_increase_position_margin( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1446,9 +1336,9 @@ def test_msg_decrease_position_margin(self, basic_composer): destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" amount = Decimal(100) - expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) + expected_amount = market.margin_to_chain_format(human_readable_value=amount) - message = basic_composer.msg_decrease_position_margin_v2( + message = basic_composer.msg_decrease_position_margin( sender=sender, source_subaccount_id=source_subaccount_id, destination_subaccount_id=destination_subaccount_id, @@ -1493,9 +1383,9 @@ def test_msg_admin_update_binary_options_market(self, basic_composer): expiration_timestamp = 1630000000 settlement_timestamp = 1660000000 - expected_settlement_price = Token.convert_value_to_extended_decimal_format(value=settlement_price) + expected_settlement_price = market.price_to_chain_format(human_readable_value=settlement_price) - message = basic_composer.msg_admin_update_binary_options_market_v2( + message = basic_composer.msg_admin_update_binary_options_market( sender=sender, market_id=market.id, status=status, @@ -1526,11 +1416,17 @@ def test_msg_update_spot_market(self, basic_composer): min_quantity_tick_size = Decimal("10") min_notional = Decimal("5") - 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_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}" + ) - message = basic_composer.msg_update_spot_market_v2( + message = basic_composer.msg_update_spot_market( admin=sender, market_id=market.id, new_ticker=new_ticker, @@ -1562,18 +1458,18 @@ def test_msg_update_derivative_market(self, basic_composer): min_notional = Decimal("5") initial_margin_ratio = Decimal("0.05") maintenance_margin_ratio = Decimal("0.009") - reduce_margin_ration = Decimal("3") - 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_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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ration) + 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_v2( + message = basic_composer.msg_update_derivative_market( admin=sender, market_id=market.id, new_ticker=new_ticker, @@ -1582,7 +1478,6 @@ def test_msg_update_derivative_market(self, basic_composer): new_min_notional=min_notional, new_initial_margin_ratio=initial_margin_ratio, new_maintenance_margin_ratio=maintenance_margin_ratio, - new_reduce_margin_ratio=reduce_margin_ration, ) expected_message = { @@ -1594,7 +1489,6 @@ def test_msg_update_derivative_market(self, basic_composer): "newMinNotional": f"{expected_min_notional.normalize():f}", "newInitialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", "newMaintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", - "newReduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", } dict_message = json_format.MessageToDict( message=message, @@ -1654,10 +1548,7 @@ def test_msg_ibc_transfer(self, basic_composer): sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" source_port = "transfer" source_channel = "channel-126" - 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) + token_amount = basic_composer.create_coin_amount(amount=Decimal("0.1"), token_name="INJ") receiver = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" timeout_height = 10 timeout_timestamp = 1630000000 @@ -2022,192 +1913,3 @@ 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 - - def test_msg_create_token_pair(self, basic_composer): - message = basic_composer.msg_create_token_pair( - sender="sender", - bank_denom="denom", - erc20_address="erc20_address", - ) - - expected_message = { - "sender": "sender", - "tokenPair": { - "bankDenom": "denom", - "erc20Address": "erc20_address", - }, - } - - dict_message = json_format.MessageToDict( - message=message, - always_print_fields_with_no_presence=True, - ) - assert dict_message == expected_message - - def test_msg_delete_token_pair(self, basic_composer): - message = basic_composer.msg_delete_token_pair( - sender="sender", - bank_denom="denom", - ) - - expected_message = { - "sender": "sender", - "bankDenom": "denom", - } - - 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 b9d90b53..8e187b0c 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -1,12 +1,10 @@ import warnings -from decimal import Decimal import pytest -from pyinjective.composer import Composer +from pyinjective.composer import Composer as ComposerV1 from pyinjective.core.network import Network -from pyinjective.proto.injective.oracle.v1beta1 import oracle_pb2 as oracle_pb -from tests.model_fixtures.markets_fixtures import ( # noqa: F401 +from tests.model_fixtures.chain_formatted_markets_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, @@ -18,8 +16,8 @@ class TestComposerDeprecationWarnings: @pytest.fixture - def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( + def basic_v1_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): + composer = ComposerV1( 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}, @@ -33,768 +31,196 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return composer - def test_chain_stream_bank_balances_filter_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_composer_v1_msg_bid_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - composer.chain_stream_bank_balances_filter(accounts=["account"]) + composer.MsgBid(sender="sender", bid_amount=1.1, round=2) 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_bank_balances_v2_filter instead" - ) - - def test_chain_stream_subaccount_deposits_filter_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) - - with warnings.catch_warnings(record=True) as all_warnings: - 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 chain_stream_subaccount_deposits_v2_filter instead" - ) - - 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.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 chain_stream_orders_v2_filter instead" - ) - - 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.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" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_bid instead" - def test_chain_stream_oracle_price_filter_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_composer_v1_msg_grant_generic_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - composer.chain_stream_oracle_price_filter() + composer.MsgGrantGeneric(granter="granter", grantee="grantee", msg_type="type", expire_in=1000) 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" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_grant_generic instead" - def test_msg_grant_typed_deprecation_warning(self): - composer = Composer(network=Network.devnet().string()) + def test_composer_v1_msg_exec_deprecation_warning(self): + composer = ComposerV1(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", - ) + composer.MsgExec(grantee="grantee", msgs=[]) 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_typed_msg_grant instead" - - def test_spot_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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", - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_exec instead" - 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_spot_order_v2 instead" + def test_composer_v1_msg_revoke_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - 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", - ) + composer.MsgRevoke(granter="granter", grantee="grantee", msg_type="type") 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 _basic_derivative_order_v2 instead" - ) - - def test_derivative_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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", - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_revoke instead" - 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 create_derivative_order_v2 instead" - ) + def test_composer_v1_msg_send_deprecation_warning(self, basic_v1_composer, inj_usdt_spot_market): + composer = basic_v1_composer + denom = list(composer.tokens.keys())[0] - 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 create_binary_options_order_v2 instead" - ) - - def test_msg_batch_create_spot_limit_orders_deprecation_warning(self, basic_composer): - order = 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", - ) - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_batch_create_spot_limit_orders(sender="sender", orders=[order]) + composer.MsgSend(from_address="from_address", to_address="to_address", amount=1, denom=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 msg_batch_create_spot_limit_orders_v2 instead" - ) - - def test_msg_create_spot_market_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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=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) == 2 - assert ( - str(deprecation_warnings[0].message) - == "This method is deprecated. Use msg_create_spot_market_order_v2 instead" - ) - - 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" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_send 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", - ) + def test_composer_v1_msg_create_insurance_fund_warning(self, basic_v1_composer, usdt_perp_token): + composer = basic_v1_composer + denom = usdt_perp_token.symbol with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_batch_cancel_spot_orders( + composer.MsgCreateInsuranceFund( sender="sender", - orders_data=[order_data], + ticker="ticker", + quote_denom=denom, + oracle_base="oracle_base", + oracle_quote="oracle_quote", + oracle_type=1, + expiry=1, + initial_deposit=1000, ) 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_v2 instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_create_insurance_fund instead" ) - 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="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_composer_v1_msg_underwrite_deprecation_warning(self, basic_v1_composer, inj_usdt_spot_market): + composer = basic_v1_composer + denom = list(composer.tokens.keys())[0] - def test_order_data_without_mask_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.order_data_without_mask( - market_id=list(basic_composer.spot_markets.keys())[0], - subaccount_id="subaccount_id", - order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", - ) + composer.MsgUnderwrite(sender="sender", market_id="market_id", quote_denom=denom, amount=1000) 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_without_mask_v2 instead" - ) - - def test_msg_batch_update_orders_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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_v2 instead" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_underwrite instead" - def test_msg_privileged_execute_contract_deprecation_warning(self, basic_composer): - sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" - contract_address = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" - data = "test_data" - funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" + def test_composer_v1_msg_request_redemption_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_privileged_execute_contract( - sender=sender, - contract_address=contract_address, - data=data, - funds=funds, + composer.MsgRequestRedemption( + sender="sender", market_id="market_id", share_denom="share_denom", amount=1000 ) 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_v2 instead" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_request_redemption instead" - def test_msg_create_derivative_limit_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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=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_derivative_limit_order_v2 instead" - ) - - def test_msg_batch_create_derivative_limit_orders_deprecation_warning(self, basic_composer): - order = 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", - ) + def test_composer_v1_msg_relay_provider_prices_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_batch_create_derivative_limit_orders( - sender="sender", - orders=[order], - ) + composer.MsgRelayProviderPrices(sender="sender", provider="provider", symbols=["symbol"], prices=[1000]) 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_derivative_limit_orders_v2 instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_relay_provider_prices instead" ) - def test_msg_create_derivative_market_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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=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_derivative_market_order_v2 instead" - ) + def test_composer_v1_msg_relay_price_feed_price_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - def test_msg_cancel_derivative_order_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_cancel_derivative_order( - market_id=list(basic_composer.derivative_markets.keys())[0], - sender="sender", - subaccount_id="subaccount_id", - ) + composer.MsgRelayPriceFeedPrice(sender="sender", base=["base"], quote=["quote"], price=["1000"]) 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_v2 instead" + str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_relay_price_feed_price instead" ) - 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", - ) + def test_composer_v1_msg_send_to_eth_deprecation_warning(self, basic_v1_composer, usdt_token): + composer = basic_v1_composer + denom = usdt_token.symbol with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_batch_cancel_derivative_orders( - sender="sender", - orders_data=[order_data], - ) + composer.MsgSendToEth(denom=denom, sender="sender", eth_dest="eth_dest", amount=1000, bridge_fee=1000) 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_v2 instead" - ) - - def test_msg_instant_binary_options_market_launch_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_instant_binary_options_market_launch( - sender="sender", - ticker="ticker", - oracle_symbol="oracle_symbol", - oracle_provider="oracle_provider", - oracle_type="Band", - oracle_scale_factor=6, - 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_v2 instead" - ) - - def test_msg_create_binary_options_market_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - 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=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_market_order_v2 instead" - ) - - def test_msg_cancel_binary_options_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_cancel_binary_options_order( - market_id=list(basic_composer.derivative_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_binary_options_order_v2 instead" - ) - - def test_msg_subaccount_transfer_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_subaccount_transfer( - sender="sender", - 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_subaccount_transfer_v2 instead" - ) - - def test_msg_deposit_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_deposit( - sender="sender", - 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_deposit_v2 instead" - - def test_msg_external_transfer_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_external_transfer( - sender="sender", - 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_v2 instead" - - 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: - basic_composer.MsgCreateInsuranceFund( - sender="sender", - ticker="ticker", - quote_denom="INJ", - oracle_base="oracle_base", - oracle_quote="oracle_quote", - oracle_type=oracle_pb.OracleType.Band, - expiry=-1, - initial_deposit=1, - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_send_to_eth instead" - 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_insurance_fund instead" - ) + def test_composer_v1_msg_delegate_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - def test_msg_send_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.MsgSend( - from_address="from_address", - to_address="to_address", - amount=1, - denom="INJ", + composer.MsgDelegate( + delegator_address="delegator_address", validator_address="validator_address", amount=1000 ) 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" + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_delegate 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", - 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_composer_v1_msg_instantiate_contract_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - 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, + composer.MsgInstantiateContract( + sender="sender", admin="admin", code_id=1, label="label", message=b"message" ) 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, - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_instantiate_contract instead" - 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_spot_market_launch_v2 instead" - ) + def test_composer_v1_msg_execute_contract_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - def test_msg_liquidate_position_deprecation_warning(self, basic_composer): with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_liquidate_position( - sender="sender", - subaccount_id="subaccount_id", - market_id="market_id", - ) + composer.MsgExecuteContract(sender="sender", contract="contract", msg="msg") 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_v2 instead" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_execute_contract instead" - def test_msg_create_spot_limit_order_deprecation_warning(self, basic_composer): - with warnings.catch_warnings(record=True) as all_warnings: - basic_composer.msg_create_spot_limit_order( - market_id=list(basic_composer.spot_markets.keys())[0], - sender="sender", - subaccount_id="subaccount_id", - fee_recipient="fee_recipient", - price=Decimal("1"), - quantity=Decimal("1"), - order_type="BUY", - ) + def test_composer_v1_msg_grant_typed_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - 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", + composer.MsgGrantTyped( + granter="granter", + grantee="grantee", + msg_type="CreateSpotLimitOrderAuthz", + expire_in=1000, subaccount_id="subaccount_id", - market_id="market_id", + market_ids=["market_id"], + spot_markets=["spot_market_id"], + derivative_markets=["derivative_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_emergency_settle_market_v2 instead" - ) - - 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" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_grant_typed 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_composer_v1_msg_vote_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) - 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"), - ) + composer.MsgVote(proposal_id=100, voter="voter", option=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_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: - 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_update_derivative_market_v2 instead" - ) + assert str(deprecation_warnings[0].message) == "This method is deprecated. Use msg_vote instead" diff --git a/tests/test_composer_v2.py b/tests/test_composer_v2.py new file mode 100644 index 00000000..5cf78a3b --- /dev/null +++ b/tests/test_composer_v2.py @@ -0,0 +1,2209 @@ +import json +from decimal import Decimal + +import pytest +from google.protobuf import json_format + +from pyinjective.composer_v2 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 pyinjective.proto.injective.permissions.v1beta1 import permissions_pb2 as permissions_pb + + +class TestComposer: + @pytest.fixture + def inj_usdt_market_id(self): + return "0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0" + + @pytest.fixture + def basic_composer(self): + composer = Composer( + network=Network.devnet().string(), + ) + + return composer + + def test_msg_create_denom(self, basic_composer: Composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subdenom = "inj-test" + name = "Injective Test" + symbol = "INJTEST" + decimals = 18 + allow_admin_burn = True + + message = basic_composer.msg_create_denom( + sender=sender, + subdenom=subdenom, + name=name, + symbol=symbol, + decimals=decimals, + allow_admin_burn=allow_admin_burn, + ) + + expected_message = { + "sender": sender, + "subdenom": subdenom, + "name": name, + "symbol": symbol, + "decimals": decimals, + "allowAdminBurn": allow_admin_burn, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_mint(self, basic_composer: Composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + amount = basic_composer.coin( + amount=1_000_000, + denom="factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", + ) + receiver = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + message = basic_composer.msg_mint( + sender=sender, + amount=amount, + receiver=receiver, + ) + + expected_message = { + "sender": sender, + "amount": { + "amount": str(amount.amount), + "denom": amount.denom, + }, + "receiver": receiver, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_burn(self, basic_composer: Composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + amount = basic_composer.coin( + amount=100, + denom="factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", + ) + burn_from_address = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + message = basic_composer.msg_burn( + sender=sender, + amount=amount, + burn_from_address=burn_from_address, + ) + + expected_message = { + "sender": sender, + "amount": { + "amount": str(amount.amount), + "denom": amount.denom, + }, + "burnFromAddress": burn_from_address, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_set_denom_metadata(self, basic_composer: Composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + description = "Injective Test Token" + subdenom = "inj_test" + denom = "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + token_decimals = 6 + name = "Injective Test" + symbol = "INJTEST" + uri = "http://injective-test.com/icon.jpg" + uri_hash = "" + + message = basic_composer.msg_set_denom_metadata( + sender=sender, + description=description, + denom=denom, + subdenom=subdenom, + token_decimals=token_decimals, + name=name, + symbol=symbol, + uri=uri, + uri_hash=uri_hash, + ) + + expected_message = { + "sender": sender, + "metadata": { + "base": denom, + "denomUnits": [ + { + "denom": denom, + "exponent": 0, + "aliases": [f"micro{subdenom}"], + }, + { + "denom": subdenom, + "exponent": token_decimals, + "aliases": [subdenom], + }, + ], + "description": description, + "name": name, + "symbol": symbol, + "display": subdenom, + "uri": uri, + "uriHash": uri_hash, + "decimals": token_decimals, + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_change_admin(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + denom = "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + new_admin = "inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49" + + message = basic_composer.msg_change_admin( + sender=sender, + denom=denom, + new_admin=new_admin, + ) + + expected_message = { + "sender": sender, + "denom": denom, + "newAdmin": new_admin, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_execute_contract_compat(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + contract = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" + msg = json.dumps({"increment": {}}) + funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" + + message = basic_composer.msg_execute_contract_compat( + sender=sender, + contract=contract, + msg=msg, + funds=funds, + ) + + expected_message = { + "sender": sender, + "contract": contract, + "msg": msg, + "funds": funds, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + + assert dict_message == expected_message + + def test_msg_deposit(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + amount = 100 + denom = "inj" + + expected_amount = Decimal(str(amount)) + + message = basic_composer.msg_deposit( + sender=sender, + subaccount_id=subaccount_id, + amount=amount, + denom=denom, + ) + + expected_message = { + "sender": sender, + "subaccountId": subaccount_id, + "amount": { + "amount": f"{expected_amount.normalize():f}", + "denom": denom, + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_withdraw(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + amount = 100 + denom = "inj" + + message = basic_composer.msg_withdraw( + sender=sender, + subaccount_id=subaccount_id, + amount=amount, + denom=denom, + ) + + expected_message = { + "sender": sender, + "subaccountId": subaccount_id, + "amount": { + "amount": f"{Decimal(str(amount)):f}", + "denom": denom, + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_instant_spot_market_launch(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + ticker = "INJ/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 + + message = basic_composer.msg_instant_spot_market_launch( + sender=sender, + ticker=ticker, + base_denom=base_denom, + quote_denom=quote_denom, + 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_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, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_instant_perpetual_market_launch(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + ticker = "BTC/INJ PERP" + quote_denom = "inj" + oracle_base = "BTC" + oracle_quote = "INJ" + oracle_scale_factor = 6 + oracle_type = "Band" + min_price_tick_size = Decimal("0.01") + min_quantity_tick_size = Decimal("1") + maker_fee_rate = Decimal("0.001") + taker_fee_rate = Decimal("-0.002") + initial_margin_ratio = Decimal("0.05") + maintenance_margin_ratio = Decimal("0.03") + min_notional = Decimal("2") + reduce_margin_ratio = Decimal("3") + + 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_reduce_margin_ratio = reduce_margin_ratio * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + expected_min_notional = min_notional * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + + message = basic_composer.msg_instant_perpetual_market_launch_v2( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_scale_factor=oracle_scale_factor, + oracle_type=oracle_type, + maker_fee_rate=maker_fee_rate, + taker_fee_rate=taker_fee_rate, + initial_margin_ratio=initial_margin_ratio, + maintenance_margin_ratio=maintenance_margin_ratio, + reduce_margin_ratio=reduce_margin_ratio, + min_price_tick_size=min_price_tick_size, + min_quantity_tick_size=min_quantity_tick_size, + min_notional=min_notional, + ) + + expected_message = { + "sender": sender, + "ticker": ticker, + "quoteDenom": quote_denom, + "oracleBase": oracle_base, + "oracleQuote": oracle_quote, + "oracleScaleFactor": oracle_scale_factor, + "oracleType": oracle_type, + "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", + "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", + "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", + "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", + "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}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_instant_expiry_futures_market_launch(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + ticker = "BTC/INJ PERP" + quote_denom = "inj" + oracle_base = "BTC" + oracle_quote = "INJ" + oracle_scale_factor = 6 + oracle_type = "Band" + expiry = 1630000000 + min_price_tick_size = Decimal("0.01") + min_quantity_tick_size = Decimal("1") + maker_fee_rate = Decimal("0.001") + taker_fee_rate = Decimal("-0.002") + initial_margin_ratio = Decimal("0.05") + maintenance_margin_ratio = Decimal("0.03") + reduce_margin_ratio = Decimal("3") + min_notional = Decimal("2") + + 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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ratio) + expected_min_notional = Token.convert_value_to_extended_decimal_format(value=min_notional) + + message = basic_composer.msg_instant_expiry_futures_market_launch_v2( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_scale_factor=oracle_scale_factor, + oracle_type=oracle_type, + expiry=expiry, + maker_fee_rate=maker_fee_rate, + taker_fee_rate=taker_fee_rate, + initial_margin_ratio=initial_margin_ratio, + maintenance_margin_ratio=maintenance_margin_ratio, + reduce_margin_ratio=reduce_margin_ratio, + min_price_tick_size=min_price_tick_size, + min_quantity_tick_size=min_quantity_tick_size, + min_notional=min_notional, + ) + + expected_message = { + "sender": sender, + "ticker": ticker, + "quoteDenom": quote_denom, + "oracleBase": oracle_base, + "oracleQuote": oracle_quote, + "oracleType": oracle_type, + "oracleScaleFactor": oracle_scale_factor, + "expiry": str(expiry), + "makerFeeRate": f"{expected_maker_fee_rate.normalize():f}", + "takerFeeRate": f"{expected_taker_fee_rate.normalize():f}", + "initialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", + "maintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "reduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", + "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}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_spot_order(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + price = Decimal("36.1") + quantity = Decimal("100") + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + order = basic_composer.spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + expiration_block=1234567, + ) + + 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) + + expected_order = { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", + "cid": cid, + }, + "orderType": order_type, + "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": "1234567", + } + dict_message = json_format.MessageToDict( + message=order, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_order + + def test_derivative_order(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + price = Decimal("36.1") + quantity = Decimal("100") + margin = price * quantity + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + order = basic_composer.derivative_order( + 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, + expiration_block=1234567, + ) + + 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_order = { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", + "cid": cid, + }, + "orderType": order_type, + "margin": f"{expected_margin.normalize():f}", + "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": "1234567", + } + dict_message = json_format.MessageToDict( + message=order, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_order + + def test_msg_create_spot_limit_order(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + expiration_block = 123456789 + + message = basic_composer.msg_create_spot_limit_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + expiration_block=expiration_block, + ) + + 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.v2.MsgCreateSpotLimitOrder" == message.DESCRIPTOR.full_name + expected_message = { + "sender": sender, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", + "cid": cid, + }, + "orderType": order_type, + "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": str(expiration_block), + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_batch_create_spot_limit_orders(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + order = basic_composer.spot_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + message = basic_composer.msg_batch_create_spot_limit_orders( + sender=sender, + orders=[order], + ) + + expected_message = { + "sender": sender, + "orders": [json_format.MessageToDict(message=order, always_print_fields_with_no_presence=True)], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_spot_market_order(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + message = basic_composer.msg_create_spot_market_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + assert "injective.exchange.v2.MsgCreateSpotMarketOrder" == message.DESCRIPTOR.full_name + expected_message = { + "sender": sender, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "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"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_cancel_spot_order(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + order_hash = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + cid = "test_cid" + + message = basic_composer.msg_cancel_spot_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + order_hash=order_hash, + cid=cid, + ) + + expected_message = { + "sender": sender, + "marketId": market_id, + "subaccountId": subaccount_id, + "orderHash": order_hash, + "cid": cid, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_batch_cancel_spot_orders(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + + order_data = basic_composer.order_data_without_mask( + market_id=market_id, + subaccount_id=subaccount_id, + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + + message = basic_composer.msg_batch_cancel_spot_orders( + sender=sender, + orders_data=[order_data], + ) + + 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)], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_batch_update_orders(self, basic_composer): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + derivative_market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + binary_options_market_id = "0x00617e128fdc0c0423dd18a1ff454511af14c4db6bdd98005a99cdf8fdbf74e9" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + + spot_order_to_cancel = basic_composer.order_data_without_mask( + market_id=spot_market_id, + subaccount_id=subaccount_id, + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + derivative_order_to_cancel = basic_composer.order_data_without_mask( + market_id=derivative_market_id, + subaccount_id=subaccount_id, + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ) + binary_options_order_to_cancel = basic_composer.order_data_without_mask( + market_id=binary_options_market_id, + subaccount_id=subaccount_id, + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", + ) + spot_order_to_create = basic_composer.spot_order( + market_id=spot_market_id, + subaccount_id=subaccount_id, + fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + price=Decimal("36.1"), + quantity=Decimal("100"), + order_type="BUY", + cid="test_cid", + trigger_price=Decimal("43.5"), + ) + derivative_order_to_create = basic_composer.derivative_order( + market_id=derivative_market_id, + subaccount_id=subaccount_id, + fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + price=Decimal("36.1"), + quantity=Decimal("100"), + margin=Decimal("36.1") * Decimal("100"), + order_type="BUY", + ) + binary_options_order_to_create = basic_composer.binary_options_order( + market_id=binary_options_market_id, + subaccount_id=subaccount_id, + fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + price=Decimal("36.1"), + quantity=Decimal("100"), + margin=Decimal("36.1") * Decimal("100"), + order_type="BUY", + ) + + message = basic_composer.msg_batch_update_orders( + sender=sender, + subaccount_id=subaccount_id, + spot_market_ids_to_cancel_all=[spot_market_id], + derivative_market_ids_to_cancel_all=[derivative_market_id], + spot_orders_to_cancel=[spot_order_to_cancel], + derivative_orders_to_cancel=[derivative_order_to_cancel], + spot_orders_to_create=[spot_order_to_create], + derivative_orders_to_create=[derivative_order_to_create], + binary_options_orders_to_cancel=[binary_options_order_to_cancel], + binary_options_market_ids_to_cancel_all=[binary_options_market_id], + binary_options_orders_to_create=[binary_options_order_to_create], + ) + + expected_message = { + "sender": sender, + "subaccountId": subaccount_id, + "spotMarketIdsToCancelAll": [spot_market_id], + "derivativeMarketIdsToCancelAll": [derivative_market_id], + "spotOrdersToCancel": [ + json_format.MessageToDict(message=spot_order_to_cancel, always_print_fields_with_no_presence=True) + ], + "derivativeOrdersToCancel": [ + json_format.MessageToDict(message=derivative_order_to_cancel, always_print_fields_with_no_presence=True) + ], + "spotOrdersToCreate": [ + json_format.MessageToDict(message=spot_order_to_create, always_print_fields_with_no_presence=True) + ], + "derivativeOrdersToCreate": [ + json_format.MessageToDict(message=derivative_order_to_create, always_print_fields_with_no_presence=True) + ], + "binaryOptionsOrdersToCancel": [ + json_format.MessageToDict( + message=binary_options_order_to_cancel, always_print_fields_with_no_presence=True + ) + ], + "binaryOptionsMarketIdsToCancelAll": [binary_options_market_id], + "binaryOptionsOrdersToCreate": [ + json_format.MessageToDict( + message=binary_options_order_to_create, always_print_fields_with_no_presence=True + ) + ], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_privileged_execute_contract(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + contract_address = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" + data = "test_data" + funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" + + message = basic_composer.msg_privileged_execute_contract( + 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_derivative_limit_order(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + margin = price * quantity + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + expiration_block = 123456789 + + message = basic_composer.msg_create_derivative_limit_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + expiration_block=expiration_block, + ) + + expected_message = { + "sender": sender, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "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"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "orderType": order_type, + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": str(expiration_block), + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_batch_create_derivative_limit_orders(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + order = basic_composer.derivative_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=price * quantity, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + message = basic_composer.msg_batch_create_derivative_limit_orders( + sender=sender, + orders=[order], + ) + + expected_message = { + "sender": sender, + "orders": [json_format.MessageToDict(message=order, always_print_fields_with_no_presence=True)], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_derivative_market_order(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + margin = price * quantity + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + message = basic_composer.msg_create_derivative_market_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + expected_message = { + "sender": sender, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "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"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "orderType": order_type, + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_cancel_derivative_order(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + order_hash = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + cid = "test_cid" + is_conditional = False + is_buy = True + is_market_order = False + + expected_order_mask = basic_composer._order_mask( + is_conditional=is_conditional, + is_buy=is_buy, + is_market_order=is_market_order, + ) + + message = basic_composer.msg_cancel_derivative_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + order_hash=order_hash, + cid=cid, + is_conditional=is_conditional, + is_buy=is_buy, + is_market_order=is_market_order, + ) + + expected_message = { + "sender": sender, + "marketId": market_id, + "subaccountId": subaccount_id, + "orderHash": order_hash, + "orderMask": expected_order_mask, + "cid": cid, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_batch_cancel_derivative_orders(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + + order_data = basic_composer.order_data_without_mask( + market_id=market_id, + subaccount_id=subaccount_id, + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + + message = basic_composer.msg_batch_cancel_derivative_orders( + sender=sender, + orders_data=[order_data], + ) + + expected_message = { + "sender": sender, + "data": [json_format.MessageToDict(message=order_data, always_print_fields_with_no_presence=True)], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_instant_binary_options_market_launch(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + ticker = "B2500/INJ" + oracle_symbol = "B2500_1/INJ" + oracle_provider = "Injective" + oracle_scale_factor = 6 + oracle_type = "Band" + quote_denom = "inj" + min_price_tick_size = Decimal("0.01") + min_quantity_tick_size = Decimal("1") + maker_fee_rate = Decimal("0.001") + taker_fee_rate = Decimal("-0.002") + expiration_timestamp = 1630000000 + settlement_timestamp = 1660000000 + admin = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + min_notional = Decimal("2") + + message = basic_composer.msg_instant_binary_options_market_launch( + sender=sender, + ticker=ticker, + oracle_symbol=oracle_symbol, + oracle_provider=oracle_provider, + oracle_type=oracle_type, + oracle_scale_factor=oracle_scale_factor, + maker_fee_rate=maker_fee_rate, + taker_fee_rate=taker_fee_rate, + expiration_timestamp=expiration_timestamp, + settlement_timestamp=settlement_timestamp, + admin=admin, + quote_denom=quote_denom, + min_price_tick_size=min_price_tick_size, + min_quantity_tick_size=min_quantity_tick_size, + 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, + "oracleSymbol": oracle_symbol, + "oracleProvider": oracle_provider, + "oracleType": oracle_type, + "oracleScaleFactor": oracle_scale_factor, + "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_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, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_binary_options_limit_order(self, basic_composer): + market_id = "0x767e1542fbc111e88901e223e625a4a8eb6d630c96884bbde672e8bc874075bb" + + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + margin = price * quantity + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + expiration_block = 123456789 + + message = basic_composer.msg_create_binary_options_limit_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + expiration_block=expiration_block, + ) + + 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, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "price": f"{expected_price.normalize():f}", + "quantity": f"{expected_quantity.normalize():f}", + "cid": cid, + }, + "margin": f"{expected_margin.normalize():f}", + "orderType": order_type, + "triggerPrice": f"{expected_trigger_price.normalize():f}", + "expirationBlock": str(expiration_block), + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_binary_options_market_order(self, basic_composer): + market_id = "0x767e1542fbc111e88901e223e625a4a8eb6d630c96884bbde672e8bc874075bb" + + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + price = Decimal("36.1") + quantity = Decimal("100") + margin = price * quantity + order_type = "BUY" + cid = "test_cid" + trigger_price = Decimal("43.5") + + message = basic_composer.msg_create_binary_options_market_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + fee_recipient=fee_recipient, + price=price, + quantity=quantity, + margin=margin, + order_type=order_type, + cid=cid, + trigger_price=trigger_price, + ) + + expected_message = { + "sender": sender, + "order": { + "marketId": market_id, + "orderInfo": { + "subaccountId": subaccount_id, + "feeRecipient": fee_recipient, + "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"{Token.convert_value_to_extended_decimal_format(value=margin).normalize():f}", + "orderType": order_type, + "triggerPrice": f"{Token.convert_value_to_extended_decimal_format(value=trigger_price).normalize():f}", + "expirationBlock": "0", + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_cancel_derivative_order(self, basic_composer): + market_id = "0x767e1542fbc111e88901e223e625a4a8eb6d630c96884bbde672e8bc874075bb" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + order_hash = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" + cid = "test_cid" + is_conditional = False + is_buy = True + is_market_order = False + + expected_order_mask = basic_composer._order_mask( + is_conditional=is_conditional, + is_buy=is_buy, + is_market_order=is_market_order, + ) + + message = basic_composer.msg_cancel_derivative_order( + market_id=market_id, + sender=sender, + subaccount_id=subaccount_id, + order_hash=order_hash, + cid=cid, + is_conditional=is_conditional, + is_buy=is_buy, + is_market_order=is_market_order, + ) + + expected_message = { + "sender": sender, + "marketId": market_id, + "subaccountId": subaccount_id, + "orderHash": order_hash, + "orderMask": expected_order_mask, + "cid": cid, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_subaccount_transfer(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + destination_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000002" + amount = 100 + denom = "inj" + + message = basic_composer.msg_subaccount_transfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=amount, + denom=denom, + ) + + expected_message = { + "sender": sender, + "sourceSubaccountId": source_subaccount_id, + "destinationSubaccountId": destination_subaccount_id, + "amount": { + "amount": f"{Decimal(str(amount)).normalize():f}", + "denom": denom, + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_external_transfer(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" + amount = 100 + denom = "inj" + + message = basic_composer.msg_external_transfer( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + amount=100, + denom=denom, + ) + + expected_message = { + "sender": sender, + "sourceSubaccountId": source_subaccount_id, + "destinationSubaccountId": destination_subaccount_id, + "amount": { + "amount": f"{Decimal(str(amount)).normalize():f}", + "denom": denom, + }, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_liquidate_position(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + order = basic_composer.derivative_order( + market_id=market_id, + subaccount_id=subaccount_id, + fee_recipient="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + price=Decimal("36.1"), + quantity=Decimal("100"), + margin=Decimal("36.1") * Decimal("100"), + order_type="BUY", + ) + + message = basic_composer.msg_liquidate_position( + sender=sender, + subaccount_id=subaccount_id, + market_id=market_id, + order=order, + ) + + expected_message = { + "sender": sender, + "subaccountId": subaccount_id, + "marketId": market_id, + "order": json_format.MessageToDict(message=order, always_print_fields_with_no_presence=True), + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_emergency_settle_market(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + + message = basic_composer.msg_emergency_settle_market( + sender=sender, + subaccount_id=subaccount_id, + market_id=market_id, + ) + + expected_message = { + "sender": sender, + "subaccountId": subaccount_id, + "marketId": market_id, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_increase_position_margin(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" + amount = Decimal(100) + + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) + + message = basic_composer.msg_increase_position_margin( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + market_id=market_id, + amount=amount, + ) + + expected_message = { + "sender": sender, + "sourceSubaccountId": source_subaccount_id, + "destinationSubaccountId": destination_subaccount_id, + "marketId": market_id, + "amount": f"{expected_amount.normalize():f}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_decrease_position_margin(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + source_subaccount_id = "0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001" + destination_subaccount_id = "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" + amount = Decimal(100) + + expected_amount = Token.convert_value_to_extended_decimal_format(value=amount) + + message = basic_composer.msg_decrease_position_margin( + sender=sender, + source_subaccount_id=source_subaccount_id, + destination_subaccount_id=destination_subaccount_id, + market_id=market_id, + amount=amount, + ) + + expected_message = { + "sender": sender, + "sourceSubaccountId": source_subaccount_id, + "destinationSubaccountId": destination_subaccount_id, + "marketId": market_id, + "amount": f"{expected_amount.normalize():f}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_rewards_opt_out(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + + message = basic_composer.msg_rewards_opt_out( + sender=sender, + ) + + expected_message = { + "sender": sender, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_admin_update_binary_options_market(self, basic_composer): + market_id = "0x767e1542fbc111e88901e223e625a4a8eb6d630c96884bbde672e8bc874075bb" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + status = "Paused" + settlement_price = Decimal("100.5") + expiration_timestamp = 1630000000 + settlement_timestamp = 1660000000 + + expected_settlement_price = Token.convert_value_to_extended_decimal_format(value=settlement_price) + + message = basic_composer.msg_admin_update_binary_options_market( + sender=sender, + market_id=market_id, + status=status, + settlement_price=settlement_price, + expiration_timestamp=expiration_timestamp, + settlement_timestamp=settlement_timestamp, + ) + + expected_message = { + "sender": sender, + "marketId": market_id, + "settlementPrice": f"{expected_settlement_price.normalize():f}", + "expirationTimestamp": str(expiration_timestamp), + "settlementTimestamp": str(settlement_timestamp), + "status": status, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_update_spot_market(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + new_ticker = "NEW/TICKER" + min_price_tick_size = Decimal("0.0009") + min_quantity_tick_size = Decimal("10") + min_notional = Decimal("5") + + 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( + admin=sender, + market_id=market_id, + new_ticker=new_ticker, + new_min_price_tick_size=min_price_tick_size, + new_min_quantity_tick_size=min_quantity_tick_size, + new_min_notional=min_notional, + ) + + expected_message = { + "admin": sender, + "marketId": market_id, + "newTicker": new_ticker, + "newMinPriceTickSize": f"{expected_min_price_tick_size.normalize():f}", + "newMinQuantityTickSize": f"{expected_min_quantity_tick_size.normalize():f}", + "newMinNotional": f"{expected_min_notional.normalize():f}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_update_derivative_market(self, basic_composer): + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + new_ticker = "NEW/TICKER" + min_price_tick_size = Decimal("0.0009") + min_quantity_tick_size = Decimal("10") + min_notional = Decimal("5") + initial_margin_ratio = Decimal("0.05") + maintenance_margin_ratio = Decimal("0.009") + reduce_margin_ration = Decimal("3") + + 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_reduce_margin_ratio = Token.convert_value_to_extended_decimal_format(value=reduce_margin_ration) + + message = basic_composer.msg_update_derivative_market( + admin=sender, + market_id=market_id, + new_ticker=new_ticker, + new_min_price_tick_size=min_price_tick_size, + new_min_quantity_tick_size=min_quantity_tick_size, + new_min_notional=min_notional, + new_initial_margin_ratio=initial_margin_ratio, + new_maintenance_margin_ratio=maintenance_margin_ratio, + new_reduce_margin_ratio=reduce_margin_ration, + ) + + expected_message = { + "admin": sender, + "marketId": market_id, + "newTicker": new_ticker, + "newMinPriceTickSize": f"{expected_min_price_tick_size.normalize():f}", + "newMinQuantityTickSize": f"{expected_min_quantity_tick_size.normalize():f}", + "newMinNotional": f"{expected_min_notional.normalize():f}", + "newInitialMarginRatio": f"{expected_initial_margin_ratio.normalize():f}", + "newMaintenanceMarginRatio": f"{expected_maintenance_margin_ratio.normalize():f}", + "newReduceMarginRatio": f"{expected_reduce_margin_ratio.normalize():f}", + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_authorize_stake_grants(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + amount = Decimal("100") + grant_authorization = basic_composer.create_grant_authorization( + grantee="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", + amount=amount, + ) + + message = basic_composer.msg_authorize_stake_grants( + sender=sender, + grants=[grant_authorization], + ) + + expected_amount = amount * Decimal(f"1e{INJ_DECIMALS}") + expected_message = { + "sender": sender, + "grants": [ + { + "grantee": grant_authorization.grantee, + "amount": str(int(expected_amount)), + } + ], + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_activate_stake_grant(self, basic_composer): + sender = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + granter = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + + message = basic_composer.msg_activate_stake_grant( + sender=sender, + granter=granter, + ) + + expected_message = { + "sender": sender, + "granter": granter, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_ibc_transfer(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + source_port = "transfer" + source_channel = "channel-126" + 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 + memo = "memo" + + message = basic_composer.msg_ibc_transfer( + source_port=source_port, + source_channel=source_channel, + token_amount=token_amount, + sender=sender, + receiver=receiver, + timeout_height=timeout_height, + timeout_timestamp=timeout_timestamp, + memo=memo, + ) + + expected_message = { + "sourcePort": source_port, + "sourceChannel": source_channel, + "token": { + "amount": "100000000000000000", + "denom": "inj", + }, + "sender": sender, + "receiver": receiver, + "timeoutHeight": {"revisionNumber": str(timeout_height), "revisionHeight": str(timeout_height)}, + "timeoutTimestamp": str(timeout_timestamp), + "memo": memo, + } + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_create_namespace(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + denom = "inj" + contract_hook = "contrachook" + permissions_role1 = basic_composer.permissions_role( + name="role1", + role_id=1, + permissions=5, + ) + permissions_role2 = basic_composer.permissions_role( + name="role2", + role_id=2, + permissions=6, + ) + actor_roles1 = basic_composer.permissions_actor_roles( + actor="actor1", + roles=["role1"], + ) + actor_roles2 = basic_composer.permissions_actor_roles( + actor="actor2", + roles=["role2"], + ) + role_manager1 = basic_composer.permissions_role_manager( + manager="manager1", + roles=["role1"], + ) + role_manager2 = basic_composer.permissions_role_manager( + manager="manager2", + roles=["role2"], + ) + policy_status1 = basic_composer.permissions_policy_status( + action=basic_composer.PERMISSIONS_ACTION["MINT"], + is_disabled=False, + is_sealed=True, + ) + policy_status2 = basic_composer.permissions_policy_status( + action=basic_composer.PERMISSIONS_ACTION["SEND"] | basic_composer.PERMISSIONS_ACTION["BURN"], + is_disabled=True, + is_sealed=False, + ) + policy_manager_capability1 = basic_composer.permissions_policy_manager_capability( + manager="manager1", + action=basic_composer.PERMISSIONS_ACTION["MINT"], + can_disable=False, + can_seal=True, + ) + policy_manager_capability2 = basic_composer.permissions_policy_manager_capability( + manager="manager2", + action=basic_composer.PERMISSIONS_ACTION["SEND"] | basic_composer.PERMISSIONS_ACTION["BURN"], + can_disable=True, + can_seal=False, + ) + + message = basic_composer.msg_create_namespace( + sender=sender, + denom=denom, + contract_hook=contract_hook, + role_permissions=[permissions_role1, permissions_role2], + actor_roles=[actor_roles1, actor_roles2], + role_managers=[role_manager1, role_manager2], + policy_statuses=[policy_status1, policy_status2], + policy_manager_capabilities=[policy_manager_capability1, policy_manager_capability2], + ) + + expected_message = { + "sender": sender, + "namespace": { + "denom": denom, + "contractHook": contract_hook, + "rolePermissions": [ + { + "name": permissions_role1.name, + "roleId": permissions_role1.role_id, + "permissions": permissions_role1.permissions, + }, + { + "name": permissions_role2.name, + "roleId": permissions_role2.role_id, + "permissions": permissions_role2.permissions, + }, + ], + "actorRoles": [ + { + "actor": actor_roles1.actor, + "roles": actor_roles1.roles, + }, + { + "actor": actor_roles2.actor, + "roles": actor_roles2.roles, + }, + ], + "roleManagers": [ + { + "manager": role_manager1.manager, + "roles": role_manager1.roles, + }, + { + "manager": role_manager2.manager, + "roles": role_manager2.roles, + }, + ], + "policyStatuses": [ + { + "action": permissions_pb.Action.Name(policy_status1.action), + "isDisabled": policy_status1.is_disabled, + "isSealed": policy_status1.is_sealed, + }, + { + "action": policy_status2.action, + "isDisabled": policy_status2.is_disabled, + "isSealed": policy_status2.is_sealed, + }, + ], + "policyManagerCapabilities": [ + { + "manager": policy_manager_capability1.manager, + "action": permissions_pb.Action.Name(policy_manager_capability1.action), + "canDisable": policy_manager_capability1.can_disable, + "canSeal": policy_manager_capability1.can_seal, + }, + { + "manager": policy_manager_capability2.manager, + "action": policy_manager_capability2.action, + "canDisable": policy_manager_capability2.can_disable, + "canSeal": policy_manager_capability2.can_seal, + }, + ], + }, + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_update_namespace(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + denom = "inj" + contract_hook = "contracthook" + permissions_role1 = basic_composer.permissions_role( + name="role1", + role_id=1, + permissions=5, + ) + permissions_role2 = basic_composer.permissions_role( + name="role2", + role_id=2, + permissions=6, + ) + role_manager1 = basic_composer.permissions_role_manager( + manager="manager1", + roles=["role1"], + ) + role_manager2 = basic_composer.permissions_role_manager( + manager="manager2", + roles=["role2"], + ) + policy_status1 = basic_composer.permissions_policy_status( + action=basic_composer.PERMISSIONS_ACTION["MINT"], + is_disabled=False, + is_sealed=True, + ) + policy_status2 = basic_composer.permissions_policy_status( + action=basic_composer.PERMISSIONS_ACTION["SEND"] | basic_composer.PERMISSIONS_ACTION["BURN"], + is_disabled=True, + is_sealed=False, + ) + policy_manager_capability1 = basic_composer.permissions_policy_manager_capability( + manager="manager1", + action=basic_composer.PERMISSIONS_ACTION["MINT"], + can_disable=False, + can_seal=True, + ) + policy_manager_capability2 = basic_composer.permissions_policy_manager_capability( + manager="manager2", + action=basic_composer.PERMISSIONS_ACTION["SEND"] | basic_composer.PERMISSIONS_ACTION["BURN"], + can_disable=True, + can_seal=False, + ) + + message = basic_composer.msg_update_namespace( + sender=sender, + denom=denom, + contract_hook=contract_hook, + role_permissions=[permissions_role1, permissions_role2], + role_managers=[role_manager1, role_manager2], + policy_statuses=[policy_status1, policy_status2], + policy_manager_capabilities=[policy_manager_capability1, policy_manager_capability2], + ) + + expected_message = { + "sender": sender, + "denom": denom, + "contractHook": { + "newValue": contract_hook, + }, + "rolePermissions": [ + { + "name": permissions_role1.name, + "roleId": permissions_role1.role_id, + "permissions": permissions_role1.permissions, + }, + { + "name": permissions_role2.name, + "roleId": permissions_role2.role_id, + "permissions": permissions_role2.permissions, + }, + ], + "roleManagers": [ + { + "manager": role_manager1.manager, + "roles": role_manager1.roles, + }, + { + "manager": role_manager2.manager, + "roles": role_manager2.roles, + }, + ], + "policyStatuses": [ + { + "action": permissions_pb.Action.Name(policy_status1.action), + "isDisabled": policy_status1.is_disabled, + "isSealed": policy_status1.is_sealed, + }, + { + "action": policy_status2.action, + "isDisabled": policy_status2.is_disabled, + "isSealed": policy_status2.is_sealed, + }, + ], + "policyManagerCapabilities": [ + { + "manager": policy_manager_capability1.manager, + "action": permissions_pb.Action.Name(policy_manager_capability1.action), + "canDisable": policy_manager_capability1.can_disable, + "canSeal": policy_manager_capability1.can_seal, + }, + { + "manager": policy_manager_capability2.manager, + "action": policy_manager_capability2.action, + "canDisable": policy_manager_capability2.can_disable, + "canSeal": policy_manager_capability2.can_seal, + }, + ], + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_update_actor_roles(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + denom = "inj" + role_actors1 = basic_composer.permissions_role_actors( + role="role1", + actors=["actor1"], + ) + role_actors2 = basic_composer.permissions_role_actors( + role="role2", + actors=["actor2"], + ) + role_actors3 = basic_composer.permissions_role_actors( + role="role3", + actors=["actor3"], + ) + role_actors4 = basic_composer.permissions_role_actors( + role="role4", + actors=["actor4"], + ) + + message = basic_composer.msg_update_actor_roles( + sender=sender, + denom=denom, + role_actors_to_add=[role_actors1, role_actors2], + role_actors_to_revoke=[role_actors3, role_actors4], + ) + + expected_message = { + "sender": sender, + "denom": denom, + "roleActorsToAdd": [ + { + "role": role_actors1.role, + "actors": role_actors1.actors, + }, + { + "role": role_actors2.role, + "actors": role_actors2.actors, + }, + ], + "roleActorsToRevoke": [ + { + "role": role_actors3.role, + "actors": role_actors3.actors, + }, + { + "role": role_actors4.role, + "actors": role_actors4.actors, + }, + ], + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_claim_voucher(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + denom = "inj" + message = basic_composer.msg_claim_voucher( + sender=sender, + denom=denom, + ) + + expected_message = { + "sender": sender, + "denom": denom, + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_order_data_without_mask(self, basic_composer): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + + order_data = basic_composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000", + ) + + expected_message = { + "marketId": market_id, + "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(self, basic_composer): + sender = "inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0" + contract_address = "inj1ady3s7whq30l4fx8sj3x6muv5mx4dfdlcpv8n7" + data = "test_data" + funds = "100inj,420peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7" + + message = basic_composer.msg_privileged_execute_contract( + 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 + + def test_msg_create_token_pair(self, basic_composer): + message = basic_composer.msg_create_token_pair( + sender="sender", + bank_denom="denom", + erc20_address="erc20_address", + ) + + expected_message = { + "sender": "sender", + "tokenPair": { + "bankDenom": "denom", + "erc20Address": "erc20_address", + }, + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message + + def test_msg_delete_token_pair(self, basic_composer): + message = basic_composer.msg_delete_token_pair( + sender="sender", + bank_denom="denom", + ) + + expected_message = { + "sender": "sender", + "bankDenom": "denom", + } + + dict_message = json_format.MessageToDict( + message=message, + always_print_fields_with_no_presence=True, + ) + assert dict_message == expected_message diff --git a/tests/test_orderhash.py b/tests/test_orderhash.py index 7e21c7f5..2ce99be1 100644 --- a/tests/test_orderhash.py +++ b/tests/test_orderhash.py @@ -1,7 +1,7 @@ from decimal import Decimal from pyinjective import PrivateKey -from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer from pyinjective.core.network import Network from pyinjective.orderhash import OrderHashManager @@ -24,7 +24,7 @@ def test_spot_order_hash(self, requests_mock): fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -32,7 +32,7 @@ def test_spot_order_hash(self, requests_mock): quantity=Decimal("0.01"), order_type="BUY", ), - composer.create_spot_order_v2( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, From 3131ef806c4e87fa60687aa8003952107a6f03a4 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 16 Jun 2025 17:50:28 -0300 Subject: [PATCH 25/35] feat: Created v2 versions for AsyncClient and Composer to support the Exchange module V2 queries and types. Updated examples and tests. --- CHANGELOG.md | 2 +- Makefile | 2 +- README.md | 56 ++++ buf.gen.yaml | 4 +- .../erc20/query/1_AllTokenPairs.py | 8 +- pyinjective/async_client.py | 6 + pyinjective/async_client_v2.py | 4 +- .../client/chain/grpc/chain_grpc_erc20_api.py | 15 +- .../indexer/grpc/indexer_grpc_explorer_api.py | 9 +- pyinjective/indexer_client.py | 6 + pyinjective/ofac.json | 1 + .../proto/exchange/event_provider_api_pb2.py | 84 ++--- .../exchange/event_provider_api_pb2_grpc.py | 44 +++ .../exchange/injective_accounts_rpc_pb2.py | 44 +-- .../injective_derivative_exchange_rpc_pb2.py | 84 ++--- .../exchange/injective_explorer_rpc_pb2.py | 302 +++++++++--------- .../injective_explorer_rpc_pb2_grpc.py | 44 +++ .../injective/erc20/v1beta1/params_pb2.py | 9 +- .../injective/erc20/v1beta1/query_pb2.py | 28 +- .../injective/evm/v1/chain_config_pb2.py | 12 +- pyproject.toml | 4 +- .../chain/grpc/test_chain_grpc_erc20_api.py | 27 +- .../grpc/test_indexer_grpc_derivative_api.py | 6 + .../grpc/test_indexer_grpc_explorer_api.py | 12 +- .../test_indexer_grpc_derivative_stream.py | 4 + 25 files changed, 528 insertions(+), 289 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8929f40a..71152633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file. - Updated all chain exchange module examples to use the new Exchange V2 proto queries and types - Added examples for ERC20 queries and messages - Added examples for EVM queries -- Created a new AsyncClient in the pyinjective.async_client_v2 module. This new AsyncClient provides support for the newe v2 exchange endpoints. AsyncClient in pyinjective.async_client module still provides access to the v1 exchange endpoints. +- Created a new AsyncClient in the pyinjective.async_client_v2 module. This new AsyncClient provides support for the new v2 exchange endpoints. AsyncClient in pyinjective.async_client module still provides access to the v1 exchange endpoints. - Created a new Composer in the pyinjective.composer_v2 module. This new Composer provides support to create exchange v2 objects. Composer in pyinjective.composer module still provides access to the v1 exchange objects. - Created the IndexerClient class to have all indexer queries. AsyncClient v2 now does not include any logic related to the indexer endpoints. The original AsyncClient still does support indexer endpoints (for backwards compatibility) but it does that by using an instance of the IndexerClient diff --git a/Makefile b/Makefile index e9662922..ca738f93 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.3 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.20 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/README.md b/README.md index eadf4da7..a231bc85 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,62 @@ Upgrade `pip` to the latest version, if you see these warnings: poetry run pytest -v ``` +--- + +## Choose Exchange V1 or Exchange V2 queries + +The Injective Python SDK provides two different clients for interacting with the exchange: + +1. **Exchange V1 Client** (`async_client` module): + - Use this client if you need to interact with the original Injective Exchange API + - Import using: `from injective.async_client import AsyncClient` + - Suitable for applications that need to maintain compatibility with the original exchange interface + - Example: + ```python + from injective.async_client import AsyncClient + from injective.network import Network + + async def main(): + # Initialize client with mainnet + client = AsyncClient(network=Network.mainnet()) + # Or use testnet + # client = AsyncClient(network=Network.testnet()) + # Use V1 exchange queries here + ``` + +2. **Exchange V2 Client** (`async_client_v2` module): + - Use this client for the latest exchange features and improvements + - Import using: `from injective.async_client_v2 import AsyncClient` + - Recommended for new applications and when you need access to the latest exchange features + - Example: + ```python + from injective.async_client_v2 import AsyncClient + from injective.network import Network + + async def main(): + # Initialize client with mainnet + client = AsyncClient(network=Network.mainnet()) + # Or use testnet + # client = AsyncClient(network=Network.testnet()) + # Use V2 exchange queries here + ``` + +Both clients provide similar interfaces but with different underlying implementations. Choose V2 for new projects unless you have specific requirements for V1 compatibility. + +> **Market Format Differences**: +> - V1 AsyncClient: Markets are initialized with values in chain format (raw blockchain values) +> - V2 AsyncClient: Markets are initialized with values in human-readable format (converted to standard decimal numbers) +> +> **Exchange Endpoint Format Differences**: +> - V1 Exchange endpoints: All values (amounts, prices, margins, notionals) are returned in chain format +> - V2 Exchange endpoints: +> - Human-readable format for: amounts, prices, margins, and notionals +> - Chain format for: deposit-related information (to maintain consistency with the Bank module) +> +> **Important Note**: The ChainClient (V1) will not receive any new endpoints added to the Exchange module. If you need access to new exchange-related endpoints or features, you should migrate to the V2 client. The V2 client ensures you have access to all the latest exchange functionality and improvements. + +___ + ## License Copyright © 2021 - 2025 Injective Labs Inc. (https://injectivelabs.org/) diff --git a/buf.gen.yaml b/buf.gen.yaml index 23479b6c..5c257132 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -14,7 +14,7 @@ inputs: - git_repo: https://github.com/InjectiveLabs/ibc-go tag: v8.7.0-evm-comet1-inj - git_repo: https://github.com/InjectiveLabs/wasmd - tag: v0.53.2-evm-comet1-inj + tag: v0.53.3-evm-comet1-inj - git_repo: https://github.com/InjectiveLabs/cometbft tag: v1.0.1-inj.2 - git_repo: https://github.com/InjectiveLabs/cosmos-sdk @@ -23,7 +23,7 @@ inputs: # branch: v0.51.x-inj # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - tag: v1.16.0-beta.2 + tag: v1.16.0-beta.3 subdir: proto # - git_repo: https://github.com/InjectiveLabs/injective-core # branch: master diff --git a/examples/chain_client/erc20/query/1_AllTokenPairs.py b/examples/chain_client/erc20/query/1_AllTokenPairs.py index 299a8914..34f2cd90 100644 --- a/examples/chain_client/erc20/query/1_AllTokenPairs.py +++ b/examples/chain_client/erc20/query/1_AllTokenPairs.py @@ -6,6 +6,7 @@ from pyinjective import PrivateKey from pyinjective.async_client_v2 import AsyncClient +from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import Network @@ -25,7 +26,12 @@ async def main() -> None: address = pub_key.to_address() await client.fetch_account(address.to_acc_bech32()) - pairs = await client.fetch_erc20_all_token_pairs() + pairs = await client.fetch_erc20_all_token_pairs( + pagination=PaginationOption( + skip=0, + limit=100, + ), + ) print(json.dumps(pairs, indent=2)) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index ff272ec6..665d8556 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -986,12 +986,14 @@ async def fetch_contract_txs_v2( address: str, height: Optional[int] = None, token: Optional[str] = None, + status: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: return await self.indexer_client.fetch_contract_txs_v2( address=address, height=height, token=token, + status=status, pagination=pagination, ) @@ -1124,12 +1126,16 @@ async def fetch_wasm_contracts( code_id: Optional[int] = None, assets_only: Optional[bool] = None, label: Optional[str] = None, + token: Optional[str] = None, + lookup: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: return await self.indexer_client.fetch_wasm_contracts( code_id=code_id, assets_only=assets_only, label=label, + token=token, + lookup=lookup, pagination=pagination, ) diff --git a/pyinjective/async_client_v2.py b/pyinjective/async_client_v2.py index 515df54a..f99b0cd5 100644 --- a/pyinjective/async_client_v2.py +++ b/pyinjective/async_client_v2.py @@ -1187,8 +1187,8 @@ async def fetch_eip_base_fee(self) -> Dict[str, Any]: # ------------------------- # region Chain ERC20 module - async def fetch_erc20_all_token_pairs(self) -> Dict[str, Any]: - return await self.chain_erc20_api.fetch_all_token_pairs() + async def fetch_erc20_all_token_pairs(self, pagination: Optional[PaginationOption] = None) -> Dict[str, Any]: + return await self.chain_erc20_api.fetch_all_token_pairs(pagination=pagination) async def fetch_erc20_token_pair_by_denom(self, bank_denom: str) -> Dict[str, Any]: return await self.chain_erc20_api.fetch_token_pair_by_denom(bank_denom=bank_denom) diff --git a/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py index f4254bab..2286bee5 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py @@ -1,7 +1,8 @@ -from typing import Any, Callable, Dict +from typing import Any, Callable, Dict, Optional from grpc.aio import Channel +from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import CookieAssistant from pyinjective.proto.injective.erc20.v1beta1 import query_pb2 as erc20_query_pb, query_pb2_grpc as erc20_query_grpc from pyinjective.utils.grpc_api_request_assistant import GrpcApiRequestAssistant @@ -18,8 +19,16 @@ async def fetch_erc20_params(self) -> Dict[str, Any]: return response - async def fetch_all_token_pairs(self) -> Dict[str, Any]: - request = erc20_query_pb.QueryAllTokenPairsRequest() + async def fetch_all_token_pairs( + self, + pagination: Optional[PaginationOption] = None, + ) -> Dict[str, Any]: + pagination_request = None + if pagination is not None: + pagination_request = pagination.create_pagination_request() + request = erc20_query_pb.QueryAllTokenPairsRequest( + pagination=pagination_request, + ) response = await self._execute_call(call=self._stub.AllTokenPairs, request=request) return response diff --git a/pyinjective/client/indexer/grpc/indexer_grpc_explorer_api.py b/pyinjective/client/indexer/grpc/indexer_grpc_explorer_api.py index 7d4fa044..230e0cbb 100644 --- a/pyinjective/client/indexer/grpc/indexer_grpc_explorer_api.py +++ b/pyinjective/client/indexer/grpc/indexer_grpc_explorer_api.py @@ -73,6 +73,7 @@ async def fetch_contract_txs_v2( address: str, height: Optional[int] = None, token: Optional[str] = None, + status: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: pagination = pagination or PaginationOption() @@ -85,7 +86,9 @@ async def fetch_contract_txs_v2( if pagination is not None: setattr(request, "from", pagination.start_time) request.to = pagination.end_time - request.limit = pagination.limit + request.per_page = pagination.limit + if status is not None: + request.status = status response = await self._execute_call(call=self._stub.GetContractTxsV2, request=request) @@ -265,6 +268,8 @@ async def fetch_wasm_contracts( code_id: Optional[int] = None, assets_only: Optional[bool] = None, label: Optional[str] = None, + token: Optional[str] = None, + lookup: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: pagination = pagination or PaginationOption() @@ -276,6 +281,8 @@ async def fetch_wasm_contracts( assets_only=assets_only, skip=pagination.skip, label=label, + token=token, + lookup=lookup, ) response = await self._execute_call(call=self._stub.GetWasmContracts, request=request) diff --git a/pyinjective/indexer_client.py b/pyinjective/indexer_client.py index 3e6109eb..0cce0a9f 100644 --- a/pyinjective/indexer_client.py +++ b/pyinjective/indexer_client.py @@ -989,12 +989,14 @@ async def fetch_contract_txs_v2( address: str, height: Optional[int] = None, token: Optional[str] = None, + status: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: return await self.explorer_api.fetch_contract_txs_v2( address=address, height=height, token=token, + status=status, pagination=pagination, ) @@ -1103,12 +1105,16 @@ async def fetch_wasm_contracts( code_id: Optional[int] = None, assets_only: Optional[bool] = None, label: Optional[str] = None, + token: Optional[str] = None, + lookup: Optional[str] = None, pagination: Optional[PaginationOption] = None, ) -> Dict[str, Any]: return await self.explorer_api.fetch_wasm_contracts( code_id=code_id, assets_only=assets_only, label=label, + token=token, + lookup=lookup, pagination=pagination, ) diff --git a/pyinjective/ofac.json b/pyinjective/ofac.json index b90e59cd..3035ea42 100644 --- a/pyinjective/ofac.json +++ b/pyinjective/ofac.json @@ -55,6 +55,7 @@ "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", "0xd0975b32cea532eadddfc9c60481976e39db3472", + "0xd5ed34b52ac4ab84d8fa8a231a3218bbf01ed510", "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", "0xdcbeffbecce100cce9e4b153c4e15cb885643193", "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", diff --git a/pyinjective/proto/exchange/event_provider_api_pb2.py b/pyinjective/proto/exchange/event_provider_api_pb2.py index a0cc7eef..8b9ce41f 100644 --- a/pyinjective/proto/exchange/event_provider_api_pb2.py +++ b/pyinjective/proto/exchange/event_provider_api_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!exchange/event_provider_api.proto\x12\x12\x65vent_provider_api\"\x18\n\x16GetLatestHeightRequest\"~\n\x17GetLatestHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.event_provider_api.LatestBlockHeightR\x04\x64\x61ta\"?\n\x11LatestBlockHeight\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x12\n\x04time\x18\x02 \x01(\x12R\x04time\"L\n\x18StreamBlockEventsRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\"N\n\x19StreamBlockEventsResponse\x12\x31\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x19.event_provider_api.BlockR\x06\x62locks\"\x8a\x01\n\x05\x42lock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x36\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1e.event_provider_api.BlockEventR\x06\x65vents\x12\x17\n\x07in_sync\x18\x04 \x01(\x08R\x06inSync\"j\n\nBlockEvent\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\x12\x17\n\x07tx_hash\x18\x03 \x01(\x0cR\x06txHash\x12\x12\n\x04mode\x18\x04 \x01(\tR\x04mode\"s\n\x18GetBlockEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12%\n\x0ehuman_readable\x18\x03 \x01(\x08R\rhumanReadable\"}\n\x19GetBlockEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"\xca\x01\n\x0e\x42lockEventsRPC\x12\x14\n\x05types\x18\x01 \x03(\tR\x05types\x12\x16\n\x06\x65vents\x18\x02 \x03(\x0cR\x06\x65vents\x12M\n\ttx_hashes\x18\x03 \x03(\x0b\x32\x30.event_provider_api.BlockEventsRPC.TxHashesEntryR\x08txHashes\x1a;\n\rTxHashesEntry\x12\x10\n\x03key\x18\x01 \x01(\x11R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value:\x02\x38\x01\"e\n\x19GetCustomEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12\x16\n\x06\x65vents\x18\x03 \x01(\tR\x06\x65vents\"~\n\x1aGetCustomEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\"T\n\x19GetABCIBlockEventsRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\x12\x1f\n\x0b\x65vent_types\x18\x02 \x03(\tR\neventTypes\"\x81\x01\n\x1aGetABCIBlockEventsResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock\"\xcc\x02\n\x08RawBlock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x1d\n\nblock_time\x18\x05 \x01(\tR\tblockTime\x12\'\n\x0f\x62lock_timestamp\x18\x06 \x01(\x12R\x0e\x62lockTimestamp\x12J\n\x0btxs_results\x18\x02 \x03(\x0b\x32).event_provider_api.ABCIResponseDeliverTxR\ntxsResults\x12K\n\x12\x62\x65gin_block_events\x18\x03 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x10\x62\x65ginBlockEvents\x12G\n\x10\x65nd_block_events\x18\x04 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x0e\x65ndBlockEvents\"\xf9\x01\n\x15\x41\x42\x43IResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\x11R\x04\x63ode\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x12\n\x04info\x18\x03 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\x04 \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\x05 \x01(\x12R\x07gasUsed\x12\x35\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x06\x65vents\x12\x1c\n\tcodespace\x18\x07 \x01(\tR\tcodespace\x12\x17\n\x07tx_hash\x18\x08 \x01(\x0cR\x06txHash\"b\n\tABCIEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x41\n\nattributes\x18\x02 \x03(\x0b\x32!.event_provider_api.ABCIAttributeR\nattributes\"7\n\rABCIAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\";\n!GetABCIBlockEventsAtHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\"\x89\x01\n\"GetABCIBlockEventsAtHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock2\xdc\x05\n\x10\x45ventProviderAPI\x12j\n\x0fGetLatestHeight\x12*.event_provider_api.GetLatestHeightRequest\x1a+.event_provider_api.GetLatestHeightResponse\x12r\n\x11StreamBlockEvents\x12,.event_provider_api.StreamBlockEventsRequest\x1a-.event_provider_api.StreamBlockEventsResponse0\x01\x12p\n\x11GetBlockEventsRPC\x12,.event_provider_api.GetBlockEventsRPCRequest\x1a-.event_provider_api.GetBlockEventsRPCResponse\x12s\n\x12GetCustomEventsRPC\x12-.event_provider_api.GetCustomEventsRPCRequest\x1a..event_provider_api.GetCustomEventsRPCResponse\x12s\n\x12GetABCIBlockEvents\x12-.event_provider_api.GetABCIBlockEventsRequest\x1a..event_provider_api.GetABCIBlockEventsResponse\x12\x8b\x01\n\x1aGetABCIBlockEventsAtHeight\x12\x35.event_provider_api.GetABCIBlockEventsAtHeightRequest\x1a\x36.event_provider_api.GetABCIBlockEventsAtHeightResponseB\xa6\x01\n\x16\x63om.event_provider_apiB\x15\x45ventProviderApiProtoP\x01Z\x15/event_provider_apipb\xa2\x02\x03\x45XX\xaa\x02\x10\x45ventProviderApi\xca\x02\x10\x45ventProviderApi\xe2\x02\x1c\x45ventProviderApi\\GPBMetadata\xea\x02\x10\x45ventProviderApib\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!exchange/event_provider_api.proto\x12\x12\x65vent_provider_api\"\x18\n\x16GetLatestHeightRequest\"~\n\x17GetLatestHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.event_provider_api.LatestBlockHeightR\x04\x64\x61ta\"?\n\x11LatestBlockHeight\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x12\n\x04time\x18\x02 \x01(\x12R\x04time\"\x1b\n\x19StreamLatestHeightRequest\"H\n\x1aStreamLatestHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x12\n\x04time\x18\x02 \x01(\x12R\x04time\"L\n\x18StreamBlockEventsRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\"N\n\x19StreamBlockEventsResponse\x12\x31\n\x06\x62locks\x18\x01 \x03(\x0b\x32\x19.event_provider_api.BlockR\x06\x62locks\"\x8a\x01\n\x05\x42lock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12\x36\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1e.event_provider_api.BlockEventR\x06\x65vents\x12\x17\n\x07in_sync\x18\x04 \x01(\x08R\x06inSync\"j\n\nBlockEvent\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\x12\x17\n\x07tx_hash\x18\x03 \x01(\x0cR\x06txHash\x12\x12\n\x04mode\x18\x04 \x01(\tR\x04mode\"s\n\x18GetBlockEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12%\n\x0ehuman_readable\x18\x03 \x01(\x08R\rhumanReadable\"\xb7\x01\n\x19GetBlockEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\x12\x38\n\x05\x62lock\x18\x05 \x01(\x0b\x32\".event_provider_api.BasicBlockInfoR\x05\x62lock\"\xca\x01\n\x0e\x42lockEventsRPC\x12\x14\n\x05types\x18\x01 \x03(\tR\x05types\x12\x16\n\x06\x65vents\x18\x02 \x03(\x0cR\x06\x65vents\x12M\n\ttx_hashes\x18\x03 \x03(\x0b\x32\x30.event_provider_api.BlockEventsRPC.TxHashesEntryR\x08txHashes\x1a;\n\rTxHashesEntry\x12\x10\n\x03key\x18\x01 \x01(\x11R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value:\x02\x38\x01\"Z\n\x0e\x42\x61sicBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\x12\x12\n\x04time\x18\x03 \x01(\tR\x04time\"e\n\x19GetCustomEventsRPCRequest\x12\x18\n\x07\x62\x61\x63kend\x18\x01 \x01(\tR\x07\x62\x61\x63kend\x12\x16\n\x06height\x18\x02 \x01(\x11R\x06height\x12\x16\n\x06\x65vents\x18\x03 \x01(\tR\x06\x65vents\"\xb8\x01\n\x1aGetCustomEventsRPCResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x36\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\".event_provider_api.BlockEventsRPCR\x04\x64\x61ta\x12\x38\n\x05\x62lock\x18\x05 \x01(\x0b\x32\".event_provider_api.BasicBlockInfoR\x05\x62lock\"T\n\x19GetABCIBlockEventsRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\x12\x1f\n\x0b\x65vent_types\x18\x02 \x03(\tR\neventTypes\"\x81\x01\n\x1aGetABCIBlockEventsResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock\"\xcc\x02\n\x08RawBlock\x12\x16\n\x06height\x18\x01 \x01(\x12R\x06height\x12\x1d\n\nblock_time\x18\x05 \x01(\tR\tblockTime\x12\'\n\x0f\x62lock_timestamp\x18\x06 \x01(\x12R\x0e\x62lockTimestamp\x12J\n\x0btxs_results\x18\x02 \x03(\x0b\x32).event_provider_api.ABCIResponseDeliverTxR\ntxsResults\x12K\n\x12\x62\x65gin_block_events\x18\x03 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x10\x62\x65ginBlockEvents\x12G\n\x10\x65nd_block_events\x18\x04 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x0e\x65ndBlockEvents\"\xf9\x01\n\x15\x41\x42\x43IResponseDeliverTx\x12\x12\n\x04\x63ode\x18\x01 \x01(\x11R\x04\x63ode\x12\x10\n\x03log\x18\x02 \x01(\tR\x03log\x12\x12\n\x04info\x18\x03 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\x04 \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\x05 \x01(\x12R\x07gasUsed\x12\x35\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1d.event_provider_api.ABCIEventR\x06\x65vents\x12\x1c\n\tcodespace\x18\x07 \x01(\tR\tcodespace\x12\x17\n\x07tx_hash\x18\x08 \x01(\x0cR\x06txHash\"b\n\tABCIEvent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x41\n\nattributes\x18\x02 \x03(\x0b\x32!.event_provider_api.ABCIAttributeR\nattributes\"7\n\rABCIAttribute\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\";\n!GetABCIBlockEventsAtHeightRequest\x12\x16\n\x06height\x18\x01 \x01(\x11R\x06height\"\x89\x01\n\"GetABCIBlockEventsAtHeightResponse\x12\x0c\n\x01v\x18\x01 \x01(\tR\x01v\x12\x0c\n\x01s\x18\x02 \x01(\tR\x01s\x12\x0c\n\x01\x65\x18\x03 \x01(\tR\x01\x65\x12\x39\n\traw_block\x18\x04 \x01(\x0b\x32\x1c.event_provider_api.RawBlockR\x08rawBlock2\xd3\x06\n\x10\x45ventProviderAPI\x12j\n\x0fGetLatestHeight\x12*.event_provider_api.GetLatestHeightRequest\x1a+.event_provider_api.GetLatestHeightResponse\x12u\n\x12StreamLatestHeight\x12-.event_provider_api.StreamLatestHeightRequest\x1a..event_provider_api.StreamLatestHeightResponse0\x01\x12r\n\x11StreamBlockEvents\x12,.event_provider_api.StreamBlockEventsRequest\x1a-.event_provider_api.StreamBlockEventsResponse0\x01\x12p\n\x11GetBlockEventsRPC\x12,.event_provider_api.GetBlockEventsRPCRequest\x1a-.event_provider_api.GetBlockEventsRPCResponse\x12s\n\x12GetCustomEventsRPC\x12-.event_provider_api.GetCustomEventsRPCRequest\x1a..event_provider_api.GetCustomEventsRPCResponse\x12s\n\x12GetABCIBlockEvents\x12-.event_provider_api.GetABCIBlockEventsRequest\x1a..event_provider_api.GetABCIBlockEventsResponse\x12\x8b\x01\n\x1aGetABCIBlockEventsAtHeight\x12\x35.event_provider_api.GetABCIBlockEventsAtHeightRequest\x1a\x36.event_provider_api.GetABCIBlockEventsAtHeightResponseB\xa6\x01\n\x16\x63om.event_provider_apiB\x15\x45ventProviderApiProtoP\x01Z\x15/event_provider_apipb\xa2\x02\x03\x45XX\xaa\x02\x10\x45ventProviderApi\xca\x02\x10\x45ventProviderApi\xe2\x02\x1c\x45ventProviderApi\\GPBMetadata\xea\x02\x10\x45ventProviderApib\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,42 +30,48 @@ _globals['_GETLATESTHEIGHTRESPONSE']._serialized_end=209 _globals['_LATESTBLOCKHEIGHT']._serialized_start=211 _globals['_LATESTBLOCKHEIGHT']._serialized_end=274 - _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_start=276 - _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_end=352 - _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_start=354 - _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_end=432 - _globals['_BLOCK']._serialized_start=435 - _globals['_BLOCK']._serialized_end=573 - _globals['_BLOCKEVENT']._serialized_start=575 - _globals['_BLOCKEVENT']._serialized_end=681 - _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_start=683 - _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_end=798 - _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_start=800 - _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_end=925 - _globals['_BLOCKEVENTSRPC']._serialized_start=928 - _globals['_BLOCKEVENTSRPC']._serialized_end=1130 - _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_start=1071 - _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_end=1130 - _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_start=1132 - _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_end=1233 - _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_start=1235 - _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_end=1361 - _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_start=1363 - _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_end=1447 - _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_start=1450 - _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_end=1579 - _globals['_RAWBLOCK']._serialized_start=1582 - _globals['_RAWBLOCK']._serialized_end=1914 - _globals['_ABCIRESPONSEDELIVERTX']._serialized_start=1917 - _globals['_ABCIRESPONSEDELIVERTX']._serialized_end=2166 - _globals['_ABCIEVENT']._serialized_start=2168 - _globals['_ABCIEVENT']._serialized_end=2266 - _globals['_ABCIATTRIBUTE']._serialized_start=2268 - _globals['_ABCIATTRIBUTE']._serialized_end=2323 - _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_start=2325 - _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_end=2384 - _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_start=2387 - _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_end=2524 - _globals['_EVENTPROVIDERAPI']._serialized_start=2527 - _globals['_EVENTPROVIDERAPI']._serialized_end=3259 + _globals['_STREAMLATESTHEIGHTREQUEST']._serialized_start=276 + _globals['_STREAMLATESTHEIGHTREQUEST']._serialized_end=303 + _globals['_STREAMLATESTHEIGHTRESPONSE']._serialized_start=305 + _globals['_STREAMLATESTHEIGHTRESPONSE']._serialized_end=377 + _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_start=379 + _globals['_STREAMBLOCKEVENTSREQUEST']._serialized_end=455 + _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_start=457 + _globals['_STREAMBLOCKEVENTSRESPONSE']._serialized_end=535 + _globals['_BLOCK']._serialized_start=538 + _globals['_BLOCK']._serialized_end=676 + _globals['_BLOCKEVENT']._serialized_start=678 + _globals['_BLOCKEVENT']._serialized_end=784 + _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_start=786 + _globals['_GETBLOCKEVENTSRPCREQUEST']._serialized_end=901 + _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_start=904 + _globals['_GETBLOCKEVENTSRPCRESPONSE']._serialized_end=1087 + _globals['_BLOCKEVENTSRPC']._serialized_start=1090 + _globals['_BLOCKEVENTSRPC']._serialized_end=1292 + _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_start=1233 + _globals['_BLOCKEVENTSRPC_TXHASHESENTRY']._serialized_end=1292 + _globals['_BASICBLOCKINFO']._serialized_start=1294 + _globals['_BASICBLOCKINFO']._serialized_end=1384 + _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_start=1386 + _globals['_GETCUSTOMEVENTSRPCREQUEST']._serialized_end=1487 + _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_start=1490 + _globals['_GETCUSTOMEVENTSRPCRESPONSE']._serialized_end=1674 + _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_start=1676 + _globals['_GETABCIBLOCKEVENTSREQUEST']._serialized_end=1760 + _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_start=1763 + _globals['_GETABCIBLOCKEVENTSRESPONSE']._serialized_end=1892 + _globals['_RAWBLOCK']._serialized_start=1895 + _globals['_RAWBLOCK']._serialized_end=2227 + _globals['_ABCIRESPONSEDELIVERTX']._serialized_start=2230 + _globals['_ABCIRESPONSEDELIVERTX']._serialized_end=2479 + _globals['_ABCIEVENT']._serialized_start=2481 + _globals['_ABCIEVENT']._serialized_end=2579 + _globals['_ABCIATTRIBUTE']._serialized_start=2581 + _globals['_ABCIATTRIBUTE']._serialized_end=2636 + _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_start=2638 + _globals['_GETABCIBLOCKEVENTSATHEIGHTREQUEST']._serialized_end=2697 + _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_start=2700 + _globals['_GETABCIBLOCKEVENTSATHEIGHTRESPONSE']._serialized_end=2837 + _globals['_EVENTPROVIDERAPI']._serialized_start=2840 + _globals['_EVENTPROVIDERAPI']._serialized_end=3691 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py b/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py index 6ad6ad04..6b0c09f7 100644 --- a/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py +++ b/pyinjective/proto/exchange/event_provider_api_pb2_grpc.py @@ -20,6 +20,11 @@ def __init__(self, channel): request_serializer=exchange_dot_event__provider__api__pb2.GetLatestHeightRequest.SerializeToString, response_deserializer=exchange_dot_event__provider__api__pb2.GetLatestHeightResponse.FromString, _registered_method=True) + self.StreamLatestHeight = channel.unary_stream( + '/event_provider_api.EventProviderAPI/StreamLatestHeight', + request_serializer=exchange_dot_event__provider__api__pb2.StreamLatestHeightRequest.SerializeToString, + response_deserializer=exchange_dot_event__provider__api__pb2.StreamLatestHeightResponse.FromString, + _registered_method=True) self.StreamBlockEvents = channel.unary_stream( '/event_provider_api.EventProviderAPI/StreamBlockEvents', request_serializer=exchange_dot_event__provider__api__pb2.StreamBlockEventsRequest.SerializeToString, @@ -58,6 +63,13 @@ def GetLatestHeight(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def StreamLatestHeight(self, request, context): + """Stream latest block information + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def StreamBlockEvents(self, request, context): """Stream processed block events for selected backend """ @@ -101,6 +113,11 @@ def add_EventProviderAPIServicer_to_server(servicer, server): request_deserializer=exchange_dot_event__provider__api__pb2.GetLatestHeightRequest.FromString, response_serializer=exchange_dot_event__provider__api__pb2.GetLatestHeightResponse.SerializeToString, ), + 'StreamLatestHeight': grpc.unary_stream_rpc_method_handler( + servicer.StreamLatestHeight, + request_deserializer=exchange_dot_event__provider__api__pb2.StreamLatestHeightRequest.FromString, + response_serializer=exchange_dot_event__provider__api__pb2.StreamLatestHeightResponse.SerializeToString, + ), 'StreamBlockEvents': grpc.unary_stream_rpc_method_handler( servicer.StreamBlockEvents, request_deserializer=exchange_dot_event__provider__api__pb2.StreamBlockEventsRequest.FromString, @@ -165,6 +182,33 @@ def GetLatestHeight(request, metadata, _registered_method=True) + @staticmethod + def StreamLatestHeight(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, + '/event_provider_api.EventProviderAPI/StreamLatestHeight', + exchange_dot_event__provider__api__pb2.StreamLatestHeightRequest.SerializeToString, + exchange_dot_event__provider__api__pb2.StreamLatestHeightResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def StreamBlockEvents(request, target, diff --git a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py index 232fb9bd..18709618 100644 --- a/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_accounts_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xdd\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_accounts_rpc.proto\x12\x16injective_accounts_rpc\";\n\x10PortfolioRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"[\n\x11PortfolioResponse\x12\x46\n\tportfolio\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.AccountPortfolioR\tportfolio\"\x85\x02\n\x10\x41\x63\x63ountPortfolio\x12\'\n\x0fportfolio_value\x18\x01 \x01(\tR\x0eportfolioValue\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\x12M\n\x0bsubaccounts\x18\x05 \x03(\x0b\x32+.injective_accounts_rpc.SubaccountPortfolioR\x0bsubaccounts\"\xb5\x01\n\x13SubaccountPortfolio\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12%\n\x0elocked_balance\x18\x03 \x01(\tR\rlockedBalance\x12%\n\x0eunrealized_pnl\x18\x04 \x01(\tR\runrealizedPnl\"x\n\x12OrderStatesRequest\x12*\n\x11spot_order_hashes\x18\x01 \x03(\tR\x0fspotOrderHashes\x12\x36\n\x17\x64\x65rivative_order_hashes\x18\x02 \x03(\tR\x15\x64\x65rivativeOrderHashes\"\xcd\x01\n\x13OrderStatesResponse\x12T\n\x11spot_order_states\x18\x01 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x0fspotOrderStates\x12`\n\x17\x64\x65rivative_order_states\x18\x02 \x03(\x0b\x32(.injective_accounts_rpc.OrderStateRecordR\x15\x64\x65rivativeOrderStates\"\x8b\x03\n\x10OrderStateRecord\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x1d\n\norder_type\x18\x04 \x01(\tR\torderType\x12\x1d\n\norder_side\x18\x05 \x01(\tR\torderSide\x12\x14\n\x05state\x18\x06 \x01(\tR\x05state\x12\'\n\x0fquantity_filled\x18\x07 \x01(\tR\x0equantityFilled\x12-\n\x12quantity_remaining\x18\x08 \x01(\tR\x11quantityRemaining\x12\x1d\n\ncreated_at\x18\t \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x14\n\x05price\x18\x0b \x01(\tR\x05price\x12\x16\n\x06margin\x18\x0c \x01(\tR\x06margin\"A\n\x16SubaccountsListRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\";\n\x17SubaccountsListResponse\x12 \n\x0bsubaccounts\x18\x01 \x03(\tR\x0bsubaccounts\"\\\n\x1dSubaccountBalancesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"g\n\x1eSubaccountBalancesListResponse\x12\x45\n\x08\x62\x61lances\x18\x01 \x03(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x08\x62\x61lances\"\xbc\x01\n\x11SubaccountBalance\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x14\n\x05\x64\x65nom\x18\x03 \x01(\tR\x05\x64\x65nom\x12\x43\n\x07\x64\x65posit\x18\x04 \x01(\x0b\x32).injective_accounts_rpc.SubaccountDepositR\x07\x64\x65posit\"\xc5\x01\n\x11SubaccountDeposit\x12#\n\rtotal_balance\x18\x01 \x01(\tR\x0ctotalBalance\x12+\n\x11\x61vailable_balance\x18\x02 \x01(\tR\x10\x61vailableBalance\x12*\n\x11total_balance_usd\x18\x03 \x01(\tR\x0ftotalBalanceUsd\x12\x32\n\x15\x61vailable_balance_usd\x18\x04 \x01(\tR\x13\x61vailableBalanceUsd\"]\n SubaccountBalanceEndpointRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\"h\n!SubaccountBalanceEndpointResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\"]\n\x1eStreamSubaccountBalanceRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x64\x65noms\x18\x02 \x03(\tR\x06\x64\x65noms\"\x84\x01\n\x1fStreamSubaccountBalanceResponse\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xc1\x01\n\x18SubaccountHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x14\n\x05\x64\x65nom\x18\x02 \x01(\tR\x05\x64\x65nom\x12%\n\x0etransfer_types\x18\x03 \x03(\tR\rtransferTypes\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\"\xa4\x01\n\x19SubaccountHistoryResponse\x12O\n\ttransfers\x18\x01 \x03(\x0b\x32\x31.injective_accounts_rpc.SubaccountBalanceTransferR\ttransfers\x12\x36\n\x06paging\x18\x02 \x01(\x0b\x32\x1e.injective_accounts_rpc.PagingR\x06paging\"\xd5\x02\n\x19SubaccountBalanceTransfer\x12#\n\rtransfer_type\x18\x01 \x01(\tR\x0ctransferType\x12*\n\x11src_subaccount_id\x18\x02 \x01(\tR\x0fsrcSubaccountId\x12.\n\x13src_account_address\x18\x03 \x01(\tR\x11srcAccountAddress\x12*\n\x11\x64st_subaccount_id\x18\x04 \x01(\tR\x0f\x64stSubaccountId\x12.\n\x13\x64st_account_address\x18\x05 \x01(\tR\x11\x64stAccountAddress\x12:\n\x06\x61mount\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.CosmosCoinR\x06\x61mount\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\x8a\x01\n\x1dSubaccountOrderSummaryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\'\n\x0forder_direction\x18\x03 \x01(\tR\x0eorderDirection\"\x84\x01\n\x1eSubaccountOrderSummaryResponse\x12*\n\x11spot_orders_total\x18\x01 \x01(\x12R\x0fspotOrdersTotal\x12\x36\n\x17\x64\x65rivative_orders_total\x18\x02 \x01(\x12R\x15\x64\x65rivativeOrdersTotal\"O\n\x0eRewardsRequest\x12\x14\n\x05\x65poch\x18\x01 \x01(\x12R\x05\x65poch\x12\'\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\tR\x0e\x61\x63\x63ountAddress\"K\n\x0fRewardsResponse\x12\x38\n\x07rewards\x18\x01 \x03(\x0b\x32\x1e.injective_accounts_rpc.RewardR\x07rewards\"\x90\x01\n\x06Reward\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x36\n\x07rewards\x18\x02 \x03(\x0b\x32\x1c.injective_accounts_rpc.CoinR\x07rewards\x12%\n\x0e\x64istributed_at\x18\x03 \x01(\x12R\rdistributedAt\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"C\n\x18StreamAccountDataRequest\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\"\xde\x03\n\x19StreamAccountDataResponse\x12^\n\x12subaccount_balance\x18\x01 \x01(\x0b\x32/.injective_accounts_rpc.SubaccountBalanceResultR\x11subaccountBalance\x12\x43\n\x08position\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.PositionsResultR\x08position\x12\x39\n\x05trade\x18\x03 \x01(\x0b\x32#.injective_accounts_rpc.TradeResultR\x05trade\x12\x39\n\x05order\x18\x04 \x01(\x0b\x32#.injective_accounts_rpc.OrderResultR\x05order\x12O\n\rorder_history\x18\x05 \x01(\x0b\x32*.injective_accounts_rpc.OrderHistoryResultR\x0corderHistory\x12U\n\x0f\x66unding_payment\x18\x06 \x01(\x0b\x32,.injective_accounts_rpc.FundingPaymentResultR\x0e\x66undingPayment\"|\n\x17SubaccountBalanceResult\x12\x43\n\x07\x62\x61lance\x18\x01 \x01(\x0b\x32).injective_accounts_rpc.SubaccountBalanceR\x07\x62\x61lance\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"m\n\x0fPositionsResult\x12<\n\x08position\x18\x01 \x01(\x0b\x32 .injective_accounts_rpc.PositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xe1\x02\n\x08Position\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\n \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\"\xf5\x01\n\x0bTradeResult\x12\x42\n\nspot_trade\x18\x01 \x01(\x0b\x32!.injective_accounts_rpc.SpotTradeH\x00R\tspotTrade\x12T\n\x10\x64\x65rivative_trade\x18\x02 \x01(\x0b\x32\'.injective_accounts_rpc.DerivativeTradeH\x00R\x0f\x64\x65rivativeTrade\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05trade\"\xad\x03\n\tSpotTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12\'\n\x0ftrade_direction\x18\x05 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x06 \x01(\x0b\x32\".injective_accounts_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x07 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x08 \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\n \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0b \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\x0c \x01(\tR\x03\x63id\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xef\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12L\n\x0eposition_delta\x18\x06 \x01(\x0b\x32%.injective_accounts_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\x12\x10\n\x03pnl\x18\x0e \x01(\tR\x03pnl\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xff\x01\n\x0bOrderResult\x12G\n\nspot_order\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.SpotLimitOrderH\x00R\tspotOrder\x12Y\n\x10\x64\x65rivative_order\x18\x02 \x01(\x0b\x32,.injective_accounts_rpc.DerivativeLimitOrderH\x00R\x0f\x64\x65rivativeOrder\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x07\n\x05order\"\xb8\x03\n\x0eSpotLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x14\n\x05price\x18\x05 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x06 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\x07 \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\n \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x17\n\x07tx_hash\x18\r \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xb0\x02\n\x12OrderHistoryResult\x12X\n\x12spot_order_history\x18\x01 \x01(\x0b\x32(.injective_accounts_rpc.SpotOrderHistoryH\x00R\x10spotOrderHistory\x12j\n\x18\x64\x65rivative_order_history\x18\x02 \x01(\x0b\x32..injective_accounts_rpc.DerivativeOrderHistoryH\x00R\x16\x64\x65rivativeOrderHistory\x12%\n\x0eoperation_type\x18\x03 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestampB\x0f\n\rorder_history\"\xf3\x03\n\x10SpotOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12\x1c\n\tdirection\x18\x0e \x01(\tR\tdirection\x12\x17\n\x07tx_hash\x18\x0f \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xae\x01\n\x14\x46undingPaymentResult\x12Q\n\x10\x66unding_payments\x18\x01 \x01(\x0b\x32&.injective_accounts_rpc.FundingPaymentR\x0f\x66undingPayments\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp2\xdc\t\n\x14InjectiveAccountsRPC\x12`\n\tPortfolio\x12(.injective_accounts_rpc.PortfolioRequest\x1a).injective_accounts_rpc.PortfolioResponse\x12\x66\n\x0bOrderStates\x12*.injective_accounts_rpc.OrderStatesRequest\x1a+.injective_accounts_rpc.OrderStatesResponse\x12r\n\x0fSubaccountsList\x12..injective_accounts_rpc.SubaccountsListRequest\x1a/.injective_accounts_rpc.SubaccountsListResponse\x12\x87\x01\n\x16SubaccountBalancesList\x12\x35.injective_accounts_rpc.SubaccountBalancesListRequest\x1a\x36.injective_accounts_rpc.SubaccountBalancesListResponse\x12\x90\x01\n\x19SubaccountBalanceEndpoint\x12\x38.injective_accounts_rpc.SubaccountBalanceEndpointRequest\x1a\x39.injective_accounts_rpc.SubaccountBalanceEndpointResponse\x12\x8c\x01\n\x17StreamSubaccountBalance\x12\x36.injective_accounts_rpc.StreamSubaccountBalanceRequest\x1a\x37.injective_accounts_rpc.StreamSubaccountBalanceResponse0\x01\x12x\n\x11SubaccountHistory\x12\x30.injective_accounts_rpc.SubaccountHistoryRequest\x1a\x31.injective_accounts_rpc.SubaccountHistoryResponse\x12\x87\x01\n\x16SubaccountOrderSummary\x12\x35.injective_accounts_rpc.SubaccountOrderSummaryRequest\x1a\x36.injective_accounts_rpc.SubaccountOrderSummaryResponse\x12Z\n\x07Rewards\x12&.injective_accounts_rpc.RewardsRequest\x1a\'.injective_accounts_rpc.RewardsResponse\x12z\n\x11StreamAccountData\x12\x30.injective_accounts_rpc.StreamAccountDataRequest\x1a\x31.injective_accounts_rpc.StreamAccountDataResponse0\x01\x42\xc2\x01\n\x1a\x63om.injective_accounts_rpcB\x19InjectiveAccountsRpcProtoP\x01Z\x19/injective_accounts_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveAccountsRpc\xca\x02\x14InjectiveAccountsRpc\xe2\x02 InjectiveAccountsRpc\\GPBMetadata\xea\x02\x14InjectiveAccountsRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -95,25 +95,25 @@ _globals['_PRICELEVEL']._serialized_start=5935 _globals['_PRICELEVEL']._serialized_end=6027 _globals['_DERIVATIVETRADE']._serialized_start=6030 - _globals['_DERIVATIVETRADE']._serialized_end=6507 - _globals['_POSITIONDELTA']._serialized_start=6510 - _globals['_POSITIONDELTA']._serialized_end=6697 - _globals['_ORDERRESULT']._serialized_start=6700 - _globals['_ORDERRESULT']._serialized_end=6955 - _globals['_SPOTLIMITORDER']._serialized_start=6958 - _globals['_SPOTLIMITORDER']._serialized_end=7398 - _globals['_DERIVATIVELIMITORDER']._serialized_start=7401 - _globals['_DERIVATIVELIMITORDER']._serialized_end=8128 - _globals['_ORDERHISTORYRESULT']._serialized_start=8131 - _globals['_ORDERHISTORYRESULT']._serialized_end=8435 - _globals['_SPOTORDERHISTORY']._serialized_start=8438 - _globals['_SPOTORDERHISTORY']._serialized_end=8937 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8940 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9621 - _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9624 - _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9798 - _globals['_FUNDINGPAYMENT']._serialized_start=9801 - _globals['_FUNDINGPAYMENT']._serialized_end=9937 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9940 - _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11184 + _globals['_DERIVATIVETRADE']._serialized_end=6525 + _globals['_POSITIONDELTA']._serialized_start=6528 + _globals['_POSITIONDELTA']._serialized_end=6715 + _globals['_ORDERRESULT']._serialized_start=6718 + _globals['_ORDERRESULT']._serialized_end=6973 + _globals['_SPOTLIMITORDER']._serialized_start=6976 + _globals['_SPOTLIMITORDER']._serialized_end=7416 + _globals['_DERIVATIVELIMITORDER']._serialized_start=7419 + _globals['_DERIVATIVELIMITORDER']._serialized_end=8146 + _globals['_ORDERHISTORYRESULT']._serialized_start=8149 + _globals['_ORDERHISTORYRESULT']._serialized_end=8453 + _globals['_SPOTORDERHISTORY']._serialized_start=8456 + _globals['_SPOTORDERHISTORY']._serialized_end=8955 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=8958 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=9639 + _globals['_FUNDINGPAYMENTRESULT']._serialized_start=9642 + _globals['_FUNDINGPAYMENTRESULT']._serialized_end=9816 + _globals['_FUNDINGPAYMENT']._serialized_start=9819 + _globals['_FUNDINGPAYMENT']._serialized_end=9955 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_start=9958 + _globals['_INJECTIVEACCOUNTSRPC']._serialized_end=11202 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py index 62508ffc..bd11b062 100644 --- a/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_derivative_exchange_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\x9c\t\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\x12.\n\x13reduce_margin_ratio\x18\x16 \x01(\tR\x11reduceMarginRatio\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\xc5\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\x12*\n\x11last_funding_rate\x18\x04 \x01(\tR\x0flastFundingRate\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe8\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"5\n\x13OpenInterestRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"t\n\x14OpenInterestResponse\x12\\\n\x0eopen_interests\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.MarketOpenInterestR\ropenInterests\"V\n\x12MarketOpenInterest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\ropen_interest\x18\x02 \x01(\tR\x0copenInterest2\xd8\x1c\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x7f\n\x0cOpenInterest\x12\x36.injective_derivative_exchange_rpc.OpenInterestRequest\x1a\x37.injective_derivative_exchange_rpc.OpenInterestResponseB\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0exchange/injective_derivative_exchange_rpc.proto\x12!injective_derivative_exchange_rpc\"\x7f\n\x0eMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\'\n\x0fmarket_statuses\x18\x03 \x03(\tR\x0emarketStatuses\"d\n\x0fMarketsResponse\x12Q\n\x07markets\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x07markets\"\x9c\t\n\x14\x44\x65rivativeMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\x12\x16\n\x06ticker\x18\x03 \x01(\tR\x06ticker\x12\x1f\n\x0boracle_base\x18\x04 \x01(\tR\noracleBase\x12!\n\x0coracle_quote\x18\x05 \x01(\tR\x0boracleQuote\x12\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x30\n\x14initial_margin_ratio\x18\x08 \x01(\tR\x12initialMarginRatio\x12\x38\n\x18maintenance_margin_ratio\x18\t \x01(\tR\x16maintenanceMarginRatio\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12!\n\x0cis_perpetual\x18\x0f \x01(\x08R\x0bisPerpetual\x12-\n\x13min_price_tick_size\x18\x10 \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x11 \x01(\tR\x13minQuantityTickSize\x12j\n\x15perpetual_market_info\x18\x12 \x01(\x0b\x32\x36.injective_derivative_exchange_rpc.PerpetualMarketInfoR\x13perpetualMarketInfo\x12s\n\x18perpetual_market_funding\x18\x13 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.PerpetualMarketFundingR\x16perpetualMarketFunding\x12w\n\x1a\x65xpiry_futures_market_info\x18\x14 \x01(\x0b\x32:.injective_derivative_exchange_rpc.ExpiryFuturesMarketInfoR\x17\x65xpiryFuturesMarketInfo\x12!\n\x0cmin_notional\x18\x15 \x01(\tR\x0bminNotional\x12.\n\x13reduce_margin_ratio\x18\x16 \x01(\tR\x11reduceMarginRatio\"\xa0\x01\n\tTokenMeta\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06symbol\x18\x03 \x01(\tR\x06symbol\x12\x12\n\x04logo\x18\x04 \x01(\tR\x04logo\x12\x1a\n\x08\x64\x65\x63imals\x18\x05 \x01(\x11R\x08\x64\x65\x63imals\x12\x1d\n\nupdated_at\x18\x06 \x01(\x12R\tupdatedAt\"\xdf\x01\n\x13PerpetualMarketInfo\x12\x35\n\x17hourly_funding_rate_cap\x18\x01 \x01(\tR\x14hourlyFundingRateCap\x12\x30\n\x14hourly_interest_rate\x18\x02 \x01(\tR\x12hourlyInterestRate\x12\x34\n\x16next_funding_timestamp\x18\x03 \x01(\x12R\x14nextFundingTimestamp\x12)\n\x10\x66unding_interval\x18\x04 \x01(\x12R\x0f\x66undingInterval\"\xc5\x01\n\x16PerpetualMarketFunding\x12-\n\x12\x63umulative_funding\x18\x01 \x01(\tR\x11\x63umulativeFunding\x12)\n\x10\x63umulative_price\x18\x02 \x01(\tR\x0f\x63umulativePrice\x12%\n\x0elast_timestamp\x18\x03 \x01(\x12R\rlastTimestamp\x12*\n\x11last_funding_rate\x18\x04 \x01(\tR\x0flastFundingRate\"w\n\x17\x45xpiryFuturesMarketInfo\x12\x31\n\x14\x65xpiration_timestamp\x18\x01 \x01(\x12R\x13\x65xpirationTimestamp\x12)\n\x10settlement_price\x18\x02 \x01(\tR\x0fsettlementPrice\",\n\rMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"a\n\x0eMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\"4\n\x13StreamMarketRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xac\x01\n\x14StreamMarketResponse\x12O\n\x06market\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeMarketInfoR\x06market\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x8d\x01\n\x1b\x42inaryOptionsMarketsRequest\x12#\n\rmarket_status\x18\x01 \x01(\tR\x0cmarketStatus\x12\x1f\n\x0bquote_denom\x18\x02 \x01(\tR\nquoteDenom\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb7\x01\n\x1c\x42inaryOptionsMarketsResponse\x12T\n\x07markets\x18\x01 \x03(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x07markets\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa1\x06\n\x17\x42inaryOptionsMarketInfo\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rmarket_status\x18\x02 \x01(\tR\x0cmarketStatus\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\x1f\n\x0boracle_type\x18\x06 \x01(\tR\noracleType\x12.\n\x13oracle_scale_factor\x18\x07 \x01(\rR\x11oracleScaleFactor\x12\x31\n\x14\x65xpiration_timestamp\x18\x08 \x01(\x12R\x13\x65xpirationTimestamp\x12\x31\n\x14settlement_timestamp\x18\t \x01(\x12R\x13settlementTimestamp\x12\x1f\n\x0bquote_denom\x18\n \x01(\tR\nquoteDenom\x12V\n\x10quote_token_meta\x18\x0b \x01(\x0b\x32,.injective_derivative_exchange_rpc.TokenMetaR\x0equoteTokenMeta\x12$\n\x0emaker_fee_rate\x18\x0c \x01(\tR\x0cmakerFeeRate\x12$\n\x0etaker_fee_rate\x18\r \x01(\tR\x0ctakerFeeRate\x12\x30\n\x14service_provider_fee\x18\x0e \x01(\tR\x12serviceProviderFee\x12-\n\x13min_price_tick_size\x18\x0f \x01(\tR\x10minPriceTickSize\x12\x33\n\x16min_quantity_tick_size\x18\x10 \x01(\tR\x13minQuantityTickSize\x12)\n\x10settlement_price\x18\x11 \x01(\tR\x0fsettlementPrice\x12!\n\x0cmin_notional\x18\x12 \x01(\tR\x0bminNotional\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"9\n\x1a\x42inaryOptionsMarketRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\"q\n\x1b\x42inaryOptionsMarketResponse\x12R\n\x06market\x18\x01 \x01(\x0b\x32:.injective_derivative_exchange_rpc.BinaryOptionsMarketInfoR\x06market\"G\n\x12OrderbookV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"r\n\x13OrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"\xde\x01\n\x1a\x44\x65rivativeLimitOrderbookV2\x12\x41\n\x04\x62uys\x18\x01 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x04\x62uys\x12\x43\n\x05sells\x18\x02 \x03(\x0b\x32-.injective_derivative_exchange_rpc.PriceLevelR\x05sells\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"J\n\x13OrderbooksV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\x12\x14\n\x05\x64\x65pth\x18\x02 \x01(\x11R\x05\x64\x65pth\"{\n\x14OrderbooksV2Response\x12\x63\n\norderbooks\x18\x01 \x03(\x0b\x32\x43.injective_derivative_exchange_rpc.SingleDerivativeLimitOrderbookV2R\norderbooks\"\x9c\x01\n SingleDerivativeLimitOrderbookV2\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12[\n\torderbook\x18\x02 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\"9\n\x18StreamOrderbookV2Request\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xda\x01\n\x19StreamOrderbookV2Response\x12[\n\torderbook\x18\x01 \x01(\x0b\x32=.injective_derivative_exchange_rpc.DerivativeLimitOrderbookV2R\torderbook\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"=\n\x1cStreamOrderbookUpdateRequest\x12\x1d\n\nmarket_ids\x18\x01 \x03(\tR\tmarketIds\"\xf3\x01\n\x1dStreamOrderbookUpdateResponse\x12p\n\x17orderbook_level_updates\x18\x01 \x01(\x0b\x32\x38.injective_derivative_exchange_rpc.OrderbookLevelUpdatesR\x15orderbookLevelUpdates\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\x12\x1b\n\tmarket_id\x18\x04 \x01(\tR\x08marketId\"\x83\x02\n\x15OrderbookLevelUpdates\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12G\n\x04\x62uys\x18\x03 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x04\x62uys\x12I\n\x05sells\x18\x04 \x03(\x0b\x32\x33.injective_derivative_exchange_rpc.PriceLevelUpdateR\x05sells\x12\x1d\n\nupdated_at\x18\x05 \x01(\x12R\tupdatedAt\"\x7f\n\x10PriceLevelUpdate\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"\xc9\x03\n\rOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xa4\x01\n\x0eOrdersResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xd7\x05\n\x14\x44\x65rivativeLimitOrder\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12$\n\x0eis_reduce_only\x18\x05 \x01(\x08R\x0cisReduceOnly\x12\x16\n\x06margin\x18\x06 \x01(\tR\x06margin\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x08 \x01(\tR\x08quantity\x12+\n\x11unfilled_quantity\x18\t \x01(\tR\x10unfilledQuantity\x12#\n\rtrigger_price\x18\n \x01(\tR\x0ctriggerPrice\x12#\n\rfee_recipient\x18\x0b \x01(\tR\x0c\x66\x65\x65Recipient\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0e \x01(\x12R\tupdatedAt\x12!\n\x0corder_number\x18\x0f \x01(\x12R\x0borderNumber\x12\x1d\n\norder_type\x18\x10 \x01(\tR\torderType\x12%\n\x0eis_conditional\x18\x11 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x12 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x13 \x01(\tR\x0fplacedOrderHash\x12%\n\x0e\x65xecution_type\x18\x14 \x01(\tR\rexecutionType\x12\x17\n\x07tx_hash\x18\x15 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x16 \x01(\tR\x03\x63id\"\xdc\x02\n\x10PositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xab\x01\n\x11PositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xb0\x03\n\x12\x44\x65rivativePosition\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x43\n\x1e\x61ggregate_reduce_only_quantity\x18\x0b \x01(\tR\x1b\x61ggregateReduceOnlyQuantity\x12\x1d\n\nupdated_at\x18\x0c \x01(\x12R\tupdatedAt\x12\x1d\n\ncreated_at\x18\r \x01(\x12R\tcreatedAt\"\xde\x02\n\x12PositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x05 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x06 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x07 \x03(\tR\tmarketIds\x12\x1c\n\tdirection\x18\x08 \x01(\tR\tdirection\x12<\n\x1asubaccount_total_positions\x18\t \x01(\x08R\x18subaccountTotalPositions\x12\'\n\x0f\x61\x63\x63ount_address\x18\n \x01(\tR\x0e\x61\x63\x63ountAddress\"\xaf\x01\n\x13PositionsV2Response\x12U\n\tpositions\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\tpositions\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xe4\x02\n\x14\x44\x65rivativePositionV2\x12\x16\n\x06ticker\x18\x01 \x01(\tR\x06ticker\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x1a\n\x08quantity\x18\x05 \x01(\tR\x08quantity\x12\x1f\n\x0b\x65ntry_price\x18\x06 \x01(\tR\nentryPrice\x12\x16\n\x06margin\x18\x07 \x01(\tR\x06margin\x12+\n\x11liquidation_price\x18\x08 \x01(\tR\x10liquidationPrice\x12\x1d\n\nmark_price\x18\t \x01(\tR\tmarkPrice\x12\x1d\n\nupdated_at\x18\x0b \x01(\x12R\tupdatedAt\x12\x14\n\x05\x64\x65nom\x18\x0c \x01(\tR\x05\x64\x65nom\"c\n\x1aLiquidablePositionsRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"r\n\x1bLiquidablePositionsResponse\x12S\n\tpositions\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\tpositions\"\xbe\x01\n\x16\x46undingPaymentsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x05 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x06 \x03(\tR\tmarketIds\"\xab\x01\n\x17\x46undingPaymentsResponse\x12M\n\x08payments\x18\x01 \x03(\x0b\x32\x31.injective_derivative_exchange_rpc.FundingPaymentR\x08payments\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\x88\x01\n\x0e\x46undingPayment\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x1c\n\ttimestamp\x18\x04 \x01(\x12R\ttimestamp\"w\n\x13\x46undingRatesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x02 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\"\xae\x01\n\x14\x46undingRatesResponse\x12S\n\rfunding_rates\x18\x01 \x03(\x0b\x32..injective_derivative_exchange_rpc.FundingRateR\x0c\x66undingRates\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\\\n\x0b\x46undingRate\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x12\n\x04rate\x18\x02 \x01(\tR\x04rate\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xc9\x01\n\x16StreamPositionsRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8a\x01\n\x17StreamPositionsResponse\x12Q\n\x08position\x18\x01 \x01(\x0b\x32\x35.injective_derivative_exchange_rpc.DerivativePositionR\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcb\x01\n\x18StreamPositionsV2Request\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1d\n\nmarket_ids\x18\x03 \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\x04 \x03(\tR\rsubaccountIds\x12\'\n\x0f\x61\x63\x63ount_address\x18\x05 \x01(\tR\x0e\x61\x63\x63ountAddress\"\x8e\x01\n\x19StreamPositionsV2Response\x12S\n\x08position\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativePositionV2R\x08position\x12\x1c\n\ttimestamp\x18\x02 \x01(\x12R\ttimestamp\"\xcf\x03\n\x13StreamOrdersRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12\x1d\n\norder_side\x18\x02 \x01(\tR\torderSide\x12#\n\rsubaccount_id\x18\x03 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\x08 \x03(\tR\tmarketIds\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12)\n\x10include_inactive\x18\x0b \x01(\x08R\x0fincludeInactive\x12\x36\n\x17subaccount_total_orders\x18\x0c \x01(\x08R\x15subaccountTotalOrders\x12\x19\n\x08trade_id\x18\r \x01(\tR\x07tradeId\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\"\xaa\x01\n\x14StreamOrdersResponse\x12M\n\x05order\x18\x01 \x01(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xe4\x03\n\rTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\x9f\x01\n\x0eTradesResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xfa\x03\n\x0f\x44\x65rivativeTrade\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\x30\n\x14trade_execution_type\x18\x04 \x01(\tR\x12tradeExecutionType\x12%\n\x0eis_liquidation\x18\x05 \x01(\x08R\risLiquidation\x12W\n\x0eposition_delta\x18\x06 \x01(\x0b\x32\x30.injective_derivative_exchange_rpc.PositionDeltaR\rpositionDelta\x12\x16\n\x06payout\x18\x07 \x01(\tR\x06payout\x12\x10\n\x03\x66\x65\x65\x18\x08 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\t \x01(\x12R\nexecutedAt\x12#\n\rfee_recipient\x18\n \x01(\tR\x0c\x66\x65\x65Recipient\x12\x19\n\x08trade_id\x18\x0b \x01(\tR\x07tradeId\x12%\n\x0e\x65xecution_side\x18\x0c \x01(\tR\rexecutionSide\x12\x10\n\x03\x63id\x18\r \x01(\tR\x03\x63id\x12\x10\n\x03pnl\x18\x0e \x01(\tR\x03pnl\"\xbb\x01\n\rPositionDelta\x12\'\n\x0ftrade_direction\x18\x01 \x01(\tR\x0etradeDirection\x12\'\n\x0f\x65xecution_price\x18\x02 \x01(\tR\x0e\x65xecutionPrice\x12-\n\x12\x65xecution_quantity\x18\x03 \x01(\tR\x11\x65xecutionQuantity\x12)\n\x10\x65xecution_margin\x18\x04 \x01(\tR\x0f\x65xecutionMargin\"\xe6\x03\n\x0fTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa1\x01\n\x10TradesV2Response\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xea\x03\n\x13StreamTradesRequest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa5\x01\n\x14StreamTradesResponse\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\xec\x03\n\x15StreamTradesV2Request\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_side\x18\x02 \x01(\tR\rexecutionSide\x12\x1c\n\tdirection\x18\x03 \x01(\tR\tdirection\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12\x1d\n\nmarket_ids\x18\t \x03(\tR\tmarketIds\x12%\n\x0esubaccount_ids\x18\n \x03(\tR\rsubaccountIds\x12\'\n\x0f\x65xecution_types\x18\x0b \x03(\tR\x0e\x65xecutionTypes\x12\x19\n\x08trade_id\x18\x0c \x01(\tR\x07tradeId\x12\'\n\x0f\x61\x63\x63ount_address\x18\r \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x10\n\x03\x63id\x18\x0e \x01(\tR\x03\x63id\x12#\n\rfee_recipient\x18\x0f \x01(\tR\x0c\x66\x65\x65Recipient\"\xa7\x01\n\x16StreamTradesV2Response\x12H\n\x05trade\x18\x01 \x01(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x05trade\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"\x89\x01\n\x1bSubaccountOrdersListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\"\xb2\x01\n\x1cSubaccountOrdersListResponse\x12O\n\x06orders\x18\x01 \x03(\x0b\x32\x37.injective_derivative_exchange_rpc.DerivativeLimitOrderR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xce\x01\n\x1bSubaccountTradesListRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12%\n\x0e\x65xecution_type\x18\x03 \x01(\tR\rexecutionType\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x06 \x01(\x11R\x05limit\"j\n\x1cSubaccountTradesListResponse\x12J\n\x06trades\x18\x01 \x03(\x0b\x32\x32.injective_derivative_exchange_rpc.DerivativeTradeR\x06trades\"\xfc\x03\n\x14OrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x1f\n\x0border_types\x18\x05 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x06 \x01(\tR\tdirection\x12\x1d\n\nstart_time\x18\x07 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x08 \x01(\x12R\x07\x65ndTime\x12%\n\x0eis_conditional\x18\t \x01(\tR\risConditional\x12\x1d\n\norder_type\x18\n \x01(\tR\torderType\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x0c \x03(\tR\x0e\x65xecutionTypes\x12\x1d\n\nmarket_ids\x18\r \x03(\tR\tmarketIds\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\x12.\n\x13\x61\x63tive_markets_only\x18\x0f \x01(\x08R\x11\x61\x63tiveMarketsOnly\x12\x10\n\x03\x63id\x18\x10 \x01(\tR\x03\x63id\"\xad\x01\n\x15OrdersHistoryResponse\x12Q\n\x06orders\x18\x01 \x03(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x06orders\x12\x41\n\x06paging\x18\x02 \x01(\x0b\x32).injective_derivative_exchange_rpc.PagingR\x06paging\"\xa9\x05\n\x16\x44\x65rivativeOrderHistory\x12\x1d\n\norder_hash\x18\x01 \x01(\tR\torderHash\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1b\n\tis_active\x18\x03 \x01(\x08R\x08isActive\x12#\n\rsubaccount_id\x18\x04 \x01(\tR\x0csubaccountId\x12%\n\x0e\x65xecution_type\x18\x05 \x01(\tR\rexecutionType\x12\x1d\n\norder_type\x18\x06 \x01(\tR\torderType\x12\x14\n\x05price\x18\x07 \x01(\tR\x05price\x12#\n\rtrigger_price\x18\x08 \x01(\tR\x0ctriggerPrice\x12\x1a\n\x08quantity\x18\t \x01(\tR\x08quantity\x12\'\n\x0f\x66illed_quantity\x18\n \x01(\tR\x0e\x66illedQuantity\x12\x14\n\x05state\x18\x0b \x01(\tR\x05state\x12\x1d\n\ncreated_at\x18\x0c \x01(\x12R\tcreatedAt\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\x12$\n\x0eis_reduce_only\x18\x0e \x01(\x08R\x0cisReduceOnly\x12\x1c\n\tdirection\x18\x0f \x01(\tR\tdirection\x12%\n\x0eis_conditional\x18\x10 \x01(\x08R\risConditional\x12\x1d\n\ntrigger_at\x18\x11 \x01(\x04R\ttriggerAt\x12*\n\x11placed_order_hash\x18\x12 \x01(\tR\x0fplacedOrderHash\x12\x16\n\x06margin\x18\x13 \x01(\tR\x06margin\x12\x17\n\x07tx_hash\x18\x14 \x01(\tR\x06txHash\x12\x10\n\x03\x63id\x18\x15 \x01(\tR\x03\x63id\"\xdc\x01\n\x1aStreamOrdersHistoryRequest\x12#\n\rsubaccount_id\x18\x01 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x02 \x01(\tR\x08marketId\x12\x1f\n\x0border_types\x18\x03 \x03(\tR\norderTypes\x12\x1c\n\tdirection\x18\x04 \x01(\tR\tdirection\x12\x14\n\x05state\x18\x05 \x01(\tR\x05state\x12\'\n\x0f\x65xecution_types\x18\x06 \x03(\tR\x0e\x65xecutionTypes\"\xb3\x01\n\x1bStreamOrdersHistoryResponse\x12O\n\x05order\x18\x01 \x01(\x0b\x32\x39.injective_derivative_exchange_rpc.DerivativeOrderHistoryR\x05order\x12%\n\x0eoperation_type\x18\x02 \x01(\tR\roperationType\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp\"5\n\x13OpenInterestRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"t\n\x14OpenInterestResponse\x12\\\n\x0eopen_interests\x18\x01 \x03(\x0b\x32\x35.injective_derivative_exchange_rpc.MarketOpenInterestR\ropenInterests\"V\n\x12MarketOpenInterest\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12#\n\ropen_interest\x18\x02 \x01(\tR\x0copenInterest2\xd8\x1c\n\x1eInjectiveDerivativeExchangeRPC\x12p\n\x07Markets\x12\x31.injective_derivative_exchange_rpc.MarketsRequest\x1a\x32.injective_derivative_exchange_rpc.MarketsResponse\x12m\n\x06Market\x12\x30.injective_derivative_exchange_rpc.MarketRequest\x1a\x31.injective_derivative_exchange_rpc.MarketResponse\x12\x81\x01\n\x0cStreamMarket\x12\x36.injective_derivative_exchange_rpc.StreamMarketRequest\x1a\x37.injective_derivative_exchange_rpc.StreamMarketResponse0\x01\x12\x97\x01\n\x14\x42inaryOptionsMarkets\x12>.injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest\x1a?.injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse\x12\x94\x01\n\x13\x42inaryOptionsMarket\x12=.injective_derivative_exchange_rpc.BinaryOptionsMarketRequest\x1a>.injective_derivative_exchange_rpc.BinaryOptionsMarketResponse\x12|\n\x0bOrderbookV2\x12\x35.injective_derivative_exchange_rpc.OrderbookV2Request\x1a\x36.injective_derivative_exchange_rpc.OrderbookV2Response\x12\x7f\n\x0cOrderbooksV2\x12\x36.injective_derivative_exchange_rpc.OrderbooksV2Request\x1a\x37.injective_derivative_exchange_rpc.OrderbooksV2Response\x12\x90\x01\n\x11StreamOrderbookV2\x12;.injective_derivative_exchange_rpc.StreamOrderbookV2Request\x1a<.injective_derivative_exchange_rpc.StreamOrderbookV2Response0\x01\x12\x9c\x01\n\x15StreamOrderbookUpdate\x12?.injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest\x1a@.injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse0\x01\x12m\n\x06Orders\x12\x30.injective_derivative_exchange_rpc.OrdersRequest\x1a\x31.injective_derivative_exchange_rpc.OrdersResponse\x12v\n\tPositions\x12\x33.injective_derivative_exchange_rpc.PositionsRequest\x1a\x34.injective_derivative_exchange_rpc.PositionsResponse\x12|\n\x0bPositionsV2\x12\x35.injective_derivative_exchange_rpc.PositionsV2Request\x1a\x36.injective_derivative_exchange_rpc.PositionsV2Response\x12\x94\x01\n\x13LiquidablePositions\x12=.injective_derivative_exchange_rpc.LiquidablePositionsRequest\x1a>.injective_derivative_exchange_rpc.LiquidablePositionsResponse\x12\x88\x01\n\x0f\x46undingPayments\x12\x39.injective_derivative_exchange_rpc.FundingPaymentsRequest\x1a:.injective_derivative_exchange_rpc.FundingPaymentsResponse\x12\x7f\n\x0c\x46undingRates\x12\x36.injective_derivative_exchange_rpc.FundingRatesRequest\x1a\x37.injective_derivative_exchange_rpc.FundingRatesResponse\x12\x8a\x01\n\x0fStreamPositions\x12\x39.injective_derivative_exchange_rpc.StreamPositionsRequest\x1a:.injective_derivative_exchange_rpc.StreamPositionsResponse0\x01\x12\x90\x01\n\x11StreamPositionsV2\x12;.injective_derivative_exchange_rpc.StreamPositionsV2Request\x1a<.injective_derivative_exchange_rpc.StreamPositionsV2Response0\x01\x12\x81\x01\n\x0cStreamOrders\x12\x36.injective_derivative_exchange_rpc.StreamOrdersRequest\x1a\x37.injective_derivative_exchange_rpc.StreamOrdersResponse0\x01\x12m\n\x06Trades\x12\x30.injective_derivative_exchange_rpc.TradesRequest\x1a\x31.injective_derivative_exchange_rpc.TradesResponse\x12s\n\x08TradesV2\x12\x32.injective_derivative_exchange_rpc.TradesV2Request\x1a\x33.injective_derivative_exchange_rpc.TradesV2Response\x12\x81\x01\n\x0cStreamTrades\x12\x36.injective_derivative_exchange_rpc.StreamTradesRequest\x1a\x37.injective_derivative_exchange_rpc.StreamTradesResponse0\x01\x12\x87\x01\n\x0eStreamTradesV2\x12\x38.injective_derivative_exchange_rpc.StreamTradesV2Request\x1a\x39.injective_derivative_exchange_rpc.StreamTradesV2Response0\x01\x12\x97\x01\n\x14SubaccountOrdersList\x12>.injective_derivative_exchange_rpc.SubaccountOrdersListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountOrdersListResponse\x12\x97\x01\n\x14SubaccountTradesList\x12>.injective_derivative_exchange_rpc.SubaccountTradesListRequest\x1a?.injective_derivative_exchange_rpc.SubaccountTradesListResponse\x12\x82\x01\n\rOrdersHistory\x12\x37.injective_derivative_exchange_rpc.OrdersHistoryRequest\x1a\x38.injective_derivative_exchange_rpc.OrdersHistoryResponse\x12\x96\x01\n\x13StreamOrdersHistory\x12=.injective_derivative_exchange_rpc.StreamOrdersHistoryRequest\x1a>.injective_derivative_exchange_rpc.StreamOrdersHistoryResponse0\x01\x12\x7f\n\x0cOpenInterest\x12\x36.injective_derivative_exchange_rpc.OpenInterestRequest\x1a\x37.injective_derivative_exchange_rpc.OpenInterestResponseB\x8a\x02\n%com.injective_derivative_exchange_rpcB#InjectiveDerivativeExchangeRpcProtoP\x01Z$/injective_derivative_exchange_rpcpb\xa2\x02\x03IXX\xaa\x02\x1eInjectiveDerivativeExchangeRpc\xca\x02\x1eInjectiveDerivativeExchangeRpc\xe2\x02*InjectiveDerivativeExchangeRpc\\GPBMetadata\xea\x02\x1eInjectiveDerivativeExchangeRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -133,45 +133,45 @@ _globals['_TRADESRESPONSE']._serialized_start=12023 _globals['_TRADESRESPONSE']._serialized_end=12182 _globals['_DERIVATIVETRADE']._serialized_start=12185 - _globals['_DERIVATIVETRADE']._serialized_end=12673 - _globals['_POSITIONDELTA']._serialized_start=12676 - _globals['_POSITIONDELTA']._serialized_end=12863 - _globals['_TRADESV2REQUEST']._serialized_start=12866 - _globals['_TRADESV2REQUEST']._serialized_end=13352 - _globals['_TRADESV2RESPONSE']._serialized_start=13355 - _globals['_TRADESV2RESPONSE']._serialized_end=13516 - _globals['_STREAMTRADESREQUEST']._serialized_start=13519 - _globals['_STREAMTRADESREQUEST']._serialized_end=14009 - _globals['_STREAMTRADESRESPONSE']._serialized_start=14012 - _globals['_STREAMTRADESRESPONSE']._serialized_end=14177 - _globals['_STREAMTRADESV2REQUEST']._serialized_start=14180 - _globals['_STREAMTRADESV2REQUEST']._serialized_end=14672 - _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14675 - _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14842 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14845 - _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=14982 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=14985 - _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15163 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15166 - _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15372 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15374 - _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15480 - _globals['_ORDERSHISTORYREQUEST']._serialized_start=15483 - _globals['_ORDERSHISTORYREQUEST']._serialized_end=15991 - _globals['_ORDERSHISTORYRESPONSE']._serialized_start=15994 - _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16167 - _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16170 - _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16851 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16854 - _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=17074 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=17077 - _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17256 - _globals['_OPENINTERESTREQUEST']._serialized_start=17258 - _globals['_OPENINTERESTREQUEST']._serialized_end=17311 - _globals['_OPENINTERESTRESPONSE']._serialized_start=17313 - _globals['_OPENINTERESTRESPONSE']._serialized_end=17429 - _globals['_MARKETOPENINTEREST']._serialized_start=17431 - _globals['_MARKETOPENINTEREST']._serialized_end=17517 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17520 - _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=21192 + _globals['_DERIVATIVETRADE']._serialized_end=12691 + _globals['_POSITIONDELTA']._serialized_start=12694 + _globals['_POSITIONDELTA']._serialized_end=12881 + _globals['_TRADESV2REQUEST']._serialized_start=12884 + _globals['_TRADESV2REQUEST']._serialized_end=13370 + _globals['_TRADESV2RESPONSE']._serialized_start=13373 + _globals['_TRADESV2RESPONSE']._serialized_end=13534 + _globals['_STREAMTRADESREQUEST']._serialized_start=13537 + _globals['_STREAMTRADESREQUEST']._serialized_end=14027 + _globals['_STREAMTRADESRESPONSE']._serialized_start=14030 + _globals['_STREAMTRADESRESPONSE']._serialized_end=14195 + _globals['_STREAMTRADESV2REQUEST']._serialized_start=14198 + _globals['_STREAMTRADESV2REQUEST']._serialized_end=14690 + _globals['_STREAMTRADESV2RESPONSE']._serialized_start=14693 + _globals['_STREAMTRADESV2RESPONSE']._serialized_end=14860 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_start=14863 + _globals['_SUBACCOUNTORDERSLISTREQUEST']._serialized_end=15000 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_start=15003 + _globals['_SUBACCOUNTORDERSLISTRESPONSE']._serialized_end=15181 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_start=15184 + _globals['_SUBACCOUNTTRADESLISTREQUEST']._serialized_end=15390 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_start=15392 + _globals['_SUBACCOUNTTRADESLISTRESPONSE']._serialized_end=15498 + _globals['_ORDERSHISTORYREQUEST']._serialized_start=15501 + _globals['_ORDERSHISTORYREQUEST']._serialized_end=16009 + _globals['_ORDERSHISTORYRESPONSE']._serialized_start=16012 + _globals['_ORDERSHISTORYRESPONSE']._serialized_end=16185 + _globals['_DERIVATIVEORDERHISTORY']._serialized_start=16188 + _globals['_DERIVATIVEORDERHISTORY']._serialized_end=16869 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_start=16872 + _globals['_STREAMORDERSHISTORYREQUEST']._serialized_end=17092 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_start=17095 + _globals['_STREAMORDERSHISTORYRESPONSE']._serialized_end=17274 + _globals['_OPENINTERESTREQUEST']._serialized_start=17276 + _globals['_OPENINTERESTREQUEST']._serialized_end=17329 + _globals['_OPENINTERESTRESPONSE']._serialized_start=17331 + _globals['_OPENINTERESTRESPONSE']._serialized_end=17447 + _globals['_MARKETOPENINTEREST']._serialized_start=17449 + _globals['_MARKETOPENINTEREST']._serialized_end=17535 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_start=17538 + _globals['_INJECTIVEDERIVATIVEEXCHANGERPC']._serialized_end=21210 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py index a688b45e..279799bf 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x9b\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x14\n\x05limit\x18\x05 \x01(\x11R\x05limit\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"h\n\x18GetContractTxsV2Response\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xdf\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"E\n\x12GetBlocksV2Request\x12\x19\n\x08per_page\x18\x01 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x84\x01\n\x13GetBlocksV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"V\n\x06\x43ursor\x12\x12\n\x04\x66rom\x18\x01 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x02 \x01(\x11R\x02to\x12\x12\n\x04next\x18\x03 \x03(\tR\x04next\x12\x14\n\x05total\x18\x04 \x01(\x12R\x05total\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xff\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0b \x01(\x04R\x12\x62lockUnixTimestamp\"\xc8\x03\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\x12\x41\n\nsignatures\x18\r \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0e \x01(\x04R\x12\x62lockUnixTimestamp\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"\x90\x01\n\x0fGetTxsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nstart_time\x18\x02 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x03 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x04 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\"~\n\x10GetTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xd1\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xea\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\x11\n\x0fGetStatsRequest\"\x9c\x02\n\x10GetStatsResponse\x12\x1c\n\taddresses\x18\x01 \x01(\x04R\taddresses\x12\x16\n\x06\x61ssets\x18\x02 \x01(\x04R\x06\x61ssets\x12\x1d\n\ninj_supply\x18\x03 \x01(\x04R\tinjSupply\x12\x1c\n\ntxs_ps24_h\x18\x04 \x01(\x04R\x08txsPs24H\x12\x1e\n\x0btxs_ps100_b\x18\x05 \x01(\x04R\ttxsPs100B\x12\x1b\n\ttxs_total\x18\x06 \x01(\x04R\x08txsTotal\x12\x17\n\x07txs24_h\x18\x07 \x01(\x04R\x06txs24H\x12\x17\n\x07txs30_d\x18\x08 \x01(\x04R\x06txs30D\x12&\n\x0f\x62lock_count24_h\x18\t \x01(\x04R\rblockCount24H2\xec\x15\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12\x66\n\x0bGetBlocksV2\x12*.injective_explorer_rpc.GetBlocksV2Request\x1a+.injective_explorer_rpc.GetBlocksV2Response\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12]\n\x08GetTxsV2\x12\'.injective_explorer_rpc.GetTxsV2Request\x1a(.injective_explorer_rpc.GetTxsV2Response\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x12]\n\x08GetStats\x12\'.injective_explorer_rpc.GetStatsRequest\x1a(.injective_explorer_rpc.GetStatsResponseB\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_explorer_rpc.proto\x12\x16injective_explorer_rpc\"\xc4\x02\n\x14GetAccountTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x62\x65\x66ore\x18\x02 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x03 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x06 \x01(\tR\x04type\x12\x16\n\x06module\x18\x07 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x08 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\t \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\n \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x0b \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0c \x01(\tR\x06status\"\x89\x01\n\x15GetAccountTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x86\x01\n\x06Paging\x12\x14\n\x05total\x18\x01 \x01(\x12R\x05total\x12\x12\n\x04\x66rom\x18\x02 \x01(\x11R\x04\x66rom\x12\x0e\n\x02to\x18\x03 \x01(\x11R\x02to\x12.\n\x13\x63ount_by_subaccount\x18\x04 \x01(\x12R\x11\x63ountBySubaccount\x12\x12\n\x04next\x18\x05 \x03(\tR\x04next\"\xab\x05\n\x0cTxDetailData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x12\n\x04\x63ode\x18\x05 \x01(\rR\x04\x63ode\x12\x12\n\x04\x64\x61ta\x18\x06 \x01(\x0cR\x04\x64\x61ta\x12\x12\n\x04info\x18\x08 \x01(\tR\x04info\x12\x1d\n\ngas_wanted\x18\t \x01(\x12R\tgasWanted\x12\x19\n\x08gas_used\x18\n \x01(\x12R\x07gasUsed\x12\x37\n\x07gas_fee\x18\x0b \x01(\x0b\x32\x1e.injective_explorer_rpc.GasFeeR\x06gasFee\x12\x1c\n\tcodespace\x18\x0c \x01(\tR\tcodespace\x12\x35\n\x06\x65vents\x18\r \x03(\x0b\x32\x1d.injective_explorer_rpc.EventR\x06\x65vents\x12\x17\n\x07tx_type\x18\x0e \x01(\tR\x06txType\x12\x1a\n\x08messages\x18\x0f \x01(\x0cR\x08messages\x12\x41\n\nsignatures\x18\x10 \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x12\n\x04memo\x18\x11 \x01(\tR\x04memo\x12\x1b\n\ttx_number\x18\x12 \x01(\x04R\x08txNumber\x12\x30\n\x14\x62lock_unix_timestamp\x18\x13 \x01(\x04R\x12\x62lockUnixTimestamp\x12\x1b\n\terror_log\x18\x14 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04logs\x18\x15 \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x16 \x03(\x12R\x08\x63laimIds\"\x91\x01\n\x06GasFee\x12:\n\x06\x61mount\x18\x01 \x03(\x0b\x32\".injective_explorer_rpc.CosmosCoinR\x06\x61mount\x12\x1b\n\tgas_limit\x18\x02 \x01(\x04R\x08gasLimit\x12\x14\n\x05payer\x18\x03 \x01(\tR\x05payer\x12\x18\n\x07granter\x18\x04 \x01(\tR\x07granter\":\n\nCosmosCoin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa9\x01\n\x05\x45vent\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12M\n\nattributes\x18\x02 \x03(\x0b\x32-.injective_explorer_rpc.Event.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"w\n\tSignature\x12\x16\n\x06pubkey\x18\x01 \x01(\tR\x06pubkey\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x1a\n\x08sequence\x18\x03 \x01(\x04R\x08sequence\x12\x1c\n\tsignature\x18\x04 \x01(\tR\tsignature\"\xb1\x01\n\x16GetAccountTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x1d\n\nstart_time\x18\x03 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\"\x8b\x01\n\x17GetAccountTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\x1c\n\x06\x43ursor\x12\x12\n\x04next\x18\x01 \x03(\tR\x04next\"\x99\x01\n\x15GetContractTxsRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x03 \x01(\x04R\x04skip\x12\x1f\n\x0b\x66rom_number\x18\x04 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x05 \x01(\x12R\x08toNumber\"\x8a\x01\n\x16GetContractTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"\xb8\x01\n\x17GetContractTxsV2Request\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06height\x18\x02 \x01(\x04R\x06height\x12\x12\n\x04\x66rom\x18\x03 \x01(\x12R\x04\x66rom\x12\x0e\n\x02to\x18\x04 \x01(\x12R\x02to\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x16\n\x06status\x18\x07 \x01(\tR\x06status\"\x8c\x01\n\x18GetContractTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"z\n\x10GetBlocksRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04\x66rom\x18\x04 \x01(\x04R\x04\x66rom\x12\x0e\n\x02to\x18\x05 \x01(\x04R\x02to\"\x82\x01\n\x11GetBlocksResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"\xdf\x02\n\tBlockInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\xa0\x02\n\tTxDataRPC\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"E\n\x12GetBlocksV2Request\x12\x19\n\x08per_page\x18\x01 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x84\x01\n\x13GetBlocksV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x35\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32!.injective_explorer_rpc.BlockInfoR\x04\x64\x61ta\"!\n\x0fGetBlockRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"u\n\x10GetBlockResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\'.injective_explorer_rpc.BlockDetailInfoR\x04\x64\x61ta\"\xff\x02\n\x0f\x42lockDetailInfo\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x1b\n\ttotal_txs\x18\x08 \x01(\x12R\x08totalTxs\x12\x30\n\x03txs\x18\t \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x03txs\x12\x1c\n\ttimestamp\x18\n \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0b \x01(\x04R\x12\x62lockUnixTimestamp\"\xc8\x03\n\x06TxData\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\x0cR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12 \n\x0ctx_msg_types\x18\n \x01(\x0cR\ntxMsgTypes\x12\x12\n\x04logs\x18\x0b \x01(\x0cR\x04logs\x12\x1b\n\tclaim_ids\x18\x0c \x03(\x12R\x08\x63laimIds\x12\x41\n\nsignatures\x18\r \x03(\x0b\x32!.injective_explorer_rpc.SignatureR\nsignatures\x12\x30\n\x14\x62lock_unix_timestamp\x18\x0e \x01(\x04R\x12\x62lockUnixTimestamp\"\x16\n\x14GetValidatorsRequest\"t\n\x15GetValidatorsResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"\xb5\x07\n\tValidator\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12)\n\x10operator_address\x18\x03 \x01(\tR\x0foperatorAddress\x12+\n\x11\x63onsensus_address\x18\x04 \x01(\tR\x10\x63onsensusAddress\x12\x16\n\x06jailed\x18\x05 \x01(\x08R\x06jailed\x12\x16\n\x06status\x18\x06 \x01(\x11R\x06status\x12\x16\n\x06tokens\x18\x07 \x01(\tR\x06tokens\x12)\n\x10\x64\x65legator_shares\x18\x08 \x01(\tR\x0f\x64\x65legatorShares\x12N\n\x0b\x64\x65scription\x18\t \x01(\x0b\x32,.injective_explorer_rpc.ValidatorDescriptionR\x0b\x64\x65scription\x12)\n\x10unbonding_height\x18\n \x01(\x12R\x0funbondingHeight\x12%\n\x0eunbonding_time\x18\x0b \x01(\tR\runbondingTime\x12\'\n\x0f\x63ommission_rate\x18\x0c \x01(\tR\x0e\x63ommissionRate\x12.\n\x13\x63ommission_max_rate\x18\r \x01(\tR\x11\x63ommissionMaxRate\x12;\n\x1a\x63ommission_max_change_rate\x18\x0e \x01(\tR\x17\x63ommissionMaxChangeRate\x12\x34\n\x16\x63ommission_update_time\x18\x0f \x01(\tR\x14\x63ommissionUpdateTime\x12\x1a\n\x08proposed\x18\x10 \x01(\x04R\x08proposed\x12\x16\n\x06signed\x18\x11 \x01(\x04R\x06signed\x12\x16\n\x06missed\x18\x12 \x01(\x04R\x06missed\x12\x1c\n\ttimestamp\x18\x13 \x01(\tR\ttimestamp\x12\x41\n\x07uptimes\x18\x14 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x07uptimes\x12N\n\x0fslashing_events\x18\x15 \x03(\x0b\x32%.injective_explorer_rpc.SlashingEventR\x0eslashingEvents\x12+\n\x11uptime_percentage\x18\x16 \x01(\x01R\x10uptimePercentage\x12\x1b\n\timage_url\x18\x17 \x01(\tR\x08imageUrl\"\xc8\x01\n\x14ValidatorDescription\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x1a\n\x08identity\x18\x02 \x01(\tR\x08identity\x12\x18\n\x07website\x18\x03 \x01(\tR\x07website\x12)\n\x10security_contact\x18\x04 \x01(\tR\x0fsecurityContact\x12\x18\n\x07\x64\x65tails\x18\x05 \x01(\tR\x07\x64\x65tails\x12\x1b\n\timage_url\x18\x06 \x01(\tR\x08imageUrl\"L\n\x0fValidatorUptime\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\x16\n\x06status\x18\x02 \x01(\tR\x06status\"\xe0\x01\n\rSlashingEvent\x12!\n\x0c\x62lock_number\x18\x01 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x02 \x01(\tR\x0e\x62lockTimestamp\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05power\x18\x04 \x01(\x04R\x05power\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06jailed\x18\x06 \x01(\tR\x06jailed\x12#\n\rmissed_blocks\x18\x07 \x01(\x04R\x0cmissedBlocks\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"s\n\x14GetValidatorResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x35\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32!.injective_explorer_rpc.ValidatorR\x04\x64\x61ta\"5\n\x19GetValidatorUptimeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"\x7f\n\x1aGetValidatorUptimeResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12;\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\'.injective_explorer_rpc.ValidatorUptimeR\x04\x64\x61ta\"\xa3\x02\n\rGetTxsRequest\x12\x16\n\x06\x62\x65\x66ore\x18\x01 \x01(\x04R\x06\x62\x65\x66ore\x12\x14\n\x05\x61\x66ter\x18\x02 \x01(\x04R\x05\x61\x66ter\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\x12\x12\n\x04type\x18\x05 \x01(\tR\x04type\x12\x16\n\x06module\x18\x06 \x01(\tR\x06module\x12\x1f\n\x0b\x66rom_number\x18\x07 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x08 \x01(\x12R\x08toNumber\x12\x1d\n\nstart_time\x18\t \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\n \x01(\x12R\x07\x65ndTime\x12\x16\n\x06status\x18\x0b \x01(\tR\x06status\"|\n\x0eGetTxsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"\xcb\x01\n\x0fGetTxsV2Request\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x1d\n\nstart_time\x18\x02 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x03 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x04 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12\x16\n\x06status\x18\x06 \x01(\tR\x06status\x12!\n\x0c\x62lock_number\x18\x07 \x01(\x04R\x0b\x62lockNumber\"~\n\x10GetTxsV2Response\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.CursorR\x06paging\x12\x32\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x1e.injective_explorer_rpc.TxDataR\x04\x64\x61ta\"*\n\x14GetTxByTxHashRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"w\n\x15GetTxByTxHashResponse\x12\x0c\n\x01s\x18\x01 \x01(\tR\x01s\x12\x16\n\x06\x65rrmsg\x18\x02 \x01(\tR\x06\x65rrmsg\x12\x38\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32$.injective_explorer_rpc.TxDetailDataR\x04\x64\x61ta\"y\n\x19GetPeggyDepositTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"Z\n\x1aGetPeggyDepositTxsResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.PeggyDepositTxR\x05\x66ield\"\xf9\x02\n\x0ePeggyDepositTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0b\x65vent_nonce\x18\x03 \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x04 \x01(\x04R\x0b\x65ventHeight\x12\x16\n\x06\x61mount\x18\x05 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x06 \x01(\tR\x05\x64\x65nom\x12\x31\n\x14orchestrator_address\x18\x07 \x01(\tR\x13orchestratorAddress\x12\x14\n\x05state\x18\x08 \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\t \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\n \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0b \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x0c \x01(\tR\tupdatedAt\"|\n\x1cGetPeggyWithdrawalTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x04 \x01(\x04R\x04skip\"`\n\x1dGetPeggyWithdrawalTxsResponse\x12?\n\x05\x66ield\x18\x01 \x03(\x0b\x32).injective_explorer_rpc.PeggyWithdrawalTxR\x05\x66ield\"\x87\x04\n\x11PeggyWithdrawalTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x16\n\x06\x61mount\x18\x03 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x04 \x01(\tR\x05\x64\x65nom\x12\x1d\n\nbridge_fee\x18\x05 \x01(\tR\tbridgeFee\x12$\n\x0eoutgoing_tx_id\x18\x06 \x01(\x04R\x0coutgoingTxId\x12#\n\rbatch_timeout\x18\x07 \x01(\x04R\x0c\x62\x61tchTimeout\x12\x1f\n\x0b\x62\x61tch_nonce\x18\x08 \x01(\x04R\nbatchNonce\x12\x31\n\x14orchestrator_address\x18\t \x01(\tR\x13orchestratorAddress\x12\x1f\n\x0b\x65vent_nonce\x18\n \x01(\x04R\neventNonce\x12!\n\x0c\x65vent_height\x18\x0b \x01(\x04R\x0b\x65ventHeight\x12\x14\n\x05state\x18\x0c \x01(\tR\x05state\x12\x1d\n\nclaim_type\x18\r \x01(\x11R\tclaimType\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"\xf4\x01\n\x18GetIBCTransferTxsRequest\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsrc_channel\x18\x03 \x01(\tR\nsrcChannel\x12\x19\n\x08src_port\x18\x04 \x01(\tR\x07srcPort\x12!\n\x0c\x64\x65st_channel\x18\x05 \x01(\tR\x0b\x64\x65stChannel\x12\x1b\n\tdest_port\x18\x06 \x01(\tR\x08\x64\x65stPort\x12\x14\n\x05limit\x18\x07 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x08 \x01(\x04R\x04skip\"X\n\x19GetIBCTransferTxsResponse\x12;\n\x05\x66ield\x18\x01 \x03(\x0b\x32%.injective_explorer_rpc.IBCTransferTxR\x05\x66ield\"\x9e\x04\n\rIBCTransferTx\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1a\n\x08receiver\x18\x02 \x01(\tR\x08receiver\x12\x1f\n\x0bsource_port\x18\x03 \x01(\tR\nsourcePort\x12%\n\x0esource_channel\x18\x04 \x01(\tR\rsourceChannel\x12)\n\x10\x64\x65stination_port\x18\x05 \x01(\tR\x0f\x64\x65stinationPort\x12/\n\x13\x64\x65stination_channel\x18\x06 \x01(\tR\x12\x64\x65stinationChannel\x12\x16\n\x06\x61mount\x18\x07 \x01(\tR\x06\x61mount\x12\x14\n\x05\x64\x65nom\x18\x08 \x01(\tR\x05\x64\x65nom\x12%\n\x0etimeout_height\x18\t \x01(\tR\rtimeoutHeight\x12+\n\x11timeout_timestamp\x18\n \x01(\x04R\x10timeoutTimestamp\x12\'\n\x0fpacket_sequence\x18\x0b \x01(\x04R\x0epacketSequence\x12\x19\n\x08\x64\x61ta_hex\x18\x0c \x01(\x0cR\x07\x64\x61taHex\x12\x14\n\x05state\x18\r \x01(\tR\x05state\x12\x1b\n\ttx_hashes\x18\x0e \x03(\tR\x08txHashes\x12\x1d\n\ncreated_at\x18\x0f \x01(\tR\tcreatedAt\x12\x1d\n\nupdated_at\x18\x10 \x01(\tR\tupdatedAt\"i\n\x13GetWasmCodesRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x1f\n\x0b\x66rom_number\x18\x02 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x03 \x01(\x12R\x08toNumber\"\x84\x01\n\x14GetWasmCodesResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x34\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32 .injective_explorer_rpc.WasmCodeR\x04\x64\x61ta\"\xe2\x03\n\x08WasmCode\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"<\n\x08\x43hecksum\x12\x1c\n\talgorithm\x18\x01 \x01(\tR\talgorithm\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\"O\n\x12\x43ontractPermission\x12\x1f\n\x0b\x61\x63\x63\x65ss_type\x18\x01 \x01(\x11R\naccessType\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\"1\n\x16GetWasmCodeByIDRequest\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x12R\x06\x63odeId\"\xf1\x03\n\x17GetWasmCodeByIDResponse\x12\x17\n\x07\x63ode_id\x18\x01 \x01(\x04R\x06\x63odeId\x12\x17\n\x07tx_hash\x18\x02 \x01(\tR\x06txHash\x12<\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .injective_explorer_rpc.ChecksumR\x08\x63hecksum\x12\x1d\n\ncreated_at\x18\x04 \x01(\x04R\tcreatedAt\x12#\n\rcontract_type\x18\x05 \x01(\tR\x0c\x63ontractType\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12J\n\npermission\x18\x07 \x01(\x0b\x32*.injective_explorer_rpc.ContractPermissionR\npermission\x12\x1f\n\x0b\x63ode_schema\x18\x08 \x01(\tR\ncodeSchema\x12\x1b\n\tcode_view\x18\t \x01(\tR\x08\x63odeView\x12\"\n\x0cinstantiates\x18\n \x01(\x04R\x0cinstantiates\x12\x18\n\x07\x63reator\x18\x0b \x01(\tR\x07\x63reator\x12\x1f\n\x0b\x63ode_number\x18\x0c \x01(\x12R\ncodeNumber\x12\x1f\n\x0bproposal_id\x18\r \x01(\x12R\nproposalId\"\xff\x01\n\x17GetWasmContractsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x11R\x05limit\x12\x17\n\x07\x63ode_id\x18\x02 \x01(\x12R\x06\x63odeId\x12\x1f\n\x0b\x66rom_number\x18\x03 \x01(\x12R\nfromNumber\x12\x1b\n\tto_number\x18\x04 \x01(\x12R\x08toNumber\x12\x1f\n\x0b\x61ssets_only\x18\x05 \x01(\x08R\nassetsOnly\x12\x12\n\x04skip\x18\x06 \x01(\x12R\x04skip\x12\x14\n\x05label\x18\x07 \x01(\tR\x05label\x12\x14\n\x05token\x18\x08 \x01(\tR\x05token\x12\x16\n\x06lookup\x18\t \x01(\tR\x06lookup\"\x8c\x01\n\x18GetWasmContractsResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.WasmContractR\x04\x64\x61ta\"\xe9\x04\n\x0cWasmContract\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"<\n\x0c\x43ontractFund\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\"\xa6\x01\n\x0c\x43w20Metadata\x12\x44\n\ntoken_info\x18\x01 \x01(\x0b\x32%.injective_explorer_rpc.Cw20TokenInfoR\ttokenInfo\x12P\n\x0emarketing_info\x18\x02 \x01(\x0b\x32).injective_explorer_rpc.Cw20MarketingInfoR\rmarketingInfo\"z\n\rCw20TokenInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n\x06symbol\x18\x02 \x01(\tR\x06symbol\x12\x1a\n\x08\x64\x65\x63imals\x18\x03 \x01(\x12R\x08\x64\x65\x63imals\x12!\n\x0ctotal_supply\x18\x04 \x01(\tR\x0btotalSupply\"\x81\x01\n\x11\x43w20MarketingInfo\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12 \n\x0b\x64\x65scription\x18\x02 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04logo\x18\x03 \x01(\tR\x04logo\x12\x1c\n\tmarketing\x18\x04 \x01(\x0cR\tmarketing\"L\n\x1fGetWasmContractByAddressRequest\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\"\xfd\x04\n GetWasmContractByAddressResponse\x12\x14\n\x05label\x18\x01 \x01(\tR\x05label\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07tx_hash\x18\x03 \x01(\tR\x06txHash\x12\x18\n\x07\x63reator\x18\x04 \x01(\tR\x07\x63reator\x12\x1a\n\x08\x65xecutes\x18\x05 \x01(\x04R\x08\x65xecutes\x12\'\n\x0finstantiated_at\x18\x06 \x01(\x04R\x0einstantiatedAt\x12!\n\x0cinit_message\x18\x07 \x01(\tR\x0binitMessage\x12(\n\x10last_executed_at\x18\x08 \x01(\x04R\x0elastExecutedAt\x12:\n\x05\x66unds\x18\t \x03(\x0b\x32$.injective_explorer_rpc.ContractFundR\x05\x66unds\x12\x17\n\x07\x63ode_id\x18\n \x01(\x04R\x06\x63odeId\x12\x14\n\x05\x61\x64min\x18\x0b \x01(\tR\x05\x61\x64min\x12\x36\n\x17\x63urrent_migrate_message\x18\x0c \x01(\tR\x15\x63urrentMigrateMessage\x12\'\n\x0f\x63ontract_number\x18\r \x01(\x12R\x0e\x63ontractNumber\x12\x18\n\x07version\x18\x0e \x01(\tR\x07version\x12\x12\n\x04type\x18\x0f \x01(\tR\x04type\x12I\n\rcw20_metadata\x18\x10 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\x12\x1f\n\x0bproposal_id\x18\x11 \x01(\x12R\nproposalId\"G\n\x15GetCw20BalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\"W\n\x16GetCw20BalanceResponse\x12=\n\x05\x66ield\x18\x01 \x03(\x0b\x32\'.injective_explorer_rpc.WasmCw20BalanceR\x05\x66ield\"\xda\x01\n\x0fWasmCw20Balance\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12\x18\n\x07\x61\x63\x63ount\x18\x02 \x01(\tR\x07\x61\x63\x63ount\x12\x18\n\x07\x62\x61lance\x18\x03 \x01(\tR\x07\x62\x61lance\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt\x12I\n\rcw20_metadata\x18\x05 \x01(\x0b\x32$.injective_explorer_rpc.Cw20MetadataR\x0c\x63w20Metadata\"1\n\x0fRelayersRequest\x12\x1e\n\x0bmarket_i_ds\x18\x01 \x03(\tR\tmarketIDs\"P\n\x10RelayersResponse\x12<\n\x05\x66ield\x18\x01 \x03(\x0b\x32&.injective_explorer_rpc.RelayerMarketsR\x05\x66ield\"j\n\x0eRelayerMarkets\x12\x1b\n\tmarket_id\x18\x01 \x01(\tR\x08marketId\x12;\n\x08relayers\x18\x02 \x03(\x0b\x32\x1f.injective_explorer_rpc.RelayerR\x08relayers\"/\n\x07Relayer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n\x03\x63ta\x18\x02 \x01(\tR\x03\x63ta\"\xbd\x02\n\x17GetBankTransfersRequest\x12\x18\n\x07senders\x18\x01 \x03(\tR\x07senders\x12\x1e\n\nrecipients\x18\x02 \x03(\tR\nrecipients\x12\x39\n\x19is_community_pool_related\x18\x03 \x01(\x08R\x16isCommunityPoolRelated\x12\x14\n\x05limit\x18\x04 \x01(\x11R\x05limit\x12\x12\n\x04skip\x18\x05 \x01(\x04R\x04skip\x12\x1d\n\nstart_time\x18\x06 \x01(\x12R\tstartTime\x12\x19\n\x08\x65nd_time\x18\x07 \x01(\x12R\x07\x65ndTime\x12\x18\n\x07\x61\x64\x64ress\x18\x08 \x03(\tR\x07\x61\x64\x64ress\x12\x19\n\x08per_page\x18\t \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\n \x01(\tR\x05token\"\x8c\x01\n\x18GetBankTransfersResponse\x12\x36\n\x06paging\x18\x01 \x01(\x0b\x32\x1e.injective_explorer_rpc.PagingR\x06paging\x12\x38\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32$.injective_explorer_rpc.BankTransferR\x04\x64\x61ta\"\xc8\x01\n\x0c\x42\x61nkTransfer\x12\x16\n\x06sender\x18\x01 \x01(\tR\x06sender\x12\x1c\n\trecipient\x18\x02 \x01(\tR\trecipient\x12\x36\n\x07\x61mounts\x18\x03 \x03(\x0b\x32\x1c.injective_explorer_rpc.CoinR\x07\x61mounts\x12!\n\x0c\x62lock_number\x18\x04 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x05 \x01(\tR\x0e\x62lockTimestamp\"Q\n\x04\x43oin\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12\x1b\n\tusd_value\x18\x03 \x01(\tR\x08usdValue\"\x12\n\x10StreamTxsRequest\"\xa8\x02\n\x11StreamTxsResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0c\x62lock_number\x18\x02 \x01(\x04R\x0b\x62lockNumber\x12\'\n\x0f\x62lock_timestamp\x18\x03 \x01(\tR\x0e\x62lockTimestamp\x12\x12\n\x04hash\x18\x04 \x01(\tR\x04hash\x12\x1c\n\tcodespace\x18\x05 \x01(\tR\tcodespace\x12\x1a\n\x08messages\x18\x06 \x01(\tR\x08messages\x12\x1b\n\ttx_number\x18\x07 \x01(\x04R\x08txNumber\x12\x1b\n\terror_log\x18\x08 \x01(\tR\x08\x65rrorLog\x12\x12\n\x04\x63ode\x18\t \x01(\rR\x04\x63ode\x12\x1b\n\tclaim_ids\x18\n \x03(\x12R\x08\x63laimIds\"\x15\n\x13StreamBlocksRequest\"\xea\x02\n\x14StreamBlocksResponse\x12\x16\n\x06height\x18\x01 \x01(\x04R\x06height\x12\x1a\n\x08proposer\x18\x02 \x01(\tR\x08proposer\x12\x18\n\x07moniker\x18\x03 \x01(\tR\x07moniker\x12\x1d\n\nblock_hash\x18\x04 \x01(\tR\tblockHash\x12\x1f\n\x0bparent_hash\x18\x05 \x01(\tR\nparentHash\x12&\n\x0fnum_pre_commits\x18\x06 \x01(\x12R\rnumPreCommits\x12\x17\n\x07num_txs\x18\x07 \x01(\x12R\x06numTxs\x12\x33\n\x03txs\x18\x08 \x03(\x0b\x32!.injective_explorer_rpc.TxDataRPCR\x03txs\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp\x12\x30\n\x14\x62lock_unix_timestamp\x18\n \x01(\x04R\x12\x62lockUnixTimestamp\"\x11\n\x0fGetStatsRequest\"\x9c\x02\n\x10GetStatsResponse\x12\x1c\n\taddresses\x18\x01 \x01(\x04R\taddresses\x12\x16\n\x06\x61ssets\x18\x02 \x01(\x04R\x06\x61ssets\x12\x1d\n\ninj_supply\x18\x03 \x01(\x04R\tinjSupply\x12\x1c\n\ntxs_ps24_h\x18\x04 \x01(\x04R\x08txsPs24H\x12\x1e\n\x0btxs_ps100_b\x18\x05 \x01(\x04R\ttxsPs100B\x12\x1b\n\ttxs_total\x18\x06 \x01(\x04R\x08txsTotal\x12\x17\n\x07txs24_h\x18\x07 \x01(\x04R\x06txs24H\x12\x17\n\x07txs30_d\x18\x08 \x01(\x04R\x06txs30D\x12&\n\x0f\x62lock_count24_h\x18\t \x01(\x04R\rblockCount24H2\xe0\x16\n\x14InjectiveExplorerRPC\x12l\n\rGetAccountTxs\x12,.injective_explorer_rpc.GetAccountTxsRequest\x1a-.injective_explorer_rpc.GetAccountTxsResponse\x12r\n\x0fGetAccountTxsV2\x12..injective_explorer_rpc.GetAccountTxsV2Request\x1a/.injective_explorer_rpc.GetAccountTxsV2Response\x12o\n\x0eGetContractTxs\x12-.injective_explorer_rpc.GetContractTxsRequest\x1a..injective_explorer_rpc.GetContractTxsResponse\x12u\n\x10GetContractTxsV2\x12/.injective_explorer_rpc.GetContractTxsV2Request\x1a\x30.injective_explorer_rpc.GetContractTxsV2Response\x12`\n\tGetBlocks\x12(.injective_explorer_rpc.GetBlocksRequest\x1a).injective_explorer_rpc.GetBlocksResponse\x12\x66\n\x0bGetBlocksV2\x12*.injective_explorer_rpc.GetBlocksV2Request\x1a+.injective_explorer_rpc.GetBlocksV2Response\x12]\n\x08GetBlock\x12\'.injective_explorer_rpc.GetBlockRequest\x1a(.injective_explorer_rpc.GetBlockResponse\x12l\n\rGetValidators\x12,.injective_explorer_rpc.GetValidatorsRequest\x1a-.injective_explorer_rpc.GetValidatorsResponse\x12i\n\x0cGetValidator\x12+.injective_explorer_rpc.GetValidatorRequest\x1a,.injective_explorer_rpc.GetValidatorResponse\x12{\n\x12GetValidatorUptime\x12\x31.injective_explorer_rpc.GetValidatorUptimeRequest\x1a\x32.injective_explorer_rpc.GetValidatorUptimeResponse\x12W\n\x06GetTxs\x12%.injective_explorer_rpc.GetTxsRequest\x1a&.injective_explorer_rpc.GetTxsResponse\x12]\n\x08GetTxsV2\x12\'.injective_explorer_rpc.GetTxsV2Request\x1a(.injective_explorer_rpc.GetTxsV2Response\x12l\n\rGetTxByTxHash\x12,.injective_explorer_rpc.GetTxByTxHashRequest\x1a-.injective_explorer_rpc.GetTxByTxHashResponse\x12{\n\x12GetPeggyDepositTxs\x12\x31.injective_explorer_rpc.GetPeggyDepositTxsRequest\x1a\x32.injective_explorer_rpc.GetPeggyDepositTxsResponse\x12\x84\x01\n\x15GetPeggyWithdrawalTxs\x12\x34.injective_explorer_rpc.GetPeggyWithdrawalTxsRequest\x1a\x35.injective_explorer_rpc.GetPeggyWithdrawalTxsResponse\x12x\n\x11GetIBCTransferTxs\x12\x30.injective_explorer_rpc.GetIBCTransferTxsRequest\x1a\x31.injective_explorer_rpc.GetIBCTransferTxsResponse\x12i\n\x0cGetWasmCodes\x12+.injective_explorer_rpc.GetWasmCodesRequest\x1a,.injective_explorer_rpc.GetWasmCodesResponse\x12r\n\x0fGetWasmCodeByID\x12..injective_explorer_rpc.GetWasmCodeByIDRequest\x1a/.injective_explorer_rpc.GetWasmCodeByIDResponse\x12u\n\x10GetWasmContracts\x12/.injective_explorer_rpc.GetWasmContractsRequest\x1a\x30.injective_explorer_rpc.GetWasmContractsResponse\x12\x8d\x01\n\x18GetWasmContractByAddress\x12\x37.injective_explorer_rpc.GetWasmContractByAddressRequest\x1a\x38.injective_explorer_rpc.GetWasmContractByAddressResponse\x12o\n\x0eGetCw20Balance\x12-.injective_explorer_rpc.GetCw20BalanceRequest\x1a..injective_explorer_rpc.GetCw20BalanceResponse\x12]\n\x08Relayers\x12\'.injective_explorer_rpc.RelayersRequest\x1a(.injective_explorer_rpc.RelayersResponse\x12u\n\x10GetBankTransfers\x12/.injective_explorer_rpc.GetBankTransfersRequest\x1a\x30.injective_explorer_rpc.GetBankTransfersResponse\x12\x62\n\tStreamTxs\x12(.injective_explorer_rpc.StreamTxsRequest\x1a).injective_explorer_rpc.StreamTxsResponse0\x01\x12k\n\x0cStreamBlocks\x12+.injective_explorer_rpc.StreamBlocksRequest\x1a,.injective_explorer_rpc.StreamBlocksResponse0\x01\x12]\n\x08GetStats\x12\'.injective_explorer_rpc.GetStatsRequest\x1a(.injective_explorer_rpc.GetStatsResponseB\xc2\x01\n\x1a\x63om.injective_explorer_rpcB\x19InjectiveExplorerRpcProtoP\x01Z\x19/injective_explorer_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveExplorerRpc\xca\x02\x14InjectiveExplorerRpc\xe2\x02 InjectiveExplorerRpc\\GPBMetadata\xea\x02\x14InjectiveExplorerRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,152 +42,156 @@ _globals['_EVENT_ATTRIBUTESENTRY']._serialized_end=1733 _globals['_SIGNATURE']._serialized_start=1735 _globals['_SIGNATURE']._serialized_end=1854 - _globals['_GETCONTRACTTXSREQUEST']._serialized_start=1857 - _globals['_GETCONTRACTTXSREQUEST']._serialized_end=2010 - _globals['_GETCONTRACTTXSRESPONSE']._serialized_start=2013 - _globals['_GETCONTRACTTXSRESPONSE']._serialized_end=2151 - _globals['_GETCONTRACTTXSV2REQUEST']._serialized_start=2154 - _globals['_GETCONTRACTTXSV2REQUEST']._serialized_end=2309 - _globals['_GETCONTRACTTXSV2RESPONSE']._serialized_start=2311 - _globals['_GETCONTRACTTXSV2RESPONSE']._serialized_end=2415 - _globals['_GETBLOCKSREQUEST']._serialized_start=2417 - _globals['_GETBLOCKSREQUEST']._serialized_end=2539 - _globals['_GETBLOCKSRESPONSE']._serialized_start=2542 - _globals['_GETBLOCKSRESPONSE']._serialized_end=2672 - _globals['_BLOCKINFO']._serialized_start=2675 - _globals['_BLOCKINFO']._serialized_end=3026 - _globals['_TXDATARPC']._serialized_start=3029 - _globals['_TXDATARPC']._serialized_end=3317 - _globals['_GETBLOCKSV2REQUEST']._serialized_start=3319 - _globals['_GETBLOCKSV2REQUEST']._serialized_end=3388 - _globals['_GETBLOCKSV2RESPONSE']._serialized_start=3391 - _globals['_GETBLOCKSV2RESPONSE']._serialized_end=3523 - _globals['_CURSOR']._serialized_start=3525 - _globals['_CURSOR']._serialized_end=3611 - _globals['_GETBLOCKREQUEST']._serialized_start=3613 - _globals['_GETBLOCKREQUEST']._serialized_end=3646 - _globals['_GETBLOCKRESPONSE']._serialized_start=3648 - _globals['_GETBLOCKRESPONSE']._serialized_end=3765 - _globals['_BLOCKDETAILINFO']._serialized_start=3768 - _globals['_BLOCKDETAILINFO']._serialized_end=4151 - _globals['_TXDATA']._serialized_start=4154 - _globals['_TXDATA']._serialized_end=4610 - _globals['_GETVALIDATORSREQUEST']._serialized_start=4612 - _globals['_GETVALIDATORSREQUEST']._serialized_end=4634 - _globals['_GETVALIDATORSRESPONSE']._serialized_start=4636 - _globals['_GETVALIDATORSRESPONSE']._serialized_end=4752 - _globals['_VALIDATOR']._serialized_start=4755 - _globals['_VALIDATOR']._serialized_end=5704 - _globals['_VALIDATORDESCRIPTION']._serialized_start=5707 - _globals['_VALIDATORDESCRIPTION']._serialized_end=5907 - _globals['_VALIDATORUPTIME']._serialized_start=5909 - _globals['_VALIDATORUPTIME']._serialized_end=5985 - _globals['_SLASHINGEVENT']._serialized_start=5988 - _globals['_SLASHINGEVENT']._serialized_end=6212 - _globals['_GETVALIDATORREQUEST']._serialized_start=6214 - _globals['_GETVALIDATORREQUEST']._serialized_end=6261 - _globals['_GETVALIDATORRESPONSE']._serialized_start=6263 - _globals['_GETVALIDATORRESPONSE']._serialized_end=6378 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=6380 - _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=6433 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=6435 - _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6562 - _globals['_GETTXSREQUEST']._serialized_start=6565 - _globals['_GETTXSREQUEST']._serialized_end=6856 - _globals['_GETTXSRESPONSE']._serialized_start=6858 - _globals['_GETTXSRESPONSE']._serialized_end=6982 - _globals['_GETTXSV2REQUEST']._serialized_start=6985 - _globals['_GETTXSV2REQUEST']._serialized_end=7129 - _globals['_GETTXSV2RESPONSE']._serialized_start=7131 - _globals['_GETTXSV2RESPONSE']._serialized_end=7257 - _globals['_GETTXBYTXHASHREQUEST']._serialized_start=7259 - _globals['_GETTXBYTXHASHREQUEST']._serialized_end=7301 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=7303 - _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=7422 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=7424 - _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=7545 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=7547 - _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=7637 - _globals['_PEGGYDEPOSITTX']._serialized_start=7640 - _globals['_PEGGYDEPOSITTX']._serialized_end=8017 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=8019 - _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=8143 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=8145 - _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=8241 - _globals['_PEGGYWITHDRAWALTX']._serialized_start=8244 - _globals['_PEGGYWITHDRAWALTX']._serialized_end=8763 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=8766 - _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=9010 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=9012 - _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=9100 - _globals['_IBCTRANSFERTX']._serialized_start=9103 - _globals['_IBCTRANSFERTX']._serialized_end=9645 - _globals['_GETWASMCODESREQUEST']._serialized_start=9647 - _globals['_GETWASMCODESREQUEST']._serialized_end=9752 - _globals['_GETWASMCODESRESPONSE']._serialized_start=9755 - _globals['_GETWASMCODESRESPONSE']._serialized_end=9887 - _globals['_WASMCODE']._serialized_start=9890 - _globals['_WASMCODE']._serialized_end=10372 - _globals['_CHECKSUM']._serialized_start=10374 - _globals['_CHECKSUM']._serialized_end=10434 - _globals['_CONTRACTPERMISSION']._serialized_start=10436 - _globals['_CONTRACTPERMISSION']._serialized_end=10515 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=10517 - _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=10566 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=10569 - _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=11066 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=11069 - _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=11278 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=11281 - _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=11421 - _globals['_WASMCONTRACT']._serialized_start=11424 - _globals['_WASMCONTRACT']._serialized_end=12041 - _globals['_CONTRACTFUND']._serialized_start=12043 - _globals['_CONTRACTFUND']._serialized_end=12103 - _globals['_CW20METADATA']._serialized_start=12106 - _globals['_CW20METADATA']._serialized_end=12272 - _globals['_CW20TOKENINFO']._serialized_start=12274 - _globals['_CW20TOKENINFO']._serialized_end=12396 - _globals['_CW20MARKETINGINFO']._serialized_start=12399 - _globals['_CW20MARKETINGINFO']._serialized_end=12528 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=12530 - _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=12606 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=12609 - _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=13246 - _globals['_GETCW20BALANCEREQUEST']._serialized_start=13248 - _globals['_GETCW20BALANCEREQUEST']._serialized_end=13319 - _globals['_GETCW20BALANCERESPONSE']._serialized_start=13321 - _globals['_GETCW20BALANCERESPONSE']._serialized_end=13408 - _globals['_WASMCW20BALANCE']._serialized_start=13411 - _globals['_WASMCW20BALANCE']._serialized_end=13629 - _globals['_RELAYERSREQUEST']._serialized_start=13631 - _globals['_RELAYERSREQUEST']._serialized_end=13680 - _globals['_RELAYERSRESPONSE']._serialized_start=13682 - _globals['_RELAYERSRESPONSE']._serialized_end=13762 - _globals['_RELAYERMARKETS']._serialized_start=13764 - _globals['_RELAYERMARKETS']._serialized_end=13870 - _globals['_RELAYER']._serialized_start=13872 - _globals['_RELAYER']._serialized_end=13919 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=13922 - _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=14239 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=14242 - _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=14382 - _globals['_BANKTRANSFER']._serialized_start=14385 - _globals['_BANKTRANSFER']._serialized_end=14585 - _globals['_COIN']._serialized_start=14587 - _globals['_COIN']._serialized_end=14668 - _globals['_STREAMTXSREQUEST']._serialized_start=14670 - _globals['_STREAMTXSREQUEST']._serialized_end=14688 - _globals['_STREAMTXSRESPONSE']._serialized_start=14691 - _globals['_STREAMTXSRESPONSE']._serialized_end=14987 - _globals['_STREAMBLOCKSREQUEST']._serialized_start=14989 - _globals['_STREAMBLOCKSREQUEST']._serialized_end=15010 - _globals['_STREAMBLOCKSRESPONSE']._serialized_start=15013 - _globals['_STREAMBLOCKSRESPONSE']._serialized_end=15375 - _globals['_GETSTATSREQUEST']._serialized_start=15377 - _globals['_GETSTATSREQUEST']._serialized_end=15394 - _globals['_GETSTATSRESPONSE']._serialized_start=15397 - _globals['_GETSTATSRESPONSE']._serialized_end=15681 - _globals['_INJECTIVEEXPLORERRPC']._serialized_start=15684 - _globals['_INJECTIVEEXPLORERRPC']._serialized_end=18480 + _globals['_GETACCOUNTTXSV2REQUEST']._serialized_start=1857 + _globals['_GETACCOUNTTXSV2REQUEST']._serialized_end=2034 + _globals['_GETACCOUNTTXSV2RESPONSE']._serialized_start=2037 + _globals['_GETACCOUNTTXSV2RESPONSE']._serialized_end=2176 + _globals['_CURSOR']._serialized_start=2178 + _globals['_CURSOR']._serialized_end=2206 + _globals['_GETCONTRACTTXSREQUEST']._serialized_start=2209 + _globals['_GETCONTRACTTXSREQUEST']._serialized_end=2362 + _globals['_GETCONTRACTTXSRESPONSE']._serialized_start=2365 + _globals['_GETCONTRACTTXSRESPONSE']._serialized_end=2503 + _globals['_GETCONTRACTTXSV2REQUEST']._serialized_start=2506 + _globals['_GETCONTRACTTXSV2REQUEST']._serialized_end=2690 + _globals['_GETCONTRACTTXSV2RESPONSE']._serialized_start=2693 + _globals['_GETCONTRACTTXSV2RESPONSE']._serialized_end=2833 + _globals['_GETBLOCKSREQUEST']._serialized_start=2835 + _globals['_GETBLOCKSREQUEST']._serialized_end=2957 + _globals['_GETBLOCKSRESPONSE']._serialized_start=2960 + _globals['_GETBLOCKSRESPONSE']._serialized_end=3090 + _globals['_BLOCKINFO']._serialized_start=3093 + _globals['_BLOCKINFO']._serialized_end=3444 + _globals['_TXDATARPC']._serialized_start=3447 + _globals['_TXDATARPC']._serialized_end=3735 + _globals['_GETBLOCKSV2REQUEST']._serialized_start=3737 + _globals['_GETBLOCKSV2REQUEST']._serialized_end=3806 + _globals['_GETBLOCKSV2RESPONSE']._serialized_start=3809 + _globals['_GETBLOCKSV2RESPONSE']._serialized_end=3941 + _globals['_GETBLOCKREQUEST']._serialized_start=3943 + _globals['_GETBLOCKREQUEST']._serialized_end=3976 + _globals['_GETBLOCKRESPONSE']._serialized_start=3978 + _globals['_GETBLOCKRESPONSE']._serialized_end=4095 + _globals['_BLOCKDETAILINFO']._serialized_start=4098 + _globals['_BLOCKDETAILINFO']._serialized_end=4481 + _globals['_TXDATA']._serialized_start=4484 + _globals['_TXDATA']._serialized_end=4940 + _globals['_GETVALIDATORSREQUEST']._serialized_start=4942 + _globals['_GETVALIDATORSREQUEST']._serialized_end=4964 + _globals['_GETVALIDATORSRESPONSE']._serialized_start=4966 + _globals['_GETVALIDATORSRESPONSE']._serialized_end=5082 + _globals['_VALIDATOR']._serialized_start=5085 + _globals['_VALIDATOR']._serialized_end=6034 + _globals['_VALIDATORDESCRIPTION']._serialized_start=6037 + _globals['_VALIDATORDESCRIPTION']._serialized_end=6237 + _globals['_VALIDATORUPTIME']._serialized_start=6239 + _globals['_VALIDATORUPTIME']._serialized_end=6315 + _globals['_SLASHINGEVENT']._serialized_start=6318 + _globals['_SLASHINGEVENT']._serialized_end=6542 + _globals['_GETVALIDATORREQUEST']._serialized_start=6544 + _globals['_GETVALIDATORREQUEST']._serialized_end=6591 + _globals['_GETVALIDATORRESPONSE']._serialized_start=6593 + _globals['_GETVALIDATORRESPONSE']._serialized_end=6708 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_start=6710 + _globals['_GETVALIDATORUPTIMEREQUEST']._serialized_end=6763 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_start=6765 + _globals['_GETVALIDATORUPTIMERESPONSE']._serialized_end=6892 + _globals['_GETTXSREQUEST']._serialized_start=6895 + _globals['_GETTXSREQUEST']._serialized_end=7186 + _globals['_GETTXSRESPONSE']._serialized_start=7188 + _globals['_GETTXSRESPONSE']._serialized_end=7312 + _globals['_GETTXSV2REQUEST']._serialized_start=7315 + _globals['_GETTXSV2REQUEST']._serialized_end=7518 + _globals['_GETTXSV2RESPONSE']._serialized_start=7520 + _globals['_GETTXSV2RESPONSE']._serialized_end=7646 + _globals['_GETTXBYTXHASHREQUEST']._serialized_start=7648 + _globals['_GETTXBYTXHASHREQUEST']._serialized_end=7690 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_start=7692 + _globals['_GETTXBYTXHASHRESPONSE']._serialized_end=7811 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_start=7813 + _globals['_GETPEGGYDEPOSITTXSREQUEST']._serialized_end=7934 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_start=7936 + _globals['_GETPEGGYDEPOSITTXSRESPONSE']._serialized_end=8026 + _globals['_PEGGYDEPOSITTX']._serialized_start=8029 + _globals['_PEGGYDEPOSITTX']._serialized_end=8406 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_start=8408 + _globals['_GETPEGGYWITHDRAWALTXSREQUEST']._serialized_end=8532 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_start=8534 + _globals['_GETPEGGYWITHDRAWALTXSRESPONSE']._serialized_end=8630 + _globals['_PEGGYWITHDRAWALTX']._serialized_start=8633 + _globals['_PEGGYWITHDRAWALTX']._serialized_end=9152 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_start=9155 + _globals['_GETIBCTRANSFERTXSREQUEST']._serialized_end=9399 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_start=9401 + _globals['_GETIBCTRANSFERTXSRESPONSE']._serialized_end=9489 + _globals['_IBCTRANSFERTX']._serialized_start=9492 + _globals['_IBCTRANSFERTX']._serialized_end=10034 + _globals['_GETWASMCODESREQUEST']._serialized_start=10036 + _globals['_GETWASMCODESREQUEST']._serialized_end=10141 + _globals['_GETWASMCODESRESPONSE']._serialized_start=10144 + _globals['_GETWASMCODESRESPONSE']._serialized_end=10276 + _globals['_WASMCODE']._serialized_start=10279 + _globals['_WASMCODE']._serialized_end=10761 + _globals['_CHECKSUM']._serialized_start=10763 + _globals['_CHECKSUM']._serialized_end=10823 + _globals['_CONTRACTPERMISSION']._serialized_start=10825 + _globals['_CONTRACTPERMISSION']._serialized_end=10904 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_start=10906 + _globals['_GETWASMCODEBYIDREQUEST']._serialized_end=10955 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_start=10958 + _globals['_GETWASMCODEBYIDRESPONSE']._serialized_end=11455 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_start=11458 + _globals['_GETWASMCONTRACTSREQUEST']._serialized_end=11713 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_start=11716 + _globals['_GETWASMCONTRACTSRESPONSE']._serialized_end=11856 + _globals['_WASMCONTRACT']._serialized_start=11859 + _globals['_WASMCONTRACT']._serialized_end=12476 + _globals['_CONTRACTFUND']._serialized_start=12478 + _globals['_CONTRACTFUND']._serialized_end=12538 + _globals['_CW20METADATA']._serialized_start=12541 + _globals['_CW20METADATA']._serialized_end=12707 + _globals['_CW20TOKENINFO']._serialized_start=12709 + _globals['_CW20TOKENINFO']._serialized_end=12831 + _globals['_CW20MARKETINGINFO']._serialized_start=12834 + _globals['_CW20MARKETINGINFO']._serialized_end=12963 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_start=12965 + _globals['_GETWASMCONTRACTBYADDRESSREQUEST']._serialized_end=13041 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_start=13044 + _globals['_GETWASMCONTRACTBYADDRESSRESPONSE']._serialized_end=13681 + _globals['_GETCW20BALANCEREQUEST']._serialized_start=13683 + _globals['_GETCW20BALANCEREQUEST']._serialized_end=13754 + _globals['_GETCW20BALANCERESPONSE']._serialized_start=13756 + _globals['_GETCW20BALANCERESPONSE']._serialized_end=13843 + _globals['_WASMCW20BALANCE']._serialized_start=13846 + _globals['_WASMCW20BALANCE']._serialized_end=14064 + _globals['_RELAYERSREQUEST']._serialized_start=14066 + _globals['_RELAYERSREQUEST']._serialized_end=14115 + _globals['_RELAYERSRESPONSE']._serialized_start=14117 + _globals['_RELAYERSRESPONSE']._serialized_end=14197 + _globals['_RELAYERMARKETS']._serialized_start=14199 + _globals['_RELAYERMARKETS']._serialized_end=14305 + _globals['_RELAYER']._serialized_start=14307 + _globals['_RELAYER']._serialized_end=14354 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_start=14357 + _globals['_GETBANKTRANSFERSREQUEST']._serialized_end=14674 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_start=14677 + _globals['_GETBANKTRANSFERSRESPONSE']._serialized_end=14817 + _globals['_BANKTRANSFER']._serialized_start=14820 + _globals['_BANKTRANSFER']._serialized_end=15020 + _globals['_COIN']._serialized_start=15022 + _globals['_COIN']._serialized_end=15103 + _globals['_STREAMTXSREQUEST']._serialized_start=15105 + _globals['_STREAMTXSREQUEST']._serialized_end=15123 + _globals['_STREAMTXSRESPONSE']._serialized_start=15126 + _globals['_STREAMTXSRESPONSE']._serialized_end=15422 + _globals['_STREAMBLOCKSREQUEST']._serialized_start=15424 + _globals['_STREAMBLOCKSREQUEST']._serialized_end=15445 + _globals['_STREAMBLOCKSRESPONSE']._serialized_start=15448 + _globals['_STREAMBLOCKSRESPONSE']._serialized_end=15810 + _globals['_GETSTATSREQUEST']._serialized_start=15812 + _globals['_GETSTATSREQUEST']._serialized_end=15829 + _globals['_GETSTATSRESPONSE']._serialized_start=15832 + _globals['_GETSTATSRESPONSE']._serialized_end=16116 + _globals['_INJECTIVEEXPLORERRPC']._serialized_start=16119 + _globals['_INJECTIVEEXPLORERRPC']._serialized_end=19031 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py index b58490a8..b10531dc 100644 --- a/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_explorer_rpc_pb2_grpc.py @@ -20,6 +20,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsRequest.SerializeToString, response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsResponse.FromString, _registered_method=True) + self.GetAccountTxsV2 = channel.unary_unary( + '/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxsV2', + request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Request.SerializeToString, + response_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Response.FromString, + _registered_method=True) self.GetContractTxs = channel.unary_unary( '/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs', request_serializer=exchange_dot_injective__explorer__rpc__pb2.GetContractTxsRequest.SerializeToString, @@ -153,6 +158,13 @@ def GetAccountTxs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetAccountTxsV2(self, request, context): + """GetAccountTxs returns tranctions involving in an account based upon params. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def GetContractTxs(self, request, context): """GetContractTxs returns contract-related transactions """ @@ -333,6 +345,11 @@ def add_InjectiveExplorerRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsRequest.FromString, response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsResponse.SerializeToString, ), + 'GetAccountTxsV2': grpc.unary_unary_rpc_method_handler( + servicer.GetAccountTxsV2, + request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Request.FromString, + response_serializer=exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Response.SerializeToString, + ), 'GetContractTxs': grpc.unary_unary_rpc_method_handler( servicer.GetContractTxs, request_deserializer=exchange_dot_injective__explorer__rpc__pb2.GetContractTxsRequest.FromString, @@ -492,6 +509,33 @@ def GetAccountTxs(request, metadata, _registered_method=True) + @staticmethod + def GetAccountTxsV2(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_explorer_rpc.InjectiveExplorerRPC/GetAccountTxsV2', + exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Request.SerializeToString, + exchange_dot_injective__explorer__rpc__pb2.GetAccountTxsV2Response.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def GetContractTxs(request, target, diff --git a/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py index 4ef21c01..3fc72b3b 100644 --- a/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py +++ b/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py @@ -13,10 +13,11 @@ 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.amino import amino_pb2 as amino_dot_amino__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/erc20/v1beta1/params.proto\x12\x17injective.erc20.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x11\x61mino/amino.proto\"\x1f\n\x06Params:\x15\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0c\x65rc20/ParamsB\xf5\x01\n\x1b\x63om.injective.erc20.v1beta1B\x0bParamsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/erc20/types\xa2\x02\x03IEX\xaa\x02\x17Injective.Erc20.V1beta1\xca\x02\x17Injective\\Erc20\\V1beta1\xe2\x02#Injective\\Erc20\\V1beta1\\GPBMetadata\xea\x02\x19Injective::Erc20::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$injective/erc20/v1beta1/params.proto\x12\x17injective.erc20.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a\x11\x61mino/amino.proto\"\x8b\x01\n\x06Params\x12j\n\x12\x64\x65nom_creation_fee\x18\x01 \x01(\x0b\x32\x19.cosmos.base.v1beta1.CoinB!\xc8\xde\x1f\x00\xf2\xde\x1f\x19yaml:\"denom_creation_fee\"R\x10\x64\x65nomCreationFee:\x15\xe8\xa0\x1f\x01\x8a\xe7\xb0*\x0c\x65rc20/ParamsB\xf5\x01\n\x1b\x63om.injective.erc20.v1beta1B\x0bParamsProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/erc20/types\xa2\x02\x03IEX\xaa\x02\x17Injective.Erc20.V1beta1\xca\x02\x17Injective\\Erc20\\V1beta1\xe2\x02#Injective\\Erc20\\V1beta1\\GPBMetadata\xea\x02\x19Injective::Erc20::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,8 +25,10 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\013ParamsProtoP\001ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/erc20/types\242\002\003IEX\252\002\027Injective.Erc20.V1beta1\312\002\027Injective\\Erc20\\V1beta1\342\002#Injective\\Erc20\\V1beta1\\GPBMetadata\352\002\031Injective::Erc20::V1beta1' + _globals['_PARAMS'].fields_by_name['denom_creation_fee']._loaded_options = None + _globals['_PARAMS'].fields_by_name['denom_creation_fee']._serialized_options = b'\310\336\037\000\362\336\037\031yaml:\"denom_creation_fee\"' _globals['_PARAMS']._loaded_options = None _globals['_PARAMS']._serialized_options = b'\350\240\037\001\212\347\260*\014erc20/Params' - _globals['_PARAMS']._serialized_start=106 - _globals['_PARAMS']._serialized_end=137 + _globals['_PARAMS']._serialized_start=139 + _globals['_PARAMS']._serialized_end=278 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py index 67f33bf4..5b7c6288 100644 --- a/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py +++ b/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py @@ -21,7 +21,7 @@ from pyinjective.proto.injective.erc20.v1beta1 import erc20_pb2 as injective_dot_erc20_dot_v1beta1_dot_erc20__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/erc20/v1beta1/query.proto\x12\x17injective.erc20.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a$injective/erc20/v1beta1/params.proto\x1a%injective/erc20/v1beta1/genesis.proto\x1a#injective/erc20/v1beta1/erc20.proto\"\x14\n\x12QueryParamsRequest\"T\n\x13QueryParamsResponse\x12=\n\x06params\x18\x01 \x01(\x0b\x32\x1f.injective.erc20.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x1b\n\x19QueryAllTokenPairsRequest\"a\n\x1aQueryAllTokenPairsResponse\x12\x43\n\x0btoken_pairs\x18\x01 \x03(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ntokenPairs\"=\n\x1cQueryTokenPairByDenomRequest\x12\x1d\n\nbank_denom\x18\x01 \x01(\tR\tbankDenom\"b\n\x1dQueryTokenPairByDenomResponse\x12\x41\n\ntoken_pair\x18\x01 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ttokenPair\"J\n#QueryTokenPairByERC20AddressRequest\x12#\n\rerc20_address\x18\x01 \x01(\tR\x0c\x65rc20Address\"i\n$QueryTokenPairByERC20AddressResponse\x12\x41\n\ntoken_pair\x18\x01 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ttokenPair2\xd4\x05\n\x05Query\x12\x8c\x01\n\x06Params\x12+.injective.erc20.v1beta1.QueryParamsRequest\x1a,.injective.erc20.v1beta1.QueryParamsResponse\"\'\x82\xd3\xe4\x93\x02!\x12\x1f/injective/erc20/v1beta1/params\x12\xaa\x01\n\rAllTokenPairs\x12\x32.injective.erc20.v1beta1.QueryAllTokenPairsRequest\x1a\x33.injective.erc20.v1beta1.QueryAllTokenPairsResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/erc20/v1beta1/all_token_pairs\x12\xb7\x01\n\x10TokenPairByDenom\x12\x35.injective.erc20.v1beta1.QueryTokenPairByDenomRequest\x1a\x36.injective.erc20.v1beta1.QueryTokenPairByDenomResponse\"4\x82\xd3\xe4\x93\x02.\x12,/injective/erc20/v1beta1/token_pair_by_denom\x12\xd4\x01\n\x17TokenPairByERC20Address\x12<.injective.erc20.v1beta1.QueryTokenPairByERC20AddressRequest\x1a=.injective.erc20.v1beta1.QueryTokenPairByERC20AddressResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/erc20/v1beta1/token_pair_by_erc20_addressB\xf4\x01\n\x1b\x63om.injective.erc20.v1beta1B\nQueryProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/erc20/types\xa2\x02\x03IEX\xaa\x02\x17Injective.Erc20.V1beta1\xca\x02\x17Injective\\Erc20\\V1beta1\xe2\x02#Injective\\Erc20\\V1beta1\\GPBMetadata\xea\x02\x19Injective::Erc20::V1beta1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/erc20/v1beta1/query.proto\x12\x17injective.erc20.v1beta1\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1e\x63osmos/base/v1beta1/coin.proto\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a$injective/erc20/v1beta1/params.proto\x1a%injective/erc20/v1beta1/genesis.proto\x1a#injective/erc20/v1beta1/erc20.proto\"\x14\n\x12QueryParamsRequest\"T\n\x13QueryParamsResponse\x12=\n\x06params\x18\x01 \x01(\x0b\x32\x1f.injective.erc20.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"c\n\x19QueryAllTokenPairsRequest\x12\x46\n\npagination\x18\x01 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination\"\xaa\x01\n\x1aQueryAllTokenPairsResponse\x12\x43\n\x0btoken_pairs\x18\x01 \x03(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ntokenPairs\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"=\n\x1cQueryTokenPairByDenomRequest\x12\x1d\n\nbank_denom\x18\x01 \x01(\tR\tbankDenom\"b\n\x1dQueryTokenPairByDenomResponse\x12\x41\n\ntoken_pair\x18\x01 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ttokenPair\"J\n#QueryTokenPairByERC20AddressRequest\x12#\n\rerc20_address\x18\x01 \x01(\tR\x0c\x65rc20Address\"i\n$QueryTokenPairByERC20AddressResponse\x12\x41\n\ntoken_pair\x18\x01 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairR\ttokenPair2\xd4\x05\n\x05Query\x12\x8c\x01\n\x06Params\x12+.injective.erc20.v1beta1.QueryParamsRequest\x1a,.injective.erc20.v1beta1.QueryParamsResponse\"\'\x82\xd3\xe4\x93\x02!\x12\x1f/injective/erc20/v1beta1/params\x12\xaa\x01\n\rAllTokenPairs\x12\x32.injective.erc20.v1beta1.QueryAllTokenPairsRequest\x1a\x33.injective.erc20.v1beta1.QueryAllTokenPairsResponse\"0\x82\xd3\xe4\x93\x02*\x12(/injective/erc20/v1beta1/all_token_pairs\x12\xb7\x01\n\x10TokenPairByDenom\x12\x35.injective.erc20.v1beta1.QueryTokenPairByDenomRequest\x1a\x36.injective.erc20.v1beta1.QueryTokenPairByDenomResponse\"4\x82\xd3\xe4\x93\x02.\x12,/injective/erc20/v1beta1/token_pair_by_denom\x12\xd4\x01\n\x17TokenPairByERC20Address\x12<.injective.erc20.v1beta1.QueryTokenPairByERC20AddressRequest\x1a=.injective.erc20.v1beta1.QueryTokenPairByERC20AddressResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/injective/erc20/v1beta1/token_pair_by_erc20_addressB\xf4\x01\n\x1b\x63om.injective.erc20.v1beta1B\nQueryProtoP\x01ZKgithub.com/InjectiveLabs/injective-core/injective-chain/modules/erc20/types\xa2\x02\x03IEX\xaa\x02\x17Injective.Erc20.V1beta1\xca\x02\x17Injective\\Erc20\\V1beta1\xe2\x02#Injective\\Erc20\\V1beta1\\GPBMetadata\xea\x02\x19Injective::Erc20::V1beta1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -44,17 +44,17 @@ _globals['_QUERYPARAMSRESPONSE']._serialized_start=328 _globals['_QUERYPARAMSRESPONSE']._serialized_end=412 _globals['_QUERYALLTOKENPAIRSREQUEST']._serialized_start=414 - _globals['_QUERYALLTOKENPAIRSREQUEST']._serialized_end=441 - _globals['_QUERYALLTOKENPAIRSRESPONSE']._serialized_start=443 - _globals['_QUERYALLTOKENPAIRSRESPONSE']._serialized_end=540 - _globals['_QUERYTOKENPAIRBYDENOMREQUEST']._serialized_start=542 - _globals['_QUERYTOKENPAIRBYDENOMREQUEST']._serialized_end=603 - _globals['_QUERYTOKENPAIRBYDENOMRESPONSE']._serialized_start=605 - _globals['_QUERYTOKENPAIRBYDENOMRESPONSE']._serialized_end=703 - _globals['_QUERYTOKENPAIRBYERC20ADDRESSREQUEST']._serialized_start=705 - _globals['_QUERYTOKENPAIRBYERC20ADDRESSREQUEST']._serialized_end=779 - _globals['_QUERYTOKENPAIRBYERC20ADDRESSRESPONSE']._serialized_start=781 - _globals['_QUERYTOKENPAIRBYERC20ADDRESSRESPONSE']._serialized_end=886 - _globals['_QUERY']._serialized_start=889 - _globals['_QUERY']._serialized_end=1613 + _globals['_QUERYALLTOKENPAIRSREQUEST']._serialized_end=513 + _globals['_QUERYALLTOKENPAIRSRESPONSE']._serialized_start=516 + _globals['_QUERYALLTOKENPAIRSRESPONSE']._serialized_end=686 + _globals['_QUERYTOKENPAIRBYDENOMREQUEST']._serialized_start=688 + _globals['_QUERYTOKENPAIRBYDENOMREQUEST']._serialized_end=749 + _globals['_QUERYTOKENPAIRBYDENOMRESPONSE']._serialized_start=751 + _globals['_QUERYTOKENPAIRBYDENOMRESPONSE']._serialized_end=849 + _globals['_QUERYTOKENPAIRBYERC20ADDRESSREQUEST']._serialized_start=851 + _globals['_QUERYTOKENPAIRBYERC20ADDRESSREQUEST']._serialized_end=925 + _globals['_QUERYTOKENPAIRBYERC20ADDRESSRESPONSE']._serialized_start=927 + _globals['_QUERYTOKENPAIRBYERC20ADDRESSRESPONSE']._serialized_end=1032 + _globals['_QUERY']._serialized_start=1035 + _globals['_QUERY']._serialized_end=1759 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/chain_config_pb2.py b/pyinjective/proto/injective/evm/v1/chain_config_pb2.py index 46dfe62b..80e2dff1 100644 --- a/pyinjective/proto/injective/evm/v1/chain_config_pb2.py +++ b/pyinjective/proto/injective/evm/v1/chain_config_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#injective/evm/v1/chain_config.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\"\xae\x10\n\x0b\x43hainConfig\x12\\\n\x0fhomestead_block\x18\x01 \x01(\tB3\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x16yaml:\"homestead_block\"R\x0ehomesteadBlock\x12h\n\x0e\x64\x61o_fork_block\x18\x02 \x01(\tBB\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0c\x44\x41OForkBlock\xf2\xde\x1f\x15yaml:\"dao_fork_block\"R\x0c\x64\x61oForkBlock\x12W\n\x10\x64\x61o_fork_support\x18\x03 \x01(\x08\x42-\xe2\xde\x1f\x0e\x44\x41OForkSupport\xf2\xde\x1f\x17yaml:\"dao_fork_support\"R\x0e\x64\x61oForkSupport\x12\x62\n\x0c\x65ip150_block\x18\x04 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP150Block\xf2\xde\x1f\x13yaml:\"eip150_block\"R\x0b\x65ip150Block\x12I\n\x0b\x65ip150_hash\x18\x05 \x01(\tB(\xe2\xde\x1f\nEIP150Hash\xf2\xde\x1f\x16yaml:\"byzantium_block\"R\neip150Hash\x12\x62\n\x0c\x65ip155_block\x18\x06 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP155Block\xf2\xde\x1f\x13yaml:\"eip155_block\"R\x0b\x65ip155Block\x12\x62\n\x0c\x65ip158_block\x18\x07 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP158Block\xf2\xde\x1f\x13yaml:\"eip158_block\"R\x0b\x65ip158Block\x12\\\n\x0f\x62yzantium_block\x18\x08 \x01(\tB3\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x16yaml:\"byzantium_block\"R\x0e\x62yzantiumBlock\x12k\n\x14\x63onstantinople_block\x18\t \x01(\tB8\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1byaml:\"constantinople_block\"R\x13\x63onstantinopleBlock\x12_\n\x10petersburg_block\x18\n \x01(\tB4\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x17yaml:\"petersburg_block\"R\x0fpetersburgBlock\x12Y\n\x0eistanbul_block\x18\x0b \x01(\tB2\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x15yaml:\"istanbul_block\"R\ristanbulBlock\x12\x64\n\x12muir_glacier_block\x18\x0c \x01(\tB6\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x19yaml:\"muir_glacier_block\"R\x10muirGlacierBlock\x12S\n\x0c\x62\x65rlin_block\x18\r \x01(\tB0\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x13yaml:\"berlin_block\"R\x0b\x62\x65rlinBlock\x12S\n\x0clondon_block\x18\x11 \x01(\tB0\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x13yaml:\"london_block\"R\x0blondonBlock\x12g\n\x13\x61rrow_glacier_block\x18\x12 \x01(\tB7\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1ayaml:\"arrow_glacier_block\"R\x11\x61rrowGlacierBlock\x12\x64\n\x12gray_glacier_block\x18\x14 \x01(\tB6\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x19yaml:\"gray_glacier_block\"R\x10grayGlacierBlock\x12j\n\x14merge_netsplit_block\x18\x15 \x01(\tB8\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1byaml:\"merge_netsplit_block\"R\x12mergeNetsplitBlock\x12V\n\rshanghai_time\x18\x16 \x01(\tB1\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x14yaml:\"shanghai_time\"R\x0cshanghaiTime\x12P\n\x0b\x63\x61ncun_time\x18\x17 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x12yaml:\"cancun_time\"R\ncancunTime\x12P\n\x0bprague_time\x18\x18 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x12yaml:\"prague_time\"R\npragueTime\x12\x63\n\x0f\x65ip155_chain_id\x18\x19 \x01(\tB;\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\rEIP155ChainID\xea\xde\x1f\reip155ChainIDR\reip155ChainIdJ\x04\x08\x0e\x10\x0fJ\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x13\x10\x14R\ryolo_v3_blockR\x0b\x65wasm_blockR\x0e\x63\x61talyst_blockR\x10merge_fork_blockB\xd5\x01\n\x14\x63om.injective.evm.v1B\x10\x43hainConfigProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/evm/v1/chain_config.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\"\xa7\x11\n\x0b\x43hainConfig\x12\\\n\x0fhomestead_block\x18\x01 \x01(\tB3\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x16yaml:\"homestead_block\"R\x0ehomesteadBlock\x12h\n\x0e\x64\x61o_fork_block\x18\x02 \x01(\tBB\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0c\x44\x41OForkBlock\xf2\xde\x1f\x15yaml:\"dao_fork_block\"R\x0c\x64\x61oForkBlock\x12W\n\x10\x64\x61o_fork_support\x18\x03 \x01(\x08\x42-\xe2\xde\x1f\x0e\x44\x41OForkSupport\xf2\xde\x1f\x17yaml:\"dao_fork_support\"R\x0e\x64\x61oForkSupport\x12\x62\n\x0c\x65ip150_block\x18\x04 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP150Block\xf2\xde\x1f\x13yaml:\"eip150_block\"R\x0b\x65ip150Block\x12I\n\x0b\x65ip150_hash\x18\x05 \x01(\tB(\xe2\xde\x1f\nEIP150Hash\xf2\xde\x1f\x16yaml:\"byzantium_block\"R\neip150Hash\x12\x62\n\x0c\x65ip155_block\x18\x06 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP155Block\xf2\xde\x1f\x13yaml:\"eip155_block\"R\x0b\x65ip155Block\x12\x62\n\x0c\x65ip158_block\x18\x07 \x01(\tB?\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\x0b\x45IP158Block\xf2\xde\x1f\x13yaml:\"eip158_block\"R\x0b\x65ip158Block\x12\\\n\x0f\x62yzantium_block\x18\x08 \x01(\tB3\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x16yaml:\"byzantium_block\"R\x0e\x62yzantiumBlock\x12k\n\x14\x63onstantinople_block\x18\t \x01(\tB8\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1byaml:\"constantinople_block\"R\x13\x63onstantinopleBlock\x12_\n\x10petersburg_block\x18\n \x01(\tB4\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x17yaml:\"petersburg_block\"R\x0fpetersburgBlock\x12Y\n\x0eistanbul_block\x18\x0b \x01(\tB2\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x15yaml:\"istanbul_block\"R\ristanbulBlock\x12\x64\n\x12muir_glacier_block\x18\x0c \x01(\tB6\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x19yaml:\"muir_glacier_block\"R\x10muirGlacierBlock\x12S\n\x0c\x62\x65rlin_block\x18\r \x01(\tB0\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x13yaml:\"berlin_block\"R\x0b\x62\x65rlinBlock\x12S\n\x0clondon_block\x18\x11 \x01(\tB0\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x13yaml:\"london_block\"R\x0blondonBlock\x12g\n\x13\x61rrow_glacier_block\x18\x12 \x01(\tB7\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1ayaml:\"arrow_glacier_block\"R\x11\x61rrowGlacierBlock\x12\x64\n\x12gray_glacier_block\x18\x14 \x01(\tB6\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x19yaml:\"gray_glacier_block\"R\x10grayGlacierBlock\x12j\n\x14merge_netsplit_block\x18\x15 \x01(\tB8\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x1byaml:\"merge_netsplit_block\"R\x12mergeNetsplitBlock\x12V\n\rshanghai_time\x18\x16 \x01(\tB1\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x14yaml:\"shanghai_time\"R\x0cshanghaiTime\x12P\n\x0b\x63\x61ncun_time\x18\x17 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x12yaml:\"cancun_time\"R\ncancunTime\x12P\n\x0bprague_time\x18\x18 \x01(\tB/\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xf2\xde\x1f\x12yaml:\"prague_time\"R\npragueTime\x12\x63\n\x0f\x65ip155_chain_id\x18\x19 \x01(\tB;\xda\xde\x1f\x15\x63osmossdk.io/math.Int\xe2\xde\x1f\rEIP155ChainID\xea\xde\x1f\reip155ChainIDR\reip155ChainId\x12w\n\x14\x62lob_schedule_config\x18\x1a \x01(\x0b\x32$.injective.evm.v1.BlobScheduleConfigB\x1f\xf2\xde\x1f\x1byaml:\"blob_schedule_config\"R\x12\x62lobScheduleConfigJ\x04\x08\x0e\x10\x0fJ\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x13\x10\x14R\ryolo_v3_blockR\x0b\x65wasm_blockR\x0e\x63\x61talyst_blockR\x10merge_fork_block\"\xea\x01\n\x12\x42lobScheduleConfig\x12\x34\n\x06\x63\x61ncun\x18\x01 \x01(\x0b\x32\x1c.injective.evm.v1.BlobConfigR\x06\x63\x61ncun\x12\x34\n\x06prague\x18\x02 \x01(\x0b\x32\x1c.injective.evm.v1.BlobConfigR\x06prague\x12\x32\n\x05osaka\x18\x03 \x01(\x0b\x32\x1c.injective.evm.v1.BlobConfigR\x05osaka\x12\x34\n\x06verkle\x18\x04 \x01(\x0b\x32\x1c.injective.evm.v1.BlobConfigR\x06verkle\"\x94\x01\n\nBlobConfig\x12\x16\n\x06target\x18\x01 \x01(\x04R\x06target\x12\x10\n\x03max\x18\x02 \x01(\x04R\x03max\x12\\\n\x18\x62\x61se_fee_update_fraction\x18\x03 \x01(\x04\x42#\xf2\xde\x1f\x1fyaml:\"base_fee_update_fraction\"R\x15\x62\x61seFeeUpdateFractionB\xd5\x01\n\x14\x63om.injective.evm.v1B\x10\x43hainConfigProtoP\x01ZIgithub.com/InjectiveLabs/injective-core/injective-chain/modules/evm/types\xa2\x02\x03IEX\xaa\x02\x10Injective.Evm.V1\xca\x02\x10Injective\\Evm\\V1\xe2\x02\x1cInjective\\Evm\\V1\\GPBMetadata\xea\x02\x12Injective::Evm::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -65,6 +65,14 @@ _globals['_CHAINCONFIG'].fields_by_name['prague_time']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\022yaml:\"prague_time\"' _globals['_CHAINCONFIG'].fields_by_name['eip155_chain_id']._loaded_options = None _globals['_CHAINCONFIG'].fields_by_name['eip155_chain_id']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\rEIP155ChainID\352\336\037\reip155ChainID' + _globals['_CHAINCONFIG'].fields_by_name['blob_schedule_config']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['blob_schedule_config']._serialized_options = b'\362\336\037\033yaml:\"blob_schedule_config\"' + _globals['_BLOBCONFIG'].fields_by_name['base_fee_update_fraction']._loaded_options = None + _globals['_BLOBCONFIG'].fields_by_name['base_fee_update_fraction']._serialized_options = b'\362\336\037\037yaml:\"base_fee_update_fraction\"' _globals['_CHAINCONFIG']._serialized_start=80 - _globals['_CHAINCONFIG']._serialized_end=2174 + _globals['_CHAINCONFIG']._serialized_end=2295 + _globals['_BLOBSCHEDULECONFIG']._serialized_start=2298 + _globals['_BLOBSCHEDULECONFIG']._serialized_end=2532 + _globals['_BLOBCONFIG']._serialized_start=2535 + _globals['_BLOBCONFIG']._serialized_end=2683 # @@protoc_insertion_point(module_scope) diff --git a/pyproject.toml b/pyproject.toml index fca45f29..356b546f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc2" +version = "1.11.0-rc3" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" @@ -55,7 +55,7 @@ importlib-metadata = "<5.0" [tool.flakeheaven] -exclude = ["pyinjective/proto/*", ".idea/*"] +exclude = ["pyinjective/proto/*", ".idea/*", "*.md"] max_line_length = 120 diff --git a/tests/client/chain/grpc/test_chain_grpc_erc20_api.py b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py index a9f08941..e1c3ae89 100644 --- a/tests/client/chain/grpc/test_chain_grpc_erc20_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py @@ -1,8 +1,12 @@ +import base64 + import grpc import pytest from pyinjective.client.chain.grpc.chain_grpc_erc20_api import ChainGrpcERC20Api +from pyinjective.client.model.pagination import PaginationOption from pyinjective.core.network import DisabledCookieAssistant, Network +from pyinjective.proto.cosmos.base.query.v1beta1 import pagination_pb2 as pagination_pb from pyinjective.proto.injective.erc20.v1beta1 import ( erc20_pb2 as erc20_pb, params_pb2 as erc20_params_pb, @@ -43,12 +47,25 @@ async def test_fetch_all_token_pairs(self, erc20_servicer): bank_denom="denom", erc20_address="0xd2C6753F6B1783EF0a3857275e16e79D91b539a3", ) + result_pagination = pagination_pb.PageResponse( + next_key=b"\001\032\264\007Z\224$]\377s8\343\004-\265\267\314?B\341", + total=16036, + ) + erc20_servicer.all_token_pairs_responses.append( - erc20_query_pb.QueryAllTokenPairsResponse(token_pairs=[token_pair]) + erc20_query_pb.QueryAllTokenPairsResponse( + token_pairs=[token_pair], + pagination=result_pagination, + ) ) api = self._api_instance(erc20_servicer) - response = await api.fetch_all_token_pairs() + response = await api.fetch_all_token_pairs( + pagination=PaginationOption( + skip=0, + limit=100, + ), + ) expected_token_pairs = { "tokenPairs": [ @@ -56,7 +73,11 @@ async def test_fetch_all_token_pairs(self, erc20_servicer): "bankDenom": token_pair.bank_denom, "erc20Address": token_pair.erc20_address, } - ] + ], + "pagination": { + "nextKey": base64.b64encode(result_pagination.next_key).decode(), + "total": str(result_pagination.total), + }, } assert response == expected_token_pairs diff --git a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py index 8a09c5e6..8dd39430 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_derivative_api.py @@ -938,6 +938,7 @@ async def test_fetch_trades( trade_id="8662464_1_0", execution_side="taker", cid="cid1", + pnl="1000.123456789", ) paging = exchange_derivative_pb.Paging(total=5, to=5, count_by_subaccount=10, next=["next1", "next2"]) @@ -990,6 +991,7 @@ async def test_fetch_trades( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], "paging": { @@ -1117,6 +1119,7 @@ async def test_fetch_subaccount_trades_list( trade_id="8662464_1_0", execution_side="taker", cid="cid1", + pnl="1000.123456789", ) derivative_servicer.subaccount_trades_list_responses.append( @@ -1158,6 +1161,7 @@ async def test_fetch_subaccount_trades_list( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], } @@ -1286,6 +1290,7 @@ async def test_fetch_trades_v2( trade_id="8662464_1_0", execution_side="taker", cid="cid1", + pnl="1000.123456789", ) paging = exchange_derivative_pb.Paging(total=5, to=5, count_by_subaccount=10, next=["next1", "next2"]) @@ -1338,6 +1343,7 @@ async def test_fetch_trades_v2( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], "paging": { diff --git a/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py b/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py index a17d96d7..b2007233 100644 --- a/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py +++ b/tests/client/indexer/grpc/test_indexer_grpc_explorer_api.py @@ -374,11 +374,14 @@ async def test_fetch_contract_txs_v2( b'{"key":"sender","value":"inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex"}]}]}]', claim_ids=[claim_id], ) + response_paging = exchange_explorer_pb.Cursor( + next=["next-page"], + ) explorer_servicer.contract_txs_v2_responses.append( exchange_explorer_pb.GetContractTxsV2Response( data=[tx_data], - next=["next-page"], + paging=response_paging, ) ) @@ -388,6 +391,7 @@ async def test_fetch_contract_txs_v2( address="inj1phd706jqzd9wznkk5hgsfkrc8jqxv0kmlj0kex", height=8, token="inj", + status="status", pagination=PaginationOption( limit=100, start_time=1699544939364, @@ -442,7 +446,9 @@ async def test_fetch_contract_txs_v2( "claimIds": [str(claim_id)], }, ], - "next": ["next-page"], + "paging": { + "next": ["next-page"], + }, } assert result_contract_txs == expected_contract_txs @@ -1409,6 +1415,8 @@ async def test_fetch_wasm_contracts( code_id=wasm_contract.code_id, assets_only=False, label=wasm_contract.label, + token="inj", + lookup="lookup text", pagination=PaginationOption( limit=100, skip=10, diff --git a/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py b/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py index f8e33847..d47f5fba 100644 --- a/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py +++ b/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py @@ -518,6 +518,7 @@ async def test_stream_trades( trade_id="8662464_1_0", execution_side="taker", cid="cid1", + pnl="1000.123456789", ) derivative_servicer.stream_trades_responses.append( @@ -579,6 +580,7 @@ async def test_stream_trades( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, "operationType": operation_type, "timestamp": str(timestamp), @@ -714,6 +716,7 @@ async def test_stream_trades_v2( trade_id="8662464_1_0", execution_side="taker", cid="cid1", + pnl="1000.123456789", ) derivative_servicer.stream_trades_v2_responses.append( @@ -775,6 +778,7 @@ async def test_stream_trades_v2( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, "operationType": operation_type, "timestamp": str(timestamp), From 8a57e99ad338fb4803bd734d6a693c3bec8ee1e2 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 16 Jun 2025 18:02:29 -0300 Subject: [PATCH 26/35] fix: fixed errors in example scripts --- .../chain_client/5_MessageBroadcasterWithoutSimulation.py | 4 ++-- examples/chain_client/exchange/9_MsgBatchUpdateOrders.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index d91f7d1f..41d94702 100644 --- a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py +++ b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py @@ -46,7 +46,7 @@ async def main() -> None: spot_market_id_create = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" spot_orders_to_create = [ - composer.composer.spot_order( + composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -55,7 +55,7 @@ async def main() -> None: order_type="BUY", cid=str(uuid.uuid4()), ), - composer.composer.spot_order( + composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, diff --git a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py index 463cb762..f6703cbe 100644 --- a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py +++ b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py @@ -97,7 +97,7 @@ async def main() -> None: ] spot_orders_to_create = [ - composer.composer.spot_order( + composer.spot_order( 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.composer.spot_order( + composer.spot_order( market_id=spot_market_id_create, subaccount_id=subaccount_id, fee_recipient=fee_recipient, From 7fa372d77c676ed87d0a05214ae44ae9cea27b35 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 23 Jun 2025 09:40:28 -0300 Subject: [PATCH 27/35] fix: added missing endpoints in AsyncClient v2. Fixed errors in the example scripts --- examples/chain_client/1_LocalOrderHash.py | 7 +- .../5_MessageBroadcasterWithoutSimulation.py | 2 +- examples/chain_client/auction/1_MsgBid.py | 67 ++++------- examples/chain_client/auth/query/1_Account.py | 3 +- examples/chain_client/authz/1_MsgGrant.py | 69 ++++------- examples/chain_client/authz/2_MsgExec.py | 79 ++++--------- examples/chain_client/authz/3_MsgRevoke.py | 67 ++++------- examples/chain_client/authz/query/1_Grants.py | 3 +- examples/chain_client/bank/1_MsgSend.py | 67 ++++------- .../chain_client/bank/query/10_SendEnabled.py | 3 +- .../chain_client/bank/query/1_BankBalance.py | 3 +- .../chain_client/bank/query/2_BankBalances.py | 3 +- .../bank/query/3_SpendableBalances.py | 3 +- .../bank/query/4_SpendableBalancesByDenom.py | 3 +- .../chain_client/bank/query/5_TotalSupply.py | 3 +- .../chain_client/bank/query/6_SupplyOf.py | 3 +- .../bank/query/7_DenomMetadata.py | 3 +- .../bank/query/8_DenomsMetadata.py | 3 +- .../chain_client/bank/query/9_DenomOwners.py | 3 +- .../distribution/1_SetWithdrawAddress.py | 2 +- .../distribution/2_WithdrawDelegatorReward.py | 2 +- .../3_WithdrawValidatorCommission.py | 2 +- .../distribution/4_FundCommunityPool.py | 2 +- .../query/1_ValidatorDistributionInfo.py | 3 +- .../query/2_ValidatorOutstandingRewards.py | 3 +- .../query/3_ValidatorCommission.py | 3 +- .../distribution/query/4_ValidatorSlashes.py | 3 +- .../distribution/query/5_DelegationRewards.py | 3 +- .../query/6_DelegationTotalRewards.py | 3 +- .../query/7_DelegatorValidators.py | 3 +- .../query/8_DelegatorWithdrawAddress.py | 3 +- .../distribution/query/9_CommunityPool.py | 3 +- .../10_MsgCreateDerivativeLimitOrder.py | 72 ++++-------- .../11_MsgCreateDerivativeMarketOrder.py | 72 ++++-------- .../exchange/12_MsgCancelDerivativeOrder.py | 67 ++++------- .../14_MsgCreateBinaryOptionsLimitOrder.py | 72 ++++-------- .../15_MsgCreateBinaryOptionsMarketOrder.py | 71 ++++------- .../16_MsgCancelBinaryOptionsOrder.py | 71 ++++------- .../exchange/17_MsgSubaccountTransfer.py | 67 ++++------- .../exchange/18_MsgExternalTransfer.py | 67 ++++------- .../exchange/19_MsgLiquidatePosition.py | 75 ++++-------- .../chain_client/exchange/1_MsgDeposit.py | 67 ++++------- .../exchange/20_MsgIncreasePositionMargin.py | 67 ++++------- .../exchange/21_MsgRewardsOptOut.py | 67 ++++------- .../22_MsgAdminUpdateBinaryOptionsMarket.py | 72 ++++-------- .../chain_client/exchange/2_MsgWithdraw.py | 67 ++++------- .../exchange/7_MsgCreateSpotMarketOrder.py | 72 ++++-------- .../exchange/8_MsgCancelSpotOrder.py | 67 ++++------- .../exchange/9_MsgBatchUpdateOrders.py | 74 ++++-------- .../exchange/query/1_SubaccountDeposits.py | 3 +- .../exchange/query/2_SubaccountDeposit.py | 3 +- .../exchange/query/3_ExchangeBalances.py | 3 +- .../exchange/query/4_AggregateVolume.py | 5 +- .../exchange/query/52_MarketVolatility.py | 3 +- .../exchange/query/58_GrantAuthorizations.py | 3 +- .../query/59_L3DerivativeOrderBook.py | 21 ---- ...8_MarketBalance.py => 59_MarketBalance.py} | 14 +-- .../exchange/query/5_AggregateVolumes.py | 3 +- .../exchange/query/60_L3SpotOrderBook.py | 21 ---- ...MarketBalances.py => 60_MarketBalances.py} | 3 +- ...mMinNotional.py => 61_DenomMinNotional.py} | 0 ...inNotionals.py => 62_DenomMinNotionals.py} | 0 ...derBook.py => 63_L3DerivativeOrderBook.py} | 0 ...SpotOrderBook.py => 64_L3SpotOrderBook.py} | 0 .../exchange/query/6_AggregateMarketVolume.py | 3 +- .../insurance/1_MsgCreateInsuranceFund.py | 67 ++++------- .../chain_client/insurance/2_MsgUnderwrite.py | 67 ++++------- .../insurance/3_MsgRequestRedemption.py | 67 ++++------- .../oracle/1_MsgRelayPriceFeedPrice.py | 67 ++++------- .../oracle/2_MsgRelayProviderPrices.py | 72 ++++-------- examples/chain_client/peggy/1_MsgSendToEth.py | 67 ++++------- .../chain_client/staking/1_MsgDelegate.py | 67 ++++------- .../tokenfactory/4_MsgChangeAdmin.py | 2 +- .../tokenfactory/5_MsgSetDenomMetadata.py | 2 +- .../chain_client/wasm/1_MsgExecuteContract.py | 67 ++++------- .../wasmx/1_MsgExecuteContractCompat.py | 66 ++++------- .../chain/grpc/chain_grpc_exchange_v2_api.py | 67 +++++++---- ...configurable_exchange_v2_query_servicer.py | 20 ++++ .../grpc/test_chain_grpc_exchange_v2_api.py | 110 ++++++++++++++++++ 79 files changed, 908 insertions(+), 1601 deletions(-) delete mode 100644 examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py rename examples/chain_client/exchange/query/{58_MarketBalance.py => 59_MarketBalance.py} (59%) delete mode 100644 examples/chain_client/exchange/query/60_L3SpotOrderBook.py rename examples/chain_client/exchange/query/{59_MarketBalances.py => 60_MarketBalances.py} (91%) rename examples/chain_client/exchange/query/{60_DenomMinNotional.py => 61_DenomMinNotional.py} (100%) rename examples/chain_client/exchange/query/{61_DenomMinNotionals.py => 62_DenomMinNotionals.py} (100%) rename examples/chain_client/exchange/query/{56_L3DerivativeOrderBook.py => 63_L3DerivativeOrderBook.py} (100%) rename examples/chain_client/exchange/query/{57_L3SpotOrderBook.py => 64_L3SpotOrderBook.py} (100%) diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index 89ca21a4..55574d6d 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -1,4 +1,5 @@ import asyncio +import json import os import uuid from decimal import Decimal @@ -132,7 +133,7 @@ async def main() -> None: # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) + print(json.dumps(res, indent=2)) print("gas wanted: {}".format(gas_limit)) print("gas fee: {} INJ".format(gas_fee)) @@ -173,7 +174,7 @@ async def main() -> None: # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) + print(json.dumps(res, indent=2)) print("gas wanted: {}".format(gas_limit)) print("gas fee: {} INJ".format(gas_fee)) @@ -269,7 +270,7 @@ async def main() -> None: # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) + print(json.dumps(res, indent=2)) print("gas wanted: {}".format(gas_limit)) print("gas fee: {} INJ".format(gas_fee)) diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index 41d94702..7efd2fde 100644 --- a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py +++ b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py @@ -27,7 +27,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=private_key_in_hexa, gas_price=gas_price, diff --git a/examples/chain_client/auction/1_MsgBid.py b/examples/chain_client/auction/1_MsgBid.py index 350d82f6..5b75bd13 100644 --- a/examples/chain_client/auction/1_MsgBid.py +++ b/examples/chain_client/auction/1_MsgBid.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,59 +20,35 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg msg = composer.msg_bid(sender=address.to_acc_bech32(), round=16250, bid_amount=1) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/auth/query/1_Account.py b/examples/chain_client/auth/query/1_Account.py index 7a1d7522..d0318646 100644 --- a/examples/chain_client/auth/query/1_Account.py +++ b/examples/chain_client/auth/query/1_Account.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) address = "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" acc = await client.fetch_account(address=address) - print(acc) + print(json.dumps(acc, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/authz/1_MsgGrant.py b/examples/chain_client/authz/1_MsgGrant.py index a57bed85..60e87b98 100644 --- a/examples/chain_client/authz/1_MsgGrant.py +++ b/examples/chain_client/authz/1_MsgGrant.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") grantee_public_address = os.getenv("INJECTIVE_GRANTEE_PUBLIC_ADDRESS") # select network: local, testnet, mainnet @@ -22,13 +21,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # subaccount_id = address.get_subaccount_id(index=0) # market_ids = ["0x0511ddc4e6586f3bfe1acb2dd905f8b8a82c97e1edaef654b12ca7e6031ca0fa"] @@ -52,48 +60,15 @@ async def main() -> None: # market_ids=market_ids # ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - # build tx + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/authz/2_MsgExec.py b/examples/chain_client/authz/2_MsgExec.py index 691fd830..e32efb4c 100644 --- a/examples/chain_client/authz/2_MsgExec.py +++ b/examples/chain_client/authz/2_MsgExec.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import Address, PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_GRANTEE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_GRANTEE_PRIVATE_KEY") granter_inj_address = os.getenv("INJECTIVE_GRANTER_PUBLIC_ADDRESS") # select network: local, testnet, mainnet @@ -24,13 +23,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_for_grantee_account_using_gas_heuristics( + network=network, + grantee_private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" @@ -38,7 +46,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( + message = composer.msg_create_spot_limit_order( sender=granter_inj_address, market_id=market_id, subaccount_id=granter_subaccount_id, @@ -49,58 +57,15 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - msg = composer.msg_exec(grantee=grantee, msgs=[msg0]) + # broadcast the transaction + result = await message_broadcaster.broadcast([message]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msgs = sim_res["result"]["msgResponses"] - data = sim_res_msgs[0] - unpacked_msg_res = composer.unpack_msg_exec_response( - underlying_msg_type=msg0.__class__.__name__, msg_exec_response=data - ) - print("simulation msg response") - print(unpacked_msg_res) - - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/authz/3_MsgRevoke.py b/examples/chain_client/authz/3_MsgRevoke.py index 3e534f7c..83f978ed 100644 --- a/examples/chain_client/authz/3_MsgRevoke.py +++ b/examples/chain_client/authz/3_MsgRevoke.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") grantee_public_address = os.getenv("INJECTIVE_GRANTEE_PUBLIC_ADDRESS") # select network: local, testnet, mainnet @@ -22,13 +21,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg msg = composer.msg_revoke( @@ -37,48 +45,15 @@ async def main() -> None: msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/authz/query/1_Grants.py b/examples/chain_client/authz/query/1_Grants.py index 1f252508..abf12e75 100644 --- a/examples/chain_client/authz/query/1_Grants.py +++ b/examples/chain_client/authz/query/1_Grants.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -16,7 +17,7 @@ async def main() -> None: client = AsyncClient(network) msg_type_url = "/injective.exchange.v2.MsgCreateDerivativeLimitOrder" authorizations = await client.fetch_grants(granter=granter, grantee=grantee, msg_type_url=msg_type_url) - print(authorizations) + print(json.dumps(authorizations, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/1_MsgSend.py b/examples/chain_client/bank/1_MsgSend.py index 4b34d6f4..6c101a3b 100644 --- a/examples/chain_client/bank/1_MsgSend.py +++ b/examples/chain_client/bank/1_MsgSend.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg msg = composer.msg_send( @@ -37,48 +45,15 @@ async def main() -> None: denom="inj", ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/10_SendEnabled.py b/examples/chain_client/bank/query/10_SendEnabled.py index f043e878..6ae82c71 100644 --- a/examples/chain_client/bank/query/10_SendEnabled.py +++ b/examples/chain_client/bank/query/10_SendEnabled.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption @@ -13,7 +14,7 @@ async def main() -> None: denoms=[denom], pagination=PaginationOption(limit=10), ) - print(enabled) + print(json.dumps(enabled, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/1_BankBalance.py b/examples/chain_client/bank/query/1_BankBalance.py index fa9e5aac..2163ee1e 100644 --- a/examples/chain_client/bank/query/1_BankBalance.py +++ b/examples/chain_client/bank/query/1_BankBalance.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -10,7 +11,7 @@ async def main() -> None: address = "inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r" denom = "inj" bank_balance = await client.fetch_bank_balance(address=address, denom=denom) - print(bank_balance) + print(json.dumps(bank_balance, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/2_BankBalances.py b/examples/chain_client/bank/query/2_BankBalances.py index 5fb6d8e0..be03cfc4 100644 --- a/examples/chain_client/bank/query/2_BankBalances.py +++ b/examples/chain_client/bank/query/2_BankBalances.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) address = "inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r" all_bank_balances = await client.fetch_bank_balances(address=address) - print(all_bank_balances) + print(json.dumps(all_bank_balances, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/3_SpendableBalances.py b/examples/chain_client/bank/query/3_SpendableBalances.py index 81f294ff..0536d0c2 100644 --- a/examples/chain_client/bank/query/3_SpendableBalances.py +++ b/examples/chain_client/bank/query/3_SpendableBalances.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) address = "inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r" spendable_balances = await client.fetch_spendable_balances(address=address) - print(spendable_balances) + print(json.dumps(spendable_balances, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py b/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py index 06d13e6b..d9c5bc1a 100644 --- a/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py +++ b/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -10,7 +11,7 @@ async def main() -> None: address = "inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r" denom = "inj" spendable_balances = await client.fetch_spendable_balances_by_denom(address=address, denom=denom) - print(spendable_balances) + print(json.dumps(spendable_balances, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/5_TotalSupply.py b/examples/chain_client/bank/query/5_TotalSupply.py index adba28cc..c55ec15a 100644 --- a/examples/chain_client/bank/query/5_TotalSupply.py +++ b/examples/chain_client/bank/query/5_TotalSupply.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption @@ -11,7 +12,7 @@ async def main() -> None: total_supply = await client.fetch_total_supply( pagination=PaginationOption(limit=10), ) - print(total_supply) + print(json.dumps(total_supply, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/6_SupplyOf.py b/examples/chain_client/bank/query/6_SupplyOf.py index 681453a2..472c06f2 100644 --- a/examples/chain_client/bank/query/6_SupplyOf.py +++ b/examples/chain_client/bank/query/6_SupplyOf.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -8,7 +9,7 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) supply_of = await client.fetch_supply_of(denom="inj") - print(supply_of) + print(json.dumps(supply_of, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/7_DenomMetadata.py b/examples/chain_client/bank/query/7_DenomMetadata.py index 5bf78e71..76ffb25c 100644 --- a/examples/chain_client/bank/query/7_DenomMetadata.py +++ b/examples/chain_client/bank/query/7_DenomMetadata.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) denom = "factory/inj107aqkjc3t5r3l9j4n9lgrma5tm3jav8qgppz6m/position" metadata = await client.fetch_denom_metadata(denom=denom) - print(metadata) + print(json.dumps(metadata, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/8_DenomsMetadata.py b/examples/chain_client/bank/query/8_DenomsMetadata.py index 8540c9cd..3a4b16bc 100644 --- a/examples/chain_client/bank/query/8_DenomsMetadata.py +++ b/examples/chain_client/bank/query/8_DenomsMetadata.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption @@ -11,7 +12,7 @@ async def main() -> None: denoms = await client.fetch_denoms_metadata( pagination=PaginationOption(limit=10), ) - print(denoms) + print(json.dumps(denoms, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/bank/query/9_DenomOwners.py b/examples/chain_client/bank/query/9_DenomOwners.py index da8a6538..a170e7fd 100644 --- a/examples/chain_client/bank/query/9_DenomOwners.py +++ b/examples/chain_client/bank/query/9_DenomOwners.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption @@ -13,7 +14,7 @@ async def main() -> None: denom=denom, pagination=PaginationOption(limit=10), ) - print(owners) + print(json.dumps(owners, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/1_SetWithdrawAddress.py b/examples/chain_client/distribution/1_SetWithdrawAddress.py index a8dd3973..261124e1 100644 --- a/examples/chain_client/distribution/1_SetWithdrawAddress.py +++ b/examples/chain_client/distribution/1_SetWithdrawAddress.py @@ -22,7 +22,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py index be2ada42..64041aaa 100644 --- a/examples/chain_client/distribution/2_WithdrawDelegatorReward.py +++ b/examples/chain_client/distribution/2_WithdrawDelegatorReward.py @@ -23,7 +23,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py index 63b37a6d..bd452c57 100644 --- a/examples/chain_client/distribution/3_WithdrawValidatorCommission.py +++ b/examples/chain_client/distribution/3_WithdrawValidatorCommission.py @@ -23,7 +23,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/examples/chain_client/distribution/4_FundCommunityPool.py b/examples/chain_client/distribution/4_FundCommunityPool.py index 2b78af9a..10d93c16 100644 --- a/examples/chain_client/distribution/4_FundCommunityPool.py +++ b/examples/chain_client/distribution/4_FundCommunityPool.py @@ -23,7 +23,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=configured_private_key, gas_price=gas_price, diff --git a/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py b/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py index 3d8442b7..6be36259 100644 --- a/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py +++ b/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) validator_address = "injvaloper1jue5dpr9lerjn6wlwtrywxrsenrf28ru89z99z" distribution_info = await client.fetch_validator_distribution_info(validator_address=validator_address) - print(distribution_info) + print(json.dumps(distribution_info, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py b/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py index 12321f9f..1bd21c12 100644 --- a/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py +++ b/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) validator_address = "injvaloper1jue5dpr9lerjn6wlwtrywxrsenrf28ru89z99z" rewards = await client.fetch_validator_outstanding_rewards(validator_address=validator_address) - print(rewards) + print(json.dumps(rewards, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/3_ValidatorCommission.py b/examples/chain_client/distribution/query/3_ValidatorCommission.py index 7ce6104b..f6054ae0 100644 --- a/examples/chain_client/distribution/query/3_ValidatorCommission.py +++ b/examples/chain_client/distribution/query/3_ValidatorCommission.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -9,7 +10,7 @@ async def main() -> None: client = AsyncClient(network) validator_address = "injvaloper1jue5dpr9lerjn6wlwtrywxrsenrf28ru89z99z" commission = await client.fetch_validator_commission(validator_address=validator_address) - print(commission) + print(json.dumps(commission, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/4_ValidatorSlashes.py b/examples/chain_client/distribution/query/4_ValidatorSlashes.py index 198327f4..00b7a8e2 100644 --- a/examples/chain_client/distribution/query/4_ValidatorSlashes.py +++ b/examples/chain_client/distribution/query/4_ValidatorSlashes.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.client.model.pagination import PaginationOption @@ -13,7 +14,7 @@ async def main() -> None: pagination = PaginationOption(limit=limit) validator_address = "injvaloper1jue5dpr9lerjn6wlwtrywxrsenrf28ru89z99z" contracts = await client.fetch_validator_slashes(validator_address=validator_address, pagination=pagination) - print(contracts) + print(json.dumps(contracts, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/5_DelegationRewards.py b/examples/chain_client/distribution/query/5_DelegationRewards.py index f0c822d2..71e36cad 100644 --- a/examples/chain_client/distribution/query/5_DelegationRewards.py +++ b/examples/chain_client/distribution/query/5_DelegationRewards.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -12,7 +13,7 @@ async def main() -> None: rewards = await client.fetch_delegation_rewards( delegator_address=delegator_address, validator_address=validator_address ) - print(rewards) + print(json.dumps(rewards, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/6_DelegationTotalRewards.py b/examples/chain_client/distribution/query/6_DelegationTotalRewards.py index 0945ae26..06d5c84a 100644 --- a/examples/chain_client/distribution/query/6_DelegationTotalRewards.py +++ b/examples/chain_client/distribution/query/6_DelegationTotalRewards.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +12,7 @@ async def main() -> None: rewards = await client.fetch_delegation_total_rewards( delegator_address=delegator_address, ) - print(rewards) + print(json.dumps(rewards, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/7_DelegatorValidators.py b/examples/chain_client/distribution/query/7_DelegatorValidators.py index b27373d9..7cf7634e 100644 --- a/examples/chain_client/distribution/query/7_DelegatorValidators.py +++ b/examples/chain_client/distribution/query/7_DelegatorValidators.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +12,7 @@ async def main() -> None: validators = await client.fetch_delegator_validators( delegator_address=delegator_address, ) - print(validators) + print(json.dumps(validators, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py b/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py index bcc5a732..90378bef 100644 --- a/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py +++ b/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +12,7 @@ async def main() -> None: withdraw_address = await client.fetch_delegator_withdraw_address( delegator_address=delegator_address, ) - print(withdraw_address) + print(json.dumps(withdraw_address, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/distribution/query/9_CommunityPool.py b/examples/chain_client/distribution/query/9_CommunityPool.py index 190d3b95..f4a14dfd 100644 --- a/examples/chain_client/distribution/query/9_CommunityPool.py +++ b/examples/chain_client/distribution/query/9_CommunityPool.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -8,7 +9,7 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) community_pool = await client.fetch_community_pool() - print(community_pool) + print(json.dumps(community_pool, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py index ea1f3afd..aed41c73 100644 --- a/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py +++ b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -51,53 +59,15 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py index 84bf1ff1..4e86e724 100644 --- a/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py +++ b/examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -51,53 +59,15 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py index 01e5778c..7ff56a05 100644 --- a/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py +++ b/examples/chain_client/exchange/12_MsgCancelDerivativeOrder.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -45,48 +53,15 @@ async def main() -> None: is_conditional=False, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py index 4f83e4f3..9532d3bb 100644 --- a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -49,53 +57,15 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py index 42142538..78ab4a38 100644 --- a/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py +++ b/examples/chain_client/exchange/15_MsgCreateBinaryOptionsMarketOrder.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -49,53 +57,16 @@ async def main() -> None: ), cid=str(uuid.uuid4()), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py index 26e8a984..5ba84019 100644 --- a/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py +++ b/examples/chain_client/exchange/16_MsgCancelBinaryOptionsOrder.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -44,53 +52,16 @@ async def main() -> None: is_market_order=False, is_conditional=False, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py index 878befc7..25ee7ebd 100644 --- a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py +++ b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) dest_subaccount_id = address.get_subaccount_id(index=1) @@ -40,48 +48,15 @@ async def main() -> None: denom="inj", ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/18_MsgExternalTransfer.py b/examples/chain_client/exchange/18_MsgExternalTransfer.py index b4720310..e0edc731 100644 --- a/examples/chain_client/exchange/18_MsgExternalTransfer.py +++ b/examples/chain_client/exchange/18_MsgExternalTransfer.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) dest_subaccount_id = "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000" @@ -40,48 +48,15 @@ async def main() -> None: denom="inj", ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/19_MsgLiquidatePosition.py b/examples/chain_client/exchange/19_MsgLiquidatePosition.py index 3e9054e9..376b87d4 100644 --- a/examples/chain_client/exchange/19_MsgLiquidatePosition.py +++ b/examples/chain_client/exchange/19_MsgLiquidatePosition.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -58,54 +66,15 @@ async def main() -> None: order=order, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) - - # build tx + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) - print(f"\n\ncid: {cid}") + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/1_MsgDeposit.py b/examples/chain_client/exchange/1_MsgDeposit.py index efc6144e..a01a9717 100644 --- a/examples/chain_client/exchange/1_MsgDeposit.py +++ b/examples/chain_client/exchange/1_MsgDeposit.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,60 +20,36 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) 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=1, denom="inj") - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py index c5c3d006..2a2f5108 100644 --- a/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py +++ b/examples/chain_client/exchange/20_MsgIncreasePositionMargin.py @@ -1,20 +1,19 @@ import asyncio +import json import os from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -22,13 +21,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -43,48 +51,15 @@ async def main() -> None: amount=Decimal(2), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/21_MsgRewardsOptOut.py b/examples/chain_client/exchange/21_MsgRewardsOptOut.py index a7be5b27..3d7f1772 100644 --- a/examples/chain_client/exchange/21_MsgRewardsOptOut.py +++ b/examples/chain_client/exchange/21_MsgRewardsOptOut.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,59 +20,35 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg msg = composer.msg_rewards_opt_out(sender=address.to_acc_bech32()) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py index 748c4459..f37cb08b 100644 --- a/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py +++ b/examples/chain_client/exchange/22_MsgAdminUpdateBinaryOptionsMarket.py @@ -1,20 +1,19 @@ import asyncio +import json import os from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -22,13 +21,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare trade info market_id = "0xfafec40a7b93331c1fc89c23f66d11fbb48f38dfdd78f7f4fc4031fad90f6896" @@ -47,53 +55,15 @@ async def main() -> None: status=status, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/2_MsgWithdraw.py b/examples/chain_client/exchange/2_MsgWithdraw.py index 72d69668..4372a124 100644 --- a/examples/chain_client/exchange/2_MsgWithdraw.py +++ b/examples/chain_client/exchange/2_MsgWithdraw.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,61 +20,37 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() 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=denom) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py index 89423499..f95d55d6 100644 --- a/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py +++ b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -48,53 +56,15 @@ async def main() -> None: cid=str(uuid.uuid4()), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py index ab1381db..66a31fb3 100644 --- a/examples/chain_client/exchange/8_MsgCancelSpotOrder.py +++ b/examples/chain_client/exchange/8_MsgCancelSpotOrder.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -39,48 +47,15 @@ async def main() -> None: sender=address.to_acc_bech32(), market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py index f6703cbe..553cf0ba 100644 --- a/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py +++ b/examples/chain_client/exchange/9_MsgBatchUpdateOrders.py @@ -1,21 +1,20 @@ import asyncio +import json import os import uuid from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) subaccount_id = address.get_subaccount_id(index=0) # prepare trade info @@ -126,53 +134,15 @@ async def main() -> None: spot_orders_to_cancel=spot_orders_to_cancel, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) - - # build tx + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) + gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/1_SubaccountDeposits.py b/examples/chain_client/exchange/query/1_SubaccountDeposits.py index e4f07c30..24a0f362 100644 --- a/examples/chain_client/exchange/query/1_SubaccountDeposits.py +++ b/examples/chain_client/exchange/query/1_SubaccountDeposits.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -27,7 +28,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) deposits = await client.fetch_subaccount_deposits(subaccount_id=subaccount_id) - print(deposits) + print(json.dumps(deposits, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/2_SubaccountDeposit.py b/examples/chain_client/exchange/query/2_SubaccountDeposit.py index 28df1ab0..274d393b 100644 --- a/examples/chain_client/exchange/query/2_SubaccountDeposit.py +++ b/examples/chain_client/exchange/query/2_SubaccountDeposit.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -27,7 +28,7 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) deposit = await client.fetch_subaccount_deposit(subaccount_id=subaccount_id, denom="inj") - print(deposit) + print(json.dumps(deposit, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/3_ExchangeBalances.py b/examples/chain_client/exchange/query/3_ExchangeBalances.py index 86cd43a7..15ade507 100644 --- a/examples/chain_client/exchange/query/3_ExchangeBalances.py +++ b/examples/chain_client/exchange/query/3_ExchangeBalances.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -11,7 +12,7 @@ async def main() -> None: client = AsyncClient(network) balances = await client.fetch_exchange_balances() - print(balances) + print(json.dumps(balances, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/4_AggregateVolume.py b/examples/chain_client/exchange/query/4_AggregateVolume.py index 66c5b12f..1c284e79 100644 --- a/examples/chain_client/exchange/query/4_AggregateVolume.py +++ b/examples/chain_client/exchange/query/4_AggregateVolume.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -26,10 +27,10 @@ async def main() -> None: subaccount_id = address.get_subaccount_id(index=0) volume = await client.fetch_aggregate_volume(account=address.to_acc_bech32()) - print(volume) + print(json.dumps(volume, indent=2)) volume = await client.fetch_aggregate_volume(account=subaccount_id) - print(volume) + print(json.dumps(volume, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/52_MarketVolatility.py b/examples/chain_client/exchange/query/52_MarketVolatility.py index 50d50991..c1e0900c 100644 --- a/examples/chain_client/exchange/query/52_MarketVolatility.py +++ b/examples/chain_client/exchange/query/52_MarketVolatility.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -23,7 +24,7 @@ async def main() -> None: include_raw_history=include_raw_history, include_metadata=include_metadata, ) - print(volatility) + print(json.dumps(volatility, indent=4)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/58_GrantAuthorizations.py b/examples/chain_client/exchange/query/58_GrantAuthorizations.py index 5ca0009c..0a930e81 100644 --- a/examples/chain_client/exchange/query/58_GrantAuthorizations.py +++ b/examples/chain_client/exchange/query/58_GrantAuthorizations.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -25,7 +26,7 @@ async def main() -> None: active_grant = await client.fetch_grant_authorizations( granter=address.to_acc_bech32(), ) - print(active_grant) + print(json.dumps(active_grant, indent=4)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py deleted file mode 100644 index 38f10f92..00000000 --- a/examples/chain_client/exchange/query/59_L3DerivativeOrderBook.py +++ /dev/null @@ -1,21 +0,0 @@ -import asyncio - -from pyinjective.async_client_v2 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( - market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", - ) - print(orderbook) - - -if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/58_MarketBalance.py b/examples/chain_client/exchange/query/59_MarketBalance.py similarity index 59% rename from examples/chain_client/exchange/query/58_MarketBalance.py rename to examples/chain_client/exchange/query/59_MarketBalance.py index fc8a8df1..4fe4c760 100644 --- a/examples/chain_client/exchange/query/58_MarketBalance.py +++ b/examples/chain_client/exchange/query/59_MarketBalance.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -6,7 +7,7 @@ async def main() -> None: """ - Demonstrate fetching market balance using AsyncClient. + Demonstrate fetching market balances using AsyncClient. """ # Select network: choose between Network.mainnet(), Network.testnet(), or Network.devnet() network = Network.testnet() @@ -15,13 +16,12 @@ async def main() -> None: client = AsyncClient(network) try: - # Example market ID (replace with an actual market ID from the network) - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - - # Fetch market balance - market_balance = await client.fetch_market_balance(market_id=market_id) + # Fetch market balances + market_balance = await client.fetch_market_balance( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + ) print("Market Balance:") - print(market_balance) + print(json.dumps(market_balance, indent=4)) except Exception as ex: print(f"Error occurred: {ex}") diff --git a/examples/chain_client/exchange/query/5_AggregateVolumes.py b/examples/chain_client/exchange/query/5_AggregateVolumes.py index 06fe8152..66b1acd7 100644 --- a/examples/chain_client/exchange/query/5_AggregateVolumes.py +++ b/examples/chain_client/exchange/query/5_AggregateVolumes.py @@ -1,4 +1,5 @@ import asyncio +import json import os import dotenv @@ -27,7 +28,7 @@ async def main() -> None: accounts=[address.to_acc_bech32()], market_ids=["0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe"], ) - print(volume) + print(json.dumps(volume, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/exchange/query/60_L3SpotOrderBook.py b/examples/chain_client/exchange/query/60_L3SpotOrderBook.py deleted file mode 100644 index f2fee345..00000000 --- a/examples/chain_client/exchange/query/60_L3SpotOrderBook.py +++ /dev/null @@ -1,21 +0,0 @@ -import asyncio - -from pyinjective.async_client_v2 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( - market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", - ) - print(orderbook) - - -if __name__ == "__main__": - asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/exchange/query/59_MarketBalances.py b/examples/chain_client/exchange/query/60_MarketBalances.py similarity index 91% rename from examples/chain_client/exchange/query/59_MarketBalances.py rename to examples/chain_client/exchange/query/60_MarketBalances.py index 219a5f62..59981f40 100644 --- a/examples/chain_client/exchange/query/59_MarketBalances.py +++ b/examples/chain_client/exchange/query/60_MarketBalances.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -18,7 +19,7 @@ async def main() -> None: # Fetch market balances market_balances = await client.fetch_market_balances() print("Market Balances:") - print(market_balances) + print(json.dumps(market_balances, indent=4)) except Exception as ex: print(f"Error occurred: {ex}") diff --git a/examples/chain_client/exchange/query/60_DenomMinNotional.py b/examples/chain_client/exchange/query/61_DenomMinNotional.py similarity index 100% rename from examples/chain_client/exchange/query/60_DenomMinNotional.py rename to examples/chain_client/exchange/query/61_DenomMinNotional.py diff --git a/examples/chain_client/exchange/query/61_DenomMinNotionals.py b/examples/chain_client/exchange/query/62_DenomMinNotionals.py similarity index 100% rename from examples/chain_client/exchange/query/61_DenomMinNotionals.py rename to examples/chain_client/exchange/query/62_DenomMinNotionals.py diff --git a/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/63_L3DerivativeOrderBook.py similarity index 100% rename from examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py rename to examples/chain_client/exchange/query/63_L3DerivativeOrderBook.py diff --git a/examples/chain_client/exchange/query/57_L3SpotOrderBook.py b/examples/chain_client/exchange/query/64_L3SpotOrderBook.py similarity index 100% rename from examples/chain_client/exchange/query/57_L3SpotOrderBook.py rename to examples/chain_client/exchange/query/64_L3SpotOrderBook.py diff --git a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py index d1ce6c8b..fef7714c 100644 --- a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py +++ b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py @@ -1,4 +1,5 @@ import asyncio +import json from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -14,7 +15,7 @@ async def main() -> None: market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" volume = await client.fetch_aggregate_market_volume(market_id=market_id) - print(volume) + print(json.dumps(volume, indent=2)) if __name__ == "__main__": diff --git a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py index 5aec1df7..9eb0156f 100644 --- a/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py +++ b/examples/chain_client/insurance/1_MsgCreateInsuranceFund.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -22,13 +21,22 @@ async def main() -> None: # set custom cookie location (optional) - defaults to current dir client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) msg = composer.msg_create_insurance_fund( sender=address.to_acc_bech32(), @@ -41,48 +49,15 @@ async def main() -> None: initial_deposit=1000, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/insurance/2_MsgUnderwrite.py b/examples/chain_client/insurance/2_MsgUnderwrite.py index 000625f7..d717d798 100644 --- a/examples/chain_client/insurance/2_MsgUnderwrite.py +++ b/examples/chain_client/insurance/2_MsgUnderwrite.py @@ -1,20 +1,19 @@ import asyncio +import json import os from decimal import Decimal import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # set custom cookie location (optional) - defaults to current dir client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) token_decimals = 6 amount = 100 @@ -42,48 +50,15 @@ async def main() -> None: amount=int(chain_amount), ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/insurance/3_MsgRequestRedemption.py b/examples/chain_client/insurance/3_MsgRequestRedemption.py index 7f39c7e9..6bd79ab2 100644 --- a/examples/chain_client/insurance/3_MsgRequestRedemption.py +++ b/examples/chain_client/insurance/3_MsgRequestRedemption.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -22,13 +21,22 @@ async def main() -> None: # set custom cookie location (optional) - defaults to current dir client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) msg = composer.msg_request_redemption( sender=address.to_acc_bech32(), @@ -37,48 +45,15 @@ async def main() -> None: amount=100, # raw chain value ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py index 885ffcb2..003e7972 100644 --- a/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py +++ b/examples/chain_client/oracle/1_MsgRelayPriceFeedPrice.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) price = 100 price_to_send = [str(int(price * 10**18))] @@ -39,48 +47,15 @@ async def main() -> None: sender=address.to_acc_bech32(), price=price_to_send, base=base, quote=quote ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py index c681d777..950d77aa 100644 --- a/examples/chain_client/oracle/2_MsgRelayProviderPrices.py +++ b/examples/chain_client/oracle/2_MsgRelayProviderPrices.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) provider = "ufc" symbols = ["KHABIB-TKO-05/30/2023", "KHABIB-TKO-05/26/2023"] @@ -38,53 +46,15 @@ async def main() -> None: sender=address.to_acc_bech32(), provider=provider, symbols=symbols, prices=prices ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return - - sim_res_msg = sim_res["result"]["msgResponses"] - print("---Simulation Response---") - print(sim_res_msg) + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print("---Transaction Response---") - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/peggy/1_MsgSendToEth.py b/examples/chain_client/peggy/1_MsgSendToEth.py index 4f369a8a..e1e38d7b 100644 --- a/examples/chain_client/peggy/1_MsgSendToEth.py +++ b/examples/chain_client/peggy/1_MsgSendToEth.py @@ -1,21 +1,20 @@ import asyncio +import json import os from decimal import Decimal import dotenv import requests -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -23,13 +22,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare msg asset = "injective-protocol" @@ -49,48 +57,15 @@ async def main() -> None: bridge_fee=chain_bridge_fee, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/staking/1_MsgDelegate.py b/examples/chain_client/staking/1_MsgDelegate.py index 33b13889..93472d80 100644 --- a/examples/chain_client/staking/1_MsgDelegate.py +++ b/examples/chain_client/staking/1_MsgDelegate.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -21,13 +20,22 @@ async def main() -> None: # initialize grpc client client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg validator_address = "injvaloper1ultw9r29l8nxy5u6thcgusjn95vsy2caw722q5" @@ -37,48 +45,15 @@ async def main() -> None: delegator_address=address.to_acc_bech32(), validator_address=validator_address, amount=amount ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py index 3a311586..566ab321 100644 --- a/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py +++ b/examples/chain_client/tokenfactory/4_MsgChangeAdmin.py @@ -24,7 +24,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=private_key_in_hexa, gas_price=gas_price, diff --git a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py index 993dc953..24549c1b 100644 --- a/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py +++ b/examples/chain_client/tokenfactory/5_MsgSetDenomMetadata.py @@ -24,7 +24,7 @@ async def main() -> None: # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - message_broadcaster = MsgBroadcasterWithPk.new_without_simulation( + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( network=network, private_key=private_key_in_hexa, gas_price=gas_price, diff --git a/examples/chain_client/wasm/1_MsgExecuteContract.py b/examples/chain_client/wasm/1_MsgExecuteContract.py index ce939f6c..8d6081eb 100644 --- a/examples/chain_client/wasm/1_MsgExecuteContract.py +++ b/examples/chain_client/wasm/1_MsgExecuteContract.py @@ -1,19 +1,18 @@ import asyncio +import json import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() @@ -22,13 +21,22 @@ async def main() -> None: # set custom cookie location (optional) - defaults to current dir client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg # NOTE: COIN MUST BE SORTED IN ALPHABETICAL ORDER BY DENOMS @@ -47,48 +55,15 @@ async def main() -> None: funds=funds, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py index 7c413fd5..6d845045 100644 --- a/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py +++ b/examples/chain_client/wasmx/1_MsgExecuteContractCompat.py @@ -3,31 +3,38 @@ import os import dotenv -from grpc import RpcError from pyinjective.async_client_v2 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction from pyinjective.wallet import PrivateKey async def main() -> None: dotenv.load_dotenv() - configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY") + private_key_in_hexa = os.getenv("INJECTIVE_PRIVATE_KEY") # select network: local, testnet, mainnet network = Network.testnet() client = AsyncClient(network) composer = await client.composer() - await client.sync_timeout_height() - # load account - priv_key = PrivateKey.from_hex(configured_private_key) + gas_price = await client.current_chain_gas_price() + # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gas_price = int(gas_price * 1.1) + + message_broadcaster = MsgBroadcasterWithPk.new_using_gas_heuristics( + network=network, + private_key=private_key_in_hexa, + gas_price=gas_price, + client=client, + composer=composer, + ) + + priv_key = PrivateKey.from_hex(private_key_in_hexa) pub_key = priv_key.to_public_key() address = pub_key.to_address() - await client.fetch_account(address.to_acc_bech32()) # prepare tx msg # NOTE: COIN MUST BE SORTED IN ALPHABETICAL ORDER BY DENOMS @@ -44,48 +51,15 @@ async def main() -> None: funds=funds, ) - # build sim tx - tx = ( - Transaction() - .with_messages(msg) - .with_sequence(client.get_sequence()) - .with_account_num(client.get_number()) - .with_chain_id(network.chain_id) - ) - sim_sign_doc = tx.get_sign_doc(pub_key) - sim_sig = priv_key.sign(sim_sign_doc.SerializeToString()) - sim_tx_raw_bytes = tx.get_tx_data(sim_sig, pub_key) - - # simulate tx - try: - sim_res = await client.simulate(sim_tx_raw_bytes) - except RpcError as ex: - print(ex) - return + # broadcast the transaction + result = await message_broadcaster.broadcast([msg]) + print("---Transaction Response---") + print(json.dumps(result, indent=2)) - # build tx gas_price = await client.current_chain_gas_price() # adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted gas_price = int(gas_price * 1.1) - - gas_limit = int(sim_res["gasInfo"]["gasUsed"]) + GAS_FEE_BUFFER_AMOUNT # add buffer for gas fee computation - gas_fee = "{:.18f}".format((gas_price * gas_limit) / pow(10, 18)).rstrip("0") - fee = [ - composer.coin( - amount=gas_price * gas_limit, - denom=network.fee_denom, - ) - ] - tx = tx.with_gas(gas_limit).with_fee(fee).with_memo("").with_timeout_height(client.timeout_height) - sign_doc = tx.get_sign_doc(pub_key) - sig = priv_key.sign(sign_doc.SerializeToString()) - tx_raw_bytes = tx.get_tx_data(sig, pub_key) - - # broadcast tx: send_tx_async_mode, send_tx_sync_mode, send_tx_block_mode - res = await client.broadcast_tx_sync_mode(tx_raw_bytes) - print(res) - print("gas wanted: {}".format(gas_limit)) - print("gas fee: {} INJ".format(gas_fee)) + message_broadcaster.update_gas_price(gas_price=gas_price) if __name__ == "__main__": diff --git a/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py index d931701b..fd9df5fd 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py @@ -575,6 +575,51 @@ async def fetch_market_atomic_execution_fee_multiplier( 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 fetch_market_balance(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryMarketBalanceRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.MarketBalance, request=request) + + return response + + async def fetch_market_balances(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryMarketBalancesRequest() + response = await self._execute_call(call=self._stub.MarketBalances, request=request) + + return response + + async def fetch_denom_min_notional(self, denom: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryDenomMinNotionalRequest(denom=denom) + response = await self._execute_call(call=self._stub.DenomMinNotional, request=request) + + return response + + async def fetch_denom_min_notionals(self) -> Dict[str, Any]: + request = exchange_query_pb.QueryDenomMinNotionalsRequest() + response = await self._execute_call(call=self._stub.DenomMinNotionals, 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) @@ -600,27 +645,5 @@ async def fetch_grant_authorizations(self, granter: str) -> Dict[str, Any]: 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/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py index c3da9415..fa361011 100644 --- a/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py +++ b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py @@ -70,6 +70,10 @@ def __init__(self): self.grant_authorizations_responses = deque() self.l3_derivative_orderbook_responses = deque() self.l3_spot_orderbook_responses = deque() + self.market_balance_responses = deque() + self.market_balances_responses = deque() + self.denom_min_notional_responses = deque() + self.denom_min_notionals_responses = deque() async def QueryExchangeParams( self, request: exchange_query_pb.QueryExchangeParamsRequest, context=None, metadata=None @@ -359,3 +363,19 @@ async def L3SpotOrderBook( self, request: exchange_query_pb.QueryFullSpotOrderbookRequest, context=None, metadata=None ): return self.l3_spot_orderbook_responses.pop() + + async def MarketBalance(self, request: exchange_query_pb.QueryMarketBalanceRequest, context=None, metadata=None): + return self.market_balance_responses.pop() + + async def MarketBalances(self, request: exchange_query_pb.QueryMarketBalancesRequest, context=None, metadata=None): + return self.market_balances_responses.pop() + + async def DenomMinNotional( + self, request: exchange_query_pb.QueryDenomMinNotionalRequest, context=None, metadata=None + ): + return self.denom_min_notional_responses.pop() + + async def DenomMinNotionals( + self, request: exchange_query_pb.QueryDenomMinNotionalsRequest, context=None, metadata=None + ): + return self.denom_min_notionals_responses.pop() 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 index c7e10286..ab049edf 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py @@ -2647,6 +2647,116 @@ async def test_fetch_l3_spot_orderbook( assert orderbook == expected_orderbook + @pytest.mark.asyncio + async def test_fetch_market_balance( + self, + exchange_servicer, + ): + market_balance = exchange_query_pb.MarketBalance( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + balance="1000000000000000000", + ) + response = exchange_query_pb.QueryMarketBalanceResponse( + balance=market_balance, + ) + exchange_servicer.market_balance_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + market_balance_response = await api.fetch_market_balance( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + ) + expected_market_balance = { + "balance": { + "marketId": market_balance.market_id, + "balance": market_balance.balance, + } + } + + assert market_balance_response == expected_market_balance + + @pytest.mark.asyncio + async def test_fetch_market_balances( + self, + exchange_servicer, + ): + balance1 = exchange_query_pb.MarketBalance( + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", + balance="1000000000000000000", + ) + balance2 = exchange_query_pb.MarketBalance( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + balance="2000000000000000000", + ) + response = exchange_query_pb.QueryMarketBalancesResponse(balances=[balance1, balance2]) + exchange_servicer.market_balances_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + market_balances_response = await api.fetch_market_balances() + expected_market_balances = { + "balances": [ + { + "marketId": balance1.market_id, + "balance": balance1.balance, + }, + { + "marketId": balance2.market_id, + "balance": balance2.balance, + }, + ] + } + + assert market_balances_response == expected_market_balances + + @pytest.mark.asyncio + async def test_fetch_denom_min_notional( + self, + exchange_servicer, + ): + amount = "1" # Decimal as a string + response = exchange_query_pb.QueryDenomMinNotionalResponse( + amount=amount, + ) + exchange_servicer.denom_min_notional_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + denom_min_notional_response = await api.fetch_denom_min_notional( + denom="peggy0xf9152067989BDc8783fF586624124C05A529A5D1" + ) + expected_denom_min_notional = {"amount": amount} + + assert denom_min_notional_response == expected_denom_min_notional + + @pytest.mark.asyncio + async def test_fetch_denom_min_notionals( + self, + exchange_servicer, + ): + denom_min_notional = exchange_pb.DenomMinNotional( + denom="inj", + min_notional="5000000000000000000", + ) + response = exchange_query_pb.QueryDenomMinNotionalsResponse( + denom_min_notionals=[denom_min_notional], + ) + exchange_servicer.denom_min_notionals_responses.append(response) + + api = self._api_instance(servicer=exchange_servicer) + + denom_min_notionals_response = await api.fetch_denom_min_notionals() + expected_denom_min_notionals = { + "denomMinNotionals": [ + { + "denom": denom_min_notional.denom, + "minNotional": denom_min_notional.min_notional, + } + ] + } + + assert denom_min_notionals_response == expected_denom_min_notionals + def _api_instance(self, servicer): network = Network.devnet() channel = grpc.aio.insecure_channel(network.grpc_endpoint) From 70ff008c45d2e0394731cacd0b5697f1f3f9ceac Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 23 Jun 2025 11:02:25 -0300 Subject: [PATCH 28/35] chore: added support for the new positions in market exchange query --- .../exchange/query/65_PositionsInMarket.py | 21 +++++++++ pyinjective/async_client_v2.py | 3 ++ .../chain/grpc/chain_grpc_exchange_v2_api.py | 6 +++ ...configurable_exchange_v2_query_servicer.py | 6 +++ .../grpc/test_chain_grpc_exchange_v2_api.py | 46 ++++++++++++++++++- 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 examples/chain_client/exchange/query/65_PositionsInMarket.py diff --git a/examples/chain_client/exchange/query/65_PositionsInMarket.py b/examples/chain_client/exchange/query/65_PositionsInMarket.py new file mode 100644 index 00000000..028d488d --- /dev/null +++ b/examples/chain_client/exchange/query/65_PositionsInMarket.py @@ -0,0 +1,21 @@ +import asyncio +import json + +from pyinjective.async_client_v2 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) + + market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + positions = await client.fetch_chain_positions_in_market(market_id=market_id) + print(json.dumps(positions, indent=2)) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) diff --git a/pyinjective/async_client_v2.py b/pyinjective/async_client_v2.py index f99b0cd5..6c7cf81f 100644 --- a/pyinjective/async_client_v2.py +++ b/pyinjective/async_client_v2.py @@ -734,6 +734,9 @@ async def fetch_chain_derivative_market( async def fetch_chain_positions(self) -> Dict[str, Any]: return await self.chain_exchange_v2_api.fetch_positions() + async def fetch_chain_positions_in_market(self, market_id: str) -> Dict[str, Any]: + return await self.chain_exchange_v2_api.fetch_positions_in_market(market_id=market_id) + async def fetch_chain_subaccount_positions(self, subaccount_id: str) -> Dict[str, Any]: return await self.chain_exchange_v2_api.fetch_subaccount_positions(subaccount_id=subaccount_id) diff --git a/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py index fd9df5fd..3690b3ef 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py @@ -378,6 +378,12 @@ async def fetch_positions(self) -> Dict[str, Any]: return response + async def fetch_positions_in_market(self, market_id: str) -> Dict[str, Any]: + request = exchange_query_pb.QueryPositionsInMarketRequest(market_id=market_id) + response = await self._execute_call(call=self._stub.PositionsInMarket, 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) diff --git a/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py index fa361011..e7187e21 100644 --- a/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py +++ b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py @@ -41,6 +41,7 @@ def __init__(self): self.derivative_market_address_responses = deque() self.subaccount_trade_nonce_responses = deque() self.positions_responses = deque() + self.positions_in_market_responses = deque() self.subaccount_positions_responses = deque() self.subaccount_position_in_market_responses = deque() self.subaccount_effective_position_in_market_responses = deque() @@ -221,6 +222,11 @@ async def SubaccountTradeNonce( async def Positions(self, request: exchange_query_pb.QueryPositionsRequest, context=None, metadata=None): return self.positions_responses.pop() + async def PositionsInMarket( + self, request: exchange_query_pb.QueryPositionsInMarketRequest, context=None, metadata=None + ): + return self.positions_in_market_responses.pop() + async def SubaccountPositions( self, request: exchange_query_pb.QuerySubaccountPositionsRequest, context=None, metadata=None ): 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 index ab049edf..d741043b 100644 --- a/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py @@ -23,7 +23,7 @@ def exchange_servicer(): return ConfigurableExchangeV2QueryServicer() -class TestChainGrpcBankApi: +class TestChainGrpcExchangeV2Api: @pytest.mark.asyncio async def test_fetch_exchange_params( self, @@ -1554,6 +1554,50 @@ async def test_fetch_positions( assert positions == expected_positions + @pytest.mark.asyncio + async def test_fetch_positions_in_market( + 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_in_market_responses.append( + exchange_query_pb.QueryPositionsInMarketResponse(state=[derivative_position]) + ) + + api = self._api_instance(servicer=exchange_servicer) + + positions = await api.fetch_positions_in_market( + market_id="0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", + ) + 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, From f6d98d0d15e6a646adcc4d188a8c6ceb95742ee3 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 24 Jun 2025 10:12:33 -0300 Subject: [PATCH 29/35] fix: renamed market modules --- pyinjective/async_client.py | 2 +- pyinjective/async_client_v2.py | 2 +- pyinjective/composer.py | 2 +- pyinjective/core/market.py | 59 ++++---- ...chain_formatted_market.py => market_v2.py} | 59 ++++---- pyproject.toml | 2 +- ...test_gas_heuristics_gas_limit_estimator.py | 2 +- tests/core/test_gas_limit_estimator.py | 4 +- tests/core/test_market.py | 140 ++++++++--------- ..._formatted_market.py => test_market_v2.py} | 142 +++++++++--------- tests/core/test_token.py | 2 +- tests/model_fixtures/markets_fixtures.py | 61 ++------ ...ets_fixtures.py => markets_v2_fixtures.py} | 63 ++++++-- tests/test_composer.py | 2 +- tests/test_composer_deprecation_warnings.py | 2 +- 15 files changed, 272 insertions(+), 272 deletions(-) rename pyinjective/core/{chain_formatted_market.py => market_v2.py} (79%) rename tests/core/{test_chain_formatted_market.py => test_market_v2.py} (81%) rename tests/model_fixtures/{chain_formatted_markets_fixtures.py => markets_v2_fixtures.py} (56%) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 665d8556..f3659f70 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -19,7 +19,7 @@ from pyinjective.client.model.pagination import PaginationOption from pyinjective.composer import Composer from pyinjective.constant import GAS_PRICE -from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.ibc.channel.grpc.ibc_channel_grpc_api import IBCChannelGrpcApi from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi diff --git a/pyinjective/async_client_v2.py b/pyinjective/async_client_v2.py index 6c7cf81f..6716801e 100644 --- a/pyinjective/async_client_v2.py +++ b/pyinjective/async_client_v2.py @@ -24,7 +24,7 @@ from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi from pyinjective.core.ibc.transfer.grpc.ibc_transfer_grpc_api import IBCTransferGrpcApi -from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.market_v2 import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.network import Network from pyinjective.core.tendermint.grpc.tendermint_grpc_api import TendermintGrpcApi from pyinjective.core.token import Token diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 6a83e2e8..aaad2f5a 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -8,7 +8,7 @@ from google.protobuf import any_pb2, json_format, timestamp_pb2 from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS, INJ_DECIMALS, INJ_DENOM -from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.token import Token from pyinjective.ofac import OfacChecker from pyinjective.proto.cosmos.authz.v1beta1 import authz_pb2 as cosmos_authz_pb, tx_pb2 as cosmos_authz_tx_pb diff --git a/pyinjective/core/market.py b/pyinjective/core/market.py index 022bb7ef..01973dc8 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: - 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}") + 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}") 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 = quantized_value * Decimal(f"1e{decimals}") - extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_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}") return extended_chain_formatted_value @@ -88,17 +88,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 - 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}") + 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}") 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 = quantized_value * Decimal(f"1e{decimals}") - extended_chain_formatted_value = chain_formatted_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_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}") return extended_chain_formatted_value @@ -108,12 +108,15 @@ 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: - margin = (human_readable_price * human_readable_quantity) / leverage + 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 # 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 self.notional_to_chain_format(human_readable_value=quantized_margin) + return extended_chain_formatted_margin def notional_to_chain_format(self, human_readable_value: Decimal) -> Decimal: decimals = self.quote_token.decimals @@ -177,18 +180,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 ) - 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}") + 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}") 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 - 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}") + 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}") return extended_chain_formatted_value @@ -197,9 +200,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 ) - 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}") + 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}") return extended_chain_formatted_value @@ -210,17 +213,19 @@ def calculate_margin_in_chain_format( is_buy: bool, special_denom: Optional[Denom] = None, ) -> Decimal: - quote_decimals = self.quote_token.decimals if special_denom is None else special_denom.quote + 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 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 - margin = price * human_readable_quantity + 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 # 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 - chain_formatted_margin = quantized_margin * Decimal(f"1e{quote_decimals}") - extended_chain_formatted_margin = chain_formatted_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + extended_chain_formatted_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") return extended_chain_formatted_margin diff --git a/pyinjective/core/chain_formatted_market.py b/pyinjective/core/market_v2.py similarity index 79% rename from pyinjective/core/chain_formatted_market.py rename to pyinjective/core/market_v2.py index 01973dc8..022bb7ef 100644 --- a/pyinjective/core/chain_formatted_market.py +++ b/pyinjective/core/market_v2.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 @@ -88,17 +88,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 @@ -108,15 +108,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 @@ -180,18 +177,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 @@ -200,9 +197,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 @@ -213,19 +210,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/pyproject.toml b/pyproject.toml index 356b546f..2f60aed7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc3" +version = "1.11.0-rc4" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" diff --git a/tests/core/test_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py index 14bcb555..5dec02dd 100644 --- a/tests/core/test_gas_heuristics_gas_limit_estimator.py +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -32,7 +32,7 @@ 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 ( # noqa: F401 +from tests.model_fixtures.markets_v2_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, diff --git a/tests/core/test_gas_limit_estimator.py b/tests/core/test_gas_limit_estimator.py index b407697c..1912158d 100644 --- a/tests/core/test_gas_limit_estimator.py +++ b/tests/core/test_gas_limit_estimator.py @@ -17,12 +17,12 @@ ExecGasLimitEstimator, GasLimitEstimator, ) -from pyinjective.core.market import BinaryOptionMarket +from pyinjective.core.market_v2 import BinaryOptionMarket from pyinjective.core.network import Network 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 ( # noqa: F401 +from tests.model_fixtures.markets_v2_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, diff --git a/tests/core/test_market.py b/tests/core/test_market.py index 1f631ff3..a94bf0d4 100644 --- a/tests/core/test_market.py +++ b/tests/core/test_market.py @@ -3,14 +3,12 @@ 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 ( # noqa: F401 - btc_usdt_perp_market, - first_match_bet_market, - inj_token, - inj_usdt_spot_market, - usdt_perp_token, - usdt_token, -) +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 class TestSpotMarket: @@ -18,11 +16,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) - quantized_quantity = ( - original_quantity // inj_usdt_spot_market.min_quantity_tick_size + 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 ) * inj_usdt_spot_market.min_quantity_tick_size - expected_value = quantized_quantity * Decimal(f"1e{inj_usdt_spot_market.base_token.decimals}") - quantized_chain_format_value = expected_value * Decimal("1e18") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -31,11 +29,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 = ( - original_quantity // inj_usdt_spot_market.min_price_tick_size + expected_value // inj_usdt_spot_market.min_price_tick_size ) * inj_usdt_spot_market.min_price_tick_size - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -131,11 +129,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 = ( - original_quantity // btc_usdt_perp_market.min_price_tick_size + expected_value // btc_usdt_perp_market.min_price_tick_size ) * btc_usdt_perp_market.min_price_tick_size - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -250,19 +248,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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) chain_value = first_match_bet_market.quantity_to_chain_format( human_readable_value=original_quantity, special_denom=fixed_denom ) - quantized_value = (original_quantity // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + 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( str(fixed_denom.min_quantity_tick_size) ) - 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}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -285,9 +283,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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) chain_value = first_match_bet_market.price_to_chain_format( @@ -295,11 +293,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 - quantized_value = (original_quantity // Decimal(str(fixed_denom.min_price_tick_size))) * Decimal( + expected_value = original_quantity * Decimal(f"1e{price_decimals}") + quantized_value = (expected_value // Decimal(str(fixed_denom.min_price_tick_size))) * Decimal( str(fixed_denom.min_price_tick_size) ) - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -308,11 +306,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 = ( - original_quantity // first_match_bet_market.min_price_tick_size + expected_value // first_match_bet_market.min_price_tick_size ) * first_match_bet_market.min_price_tick_size - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -322,9 +320,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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) chain_value = first_match_bet_market.margin_to_chain_format( @@ -332,11 +330,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 - quantized_value = (original_quantity // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + expected_value = original_quantity * Decimal(f"1e{price_decimals}") + quantized_value = (expected_value // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( str(fixed_denom.min_quantity_tick_size) ) - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -345,11 +343,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 = ( - original_quantity // first_match_bet_market.min_quantity_tick_size + expected_value // first_match_bet_market.min_quantity_tick_size ) * first_match_bet_market.min_quantity_tick_size - expected_value = quantized_value * Decimal(f"1e{price_decimals}") - quantized_chain_format_value = expected_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value @@ -360,9 +358,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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) chain_value = first_match_bet_market.calculate_margin_in_chain_format( @@ -372,12 +370,15 @@ def test_calculate_margin_for_buy_with_fixed_denom(self, first_match_bet_market: special_denom=fixed_denom, ) - margin = original_quantity * original_price - quantized_margin = (margin // Decimal(str(fixed_denom.min_quantity_tick_size))) * Decimal( + 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( str(fixed_denom.min_quantity_tick_size) ) - expected_margin = quantized_margin * Decimal(f"1e{fixed_denom.quote}") - quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_margin == chain_value @@ -392,12 +393,12 @@ def test_calculate_margin_for_buy_without_fixed_denom(self, first_match_bet_mark ) price_decimals = first_match_bet_market.quote_token.decimals - margin = original_quantity * original_price - quantized_margin = (margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( + 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( str(first_match_bet_market.min_quantity_tick_size) ) - expected_margin = quantized_margin * Decimal(f"1e{price_decimals}") - quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_margin = quantized_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_margin == chain_value @@ -412,13 +413,12 @@ def test_calculate_margin_for_sell_without_fixed_denom(self, first_match_bet_mar ) price_decimals = first_match_bet_market.quote_token.decimals - price = Decimal(1) - original_price - margin = original_quantity * price - quantized_margin = (margin // Decimal(str(first_match_bet_market.min_quantity_tick_size))) * Decimal( + 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( str(first_match_bet_market.min_quantity_tick_size) ) - expected_margin = quantized_margin * Decimal(f"1e{price_decimals}") - quantized_chain_format_margin = expected_margin * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + quantized_chain_format_margin = quantized_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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) 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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) 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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) 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=1, - min_price_tick_size=1, - min_notional=1, + min_quantity_tick_size=100, + min_price_tick_size=10000, + min_notional=0, ) chain_formatted_price = ( diff --git a/tests/core/test_chain_formatted_market.py b/tests/core/test_market_v2.py similarity index 81% rename from tests/core/test_chain_formatted_market.py rename to tests/core/test_market_v2.py index 0052c062..73c9a1a3 100644 --- a/tests/core/test_chain_formatted_market.py +++ b/tests/core/test_market_v2.py @@ -1,14 +1,16 @@ from decimal import Decimal from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS -from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.market_v2 import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.utils.denom import Denom -from tests.model_fixtures.chain_formatted_markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.chain_formatted_markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.chain_formatted_markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.chain_formatted_markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.chain_formatted_markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.chain_formatted_markets_fixtures import usdt_token # noqa: F401; noqa: F401 +from tests.model_fixtures.markets_v2_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(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") + 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_token.py b/tests/core/test_token.py index 6c649f06..66722394 100644 --- a/tests/core/test_token.py +++ b/tests/core/test_token.py @@ -1,6 +1,6 @@ from decimal import Decimal -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 +from tests.model_fixtures.markets_v2_fixtures import inj_token # noqa: F401 class TestToken: diff --git a/tests/model_fixtures/markets_fixtures.py b/tests/model_fixtures/markets_fixtures.py index a00eb8d6..3436ad18 100644 --- a/tests/model_fixtures/markets_fixtures.py +++ b/tests/model_fixtures/markets_fixtures.py @@ -3,52 +3,9 @@ import pytest from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket -from pyinjective.core.token import Token - - -@pytest.fixture -def inj_token(): - token = Token( - name="Injective Protocol", - symbol="INJ", - denom="inj", - address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30", - decimals=18, - logo="https://static.alchemyapi.io/images/assets/7226.png", - updated=1681739137644, - ) - - return token - - -@pytest.fixture -def usdt_token(): - token = Token( - name="USDT", - symbol="USDT", - denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", - address="0x0000000000000000000000000000000000000000", - decimals=6, - logo="https://static.alchemyapi.io/images/assets/825.png", - updated=1681739137645, - ) - - return token - - -@pytest.fixture -def usdt_perp_token(): - token = Token( - name="USDT PERP", - symbol="USDT", - denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", - address="0xdAC17F958D2ee523a2206206994597C13D831ec7", - decimals=6, - logo="https://static.alchemyapi.io/images/assets/825.png", - updated=1681739137645, - ) - - return token +from tests.model_fixtures.markets_v2_fixtures import inj_token # noqa: F401 +from tests.model_fixtures.markets_v2_fixtures import usdt_perp_token # noqa: F401 +from tests.model_fixtures.markets_v2_fixtures import usdt_token # noqa: F401; noqa: F401 @pytest.fixture @@ -62,9 +19,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.01"), - min_quantity_tick_size=Decimal("0.001"), - min_notional=Decimal("1"), + min_price_tick_size=Decimal("0.000000000000001"), + min_quantity_tick_size=Decimal("1000000000000000"), + min_notional=Decimal("0.000000000001"), ) return market @@ -86,9 +43,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("0.01"), + min_price_tick_size=Decimal("1000000"), min_quantity_tick_size=Decimal("0.0001"), - min_notional=Decimal("1"), + min_notional=Decimal("0.000001"), ) return market @@ -110,7 +67,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("0.01"), + min_price_tick_size=Decimal("10000"), min_quantity_tick_size=Decimal("1"), min_notional=Decimal("0.000001"), ) diff --git a/tests/model_fixtures/chain_formatted_markets_fixtures.py b/tests/model_fixtures/markets_v2_fixtures.py similarity index 56% rename from tests/model_fixtures/chain_formatted_markets_fixtures.py rename to tests/model_fixtures/markets_v2_fixtures.py index c595fe2b..fc87d5a2 100644 --- a/tests/model_fixtures/chain_formatted_markets_fixtures.py +++ b/tests/model_fixtures/markets_v2_fixtures.py @@ -2,10 +2,53 @@ import pytest -from pyinjective.core.chain_formatted_market import BinaryOptionMarket, DerivativeMarket, SpotMarket -from tests.model_fixtures.markets_fixtures import inj_token # 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 pyinjective.core.market_v2 import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.core.token import Token + + +@pytest.fixture +def inj_token(): + token = Token( + name="Injective Protocol", + symbol="INJ", + denom="inj", + address="0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30", + decimals=18, + logo="https://static.alchemyapi.io/images/assets/7226.png", + updated=1681739137644, + ) + + return token + + +@pytest.fixture +def usdt_token(): + token = Token( + name="USDT", + symbol="USDT", + denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", + address="0x0000000000000000000000000000000000000000", + decimals=6, + logo="https://static.alchemyapi.io/images/assets/825.png", + updated=1681739137645, + ) + + return token + + +@pytest.fixture +def usdt_perp_token(): + token = Token( + name="USDT PERP", + symbol="USDT", + denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + address="0xdAC17F958D2ee523a2206206994597C13D831ec7", + decimals=6, + logo="https://static.alchemyapi.io/images/assets/825.png", + updated=1681739137645, + ) + + return token @pytest.fixture @@ -19,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 @@ -43,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 @@ -67,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/test_composer.py b/tests/test_composer.py index e137db79..0436e01c 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -8,7 +8,7 @@ from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS, INJ_DECIMALS from pyinjective.core.network import Network from pyinjective.proto.injective.permissions.v1beta1 import permissions_pb2 as permissions_pb -from tests.model_fixtures.chain_formatted_markets_fixtures import ( # noqa: F401 +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py index 8e187b0c..aa02c25d 100644 --- a/tests/test_composer_deprecation_warnings.py +++ b/tests/test_composer_deprecation_warnings.py @@ -4,7 +4,7 @@ from pyinjective.composer import Composer as ComposerV1 from pyinjective.core.network import Network -from tests.model_fixtures.chain_formatted_markets_fixtures import ( # noqa: F401 +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 btc_usdt_perp_market, first_match_bet_market, inj_token, From 40916af06c75456b6feffa3ce48dd03ffb114bbd Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 24 Jun 2025 10:17:11 -0300 Subject: [PATCH 30/35] fix: solved pre-commit errors --- pyinjective/async_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index f3659f70..7aaa4847 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -19,11 +19,11 @@ from pyinjective.client.model.pagination import PaginationOption from pyinjective.composer import Composer from pyinjective.constant import GAS_PRICE -from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.ibc.channel.grpc.ibc_channel_grpc_api import IBCChannelGrpcApi from pyinjective.core.ibc.client.grpc.ibc_client_grpc_api import IBCClientGrpcApi from pyinjective.core.ibc.connection.grpc.ibc_connection_grpc_api import IBCConnectionGrpcApi from pyinjective.core.ibc.transfer.grpc.ibc_transfer_grpc_api import IBCTransferGrpcApi +from pyinjective.core.market import BinaryOptionMarket, DerivativeMarket, SpotMarket from pyinjective.core.network import Network from pyinjective.core.tendermint.grpc.tendermint_grpc_api import TendermintGrpcApi from pyinjective.core.token import Token From 8429dc809e1d7d6ddac3973790d4f8bcca18b0de Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:51:08 -0300 Subject: [PATCH 31/35] feat: added the calculated unique symbol to the Token class --- .github/workflows/run-tests.yml | 4 ++-- pyinjective/async_client.py | 17 +++++++++++++++-- pyinjective/async_client_v2.py | 17 +++++++++++++++-- pyinjective/core/token.py | 1 + pyinjective/core/tokens_file_loader.py | 1 + pyproject.toml | 2 +- tests/core/test_tokens_file_loader.py | 2 ++ tests/model_fixtures/markets_v2_fixtures.py | 3 +++ 8 files changed, 40 insertions(+), 7 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 68bce37a..6ca6fe40 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,8 +8,8 @@ jobs: run-tests: strategy: matrix: - python: ["3.9", "3.10", "3.11"] - os: [ubuntu-latest, macos-latest, windows-latest] + python: ["3.9", "3.10", "3.11", "3.12"] + os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} env: OS: ${{ matrix.os }} diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 7aaa4847..31f41a9d 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -2273,6 +2273,7 @@ async def initialize_tokens_from_chain_denoms(self): decimals=decimals, logo=token_metadata["uri"], updated=-1, + unique_symbol=unique_symbol, ) self._tokens_by_denom[denom] = token @@ -2411,6 +2412,7 @@ def _token_representation( decimals=token_meta["decimals"], logo=token_meta["logo"], updated=int(token_meta["updatedAt"]), + unique_symbol=unique_symbol, ) tokens_by_denom[denom] = token @@ -2436,8 +2438,19 @@ async def _tokens_from_official_lists( unique_symbol = symbol_candidate break - tokens_by_denom[token.denom] = token - tokens_by_symbol[unique_symbol] = token + new_token = Token( + name=token.name, + symbol=token.symbol, + denom=token.denom, + address=token.address, + decimals=token.decimals, + logo=token.logo, + updated=token.updated, + unique_symbol=unique_symbol, + ) + + tokens_by_denom[new_token.denom] = new_token + tokens_by_symbol[unique_symbol] = new_token return tokens_by_symbol, tokens_by_denom diff --git a/pyinjective/async_client_v2.py b/pyinjective/async_client_v2.py index 6716801e..b46d71be 100644 --- a/pyinjective/async_client_v2.py +++ b/pyinjective/async_client_v2.py @@ -1284,6 +1284,7 @@ async def initialize_tokens_from_chain_denoms(self): decimals=decimals, logo=token_metadata["uri"], updated=-1, + unique_symbol=unique_symbol, ) self._tokens_by_denom[denom] = token @@ -1422,6 +1423,7 @@ def _token_representation( decimals=token_meta["decimals"], logo=token_meta["logo"], updated=int(token_meta["updatedAt"]), + unique_symbol=unique_symbol, ) tokens_by_denom[denom] = token @@ -1447,8 +1449,19 @@ async def _tokens_from_official_lists( unique_symbol = symbol_candidate break - tokens_by_denom[token.denom] = token - tokens_by_symbol[unique_symbol] = token + new_token = Token( + name=token.name, + symbol=token.symbol, + denom=token.denom, + address=token.address, + decimals=token.decimals, + logo=token.logo, + updated=token.updated, + unique_symbol=unique_symbol, + ) + + tokens_by_denom[new_token.denom] = new_token + tokens_by_symbol[unique_symbol] = new_token return tokens_by_symbol, tokens_by_denom diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index bdeace85..c41b643f 100644 --- a/pyinjective/core/token.py +++ b/pyinjective/core/token.py @@ -13,6 +13,7 @@ class Token: decimals: int logo: str updated: int + unique_symbol: str @staticmethod def convert_value_to_extended_decimal_format(value: Decimal) -> Decimal: diff --git a/pyinjective/core/tokens_file_loader.py b/pyinjective/core/tokens_file_loader.py index 0e84bebd..7097e65c 100644 --- a/pyinjective/core/tokens_file_loader.py +++ b/pyinjective/core/tokens_file_loader.py @@ -19,6 +19,7 @@ def load_json(self, json: List[Dict]) -> List[Token]: decimals=token_info["decimals"], logo=token_info["logo"], updated=-1, + unique_symbol="", ) loaded_tokens.append(token) diff --git a/pyproject.toml b/pyproject.toml index 2f60aed7..db5ad10d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc4" +version = "1.11.0-rc5" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" diff --git a/tests/core/test_tokens_file_loader.py b/tests/core/test_tokens_file_loader.py index 60999f6e..8ae8138d 100644 --- a/tests/core/test_tokens_file_loader.py +++ b/tests/core/test_tokens_file_loader.py @@ -47,6 +47,7 @@ def test_load_tokens(self): assert token.address == token_info["address"] assert token.decimals == token_info["decimals"] assert token.logo == token_info["logo"] + assert token.unique_symbol == "" @pytest.mark.asyncio async def test_load_tokens_from_url(self, aioresponses): @@ -96,6 +97,7 @@ async def test_load_tokens_from_url(self, aioresponses): assert token.address == token_info["address"] assert token.decimals == token_info["decimals"] assert token.logo == token_info["logo"] + assert token.unique_symbol == "" @pytest.mark.asyncio async def test_load_tokens_from_url_returns_nothing_when_request_fails(self, aioresponses): diff --git a/tests/model_fixtures/markets_v2_fixtures.py b/tests/model_fixtures/markets_v2_fixtures.py index fc87d5a2..76840843 100644 --- a/tests/model_fixtures/markets_v2_fixtures.py +++ b/tests/model_fixtures/markets_v2_fixtures.py @@ -16,6 +16,7 @@ def inj_token(): decimals=18, logo="https://static.alchemyapi.io/images/assets/7226.png", updated=1681739137644, + unique_symbol="INJ", ) return token @@ -31,6 +32,7 @@ def usdt_token(): decimals=6, logo="https://static.alchemyapi.io/images/assets/825.png", updated=1681739137645, + unique_symbol="USDT", ) return token @@ -46,6 +48,7 @@ def usdt_perp_token(): decimals=6, logo="https://static.alchemyapi.io/images/assets/825.png", updated=1681739137645, + unique_symbol="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", ) return token From a0056e7a8e8a9f7da972535c9bb2fc9b77344006 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 25 Jun 2025 10:18:05 -0300 Subject: [PATCH 32/35] feat: added a function to convert chain formatted values to human readable in Token class --- pyinjective/core/token.py | 3 +++ pyproject.toml | 2 +- tests/core/test_token.py | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index c41b643f..d4731fed 100644 --- a/pyinjective/core/token.py +++ b/pyinjective/core/token.py @@ -25,3 +25,6 @@ def convert_value_from_extended_decimal_format(value: Decimal) -> Decimal: def chain_formatted_value(self, human_readable_value: Decimal) -> Decimal: return human_readable_value * Decimal(f"1e{self.decimals}") + + def human_readable_value(self, chain_formatted_value: Decimal) -> Decimal: + return chain_formatted_value / Decimal(f"1e{self.decimals}") diff --git a/pyproject.toml b/pyproject.toml index db5ad10d..4a495bda 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc5" +version = "1.11.0-rc6" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" diff --git a/tests/core/test_token.py b/tests/core/test_token.py index 66722394..2c084b6e 100644 --- a/tests/core/test_token.py +++ b/tests/core/test_token.py @@ -11,3 +11,11 @@ def test_chain_formatted_value(self, inj_token): expected_value = value * Decimal(f"1e{inj_token.decimals}") assert chain_formatted_value == expected_value + + def test_human_readable_value(self, inj_token): + value = Decimal("1345600000000000000") + + human_readable_value = inj_token.human_readable_value(chain_formatted_value=value) + expected_value = value / Decimal(f"1e{inj_token.decimals}") + + assert human_readable_value == expected_value From 5bfee3e2a5ad2a8bf8182f69b11b2d7ad1c156dd Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Wed, 25 Jun 2025 10:36:10 -0300 Subject: [PATCH 33/35] fix: solved pre-commit issues --- .github/workflows/run-tests.yml | 2 +- poetry.lock | 1688 ++++++++++++++++--------------- pyinjective/core/token.py | 2 +- pyproject.toml | 2 +- 4 files changed, 854 insertions(+), 840 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 6ca6fe40..bac6a0c2 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,7 +8,7 @@ jobs: run-tests: strategy: matrix: - python: ["3.9", "3.10", "3.11", "3.12"] + python: ["3.10", "3.11", "3.12"] os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} env: diff --git a/poetry.lock b/poetry.lock index fa39d6d8..7eace9e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,96 +13,101 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.18" +version = "3.12.13" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" files = [ - {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96264854fedbea933a9ca4b7e0c745728f01380691687b7365d18d9e977179c4"}, - {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9602044ff047043430452bc3a2089743fa85da829e6fc9ee0025351d66c332b6"}, - {file = "aiohttp-3.11.18-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5691dc38750fcb96a33ceef89642f139aa315c8a193bbd42a0c33476fd4a1609"}, - {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554c918ec43f8480b47a5ca758e10e793bd7410b83701676a4782672d670da55"}, - {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a4076a2b3ba5b004b8cffca6afe18a3b2c5c9ef679b4d1e9859cf76295f8d4f"}, - {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:767a97e6900edd11c762be96d82d13a1d7c4fc4b329f054e88b57cdc21fded94"}, - {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ddc9337a0fb0e727785ad4f41163cc314376e82b31846d3835673786420ef1"}, - {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f414f37b244f2a97e79b98d48c5ff0789a0b4b4609b17d64fa81771ad780e415"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fdb239f47328581e2ec7744ab5911f97afb10752332a6dd3d98e14e429e1a9e7"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f2c50bad73ed629cc326cc0f75aed8ecfb013f88c5af116f33df556ed47143eb"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a8d8f20c39d3fa84d1c28cdb97f3111387e48209e224408e75f29c6f8e0861d"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:106032eaf9e62fd6bc6578c8b9e6dc4f5ed9a5c1c7fb2231010a1b4304393421"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b491e42183e8fcc9901d8dcd8ae644ff785590f1727f76ca86e731c61bfe6643"}, - {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad8c745ff9460a16b710e58e06a9dec11ebc0d8f4dd82091cefb579844d69868"}, - {file = "aiohttp-3.11.18-cp310-cp310-win32.whl", hash = "sha256:8e57da93e24303a883146510a434f0faf2f1e7e659f3041abc4e3fb3f6702a9f"}, - {file = "aiohttp-3.11.18-cp310-cp310-win_amd64.whl", hash = "sha256:cc93a4121d87d9f12739fc8fab0a95f78444e571ed63e40bfc78cd5abe700ac9"}, - {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:427fdc56ccb6901ff8088544bde47084845ea81591deb16f957897f0f0ba1be9"}, - {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c828b6d23b984255b85b9b04a5b963a74278b7356a7de84fda5e3b76866597b"}, - {file = "aiohttp-3.11.18-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c2eaa145bb36b33af1ff2860820ba0589e165be4ab63a49aebfd0981c173b66"}, - {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d518ce32179f7e2096bf4e3e8438cf445f05fedd597f252de9f54c728574756"}, - {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0700055a6e05c2f4711011a44364020d7a10fbbcd02fbf3e30e8f7e7fddc8717"}, - {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bd1cde83e4684324e6ee19adfc25fd649d04078179890be7b29f76b501de8e4"}, - {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73b8870fe1c9a201b8c0d12c94fe781b918664766728783241a79e0468427e4f"}, - {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25557982dd36b9e32c0a3357f30804e80790ec2c4d20ac6bcc598533e04c6361"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e889c9df381a2433802991288a61e5a19ceb4f61bd14f5c9fa165655dcb1fd1"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9ea345fda05bae217b6cce2acf3682ce3b13d0d16dd47d0de7080e5e21362421"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9f26545b9940c4b46f0a9388fd04ee3ad7064c4017b5a334dd450f616396590e"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3a621d85e85dccabd700294494d7179ed1590b6d07a35709bb9bd608c7f5dd1d"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9c23fd8d08eb9c2af3faeedc8c56e134acdaf36e2117ee059d7defa655130e5f"}, - {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9e6b0e519067caa4fd7fb72e3e8002d16a68e84e62e7291092a5433763dc0dd"}, - {file = "aiohttp-3.11.18-cp311-cp311-win32.whl", hash = "sha256:122f3e739f6607e5e4c6a2f8562a6f476192a682a52bda8b4c6d4254e1138f4d"}, - {file = "aiohttp-3.11.18-cp311-cp311-win_amd64.whl", hash = "sha256:e6f3c0a3a1e73e88af384b2e8a0b9f4fb73245afd47589df2afcab6b638fa0e6"}, - {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:63d71eceb9cad35d47d71f78edac41fcd01ff10cacaa64e473d1aec13fa02df2"}, - {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d1929da615840969929e8878d7951b31afe0bac883d84418f92e5755d7b49508"}, - {file = "aiohttp-3.11.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d0aebeb2392f19b184e3fdd9e651b0e39cd0f195cdb93328bd124a1d455cd0e"}, - {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3849ead845e8444f7331c284132ab314b4dac43bfae1e3cf350906d4fff4620f"}, - {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e8452ad6b2863709f8b3d615955aa0807bc093c34b8e25b3b52097fe421cb7f"}, - {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b8d2b42073611c860a37f718b3d61ae8b4c2b124b2e776e2c10619d920350ec"}, - {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fbf91f6a0ac317c0a07eb328a1384941872f6761f2e6f7208b63c4cc0a7ff6"}, - {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ff5625413fec55216da5eaa011cf6b0a2ed67a565914a212a51aa3755b0009"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f33a92a2fde08e8c6b0c61815521324fc1612f397abf96eed86b8e31618fdb4"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:11d5391946605f445ddafda5eab11caf310f90cdda1fd99865564e3164f5cff9"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3cc314245deb311364884e44242e00c18b5896e4fe6d5f942e7ad7e4cb640adb"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f421843b0f70740772228b9e8093289924359d306530bcd3926f39acbe1adda"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e220e7562467dc8d589e31c1acd13438d82c03d7f385c9cd41a3f6d1d15807c1"}, - {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ab2ef72f8605046115bc9aa8e9d14fd49086d405855f40b79ed9e5c1f9f4faea"}, - {file = "aiohttp-3.11.18-cp312-cp312-win32.whl", hash = "sha256:12a62691eb5aac58d65200c7ae94d73e8a65c331c3a86a2e9670927e94339ee8"}, - {file = "aiohttp-3.11.18-cp312-cp312-win_amd64.whl", hash = "sha256:364329f319c499128fd5cd2d1c31c44f234c58f9b96cc57f743d16ec4f3238c8"}, - {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:474215ec618974054cf5dc465497ae9708543cbfc312c65212325d4212525811"}, - {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ced70adf03920d4e67c373fd692123e34d3ac81dfa1c27e45904a628567d804"}, - {file = "aiohttp-3.11.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2d9f6c0152f8d71361905aaf9ed979259537981f47ad099c8b3d81e0319814bd"}, - {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a35197013ed929c0aed5c9096de1fc5a9d336914d73ab3f9df14741668c0616c"}, - {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:540b8a1f3a424f1af63e0af2d2853a759242a1769f9f1ab053996a392bd70118"}, - {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9e6710ebebfce2ba21cee6d91e7452d1125100f41b906fb5af3da8c78b764c1"}, - {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8af2ef3b4b652ff109f98087242e2ab974b2b2b496304063585e3d78de0b000"}, - {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28c3f975e5ae3dbcbe95b7e3dcd30e51da561a0a0f2cfbcdea30fc1308d72137"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c28875e316c7b4c3e745172d882d8a5c835b11018e33432d281211af35794a93"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:13cd38515568ae230e1ef6919e2e33da5d0f46862943fcda74e7e915096815f3"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0e2a92101efb9f4c2942252c69c63ddb26d20f46f540c239ccfa5af865197bb8"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e6d3e32b8753c8d45ac550b11a1090dd66d110d4ef805ffe60fa61495360b3b2"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ea4cf2488156e0f281f93cc2fd365025efcba3e2d217cbe3df2840f8c73db261"}, - {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d4df95ad522c53f2b9ebc07f12ccd2cb15550941e11a5bbc5ddca2ca56316d7"}, - {file = "aiohttp-3.11.18-cp313-cp313-win32.whl", hash = "sha256:cdd1bbaf1e61f0d94aced116d6e95fe25942f7a5f42382195fd9501089db5d78"}, - {file = "aiohttp-3.11.18-cp313-cp313-win_amd64.whl", hash = "sha256:bdd619c27e44382cf642223f11cfd4d795161362a5a1fc1fa3940397bc89db01"}, - {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:469ac32375d9a716da49817cd26f1916ec787fc82b151c1c832f58420e6d3533"}, - {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3cec21dd68924179258ae14af9f5418c1ebdbba60b98c667815891293902e5e0"}, - {file = "aiohttp-3.11.18-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b426495fb9140e75719b3ae70a5e8dd3a79def0ae3c6c27e012fc59f16544a4a"}, - {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2f41203e2808616292db5d7170cccf0c9f9c982d02544443c7eb0296e8b0c7"}, - {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc0ae0a5e9939e423e065a3e5b00b24b8379f1db46046d7ab71753dfc7dd0e1"}, - {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe7cdd3f7d1df43200e1c80f1aed86bb36033bf65e3c7cf46a2b97a253ef8798"}, - {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5199be2a2f01ffdfa8c3a6f5981205242986b9e63eb8ae03fd18f736e4840721"}, - {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ccec9e72660b10f8e283e91aa0295975c7bd85c204011d9f5eb69310555cf30"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1596ebf17e42e293cbacc7a24c3e0dc0f8f755b40aff0402cb74c1ff6baec1d3"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:eab7b040a8a873020113ba814b7db7fa935235e4cbaf8f3da17671baa1024863"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5d61df4a05476ff891cff0030329fee4088d40e4dc9b013fac01bc3c745542c2"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:46533e6792e1410f9801d09fd40cbbff3f3518d1b501d6c3c5b218f427f6ff08"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c1b90407ced992331dd6d4f1355819ea1c274cc1ee4d5b7046c6761f9ec11829"}, - {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a2fd04ae4971b914e54fe459dd7edbbd3f2ba875d69e057d5e3c8e8cac094935"}, - {file = "aiohttp-3.11.18-cp39-cp39-win32.whl", hash = "sha256:b2f317d1678002eee6fe85670039fb34a757972284614638f82b903a03feacdc"}, - {file = "aiohttp-3.11.18-cp39-cp39-win_amd64.whl", hash = "sha256:5e7007b8d1d09bce37b54111f593d173691c530b80f27c6493b928dabed9e6ef"}, - {file = "aiohttp-3.11.18.tar.gz", hash = "sha256:ae856e1138612b7e412db63b7708735cff4d38d0399f6a5435d3dac2669f558a"}, + {file = "aiohttp-3.12.13-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5421af8f22a98f640261ee48aae3a37f0c41371e99412d55eaf2f8a46d5dad29"}, + {file = "aiohttp-3.12.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fcda86f6cb318ba36ed8f1396a6a4a3fd8f856f84d426584392083d10da4de0"}, + {file = "aiohttp-3.12.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cd71c9fb92aceb5a23c4c39d8ecc80389c178eba9feab77f19274843eb9412d"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34ebf1aca12845066c963016655dac897651e1544f22a34c9b461ac3b4b1d3aa"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:893a4639694c5b7edd4bdd8141be296042b6806e27cc1d794e585c43010cc294"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:663d8ee3ffb3494502ebcccb49078faddbb84c1d870f9c1dd5a29e85d1f747ce"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0f8f6a85a0006ae2709aa4ce05749ba2cdcb4b43d6c21a16c8517c16593aabe"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1582745eb63df267c92d8b61ca655a0ce62105ef62542c00a74590f306be8cb5"}, + {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d59227776ee2aa64226f7e086638baa645f4b044f2947dbf85c76ab11dcba073"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06b07c418bde1c8e737d8fa67741072bd3f5b0fb66cf8c0655172188c17e5fa6"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:9445c1842680efac0f81d272fd8db7163acfcc2b1436e3f420f4c9a9c5a50795"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:09c4767af0b0b98c724f5d47f2bf33395c8986995b0a9dab0575ca81a554a8c0"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f3854fbde7a465318ad8d3fc5bef8f059e6d0a87e71a0d3360bb56c0bf87b18a"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2332b4c361c05ecd381edb99e2a33733f3db906739a83a483974b3df70a51b40"}, + {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1561db63fa1b658cd94325d303933553ea7d89ae09ff21cc3bcd41b8521fbbb6"}, + {file = "aiohttp-3.12.13-cp310-cp310-win32.whl", hash = "sha256:a0be857f0b35177ba09d7c472825d1b711d11c6d0e8a2052804e3b93166de1ad"}, + {file = "aiohttp-3.12.13-cp310-cp310-win_amd64.whl", hash = "sha256:fcc30ad4fb5cb41a33953292d45f54ef4066746d625992aeac33b8c681173178"}, + {file = "aiohttp-3.12.13-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c229b1437aa2576b99384e4be668af1db84b31a45305d02f61f5497cfa6f60c"}, + {file = "aiohttp-3.12.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04076d8c63471e51e3689c93940775dc3d12d855c0c80d18ac5a1c68f0904358"}, + {file = "aiohttp-3.12.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55683615813ce3601640cfaa1041174dc956d28ba0511c8cbd75273eb0587014"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:921bc91e602d7506d37643e77819cb0b840d4ebb5f8d6408423af3d3bf79a7b7"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e72d17fe0974ddeae8ed86db297e23dba39c7ac36d84acdbb53df2e18505a013"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0653d15587909a52e024a261943cf1c5bdc69acb71f411b0dd5966d065a51a47"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a77b48997c66722c65e157c06c74332cdf9c7ad00494b85ec43f324e5c5a9b9a"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6946bae55fd36cfb8e4092c921075cde029c71c7cb571d72f1079d1e4e013bc"}, + {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f95db8c8b219bcf294a53742c7bda49b80ceb9d577c8e7aa075612b7f39ffb7"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:03d5eb3cfb4949ab4c74822fb3326cd9655c2b9fe22e4257e2100d44215b2e2b"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6383dd0ffa15515283c26cbf41ac8e6705aab54b4cbb77bdb8935a713a89bee9"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6548a411bc8219b45ba2577716493aa63b12803d1e5dc70508c539d0db8dbf5a"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:81b0fcbfe59a4ca41dc8f635c2a4a71e63f75168cc91026c61be665945739e2d"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6a83797a0174e7995e5edce9dcecc517c642eb43bc3cba296d4512edf346eee2"}, + {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5734d8469a5633a4e9ffdf9983ff7cdb512524645c7a3d4bc8a3de45b935ac3"}, + {file = "aiohttp-3.12.13-cp311-cp311-win32.whl", hash = "sha256:fef8d50dfa482925bb6b4c208b40d8e9fa54cecba923dc65b825a72eed9a5dbd"}, + {file = "aiohttp-3.12.13-cp311-cp311-win_amd64.whl", hash = "sha256:9a27da9c3b5ed9d04c36ad2df65b38a96a37e9cfba6f1381b842d05d98e6afe9"}, + {file = "aiohttp-3.12.13-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0aa580cf80558557285b49452151b9c69f2fa3ad94c5c9e76e684719a8791b73"}, + {file = "aiohttp-3.12.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b103a7e414b57e6939cc4dece8e282cfb22043efd0c7298044f6594cf83ab347"}, + {file = "aiohttp-3.12.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78f64e748e9e741d2eccff9597d09fb3cd962210e5b5716047cbb646dc8fe06f"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c955989bf4c696d2ededc6b0ccb85a73623ae6e112439398935362bacfaaf6"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d640191016763fab76072c87d8854a19e8e65d7a6fcfcbf017926bdbbb30a7e5"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4dc507481266b410dede95dd9f26c8d6f5a14315372cc48a6e43eac652237d9b"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a94daa873465d518db073bd95d75f14302e0208a08e8c942b2f3f1c07288a75"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f52420cde4ce0bb9425a375d95577fe082cb5721ecb61da3049b55189e4e6"}, + {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f7df1f620ec40f1a7fbcb99ea17d7326ea6996715e78f71a1c9a021e31b96b8"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3062d4ad53b36e17796dce1c0d6da0ad27a015c321e663657ba1cc7659cfc710"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:8605e22d2a86b8e51ffb5253d9045ea73683d92d47c0b1438e11a359bdb94462"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54fbbe6beafc2820de71ece2198458a711e224e116efefa01b7969f3e2b3ddae"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:050bd277dfc3768b606fd4eae79dd58ceda67d8b0b3c565656a89ae34525d15e"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2637a60910b58f50f22379b6797466c3aa6ae28a6ab6404e09175ce4955b4e6a"}, + {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e986067357550d1aaa21cfe9897fa19e680110551518a5a7cf44e6c5638cb8b5"}, + {file = "aiohttp-3.12.13-cp312-cp312-win32.whl", hash = "sha256:ac941a80aeea2aaae2875c9500861a3ba356f9ff17b9cb2dbfb5cbf91baaf5bf"}, + {file = "aiohttp-3.12.13-cp312-cp312-win_amd64.whl", hash = "sha256:671f41e6146a749b6c81cb7fd07f5a8356d46febdaaaf07b0e774ff04830461e"}, + {file = "aiohttp-3.12.13-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d4a18e61f271127465bdb0e8ff36e8f02ac4a32a80d8927aa52371e93cd87938"}, + {file = "aiohttp-3.12.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:532542cb48691179455fab429cdb0d558b5e5290b033b87478f2aa6af5d20ace"}, + {file = "aiohttp-3.12.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d7eea18b52f23c050ae9db5d01f3d264ab08f09e7356d6f68e3f3ac2de9dfabb"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad7c8e5c25f2a26842a7c239de3f7b6bfb92304593ef997c04ac49fb703ff4d7"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6af355b483e3fe9d7336d84539fef460120c2f6e50e06c658fe2907c69262d6b"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a95cf9f097498f35c88e3609f55bb47b28a5ef67f6888f4390b3d73e2bac6177"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8ed8c38a1c584fe99a475a8f60eefc0b682ea413a84c6ce769bb19a7ff1c5ef"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0b9170d5d800126b5bc89d3053a2363406d6e327afb6afaeda2d19ee8bb103"}, + {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:372feeace612ef8eb41f05ae014a92121a512bd5067db8f25101dd88a8db11da"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a946d3702f7965d81f7af7ea8fb03bb33fe53d311df48a46eeca17e9e0beed2d"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a0c4725fae86555bbb1d4082129e21de7264f4ab14baf735278c974785cd2041"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b28ea2f708234f0a5c44eb6c7d9eb63a148ce3252ba0140d050b091b6e842d1"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d4f5becd2a5791829f79608c6f3dc745388162376f310eb9c142c985f9441cc1"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:60f2ce6b944e97649051d5f5cc0f439360690b73909230e107fd45a359d3e911"}, + {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69fc1909857401b67bf599c793f2183fbc4804717388b0b888f27f9929aa41f3"}, + {file = "aiohttp-3.12.13-cp313-cp313-win32.whl", hash = "sha256:7d7e68787a2046b0e44ba5587aa723ce05d711e3a3665b6b7545328ac8e3c0dd"}, + {file = "aiohttp-3.12.13-cp313-cp313-win_amd64.whl", hash = "sha256:5a178390ca90419bfd41419a809688c368e63c86bd725e1186dd97f6b89c2706"}, + {file = "aiohttp-3.12.13-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:36f6c973e003dc9b0bb4e8492a643641ea8ef0e97ff7aaa5c0f53d68839357b4"}, + {file = "aiohttp-3.12.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6cbfc73179bd67c229eb171e2e3745d2afd5c711ccd1e40a68b90427f282eab1"}, + {file = "aiohttp-3.12.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1e8b27b2d414f7e3205aa23bb4a692e935ef877e3a71f40d1884f6e04fd7fa74"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eabded0c2b2ef56243289112c48556c395d70150ce4220d9008e6b4b3dd15690"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:003038e83f1a3ff97409999995ec02fe3008a1d675478949643281141f54751d"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b6f46613031dbc92bdcaad9c4c22c7209236ec501f9c0c5f5f0b6a689bf50f3"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c332c6bb04650d59fb94ed96491f43812549a3ba6e7a16a218e612f99f04145e"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fea41a2c931fb582cb15dc86a3037329e7b941df52b487a9f8b5aa960153cbd"}, + {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:846104f45d18fb390efd9b422b27d8f3cf8853f1218c537f36e71a385758c896"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d6c85ac7dd350f8da2520bac8205ce99df4435b399fa7f4dc4a70407073e390"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5a1ecce0ed281bec7da8550da052a6b89552db14d0a0a45554156f085a912f48"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5304d74867028cca8f64f1cc1215eb365388033c5a691ea7aa6b0dc47412f495"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:64d1f24ee95a2d1e094a4cd7a9b7d34d08db1bbcb8aa9fb717046b0a884ac294"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:119c79922a7001ca6a9e253228eb39b793ea994fd2eccb79481c64b5f9d2a055"}, + {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bb18f00396d22e2f10cd8825d671d9f9a3ba968d708a559c02a627536b36d91c"}, + {file = "aiohttp-3.12.13-cp39-cp39-win32.whl", hash = "sha256:0022de47ef63fd06b065d430ac79c6b0bd24cdae7feaf0e8c6bac23b805a23a8"}, + {file = "aiohttp-3.12.13-cp39-cp39-win_amd64.whl", hash = "sha256:29e08111ccf81b2734ae03f1ad1cb03b9615e7d8f616764f22f71209c094f122"}, + {file = "aiohttp-3.12.13.tar.gz", hash = "sha256:47e2da578528264a12e4e3dd8dd72a7289e5f812758fe086473fab037a10fcce"}, ] [package.dependencies] -aiohappyeyeballs = ">=2.3.0" +aiohappyeyeballs = ">=2.5.0" aiosignal = ">=1.1.2" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" @@ -112,7 +117,7 @@ propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] +speedups = ["Brotli", "aiodns (>=3.3.0)", "brotlicffi"] [[package]] name = "aioresponses" @@ -222,145 +227,145 @@ coincurve = ">=15.0,<21" [[package]] name = "bitarray" -version = "3.4.1" +version = "3.4.3" description = "efficient arrays of booleans -- C extension" optional = false python-versions = "*" files = [ - {file = "bitarray-3.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:61d1db9d05da8c29bc3b17908f6b49b58ae58a83af0d06aa90ef5b41d89006ac"}, - {file = "bitarray-3.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b1232f47d3685d932e97d1a4de9713ba1fdc3d342dbff2132e436ad13940deb4"}, - {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66779621b640e82f1cddc72b097e20b8c7e2840357ef1c5cd9a9f7d383d09d07"}, - {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cdd2a67ae23327146bd3a3c2c4a22405139c003a4dd0743931199fd407886ee"}, - {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:92ae7aadff037733328aa971f399474efd8bfcc448e59322572c162c85f2134b"}, - {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64b65000169ca0846335cba2c67450858d84cca05fc0e8f2e8ec120e67aee527"}, - {file = "bitarray-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0a5ef1aa7336180ca4da6581bd362db167c22f5c0111cb510dfec178b1ccf2e"}, - {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:456f736b8e5267051418305dc0ffd1da11fc981785b479fb2eb0e6787c14ba4f"}, - {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f8bba44252b6735942ee517d5b529b71ef45bc5759c0032090b982078ccc43cd"}, - {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ead4f4eee7e9398b036095ae54f2d1680fda7f3647cae6d964af5fea7c8e0426"}, - {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:7467891ea2b0deb6c3b9a5caa7aea0e4f7739dc1012bd445b3b606311bb77f5e"}, - {file = "bitarray-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:160a9cff6cd6d977f4f5d698c4d01fa227eebcf7833f69c2bea290598451e299"}, - {file = "bitarray-3.4.1-cp310-cp310-win32.whl", hash = "sha256:5beef0474dd41778224b443a89d2847429c0bea7f8ba572d4da19b05471b4f08"}, - {file = "bitarray-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f7dc7dff64a346f69046c3bb39c2a4faf570dbb4aba417da676e5a92d670fa52"}, - {file = "bitarray-3.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef7d9b780c6c7d5d521bf5ed7507b6fd2c8b7a35dd853b00aed8976db1fb36fc"}, - {file = "bitarray-3.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f708e4ea99bd10d8e49be6ab9479b407f454f59351764b36e9d8252b6f78944e"}, - {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce4e7fa7baa30bca66f637d9861232269dbf10ffd3a124b66cb88e97a866bd74"}, - {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b869be5418ff61616718604c9c98b4107bcc4c49830605cc531c300d716bc847"}, - {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:293f7a0f8b1d19c975ba63d0bc96f75f268b0f789ccc16bc2330083b2d47b8d8"}, - {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8dbeeaabfe01f025d590441a4a6d676de5ca390a21c6953fe061d00f64ccea"}, - {file = "bitarray-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2de5eaa4f78446b58bb3512095cce5b36302130f45fb3617666a262ed801c26c"}, - {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:523de19544ff2c846e38bd221f714ea062e07c90f0c6e1c459b44d49d4151959"}, - {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7987f639461ce9ec9d727780d10a807fcc3fcfe386475a08b2f640d255ffa29c"}, - {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5f0b8dc33cb0679c23a8e92307e10d96bbb6ed3eeb312caecb9074e5d4a48c63"}, - {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8c688e5327647e14b39a8f264ed58158586f7995a6e4d2a797890187868d6785"}, - {file = "bitarray-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c9d4fe602fc5d7c93a0367d013edc1cd13dd93e57c6adb7060113376210248a"}, - {file = "bitarray-3.4.1-cp311-cp311-win32.whl", hash = "sha256:2a109463f0cda038171372912d4c5b7c113e464ed2da72e340bef2ce6960ef02"}, - {file = "bitarray-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:10cc20af9f6d8a5113608aef2b67b6c6efdba085c43fd6ed2086dd06df5551d1"}, - {file = "bitarray-3.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3a9b83d7ab4ff686e9ab260d25ee8389961bea0c0644a032a6bf30ad34a9c552"}, - {file = "bitarray-3.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10a12e32aed27c5feba44a59acb5a85615ae0fdae434fa4ef01be6da0d1a813c"}, - {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c17b11e86355a6dcc9be38d05e58fcc112c2492bc605a37ccff7498de5ea2cf9"}, - {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7d3d6a2679c2986ee715b8f41a09d4c8f9c3f44ab57ec4c1520c586c08fceed1"}, - {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35ced8da829ab221338f632a84226634002e418207971a99d41ea740cbf7a67b"}, - {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e35f1fcfe86c19c150d32a8754bb7cecccb70ac7e8d38982f60c2f22de68ba4"}, - {file = "bitarray-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d6914cdf8748725edbf099405f0f8cf17fc474bdfa3685e5a937c6164e3323b"}, - {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d198e4a1911283173bf6cbdde17e07228c23f4c7b640f979dda96df1c47e2994"}, - {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8a3fb6a3993abe295b8d28e0b0035dd9ae27c00841873791cb4aacd290cd6ab"}, - {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7ebfd3a5120ca92e9402ade4219bf85efeb34fe5069e8c84cb232ffe4ac787aa"}, - {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:830b577ceb27cb2cf69ab2d298845ec78cd36f938a775e2ad1832bd026732902"}, - {file = "bitarray-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:56dec8fcceb1013507b129470420cd253fd81a0531ee1824d1a9c4080ee71dca"}, - {file = "bitarray-3.4.1-cp312-cp312-win32.whl", hash = "sha256:fcf561bad02be8934fcac7e778c11f736594e6c1d72323d47f7819638afdcd6b"}, - {file = "bitarray-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff2b7082a2a278ac0a65e0e325dd72322e44259df59001bfb8bafa5cc4a7620"}, - {file = "bitarray-3.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce175e0a5bcfd8ad928a1c37832aa072072454819ade953e513e9cbaaebab9ce"}, - {file = "bitarray-3.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:550ccfa6d43d5aeb07104964710aa75d9c4b763f3a80876c2ab9c2672601597c"}, - {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c53bd87ce689d09f7a6e4e627e74ea0db1a174e3af21c9b9604cc0268ef42b67"}, - {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1e5a3003381f441d1f98a9c7535f53e9614c9261b1e86f5df2d2aabd47655d8"}, - {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a07d260e6969356d3f1184f14e04b0f1a22a47021bc9f8d9b4f3655b2906db8a"}, - {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:faa5d648a4716b1a87d3ee84b275335797f998c9bde2e6af1501b341a178c041"}, - {file = "bitarray-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cafe66e81dd1adb2fbd298fab9411dabdc7b701d1ce169847f3ee3d2b35d2f5a"}, - {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7600eaa91ae4e0b73543dcc578537f7ff0b1af63555dd177e31172f51933dc44"}, - {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:483423116291300789ecc7a19c9fce88a927be34e1d77bbd59b2b6c07440f271"}, - {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:43bd377bced1a6dbd744d3a58d70973cb29abe56fc82260de736558b776d8c7b"}, - {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1fb6d5f36fa8b38586c40674d482a9066793e273bdc5a9cee8f493393e5661eb"}, - {file = "bitarray-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2b93e29c66f29c4b389596699aa14b07e30adb714e3e37b894f02d13b1c91cc9"}, - {file = "bitarray-3.4.1-cp313-cp313-win32.whl", hash = "sha256:461ae6337660d404c9f1d1ba8d4b563b6db635e61afbb23024ead15caff0babe"}, - {file = "bitarray-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8c10b1feea76c3093597e8d3c6e23388085df3756c7d437fa195baaae3585e6e"}, - {file = "bitarray-3.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ab65e7cbd6507a5266301f75e241839f67e08a7ba47d678a49bb5030439d8897"}, - {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45d360dda160671c5b1b06b4c16d9c5e6ca2677c67b62d276d2fdf4f0e72b443"}, - {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c8dff4e17b6ba3aa230d1f3bfcf0eadd1b0dd4a42fce8dbb80a20e13cafc349"}, - {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:749508a6bef52321e35a13e6e79f9c051046880735bbc6262316d5fa88897b49"}, - {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfd76f685c6e8d22484ba0a55a1c2b4945d4720ed3cb283d31e58f456b51ce"}, - {file = "bitarray-3.4.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14755e3bad21b9f4efcee2da3b670e2fe305dca937fbab3ad74aba5fa088c488"}, - {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:7233c7487156907f5e3d10e758a989526f79925577b56343811d1d752daa5f24"}, - {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:c3e33d50c204e93f41c22c416ab484cb4506a5ed0200d6c17d1637e407eb98f8"}, - {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:4e1ad697c5f4e48638ba0a9db79b47c3da1e8bf48cfd45ee206ffdb991f4605c"}, - {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:32af7b8f6f5fd09317982a7b1aa56d587654385eaee84894c1f8ce2b03677326"}, - {file = "bitarray-3.4.1-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:c6803779e1fba018f6583b6ca25115d3a2a5dec97c1958272941f2910056ad8e"}, - {file = "bitarray-3.4.1-cp36-cp36m-win32.whl", hash = "sha256:f35fe9bcfedc60413c11a96845045c9211bb4b10a791563cb768fd9e615d9d70"}, - {file = "bitarray-3.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8bc4c24830f8d2c527710ffd4b562d398c79e77dff6e2f0b55c11c3122d2bb90"}, - {file = "bitarray-3.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:51862375b411e55e3454c812e646a742a1668f7a24010572c5247e5873b4d227"}, - {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b52c5630f29959250158a42e25655086a304f6ca56b029ae2d69595ad3042a39"}, - {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7ac9ac747d6b9a44b1b1a7584d16e6867309795138666fd24216a3b0226cd9b"}, - {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afbcd885c1fe34dd7c1408c168ee90e62822e9d56c02740ebc9e241e96e21743"}, - {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3a9483fb7b6b2799f34c86d751a22ee59a51b473e9bc1f09681c5cf0224c95"}, - {file = "bitarray-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a4dbdfc3c0101be80d23482b4c05d5263452b4363f85c50cb5cb118fc0fff77"}, - {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:0d2a526c3557c268a9516e7601418806a4713901bb1dc90a66b27ea72cbd76c7"}, - {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:336c6c8ba33e896294ef4fc2dbb5b5cd8cf843a0fb297102aab322a435ddeecb"}, - {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:ec03a66c06b1547c824e734efc28a25c3634dbc3dea76ce34a2df255e2b59314"}, - {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:40acd4bd4453825f17d59ccd7780b382afe195489025b1d816bbf562d2d0babf"}, - {file = "bitarray-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:57959d57e7bf01bbed96e3ffda9af03bbe5090d8708408490e1d577918f87d67"}, - {file = "bitarray-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:3251b75b4646ad627a6152e7fa3ebb8ebbda1c334786e046b6aadf9998e077a7"}, - {file = "bitarray-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0e244b0dd99346999d08de46da6bc4ce253460a123db0719cf9e6adccd178bbe"}, - {file = "bitarray-3.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a5132f75767160183796ec628fbc547f9f6c0c279b068e7cdafdc0d8407f0090"}, - {file = "bitarray-3.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0fc3013f0de4a1a7c09ba913d68b1397949a97b1cc8158bd3fdf9f2c57b41763"}, - {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1b5ee6d0127475ac01f15065cb722bffa367ae3cda8e477a2cfea890baa410"}, - {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b17f86da78acf2933a36b729e8e3d49a8b76b12e8c9a334c6be3ac937df2e80"}, - {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:502d870415dd73ac8eb302d7e3a34156f709d861c31d8b4027f3c95a0d6c8a01"}, - {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa58a086fd3197658efb1d4b7b78cc87e4975bed9c74dd95531a51cf56e0661f"}, - {file = "bitarray-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd8923ce325b02bca493e9e08196041c23d37e2374bf9eff068bc9c31eb6e4bd"}, - {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d46755b66eeb6ec14e9168d01a57fc5126e0a6f3e2ecc0f3c5aa5e61284e238f"}, - {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:68da4dd6f1c62679f073ed8eb9621da2f6ce8a7001690da0bfde1b46db659de3"}, - {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4f99ec6e1738d2684321f37db40bb0a0b90028c66bf7d36f201ec50c9b26fc3c"}, - {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3829c0f1ce72baedd702ac20aa1d9a21805e7166e7a1987daf9730a02c6fe585"}, - {file = "bitarray-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5f505c4c2760e7226556d9f582b1977d2ceeb3ee9645092afa87d43be5169920"}, - {file = "bitarray-3.4.1-cp38-cp38-win32.whl", hash = "sha256:e0e15f9d1bf3163e1cf1e2f1f41cb555ad79e8b88a219f9070fa237e6c31c0d9"}, - {file = "bitarray-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:c2e8ec5232b8608bd47c27ff2707c111c50a248ea1d8938e525b444f94e161f3"}, - {file = "bitarray-3.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:77c7f08476126b4abc93bfba60315a86faac4f0eaab1d9dae5c78c4f90e08a44"}, - {file = "bitarray-3.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f149fcd4466b9750d5f445c0ccc1bdd4494e614785ad318a0db4c4f9701fcc96"}, - {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfa0fd661856ad4e73c9c4701e99d27be22fd09597b63bccf703bbc4621329c4"}, - {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2e623af61cca95b5942958b5eb3ef5000d75537857b6e7d89d0b9c32a75347d"}, - {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e17584d5a04b93b53ab4a0b4445d4252c4e5e75ff5561908811ce0fa36e6ac9"}, - {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:449292cffa84d79445d14eea679f9343092f23cdf705a5af7a7eb402fb7e3e69"}, - {file = "bitarray-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0a42c9e81539301c0c3aee69d464185dbb9fcbaf29c6751b6c29e6c6e7ee4fb"}, - {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:52b9381b9b9685ca408792b7a1ec70797331ff5dca27c65035915fe9baca667c"}, - {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:325d9cb31cf190363af3cc581a4bafd2b55182228740bdf07288d2b7a6c89777"}, - {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:896f2cf8e1896243c226905a00940cf108924e5691c785e3abf8ace037730424"}, - {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:710c6009c469ad8b1379e1df9d740a18200fd35604e61d2d3cf4807958174872"}, - {file = "bitarray-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:19b37b9672e4d26ad4e90a6b0dc1f1e93c0fe1a895f7b439b7ba1837442914b5"}, - {file = "bitarray-3.4.1-cp39-cp39-win32.whl", hash = "sha256:be46fec3d6ed968e5c3039d5adf4e77e8b9d24d72e7ba75b71156d56ff4b09ab"}, - {file = "bitarray-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:476d7b2a6bafbebdfb636a0bb658a5638b057628e00f7b9ad83d90134f4fdd08"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:14b3bd0b2d29cc692819d4f9853bb8ba9547176c48d73adfa171bb4eb16ed2e6"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:647cd1433bcb2271f1a224456c146a42db116e57906e37bf301bb655079154d5"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1db275f2775a28a3519b6d80d5d1136746e8000a355a7c7eba586d6e5a386e7a"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a640fc0227b995caad65bbc39e1edd14e01d4741aed3c376a29d9283d9d2da15"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d5b9394d063bcd8bf7be7f4bb54b38fe1400e256f3053fe60eee8e169e6fce5"}, - {file = "bitarray-3.4.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:14b07b99c8bcbbcac6801838765e0b2ac15ec419f487ee9986982209821a7087"}, - {file = "bitarray-3.4.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c0ddcc1a80cdb1f7bfac094c60a57263b39fb44e41f86ee7c553f38da666a97a"}, - {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7892d6f71d3cb79855dd318a6bed81d0943e244ff31f5d7a04386e3403ed0f51"}, - {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12c9c6fe8e27d4bfee750d83bda45808a716dbec439ea077097806545dfc5879"}, - {file = "bitarray-3.4.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:778063aae102fbc7320b7473be3915415942155220352740c5572a08d28f4b54"}, - {file = "bitarray-3.4.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:28aaa565fb7a9611f1366db2b228f0158bb4915132572c6b73416c00baf4d8a4"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:55d10287cf4559460a73af1aafd48b4a12af825d090547af61ecf1c4bd2bb84b"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:885c50c7d6ae1a160c5e30f33580006bfe906de2bac206a427c57087b81280f8"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceab4b82ad736224f8f5d1ba9d89a25a911266f3c89d968be65a14f21c955619"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2223e44e502649de51d747ba4e52564addd90fac3838794f77ab4d3ce363cfb"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6ad49786e85538d577e27a764a02f741bc262ec302f2c2e74a886fc40bd306a"}, - {file = "bitarray-3.4.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b54500ca32e6f3af99c785f99c2f1fad4af5f577c49a02a0c39e398aabe8deec"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9e665df0eda2d398086ecb88385e8ba3f67b52607e9e711538ac8fb6ad4c2a0f"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:16ec771bcb2d5d646c826a7d24763c15fc2ee025ef826c2c84f53999107c7358"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d335df95e4d088c0e4c8d6333f25eb5ed40d068fee8185fb7dbbd9b98b849cf"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2761a82280007c0930529fab344db61eb497a6338fecac3a61e0f1980e93159c"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bae86e1a22aa55b8ee101d73119dac28879d329e80ed76f17fde5eff2d48e6f"}, - {file = "bitarray-3.4.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ae60b992461f864e5d7fc274ca0fba9ced4abfce18e9089bd542a18912824713"}, - {file = "bitarray-3.4.1.tar.gz", hash = "sha256:e5fa88732bbcfb5437ee554e18f842a8f6c86be73656b0580ee146fd373176c9"}, + {file = "bitarray-3.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a0c126a6ed1d3cd68cd91c0056cee8edcf6aa57c557b555528fe37375e72ea74"}, + {file = "bitarray-3.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:690fc6d2b5c5e267f643e3720e8b4203838d3f30439e2070dccfae473b8223c3"}, + {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:639930dadc248e68caef99f068dea70cea58244f199c4ca63975ae6292f6e921"}, + {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6646d4f5533383a54d29c212b2ece7e1988d18f1e0f9e2e814bc96d4defdb39b"}, + {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:600e5805f2de242522ae598c4c43f95eda3cae63ca9ef01cdb659cb006bc3a86"}, + {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8815f3b7fd99d5b596e2ab29f9d14ce97c39ee9fc70fab6ba25fbb279b2b7bc"}, + {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb3dd74f05f0640b4a7aa2490c7b04d4c597f18623b8cdeca2700bade30747d"}, + {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9f8dc515136436a3682d3954f9a86d90b6f80d98b07fe03371cf933961d19c66"}, + {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c686b34b189160971cdfcaa31279ccdc6e90ecfb113b6c84b8761d74a308e4cf"}, + {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c9e7e7fa3870c8c164446b838d72ef88acb47bd3552b68f7bc509fcd13366004"}, + {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:79dff08c581ed3ac85eab019bd8af8ccab744651dc6f9e5acc3a44d96dd491aa"}, + {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:30522c7cca78cb68894c3b5f114aef79b6a62113289239ca0351ae11b4ec074d"}, + {file = "bitarray-3.4.3-cp310-cp310-win32.whl", hash = "sha256:860607c7ee614e8898c1fa6bb001a56c4af9c94d6204bcc32f4259b814fece10"}, + {file = "bitarray-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:65298a9aa7b16f543f94619e88b95c269de625beac3441c440e2d6b4e99cdd2c"}, + {file = "bitarray-3.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dad06c638adb14c2ab2cdbe295f324e72c7068d65bb5612be5f170e5682a1e3e"}, + {file = "bitarray-3.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0c6dc58399e2b1221f98b8696cdb414a8c42c2cea5c61f7cf9d691ee12c86cb3"}, + {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902b83896e0a4976186e3ec3c0064edd18dab886845644ef25c5e3c760999ed4"}, + {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e80131f03e4df4d9e70c355e5c939673eabaff47803fe1b85bf9676cb805e8a"}, + {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a544478f91a0239ce986c90af5dfbeb5ae758e4573194c94827705c138eb75b5"}, + {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3df507b700c5bd4f2d02056b9db1867e0a5c202fa22eb0d12a6dcca6098b1c0a"}, + {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ad9bf2403d69080bcd281fc3a4feab14fac8221362724e791df5d50aa105ea"}, + {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cda69a119698a6ab00e30bc3530d6631245312f6b2287c24b02b3bcea482f512"}, + {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:350357713dd175788f1e43b85998d8290b8626eb8e5dcc55571a64f8e231dcc1"}, + {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:17d34aab4b70d8c67260d76810d4aca65ef8bc61e829da32f9fa7116338430e3"}, + {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1f266e76e2819cfdd3522247fb33caccf661c7913e0a0e29e195b46a678be660"}, + {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:822963d34081d2d0b0767eaf1a161ac97b03f552fa21c2c7543d9433b88694b0"}, + {file = "bitarray-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6a345df7fa08af4d08f99a555d949003ff9309d5496c469b7f3dd50c402da973"}, + {file = "bitarray-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:8dc0772146d39d6819d01b64d41a9bf5535e99d2b2df4343ec2686b23b3a9740"}, + {file = "bitarray-3.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:eb6d5b1c2d544e2691a9d519bdbbbc41630e71f0f5d3b4b02e072b1ecf7fe78a"}, + {file = "bitarray-3.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e2b416291ba7817219296d2911fe06771b620541af26e6a4cc75e3559316d0af"}, + {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0522e602faf527e028a973e6260f2b6259a47d79fe8ddbf81b5176af36935e4"}, + {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd6b925a010d2749cba456ecd843f633594855f356d3ae66c49eb8cc6b3e0ba7"}, + {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8dc18fb4e24affd29fbaf48a2c6714fa3dece01b7e06d7f0bb75a187f8f5cd"}, + {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3e9ea27c5f877d6abeb02ee6affcf97804829b35a640c52a0e4ae340e401c9e"}, + {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3720b7e9816f61ff0dfa2d750c3cd2f989d1105d953606fb90471f45f5b8065"}, + {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:09abb161caada9ae4cd556c7d2f4d430f8eb2a8248f2e3fa93d5eea799ed1563"}, + {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bfb3fee5054a9a266d2d3d274987fbc5d75893ba8d28b849d6ffbdaefcad30f1"}, + {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a4eed600da6de44f260d440a60c55722beacd9908a4a2d6550323e74a9bbbbd8"}, + {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98effdef57d3c60c3df67f203ee83b0716edd50b3ef9afaf1ae6468e5204c78f"}, + {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:71fe2e56394f81ed4d027938cf165f12b684c1d88fede535297f5ac94f54f5a0"}, + {file = "bitarray-3.4.3-cp312-cp312-win32.whl", hash = "sha256:28ea1d79c13a8443cdacf8711471d407ad402d55dac457a634be2dd739589a66"}, + {file = "bitarray-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:ccb0bdca279d29286ef9bd973a975217927dfa7e0f0d6eac956df5b32ff7c57d"}, + {file = "bitarray-3.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2162e97bbdb3a9d2dbf039df02baf9eefd2c13149fc615a5ce5a0189bff82fd4"}, + {file = "bitarray-3.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:254ab82798faf4636ffd3b5bfe2bf24ee6f70e0c8b794491da24f143329bf4c5"}, + {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9342795493deacc6bea42782fea777e180abb28cf2440e743f6c52b65b4bfddd"}, + {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28347e92310a042e958c53336b03bea7e3eec451411ed0e27180d19c428ad7f2"}, + {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f873f4506649575495ffc91febf3e573eabdb7b800e96326533a711807bbe7df"}, + {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e9d9df7558497c72e832b1a29a1d3ec394c50c79829755b6237f9a76146f5e2"}, + {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f849e428dd2c8c38b705e28b2baa6601fc9013e3a8dd4b922f128e474bcf687d"}, + {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:438c50f2f9a5751fb12b1ae5c6283c94fc420c191ecd97f0d37483b3f1674a61"}, + {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cf5bdce1e64eb77cb10fd1046ec7ccd84a3e68cdeaf05da300adfc0a5ddcfa5"}, + {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2e981af7e4e0d33de3cd7132619c04484cc83846922507855d6d167ae2c444b5"}, + {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:da717081402de4b5d66865c9989cb586076773a11af85324fdad4db6950d36a4"}, + {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d6b1a7764e178b127e1388015c00bbc20d4e7188129532c530f1a12979c491f2"}, + {file = "bitarray-3.4.3-cp313-cp313-win32.whl", hash = "sha256:23ec148e5db67efee6376eefc0d167d4a25610b9e333b05e4ccfdcf7c2ac8a9a"}, + {file = "bitarray-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:c3113d40de1adfd3c4f08e4bb0a69ff88807085cf2916138f2b55839c9d8d1b2"}, + {file = "bitarray-3.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:18d4336ce8a514c9d3a3d87d62f070cb8753b6d2acc46faa8f2bcb934e635106"}, + {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c8a1ed3a57d4f3b4b9858716bcccd000d349b0433aa78f717f8014f5cb9f4e"}, + {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:082512689899a090ba664e788ba5f72816e3bc6f95c4dc79630cc77934cdd275"}, + {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e520f735f155edf326aaa722b5732590aa3527c051bb31f74994b01655f9be59"}, + {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58c2289e567971908d19764e970112b3f8724a1de5a5dbd56fcf0ce496a82a82"}, + {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a03b0b46455f74a1da2e705238f7bde38fb415de1686c7727e4b491570d3addf"}, + {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:177d905ded5578db62aa8fe91a4a3153f3ecd375e8c94a0b7def46631d4e85a2"}, + {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:2bf092d2f2be7c944e8f36615efacfc30d4effb988badb4cd9547561b8c98d2f"}, + {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:50ef1b7ce2db8e84a5c99c666d7cd8f861e2ecc0d8556aa02e179b8d0e99ebb5"}, + {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:a50355e799d7bfed98919bd06dcf93a6ea3ba5ea80542423893c8c244bca660a"}, + {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:3ec3ac5a6469b98945f8e3402a102bd49540bab5a8120120e3b7a3f0ca77fa30"}, + {file = "bitarray-3.4.3-cp36-cp36m-win32.whl", hash = "sha256:fcb9a9957b663fe72984c20bbd7b6e0d520954fea54fb3f6f5fd2fc7c3df7411"}, + {file = "bitarray-3.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:ec110e2cb464525fc41f1f7d10c8f7676d693fe85786fbd299a2843a79b3db0b"}, + {file = "bitarray-3.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f5ed2775f134ab5cf5de536d189cfa2218586cd2b6c2294902dfa0d8b051389b"}, + {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7098885346d58c0d8dbbeb6e92a10e12355b071846b59d16aee028a13dc0e98a"}, + {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d572cb40f63df713bf53df47bd8bbe053a08371f6177239406fe36e57d953422"}, + {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8656f9ec9a84277c139ea21cae6cc4350215fad6a339134f4f621d8e4773d167"}, + {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b9bfd70376cdf0525d8ac6c168abdbddd7c7ed05d7d3da655156c61d457b42a"}, + {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b69c396510f1ceccaaa15a8f2cf56ba46d0f4ed838c958892c6027e47de74b80"}, + {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:59a31cbfd3009c0b174a53289d3eab091c0a2421ed50980a7d922873820a0a33"}, + {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:e44821a49a6313f55e36367c9439c9a4c7de3aa30cb0dd826cd469a24da376d9"}, + {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:1be9272542f34131c91823fd56aa683ffb585742cab2e4adc1e3b7d87bf56db5"}, + {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:22259b87c86453bb17fb3a9225f2436100be4e807ec2b237c04684201e887829"}, + {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:26acfc36579caa58932d5adafe181609f38ce3c0a0c053c5174e95ffdab93485"}, + {file = "bitarray-3.4.3-cp37-cp37m-win32.whl", hash = "sha256:36428ca065a10b337d1bac640e159a8a23673881ab193b7db506e2f04452b894"}, + {file = "bitarray-3.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:613fd6f2fca2f9cef592535002db101efccb34627828dee0f5122390af2d36a1"}, + {file = "bitarray-3.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4ebc3675359381d70944cf6ca1f17eaeaa191f62cf78e178b1fbae10e3b89128"}, + {file = "bitarray-3.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c8535abd8f53333c382ba3d992206d7bd7ac91ea19ee3c712c18d5d750b8880"}, + {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6232646581b2dc146e13985a6213c3fcbd9ccc7311e599fc01bdec086cffaad6"}, + {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78415356052fdcebd8943ef72a2f2eab7722296bdb7172c4127c213ad7cd5582"}, + {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52bfc007309a6ef569a0c2add27abde97ac384657377c993ae34003b05568000"}, + {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c80319c7e455d8a35f33133e2db35daefcd10ec32d0283e0c45b5b3c8f2b7486"}, + {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:63a51d3831caa098f8fda1b128ad78a68b945e92a1951cba3e623afa4fc7a825"}, + {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f0d5a19de5bf8d79c498ea53b6625a103b696d5c096eb1424e265e3ffd7499e7"}, + {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:3c08df34aeb454501cbf4a678e29f5ce6e6b532b9203c1055c5e7801237b43c7"}, + {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:a19ec17ca5c8d5eee9b66f4e5022dfc1501db5771893eb8c192163a6cb0512b3"}, + {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:1d3fd4f52270e153324d7cb481dd5e956101b753232beeb6f9196b64eb3f29f1"}, + {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ec9483cc157bb6f00a80bd02193277b583725f530105d7e82452321514763eca"}, + {file = "bitarray-3.4.3-cp38-cp38-win32.whl", hash = "sha256:9998473d6e58fa94425ec6f7878098020bb92cdf51f629f61282aa1f4b505e78"}, + {file = "bitarray-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:02b2f2e7d50da4a8d41c5d2c5e4847c0666ae906de7955b1b5c799e85546abfa"}, + {file = "bitarray-3.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:187f181aa45ee92be7af539ebccde50ccc5e6ac1b07c3ffa681460f0bc4bd2a6"}, + {file = "bitarray-3.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab1c03490011041ba2d787404cd7a8364acbc86732bff866ab8d67d81bde9af5"}, + {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddd2343819c150da13a48eb5de3a01a687453541af7e28104fcc85dd4d98b052"}, + {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45433df04bd446c0fe35c2f9013067439291050ba775e77b4df019382817bc43"}, + {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc3f2e986a1728337b4cec6ac126abfee14bd91a1060a136861aa551ed716320"}, + {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:024295d1d89835588c5760dc72cd74c445c2313ef443225d89b430ed523ad618"}, + {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb0ce1bec34e4dbe9de3481d30675666ad77475378295763ab4b7387ad31a9e"}, + {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f3134a29d349b6ee4e472394f934de47cdb44373b53ceb17a44ffc2b10e683fc"}, + {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4badb5134887a4f755d8e5278cd8a761d7fa9fe746ceb46945ecea4071547593"}, + {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:db762c9c05ebb0cabf90739e37acc0e071c65726efa3321a59d7385aaf5eaea3"}, + {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:00ccedbe1d66d8c478bf0bfb9ba66b0fc9b8f3609547cd4d81afe019dd0b2501"}, + {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4c2c807bad952222b57759d5b9c68db7978a79c086e550d160ebea7ec3a47a62"}, + {file = "bitarray-3.4.3-cp39-cp39-win32.whl", hash = "sha256:a2ea7b16091655029926c5b45bd7db7228f4fc50939fdb52b0849ea8442bd78b"}, + {file = "bitarray-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:fa9e751049688bce4cf6901a4847d829146d9d618b539f14d960e072b778f212"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:988fa0b40aa939be4d171fab1e29d437523d72919116906ece5a39e5d2ed80c8"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b6a80cbe9ee4dc4994d1a7f59d684df1fef27adb018a12342dcf2404522f8a8"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:353c17eefe044b56ecbfa90c69ce579d88b3bf1527285d4487170ba619dcff75"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6e9cd32323ab76fb9f88379176d89a2815dae8f941c91a16b2f8f5af7ee5463"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2c06cf52f8ebd6b66651f1ee24fe1c006046970bbfc436e0132917a0c51a266"}, + {file = "bitarray-3.4.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:54e4c8527d3b642918c2510433bd8fe53808b149dde4e293178da0d6c0b7e39b"}, + {file = "bitarray-3.4.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8a623ed6900cb347c594344915d7e33b83e37d2f4bca81ce23a6d1a749bdb1d9"}, + {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fbeaf8bcbc1e7a0508c455c44364343131b97bc503aec157d694b6d1495e0e2"}, + {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41fb49bdaf38292607966412beec469f4f9202f6aa363817ad6e762411b8fd2b"}, + {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7fbc7edfb15e1b6b9709b10b140cc2eb81d605efac2722dc0f8832516d46b10"}, + {file = "bitarray-3.4.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:845af99a0c0d635c31871a07bb45c2500344f8f08480b32df90850898def47cd"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e74d09f7d9febcec01de4a27fc600d93b9de769c9e58c3f28ac0f24a7276ba1c"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0e57449ad43beb6fa344501f445f2b1d7689405127b8975d53ba0c320d4f6743"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e7c58d1a25acc829626ece2608ab21c2466bdbd0433c1a7caa2529c4641169d"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d043f4af52530d23ebd60e664a95041e8707ffeb283a5f604beb964ff6d5c7c"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:137c14f9a9c81298973eb19c6a3af2ed794d5978645223e3c7b37aa2f11fe897"}, + {file = "bitarray-3.4.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e1f170df5c24d0101410435fc210b68e55d800a77a2a26a3fd3e7ee9ab882337"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ee46b605100c722550bd7a216dcba4854f1d34c6632764049908da7ebaf8c83b"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:549caacd684e1120f446e0cf35b7faa06e9f4b647195b6ba341556d8d02a1ecf"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0924c210915c4d76cea002ee7f5138deb5d44e70eafe7ab4652fc7485d57803"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7354817ae65370aba12d67c953c792ae0a757c12808629a49a003f2e4cab5a7f"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2584f4d9d30de1b02e0b8f1256fa1d4c8a3e4346749fbc61ec430f210739ec15"}, + {file = "bitarray-3.4.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:df9447d1a9fad5d935bfe8a0263cb935f089b2a866a5d7a32ba09dc69671c812"}, + {file = "bitarray-3.4.3.tar.gz", hash = "sha256:dddfb2bf086b66aec1c0110dc46642b7161f587a6441cfe74da9e323975f62f0"}, ] [[package]] @@ -411,13 +416,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2025.4.26" +version = "2025.6.15" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, - {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, + {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, + {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, ] [[package]] @@ -722,13 +727,13 @@ files = [ [[package]] name = "click" -version = "8.1.8" +version = "8.2.1" description = "Composable command line interface toolkit" optional = false -python-versions = ">=3.7" +python-versions = ">=3.10" files = [ - {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, - {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, + {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, + {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, ] [package.dependencies] @@ -813,74 +818,78 @@ files = [ [[package]] name = "coverage" -version = "7.8.0" +version = "7.9.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" files = [ - {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, - {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, - {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, - {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, - {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, - {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, - {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, - {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, - {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, - {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, - {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, - {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa260de59dfb143af06dcf30c2be0b200bed2a73737a8a59248fcb9fa601ef0f"}, - {file = "coverage-7.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:96121edfa4c2dfdda409877ea8608dd01de816a4dc4a0523356067b305e4e17a"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8af63b9afa1031c0ef05b217faa598f3069148eeee6bb24b79da9012423b82"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89b1f4af0d4afe495cd4787a68e00f30f1d15939f550e869de90a86efa7e0814"}, - {file = "coverage-7.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ec0be97723ae72d63d3aa41961a0b9a6f5a53ff599813c324548d18e3b9e8c"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8a1d96e780bdb2d0cbb297325711701f7c0b6f89199a57f2049e90064c29f6bd"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f1d8a2a57b47142b10374902777e798784abf400a004b14f1b0b9eaf1e528ba4"}, - {file = "coverage-7.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cf60dd2696b457b710dd40bf17ad269d5f5457b96442f7f85722bdb16fa6c899"}, - {file = "coverage-7.8.0-cp39-cp39-win32.whl", hash = "sha256:be945402e03de47ba1872cd5236395e0f4ad635526185a930735f66710e1bd3f"}, - {file = "coverage-7.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:90e7fbc6216ecaffa5a880cdc9c77b7418c1dcb166166b78dbc630d07f278cc3"}, - {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, - {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, - {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, + {file = "coverage-7.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc94d7c5e8423920787c33d811c0be67b7be83c705f001f7180c7b186dcf10ca"}, + {file = "coverage-7.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16aa0830d0c08a2c40c264cef801db8bc4fc0e1892782e45bcacbd5889270509"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf95981b126f23db63e9dbe4cf65bd71f9a6305696fa5e2262693bc4e2183f5b"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f05031cf21699785cd47cb7485f67df619e7bcdae38e0fde40d23d3d0210d3c3"}, + {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb4fbcab8764dc072cb651a4bcda4d11fb5658a1d8d68842a862a6610bd8cfa3"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0f16649a7330ec307942ed27d06ee7e7a38417144620bb3d6e9a18ded8a2d3e5"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cea0a27a89e6432705fffc178064503508e3c0184b4f061700e771a09de58187"}, + {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e980b53a959fa53b6f05343afbd1e6f44a23ed6c23c4b4c56c6662bbb40c82ce"}, + {file = "coverage-7.9.1-cp310-cp310-win32.whl", hash = "sha256:70760b4c5560be6ca70d11f8988ee6542b003f982b32f83d5ac0b72476607b70"}, + {file = "coverage-7.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:a66e8f628b71f78c0e0342003d53b53101ba4e00ea8dabb799d9dba0abbbcebe"}, + {file = "coverage-7.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95c765060e65c692da2d2f51a9499c5e9f5cf5453aeaf1420e3fc847cc060582"}, + {file = "coverage-7.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba383dc6afd5ec5b7a0d0c23d38895db0e15bcba7fb0fa8901f245267ac30d86"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37ae0383f13cbdcf1e5e7014489b0d71cc0106458878ccde52e8a12ced4298ed"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69aa417a030bf11ec46149636314c24c8d60fadb12fc0ee8f10fda0d918c879d"}, + {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a4be2a28656afe279b34d4f91c3e26eccf2f85500d4a4ff0b1f8b54bf807338"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:382e7ddd5289f140259b610e5f5c58f713d025cb2f66d0eb17e68d0a94278875"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e5532482344186c543c37bfad0ee6069e8ae4fc38d073b8bc836fc8f03c9e250"}, + {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a39d18b3f50cc121d0ce3838d32d58bd1d15dab89c910358ebefc3665712256c"}, + {file = "coverage-7.9.1-cp311-cp311-win32.whl", hash = "sha256:dd24bd8d77c98557880def750782df77ab2b6885a18483dc8588792247174b32"}, + {file = "coverage-7.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:6b55ad10a35a21b8015eabddc9ba31eb590f54adc9cd39bcf09ff5349fd52125"}, + {file = "coverage-7.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ad935f0016be24c0e97fc8c40c465f9c4b85cbbe6eac48934c0dc4d2568321e"}, + {file = "coverage-7.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8de12b4b87c20de895f10567639c0797b621b22897b0af3ce4b4e204a743626"}, + {file = "coverage-7.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5add197315a054e92cee1b5f686a2bcba60c4c3e66ee3de77ace6c867bdee7cb"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600a1d4106fe66f41e5d0136dfbc68fe7200a5cbe85610ddf094f8f22e1b0300"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a876e4c3e5a2a1715a6608906aa5a2e0475b9c0f68343c2ada98110512ab1d8"}, + {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81f34346dd63010453922c8e628a52ea2d2ccd73cb2487f7700ac531b247c8a5"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:888f8eee13f2377ce86d44f338968eedec3291876b0b8a7289247ba52cb984cd"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9969ef1e69b8c8e1e70d591f91bbc37fc9a3621e447525d1602801a24ceda898"}, + {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60c458224331ee3f1a5b472773e4a085cc27a86a0b48205409d364272d67140d"}, + {file = "coverage-7.9.1-cp312-cp312-win32.whl", hash = "sha256:5f646a99a8c2b3ff4c6a6e081f78fad0dde275cd59f8f49dc4eab2e394332e74"}, + {file = "coverage-7.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:30f445f85c353090b83e552dcbbdad3ec84c7967e108c3ae54556ca69955563e"}, + {file = "coverage-7.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:af41da5dca398d3474129c58cb2b106a5d93bbb196be0d307ac82311ca234342"}, + {file = "coverage-7.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31324f18d5969feef7344a932c32428a2d1a3e50b15a6404e97cba1cc9b2c631"}, + {file = "coverage-7.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c804506d624e8a20fb3108764c52e0eef664e29d21692afa375e0dd98dc384f"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef64c27bc40189f36fcc50c3fb8f16ccda73b6a0b80d9bd6e6ce4cffcd810bbd"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4fe2348cc6ec372e25adec0219ee2334a68d2f5222e0cba9c0d613394e12d86"}, + {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ed2186fe52fcc24d4561041979a0dec69adae7bce2ae8d1c49eace13e55c43"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:25308bd3d00d5eedd5ae7d4357161f4df743e3c0240fa773ee1b0f75e6c7c0f1"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73e9439310f65d55a5a1e0564b48e34f5369bee943d72c88378f2d576f5a5751"}, + {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37ab6be0859141b53aa89412a82454b482c81cf750de4f29223d52268a86de67"}, + {file = "coverage-7.9.1-cp313-cp313-win32.whl", hash = "sha256:64bdd969456e2d02a8b08aa047a92d269c7ac1f47e0c977675d550c9a0863643"}, + {file = "coverage-7.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:be9e3f68ca9edb897c2184ad0eee815c635565dbe7a0e7e814dc1f7cbab92c0a"}, + {file = "coverage-7.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:1c503289ffef1d5105d91bbb4d62cbe4b14bec4d13ca225f9c73cde9bb46207d"}, + {file = "coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0"}, + {file = "coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029"}, + {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f"}, + {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10"}, + {file = "coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363"}, + {file = "coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7"}, + {file = "coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f424507f57878e424d9a95dc4ead3fbdd72fd201e404e861e465f28ea469951"}, + {file = "coverage-7.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:535fde4001b2783ac80865d90e7cc7798b6b126f4cd8a8c54acfe76804e54e58"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02532fd3290bb8fa6bec876520842428e2a6ed6c27014eca81b031c2d30e3f71"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56f5eb308b17bca3bbff810f55ee26d51926d9f89ba92707ee41d3c061257e55"}, + {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfa447506c1a52271f1b0de3f42ea0fa14676052549095e378d5bff1c505ff7b"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9ca8e220006966b4a7b68e8984a6aee645a0384b0769e829ba60281fe61ec4f7"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:49f1d0788ba5b7ba65933f3a18864117c6506619f5ca80326b478f72acf3f385"}, + {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68cd53aec6f45b8e4724c0950ce86eacb775c6be01ce6e3669fe4f3a21e768ed"}, + {file = "coverage-7.9.1-cp39-cp39-win32.whl", hash = "sha256:95335095b6c7b1cc14c3f3f17d5452ce677e8490d101698562b2ffcacc304c8d"}, + {file = "coverage-7.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b5191d1648acc439b24721caab2fd0c86679d8549ed2c84d5a7ec1bedcc244"}, + {file = "coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514"}, + {file = "coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c"}, + {file = "coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec"}, ] [package.dependencies] @@ -1046,13 +1055,13 @@ gmpy2 = ["gmpy2"] [[package]] name = "eip712" -version = "0.2.11" +version = "0.2.13" description = "eip712: Message classes for typed structured data hashing and signing in Ethereum" optional = false python-versions = "<4,>=3.9" files = [ - {file = "eip712-0.2.11-py3-none-any.whl", hash = "sha256:9f6b478944de21d192456c48d9439558564a7e370cbda2f03ba5bb3cf77339ac"}, - {file = "eip712-0.2.11.tar.gz", hash = "sha256:fe439c6bc3a1587c8980d648185bc891484b2d35206c9b43ca027741de1bc8e0"}, + {file = "eip712-0.2.13-py3-none-any.whl", hash = "sha256:92bcaa1f47a48cf6f0369b88b7bac8c88962b212cfb3b9d6a54639de0616e17c"}, + {file = "eip712-0.2.13.tar.gz", hash = "sha256:291ab5082199469dc088e5fdce7fa07b2e64dcccde434e10a9f1c53be2d18175"}, ] [package.dependencies] @@ -1331,179 +1340,179 @@ docs = ["alabaster", "myst-parser (>=0.18.0,<0.19.0)", "pygments-github-lexers", [[package]] name = "frozenlist" -version = "1.6.0" +version = "1.7.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.9" files = [ - {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6e558ea1e47fd6fa8ac9ccdad403e5dd5ecc6ed8dda94343056fa4277d5c65e"}, - {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4b3cd7334a4bbc0c472164f3744562cb72d05002cc6fcf58adb104630bbc352"}, - {file = "frozenlist-1.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9799257237d0479736e2b4c01ff26b5c7f7694ac9692a426cb717f3dc02fff9b"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a7bb0fe1f7a70fb5c6f497dc32619db7d2cdd53164af30ade2f34673f8b1fc"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:36d2fc099229f1e4237f563b2a3e0ff7ccebc3999f729067ce4e64a97a7f2869"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f27a9f9a86dcf00708be82359db8de86b80d029814e6693259befe82bb58a106"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ecee69073312951244f11b8627e3700ec2bfe07ed24e3a685a5979f0412d24"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2c7d5aa19714b1b01a0f515d078a629e445e667b9da869a3cd0e6fe7dec78bd"}, - {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69bbd454f0fb23b51cadc9bdba616c9678e4114b6f9fa372d462ff2ed9323ec8"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7daa508e75613809c7a57136dec4871a21bca3080b3a8fc347c50b187df4f00c"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:89ffdb799154fd4d7b85c56d5fa9d9ad48946619e0eb95755723fffa11022d75"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:920b6bd77d209931e4c263223381d63f76828bec574440f29eb497cf3394c249"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d3ceb265249fb401702fce3792e6b44c1166b9319737d21495d3611028d95769"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:52021b528f1571f98a7d4258c58aa8d4b1a96d4f01d00d51f1089f2e0323cb02"}, - {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0f2ca7810b809ed0f1917293050163c7654cefc57a49f337d5cd9de717b8fad3"}, - {file = "frozenlist-1.6.0-cp310-cp310-win32.whl", hash = "sha256:0e6f8653acb82e15e5443dba415fb62a8732b68fe09936bb6d388c725b57f812"}, - {file = "frozenlist-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f1a39819a5a3e84304cd286e3dc62a549fe60985415851b3337b6f5cc91907f1"}, - {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d"}, - {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0"}, - {file = "frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff"}, - {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1"}, - {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e"}, - {file = "frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860"}, - {file = "frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603"}, - {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1"}, - {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29"}, - {file = "frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590"}, - {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046"}, - {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770"}, - {file = "frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc"}, - {file = "frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878"}, - {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e"}, - {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117"}, - {file = "frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f"}, - {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188"}, - {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e"}, - {file = "frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4"}, - {file = "frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd"}, - {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64"}, - {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91"}, - {file = "frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e"}, - {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911"}, - {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497"}, - {file = "frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f"}, - {file = "frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348"}, - {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:536a1236065c29980c15c7229fbb830dedf809708c10e159b8136534233545f0"}, - {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ed5e3a4462ff25ca84fb09e0fada8ea267df98a450340ead4c91b44857267d70"}, - {file = "frozenlist-1.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e19c0fc9f4f030fcae43b4cdec9e8ab83ffe30ec10c79a4a43a04d1af6c5e1ad"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c608f833897501dac548585312d73a7dca028bf3b8688f0d712b7acfaf7fb3"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0dbae96c225d584f834b8d3cc688825911960f003a85cb0fd20b6e5512468c42"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:625170a91dd7261a1d1c2a0c1a353c9e55d21cd67d0852185a5fef86587e6f5f"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1db8b2fc7ee8a940b547a14c10e56560ad3ea6499dc6875c354e2335812f739d"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4da6fc43048b648275a220e3a61c33b7fff65d11bdd6dcb9d9c145ff708b804c"}, - {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef8e7e8f2f3820c5f175d70fdd199b79e417acf6c72c5d0aa8f63c9f721646f"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aa733d123cc78245e9bb15f29b44ed9e5780dc6867cfc4e544717b91f980af3b"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ba7f8d97152b61f22d7f59491a781ba9b177dd9f318486c5fbc52cde2db12189"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:56a0b8dd6d0d3d971c91f1df75e824986667ccce91e20dca2023683814344791"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5c9e89bf19ca148efcc9e3c44fd4c09d5af85c8a7dd3dbd0da1cb83425ef4983"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1330f0a4376587face7637dfd245380a57fe21ae8f9d360c1c2ef8746c4195fa"}, - {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2187248203b59625566cac53572ec8c2647a140ee2738b4e36772930377a533c"}, - {file = "frozenlist-1.6.0-cp39-cp39-win32.whl", hash = "sha256:2b8cf4cfea847d6c12af06091561a89740f1f67f331c3fa8623391905e878530"}, - {file = "frozenlist-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:1255d5d64328c5a0d066ecb0f02034d086537925f1f04b50b1ae60d37afbf572"}, - {file = "frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191"}, - {file = "frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68"}, + {file = "frozenlist-1.7.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cc4df77d638aa2ed703b878dd093725b72a824c3c546c076e8fdf276f78ee84a"}, + {file = "frozenlist-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:716a9973a2cc963160394f701964fe25012600f3d311f60c790400b00e568b61"}, + {file = "frozenlist-1.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0fd1bad056a3600047fb9462cff4c5322cebc59ebf5d0a3725e0ee78955001d"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3789ebc19cb811163e70fe2bd354cea097254ce6e707ae42e56f45e31e96cb8e"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af369aa35ee34f132fcfad5be45fbfcde0e3a5f6a1ec0712857f286b7d20cca9"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac64b6478722eeb7a3313d494f8342ef3478dff539d17002f849101b212ef97c"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f89f65d85774f1797239693cef07ad4c97fdd0639544bad9ac4b869782eb1981"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1073557c941395fdfcfac13eb2456cb8aad89f9de27bae29fabca8e563b12615"}, + {file = "frozenlist-1.7.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed8d2fa095aae4bdc7fdd80351009a48d286635edffee66bf865e37a9125c50"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:24c34bea555fe42d9f928ba0a740c553088500377448febecaa82cc3e88aa1fa"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:69cac419ac6a6baad202c85aaf467b65ac860ac2e7f2ac1686dc40dbb52f6577"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:960d67d0611f4c87da7e2ae2eacf7ea81a5be967861e0c63cf205215afbfac59"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:41be2964bd4b15bf575e5daee5a5ce7ed3115320fb3c2b71fca05582ffa4dc9e"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:46d84d49e00c9429238a7ce02dc0be8f6d7cd0cd405abd1bebdc991bf27c15bd"}, + {file = "frozenlist-1.7.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:15900082e886edb37480335d9d518cec978afc69ccbc30bd18610b7c1b22a718"}, + {file = "frozenlist-1.7.0-cp310-cp310-win32.whl", hash = "sha256:400ddd24ab4e55014bba442d917203c73b2846391dd42ca5e38ff52bb18c3c5e"}, + {file = "frozenlist-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:6eb93efb8101ef39d32d50bce242c84bcbddb4f7e9febfa7b524532a239b4464"}, + {file = "frozenlist-1.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aa51e147a66b2d74de1e6e2cf5921890de6b0f4820b257465101d7f37b49fb5a"}, + {file = "frozenlist-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9b35db7ce1cd71d36ba24f80f0c9e7cff73a28d7a74e91fe83e23d27c7828750"}, + {file = "frozenlist-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34a69a85e34ff37791e94542065c8416c1afbf820b68f720452f636d5fb990cd"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a646531fa8d82c87fe4bb2e596f23173caec9185bfbca5d583b4ccfb95183e2"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:79b2ffbba483f4ed36a0f236ccb85fbb16e670c9238313709638167670ba235f"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a26f205c9ca5829cbf82bb2a84b5c36f7184c4316617d7ef1b271a56720d6b30"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bcacfad3185a623fa11ea0e0634aac7b691aa925d50a440f39b458e41c561d98"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72c1b0fe8fe451b34f12dce46445ddf14bd2a5bcad7e324987194dc8e3a74c86"}, + {file = "frozenlist-1.7.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61d1a5baeaac6c0798ff6edfaeaa00e0e412d49946c53fae8d4b8e8b3566c4ae"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7edf5c043c062462f09b6820de9854bf28cc6cc5b6714b383149745e287181a8"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:d50ac7627b3a1bd2dcef6f9da89a772694ec04d9a61b66cf87f7d9446b4a0c31"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ce48b2fece5aeb45265bb7a58259f45027db0abff478e3077e12b05b17fb9da7"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:fe2365ae915a1fafd982c146754e1de6ab3478def8a59c86e1f7242d794f97d5"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:45a6f2fdbd10e074e8814eb98b05292f27bad7d1883afbe009d96abdcf3bc898"}, + {file = "frozenlist-1.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:21884e23cffabb157a9dd7e353779077bf5b8f9a58e9b262c6caad2ef5f80a56"}, + {file = "frozenlist-1.7.0-cp311-cp311-win32.whl", hash = "sha256:284d233a8953d7b24f9159b8a3496fc1ddc00f4db99c324bd5fb5f22d8698ea7"}, + {file = "frozenlist-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:387cbfdcde2f2353f19c2f66bbb52406d06ed77519ac7ee21be0232147c2592d"}, + {file = "frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2"}, + {file = "frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb"}, + {file = "frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e"}, + {file = "frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08"}, + {file = "frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43"}, + {file = "frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3"}, + {file = "frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a"}, + {file = "frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee"}, + {file = "frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d"}, + {file = "frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60"}, + {file = "frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b"}, + {file = "frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e"}, + {file = "frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1"}, + {file = "frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba"}, + {file = "frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d"}, + {file = "frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d"}, + {file = "frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384"}, + {file = "frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104"}, + {file = "frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf"}, + {file = "frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81"}, + {file = "frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e"}, + {file = "frozenlist-1.7.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cea3dbd15aea1341ea2de490574a4a37ca080b2ae24e4b4f4b51b9057b4c3630"}, + {file = "frozenlist-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7d536ee086b23fecc36c2073c371572374ff50ef4db515e4e503925361c24f71"}, + {file = "frozenlist-1.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dfcebf56f703cb2e346315431699f00db126d158455e513bd14089d992101e44"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:974c5336e61d6e7eb1ea5b929cb645e882aadab0095c5a6974a111e6479f8878"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c70db4a0ab5ab20878432c40563573229a7ed9241506181bba12f6b7d0dc41cb"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1137b78384eebaf70560a36b7b229f752fb64d463d38d1304939984d5cb887b6"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e793a9f01b3e8b5c0bc646fb59140ce0efcc580d22a3468d70766091beb81b35"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74739ba8e4e38221d2c5c03d90a7e542cb8ad681915f4ca8f68d04f810ee0a87"}, + {file = "frozenlist-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e63344c4e929b1a01e29bc184bbb5fd82954869033765bfe8d65d09e336a677"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2ea2a7369eb76de2217a842f22087913cdf75f63cf1307b9024ab82dfb525938"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:836b42f472a0e006e02499cef9352ce8097f33df43baaba3e0a28a964c26c7d2"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e22b9a99741294b2571667c07d9f8cceec07cb92aae5ccda39ea1b6052ed4319"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:9a19e85cc503d958abe5218953df722748d87172f71b73cf3c9257a91b999890"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f22dac33bb3ee8fe3e013aa7b91dc12f60d61d05b7fe32191ffa84c3aafe77bd"}, + {file = "frozenlist-1.7.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ccec739a99e4ccf664ea0775149f2749b8a6418eb5b8384b4dc0a7d15d304cb"}, + {file = "frozenlist-1.7.0-cp39-cp39-win32.whl", hash = "sha256:b3950f11058310008a87757f3eee16a8e1ca97979833239439586857bc25482e"}, + {file = "frozenlist-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:43a82fce6769c70f2f5a06248b614a7d268080a9d20f7457ef10ecee5af82b63"}, + {file = "frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e"}, + {file = "frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f"}, ] [[package]] name = "grpcio" -version = "1.71.0" +version = "1.73.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" files = [ - {file = "grpcio-1.71.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:c200cb6f2393468142eb50ab19613229dcc7829b5ccee8b658a36005f6669fdd"}, - {file = "grpcio-1.71.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b2266862c5ad664a380fbbcdbdb8289d71464c42a8c29053820ee78ba0119e5d"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:0ab8b2864396663a5b0b0d6d79495657ae85fa37dcb6498a2669d067c65c11ea"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c30f393f9d5ff00a71bb56de4aa75b8fe91b161aeb61d39528db6b768d7eac69"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f250ff44843d9a0615e350c77f890082102a0318d66a99540f54769c8766ab73"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e6d8de076528f7c43a2f576bc311799f89d795aa6c9b637377cc2b1616473804"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9b91879d6da1605811ebc60d21ab6a7e4bae6c35f6b63a061d61eb818c8168f6"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f71574afdf944e6652203cd1badcda195b2a27d9c83e6d88dc1ce3cfb73b31a5"}, - {file = "grpcio-1.71.0-cp310-cp310-win32.whl", hash = "sha256:8997d6785e93308f277884ee6899ba63baafa0dfb4729748200fcc537858a509"}, - {file = "grpcio-1.71.0-cp310-cp310-win_amd64.whl", hash = "sha256:7d6ac9481d9d0d129224f6d5934d5832c4b1cddb96b59e7eba8416868909786a"}, - {file = "grpcio-1.71.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:d6aa986318c36508dc1d5001a3ff169a15b99b9f96ef5e98e13522c506b37eef"}, - {file = "grpcio-1.71.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:d2c170247315f2d7e5798a22358e982ad6eeb68fa20cf7a820bb74c11f0736e7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:e6f83a583ed0a5b08c5bc7a3fe860bb3c2eac1f03f1f63e0bc2091325605d2b7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be74ddeeb92cc87190e0e376dbc8fc7736dbb6d3d454f2fa1f5be1dee26b9d7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd0dfbe4d5eb1fcfec9490ca13f82b089a309dc3678e2edabc144051270a66e"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a2242d6950dc892afdf9e951ed7ff89473aaf744b7d5727ad56bdaace363722b"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0fa05ee31a20456b13ae49ad2e5d585265f71dd19fbd9ef983c28f926d45d0a7"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3d081e859fb1ebe176de33fc3adb26c7d46b8812f906042705346b314bde32c3"}, - {file = "grpcio-1.71.0-cp311-cp311-win32.whl", hash = "sha256:d6de81c9c00c8a23047136b11794b3584cdc1460ed7cbc10eada50614baa1444"}, - {file = "grpcio-1.71.0-cp311-cp311-win_amd64.whl", hash = "sha256:24e867651fc67717b6f896d5f0cac0ec863a8b5fb7d6441c2ab428f52c651c6b"}, - {file = "grpcio-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:0ff35c8d807c1c7531d3002be03221ff9ae15712b53ab46e2a0b4bb271f38537"}, - {file = "grpcio-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:b78a99cd1ece4be92ab7c07765a0b038194ded2e0a26fd654591ee136088d8d7"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:dc1a1231ed23caac1de9f943d031f1bc38d0f69d2a3b243ea0d664fc1fbd7fec"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6beeea5566092c5e3c4896c6d1d307fb46b1d4bdf3e70c8340b190a69198594"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5170929109450a2c031cfe87d6716f2fae39695ad5335d9106ae88cc32dc84c"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5b08d03ace7aca7b2fadd4baf291139b4a5f058805a8327bfe9aece7253b6d67"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f903017db76bf9cc2b2d8bdd37bf04b505bbccad6be8a81e1542206875d0e9db"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:469f42a0b410883185eab4689060a20488a1a0a00f8bbb3cbc1061197b4c5a79"}, - {file = "grpcio-1.71.0-cp312-cp312-win32.whl", hash = "sha256:ad9f30838550695b5eb302add33f21f7301b882937460dd24f24b3cc5a95067a"}, - {file = "grpcio-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:652350609332de6dac4ece254e5d7e1ff834e203d6afb769601f286886f6f3a8"}, - {file = "grpcio-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:cebc1b34ba40a312ab480ccdb396ff3c529377a2fce72c45a741f7215bfe8379"}, - {file = "grpcio-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:85da336e3649a3d2171e82f696b5cad2c6231fdd5bad52616476235681bee5b3"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f9a412f55bb6e8f3bb000e020dbc1e709627dcb3a56f6431fa7076b4c1aab0db"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47be9584729534660416f6d2a3108aaeac1122f6b5bdbf9fd823e11fe6fbaa29"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c9c80ac6091c916db81131d50926a93ab162a7e97e4428ffc186b6e80d6dda4"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:789d5e2a3a15419374b7b45cd680b1e83bbc1e52b9086e49308e2c0b5bbae6e3"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:1be857615e26a86d7363e8a163fade914595c81fec962b3d514a4b1e8760467b"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a76d39b5fafd79ed604c4be0a869ec3581a172a707e2a8d7a4858cb05a5a7637"}, - {file = "grpcio-1.71.0-cp313-cp313-win32.whl", hash = "sha256:74258dce215cb1995083daa17b379a1a5a87d275387b7ffe137f1d5131e2cfbb"}, - {file = "grpcio-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:22c3bc8d488c039a199f7a003a38cb7635db6656fa96437a8accde8322ce2366"}, - {file = "grpcio-1.71.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:c6a0a28450c16809f94e0b5bfe52cabff63e7e4b97b44123ebf77f448534d07d"}, - {file = "grpcio-1.71.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:a371e6b6a5379d3692cc4ea1cb92754d2a47bdddeee755d3203d1f84ae08e03e"}, - {file = "grpcio-1.71.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:39983a9245d37394fd59de71e88c4b295eb510a3555e0a847d9965088cdbd033"}, - {file = "grpcio-1.71.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9182e0063112e55e74ee7584769ec5a0b4f18252c35787f48738627e23a62b97"}, - {file = "grpcio-1.71.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693bc706c031aeb848849b9d1c6b63ae6bcc64057984bb91a542332b75aa4c3d"}, - {file = "grpcio-1.71.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:20e8f653abd5ec606be69540f57289274c9ca503ed38388481e98fa396ed0b41"}, - {file = "grpcio-1.71.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8700a2a57771cc43ea295296330daaddc0d93c088f0a35cc969292b6db959bf3"}, - {file = "grpcio-1.71.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d35a95f05a8a2cbe8e02be137740138b3b2ea5f80bd004444e4f9a1ffc511e32"}, - {file = "grpcio-1.71.0-cp39-cp39-win32.whl", hash = "sha256:f9c30c464cb2ddfbc2ddf9400287701270fdc0f14be5f08a1e3939f1e749b455"}, - {file = "grpcio-1.71.0-cp39-cp39-win_amd64.whl", hash = "sha256:63e41b91032f298b3e973b3fa4093cbbc620c875e2da7b93e249d4728b54559a"}, - {file = "grpcio-1.71.0.tar.gz", hash = "sha256:2b85f7820475ad3edec209d3d89a7909ada16caab05d3f2e08a7e8ae3200a55c"}, + {file = "grpcio-1.73.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d050197eeed50f858ef6c51ab09514856f957dba7b1f7812698260fc9cc417f6"}, + {file = "grpcio-1.73.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ebb8d5f4b0200916fb292a964a4d41210de92aba9007e33d8551d85800ea16cb"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c0811331b469e3f15dda5f90ab71bcd9681189a83944fd6dc908e2c9249041ef"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12787c791c3993d0ea1cc8bf90393647e9a586066b3b322949365d2772ba965b"}, + {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c17771e884fddf152f2a0df12478e8d02853e5b602a10a9a9f1f52fa02b1d32"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:275e23d4c428c26b51857bbd95fcb8e528783597207ec592571e4372b300a29f"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9ffc972b530bf73ef0f948f799482a1bf12d9b6f33406a8e6387c0ca2098a833"}, + {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d269df64aff092b2cec5e015d8ae09c7e90888b5c35c24fdca719a2c9f35"}, + {file = "grpcio-1.73.0-cp310-cp310-win32.whl", hash = "sha256:072d8154b8f74300ed362c01d54af8b93200c1a9077aeaea79828d48598514f1"}, + {file = "grpcio-1.73.0-cp310-cp310-win_amd64.whl", hash = "sha256:ce953d9d2100e1078a76a9dc2b7338d5415924dc59c69a15bf6e734db8a0f1ca"}, + {file = "grpcio-1.73.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:51036f641f171eebe5fa7aaca5abbd6150f0c338dab3a58f9111354240fe36ec"}, + {file = "grpcio-1.73.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d12bbb88381ea00bdd92c55aff3da3391fd85bc902c41275c8447b86f036ce0f"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:483c507c2328ed0e01bc1adb13d1eada05cc737ec301d8e5a8f4a90f387f1790"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c201a34aa960c962d0ce23fe5f423f97e9d4b518ad605eae6d0a82171809caaa"}, + {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859f70c8e435e8e1fa060e04297c6818ffc81ca9ebd4940e180490958229a45a"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e2459a27c6886e7e687e4e407778425f3c6a971fa17a16420227bda39574d64b"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e0084d4559ee3dbdcce9395e1bc90fdd0262529b32c417a39ecbc18da8074ac7"}, + {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef5fff73d5f724755693a464d444ee0a448c6cdfd3c1616a9223f736c622617d"}, + {file = "grpcio-1.73.0-cp311-cp311-win32.whl", hash = "sha256:965a16b71a8eeef91fc4df1dc40dc39c344887249174053814f8a8e18449c4c3"}, + {file = "grpcio-1.73.0-cp311-cp311-win_amd64.whl", hash = "sha256:b71a7b4483d1f753bbc11089ff0f6fa63b49c97a9cc20552cded3fcad466d23b"}, + {file = "grpcio-1.73.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fb9d7c27089d9ba3746f18d2109eb530ef2a37452d2ff50f5a6696cd39167d3b"}, + {file = "grpcio-1.73.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:128ba2ebdac41e41554d492b82c34586a90ebd0766f8ebd72160c0e3a57b9155"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:068ecc415f79408d57a7f146f54cdf9f0acb4b301a52a9e563973dc981e82f3d"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ddc1cfb2240f84d35d559ade18f69dcd4257dbaa5ba0de1a565d903aaab2968"}, + {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53007f70d9783f53b41b4cf38ed39a8e348011437e4c287eee7dd1d39d54b2f"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4dd8d8d092efede7d6f48d695ba2592046acd04ccf421436dd7ed52677a9ad29"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:70176093d0a95b44d24baa9c034bb67bfe2b6b5f7ebc2836f4093c97010e17fd"}, + {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:085ebe876373ca095e24ced95c8f440495ed0b574c491f7f4f714ff794bbcd10"}, + {file = "grpcio-1.73.0-cp312-cp312-win32.whl", hash = "sha256:cfc556c1d6aef02c727ec7d0016827a73bfe67193e47c546f7cadd3ee6bf1a60"}, + {file = "grpcio-1.73.0-cp312-cp312-win_amd64.whl", hash = "sha256:bbf45d59d090bf69f1e4e1594832aaf40aa84b31659af3c5e2c3f6a35202791a"}, + {file = "grpcio-1.73.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:da1d677018ef423202aca6d73a8d3b2cb245699eb7f50eb5f74cae15a8e1f724"}, + {file = "grpcio-1.73.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:36bf93f6a657f37c131d9dd2c391b867abf1426a86727c3575393e9e11dadb0d"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:d84000367508ade791d90c2bafbd905574b5ced8056397027a77a215d601ba15"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c98ba1d928a178ce33f3425ff823318040a2b7ef875d30a0073565e5ceb058d9"}, + {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a73c72922dfd30b396a5f25bb3a4590195ee45ecde7ee068acb0892d2900cf07"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:10e8edc035724aba0346a432060fd192b42bd03675d083c01553cab071a28da5"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f5cdc332b503c33b1643b12ea933582c7b081957c8bc2ea4cc4bc58054a09288"}, + {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:07ad7c57233c2109e4ac999cb9c2710c3b8e3f491a73b058b0ce431f31ed8145"}, + {file = "grpcio-1.73.0-cp313-cp313-win32.whl", hash = "sha256:0eb5df4f41ea10bda99a802b2a292d85be28958ede2a50f2beb8c7fc9a738419"}, + {file = "grpcio-1.73.0-cp313-cp313-win_amd64.whl", hash = "sha256:38cf518cc54cd0c47c9539cefa8888549fcc067db0b0c66a46535ca8032020c4"}, + {file = "grpcio-1.73.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:1284850607901cfe1475852d808e5a102133461ec9380bc3fc9ebc0686ee8e32"}, + {file = "grpcio-1.73.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:0e092a4b28eefb63eec00d09ef33291cd4c3a0875cde29aec4d11d74434d222c"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:33577fe7febffe8ebad458744cfee8914e0c10b09f0ff073a6b149a84df8ab8f"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60813d8a16420d01fa0da1fc7ebfaaa49a7e5051b0337cd48f4f950eb249a08e"}, + {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9c957dc65e5d474378d7bcc557e9184576605d4b4539e8ead6e351d7ccce20"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3902b71407d021163ea93c70c8531551f71ae742db15b66826cf8825707d2908"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1dd7fa7276dcf061e2d5f9316604499eea06b1b23e34a9380572d74fe59915a8"}, + {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2d1510c4ea473110cb46a010555f2c1a279d1c256edb276e17fa571ba1e8927c"}, + {file = "grpcio-1.73.0-cp39-cp39-win32.whl", hash = "sha256:d0a1517b2005ba1235a1190b98509264bf72e231215dfeef8db9a5a92868789e"}, + {file = "grpcio-1.73.0-cp39-cp39-win_amd64.whl", hash = "sha256:6228f7eb6d9f785f38b589d49957fca5df3d5b5349e77d2d89b14e390165344c"}, + {file = "grpcio-1.73.0.tar.gz", hash = "sha256:3af4c30918a7f0d39de500d11255f8d9da4f30e94a2033e70fe2a720e184bd8e"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.71.0)"] +protobuf = ["grpcio-tools (>=1.73.0)"] [[package]] name = "grpcio-tools" @@ -1602,13 +1611,13 @@ test = ["eth_utils (>=2.0.0)", "hypothesis (>=3.44.24)", "pytest (>=7.0.0)", "py [[package]] name = "identify" -version = "2.6.10" +version = "2.6.12" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.10-py2.py3-none-any.whl", hash = "sha256:5f34248f54136beed1a7ba6a6b5c4b6cf21ff495aac7c359e1ef831ae3b8ab25"}, - {file = "identify-2.6.10.tar.gz", hash = "sha256:45e92fd704f3da71cc3880036633f48b4b7265fd4de2b57627cb157216eb7eb8"}, + {file = "identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"}, + {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}, ] [package.extras] @@ -1697,115 +1706,109 @@ files = [ [[package]] name = "multidict" -version = "6.4.4" +version = "6.5.1" description = "multidict implementation" optional = false python-versions = ">=3.9" files = [ - {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8adee3ac041145ffe4488ea73fa0a622b464cc25340d98be76924d0cda8545ff"}, - {file = "multidict-6.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b61e98c3e2a861035aaccd207da585bdcacef65fe01d7a0d07478efac005e028"}, - {file = "multidict-6.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:75493f28dbadecdbb59130e74fe935288813301a8554dc32f0c631b6bdcdf8b0"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc3c6a37e048b5395ee235e4a2a0d639c2349dffa32d9367a42fc20d399772"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87cb72263946b301570b0f63855569a24ee8758aaae2cd182aae7d95fbc92ca7"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bbf7bd39822fd07e3609b6b4467af4c404dd2b88ee314837ad1830a7f4a8299"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1f7cbd4f1f44ddf5fd86a8675b7679176eae770f2fc88115d6dddb6cefb59bc"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb5ac9e5bfce0e6282e7f59ff7b7b9a74aa8e5c60d38186a4637f5aa764046ad"}, - {file = "multidict-6.4.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4efc31dfef8c4eeb95b6b17d799eedad88c4902daba39ce637e23a17ea078915"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9fcad2945b1b91c29ef2b4050f590bfcb68d8ac8e0995a74e659aa57e8d78e01"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d877447e7368c7320832acb7159557e49b21ea10ffeb135c1077dbbc0816b598"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:33a12ebac9f380714c298cbfd3e5b9c0c4e89c75fe612ae496512ee51028915f"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0f14ea68d29b43a9bf37953881b1e3eb75b2739e896ba4a6aa4ad4c5b9ffa145"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0327ad2c747a6600e4797d115d3c38a220fdb28e54983abe8964fd17e95ae83c"}, - {file = "multidict-6.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d1a20707492db9719a05fc62ee215fd2c29b22b47c1b1ba347f9abc831e26683"}, - {file = "multidict-6.4.4-cp310-cp310-win32.whl", hash = "sha256:d83f18315b9fca5db2452d1881ef20f79593c4aa824095b62cb280019ef7aa3d"}, - {file = "multidict-6.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:9c17341ee04545fd962ae07330cb5a39977294c883485c8d74634669b1f7fe04"}, - {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4f5f29794ac0e73d2a06ac03fd18870adc0135a9d384f4a306a951188ed02f95"}, - {file = "multidict-6.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c04157266344158ebd57b7120d9b0b35812285d26d0e78193e17ef57bfe2979a"}, - {file = "multidict-6.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb61ffd3ab8310d93427e460f565322c44ef12769f51f77277b4abad7b6f7223"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e0ba18a9afd495f17c351d08ebbc4284e9c9f7971d715f196b79636a4d0de44"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9faf1b1dcaadf9f900d23a0e6d6c8eadd6a95795a0e57fcca73acce0eb912065"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4d1cb1327c6082c4fce4e2a438483390964c02213bc6b8d782cf782c9b1471f"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:941f1bec2f5dbd51feeb40aea654c2747f811ab01bdd3422a48a4e4576b7d76a"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5f8a146184da7ea12910a4cec51ef85e44f6268467fb489c3caf0cd512f29c2"}, - {file = "multidict-6.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:232b7237e57ec3c09be97206bfb83a0aa1c5d7d377faa019c68a210fa35831f1"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:55ae0721c1513e5e3210bca4fc98456b980b0c2c016679d3d723119b6b202c42"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:51d662c072579f63137919d7bb8fc250655ce79f00c82ecf11cab678f335062e"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0e05c39962baa0bb19a6b210e9b1422c35c093b651d64246b6c2e1a7e242d9fd"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b1cc3ab8c31d9ebf0faa6e3540fb91257590da330ffe6d2393d4208e638925"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93ec84488a384cd7b8a29c2c7f467137d8a73f6fe38bb810ecf29d1ade011a7c"}, - {file = "multidict-6.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b308402608493638763abc95f9dc0030bbd6ac6aff784512e8ac3da73a88af08"}, - {file = "multidict-6.4.4-cp311-cp311-win32.whl", hash = "sha256:343892a27d1a04d6ae455ecece12904d242d299ada01633d94c4f431d68a8c49"}, - {file = "multidict-6.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:73484a94f55359780c0f458bbd3c39cb9cf9c182552177d2136e828269dee529"}, - {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dc388f75a1c00000824bf28b7633e40854f4127ede80512b44c3cfeeea1839a2"}, - {file = "multidict-6.4.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:98af87593a666f739d9dba5d0ae86e01b0e1a9cfcd2e30d2d361fbbbd1a9162d"}, - {file = "multidict-6.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aff4cafea2d120327d55eadd6b7f1136a8e5a0ecf6fb3b6863e8aca32cd8e50a"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:169c4ba7858176b797fe551d6e99040c531c775d2d57b31bcf4de6d7a669847f"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9eb4c59c54421a32b3273d4239865cb14ead53a606db066d7130ac80cc8ec93"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7cf3bd54c56aa16fdb40028d545eaa8d051402b61533c21e84046e05513d5780"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f682c42003c7264134bfe886376299db4cc0c6cd06a3295b41b347044bcb5482"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920f9cf2abdf6e493c519492d892c362007f113c94da4c239ae88429835bad1"}, - {file = "multidict-6.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:530d86827a2df6504526106b4c104ba19044594f8722d3e87714e847c74a0275"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecde56ea2439b96ed8a8d826b50c57364612ddac0438c39e473fafad7ae1c23b"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dc8c9736d8574b560634775ac0def6bdc1661fc63fa27ffdfc7264c565bcb4f2"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7f3d3b3c34867579ea47cbd6c1f2ce23fbfd20a273b6f9e3177e256584f1eacc"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:87a728af265e08f96b6318ebe3c0f68b9335131f461efab2fc64cc84a44aa6ed"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9f193eeda1857f8e8d3079a4abd258f42ef4a4bc87388452ed1e1c4d2b0c8740"}, - {file = "multidict-6.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be06e73c06415199200e9a2324a11252a3d62030319919cde5e6950ffeccf72e"}, - {file = "multidict-6.4.4-cp312-cp312-win32.whl", hash = "sha256:622f26ea6a7e19b7c48dd9228071f571b2fbbd57a8cd71c061e848f281550e6b"}, - {file = "multidict-6.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:5e2bcda30d5009996ff439e02a9f2b5c3d64a20151d34898c000a6281faa3781"}, - {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:82ffabefc8d84c2742ad19c37f02cde5ec2a1ee172d19944d380f920a340e4b9"}, - {file = "multidict-6.4.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6a2f58a66fe2c22615ad26156354005391e26a2f3721c3621504cd87c1ea87bf"}, - {file = "multidict-6.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5883d6ee0fd9d8a48e9174df47540b7545909841ac82354c7ae4cbe9952603bd"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9abcf56a9511653fa1d052bfc55fbe53dbee8f34e68bd6a5a038731b0ca42d15"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6ed5ae5605d4ad5a049fad2a28bb7193400700ce2f4ae484ab702d1e3749c3f9"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbfcb60396f9bcfa63e017a180c3105b8c123a63e9d1428a36544e7d37ca9e20"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0f1987787f5f1e2076b59692352ab29a955b09ccc433c1f6b8e8e18666f608b"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d0121ccce8c812047d8d43d691a1ad7641f72c4f730474878a5aeae1b8ead8c"}, - {file = "multidict-6.4.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83ec4967114295b8afd120a8eec579920c882831a3e4c3331d591a8e5bfbbc0f"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:995f985e2e268deaf17867801b859a282e0448633f1310e3704b30616d269d69"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d832c608f94b9f92a0ec8b7e949be7792a642b6e535fcf32f3e28fab69eeb046"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d21c1212171cf7da703c5b0b7a0e85be23b720818aef502ad187d627316d5645"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cbebaa076aaecad3d4bb4c008ecc73b09274c952cf6a1b78ccfd689e51f5a5b0"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:c93a6fb06cc8e5d3628b2b5fda215a5db01e8f08fc15fadd65662d9b857acbe4"}, - {file = "multidict-6.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8f81f1310182362fb0c7898145ea9c9b08a71081c5963b40ee3e3cac589b1"}, - {file = "multidict-6.4.4-cp313-cp313-win32.whl", hash = "sha256:3e9f1cd61a0ab857154205fb0b1f3d3ace88d27ebd1409ab7af5096e409614cd"}, - {file = "multidict-6.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:8ffb40b74400e4455785c2fa37eba434269149ec525fc8329858c862e4b35373"}, - {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6a602151dbf177be2450ef38966f4be3467d41a86c6a845070d12e17c858a156"}, - {file = "multidict-6.4.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d2b9712211b860d123815a80b859075d86a4d54787e247d7fbee9db6832cf1c"}, - {file = "multidict-6.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d2fa86af59f8fc1972e121ade052145f6da22758f6996a197d69bb52f8204e7e"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50855d03e9e4d66eab6947ba688ffb714616f985838077bc4b490e769e48da51"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5bce06b83be23225be1905dcdb6b789064fae92499fbc458f59a8c0e68718601"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66ed0731f8e5dfd8369a883b6e564aca085fb9289aacabd9decd70568b9a30de"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:329ae97fc2f56f44d91bc47fe0972b1f52d21c4b7a2ac97040da02577e2daca2"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27e5dcf520923d6474d98b96749e6805f7677e93aaaf62656005b8643f907ab"}, - {file = "multidict-6.4.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:058cc59b9e9b143cc56715e59e22941a5d868c322242278d28123a5d09cdf6b0"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:69133376bc9a03f8c47343d33f91f74a99c339e8b58cea90433d8e24bb298031"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d6b15c55721b1b115c5ba178c77104123745b1417527ad9641a4c5e2047450f0"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a887b77f51d3d41e6e1a63cf3bc7ddf24de5939d9ff69441387dfefa58ac2e26"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:632a3bf8f1787f7ef7d3c2f68a7bde5be2f702906f8b5842ad6da9d974d0aab3"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a145c550900deb7540973c5cdb183b0d24bed6b80bf7bddf33ed8f569082535e"}, - {file = "multidict-6.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d83c6619ca5c9672cb78b39ed8542f1975a803dee2cda114ff73cbb076edd"}, - {file = "multidict-6.4.4-cp313-cp313t-win32.whl", hash = "sha256:3312f63261b9df49be9d57aaa6abf53a6ad96d93b24f9cc16cf979956355ce6e"}, - {file = "multidict-6.4.4-cp313-cp313t-win_amd64.whl", hash = "sha256:ba852168d814b2c73333073e1c7116d9395bea69575a01b0b3c89d2d5a87c8fb"}, - {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:603f39bd1cf85705c6c1ba59644b480dfe495e6ee2b877908de93322705ad7cf"}, - {file = "multidict-6.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fc60f91c02e11dfbe3ff4e1219c085695c339af72d1641800fe6075b91850c8f"}, - {file = "multidict-6.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:496bcf01c76a70a31c3d746fd39383aad8d685ce6331e4c709e9af4ced5fa221"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4219390fb5bf8e548e77b428bb36a21d9382960db5321b74d9d9987148074d6b"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef4e9096ff86dfdcbd4a78253090ba13b1d183daa11b973e842465d94ae1772"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49a29d7133b1fc214e818bbe025a77cc6025ed9a4f407d2850373ddde07fd04a"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e32053d6d3a8b0dfe49fde05b496731a0e6099a4df92154641c00aa76786aef5"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cc403092a49509e8ef2d2fd636a8ecefc4698cc57bbe894606b14579bc2a955"}, - {file = "multidict-6.4.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5363f9b2a7f3910e5c87d8b1855c478c05a2dc559ac57308117424dfaad6805c"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e543a40e4946cf70a88a3be87837a3ae0aebd9058ba49e91cacb0b2cd631e2b"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:60d849912350da557fe7de20aa8cf394aada6980d0052cc829eeda4a0db1c1db"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:19d08b4f22eae45bb018b9f06e2838c1e4b853c67628ef8ae126d99de0da6395"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:d693307856d1ef08041e8b6ff01d5b4618715007d288490ce2c7e29013c12b9a"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:fad6daaed41021934917f4fb03ca2db8d8a4d79bf89b17ebe77228eb6710c003"}, - {file = "multidict-6.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c10d17371bff801af0daf8b073c30b6cf14215784dc08cd5c43ab5b7b8029bbc"}, - {file = "multidict-6.4.4-cp39-cp39-win32.whl", hash = "sha256:7e23f2f841fcb3ebd4724a40032d32e0892fbba4143e43d2a9e7695c5e50e6bd"}, - {file = "multidict-6.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d7b50b673ffb4ff4366e7ab43cf1f0aef4bd3608735c5fbdf0bdb6f690da411"}, - {file = "multidict-6.4.4-py3-none-any.whl", hash = "sha256:bd4557071b561a8b3b6075c3ce93cf9bfb6182cb241805c3d66ced3b75eff4ac"}, - {file = "multidict-6.4.4.tar.gz", hash = "sha256:69ee9e6ba214b5245031b76233dd95408a0fd57fdb019ddcc1ead4790932a8e8"}, + {file = "multidict-6.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7b7d75cb5b90fa55700edbbdca12cd31f6b19c919e98712933c7a1c3c6c71b73"}, + {file = "multidict-6.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad32e43e028276612bf5bab762677e7d131d2df00106b53de2efb2b8a28d5bce"}, + {file = "multidict-6.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0499cbc67c1b02ba333781798560c5b1e7cd03e9273b678c92c6de1b1657fac9"}, + {file = "multidict-6.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c78fc6bc1dd7a139dab7ee9046f79a2082dce9360e3899b762615d564e2e857"}, + {file = "multidict-6.5.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f369d6619b24da4df4a02455fea8641fe8324fc0100a3e0dcebc5bf55fa903f3"}, + {file = "multidict-6.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:719af50a44ce9cf9ab15d829bf8cf146de486b4816284c17c3c9b9c9735abb8f"}, + {file = "multidict-6.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:199a0a9b3de8bbeb6881460d32b857dc7abec94448aeb6d607c336628c53580a"}, + {file = "multidict-6.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fe09318a28b00c6f43180d0d889df1535e98fb2d93d25955d46945f8d5410d87"}, + {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab94923ae54385ed480e4ab19f10269ee60f3eabd0b35e2a5d1ba6dbf3b0cc27"}, + {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:de2b253a3a90e1fa55eef5f9b3146bb5c722bd3400747112c9963404a2f5b9cf"}, + {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b3bd88c1bc1f749db6a1e1f01696c3498bc25596136eceebb45766d24a320b27"}, + {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0ce8f0ea49e8f54203f7d80e083a7aa017dbcb6f2d76d674273e25144c8aa3d7"}, + {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dc62c8ac1b73ec704ed1a05be0267358fd5c99d1952f30448db1637336635cf8"}, + {file = "multidict-6.5.1-cp310-cp310-win32.whl", hash = "sha256:7a365a579fb3e067943d0278474e14c2244c252f460b401ccbf49f962e7b70fa"}, + {file = "multidict-6.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:4b299a2ffed33ad0733a9d47805b538d59465f8439bfea44df542cfb285c4db2"}, + {file = "multidict-6.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:ed98ac527278372251fbc8f5c6c41bdf64ded1db0e6e86f9b9622744306060f6"}, + {file = "multidict-6.5.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:153d7ff738d9b67b94418b112dc5a662d89d2fc26846a9e942f039089048c804"}, + {file = "multidict-6.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1d784c0a1974f00d87f632d0fb6b1078baf7e15d2d2d1408af92f54d120f136e"}, + {file = "multidict-6.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dedf667cded1cdac5bfd3f3c2ff30010f484faccae4e871cc8a9316d2dc27363"}, + {file = "multidict-6.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cbf407313236a79ce9b8af11808c29756cfb9c9a49a7f24bb1324537eec174b"}, + {file = "multidict-6.5.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2bf0068fe9abb0ebed1436a4e415117386951cf598eb8146ded4baf8e1ff6d1e"}, + {file = "multidict-6.5.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:195882f2f6272dacc88194ecd4de3608ad0ee29b161e541403b781a5f5dd346f"}, + {file = "multidict-6.5.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5776f9d2c3a1053f022f744af5f467c2f65b40d4cc00082bcf70e8c462c7dbad"}, + {file = "multidict-6.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a266373c604e49552d295d9f8ec4fd59bd364f2dd73eb18e7d36d5533b88f45"}, + {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:79101d58094419b6e8d07e24946eba440136b9095590271cd6ccc4a90674a57d"}, + {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:62eb76be8c20d9017a82b74965db93ddcf472b929b6b2b78c56972c73bacf2e4"}, + {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:70c742357dd6207be30922207f8d59c91e2776ddbefa23830c55c09020e59f8a"}, + {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:29eff1c9a905e298e9cd29f856f77485e58e59355f0ee323ac748203e002bbd3"}, + {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:090e0b37fde199b58ea050c472c21dc8a3fbf285f42b862fe1ff02aab8942239"}, + {file = "multidict-6.5.1-cp311-cp311-win32.whl", hash = "sha256:6037beca8cb481307fb586ee0b73fae976a3e00d8f6ad7eb8af94a878a4893f0"}, + {file = "multidict-6.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:b632c1e4a2ff0bb4c1367d6c23871aa95dbd616bf4a847034732a142bb6eea94"}, + {file = "multidict-6.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:2ec3aa63f0c668f591d43195f8e555f803826dee34208c29ade9d63355f9e095"}, + {file = "multidict-6.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:48f95fe064f63d9601ef7a3dce2fc2a437d5fcc11bca960bc8be720330b13b6a"}, + {file = "multidict-6.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b7b6e1ce9b61f721417c68eeeb37599b769f3b631e6b25c21f50f8f619420b9"}, + {file = "multidict-6.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8b83b055889bda09fc866c0a652cdb6c36eeeafc2858259c9a7171fe82df5773"}, + {file = "multidict-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7bd4d655dc460c7aebb73b58ed1c074e85f7286105b012556cf0f25c6d1dba3"}, + {file = "multidict-6.5.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aa6dcf25ced31cdce10f004506dbc26129f28a911b32ed10e54453a0842a6173"}, + {file = "multidict-6.5.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:059fb556c3e6ce1a168496f92ef139ad839a47f898eaa512b1d43e5e05d78c6b"}, + {file = "multidict-6.5.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f97680c839dd9fa208e9584b1c2a5f1224bd01d31961f7f7d94984408c4a6b9e"}, + {file = "multidict-6.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7710c716243525cc05cd038c6e09f1807ee0fef2510a6e484450712c389c8d7f"}, + {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:83eb172b4856ffff2814bdcf9c7792c0439302faab1b31376817b067b26cd8f5"}, + {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:562d4714fa43f6ebc043a657535e4575e7d6141a818c9b3055f0868d29a1a41b"}, + {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2d7def2fc47695c46a427b8f298fb5ace03d635c1fb17f30d6192c9a8fb69e70"}, + {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:77bc8ab5c6bfe696eff564824e73a451fdeca22f3b960261750836cee02bcbfa"}, + {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9eec51891d3c210948ead894ec1483d48748abec08db5ce9af52cc13fef37aee"}, + {file = "multidict-6.5.1-cp312-cp312-win32.whl", hash = "sha256:189f0c2bd1c0ae5509e453707d0e187e030c9e873a0116d1f32d1c870d0fc347"}, + {file = "multidict-6.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:e81f23b4b6f2a588f15d5cb554b2d8b482bb6044223d64b86bc7079cae9ebaad"}, + {file = "multidict-6.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:79d13e06d5241f9c8479dfeaf0f7cce8f453a4a302c9a0b1fa9b1a6869ff7757"}, + {file = "multidict-6.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:98011312f36d1e496f15454a95578d1212bc2ffc25650a8484752b06d304fd9b"}, + {file = "multidict-6.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bae589fb902b47bd94e6f539b34eefe55a1736099f616f614ec1544a43f95b05"}, + {file = "multidict-6.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6eb3bf26cd94eb306e4bc776d0964cc67a7967e4ad9299309f0ff5beec3c62be"}, + {file = "multidict-6.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e5e1a5a99c72d1531501406fcc06b6bf699ebd079dacd6807bb43fc0ff260e5c"}, + {file = "multidict-6.5.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:38755bcba18720cb2338bea23a5afcff234445ee75fa11518f6130e22f2ab970"}, + {file = "multidict-6.5.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f42fef9bcba3c32fd4e4a23c5757fc807d218b249573aaffa8634879f95feb73"}, + {file = "multidict-6.5.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:071b962f4cc87469cda90c7cc1c077b76496878b39851d7417a3d994e27fe2c6"}, + {file = "multidict-6.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:627ba4b7ce7c0115981f0fd91921f5d101dfb9972622178aeef84ccce1c2bbf3"}, + {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05dcaed3e5e54f0d0f99a39762b0195274b75016cbf246f600900305581cf1a2"}, + {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:11f5ecf3e741a18c578d118ad257c5588ca33cc7c46d51c0487d7ae76f072c32"}, + {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b948eb625411c20b15088fca862c51a39140b9cf7875b5fb47a72bb249fa2f42"}, + {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc993a96dfc8300befd03d03df46efdb1d8d5a46911b014e956a4443035f470d"}, + {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee2d333380f22d35a56c6461f4579cfe186e143cd0b010b9524ac027de2a34cd"}, + {file = "multidict-6.5.1-cp313-cp313-win32.whl", hash = "sha256:5891e3327e6a426ddd443c87339b967c84feb8c022dd425e0c025fa0fcd71e68"}, + {file = "multidict-6.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:fcdaa72261bff25fad93e7cb9bd7112bd4bac209148e698e380426489d8ed8a9"}, + {file = "multidict-6.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:84292145303f354a35558e601c665cdf87059d87b12777417e2e57ba3eb98903"}, + {file = "multidict-6.5.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f8316e58db799a1972afbc46770dfaaf20b0847003ab80de6fcb9861194faa3f"}, + {file = "multidict-6.5.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3468f0db187aca59eb56e0aa9f7c8c5427bcb844ad1c86557b4886aeb4484d8"}, + {file = "multidict-6.5.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:228533a5f99f1248cd79f6470779c424d63bc3e10d47c82511c65cc294458445"}, + {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527076fdf5854901b1246c589af9a8a18b4a308375acb0020b585f696a10c794"}, + {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9a17a17bad5c22f43e6a6b285dd9c16b1e8f8428202cd9bc22adaac68d0bbfed"}, + {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:efd1951edab4a6cb65108d411867811f2b283f4b972337fb4269e40142f7f6a6"}, + {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c07d5f38b39acb4f8f61a7aa4166d140ed628245ff0441630df15340532e3b3c"}, + {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a6605dc74cd333be279e1fcb568ea24f7bdf1cf09f83a77360ce4dd32d67f14"}, + {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d64e30ae9ba66ce303a567548a06d64455d97c5dff7052fe428d154274d7174"}, + {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2fb5dde79a7f6d98ac5e26a4c9de77ccd2c5224a7ce89aeac6d99df7bbe06464"}, + {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:8a0d22e8b07cf620e9aeb1582340d00f0031e6a1f3e39d9c2dcbefa8691443b4"}, + {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0120ed5cff2082c7a0ed62a8f80f4f6ac266010c722381816462f279bfa19487"}, + {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3dea06ba27401c4b54317aa04791182dc9295e7aa623732dd459071a0e0f65db"}, + {file = "multidict-6.5.1-cp313-cp313t-win32.whl", hash = "sha256:93b21be44f3cfee3be68ed5cd8848a3c0420d76dbd12d74f7776bde6b29e5f33"}, + {file = "multidict-6.5.1-cp313-cp313t-win_amd64.whl", hash = "sha256:c5c18f8646a520cc34d00f65f9f6f77782b8a8c59fd8de10713e0de7f470b5d0"}, + {file = "multidict-6.5.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eb27128141474a1d545f0531b496c7c2f1c4beff50cb5a828f36eb62fef16c67"}, + {file = "multidict-6.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:279a37cb9d04097bf1c6308d7495cb4dfbd8fb538301bfe464266b045dfeb1cd"}, + {file = "multidict-6.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e63ac6adc668cfe52e29c00afe33c3b8dbec8e37b529aa83bf31ba4bad0c509"}, + {file = "multidict-6.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:36b138c6ec3aedaa975653ea90099efb22042bab31727dd4cd2921a64de46b25"}, + {file = "multidict-6.5.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:576a1887a5c5becbe4fb484d0bdf6ed8ec89e9c11770f8f3214fd127ba137b8b"}, + {file = "multidict-6.5.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a0f1890f9a05d038720a7c3b5d82467534495bcb6bbda929f6f0914977cc56d1"}, + {file = "multidict-6.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5125a9faed98738d7d6e23650bd8af70abb95628d011f57f70a4d8f349e6d073"}, + {file = "multidict-6.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e09d7852100bcc3e466e63478ee18c68cc4d2ca2a978f29b90d5e2ea814f7b3e"}, + {file = "multidict-6.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e615032b684a1d6faffe41d64cd896801bd3f2c1b642355e9b5d11fd8d40223e"}, + {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70c0e51d55f9bc5e97de950c3b3e88f501b3ca2b3894f231f3957dd3985b4d54"}, + {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a6523258f2eb24c91995ae64172c19cd73bacd5a7f2b0733676966c527ab08f8"}, + {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5e8fefd7c062b0657af2480d789dcb347450d17c7bd20b02303c25f1f59a33a7"}, + {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3d749b10cc6acb2c0814df881910ffd8d8ab1ec54493585579b4a75f89fe86d6"}, + {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22b47f7e76ebea0b802df9ed08165b1e6ab52b140c7180c3e740e6205b3781b3"}, + {file = "multidict-6.5.1-cp39-cp39-win32.whl", hash = "sha256:cc80c7e8f297484c4511e887c244adec9a7ed3a76826cb8dbc6183b717a37d1f"}, + {file = "multidict-6.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:253e5c41fcc02e2956ab276b5a702f3972db1e87c080be55e87ca31a2f4f8012"}, + {file = "multidict-6.5.1-cp39-cp39-win_arm64.whl", hash = "sha256:a9e15dfe441aec31e0fa78f497aca83f0ad992ca58782cbaba8220e5a87608fc"}, + {file = "multidict-6.5.1-py3-none-any.whl", hash = "sha256:895354f4a38f53a1df2cc3fa2223fa714cff2b079a9f018a76cad35e7f0f044c"}, + {file = "multidict-6.5.1.tar.gz", hash = "sha256:a835ea8103f4723915d7d621529c80ef48db48ae0c818afcabe0f95aa1febc3a"}, ] [package.dependencies] @@ -1920,129 +1923,129 @@ virtualenv = ">=20.10.0" [[package]] name = "propcache" -version = "0.3.1" +version = "0.3.2" description = "Accelerated property cache" optional = false python-versions = ">=3.9" files = [ - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, - {file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"}, - {file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"}, - {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"}, - {file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"}, - {file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"}, - {file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"}, - {file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"}, - {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"}, - {file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"}, - {file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"}, - {file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"}, - {file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"}, - {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"}, - {file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"}, - {file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"}, - {file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"}, - {file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"}, - {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"}, - {file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"}, - {file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"}, - {file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"}, - {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"}, - {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"}, - {file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"}, - {file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"}, - {file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"}, - {file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"}, - {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"}, - {file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"}, - {file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"}, - {file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"}, - {file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"}, + {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:22d9962a358aedbb7a2e36187ff273adeaab9743373a272976d2e348d08c7770"}, + {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d0fda578d1dc3f77b6b5a5dce3b9ad69a8250a891760a548df850a5e8da87f3"}, + {file = "propcache-0.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3def3da3ac3ce41562d85db655d18ebac740cb3fa4367f11a52b3da9d03a5cc3"}, + {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bec58347a5a6cebf239daba9bda37dffec5b8d2ce004d9fe4edef3d2815137e"}, + {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55ffda449a507e9fbd4aca1a7d9aa6753b07d6166140e5a18d2ac9bc49eac220"}, + {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a67fb39229a8a8491dd42f864e5e263155e729c2e7ff723d6e25f596b1e8cb"}, + {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da1cf97b92b51253d5b68cf5a2b9e0dafca095e36b7f2da335e27dc6172a614"}, + {file = "propcache-0.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f559e127134b07425134b4065be45b166183fdcb433cb6c24c8e4149056ad50"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aff2e4e06435d61f11a428360a932138d0ec288b0a31dd9bd78d200bd4a2b339"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4927842833830942a5d0a56e6f4839bc484785b8e1ce8d287359794818633ba0"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6107ddd08b02654a30fb8ad7a132021759d750a82578b94cd55ee2772b6ebea2"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:70bd8b9cd6b519e12859c99f3fc9a93f375ebd22a50296c3a295028bea73b9e7"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2183111651d710d3097338dd1893fcf09c9f54e27ff1a8795495a16a469cc90b"}, + {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fb075ad271405dcad8e2a7ffc9a750a3bf70e533bd86e89f0603e607b93aa64c"}, + {file = "propcache-0.3.2-cp310-cp310-win32.whl", hash = "sha256:404d70768080d3d3bdb41d0771037da19d8340d50b08e104ca0e7f9ce55fce70"}, + {file = "propcache-0.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:7435d766f978b4ede777002e6b3b6641dd229cd1da8d3d3106a45770365f9ad9"}, + {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b8d2f607bd8f80ddc04088bc2a037fdd17884a6fcadc47a96e334d72f3717be"}, + {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06766d8f34733416e2e34f46fea488ad5d60726bb9481d3cddf89a6fa2d9603f"}, + {file = "propcache-0.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2dc1f4a1df4fecf4e6f68013575ff4af84ef6f478fe5344317a65d38a8e6dc9"}, + {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be29c4f4810c5789cf10ddf6af80b041c724e629fa51e308a7a0fb19ed1ef7bf"}, + {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59d61f6970ecbd8ff2e9360304d5c8876a6abd4530cb752c06586849ac8a9dc9"}, + {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62180e0b8dbb6b004baec00a7983e4cc52f5ada9cd11f48c3528d8cfa7b96a66"}, + {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c144ca294a204c470f18cf4c9d78887810d04a3e2fbb30eea903575a779159df"}, + {file = "propcache-0.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5c2a784234c28854878d68978265617aa6dc0780e53d44b4d67f3651a17a9a2"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5745bc7acdafa978ca1642891b82c19238eadc78ba2aaa293c6863b304e552d7"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c0075bf773d66fa8c9d41f66cc132ecc75e5bb9dd7cce3cfd14adc5ca184cb95"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5f57aa0847730daceff0497f417c9de353c575d8da3579162cc74ac294c5369e"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:eef914c014bf72d18efb55619447e0aecd5fb7c2e3fa7441e2e5d6099bddff7e"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2a4092e8549031e82facf3decdbc0883755d5bbcc62d3aea9d9e185549936dcf"}, + {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:85871b050f174bc0bfb437efbdb68aaf860611953ed12418e4361bc9c392749e"}, + {file = "propcache-0.3.2-cp311-cp311-win32.whl", hash = "sha256:36c8d9b673ec57900c3554264e630d45980fd302458e4ac801802a7fd2ef7897"}, + {file = "propcache-0.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53af8cb6a781b02d2ea079b5b853ba9430fcbe18a8e3ce647d5982a3ff69f39"}, + {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10"}, + {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154"}, + {file = "propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615"}, + {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db"}, + {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1"}, + {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c"}, + {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67"}, + {file = "propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06"}, + {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1"}, + {file = "propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1"}, + {file = "propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c"}, + {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945"}, + {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252"}, + {file = "propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f"}, + {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33"}, + {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e"}, + {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1"}, + {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3"}, + {file = "propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206"}, + {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43"}, + {file = "propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02"}, + {file = "propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05"}, + {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b"}, + {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0"}, + {file = "propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e"}, + {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28"}, + {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a"}, + {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c"}, + {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725"}, + {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770"}, + {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330"}, + {file = "propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394"}, + {file = "propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198"}, + {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7fad897f14d92086d6b03fdd2eb844777b0c4d7ec5e3bac0fbae2ab0602bbe5"}, + {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1f43837d4ca000243fd7fd6301947d7cb93360d03cd08369969450cc6b2ce3b4"}, + {file = "propcache-0.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:261df2e9474a5949c46e962065d88eb9b96ce0f2bd30e9d3136bcde84befd8f2"}, + {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e514326b79e51f0a177daab1052bc164d9d9e54133797a3a58d24c9c87a3fe6d"}, + {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a996adb6904f85894570301939afeee65f072b4fd265ed7e569e8d9058e4ec"}, + {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76cace5d6b2a54e55b137669b30f31aa15977eeed390c7cbfb1dafa8dfe9a701"}, + {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31248e44b81d59d6addbb182c4720f90b44e1efdc19f58112a3c3a1615fb47ef"}, + {file = "propcache-0.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb7fa19dbf88d3857363e0493b999b8011eea856b846305d8c0512dfdf8fbb1"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d81ac3ae39d38588ad0549e321e6f773a4e7cc68e7751524a22885d5bbadf886"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:cc2782eb0f7a16462285b6f8394bbbd0e1ee5f928034e941ffc444012224171b"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:db429c19a6c7e8a1c320e6a13c99799450f411b02251fb1b75e6217cf4a14fcb"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:21d8759141a9e00a681d35a1f160892a36fb6caa715ba0b832f7747da48fb6ea"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2ca6d378f09adb13837614ad2754fa8afaee330254f404299611bce41a8438cb"}, + {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:34a624af06c048946709f4278b4176470073deda88d91342665d95f7c6270fbe"}, + {file = "propcache-0.3.2-cp39-cp39-win32.whl", hash = "sha256:4ba3fef1c30f306b1c274ce0b8baaa2c3cdd91f645c48f06394068f37d3837a1"}, + {file = "propcache-0.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:7a2368eed65fc69a7a7a40b27f22e85e7627b74216f0846b04ba5c116e191ec9"}, + {file = "propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f"}, + {file = "propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168"}, ] [[package]] name = "protobuf" -version = "5.29.4" +version = "5.29.5" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7"}, - {file = "protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d"}, - {file = "protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922"}, - {file = "protobuf-5.29.4-cp38-cp38-win32.whl", hash = "sha256:1832f0515b62d12d8e6ffc078d7e9eb06969aa6dc13c13e1036e39d73bebc2de"}, - {file = "protobuf-5.29.4-cp38-cp38-win_amd64.whl", hash = "sha256:476cb7b14914c780605a8cf62e38c2a85f8caff2e28a6a0bad827ec7d6c85d68"}, - {file = "protobuf-5.29.4-cp39-cp39-win32.whl", hash = "sha256:fd32223020cb25a2cc100366f1dedc904e2d71d9322403224cdde5fdced0dabe"}, - {file = "protobuf-5.29.4-cp39-cp39-win_amd64.whl", hash = "sha256:678974e1e3a9b975b8bc2447fca458db5f93a2fb6b0c8db46b6675b5b5346812"}, - {file = "protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862"}, - {file = "protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99"}, + {file = "protobuf-5.29.5-cp310-abi3-win32.whl", hash = "sha256:3f1c6468a2cfd102ff4703976138844f78ebd1fb45f49011afc5139e9e283079"}, + {file = "protobuf-5.29.5-cp310-abi3-win_amd64.whl", hash = "sha256:3f76e3a3675b4a4d867b52e4a5f5b78a2ef9565549d4037e06cf7b0942b1d3fc"}, + {file = "protobuf-5.29.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e38c5add5a311f2a6eb0340716ef9b039c1dfa428b28f25a7838ac329204a671"}, + {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:fa18533a299d7ab6c55a238bf8629311439995f2e7eca5caaff08663606e9015"}, + {file = "protobuf-5.29.5-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:63848923da3325e1bf7e9003d680ce6e14b07e55d0473253a690c3a8b8fd6e61"}, + {file = "protobuf-5.29.5-cp38-cp38-win32.whl", hash = "sha256:ef91363ad4faba7b25d844ef1ada59ff1604184c0bcd8b39b8a6bef15e1af238"}, + {file = "protobuf-5.29.5-cp38-cp38-win_amd64.whl", hash = "sha256:7318608d56b6402d2ea7704ff1e1e4597bee46d760e7e4dd42a3d45e24b87f2e"}, + {file = "protobuf-5.29.5-cp39-cp39-win32.whl", hash = "sha256:6f642dc9a61782fa72b90878af134c5afe1917c89a568cd3476d758d3c3a0736"}, + {file = "protobuf-5.29.5-cp39-cp39-win_amd64.whl", hash = "sha256:470f3af547ef17847a28e1f47200a1cbf0ba3ff57b7de50d22776607cd2ea353"}, + {file = "protobuf-5.29.5-py3-none-any.whl", hash = "sha256:6cf42630262c59b2d8de33954443d94b746c952b01434fc58a417fdbd2e84bd5"}, + {file = "protobuf-5.29.5.tar.gz", hash = "sha256:bc1463bafd4b0929216c35f437a8e28731a2b7fe3d98bb77a600efced5a15c84"}, ] [[package]] @@ -2119,13 +2122,13 @@ files = [ [[package]] name = "pydantic" -version = "2.11.4" +version = "2.11.7" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" files = [ - {file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"}, - {file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"}, + {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, + {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, ] [package.dependencies] @@ -2262,13 +2265,13 @@ files = [ [[package]] name = "pygments" -version = "2.19.1" +version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [package.extras] @@ -2276,25 +2279,26 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pytest" -version = "8.3.5" +version = "8.4.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, - {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, + {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, + {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} +iniconfig = ">=1" +packaging = ">=20" pluggy = ">=1.5,<2" +pygments = ">=2.7.2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-aioresponses" @@ -2313,18 +2317,17 @@ pytest = ">=3.5.0" [[package]] name = "pytest-asyncio" -version = "0.26.0" +version = "1.0.0" description = "Pytest support for asyncio" optional = false python-versions = ">=3.9" files = [ - {file = "pytest_asyncio-0.26.0-py3-none-any.whl", hash = "sha256:7b51ed894f4fbea1340262bdae5135797ebbe21d8638978e35d31c6d19f72fb0"}, - {file = "pytest_asyncio-0.26.0.tar.gz", hash = "sha256:c4df2a697648241ff39e7f0e4a73050b03f123f760673956cf0d72a4990e312f"}, + {file = "pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3"}, + {file = "pytest_asyncio-1.0.0.tar.gz", hash = "sha256:d15463d13f4456e1ead2594520216b225a16f781e144f8fdf6c5bb4667c48b3f"}, ] [package.dependencies] pytest = ">=8.2,<9" -typing-extensions = {version = ">=4.12", markers = "python_version < \"3.10\""} [package.extras] docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] @@ -2332,18 +2335,19 @@ testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] name = "pytest-cov" -version = "6.1.1" +version = "6.2.1" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.9" files = [ - {file = "pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde"}, - {file = "pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a"}, + {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, + {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, ] [package.dependencies] coverage = {version = ">=7.5", extras = ["toml"]} -pytest = ">=4.6" +pluggy = ">=1.2" +pytest = ">=6.2.5" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] @@ -2364,13 +2368,13 @@ pytest = ">=3.6.0" [[package]] name = "python-dotenv" -version = "1.1.0" +version = "1.1.1" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false python-versions = ">=3.9" files = [ - {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, - {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, + {file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"}, + {file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"}, ] [package.extras] @@ -2579,18 +2583,18 @@ files = [ [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -2637,23 +2641,33 @@ test = ["hypothesis (>=6.22.0,<6.108.7)", "pytest (>=7.0.0)", "pytest-xdist (>=2 [[package]] name = "safe-pysha3" -version = "1.0.4" -description = "SHA-3 (Keccak) for Python 3.9 - 3.11" +version = "1.0.5" +description = "SHA-3 (Keccak) for Python 3.9 - 3.13" optional = false python-versions = "*" files = [ - {file = "safe-pysha3-1.0.4.tar.gz", hash = "sha256:e429146b1edd198b2ca934a2046a65656c5d31b0ec894bbd6055127f4deaff17"}, + {file = "safe_pysha3-1.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3d15b9b8e25c47dcf68857660b48c7bfb540b8aaaa4158651402f19ef047dff7"}, + {file = "safe_pysha3-1.0.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dbdc2f048fa48b660d26eb6eb897eec4e250d01219ae20cf5b1f8f8682194a41"}, + {file = "safe_pysha3-1.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4505f4b3ce327a8b02299e48b55c32094ed15c63f83e8d9477ebe91e8777fc8f"}, + {file = "safe_pysha3-1.0.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4048005b764861f36eed98a83fb04268c972b6100fe530303999ff6fce744e64"}, + {file = "safe_pysha3-1.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d137a73029c6c5a1db5791ae9fa62373827eee5226d19b79b836a6cf48b6b197"}, + {file = "safe_pysha3-1.0.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0cb37252a8767992f354d7d2af2ef04730032927eb6af2057e71744c741287"}, + {file = "safe_pysha3-1.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2019065f1b7d3db37cc52d091c9d5526d5d36a3e1b9efcf0b345c24e03755bff"}, + {file = "safe_pysha3-1.0.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa37d5d6138d5dd01d1035dba019b7525ad7c55669ded4524f589cddd13ea13b"}, + {file = "safe_pysha3-1.0.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457ac10024e74aaaeeb373a6601ed06dff2b28ea66061ee8029a2a496703c6f7"}, + {file = "safe_pysha3-1.0.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c8659d086c981eab422fe957bc6476cefdf6e93efed5599a3826d78f1a60f789"}, + {file = "safe_pysha3-1.0.5.tar.gz", hash = "sha256:88ceaad6af4b6bdecd2f54b31ad0e5e5e210d4f5ecabb1bd1fd3539ad61b7bf1"}, ] [[package]] name = "setuptools" -version = "80.8.0" +version = "80.9.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.9" files = [ - {file = "setuptools-80.8.0-py3-none-any.whl", hash = "sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0"}, - {file = "setuptools-80.8.0.tar.gz", hash = "sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257"}, + {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, + {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, ] [package.extras] @@ -2741,13 +2755,13 @@ files = [ [[package]] name = "types-requests" -version = "2.32.0.20250515" +version = "2.32.4.20250611" description = "Typing stubs for requests" optional = false python-versions = ">=3.9" files = [ - {file = "types_requests-2.32.0.20250515-py3-none-any.whl", hash = "sha256:f8eba93b3a892beee32643ff836993f15a785816acca21ea0ffa006f05ef0fb2"}, - {file = "types_requests-2.32.0.20250515.tar.gz", hash = "sha256:09c8b63c11318cb2460813871aaa48b671002e59fda67ca909e9883777787581"}, + {file = "types_requests-2.32.4.20250611-py3-none-any.whl", hash = "sha256:ad2fe5d3b0cb3c2c902c8815a70e7fb2302c4b8c1f77bdcd738192cdb3878072"}, + {file = "types_requests-2.32.4.20250611.tar.gz", hash = "sha256:741c8777ed6425830bf51e54d6abe245f79b4dcb9019f1622b773463946bf826"}, ] [package.dependencies] @@ -2755,24 +2769,24 @@ urllib3 = ">=2" [[package]] name = "typing-extensions" -version = "4.13.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +version = "4.14.0" +description = "Backported and Experimental Type Hints for Python 3.9+" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, - {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, + {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, + {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, ] [[package]] name = "typing-inspection" -version = "0.4.0" +version = "0.4.1" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" files = [ - {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, - {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, + {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, + {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, ] [package.dependencies] @@ -2780,13 +2794,13 @@ typing-extensions = ">=4.12.0" [[package]] name = "urllib3" -version = "2.4.0" +version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" files = [ - {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, - {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] @@ -2817,13 +2831,13 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "web3" -version = "7.11.1" +version = "7.12.0" description = "web3: A Python library for interacting with Ethereum" optional = false python-versions = "<4,>=3.8" files = [ - {file = "web3-7.11.1-py3-none-any.whl", hash = "sha256:37c3df8c8b48376e5708ab831e20ae1f0ea4cf2ccd16ff0d8aca3e33bfd9bceb"}, - {file = "web3-7.11.1.tar.gz", hash = "sha256:1b23f323cb939c3c9c16a92228d1a62f109fed026089b0d8ce5829eca26031a3"}, + {file = "web3-7.12.0-py3-none-any.whl", hash = "sha256:c7e2b9c1db5a379ef53b45fe8a19bdc2d47ad262039fbf6675794bc40f74bf06"}, + {file = "web3-7.12.0.tar.gz", hash = "sha256:08fbe79a2e2503c9820132ebad24ba0372831588cabac5f467999c97ace7dda3"}, ] [package.dependencies] @@ -2843,8 +2857,8 @@ typing-extensions = ">=4.0.1" websockets = ">=10.0.0,<16.0.0" [package.extras] -dev = ["build (>=0.9.0)", "bump-my-version (>=0.19.0)", "eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "setuptools (>=38.6.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "tqdm (>4.32)", "twine (>=1.13)", "wheel"] -docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-rtd-theme (>=1.0.0)", "towncrier (>=24,<25)"] +dev = ["build (>=0.9.0)", "bump_my_version (>=0.19.0)", "eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "ipython", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "setuptools (>=38.6.0)", "sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)", "tox (>=4.0.0)", "tqdm (>4.32)", "twine (>=1.13)", "wheel"] +docs = ["sphinx (>=6.0.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx_rtd_theme (>=1.0.0)", "towncrier (>=24,<25)"] test = ["eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "flaky (>=3.7.0)", "hypothesis (>=3.31.2)", "mypy (==1.10.0)", "pre-commit (>=3.4.0)", "py-geth (>=5.1.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.18.1,<0.23)", "pytest-mock (>=1.10)", "pytest-xdist (>=2.4.0)", "tox (>=4.0.0)"] tester = ["eth-tester[py-evm] (>=0.13.0b1,<0.14.0b1)", "py-geth (>=5.1.0)"] @@ -2928,115 +2942,115 @@ files = [ [[package]] name = "yarl" -version = "1.20.0" +version = "1.20.1" description = "Yet another URL library" optional = false python-versions = ">=3.9" files = [ - {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1f6670b9ae3daedb325fa55fbe31c22c8228f6e0b513772c2e1c623caa6ab22"}, - {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85a231fa250dfa3308f3c7896cc007a47bc76e9e8e8595c20b7426cac4884c62"}, - {file = "yarl-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a06701b647c9939d7019acdfa7ebbfbb78ba6aa05985bb195ad716ea759a569"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7595498d085becc8fb9203aa314b136ab0516c7abd97e7d74f7bb4eb95042abe"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af5607159085dcdb055d5678fc2d34949bd75ae6ea6b4381e784bbab1c3aa195"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95b50910e496567434cb77a577493c26bce0f31c8a305135f3bda6a2483b8e10"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b594113a301ad537766b4e16a5a6750fcbb1497dcc1bc8a4daae889e6402a634"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:083ce0393ea173cd37834eb84df15b6853b555d20c52703e21fbababa8c129d2"}, - {file = "yarl-1.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1a350a652bbbe12f666109fbddfdf049b3ff43696d18c9ab1531fbba1c977a"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fb0caeac4a164aadce342f1597297ec0ce261ec4532bbc5a9ca8da5622f53867"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d88cc43e923f324203f6ec14434fa33b85c06d18d59c167a0637164863b8e995"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e52d6ed9ea8fd3abf4031325dc714aed5afcbfa19ee4a89898d663c9976eb487"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ce360ae48a5e9961d0c730cf891d40698a82804e85f6e74658fb175207a77cb2"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:06d06c9d5b5bc3eb56542ceeba6658d31f54cf401e8468512447834856fb0e61"}, - {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c27d98f4e5c4060582f44e58309c1e55134880558f1add7a87c1bc36ecfade19"}, - {file = "yarl-1.20.0-cp310-cp310-win32.whl", hash = "sha256:f4d3fa9b9f013f7050326e165c3279e22850d02ae544ace285674cb6174b5d6d"}, - {file = "yarl-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc906b636239631d42eb8a07df8359905da02704a868983265603887ed68c076"}, - {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3"}, - {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a"}, - {file = "yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2"}, - {file = "yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4"}, - {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5"}, - {file = "yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6"}, - {file = "yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb"}, - {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f"}, - {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e"}, - {file = "yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018"}, - {file = "yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1"}, - {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b"}, - {file = "yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64"}, - {file = "yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c"}, - {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f"}, - {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3"}, - {file = "yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0"}, - {file = "yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e"}, - {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384"}, - {file = "yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62"}, - {file = "yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c"}, - {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051"}, - {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d"}, - {file = "yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5"}, - {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd"}, - {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f"}, - {file = "yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac"}, - {file = "yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe"}, - {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:119bca25e63a7725b0c9d20ac67ca6d98fa40e5a894bd5d4686010ff73397914"}, - {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:35d20fb919546995f1d8c9e41f485febd266f60e55383090010f272aca93edcc"}, - {file = "yarl-1.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:484e7a08f72683c0f160270566b4395ea5412b4359772b98659921411d32ad26"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d8a3d54a090e0fff5837cd3cc305dd8a07d3435a088ddb1f65e33b322f66a94"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f0cf05ae2d3d87a8c9022f3885ac6dea2b751aefd66a4f200e408a61ae9b7f0d"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a884b8974729e3899d9287df46f015ce53f7282d8d3340fa0ed57536b440621c"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8d8aa8dd89ffb9a831fedbcb27d00ffd9f4842107d52dc9d57e64cb34073d5c"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4e88d6c3c8672f45a30867817e4537df1bbc6f882a91581faf1f6d9f0f1b5a"}, - {file = "yarl-1.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdb77efde644d6f1ad27be8a5d67c10b7f769804fff7a966ccb1da5a4de4b656"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba5e59f14bfe8d261a654278a0f6364feef64a794bd456a8c9e823071e5061c"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:d0bf955b96ea44ad914bc792c26a0edcd71b4668b93cbcd60f5b0aeaaed06c64"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:27359776bc359ee6eaefe40cb19060238f31228799e43ebd3884e9c589e63b20"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d9c7a1dc0a26efb33e1acb56c8849bd57a693b85f44774356c92d610369efa"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:faa709b66ae0e24c8e5134033187a972d849d87ed0a12a0366bedcc6b5dc14a5"}, - {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44869ee8538208fe5d9342ed62c11cc6a7a1af1b3d0bb79bb795101b6e77f6e0"}, - {file = "yarl-1.20.0-cp39-cp39-win32.whl", hash = "sha256:b7fa0cb9fd27ffb1211cde944b41f5c67ab1c13a13ebafe470b1e206b8459da8"}, - {file = "yarl-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4fad6e5189c847820288286732075f213eabf81be4d08d6cc309912e62be5b7"}, - {file = "yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124"}, - {file = "yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307"}, + {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6032e6da6abd41e4acda34d75a816012717000fa6839f37124a47fcefc49bec4"}, + {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2c7b34d804b8cf9b214f05015c4fee2ebe7ed05cf581e7192c06555c71f4446a"}, + {file = "yarl-1.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c869f2651cc77465f6cd01d938d91a11d9ea5d798738c1dc077f3de0b5e5fed"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62915e6688eb4d180d93840cda4110995ad50c459bf931b8b3775b37c264af1e"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:41ebd28167bc6af8abb97fec1a399f412eec5fd61a3ccbe2305a18b84fb4ca73"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21242b4288a6d56f04ea193adde174b7e347ac46ce6bc84989ff7c1b1ecea84e"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bea21cdae6c7eb02ba02a475f37463abfe0a01f5d7200121b03e605d6a0439f8"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f8a891e4a22a89f5dde7862994485e19db246b70bb288d3ce73a34422e55b23"}, + {file = "yarl-1.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd803820d44c8853a109a34e3660e5a61beae12970da479cf44aa2954019bf70"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b982fa7f74c80d5c0c7b5b38f908971e513380a10fecea528091405f519b9ebb"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:33f29ecfe0330c570d997bcf1afd304377f2e48f61447f37e846a6058a4d33b2"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:835ab2cfc74d5eb4a6a528c57f05688099da41cf4957cf08cad38647e4a83b30"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:46b5e0ccf1943a9a6e766b2c2b8c732c55b34e28be57d8daa2b3c1d1d4009309"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:df47c55f7d74127d1b11251fe6397d84afdde0d53b90bedb46a23c0e534f9d24"}, + {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76d12524d05841276b0e22573f28d5fbcb67589836772ae9244d90dd7d66aa13"}, + {file = "yarl-1.20.1-cp310-cp310-win32.whl", hash = "sha256:6c4fbf6b02d70e512d7ade4b1f998f237137f1417ab07ec06358ea04f69134f8"}, + {file = "yarl-1.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:aef6c4d69554d44b7f9d923245f8ad9a707d971e6209d51279196d8e8fe1ae16"}, + {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47ee6188fea634bdfaeb2cc420f5b3b17332e6225ce88149a17c413c77ff269e"}, + {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d0f6500f69e8402d513e5eedb77a4e1818691e8f45e6b687147963514d84b44b"}, + {file = "yarl-1.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a8900a42fcdaad568de58887c7b2f602962356908eedb7628eaf6021a6e435b"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bad6d131fda8ef508b36be3ece16d0902e80b88ea7200f030a0f6c11d9e508d4"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:df018d92fe22aaebb679a7f89fe0c0f368ec497e3dda6cb81a567610f04501f1"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f969afbb0a9b63c18d0feecf0db09d164b7a44a053e78a7d05f5df163e43833"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:812303eb4aa98e302886ccda58d6b099e3576b1b9276161469c25803a8db277d"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c4a7d166635147924aa0bf9bfe8d8abad6fffa6102de9c99ea04a1376f91e8"}, + {file = "yarl-1.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12e768f966538e81e6e7550f9086a6236b16e26cd964cf4df35349970f3551cf"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe41919b9d899661c5c28a8b4b0acf704510b88f27f0934ac7a7bebdd8938d5e"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8601bc010d1d7780592f3fc1bdc6c72e2b6466ea34569778422943e1a1f3c389"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:daadbdc1f2a9033a2399c42646fbd46da7992e868a5fe9513860122d7fe7a73f"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:03aa1e041727cb438ca762628109ef1333498b122e4c76dd858d186a37cec845"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:642980ef5e0fa1de5fa96d905c7e00cb2c47cb468bfcac5a18c58e27dbf8d8d1"}, + {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:86971e2795584fe8c002356d3b97ef6c61862720eeff03db2a7c86b678d85b3e"}, + {file = "yarl-1.20.1-cp311-cp311-win32.whl", hash = "sha256:597f40615b8d25812f14562699e287f0dcc035d25eb74da72cae043bb884d773"}, + {file = "yarl-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:26ef53a9e726e61e9cd1cda6b478f17e350fb5800b4bd1cd9fe81c4d91cfeb2e"}, + {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9"}, + {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a"}, + {file = "yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd"}, + {file = "yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a"}, + {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004"}, + {file = "yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5"}, + {file = "yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698"}, + {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a"}, + {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3"}, + {file = "yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5"}, + {file = "yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b"}, + {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1"}, + {file = "yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7"}, + {file = "yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c"}, + {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d"}, + {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf"}, + {file = "yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3"}, + {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458"}, + {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e"}, + {file = "yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d"}, + {file = "yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f"}, + {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e42ba79e2efb6845ebab49c7bf20306c4edf74a0b20fc6b2ccdd1a219d12fad3"}, + {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:41493b9b7c312ac448b7f0a42a089dffe1d6e6e981a2d76205801a023ed26a2b"}, + {file = "yarl-1.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f5a5928ff5eb13408c62a968ac90d43f8322fd56d87008b8f9dabf3c0f6ee983"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30c41ad5d717b3961b2dd785593b67d386b73feca30522048d37298fee981805"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:59febc3969b0781682b469d4aca1a5cab7505a4f7b85acf6db01fa500fa3f6ba"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d2b6fb3622b7e5bf7a6e5b679a69326b4279e805ed1699d749739a61d242449e"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:749d73611db8d26a6281086f859ea7ec08f9c4c56cec864e52028c8b328db723"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9427925776096e664c39e131447aa20ec738bdd77c049c48ea5200db2237e000"}, + {file = "yarl-1.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff70f32aa316393eaf8222d518ce9118148eddb8a53073c2403863b41033eed5"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c7ddf7a09f38667aea38801da8b8d6bfe81df767d9dfc8c88eb45827b195cd1c"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:57edc88517d7fc62b174fcfb2e939fbc486a68315d648d7e74d07fac42cec240"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dab096ce479d5894d62c26ff4f699ec9072269d514b4edd630a393223f45a0ee"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14a85f3bd2d7bb255be7183e5d7d6e70add151a98edf56a770d6140f5d5f4010"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c89b5c792685dd9cd3fa9761c1b9f46fc240c2a3265483acc1565769996a3f8"}, + {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:69e9b141de5511021942a6866990aea6d111c9042235de90e08f94cf972ca03d"}, + {file = "yarl-1.20.1-cp39-cp39-win32.whl", hash = "sha256:b5f307337819cdfdbb40193cad84978a029f847b0a357fbe49f712063cfc4f06"}, + {file = "yarl-1.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:eae7bfe2069f9c1c5b05fc7fe5d612e5bbc089a39309904ee8b829e322dcad00"}, + {file = "yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77"}, + {file = "yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac"}, ] [package.dependencies] @@ -3046,13 +3060,13 @@ propcache = ">=0.2.1" [[package]] name = "zipp" -version = "3.21.0" +version = "3.23.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" files = [ - {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, - {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, + {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, + {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, ] [package.extras] @@ -3060,10 +3074,10 @@ check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] -test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] type = ["pytest-mypy"] [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "968fa5fac500b8b371153f169ec301f38fe1e4f9a1ab670b949e5427340d8c63" +python-versions = "^3.10" +content-hash = "4a575116f85a39017f7299bbd777f5ee2efc5e1e0a667685fb0da49c48c154ac" diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index d4731fed..ea926a11 100644 --- a/pyinjective/core/token.py +++ b/pyinjective/core/token.py @@ -25,6 +25,6 @@ def convert_value_from_extended_decimal_format(value: Decimal) -> Decimal: def chain_formatted_value(self, human_readable_value: Decimal) -> Decimal: return human_readable_value * Decimal(f"1e{self.decimals}") - + def human_readable_value(self, chain_formatted_value: Decimal) -> Decimal: return chain_formatted_value / Decimal(f"1e{self.decimals}") diff --git a/pyproject.toml b/pyproject.toml index 4a495bda..d0d4ff10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ include = [ ] [tool.poetry.dependencies] -python = "^3.9" +python = "^3.10" aiohttp = "^3.9.4" # Version dependency due to https://github.com/InjectiveLabs/sdk-python/security/dependabot/18 bech32 = "*" bip32 = "*" From e8dd4917970a3a6edfaf304cf67a7f873ea98bbc Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:46:51 -0300 Subject: [PATCH 34/35] [cp-508] Added logic in Address class to create an instance from an Ethereum address --- pyinjective/wallet.py | 7 +++++++ tests/test_wallet.py | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/pyinjective/wallet.py b/pyinjective/wallet.py index b142e7df..0e321859 100644 --- a/pyinjective/wallet.py +++ b/pyinjective/wallet.py @@ -232,6 +232,13 @@ def from_cons_bech32(cls, bech: str) -> "Address": """Create an address instance from a bech32-encoded consensus address""" return cls._from_bech32(bech, BECH32_ADDR_CONS_PREFIX) + @classmethod + def from_eth_address(cls, eth_address: str) -> "Address": + """Create an address instance from a hex-encoded Ethereum address""" + eth_address_without_prefix = eth_address[2:] if eth_address.startswith("0x") else eth_address + bytes_representation = bytes.fromhex(eth_address_without_prefix) + return cls(bytes_representation) + def _to_bech32(self, prefix: str) -> str: five_bit_r = convertbits(self.addr, 8, 5) assert five_bit_r is not None, "Unsuccessful bech32.convertbits call" diff --git a/tests/test_wallet.py b/tests/test_wallet.py index a2740a97..5b62dd2a 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -28,3 +28,19 @@ def test_convert_public_key_to_address(self): expected_address = Address(hashed_value[12:]) assert expected_address == address + + +class TestAddress: + def test_from_acc_bech32(self): + address = Address.from_acc_bech32("inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r") + assert address.to_acc_bech32() == "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + eth_address = address.get_ethereum_address() + assert eth_address == "0xbdaedec95d563fb05240d6e01821008454c24c36" + + def test_from_eth(self): + address = Address.from_eth_address("0xbdaedec95d563fb05240d6e01821008454c24c36") + assert address.to_acc_bech32() == "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + eth_address = address.get_ethereum_address() + assert eth_address == "0xbdaedec95d563fb05240d6e01821008454c24c36" From 370e7a490944ea60fbb31bd83440746d426e297c Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 28 Jul 2025 15:00:45 -0300 Subject: [PATCH 35/35] [CHORE] Updated proto definitions to the v1.16 mainnet upgrade version (chain v1.16.0 and indexer v1.16.54). Updated ofac list. --- CHANGELOG.md | 2 +- Makefile | 2 +- buf.gen.yaml | 2 +- poetry.lock | 1118 +++++++++-------- .../exchange/injective_archiver_rpc_pb2.py | 98 +- .../injective_archiver_rpc_pb2_grpc.py | 44 + .../exchange/injective_megavault_rpc_pb2.py | 35 + .../injective_megavault_rpc_pb2_grpc.py | 81 ++ pyproject.toml | 2 +- 9 files changed, 799 insertions(+), 585 deletions(-) create mode 100644 pyinjective/proto/exchange/injective_megavault_rpc_pb2.py create mode 100644 pyinjective/proto/exchange/injective_megavault_rpc_pb2_grpc.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 71152633..7ad72282 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -## [Unreleased] - 9999-99-99 +## [1.11.0] - 2025-07-29 ### Added - Added support for Exchange V2 proto queries and types - Added support for ERC20 proto queries and types diff --git a/Makefile b/Makefile index ca738f93..6d7f9c7f 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ clean-all: $(call clean_repos) clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.20 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.54 --depth 1 --single-branch clone-all: clone-injective-indexer diff --git a/buf.gen.yaml b/buf.gen.yaml index 5c257132..523b8e8b 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -23,7 +23,7 @@ inputs: # branch: v0.51.x-inj # subdir: proto - git_repo: https://github.com/InjectiveLabs/injective-core - tag: v1.16.0-beta.3 + tag: v1.16.0 subdir: proto # - git_repo: https://github.com/InjectiveLabs/injective-core # branch: master diff --git a/poetry.lock b/poetry.lock index 7eace9e3..50e81869 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,102 +13,102 @@ files = [ [[package]] name = "aiohttp" -version = "3.12.13" +version = "3.12.14" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" files = [ - {file = "aiohttp-3.12.13-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5421af8f22a98f640261ee48aae3a37f0c41371e99412d55eaf2f8a46d5dad29"}, - {file = "aiohttp-3.12.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fcda86f6cb318ba36ed8f1396a6a4a3fd8f856f84d426584392083d10da4de0"}, - {file = "aiohttp-3.12.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cd71c9fb92aceb5a23c4c39d8ecc80389c178eba9feab77f19274843eb9412d"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34ebf1aca12845066c963016655dac897651e1544f22a34c9b461ac3b4b1d3aa"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:893a4639694c5b7edd4bdd8141be296042b6806e27cc1d794e585c43010cc294"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:663d8ee3ffb3494502ebcccb49078faddbb84c1d870f9c1dd5a29e85d1f747ce"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0f8f6a85a0006ae2709aa4ce05749ba2cdcb4b43d6c21a16c8517c16593aabe"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1582745eb63df267c92d8b61ca655a0ce62105ef62542c00a74590f306be8cb5"}, - {file = "aiohttp-3.12.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d59227776ee2aa64226f7e086638baa645f4b044f2947dbf85c76ab11dcba073"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06b07c418bde1c8e737d8fa67741072bd3f5b0fb66cf8c0655172188c17e5fa6"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:9445c1842680efac0f81d272fd8db7163acfcc2b1436e3f420f4c9a9c5a50795"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:09c4767af0b0b98c724f5d47f2bf33395c8986995b0a9dab0575ca81a554a8c0"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f3854fbde7a465318ad8d3fc5bef8f059e6d0a87e71a0d3360bb56c0bf87b18a"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2332b4c361c05ecd381edb99e2a33733f3db906739a83a483974b3df70a51b40"}, - {file = "aiohttp-3.12.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1561db63fa1b658cd94325d303933553ea7d89ae09ff21cc3bcd41b8521fbbb6"}, - {file = "aiohttp-3.12.13-cp310-cp310-win32.whl", hash = "sha256:a0be857f0b35177ba09d7c472825d1b711d11c6d0e8a2052804e3b93166de1ad"}, - {file = "aiohttp-3.12.13-cp310-cp310-win_amd64.whl", hash = "sha256:fcc30ad4fb5cb41a33953292d45f54ef4066746d625992aeac33b8c681173178"}, - {file = "aiohttp-3.12.13-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c229b1437aa2576b99384e4be668af1db84b31a45305d02f61f5497cfa6f60c"}, - {file = "aiohttp-3.12.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04076d8c63471e51e3689c93940775dc3d12d855c0c80d18ac5a1c68f0904358"}, - {file = "aiohttp-3.12.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55683615813ce3601640cfaa1041174dc956d28ba0511c8cbd75273eb0587014"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:921bc91e602d7506d37643e77819cb0b840d4ebb5f8d6408423af3d3bf79a7b7"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e72d17fe0974ddeae8ed86db297e23dba39c7ac36d84acdbb53df2e18505a013"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0653d15587909a52e024a261943cf1c5bdc69acb71f411b0dd5966d065a51a47"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a77b48997c66722c65e157c06c74332cdf9c7ad00494b85ec43f324e5c5a9b9a"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6946bae55fd36cfb8e4092c921075cde029c71c7cb571d72f1079d1e4e013bc"}, - {file = "aiohttp-3.12.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f95db8c8b219bcf294a53742c7bda49b80ceb9d577c8e7aa075612b7f39ffb7"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:03d5eb3cfb4949ab4c74822fb3326cd9655c2b9fe22e4257e2100d44215b2e2b"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6383dd0ffa15515283c26cbf41ac8e6705aab54b4cbb77bdb8935a713a89bee9"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6548a411bc8219b45ba2577716493aa63b12803d1e5dc70508c539d0db8dbf5a"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:81b0fcbfe59a4ca41dc8f635c2a4a71e63f75168cc91026c61be665945739e2d"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6a83797a0174e7995e5edce9dcecc517c642eb43bc3cba296d4512edf346eee2"}, - {file = "aiohttp-3.12.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5734d8469a5633a4e9ffdf9983ff7cdb512524645c7a3d4bc8a3de45b935ac3"}, - {file = "aiohttp-3.12.13-cp311-cp311-win32.whl", hash = "sha256:fef8d50dfa482925bb6b4c208b40d8e9fa54cecba923dc65b825a72eed9a5dbd"}, - {file = "aiohttp-3.12.13-cp311-cp311-win_amd64.whl", hash = "sha256:9a27da9c3b5ed9d04c36ad2df65b38a96a37e9cfba6f1381b842d05d98e6afe9"}, - {file = "aiohttp-3.12.13-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0aa580cf80558557285b49452151b9c69f2fa3ad94c5c9e76e684719a8791b73"}, - {file = "aiohttp-3.12.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b103a7e414b57e6939cc4dece8e282cfb22043efd0c7298044f6594cf83ab347"}, - {file = "aiohttp-3.12.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78f64e748e9e741d2eccff9597d09fb3cd962210e5b5716047cbb646dc8fe06f"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c955989bf4c696d2ededc6b0ccb85a73623ae6e112439398935362bacfaaf6"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d640191016763fab76072c87d8854a19e8e65d7a6fcfcbf017926bdbbb30a7e5"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4dc507481266b410dede95dd9f26c8d6f5a14315372cc48a6e43eac652237d9b"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a94daa873465d518db073bd95d75f14302e0208a08e8c942b2f3f1c07288a75"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f52420cde4ce0bb9425a375d95577fe082cb5721ecb61da3049b55189e4e6"}, - {file = "aiohttp-3.12.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f7df1f620ec40f1a7fbcb99ea17d7326ea6996715e78f71a1c9a021e31b96b8"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3062d4ad53b36e17796dce1c0d6da0ad27a015c321e663657ba1cc7659cfc710"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:8605e22d2a86b8e51ffb5253d9045ea73683d92d47c0b1438e11a359bdb94462"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54fbbe6beafc2820de71ece2198458a711e224e116efefa01b7969f3e2b3ddae"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:050bd277dfc3768b606fd4eae79dd58ceda67d8b0b3c565656a89ae34525d15e"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2637a60910b58f50f22379b6797466c3aa6ae28a6ab6404e09175ce4955b4e6a"}, - {file = "aiohttp-3.12.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e986067357550d1aaa21cfe9897fa19e680110551518a5a7cf44e6c5638cb8b5"}, - {file = "aiohttp-3.12.13-cp312-cp312-win32.whl", hash = "sha256:ac941a80aeea2aaae2875c9500861a3ba356f9ff17b9cb2dbfb5cbf91baaf5bf"}, - {file = "aiohttp-3.12.13-cp312-cp312-win_amd64.whl", hash = "sha256:671f41e6146a749b6c81cb7fd07f5a8356d46febdaaaf07b0e774ff04830461e"}, - {file = "aiohttp-3.12.13-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d4a18e61f271127465bdb0e8ff36e8f02ac4a32a80d8927aa52371e93cd87938"}, - {file = "aiohttp-3.12.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:532542cb48691179455fab429cdb0d558b5e5290b033b87478f2aa6af5d20ace"}, - {file = "aiohttp-3.12.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d7eea18b52f23c050ae9db5d01f3d264ab08f09e7356d6f68e3f3ac2de9dfabb"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad7c8e5c25f2a26842a7c239de3f7b6bfb92304593ef997c04ac49fb703ff4d7"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6af355b483e3fe9d7336d84539fef460120c2f6e50e06c658fe2907c69262d6b"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a95cf9f097498f35c88e3609f55bb47b28a5ef67f6888f4390b3d73e2bac6177"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8ed8c38a1c584fe99a475a8f60eefc0b682ea413a84c6ce769bb19a7ff1c5ef"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0b9170d5d800126b5bc89d3053a2363406d6e327afb6afaeda2d19ee8bb103"}, - {file = "aiohttp-3.12.13-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:372feeace612ef8eb41f05ae014a92121a512bd5067db8f25101dd88a8db11da"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a946d3702f7965d81f7af7ea8fb03bb33fe53d311df48a46eeca17e9e0beed2d"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a0c4725fae86555bbb1d4082129e21de7264f4ab14baf735278c974785cd2041"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b28ea2f708234f0a5c44eb6c7d9eb63a148ce3252ba0140d050b091b6e842d1"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d4f5becd2a5791829f79608c6f3dc745388162376f310eb9c142c985f9441cc1"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:60f2ce6b944e97649051d5f5cc0f439360690b73909230e107fd45a359d3e911"}, - {file = "aiohttp-3.12.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69fc1909857401b67bf599c793f2183fbc4804717388b0b888f27f9929aa41f3"}, - {file = "aiohttp-3.12.13-cp313-cp313-win32.whl", hash = "sha256:7d7e68787a2046b0e44ba5587aa723ce05d711e3a3665b6b7545328ac8e3c0dd"}, - {file = "aiohttp-3.12.13-cp313-cp313-win_amd64.whl", hash = "sha256:5a178390ca90419bfd41419a809688c368e63c86bd725e1186dd97f6b89c2706"}, - {file = "aiohttp-3.12.13-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:36f6c973e003dc9b0bb4e8492a643641ea8ef0e97ff7aaa5c0f53d68839357b4"}, - {file = "aiohttp-3.12.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6cbfc73179bd67c229eb171e2e3745d2afd5c711ccd1e40a68b90427f282eab1"}, - {file = "aiohttp-3.12.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1e8b27b2d414f7e3205aa23bb4a692e935ef877e3a71f40d1884f6e04fd7fa74"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eabded0c2b2ef56243289112c48556c395d70150ce4220d9008e6b4b3dd15690"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:003038e83f1a3ff97409999995ec02fe3008a1d675478949643281141f54751d"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b6f46613031dbc92bdcaad9c4c22c7209236ec501f9c0c5f5f0b6a689bf50f3"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c332c6bb04650d59fb94ed96491f43812549a3ba6e7a16a218e612f99f04145e"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fea41a2c931fb582cb15dc86a3037329e7b941df52b487a9f8b5aa960153cbd"}, - {file = "aiohttp-3.12.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:846104f45d18fb390efd9b422b27d8f3cf8853f1218c537f36e71a385758c896"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d6c85ac7dd350f8da2520bac8205ce99df4435b399fa7f4dc4a70407073e390"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5a1ecce0ed281bec7da8550da052a6b89552db14d0a0a45554156f085a912f48"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5304d74867028cca8f64f1cc1215eb365388033c5a691ea7aa6b0dc47412f495"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:64d1f24ee95a2d1e094a4cd7a9b7d34d08db1bbcb8aa9fb717046b0a884ac294"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:119c79922a7001ca6a9e253228eb39b793ea994fd2eccb79481c64b5f9d2a055"}, - {file = "aiohttp-3.12.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bb18f00396d22e2f10cd8825d671d9f9a3ba968d708a559c02a627536b36d91c"}, - {file = "aiohttp-3.12.13-cp39-cp39-win32.whl", hash = "sha256:0022de47ef63fd06b065d430ac79c6b0bd24cdae7feaf0e8c6bac23b805a23a8"}, - {file = "aiohttp-3.12.13-cp39-cp39-win_amd64.whl", hash = "sha256:29e08111ccf81b2734ae03f1ad1cb03b9615e7d8f616764f22f71209c094f122"}, - {file = "aiohttp-3.12.13.tar.gz", hash = "sha256:47e2da578528264a12e4e3dd8dd72a7289e5f812758fe086473fab037a10fcce"}, + {file = "aiohttp-3.12.14-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:906d5075b5ba0dd1c66fcaaf60eb09926a9fef3ca92d912d2a0bbdbecf8b1248"}, + {file = "aiohttp-3.12.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c875bf6fc2fd1a572aba0e02ef4e7a63694778c5646cdbda346ee24e630d30fb"}, + {file = "aiohttp-3.12.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbb284d15c6a45fab030740049d03c0ecd60edad9cd23b211d7e11d3be8d56fd"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38e360381e02e1a05d36b223ecab7bc4a6e7b5ab15760022dc92589ee1d4238c"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aaf90137b5e5d84a53632ad95ebee5c9e3e7468f0aab92ba3f608adcb914fa95"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e532a25e4a0a2685fa295a31acf65e027fbe2bea7a4b02cdfbbba8a064577663"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eab9762c4d1b08ae04a6c77474e6136da722e34fdc0e6d6eab5ee93ac29f35d1"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abe53c3812b2899889a7fca763cdfaeee725f5be68ea89905e4275476ffd7e61"}, + {file = "aiohttp-3.12.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5760909b7080aa2ec1d320baee90d03b21745573780a072b66ce633eb77a8656"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:02fcd3f69051467bbaa7f84d7ec3267478c7df18d68b2e28279116e29d18d4f3"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4dcd1172cd6794884c33e504d3da3c35648b8be9bfa946942d353b939d5f1288"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:224d0da41355b942b43ad08101b1b41ce633a654128ee07e36d75133443adcda"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e387668724f4d734e865c1776d841ed75b300ee61059aca0b05bce67061dcacc"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:dec9cde5b5a24171e0b0a4ca064b1414950904053fb77c707efd876a2da525d8"}, + {file = "aiohttp-3.12.14-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bbad68a2af4877cc103cd94af9160e45676fc6f0c14abb88e6e092b945c2c8e3"}, + {file = "aiohttp-3.12.14-cp310-cp310-win32.whl", hash = "sha256:ee580cb7c00bd857b3039ebca03c4448e84700dc1322f860cf7a500a6f62630c"}, + {file = "aiohttp-3.12.14-cp310-cp310-win_amd64.whl", hash = "sha256:cf4f05b8cea571e2ccc3ca744e35ead24992d90a72ca2cf7ab7a2efbac6716db"}, + {file = "aiohttp-3.12.14-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f4552ff7b18bcec18b60a90c6982049cdb9dac1dba48cf00b97934a06ce2e597"}, + {file = "aiohttp-3.12.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8283f42181ff6ccbcf25acaae4e8ab2ff7e92b3ca4a4ced73b2c12d8cd971393"}, + {file = "aiohttp-3.12.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:040afa180ea514495aaff7ad34ec3d27826eaa5d19812730fe9e529b04bb2179"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b413c12f14c1149f0ffd890f4141a7471ba4b41234fe4fd4a0ff82b1dc299dbb"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1d6f607ce2e1a93315414e3d448b831238f1874b9968e1195b06efaa5c87e245"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:565e70d03e924333004ed101599902bba09ebb14843c8ea39d657f037115201b"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4699979560728b168d5ab63c668a093c9570af2c7a78ea24ca5212c6cdc2b641"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad5fdf6af93ec6c99bf800eba3af9a43d8bfd66dce920ac905c817ef4a712afe"}, + {file = "aiohttp-3.12.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ac76627c0b7ee0e80e871bde0d376a057916cb008a8f3ffc889570a838f5cc7"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:798204af1180885651b77bf03adc903743a86a39c7392c472891649610844635"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4f1205f97de92c37dd71cf2d5bcfb65fdaed3c255d246172cce729a8d849b4da"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:76ae6f1dd041f85065d9df77c6bc9c9703da9b5c018479d20262acc3df97d419"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a194ace7bc43ce765338ca2dfb5661489317db216ea7ea700b0332878b392cab"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:16260e8e03744a6fe3fcb05259eeab8e08342c4c33decf96a9dad9f1187275d0"}, + {file = "aiohttp-3.12.14-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c779e5ebbf0e2e15334ea404fcce54009dc069210164a244d2eac8352a44b28"}, + {file = "aiohttp-3.12.14-cp311-cp311-win32.whl", hash = "sha256:a289f50bf1bd5be227376c067927f78079a7bdeccf8daa6a9e65c38bae14324b"}, + {file = "aiohttp-3.12.14-cp311-cp311-win_amd64.whl", hash = "sha256:0b8a69acaf06b17e9c54151a6c956339cf46db4ff72b3ac28516d0f7068f4ced"}, + {file = "aiohttp-3.12.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a0ecbb32fc3e69bc25efcda7d28d38e987d007096cbbeed04f14a6662d0eee22"}, + {file = "aiohttp-3.12.14-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0400f0ca9bb3e0b02f6466421f253797f6384e9845820c8b05e976398ac1d81a"}, + {file = "aiohttp-3.12.14-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a56809fed4c8a830b5cae18454b7464e1529dbf66f71c4772e3cfa9cbec0a1ff"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f2e373276e4755691a963e5d11756d093e346119f0627c2d6518208483fb6d"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ca39e433630e9a16281125ef57ece6817afd1d54c9f1bf32e901f38f16035869"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c748b3f8b14c77720132b2510a7d9907a03c20ba80f469e58d5dfd90c079a1c"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a568abe1b15ce69d4cc37e23020720423f0728e3cb1f9bcd3f53420ec3bfe7"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9888e60c2c54eaf56704b17feb558c7ed6b7439bca1e07d4818ab878f2083660"}, + {file = "aiohttp-3.12.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3006a1dc579b9156de01e7916d38c63dc1ea0679b14627a37edf6151bc530088"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aa8ec5c15ab80e5501a26719eb48a55f3c567da45c6ea5bb78c52c036b2655c7"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:39b94e50959aa07844c7fe2206b9f75d63cc3ad1c648aaa755aa257f6f2498a9"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:04c11907492f416dad9885d503fbfc5dcb6768d90cad8639a771922d584609d3"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:88167bd9ab69bb46cee91bd9761db6dfd45b6e76a0438c7e884c3f8160ff21eb"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:791504763f25e8f9f251e4688195e8b455f8820274320204f7eafc467e609425"}, + {file = "aiohttp-3.12.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2785b112346e435dd3a1a67f67713a3fe692d288542f1347ad255683f066d8e0"}, + {file = "aiohttp-3.12.14-cp312-cp312-win32.whl", hash = "sha256:15f5f4792c9c999a31d8decf444e79fcfd98497bf98e94284bf390a7bb8c1729"}, + {file = "aiohttp-3.12.14-cp312-cp312-win_amd64.whl", hash = "sha256:3b66e1a182879f579b105a80d5c4bd448b91a57e8933564bf41665064796a338"}, + {file = "aiohttp-3.12.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3143a7893d94dc82bc409f7308bc10d60285a3cd831a68faf1aa0836c5c3c767"}, + {file = "aiohttp-3.12.14-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3d62ac3d506cef54b355bd34c2a7c230eb693880001dfcda0bf88b38f5d7af7e"}, + {file = "aiohttp-3.12.14-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:48e43e075c6a438937c4de48ec30fa8ad8e6dfef122a038847456bfe7b947b63"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:077b4488411a9724cecc436cbc8c133e0d61e694995b8de51aaf351c7578949d"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d8c35632575653f297dcbc9546305b2c1133391089ab925a6a3706dfa775ccab"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b8ce87963f0035c6834b28f061df90cf525ff7c9b6283a8ac23acee6502afd4"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a2cf66e32a2563bb0766eb24eae7e9a269ac0dc48db0aae90b575dc9583026"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdea089caf6d5cde975084a884c72d901e36ef9c2fd972c9f51efbbc64e96fbd"}, + {file = "aiohttp-3.12.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7865f27db67d49e81d463da64a59365ebd6b826e0e4847aa111056dcb9dc88"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0ab5b38a6a39781d77713ad930cb5e7feea6f253de656a5f9f281a8f5931b086"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b3b15acee5c17e8848d90a4ebc27853f37077ba6aec4d8cb4dbbea56d156933"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e4c972b0bdaac167c1e53e16a16101b17c6d0ed7eac178e653a07b9f7fad7151"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7442488b0039257a3bdbc55f7209587911f143fca11df9869578db6c26feeeb8"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f68d3067eecb64c5e9bab4a26aa11bd676f4c70eea9ef6536b0a4e490639add3"}, + {file = "aiohttp-3.12.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f88d3704c8b3d598a08ad17d06006cb1ca52a1182291f04979e305c8be6c9758"}, + {file = "aiohttp-3.12.14-cp313-cp313-win32.whl", hash = "sha256:a3c99ab19c7bf375c4ae3debd91ca5d394b98b6089a03231d4c580ef3c2ae4c5"}, + {file = "aiohttp-3.12.14-cp313-cp313-win_amd64.whl", hash = "sha256:3f8aad695e12edc9d571f878c62bedc91adf30c760c8632f09663e5f564f4baa"}, + {file = "aiohttp-3.12.14-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b8cc6b05e94d837bcd71c6531e2344e1ff0fb87abe4ad78a9261d67ef5d83eae"}, + {file = "aiohttp-3.12.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1dcb015ac6a3b8facd3677597edd5ff39d11d937456702f0bb2b762e390a21b"}, + {file = "aiohttp-3.12.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3779ed96105cd70ee5e85ca4f457adbce3d9ff33ec3d0ebcdf6c5727f26b21b3"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:717a0680729b4ebd7569c1dcd718c46b09b360745fd8eb12317abc74b14d14d0"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b5dd3a2ef7c7e968dbbac8f5574ebeac4d2b813b247e8cec28174a2ba3627170"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4710f77598c0092239bc12c1fcc278a444e16c7032d91babf5abbf7166463f7b"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f3e9f75ae842a6c22a195d4a127263dbf87cbab729829e0bd7857fb1672400b2"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f9c8d55d6802086edd188e3a7d85a77787e50d56ce3eb4757a3205fa4657922"}, + {file = "aiohttp-3.12.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79b29053ff3ad307880d94562cca80693c62062a098a5776ea8ef5ef4b28d140"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23e1332fff36bebd3183db0c7a547a1da9d3b4091509f6d818e098855f2f27d3"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a564188ce831fd110ea76bcc97085dd6c625b427db3f1dbb14ca4baa1447dcbc"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a7a1b4302f70bb3ec40ca86de82def532c97a80db49cac6a6700af0de41af5ee"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:1b07ccef62950a2519f9bfc1e5b294de5dd84329f444ca0b329605ea787a3de5"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:938bd3ca6259e7e48b38d84f753d548bd863e0c222ed6ee6ace3fd6752768a84"}, + {file = "aiohttp-3.12.14-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8bc784302b6b9f163b54c4e93d7a6f09563bd01ff2b841b29ed3ac126e5040bf"}, + {file = "aiohttp-3.12.14-cp39-cp39-win32.whl", hash = "sha256:a3416f95961dd7d5393ecff99e3f41dc990fb72eda86c11f2a60308ac6dcd7a0"}, + {file = "aiohttp-3.12.14-cp39-cp39-win_amd64.whl", hash = "sha256:196858b8820d7f60578f8b47e5669b3195c21d8ab261e39b1d705346458f445f"}, + {file = "aiohttp-3.12.14.tar.gz", hash = "sha256:6e06e120e34d93100de448fd941522e11dafa78ef1a893c179901b7d66aa29f2"}, ] [package.dependencies] aiohappyeyeballs = ">=2.5.0" -aiosignal = ">=1.1.2" +aiosignal = ">=1.4.0" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" @@ -136,17 +136,18 @@ packaging = ">=22.0" [[package]] name = "aiosignal" -version = "1.3.2" +version = "1.4.0" description = "aiosignal: a list of registered asynchronous callbacks" optional = false python-versions = ">=3.9" files = [ - {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, - {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, + {file = "aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e"}, + {file = "aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7"}, ] [package.dependencies] frozenlist = ">=1.1.0" +typing-extensions = {version = ">=4.2", markers = "python_version < \"3.13\""} [[package]] name = "annotated-types" @@ -200,6 +201,17 @@ docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphi tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +[[package]] +name = "backports-asyncio-runner" +version = "1.2.0" +description = "Backport of asyncio.Runner, a context manager that controls event loop life cycle." +optional = false +python-versions = "<3.11,>=3.8" +files = [ + {file = "backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5"}, + {file = "backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162"}, +] + [[package]] name = "bech32" version = "1.2.0" @@ -227,145 +239,145 @@ coincurve = ">=15.0,<21" [[package]] name = "bitarray" -version = "3.4.3" +version = "3.5.2" description = "efficient arrays of booleans -- C extension" optional = false python-versions = "*" files = [ - {file = "bitarray-3.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a0c126a6ed1d3cd68cd91c0056cee8edcf6aa57c557b555528fe37375e72ea74"}, - {file = "bitarray-3.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:690fc6d2b5c5e267f643e3720e8b4203838d3f30439e2070dccfae473b8223c3"}, - {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:639930dadc248e68caef99f068dea70cea58244f199c4ca63975ae6292f6e921"}, - {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6646d4f5533383a54d29c212b2ece7e1988d18f1e0f9e2e814bc96d4defdb39b"}, - {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:600e5805f2de242522ae598c4c43f95eda3cae63ca9ef01cdb659cb006bc3a86"}, - {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8815f3b7fd99d5b596e2ab29f9d14ce97c39ee9fc70fab6ba25fbb279b2b7bc"}, - {file = "bitarray-3.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb3dd74f05f0640b4a7aa2490c7b04d4c597f18623b8cdeca2700bade30747d"}, - {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9f8dc515136436a3682d3954f9a86d90b6f80d98b07fe03371cf933961d19c66"}, - {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c686b34b189160971cdfcaa31279ccdc6e90ecfb113b6c84b8761d74a308e4cf"}, - {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c9e7e7fa3870c8c164446b838d72ef88acb47bd3552b68f7bc509fcd13366004"}, - {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:79dff08c581ed3ac85eab019bd8af8ccab744651dc6f9e5acc3a44d96dd491aa"}, - {file = "bitarray-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:30522c7cca78cb68894c3b5f114aef79b6a62113289239ca0351ae11b4ec074d"}, - {file = "bitarray-3.4.3-cp310-cp310-win32.whl", hash = "sha256:860607c7ee614e8898c1fa6bb001a56c4af9c94d6204bcc32f4259b814fece10"}, - {file = "bitarray-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:65298a9aa7b16f543f94619e88b95c269de625beac3441c440e2d6b4e99cdd2c"}, - {file = "bitarray-3.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dad06c638adb14c2ab2cdbe295f324e72c7068d65bb5612be5f170e5682a1e3e"}, - {file = "bitarray-3.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0c6dc58399e2b1221f98b8696cdb414a8c42c2cea5c61f7cf9d691ee12c86cb3"}, - {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902b83896e0a4976186e3ec3c0064edd18dab886845644ef25c5e3c760999ed4"}, - {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e80131f03e4df4d9e70c355e5c939673eabaff47803fe1b85bf9676cb805e8a"}, - {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a544478f91a0239ce986c90af5dfbeb5ae758e4573194c94827705c138eb75b5"}, - {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3df507b700c5bd4f2d02056b9db1867e0a5c202fa22eb0d12a6dcca6098b1c0a"}, - {file = "bitarray-3.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ad9bf2403d69080bcd281fc3a4feab14fac8221362724e791df5d50aa105ea"}, - {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cda69a119698a6ab00e30bc3530d6631245312f6b2287c24b02b3bcea482f512"}, - {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:350357713dd175788f1e43b85998d8290b8626eb8e5dcc55571a64f8e231dcc1"}, - {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:17d34aab4b70d8c67260d76810d4aca65ef8bc61e829da32f9fa7116338430e3"}, - {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1f266e76e2819cfdd3522247fb33caccf661c7913e0a0e29e195b46a678be660"}, - {file = "bitarray-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:822963d34081d2d0b0767eaf1a161ac97b03f552fa21c2c7543d9433b88694b0"}, - {file = "bitarray-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6a345df7fa08af4d08f99a555d949003ff9309d5496c469b7f3dd50c402da973"}, - {file = "bitarray-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:8dc0772146d39d6819d01b64d41a9bf5535e99d2b2df4343ec2686b23b3a9740"}, - {file = "bitarray-3.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:eb6d5b1c2d544e2691a9d519bdbbbc41630e71f0f5d3b4b02e072b1ecf7fe78a"}, - {file = "bitarray-3.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e2b416291ba7817219296d2911fe06771b620541af26e6a4cc75e3559316d0af"}, - {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0522e602faf527e028a973e6260f2b6259a47d79fe8ddbf81b5176af36935e4"}, - {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd6b925a010d2749cba456ecd843f633594855f356d3ae66c49eb8cc6b3e0ba7"}, - {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8dc18fb4e24affd29fbaf48a2c6714fa3dece01b7e06d7f0bb75a187f8f5cd"}, - {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3e9ea27c5f877d6abeb02ee6affcf97804829b35a640c52a0e4ae340e401c9e"}, - {file = "bitarray-3.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3720b7e9816f61ff0dfa2d750c3cd2f989d1105d953606fb90471f45f5b8065"}, - {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:09abb161caada9ae4cd556c7d2f4d430f8eb2a8248f2e3fa93d5eea799ed1563"}, - {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bfb3fee5054a9a266d2d3d274987fbc5d75893ba8d28b849d6ffbdaefcad30f1"}, - {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a4eed600da6de44f260d440a60c55722beacd9908a4a2d6550323e74a9bbbbd8"}, - {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:98effdef57d3c60c3df67f203ee83b0716edd50b3ef9afaf1ae6468e5204c78f"}, - {file = "bitarray-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:71fe2e56394f81ed4d027938cf165f12b684c1d88fede535297f5ac94f54f5a0"}, - {file = "bitarray-3.4.3-cp312-cp312-win32.whl", hash = "sha256:28ea1d79c13a8443cdacf8711471d407ad402d55dac457a634be2dd739589a66"}, - {file = "bitarray-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:ccb0bdca279d29286ef9bd973a975217927dfa7e0f0d6eac956df5b32ff7c57d"}, - {file = "bitarray-3.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2162e97bbdb3a9d2dbf039df02baf9eefd2c13149fc615a5ce5a0189bff82fd4"}, - {file = "bitarray-3.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:254ab82798faf4636ffd3b5bfe2bf24ee6f70e0c8b794491da24f143329bf4c5"}, - {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9342795493deacc6bea42782fea777e180abb28cf2440e743f6c52b65b4bfddd"}, - {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28347e92310a042e958c53336b03bea7e3eec451411ed0e27180d19c428ad7f2"}, - {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f873f4506649575495ffc91febf3e573eabdb7b800e96326533a711807bbe7df"}, - {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e9d9df7558497c72e832b1a29a1d3ec394c50c79829755b6237f9a76146f5e2"}, - {file = "bitarray-3.4.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f849e428dd2c8c38b705e28b2baa6601fc9013e3a8dd4b922f128e474bcf687d"}, - {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:438c50f2f9a5751fb12b1ae5c6283c94fc420c191ecd97f0d37483b3f1674a61"}, - {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cf5bdce1e64eb77cb10fd1046ec7ccd84a3e68cdeaf05da300adfc0a5ddcfa5"}, - {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2e981af7e4e0d33de3cd7132619c04484cc83846922507855d6d167ae2c444b5"}, - {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:da717081402de4b5d66865c9989cb586076773a11af85324fdad4db6950d36a4"}, - {file = "bitarray-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d6b1a7764e178b127e1388015c00bbc20d4e7188129532c530f1a12979c491f2"}, - {file = "bitarray-3.4.3-cp313-cp313-win32.whl", hash = "sha256:23ec148e5db67efee6376eefc0d167d4a25610b9e333b05e4ccfdcf7c2ac8a9a"}, - {file = "bitarray-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:c3113d40de1adfd3c4f08e4bb0a69ff88807085cf2916138f2b55839c9d8d1b2"}, - {file = "bitarray-3.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:18d4336ce8a514c9d3a3d87d62f070cb8753b6d2acc46faa8f2bcb934e635106"}, - {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c8a1ed3a57d4f3b4b9858716bcccd000d349b0433aa78f717f8014f5cb9f4e"}, - {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:082512689899a090ba664e788ba5f72816e3bc6f95c4dc79630cc77934cdd275"}, - {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e520f735f155edf326aaa722b5732590aa3527c051bb31f74994b01655f9be59"}, - {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58c2289e567971908d19764e970112b3f8724a1de5a5dbd56fcf0ce496a82a82"}, - {file = "bitarray-3.4.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a03b0b46455f74a1da2e705238f7bde38fb415de1686c7727e4b491570d3addf"}, - {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:177d905ded5578db62aa8fe91a4a3153f3ecd375e8c94a0b7def46631d4e85a2"}, - {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:2bf092d2f2be7c944e8f36615efacfc30d4effb988badb4cd9547561b8c98d2f"}, - {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:50ef1b7ce2db8e84a5c99c666d7cd8f861e2ecc0d8556aa02e179b8d0e99ebb5"}, - {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:a50355e799d7bfed98919bd06dcf93a6ea3ba5ea80542423893c8c244bca660a"}, - {file = "bitarray-3.4.3-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:3ec3ac5a6469b98945f8e3402a102bd49540bab5a8120120e3b7a3f0ca77fa30"}, - {file = "bitarray-3.4.3-cp36-cp36m-win32.whl", hash = "sha256:fcb9a9957b663fe72984c20bbd7b6e0d520954fea54fb3f6f5fd2fc7c3df7411"}, - {file = "bitarray-3.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:ec110e2cb464525fc41f1f7d10c8f7676d693fe85786fbd299a2843a79b3db0b"}, - {file = "bitarray-3.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f5ed2775f134ab5cf5de536d189cfa2218586cd2b6c2294902dfa0d8b051389b"}, - {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7098885346d58c0d8dbbeb6e92a10e12355b071846b59d16aee028a13dc0e98a"}, - {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d572cb40f63df713bf53df47bd8bbe053a08371f6177239406fe36e57d953422"}, - {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8656f9ec9a84277c139ea21cae6cc4350215fad6a339134f4f621d8e4773d167"}, - {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b9bfd70376cdf0525d8ac6c168abdbddd7c7ed05d7d3da655156c61d457b42a"}, - {file = "bitarray-3.4.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b69c396510f1ceccaaa15a8f2cf56ba46d0f4ed838c958892c6027e47de74b80"}, - {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:59a31cbfd3009c0b174a53289d3eab091c0a2421ed50980a7d922873820a0a33"}, - {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:e44821a49a6313f55e36367c9439c9a4c7de3aa30cb0dd826cd469a24da376d9"}, - {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:1be9272542f34131c91823fd56aa683ffb585742cab2e4adc1e3b7d87bf56db5"}, - {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:22259b87c86453bb17fb3a9225f2436100be4e807ec2b237c04684201e887829"}, - {file = "bitarray-3.4.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:26acfc36579caa58932d5adafe181609f38ce3c0a0c053c5174e95ffdab93485"}, - {file = "bitarray-3.4.3-cp37-cp37m-win32.whl", hash = "sha256:36428ca065a10b337d1bac640e159a8a23673881ab193b7db506e2f04452b894"}, - {file = "bitarray-3.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:613fd6f2fca2f9cef592535002db101efccb34627828dee0f5122390af2d36a1"}, - {file = "bitarray-3.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4ebc3675359381d70944cf6ca1f17eaeaa191f62cf78e178b1fbae10e3b89128"}, - {file = "bitarray-3.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c8535abd8f53333c382ba3d992206d7bd7ac91ea19ee3c712c18d5d750b8880"}, - {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6232646581b2dc146e13985a6213c3fcbd9ccc7311e599fc01bdec086cffaad6"}, - {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78415356052fdcebd8943ef72a2f2eab7722296bdb7172c4127c213ad7cd5582"}, - {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52bfc007309a6ef569a0c2add27abde97ac384657377c993ae34003b05568000"}, - {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c80319c7e455d8a35f33133e2db35daefcd10ec32d0283e0c45b5b3c8f2b7486"}, - {file = "bitarray-3.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:63a51d3831caa098f8fda1b128ad78a68b945e92a1951cba3e623afa4fc7a825"}, - {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f0d5a19de5bf8d79c498ea53b6625a103b696d5c096eb1424e265e3ffd7499e7"}, - {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:3c08df34aeb454501cbf4a678e29f5ce6e6b532b9203c1055c5e7801237b43c7"}, - {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:a19ec17ca5c8d5eee9b66f4e5022dfc1501db5771893eb8c192163a6cb0512b3"}, - {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:1d3fd4f52270e153324d7cb481dd5e956101b753232beeb6f9196b64eb3f29f1"}, - {file = "bitarray-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ec9483cc157bb6f00a80bd02193277b583725f530105d7e82452321514763eca"}, - {file = "bitarray-3.4.3-cp38-cp38-win32.whl", hash = "sha256:9998473d6e58fa94425ec6f7878098020bb92cdf51f629f61282aa1f4b505e78"}, - {file = "bitarray-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:02b2f2e7d50da4a8d41c5d2c5e4847c0666ae906de7955b1b5c799e85546abfa"}, - {file = "bitarray-3.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:187f181aa45ee92be7af539ebccde50ccc5e6ac1b07c3ffa681460f0bc4bd2a6"}, - {file = "bitarray-3.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab1c03490011041ba2d787404cd7a8364acbc86732bff866ab8d67d81bde9af5"}, - {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddd2343819c150da13a48eb5de3a01a687453541af7e28104fcc85dd4d98b052"}, - {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45433df04bd446c0fe35c2f9013067439291050ba775e77b4df019382817bc43"}, - {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc3f2e986a1728337b4cec6ac126abfee14bd91a1060a136861aa551ed716320"}, - {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:024295d1d89835588c5760dc72cd74c445c2313ef443225d89b430ed523ad618"}, - {file = "bitarray-3.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb0ce1bec34e4dbe9de3481d30675666ad77475378295763ab4b7387ad31a9e"}, - {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f3134a29d349b6ee4e472394f934de47cdb44373b53ceb17a44ffc2b10e683fc"}, - {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4badb5134887a4f755d8e5278cd8a761d7fa9fe746ceb46945ecea4071547593"}, - {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:db762c9c05ebb0cabf90739e37acc0e071c65726efa3321a59d7385aaf5eaea3"}, - {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:00ccedbe1d66d8c478bf0bfb9ba66b0fc9b8f3609547cd4d81afe019dd0b2501"}, - {file = "bitarray-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4c2c807bad952222b57759d5b9c68db7978a79c086e550d160ebea7ec3a47a62"}, - {file = "bitarray-3.4.3-cp39-cp39-win32.whl", hash = "sha256:a2ea7b16091655029926c5b45bd7db7228f4fc50939fdb52b0849ea8442bd78b"}, - {file = "bitarray-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:fa9e751049688bce4cf6901a4847d829146d9d618b539f14d960e072b778f212"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:988fa0b40aa939be4d171fab1e29d437523d72919116906ece5a39e5d2ed80c8"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b6a80cbe9ee4dc4994d1a7f59d684df1fef27adb018a12342dcf2404522f8a8"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:353c17eefe044b56ecbfa90c69ce579d88b3bf1527285d4487170ba619dcff75"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6e9cd32323ab76fb9f88379176d89a2815dae8f941c91a16b2f8f5af7ee5463"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a2c06cf52f8ebd6b66651f1ee24fe1c006046970bbfc436e0132917a0c51a266"}, - {file = "bitarray-3.4.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:54e4c8527d3b642918c2510433bd8fe53808b149dde4e293178da0d6c0b7e39b"}, - {file = "bitarray-3.4.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8a623ed6900cb347c594344915d7e33b83e37d2f4bca81ce23a6d1a749bdb1d9"}, - {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fbeaf8bcbc1e7a0508c455c44364343131b97bc503aec157d694b6d1495e0e2"}, - {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41fb49bdaf38292607966412beec469f4f9202f6aa363817ad6e762411b8fd2b"}, - {file = "bitarray-3.4.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7fbc7edfb15e1b6b9709b10b140cc2eb81d605efac2722dc0f8832516d46b10"}, - {file = "bitarray-3.4.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:845af99a0c0d635c31871a07bb45c2500344f8f08480b32df90850898def47cd"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e74d09f7d9febcec01de4a27fc600d93b9de769c9e58c3f28ac0f24a7276ba1c"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0e57449ad43beb6fa344501f445f2b1d7689405127b8975d53ba0c320d4f6743"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e7c58d1a25acc829626ece2608ab21c2466bdbd0433c1a7caa2529c4641169d"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d043f4af52530d23ebd60e664a95041e8707ffeb283a5f604beb964ff6d5c7c"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:137c14f9a9c81298973eb19c6a3af2ed794d5978645223e3c7b37aa2f11fe897"}, - {file = "bitarray-3.4.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e1f170df5c24d0101410435fc210b68e55d800a77a2a26a3fd3e7ee9ab882337"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ee46b605100c722550bd7a216dcba4854f1d34c6632764049908da7ebaf8c83b"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:549caacd684e1120f446e0cf35b7faa06e9f4b647195b6ba341556d8d02a1ecf"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0924c210915c4d76cea002ee7f5138deb5d44e70eafe7ab4652fc7485d57803"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7354817ae65370aba12d67c953c792ae0a757c12808629a49a003f2e4cab5a7f"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2584f4d9d30de1b02e0b8f1256fa1d4c8a3e4346749fbc61ec430f210739ec15"}, - {file = "bitarray-3.4.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:df9447d1a9fad5d935bfe8a0263cb935f089b2a866a5d7a32ba09dc69671c812"}, - {file = "bitarray-3.4.3.tar.gz", hash = "sha256:dddfb2bf086b66aec1c0110dc46642b7161f587a6441cfe74da9e323975f62f0"}, + {file = "bitarray-3.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a863695fe5a46a78a063aafc4aaf9e2ed184fe09529b4b6caf5e5229061d5f09"}, + {file = "bitarray-3.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:94ad6e8cc73a6fbc4897e67efa6ed32f3a6bf28de02188f8eebb57caabd85707"}, + {file = "bitarray-3.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:249b3de3865a64727e343f0f17b5f02f0354534a26320d5e784eb40f2def58e5"}, + {file = "bitarray-3.5.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b595f46402655ad1f76d8705755cf95cf618babda64004a49475a6425c865e88"}, + {file = "bitarray-3.5.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bc3c356a60eb08e72274fede49960ca242981f3a7b462f2b77961a8e3ad5c3b"}, + {file = "bitarray-3.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d0e71761462d4dc94d4029e1f913723d5089c94649dd4ba2ca6fdbc3ebeba27"}, + {file = "bitarray-3.5.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a2cd71d730aa2854c93f917be9e2eb6304f8f96921dbfd071dc9e91a2a8743a"}, + {file = "bitarray-3.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7ec463a5d11b6fc07352a4d347f3559ca98c74f774be78e1b9ae4f375ae1a67d"}, + {file = "bitarray-3.5.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:789115b04bd2938f16134b7f90ef3f979344db5b840c8268f9eee88cbb0af8bf"}, + {file = "bitarray-3.5.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4648e04fd58fbe4f4674bb7016af73768cf6b2ba1aa50f3f7a9a3069fcf61e28"}, + {file = "bitarray-3.5.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:05817d325c5762083e4eb1016be96a5c9f2ba12c922f63c89ca00f1ca8f0e78c"}, + {file = "bitarray-3.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24e56c2e3e0e7daf3be39f4e9c4abd7db06d7c8a2a00fefadf59ad4dfd5ec8b3"}, + {file = "bitarray-3.5.2-cp310-cp310-win32.whl", hash = "sha256:20a7ef8670353f6b077688252f14e9bf2f7456c65539cfcdf56e387a7f103f03"}, + {file = "bitarray-3.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:524a84f121523d065c64c96113c179ad53fb929804d1c28c2109a378ef08be92"}, + {file = "bitarray-3.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f5bdce48de4e5b7ec690782b78a356c66b9bc8d2e6d96cf76fb1efadf7bc2865"}, + {file = "bitarray-3.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:abd9ba6cb095fbecd0d335fd704965c5d4006d05ffe74a5b518d40f95e52661f"}, + {file = "bitarray-3.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f34cb1b9a66b91fc346b41a4619b902af424dabe7106a413091e2a2acc308407"}, + {file = "bitarray-3.5.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7157fce08157d692df083afb67bf611542954ddf58b8508abec310e323c85eee"}, + {file = "bitarray-3.5.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8cfb82fe067cb4f625eef8be9e9a4dc2141054ac34739381dcb513da5f2ff490"}, + {file = "bitarray-3.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e0580a6abc08cd8e6b22237baa2836b2b1cc4184c7869e4acc6a5c976b48793"}, + {file = "bitarray-3.5.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8839c56723723cb6dbc87dd9ba4fe52e0d39e3c88d5aa6b0c67fa5fdf366ed43"}, + {file = "bitarray-3.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3fed83a6da7481658cd1cea45f7078e49cf50cc13e2391e68675170cd630901e"}, + {file = "bitarray-3.5.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ac762a5d74af64cbdfcac10e73cb5996d376553a98dfabcaca895ddf6e64bf07"}, + {file = "bitarray-3.5.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:52861c61d7b8fc368aa26b728af2e555ac6710f36a0fe0d1c5f6f13af26b78e6"}, + {file = "bitarray-3.5.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b3c4f7c56288053251148b39abc2d9426cd5d1c890c634e9eb1dd840b1bfba83"}, + {file = "bitarray-3.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4766d0f04e81742d2e8044f755fa273e0808ce8f06cc81fc8cdc5523a9390ab6"}, + {file = "bitarray-3.5.2-cp311-cp311-win32.whl", hash = "sha256:23edd8cc86a65808c8aa10305766f27cddc5f49567845921e3ba6d638762e2dd"}, + {file = "bitarray-3.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:93710dad4d55d49b330e245efbe2c09d49a180253382ceeb246b032e24e0c019"}, + {file = "bitarray-3.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0bf145079c20f75fb84d0d76b108b41d4e9332ef8674771e4f96169b359a8246"}, + {file = "bitarray-3.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f16e45c590fb0d5e9b390b281beae040284be520ca836b07fbcb5847e9864d35"}, + {file = "bitarray-3.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2b49c61082abe2f9cea8c3ab0cbf9bf021e7ddc9ab750764eaa5bc87f719cde"}, + {file = "bitarray-3.5.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f83fb28fe2207b7586d2f4d097a25bf4cfa8b5e2b823b81cadc917240eb91402"}, + {file = "bitarray-3.5.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5fa2dc09a36ae9c15622a3a80305a8fa86ce0ab71071c3adbbd5c3e9cc3192f2"}, + {file = "bitarray-3.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c4421ce14d025de122e8c19bef8e25d1d45e50f548c301494ca1e068df44db9"}, + {file = "bitarray-3.5.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:564f29972cccf92b87e313fbd03645cb3c7c6a592c3e30d04c317fce55b1c661"}, + {file = "bitarray-3.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2cf9316636f7b3457bf8556911a79b4817c41340cf94c15b80f082b582da83a4"}, + {file = "bitarray-3.5.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ef4efb9179d6f8912cbf0cd3dedc9afd8927ada8fb1ddcde54c1f988722a80cc"}, + {file = "bitarray-3.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b666860abb239a6263fd63ce47c3604f9df39c7558c12368078e4aa447e2090a"}, + {file = "bitarray-3.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:946522f65a2434c50d0380a1cdc3b448605004fdcd5ba26ab17612a1885e0b95"}, + {file = "bitarray-3.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:709a775609c8433293430f21d3196cecbaafe61f76674b230b76cd60b2e330f9"}, + {file = "bitarray-3.5.2-cp312-cp312-win32.whl", hash = "sha256:a1b3422e3fe437421f1ca94f8fc5f18140cd852e386f07d690c65b1e63c31f30"}, + {file = "bitarray-3.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:8838540ecb817bfe9ecbd46d3029925e799b5d6015b7650998c9352c86f8648e"}, + {file = "bitarray-3.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:19284756c52ff1832e79146a7b3c764f18b0712b84d7b465e6999015dd94341d"}, + {file = "bitarray-3.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:efae519bdee50d746f8e63d3838a066daf712dfe24389104eacc8e97b47fd83a"}, + {file = "bitarray-3.5.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8f0878f95b304a7377641165232d09063eeba1ca10a9afa0494ec4af6fa79fb"}, + {file = "bitarray-3.5.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8b4a2b2bb7bc5ceeb46e4216be4de9a3833739bcc7c1c97c30fa8f4c0f9717f7"}, + {file = "bitarray-3.5.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:855ffa6ea825e7cdbb7bd53f7ac812a4c218175d86abafd2f76fa2013f6d53a4"}, + {file = "bitarray-3.5.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c92ac22dcf83176c3a22dd0bb80de414ac3c1e2cc3233f3ffa42eba459188f96"}, + {file = "bitarray-3.5.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:865cd6fef111ddb921b0f9cba446c9daa7dfe4a4dcad048007a6312a42cb4749"}, + {file = "bitarray-3.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fa829d613007d761d234707214a988f9cf5551fe226dd56024366416baeab3e4"}, + {file = "bitarray-3.5.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ce2627f17f2f3bfc7017d8491d21f7a01b988c6777c4be8bcd12d3545e76580d"}, + {file = "bitarray-3.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d422b1e1e5583f2c298d7c2399a98bec6e0496ae679079e01907566cdd3b2d8b"}, + {file = "bitarray-3.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d9470b3672008a36a9ae72e1ed5133b382bbf8acb3b84964b27caa18cf1f3104"}, + {file = "bitarray-3.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:149097dcac89a4867b3fda5aa0e1621e2de575fdb62b5b81a31185816275caac"}, + {file = "bitarray-3.5.2-cp313-cp313-win32.whl", hash = "sha256:a02276e089572ea5493bb87fa8f4cf130d9808a7a0667eea93ef3b4e22cf933c"}, + {file = "bitarray-3.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:f30a134850762f8f15105f4b21f4b451caed87d683296f0c243be50996ae1350"}, + {file = "bitarray-3.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:1f87b9d766ef8806012dff6f27c2709f8305e81a60a61fd41aa2f414eecddee4"}, + {file = "bitarray-3.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4894793915164511caff0619cd5ca8e30febb52dad8fce3c4dc13fab514acf04"}, + {file = "bitarray-3.5.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66d262decad43572ee82c65482c85b7d418f8b5d8177aee0a70e3bd0ce8a4aa5"}, + {file = "bitarray-3.5.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48d1046e3c993da0e4d71a4d5cc47f06a390f783ac117c65240ecc9237231610"}, + {file = "bitarray-3.5.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ae5ff6b25734262448f7ef440e00eb9278b3ca36418a0e1e41e69a8e6f19c07"}, + {file = "bitarray-3.5.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8159a87faaf362fe9e3806ab178551335697ed2231c16c37941bbc09c1289506"}, + {file = "bitarray-3.5.2-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:a49d53b237b3f98d275216e09d834915bbebbb0abe3620a77f54261407126d9a"}, + {file = "bitarray-3.5.2-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:1fe7f6f0a458dd8651d716ec647445ac048131e4ec768097808ecefb8f382a22"}, + {file = "bitarray-3.5.2-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:3d0afe43e84167d59e65d1a6474cca41a798547c2c367c1a16c4e9057cb59095"}, + {file = "bitarray-3.5.2-cp36-cp36m-musllinux_1_2_s390x.whl", hash = "sha256:9d90a0641cb72b01ed768e11ee0bb77f0fcb05bb0f5a56d5f6093fc96e75953b"}, + {file = "bitarray-3.5.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:9b2b7c849b2aef59f900cca0a5af2e0fe08954aea85332f252f3c20366d846bf"}, + {file = "bitarray-3.5.2-cp36-cp36m-win32.whl", hash = "sha256:403992b92c0e9f029f4b917cb70534e10a314be4ce87e0f4e3d49735599a5864"}, + {file = "bitarray-3.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:1f046bda84d888e01c162bd7d6e4a039f07a706d1703ecc2dfb816616300042a"}, + {file = "bitarray-3.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2bfe33adadcc17b6392e1f08e5f33a0b7ed49f15471005681e311a42e1b52737"}, + {file = "bitarray-3.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce4393d5ad9f52724ffb10f2f18a21add9e9a6ce79586d0edb4e402e1ac73daf"}, + {file = "bitarray-3.5.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ed9d33f9b7af34e6c5034d178655691405ef3b4df61894ec44acda6bb3a0e49"}, + {file = "bitarray-3.5.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6334e524ec9ea8229ae7be17bc6b801b25c3feb8c28181cb4d36725015270977"}, + {file = "bitarray-3.5.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69fbc18d762e364f08bdbc86fae6a0179862f1635deaffcc3e202e1b864eb500"}, + {file = "bitarray-3.5.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:659c1f8fbe30d7f299a138a2643961b58f3f80e33ada8a7b23f11417ca299a7f"}, + {file = "bitarray-3.5.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1dd2b6f2117c8cc1192d10ccd3bdabf7ed6346ec7c0c9d3d4527158469d14a1c"}, + {file = "bitarray-3.5.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:cf2c5590273b36409adbd627106db5207497e09cd859fd4595ea6f8398c7aca2"}, + {file = "bitarray-3.5.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:14d0465ce4cafdf1b4877321c8251c67d05bd6f7f48028d49dafb09a06008f1c"}, + {file = "bitarray-3.5.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f5ab6334b277b5135ed208d17a4c1f090310f1a8ad3a2facd9e781cafe670995"}, + {file = "bitarray-3.5.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:34a2dffd628f8c49c4c21e3cb8928e766d1678cd9132cd01e5d8ca13c95a7258"}, + {file = "bitarray-3.5.2-cp37-cp37m-win32.whl", hash = "sha256:44d31af9effdbd5fd586eada196ecf4c90cace6b397d14217851fb40a1f3db13"}, + {file = "bitarray-3.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:4c5937af7cf4280defdb90f006c123c1e455f7d0daee8685ca664cbc3ca6be09"}, + {file = "bitarray-3.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5953bf2b89791f12c6222f671455da011b01061fd4dff756762c3fa50308a9a"}, + {file = "bitarray-3.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9e2d0aa5114aa70d0804ebb345203fb0114deb51ac7c31d88e5eba210d884d7"}, + {file = "bitarray-3.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc600a29f6ec20a29768f7f2a9ff64d2c4e019b47d091098855ed21980bb15a4"}, + {file = "bitarray-3.5.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:df71e3a95aab245a93043918b43eefc40048fad896144abfff37074f1843f4c5"}, + {file = "bitarray-3.5.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6cf2d26399ae5300e1109d90d30f8b44850c2c90a0a683f13809b377b0defba"}, + {file = "bitarray-3.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43de341077fb3a5b631026d88c7bd25c05f7abc5c0ae7cf40d52b6b864a784ef"}, + {file = "bitarray-3.5.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e228f8093ec8a8e7b505faffc3286f9df76c181f68a9d784f65f952a82ca5400"}, + {file = "bitarray-3.5.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3f7674b4764347410ec6feac124cb3b87c6b91f5beb162b1b7d52228d1a05256"}, + {file = "bitarray-3.5.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:76e7a915fb54dd785fc94306b744cfce61b4e2c70de175b13d6f82e9f582d74d"}, + {file = "bitarray-3.5.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f7c425c08b814de5763086668a356100e65596608a275c37325d25621483c184"}, + {file = "bitarray-3.5.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:22943605276547fa7365b4561b9d16c8f4d920f16853dc62e4641eb2f8fb67fe"}, + {file = "bitarray-3.5.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:90c9bc841cbc36788753036673b82523fc334f8ad322e0fc48a2ebbdc03724e8"}, + {file = "bitarray-3.5.2-cp38-cp38-win32.whl", hash = "sha256:57029ae10163a775f0faa9bc675614befbe488b77d45c73708bfdac882fc749c"}, + {file = "bitarray-3.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:382ee2e0cfecb4836019dfd251696b8d7a7fbdbd2172ce51af9ac7029937b685"}, + {file = "bitarray-3.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d5006dba83a1a7d9e50874ef5a07818686a9734d774dae13d9c3ab00737a2fc7"}, + {file = "bitarray-3.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bc716b5c0c344541965e8601957006e94d819a030ec46c70eadc23974874607c"}, + {file = "bitarray-3.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:131025a3c97969b2a26414ae6a75ed7b3047917496be8be4d14cc708cfef1114"}, + {file = "bitarray-3.5.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:854ff085422b07e539555c00aa4a627bb1f4091bcb9f790142e99699f3da2021"}, + {file = "bitarray-3.5.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:41ba22263d8a0aa9a07205447cf7f89e5a59d3ce0ef26012760052b546cbc0de"}, + {file = "bitarray-3.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b36d87cd55e311384fa2efe01ffdbc682735f2c4f407e82ce32b29bf4d3fb78"}, + {file = "bitarray-3.5.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bce8b8a0864fb304a902d5292959750f48e2b59e3113f21b81e93c2a5d7d8a56"}, + {file = "bitarray-3.5.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c3d6317c8b8a677d1ff88979d921d0312930714244bc8d1a36f2ece9da6989a2"}, + {file = "bitarray-3.5.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3bc49c58b5dc5b2e01f987fea39a8a1cf99ab3130a5cc6e8faac1e3fbc4b4b19"}, + {file = "bitarray-3.5.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4f95df0b42b1e6055cc3547f1583171fec3ef51a1bdcc61a07971ac9f3df5d42"}, + {file = "bitarray-3.5.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c560fb6cb498271c4abed7c34c3a046c07c926030082cd6ac190f9bef916cba2"}, + {file = "bitarray-3.5.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:347214623041b10a8a20e9439c4267c3c025fddd451d384bad9a78c57010f28c"}, + {file = "bitarray-3.5.2-cp39-cp39-win32.whl", hash = "sha256:2364e77a772b72911059bfe7a443cacae535fb8c574ebefa9c6404d9e9c78e6c"}, + {file = "bitarray-3.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:f8d1def8b61982e7bae1185849ac2f68c428bbc757d419b5cf007bf4238d429c"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fb3222152c1c662896c514f769f359144265b4f94be04acca632bd99346a2cec"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:42c14e187db8e394130d753063d0973261d8a03558e59a1f1e73b5d333b8f3fe"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a3ad41a553a703ca4be72d8c43e146dc22afd564accb08a601400be13f54cd4"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdca800d43d36b16ec326b52bf8cc3357de7a9429c679b6a472b2cafa3094c8"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:416139914d6df38c89d4ec0848b32f787b1ef884e695deb96e9dbaefcae48ef9"}, + {file = "bitarray-3.5.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6bd13626b77748357646cd281e872db27c47d8c7910400b372a156cd86aa3d8a"}, + {file = "bitarray-3.5.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2e48f62c9ac3b4bb042b0029332816e598fab054b3ea41da9077a01722604ae4"}, + {file = "bitarray-3.5.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f629971c094c7b25f508c5c072cc3d07f4b2c2b3d01e725d87ac0981ed83db2"}, + {file = "bitarray-3.5.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fefb9f347ac6df677ded02dd0f3c24224ed556191ac3143210b9bec969ac1d0"}, + {file = "bitarray-3.5.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7326e39f0aec95510ebc4f146ffbee4b039dbcce8538f2c56e78c60f2ebaaf2e"}, + {file = "bitarray-3.5.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:df3df12812020f21b19feb6bd34dc4ab4c25887d160b7284f3a64aeccabe6e18"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7cebe1c3cf090e977b631a0adc507934405d3aafe7da28c8dd311b7b5016b090"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:924672be0315e6ca9be75beaf20534044bdb280653dd718728904eb223905380"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90ed4f73ec5ff591589b1ed5ecdbd821bd6f6bd8c661f52bda0c6aadb7d62b27"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:772127ddcee9c94f1ed1dba740a4349070199bcd1626ca636a88d94401492ec2"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3eec87831651645a576c8879312533e3eb0f713c4f6fe088dda26690932a9e1"}, + {file = "bitarray-3.5.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:069952af5353514e16633af93d62905e43cddba3021518139a45305f0486b8fa"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e864dc56fe55abdfa20266acaf4118ff77d60bf147b9cee0df81b94b5d3379e4"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5979a3be3084541cdab8e1173579f73d392a0550f9dab0d9ce71016f141ddf25"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a73f2b248e9f26d316793caadcce5c3bf1d1c0969c9607d8c4492d609434439"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cefb7c74e19d4306d6034212f63b4b513978c5901c1400efdba3a1cb732325"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d26de8cce4e377c38be21e81b91d5c3aebceac78305a97248a646cf07439203b"}, + {file = "bitarray-3.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f30bad65085195fc72ede281f423caac976ffaa52a7980af3f556ac8dc19c83"}, + {file = "bitarray-3.5.2.tar.gz", hash = "sha256:08a86f85fd0534da3b753f072c7b0d392d4c0c9418fe2a358be378152cf6b085"}, ] [[package]] @@ -416,13 +428,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2025.6.15" +version = "2025.7.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" files = [ - {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, - {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, + {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, + {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, ] [[package]] @@ -818,78 +830,99 @@ files = [ [[package]] name = "coverage" -version = "7.9.1" +version = "7.10.1" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" files = [ - {file = "coverage-7.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc94d7c5e8423920787c33d811c0be67b7be83c705f001f7180c7b186dcf10ca"}, - {file = "coverage-7.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16aa0830d0c08a2c40c264cef801db8bc4fc0e1892782e45bcacbd5889270509"}, - {file = "coverage-7.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf95981b126f23db63e9dbe4cf65bd71f9a6305696fa5e2262693bc4e2183f5b"}, - {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f05031cf21699785cd47cb7485f67df619e7bcdae38e0fde40d23d3d0210d3c3"}, - {file = "coverage-7.9.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb4fbcab8764dc072cb651a4bcda4d11fb5658a1d8d68842a862a6610bd8cfa3"}, - {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0f16649a7330ec307942ed27d06ee7e7a38417144620bb3d6e9a18ded8a2d3e5"}, - {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cea0a27a89e6432705fffc178064503508e3c0184b4f061700e771a09de58187"}, - {file = "coverage-7.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e980b53a959fa53b6f05343afbd1e6f44a23ed6c23c4b4c56c6662bbb40c82ce"}, - {file = "coverage-7.9.1-cp310-cp310-win32.whl", hash = "sha256:70760b4c5560be6ca70d11f8988ee6542b003f982b32f83d5ac0b72476607b70"}, - {file = "coverage-7.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:a66e8f628b71f78c0e0342003d53b53101ba4e00ea8dabb799d9dba0abbbcebe"}, - {file = "coverage-7.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95c765060e65c692da2d2f51a9499c5e9f5cf5453aeaf1420e3fc847cc060582"}, - {file = "coverage-7.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba383dc6afd5ec5b7a0d0c23d38895db0e15bcba7fb0fa8901f245267ac30d86"}, - {file = "coverage-7.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37ae0383f13cbdcf1e5e7014489b0d71cc0106458878ccde52e8a12ced4298ed"}, - {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69aa417a030bf11ec46149636314c24c8d60fadb12fc0ee8f10fda0d918c879d"}, - {file = "coverage-7.9.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a4be2a28656afe279b34d4f91c3e26eccf2f85500d4a4ff0b1f8b54bf807338"}, - {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:382e7ddd5289f140259b610e5f5c58f713d025cb2f66d0eb17e68d0a94278875"}, - {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e5532482344186c543c37bfad0ee6069e8ae4fc38d073b8bc836fc8f03c9e250"}, - {file = "coverage-7.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a39d18b3f50cc121d0ce3838d32d58bd1d15dab89c910358ebefc3665712256c"}, - {file = "coverage-7.9.1-cp311-cp311-win32.whl", hash = "sha256:dd24bd8d77c98557880def750782df77ab2b6885a18483dc8588792247174b32"}, - {file = "coverage-7.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:6b55ad10a35a21b8015eabddc9ba31eb590f54adc9cd39bcf09ff5349fd52125"}, - {file = "coverage-7.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ad935f0016be24c0e97fc8c40c465f9c4b85cbbe6eac48934c0dc4d2568321e"}, - {file = "coverage-7.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8de12b4b87c20de895f10567639c0797b621b22897b0af3ce4b4e204a743626"}, - {file = "coverage-7.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5add197315a054e92cee1b5f686a2bcba60c4c3e66ee3de77ace6c867bdee7cb"}, - {file = "coverage-7.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600a1d4106fe66f41e5d0136dfbc68fe7200a5cbe85610ddf094f8f22e1b0300"}, - {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a876e4c3e5a2a1715a6608906aa5a2e0475b9c0f68343c2ada98110512ab1d8"}, - {file = "coverage-7.9.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81f34346dd63010453922c8e628a52ea2d2ccd73cb2487f7700ac531b247c8a5"}, - {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:888f8eee13f2377ce86d44f338968eedec3291876b0b8a7289247ba52cb984cd"}, - {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9969ef1e69b8c8e1e70d591f91bbc37fc9a3621e447525d1602801a24ceda898"}, - {file = "coverage-7.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60c458224331ee3f1a5b472773e4a085cc27a86a0b48205409d364272d67140d"}, - {file = "coverage-7.9.1-cp312-cp312-win32.whl", hash = "sha256:5f646a99a8c2b3ff4c6a6e081f78fad0dde275cd59f8f49dc4eab2e394332e74"}, - {file = "coverage-7.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:30f445f85c353090b83e552dcbbdad3ec84c7967e108c3ae54556ca69955563e"}, - {file = "coverage-7.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:af41da5dca398d3474129c58cb2b106a5d93bbb196be0d307ac82311ca234342"}, - {file = "coverage-7.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:31324f18d5969feef7344a932c32428a2d1a3e50b15a6404e97cba1cc9b2c631"}, - {file = "coverage-7.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c804506d624e8a20fb3108764c52e0eef664e29d21692afa375e0dd98dc384f"}, - {file = "coverage-7.9.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef64c27bc40189f36fcc50c3fb8f16ccda73b6a0b80d9bd6e6ce4cffcd810bbd"}, - {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4fe2348cc6ec372e25adec0219ee2334a68d2f5222e0cba9c0d613394e12d86"}, - {file = "coverage-7.9.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34ed2186fe52fcc24d4561041979a0dec69adae7bce2ae8d1c49eace13e55c43"}, - {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:25308bd3d00d5eedd5ae7d4357161f4df743e3c0240fa773ee1b0f75e6c7c0f1"}, - {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73e9439310f65d55a5a1e0564b48e34f5369bee943d72c88378f2d576f5a5751"}, - {file = "coverage-7.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37ab6be0859141b53aa89412a82454b482c81cf750de4f29223d52268a86de67"}, - {file = "coverage-7.9.1-cp313-cp313-win32.whl", hash = "sha256:64bdd969456e2d02a8b08aa047a92d269c7ac1f47e0c977675d550c9a0863643"}, - {file = "coverage-7.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:be9e3f68ca9edb897c2184ad0eee815c635565dbe7a0e7e814dc1f7cbab92c0a"}, - {file = "coverage-7.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:1c503289ffef1d5105d91bbb4d62cbe4b14bec4d13ca225f9c73cde9bb46207d"}, - {file = "coverage-7.9.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0b3496922cb5f4215bf5caaef4cf12364a26b0be82e9ed6d050f3352cf2d7ef0"}, - {file = "coverage-7.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9565c3ab1c93310569ec0d86b017f128f027cab0b622b7af288696d7ed43a16d"}, - {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2241ad5dbf79ae1d9c08fe52b36d03ca122fb9ac6bca0f34439e99f8327ac89f"}, - {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb5838701ca68b10ebc0937dbd0eb81974bac54447c55cd58dea5bca8451029"}, - {file = "coverage-7.9.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b30a25f814591a8c0c5372c11ac8967f669b97444c47fd794926e175c4047ece"}, - {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2d04b16a6062516df97969f1ae7efd0de9c31eb6ebdceaa0d213b21c0ca1a683"}, - {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7931b9e249edefb07cd6ae10c702788546341d5fe44db5b6108a25da4dca513f"}, - {file = "coverage-7.9.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52e92b01041151bf607ee858e5a56c62d4b70f4dac85b8c8cb7fb8a351ab2c10"}, - {file = "coverage-7.9.1-cp313-cp313t-win32.whl", hash = "sha256:684e2110ed84fd1ca5f40e89aa44adf1729dc85444004111aa01866507adf363"}, - {file = "coverage-7.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:437c576979e4db840539674e68c84b3cda82bc824dd138d56bead1435f1cb5d7"}, - {file = "coverage-7.9.1-cp313-cp313t-win_arm64.whl", hash = "sha256:18a0912944d70aaf5f399e350445738a1a20b50fbea788f640751c2ed9208b6c"}, - {file = "coverage-7.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f424507f57878e424d9a95dc4ead3fbdd72fd201e404e861e465f28ea469951"}, - {file = "coverage-7.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:535fde4001b2783ac80865d90e7cc7798b6b126f4cd8a8c54acfe76804e54e58"}, - {file = "coverage-7.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02532fd3290bb8fa6bec876520842428e2a6ed6c27014eca81b031c2d30e3f71"}, - {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56f5eb308b17bca3bbff810f55ee26d51926d9f89ba92707ee41d3c061257e55"}, - {file = "coverage-7.9.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfa447506c1a52271f1b0de3f42ea0fa14676052549095e378d5bff1c505ff7b"}, - {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9ca8e220006966b4a7b68e8984a6aee645a0384b0769e829ba60281fe61ec4f7"}, - {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:49f1d0788ba5b7ba65933f3a18864117c6506619f5ca80326b478f72acf3f385"}, - {file = "coverage-7.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:68cd53aec6f45b8e4724c0950ce86eacb775c6be01ce6e3669fe4f3a21e768ed"}, - {file = "coverage-7.9.1-cp39-cp39-win32.whl", hash = "sha256:95335095b6c7b1cc14c3f3f17d5452ce677e8490d101698562b2ffcacc304c8d"}, - {file = "coverage-7.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:e1b5191d1648acc439b24721caab2fd0c86679d8549ed2c84d5a7ec1bedcc244"}, - {file = "coverage-7.9.1-pp39.pp310.pp311-none-any.whl", hash = "sha256:db0f04118d1db74db6c9e1cb1898532c7dcc220f1d2718f058601f7c3f499514"}, - {file = "coverage-7.9.1-py3-none-any.whl", hash = "sha256:66b974b145aa189516b6bf2d8423e888b742517d37872f6ee4c5be0073bd9a3c"}, - {file = "coverage-7.9.1.tar.gz", hash = "sha256:6cf43c78c4282708a28e466316935ec7489a9c487518a77fa68f716c67909cec"}, + {file = "coverage-7.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1c86eb388bbd609d15560e7cc0eb936c102b6f43f31cf3e58b4fd9afe28e1372"}, + {file = "coverage-7.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b4ba0f488c1bdb6bd9ba81da50715a372119785458831c73428a8566253b86b"}, + {file = "coverage-7.10.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:083442ecf97d434f0cb3b3e3676584443182653da08b42e965326ba12d6b5f2a"}, + {file = "coverage-7.10.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c1a40c486041006b135759f59189385da7c66d239bad897c994e18fd1d0c128f"}, + {file = "coverage-7.10.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3beb76e20b28046989300c4ea81bf690df84ee98ade4dc0bbbf774a28eb98440"}, + {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc265a7945e8d08da28999ad02b544963f813a00f3ed0a7a0ce4165fd77629f8"}, + {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:47c91f32ba4ac46f1e224a7ebf3f98b4b24335bad16137737fe71a5961a0665c"}, + {file = "coverage-7.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1a108dd78ed185020f66f131c60078f3fae3f61646c28c8bb4edd3fa121fc7fc"}, + {file = "coverage-7.10.1-cp310-cp310-win32.whl", hash = "sha256:7092cc82382e634075cc0255b0b69cb7cada7c1f249070ace6a95cb0f13548ef"}, + {file = "coverage-7.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:ac0c5bba938879c2fc0bc6c1b47311b5ad1212a9dcb8b40fe2c8110239b7faed"}, + {file = "coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f"}, + {file = "coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1"}, + {file = "coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437"}, + {file = "coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7"}, + {file = "coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770"}, + {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262"}, + {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3"}, + {file = "coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0"}, + {file = "coverage-7.10.1-cp311-cp311-win32.whl", hash = "sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be"}, + {file = "coverage-7.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c"}, + {file = "coverage-7.10.1-cp311-cp311-win_arm64.whl", hash = "sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293"}, + {file = "coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4"}, + {file = "coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e"}, + {file = "coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4"}, + {file = "coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a"}, + {file = "coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe"}, + {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386"}, + {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6"}, + {file = "coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f"}, + {file = "coverage-7.10.1-cp312-cp312-win32.whl", hash = "sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca"}, + {file = "coverage-7.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3"}, + {file = "coverage-7.10.1-cp312-cp312-win_arm64.whl", hash = "sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4"}, + {file = "coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39"}, + {file = "coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7"}, + {file = "coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892"}, + {file = "coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7"}, + {file = "coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994"}, + {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0"}, + {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7"}, + {file = "coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7"}, + {file = "coverage-7.10.1-cp313-cp313-win32.whl", hash = "sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7"}, + {file = "coverage-7.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e"}, + {file = "coverage-7.10.1-cp313-cp313-win_arm64.whl", hash = "sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4"}, + {file = "coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72"}, + {file = "coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af"}, + {file = "coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7"}, + {file = "coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759"}, + {file = "coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324"}, + {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53"}, + {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f"}, + {file = "coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd"}, + {file = "coverage-7.10.1-cp313-cp313t-win32.whl", hash = "sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c"}, + {file = "coverage-7.10.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18"}, + {file = "coverage-7.10.1-cp313-cp313t-win_arm64.whl", hash = "sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4"}, + {file = "coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c"}, + {file = "coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e"}, + {file = "coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b"}, + {file = "coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41"}, + {file = "coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f"}, + {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1"}, + {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2"}, + {file = "coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4"}, + {file = "coverage-7.10.1-cp314-cp314-win32.whl", hash = "sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613"}, + {file = "coverage-7.10.1-cp314-cp314-win_amd64.whl", hash = "sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e"}, + {file = "coverage-7.10.1-cp314-cp314-win_arm64.whl", hash = "sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652"}, + {file = "coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894"}, + {file = "coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5"}, + {file = "coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2"}, + {file = "coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb"}, + {file = "coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b"}, + {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea"}, + {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd"}, + {file = "coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d"}, + {file = "coverage-7.10.1-cp314-cp314t-win32.whl", hash = "sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47"}, + {file = "coverage-7.10.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651"}, + {file = "coverage-7.10.1-cp314-cp314t-win_arm64.whl", hash = "sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab"}, + {file = "coverage-7.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:57b6e8789cbefdef0667e4a94f8ffa40f9402cee5fc3b8e4274c894737890145"}, + {file = "coverage-7.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85b22a9cce00cb03156334da67eb86e29f22b5e93876d0dd6a98646bb8a74e53"}, + {file = "coverage-7.10.1-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:97b6983a2f9c76d345ca395e843a049390b39652984e4a3b45b2442fa733992d"}, + {file = "coverage-7.10.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ddf2a63b91399a1c2f88f40bc1705d5a7777e31c7e9eb27c602280f477b582ba"}, + {file = "coverage-7.10.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:47ab6dbbc31a14c5486420c2c1077fcae692097f673cf5be9ddbec8cdaa4cdbc"}, + {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21eb7d8b45d3700e7c2936a736f732794c47615a20f739f4133d5230a6512a88"}, + {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:283005bb4d98ae33e45f2861cd2cde6a21878661c9ad49697f6951b358a0379b"}, + {file = "coverage-7.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:fefe31d61d02a8b2c419700b1fade9784a43d726de26495f243b663cd9fe1513"}, + {file = "coverage-7.10.1-cp39-cp39-win32.whl", hash = "sha256:e8ab8e4c7ec7f8a55ac05b5b715a051d74eac62511c6d96d5bb79aaafa3b04cf"}, + {file = "coverage-7.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:c36baa0ecde742784aa76c2b816466d3ea888d5297fda0edbac1bf48fa94688a"}, + {file = "coverage-7.10.1-py3-none-any.whl", hash = "sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7"}, + {file = "coverage-7.10.1.tar.gz", hash = "sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57"}, ] [package.dependencies] @@ -1026,13 +1059,13 @@ files = [ [[package]] name = "distlib" -version = "0.3.9" +version = "0.4.0" description = "Distribution utilities" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, + {file = "distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16"}, + {file = "distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d"}, ] [[package]] @@ -1453,129 +1486,129 @@ files = [ [[package]] name = "grpcio" -version = "1.73.0" +version = "1.74.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" files = [ - {file = "grpcio-1.73.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d050197eeed50f858ef6c51ab09514856f957dba7b1f7812698260fc9cc417f6"}, - {file = "grpcio-1.73.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ebb8d5f4b0200916fb292a964a4d41210de92aba9007e33d8551d85800ea16cb"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c0811331b469e3f15dda5f90ab71bcd9681189a83944fd6dc908e2c9249041ef"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12787c791c3993d0ea1cc8bf90393647e9a586066b3b322949365d2772ba965b"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c17771e884fddf152f2a0df12478e8d02853e5b602a10a9a9f1f52fa02b1d32"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:275e23d4c428c26b51857bbd95fcb8e528783597207ec592571e4372b300a29f"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9ffc972b530bf73ef0f948f799482a1bf12d9b6f33406a8e6387c0ca2098a833"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d269df64aff092b2cec5e015d8ae09c7e90888b5c35c24fdca719a2c9f35"}, - {file = "grpcio-1.73.0-cp310-cp310-win32.whl", hash = "sha256:072d8154b8f74300ed362c01d54af8b93200c1a9077aeaea79828d48598514f1"}, - {file = "grpcio-1.73.0-cp310-cp310-win_amd64.whl", hash = "sha256:ce953d9d2100e1078a76a9dc2b7338d5415924dc59c69a15bf6e734db8a0f1ca"}, - {file = "grpcio-1.73.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:51036f641f171eebe5fa7aaca5abbd6150f0c338dab3a58f9111354240fe36ec"}, - {file = "grpcio-1.73.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d12bbb88381ea00bdd92c55aff3da3391fd85bc902c41275c8447b86f036ce0f"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:483c507c2328ed0e01bc1adb13d1eada05cc737ec301d8e5a8f4a90f387f1790"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c201a34aa960c962d0ce23fe5f423f97e9d4b518ad605eae6d0a82171809caaa"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859f70c8e435e8e1fa060e04297c6818ffc81ca9ebd4940e180490958229a45a"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e2459a27c6886e7e687e4e407778425f3c6a971fa17a16420227bda39574d64b"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e0084d4559ee3dbdcce9395e1bc90fdd0262529b32c417a39ecbc18da8074ac7"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef5fff73d5f724755693a464d444ee0a448c6cdfd3c1616a9223f736c622617d"}, - {file = "grpcio-1.73.0-cp311-cp311-win32.whl", hash = "sha256:965a16b71a8eeef91fc4df1dc40dc39c344887249174053814f8a8e18449c4c3"}, - {file = "grpcio-1.73.0-cp311-cp311-win_amd64.whl", hash = "sha256:b71a7b4483d1f753bbc11089ff0f6fa63b49c97a9cc20552cded3fcad466d23b"}, - {file = "grpcio-1.73.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fb9d7c27089d9ba3746f18d2109eb530ef2a37452d2ff50f5a6696cd39167d3b"}, - {file = "grpcio-1.73.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:128ba2ebdac41e41554d492b82c34586a90ebd0766f8ebd72160c0e3a57b9155"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:068ecc415f79408d57a7f146f54cdf9f0acb4b301a52a9e563973dc981e82f3d"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ddc1cfb2240f84d35d559ade18f69dcd4257dbaa5ba0de1a565d903aaab2968"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53007f70d9783f53b41b4cf38ed39a8e348011437e4c287eee7dd1d39d54b2f"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4dd8d8d092efede7d6f48d695ba2592046acd04ccf421436dd7ed52677a9ad29"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:70176093d0a95b44d24baa9c034bb67bfe2b6b5f7ebc2836f4093c97010e17fd"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:085ebe876373ca095e24ced95c8f440495ed0b574c491f7f4f714ff794bbcd10"}, - {file = "grpcio-1.73.0-cp312-cp312-win32.whl", hash = "sha256:cfc556c1d6aef02c727ec7d0016827a73bfe67193e47c546f7cadd3ee6bf1a60"}, - {file = "grpcio-1.73.0-cp312-cp312-win_amd64.whl", hash = "sha256:bbf45d59d090bf69f1e4e1594832aaf40aa84b31659af3c5e2c3f6a35202791a"}, - {file = "grpcio-1.73.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:da1d677018ef423202aca6d73a8d3b2cb245699eb7f50eb5f74cae15a8e1f724"}, - {file = "grpcio-1.73.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:36bf93f6a657f37c131d9dd2c391b867abf1426a86727c3575393e9e11dadb0d"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:d84000367508ade791d90c2bafbd905574b5ced8056397027a77a215d601ba15"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c98ba1d928a178ce33f3425ff823318040a2b7ef875d30a0073565e5ceb058d9"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a73c72922dfd30b396a5f25bb3a4590195ee45ecde7ee068acb0892d2900cf07"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:10e8edc035724aba0346a432060fd192b42bd03675d083c01553cab071a28da5"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f5cdc332b503c33b1643b12ea933582c7b081957c8bc2ea4cc4bc58054a09288"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:07ad7c57233c2109e4ac999cb9c2710c3b8e3f491a73b058b0ce431f31ed8145"}, - {file = "grpcio-1.73.0-cp313-cp313-win32.whl", hash = "sha256:0eb5df4f41ea10bda99a802b2a292d85be28958ede2a50f2beb8c7fc9a738419"}, - {file = "grpcio-1.73.0-cp313-cp313-win_amd64.whl", hash = "sha256:38cf518cc54cd0c47c9539cefa8888549fcc067db0b0c66a46535ca8032020c4"}, - {file = "grpcio-1.73.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:1284850607901cfe1475852d808e5a102133461ec9380bc3fc9ebc0686ee8e32"}, - {file = "grpcio-1.73.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:0e092a4b28eefb63eec00d09ef33291cd4c3a0875cde29aec4d11d74434d222c"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:33577fe7febffe8ebad458744cfee8914e0c10b09f0ff073a6b149a84df8ab8f"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60813d8a16420d01fa0da1fc7ebfaaa49a7e5051b0337cd48f4f950eb249a08e"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9c957dc65e5d474378d7bcc557e9184576605d4b4539e8ead6e351d7ccce20"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3902b71407d021163ea93c70c8531551f71ae742db15b66826cf8825707d2908"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1dd7fa7276dcf061e2d5f9316604499eea06b1b23e34a9380572d74fe59915a8"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2d1510c4ea473110cb46a010555f2c1a279d1c256edb276e17fa571ba1e8927c"}, - {file = "grpcio-1.73.0-cp39-cp39-win32.whl", hash = "sha256:d0a1517b2005ba1235a1190b98509264bf72e231215dfeef8db9a5a92868789e"}, - {file = "grpcio-1.73.0-cp39-cp39-win_amd64.whl", hash = "sha256:6228f7eb6d9f785f38b589d49957fca5df3d5b5349e77d2d89b14e390165344c"}, - {file = "grpcio-1.73.0.tar.gz", hash = "sha256:3af4c30918a7f0d39de500d11255f8d9da4f30e94a2033e70fe2a720e184bd8e"}, + {file = "grpcio-1.74.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:85bd5cdf4ed7b2d6438871adf6afff9af7096486fcf51818a81b77ef4dd30907"}, + {file = "grpcio-1.74.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:68c8ebcca945efff9d86d8d6d7bfb0841cf0071024417e2d7f45c5e46b5b08eb"}, + {file = "grpcio-1.74.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:e154d230dc1bbbd78ad2fdc3039fa50ad7ffcf438e4eb2fa30bce223a70c7486"}, + {file = "grpcio-1.74.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8978003816c7b9eabe217f88c78bc26adc8f9304bf6a594b02e5a49b2ef9c11"}, + {file = "grpcio-1.74.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3d7bd6e3929fd2ea7fbc3f562e4987229ead70c9ae5f01501a46701e08f1ad9"}, + {file = "grpcio-1.74.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:136b53c91ac1d02c8c24201bfdeb56f8b3ac3278668cbb8e0ba49c88069e1bdc"}, + {file = "grpcio-1.74.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fe0f540750a13fd8e5da4b3eaba91a785eea8dca5ccd2bc2ffe978caa403090e"}, + {file = "grpcio-1.74.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4e4181bfc24413d1e3a37a0b7889bea68d973d4b45dd2bc68bb766c140718f82"}, + {file = "grpcio-1.74.0-cp310-cp310-win32.whl", hash = "sha256:1733969040989f7acc3d94c22f55b4a9501a30f6aaacdbccfaba0a3ffb255ab7"}, + {file = "grpcio-1.74.0-cp310-cp310-win_amd64.whl", hash = "sha256:9e912d3c993a29df6c627459af58975b2e5c897d93287939b9d5065f000249b5"}, + {file = "grpcio-1.74.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:69e1a8180868a2576f02356565f16635b99088da7df3d45aaa7e24e73a054e31"}, + {file = "grpcio-1.74.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8efe72fde5500f47aca1ef59495cb59c885afe04ac89dd11d810f2de87d935d4"}, + {file = "grpcio-1.74.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:a8f0302f9ac4e9923f98d8e243939a6fb627cd048f5cd38595c97e38020dffce"}, + {file = "grpcio-1.74.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f609a39f62a6f6f05c7512746798282546358a37ea93c1fcbadf8b2fed162e3"}, + {file = "grpcio-1.74.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c98e0b7434a7fa4e3e63f250456eaef52499fba5ae661c58cc5b5477d11e7182"}, + {file = "grpcio-1.74.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:662456c4513e298db6d7bd9c3b8df6f75f8752f0ba01fb653e252ed4a59b5a5d"}, + {file = "grpcio-1.74.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3d14e3c4d65e19d8430a4e28ceb71ace4728776fd6c3ce34016947474479683f"}, + {file = "grpcio-1.74.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bf949792cee20d2078323a9b02bacbbae002b9e3b9e2433f2741c15bdeba1c4"}, + {file = "grpcio-1.74.0-cp311-cp311-win32.whl", hash = "sha256:55b453812fa7c7ce2f5c88be3018fb4a490519b6ce80788d5913f3f9d7da8c7b"}, + {file = "grpcio-1.74.0-cp311-cp311-win_amd64.whl", hash = "sha256:86ad489db097141a907c559988c29718719aa3e13370d40e20506f11b4de0d11"}, + {file = "grpcio-1.74.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:8533e6e9c5bd630ca98062e3a1326249e6ada07d05acf191a77bc33f8948f3d8"}, + {file = "grpcio-1.74.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:2918948864fec2a11721d91568effffbe0a02b23ecd57f281391d986847982f6"}, + {file = "grpcio-1.74.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:60d2d48b0580e70d2e1954d0d19fa3c2e60dd7cbed826aca104fff518310d1c5"}, + {file = "grpcio-1.74.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3601274bc0523f6dc07666c0e01682c94472402ac2fd1226fd96e079863bfa49"}, + {file = "grpcio-1.74.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:176d60a5168d7948539def20b2a3adcce67d72454d9ae05969a2e73f3a0feee7"}, + {file = "grpcio-1.74.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e759f9e8bc908aaae0412642afe5416c9f983a80499448fcc7fab8692ae044c3"}, + {file = "grpcio-1.74.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9e7c4389771855a92934b2846bd807fc25a3dfa820fd912fe6bd8136026b2707"}, + {file = "grpcio-1.74.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cce634b10aeab37010449124814b05a62fb5f18928ca878f1bf4750d1f0c815b"}, + {file = "grpcio-1.74.0-cp312-cp312-win32.whl", hash = "sha256:885912559974df35d92219e2dc98f51a16a48395f37b92865ad45186f294096c"}, + {file = "grpcio-1.74.0-cp312-cp312-win_amd64.whl", hash = "sha256:42f8fee287427b94be63d916c90399ed310ed10aadbf9e2e5538b3e497d269bc"}, + {file = "grpcio-1.74.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:2bc2d7d8d184e2362b53905cb1708c84cb16354771c04b490485fa07ce3a1d89"}, + {file = "grpcio-1.74.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:c14e803037e572c177ba54a3e090d6eb12efd795d49327c5ee2b3bddb836bf01"}, + {file = "grpcio-1.74.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f6ec94f0e50eb8fa1744a731088b966427575e40c2944a980049798b127a687e"}, + {file = "grpcio-1.74.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:566b9395b90cc3d0d0c6404bc8572c7c18786ede549cdb540ae27b58afe0fb91"}, + {file = "grpcio-1.74.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1ea6176d7dfd5b941ea01c2ec34de9531ba494d541fe2057c904e601879f249"}, + {file = "grpcio-1.74.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:64229c1e9cea079420527fa8ac45d80fc1e8d3f94deaa35643c381fa8d98f362"}, + {file = "grpcio-1.74.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:0f87bddd6e27fc776aacf7ebfec367b6d49cad0455123951e4488ea99d9b9b8f"}, + {file = "grpcio-1.74.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3b03d8f2a07f0fea8c8f74deb59f8352b770e3900d143b3d1475effcb08eec20"}, + {file = "grpcio-1.74.0-cp313-cp313-win32.whl", hash = "sha256:b6a73b2ba83e663b2480a90b82fdae6a7aa6427f62bf43b29912c0cfd1aa2bfa"}, + {file = "grpcio-1.74.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd3c71aeee838299c5887230b8a1822795325ddfea635edd82954c1eaa831e24"}, + {file = "grpcio-1.74.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:4bc5fca10aaf74779081e16c2bcc3d5ec643ffd528d9e7b1c9039000ead73bae"}, + {file = "grpcio-1.74.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:6bab67d15ad617aff094c382c882e0177637da73cbc5532d52c07b4ee887a87b"}, + {file = "grpcio-1.74.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:655726919b75ab3c34cdad39da5c530ac6fa32696fb23119e36b64adcfca174a"}, + {file = "grpcio-1.74.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a2b06afe2e50ebfd46247ac3ba60cac523f54ec7792ae9ba6073c12daf26f0a"}, + {file = "grpcio-1.74.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f251c355167b2360537cf17bea2cf0197995e551ab9da6a0a59b3da5e8704f9"}, + {file = "grpcio-1.74.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8f7b5882fb50632ab1e48cb3122d6df55b9afabc265582808036b6e51b9fd6b7"}, + {file = "grpcio-1.74.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:834988b6c34515545b3edd13e902c1acdd9f2465d386ea5143fb558f153a7176"}, + {file = "grpcio-1.74.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:22b834cef33429ca6cc28303c9c327ba9a3fafecbf62fae17e9a7b7163cc43ac"}, + {file = "grpcio-1.74.0-cp39-cp39-win32.whl", hash = "sha256:7d95d71ff35291bab3f1c52f52f474c632db26ea12700c2ff0ea0532cb0b5854"}, + {file = "grpcio-1.74.0-cp39-cp39-win_amd64.whl", hash = "sha256:ecde9ab49f58433abe02f9ed076c7b5be839cf0153883a6d23995937a82392fa"}, + {file = "grpcio-1.74.0.tar.gz", hash = "sha256:80d1f4fbb35b0742d3e3d3bb654b7381cd5f015f8497279a1e9c21ba623e01b1"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.73.0)"] +protobuf = ["grpcio-tools (>=1.74.0)"] [[package]] name = "grpcio-tools" -version = "1.71.0" +version = "1.71.2" description = "Protobuf code generator for gRPC" optional = false python-versions = ">=3.9" files = [ - {file = "grpcio_tools-1.71.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:f4ad7f0d756546902597053d70b3af2606fbd70d7972876cd75c1e241d22ae00"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:64bdb291df61cf570b5256777ad5fe2b1db6d67bc46e55dc56a0a862722ae329"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:8dd9795e982d77a4b496f7278b943c2563d9afde2069cdee78c111a40cc4d675"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1b5860c41a36b26fec4f52998f1a451d0525a5c9a4fb06b6ea3e9211abdb925"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3059c14035e5dc03d462f261e5900b9a077fd1a36976c3865b8507474520bad4"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f360981b215b1d5aff9235b37e7e1826246e35bbac32a53e41d4e990a37b8f4c"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bfe3888c3bbe16a5aa39409bc38744a31c0c3d2daa2b0095978c56e106c85b42"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:145985c0bf12131f0a1503e65763e0f060473f7f3928ed1ff3fb0e8aad5bc8ac"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-win32.whl", hash = "sha256:82c430edd939bb863550ee0fecf067d78feff828908a1b529bbe33cc57f2419c"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-win_amd64.whl", hash = "sha256:83e90724e3f02415c628e4ead1d6ffe063820aaaa078d9a39176793df958cd5a"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:1f19b16b49afa5d21473f49c0966dd430c88d089cd52ac02404d8cef67134efb"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:459c8f5e00e390aecd5b89de67deb3ec7188a274bc6cb50e43cef35ab3a3f45d"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:edab7e6518de01196be37f96cb1e138c3819986bf5e2a6c9e1519b4d716b2f5a"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b93b9f6adc7491d4c10144c0643409db298e5e63c997106a804f6f0248dbaf4"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ae5f2efa9e644c10bf1021600bfc099dfbd8e02b184d2d25dc31fcd6c2bc59e"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:65aa082f4435571d65d5ce07fc444f23c3eff4f3e34abef599ef8c9e1f6f360f"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1331e726e08b7bdcbf2075fcf4b47dff07842b04845e6e220a08a4663e232d7f"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6693a7d3ba138b0e693b3d1f687cdd9db9e68976c3fa2b951c17a072fea8b583"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-win32.whl", hash = "sha256:6d11ed3ff7b6023b5c72a8654975324bb98c1092426ba5b481af406ff559df00"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-win_amd64.whl", hash = "sha256:072b2a5805ac97e4623b3aa8f7818275f3fb087f4aa131b0fce00471065f6eaa"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:61c0409d5bdac57a7bd0ce0ab01c1c916728fe4c8a03d77a25135ad481eb505c"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:28784f39921d061d2164a9dcda5164a69d07bf29f91f0ea50b505958292312c9"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:192808cf553cedca73f0479cc61d5684ad61f24db7a5f3c4dfe1500342425866"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:989ee9da61098230d3d4c8f8f8e27c2de796f1ff21b1c90110e636d9acd9432b"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:541a756276c8a55dec991f6c0106ae20c8c8f5ce8d0bdbfcb01e2338d1a8192b"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:870c0097700d13c403e5517cb7750ab5b4a791ce3e71791c411a38c5468b64bd"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:abd57f615e88bf93c3c6fd31f923106e3beb12f8cd2df95b0d256fa07a7a0a57"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:753270e2d06d37e6d7af8967d1d059ec635ad215882041a36294f4e2fd502b2e"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-win32.whl", hash = "sha256:0e647794bd7138b8c215e86277a9711a95cf6a03ff6f9e555d54fdf7378b9f9d"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:48debc879570972d28bfe98e4970eff25bb26da3f383e0e49829b2d2cd35ad87"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:9a78d07d6c301a25ef5ede962920a522556a1dfee1ccc05795994ceb867f766c"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:580ac88141c9815557e63c9c04f5b1cdb19b4db8d0cb792b573354bde1ee8b12"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f7c678e68ece0ae908ecae1c4314a0c2c7f83e26e281738b9609860cc2c82d96"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56ecd6cc89b5e5eed1de5eb9cafce86c9c9043ee3840888cc464d16200290b53"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e52a041afc20ab2431d756b6295d727bd7adee813b21b06a3483f4a7a15ea15f"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2a1712f12102b60c8d92779b89d0504e0d6f3a59f2b933e5622b8583f5c02992"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:41878cb7a75477e62fdd45e7e9155b3af1b7a5332844021e2511deaf99ac9e6c"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:682e958b476049ccc14c71bedf3f979bced01f6e0c04852efc5887841a32ad6b"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-win32.whl", hash = "sha256:0ccfb837152b7b858b9f26bb110b3ae8c46675d56130f6c2f03605c4f129be13"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:ffff9bc5eacb34dd26b487194f7d44a3e64e752fc2cf049d798021bf25053b87"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:834959b6eceb85de5217a411aba1643b5f782798680c122202d6a06177226644"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:e3ae9556e2a1cd70e7d7b0e0459c35af71d51a7dae4cf36075068011a69f13ec"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:77fe6db1334e0ce318b2cb4e70afa94e0c173ed1a533d37aea69ad9f61ae8ea9"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57e3e2544c306b60ef2d76570bac4e977be1ad548641c9eec130c3bc47e80141"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af39e245fa56f7f5c2fe86b7d6c1b78f395c07e54d5613cbdbb3c24769a92b6e"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8f987d0053351217954543b174b0bddbf51d45b3cfcf8d6de97b0a43d264d753"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8e6cdbba4dae7b37b0d25d074614be9936fb720144420f03d9f142a80be69ba2"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3adc8b229e60c77bab5a5d62b415667133bd5ced7d59b5f71d6317c9143631e"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-win32.whl", hash = "sha256:f68334d28a267fabec6e70cb5986e9999cfbfd14db654094ddf9aedd804a293a"}, - {file = "grpcio_tools-1.71.0-cp39-cp39-win_amd64.whl", hash = "sha256:1291a6136c07a86c3bb09f6c33f5cf227cc14956edd1b85cb572327a36e0aef8"}, - {file = "grpcio_tools-1.71.0.tar.gz", hash = "sha256:38dba8e0d5e0fb23a034e09644fdc6ed862be2371887eee54901999e8f6792a8"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-linux_armv7l.whl", hash = "sha256:ab8a28c2e795520d6dc6ffd7efaef4565026dbf9b4f5270de2f3dd1ce61d2318"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-macosx_10_14_universal2.whl", hash = "sha256:654ecb284a592d39a85556098b8c5125163435472a20ead79b805cf91814b99e"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b49aded2b6c890ff690d960e4399a336c652315c6342232c27bd601b3705739e"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7811a6fc1c4b4e5438e5eb98dbd52c2dc4a69d1009001c13356e6636322d41a"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:393a9c80596aa2b3f05af854e23336ea8c295593bbb35d9adae3d8d7943672bd"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:823e1f23c12da00f318404c4a834bb77cd150d14387dee9789ec21b335249e46"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9bfbea79d6aec60f2587133ba766ede3dc3e229641d1a1e61d790d742a3d19eb"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:32f3a67b10728835b5ffb63fbdbe696d00e19a27561b9cf5153e72dbb93021ba"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-win32.whl", hash = "sha256:7fcf9d92c710bfc93a1c0115f25e7d49a65032ff662b38b2f704668ce0a938df"}, + {file = "grpcio_tools-1.71.2-cp310-cp310-win_amd64.whl", hash = "sha256:914b4275be810290266e62349f2d020bb7cc6ecf9edb81da3c5cddb61a95721b"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-linux_armv7l.whl", hash = "sha256:0acb8151ea866be5b35233877fbee6445c36644c0aa77e230c9d1b46bf34b18b"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:b28f8606f4123edb4e6da281547465d6e449e89f0c943c376d1732dc65e6d8b3"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:cbae6f849ad2d1f5e26cd55448b9828e678cb947fa32c8729d01998238266a6a"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4d1027615cfb1e9b1f31f2f384251c847d68c2f3e025697e5f5c72e26ed1316"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9bac95662dc69338edb9eb727cc3dd92342131b84b12b3e8ec6abe973d4cbf1b"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c50250c7248055040f89eb29ecad39d3a260a4b6d3696af1575945f7a8d5dcdc"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6ab1ad955e69027ef12ace4d700c5fc36341bdc2f420e87881e9d6d02af3d7b8"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dd75dde575781262b6b96cc6d0b2ac6002b2f50882bf5e06713f1bf364ee6e09"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-win32.whl", hash = "sha256:9a3cb244d2bfe0d187f858c5408d17cb0e76ca60ec9a274c8fd94cc81457c7fc"}, + {file = "grpcio_tools-1.71.2-cp311-cp311-win_amd64.whl", hash = "sha256:00eb909997fd359a39b789342b476cbe291f4dd9c01ae9887a474f35972a257e"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-linux_armv7l.whl", hash = "sha256:bfc0b5d289e383bc7d317f0e64c9dfb59dc4bef078ecd23afa1a816358fb1473"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b4669827716355fa913b1376b1b985855d5cfdb63443f8d18faf210180199006"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:d4071f9b44564e3f75cdf0f05b10b3e8c7ea0ca5220acbf4dc50b148552eef2f"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a28eda8137d587eb30081384c256f5e5de7feda34776f89848b846da64e4be35"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b19c083198f5eb15cc69c0a2f2c415540cbc636bfe76cea268e5894f34023b40"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:784c284acda0d925052be19053d35afbf78300f4d025836d424cf632404f676a"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:381e684d29a5d052194e095546eef067201f5af30fd99b07b5d94766f44bf1ae"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3e4b4801fabd0427fc61d50d09588a01b1cfab0ec5e8a5f5d515fbdd0891fd11"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-win32.whl", hash = "sha256:84ad86332c44572305138eafa4cc30040c9a5e81826993eae8227863b700b490"}, + {file = "grpcio_tools-1.71.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e1108d37eecc73b1c4a27350a6ed921b5dda25091700c1da17cfe30761cd462"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-linux_armv7l.whl", hash = "sha256:b0f0a8611614949c906e25c225e3360551b488d10a366c96d89856bcef09f729"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:7931783ea7ac42ac57f94c5047d00a504f72fbd96118bf7df911bb0e0435fc0f"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:d188dc28e069aa96bb48cb11b1338e47ebdf2e2306afa58a8162cc210172d7a8"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f36c4b3cc42ad6ef67430639174aaf4a862d236c03c4552c4521501422bfaa26"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bd9ed12ce93b310f0cef304176049d0bc3b9f825e9c8c6a23e35867fed6affd"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7ce27e76dd61011182d39abca38bae55d8a277e9b7fe30f6d5466255baccb579"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:dcc17bf59b85c3676818f2219deacac0156492f32ca165e048427d2d3e6e1157"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:706360c71bdd722682927a1fb517c276ccb816f1e30cb71f33553e5817dc4031"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-win32.whl", hash = "sha256:bcf751d5a81c918c26adb2d6abcef71035c77d6eb9dd16afaf176ee096e22c1d"}, + {file = "grpcio_tools-1.71.2-cp313-cp313-win_amd64.whl", hash = "sha256:b1581a1133552aba96a730178bc44f6f1a071f0eb81c5b6bc4c0f89f5314e2b8"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-linux_armv7l.whl", hash = "sha256:344aa8973850bc36fd0ce81aa6443bd5ab41dc3a25903b36cd1e70f71ceb53c9"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-macosx_10_14_universal2.whl", hash = "sha256:4d32450a4c8a97567b32154379d97398b7eba090bce756aff57aef5d80d8c953"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f596dbc1e46f9e739e09af553bf3c3321be3d603e579f38ffa9f2e0e4a25f4f7"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7723ff599104188cb870d01406b65e67e2493578347cc13d50e9dc372db36ef"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b018b6b69641b10864a3f19dd3c2b7ca3dfce4460eb836ab28b058e7deb3e"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0dd058c06ce95a99f78851c05db30af507227878013d46a8339e44fb24855ff7"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b3312bdd5952bba2ef8e4314b2e2f886fa23b2f6d605cd56097605ae65d30515"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:085de63843946b967ae561e7dd832fa03147f01282f462a0a0cbe1571d9ee986"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-win32.whl", hash = "sha256:c1ff5f79f49768d4c561508b62878f27198b3420a87390e0c51969b8dbfcfca8"}, + {file = "grpcio_tools-1.71.2-cp39-cp39-win_amd64.whl", hash = "sha256:c3e02b345cf96673dcf77599a61482f68c318a62c9cde20a5ae0882619ff8c98"}, + {file = "grpcio_tools-1.71.2.tar.gz", hash = "sha256:b5304d65c7569b21270b568e404a5a843cf027c66552a6a0978b23f137679c09"}, ] [package.dependencies] -grpcio = ">=1.71.0" +grpcio = ">=1.71.2" protobuf = ">=5.26.1,<6.0dev" setuptools = "*" @@ -1706,109 +1739,121 @@ files = [ [[package]] name = "multidict" -version = "6.5.1" +version = "6.6.3" description = "multidict implementation" optional = false python-versions = ">=3.9" files = [ - {file = "multidict-6.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7b7d75cb5b90fa55700edbbdca12cd31f6b19c919e98712933c7a1c3c6c71b73"}, - {file = "multidict-6.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad32e43e028276612bf5bab762677e7d131d2df00106b53de2efb2b8a28d5bce"}, - {file = "multidict-6.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0499cbc67c1b02ba333781798560c5b1e7cd03e9273b678c92c6de1b1657fac9"}, - {file = "multidict-6.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c78fc6bc1dd7a139dab7ee9046f79a2082dce9360e3899b762615d564e2e857"}, - {file = "multidict-6.5.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f369d6619b24da4df4a02455fea8641fe8324fc0100a3e0dcebc5bf55fa903f3"}, - {file = "multidict-6.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:719af50a44ce9cf9ab15d829bf8cf146de486b4816284c17c3c9b9c9735abb8f"}, - {file = "multidict-6.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:199a0a9b3de8bbeb6881460d32b857dc7abec94448aeb6d607c336628c53580a"}, - {file = "multidict-6.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fe09318a28b00c6f43180d0d889df1535e98fb2d93d25955d46945f8d5410d87"}, - {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab94923ae54385ed480e4ab19f10269ee60f3eabd0b35e2a5d1ba6dbf3b0cc27"}, - {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:de2b253a3a90e1fa55eef5f9b3146bb5c722bd3400747112c9963404a2f5b9cf"}, - {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b3bd88c1bc1f749db6a1e1f01696c3498bc25596136eceebb45766d24a320b27"}, - {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0ce8f0ea49e8f54203f7d80e083a7aa017dbcb6f2d76d674273e25144c8aa3d7"}, - {file = "multidict-6.5.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dc62c8ac1b73ec704ed1a05be0267358fd5c99d1952f30448db1637336635cf8"}, - {file = "multidict-6.5.1-cp310-cp310-win32.whl", hash = "sha256:7a365a579fb3e067943d0278474e14c2244c252f460b401ccbf49f962e7b70fa"}, - {file = "multidict-6.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:4b299a2ffed33ad0733a9d47805b538d59465f8439bfea44df542cfb285c4db2"}, - {file = "multidict-6.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:ed98ac527278372251fbc8f5c6c41bdf64ded1db0e6e86f9b9622744306060f6"}, - {file = "multidict-6.5.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:153d7ff738d9b67b94418b112dc5a662d89d2fc26846a9e942f039089048c804"}, - {file = "multidict-6.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1d784c0a1974f00d87f632d0fb6b1078baf7e15d2d2d1408af92f54d120f136e"}, - {file = "multidict-6.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dedf667cded1cdac5bfd3f3c2ff30010f484faccae4e871cc8a9316d2dc27363"}, - {file = "multidict-6.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cbf407313236a79ce9b8af11808c29756cfb9c9a49a7f24bb1324537eec174b"}, - {file = "multidict-6.5.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2bf0068fe9abb0ebed1436a4e415117386951cf598eb8146ded4baf8e1ff6d1e"}, - {file = "multidict-6.5.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:195882f2f6272dacc88194ecd4de3608ad0ee29b161e541403b781a5f5dd346f"}, - {file = "multidict-6.5.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5776f9d2c3a1053f022f744af5f467c2f65b40d4cc00082bcf70e8c462c7dbad"}, - {file = "multidict-6.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a266373c604e49552d295d9f8ec4fd59bd364f2dd73eb18e7d36d5533b88f45"}, - {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:79101d58094419b6e8d07e24946eba440136b9095590271cd6ccc4a90674a57d"}, - {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:62eb76be8c20d9017a82b74965db93ddcf472b929b6b2b78c56972c73bacf2e4"}, - {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:70c742357dd6207be30922207f8d59c91e2776ddbefa23830c55c09020e59f8a"}, - {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:29eff1c9a905e298e9cd29f856f77485e58e59355f0ee323ac748203e002bbd3"}, - {file = "multidict-6.5.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:090e0b37fde199b58ea050c472c21dc8a3fbf285f42b862fe1ff02aab8942239"}, - {file = "multidict-6.5.1-cp311-cp311-win32.whl", hash = "sha256:6037beca8cb481307fb586ee0b73fae976a3e00d8f6ad7eb8af94a878a4893f0"}, - {file = "multidict-6.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:b632c1e4a2ff0bb4c1367d6c23871aa95dbd616bf4a847034732a142bb6eea94"}, - {file = "multidict-6.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:2ec3aa63f0c668f591d43195f8e555f803826dee34208c29ade9d63355f9e095"}, - {file = "multidict-6.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:48f95fe064f63d9601ef7a3dce2fc2a437d5fcc11bca960bc8be720330b13b6a"}, - {file = "multidict-6.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b7b6e1ce9b61f721417c68eeeb37599b769f3b631e6b25c21f50f8f619420b9"}, - {file = "multidict-6.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8b83b055889bda09fc866c0a652cdb6c36eeeafc2858259c9a7171fe82df5773"}, - {file = "multidict-6.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7bd4d655dc460c7aebb73b58ed1c074e85f7286105b012556cf0f25c6d1dba3"}, - {file = "multidict-6.5.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aa6dcf25ced31cdce10f004506dbc26129f28a911b32ed10e54453a0842a6173"}, - {file = "multidict-6.5.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:059fb556c3e6ce1a168496f92ef139ad839a47f898eaa512b1d43e5e05d78c6b"}, - {file = "multidict-6.5.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f97680c839dd9fa208e9584b1c2a5f1224bd01d31961f7f7d94984408c4a6b9e"}, - {file = "multidict-6.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7710c716243525cc05cd038c6e09f1807ee0fef2510a6e484450712c389c8d7f"}, - {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:83eb172b4856ffff2814bdcf9c7792c0439302faab1b31376817b067b26cd8f5"}, - {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:562d4714fa43f6ebc043a657535e4575e7d6141a818c9b3055f0868d29a1a41b"}, - {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2d7def2fc47695c46a427b8f298fb5ace03d635c1fb17f30d6192c9a8fb69e70"}, - {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:77bc8ab5c6bfe696eff564824e73a451fdeca22f3b960261750836cee02bcbfa"}, - {file = "multidict-6.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9eec51891d3c210948ead894ec1483d48748abec08db5ce9af52cc13fef37aee"}, - {file = "multidict-6.5.1-cp312-cp312-win32.whl", hash = "sha256:189f0c2bd1c0ae5509e453707d0e187e030c9e873a0116d1f32d1c870d0fc347"}, - {file = "multidict-6.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:e81f23b4b6f2a588f15d5cb554b2d8b482bb6044223d64b86bc7079cae9ebaad"}, - {file = "multidict-6.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:79d13e06d5241f9c8479dfeaf0f7cce8f453a4a302c9a0b1fa9b1a6869ff7757"}, - {file = "multidict-6.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:98011312f36d1e496f15454a95578d1212bc2ffc25650a8484752b06d304fd9b"}, - {file = "multidict-6.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bae589fb902b47bd94e6f539b34eefe55a1736099f616f614ec1544a43f95b05"}, - {file = "multidict-6.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6eb3bf26cd94eb306e4bc776d0964cc67a7967e4ad9299309f0ff5beec3c62be"}, - {file = "multidict-6.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e5e1a5a99c72d1531501406fcc06b6bf699ebd079dacd6807bb43fc0ff260e5c"}, - {file = "multidict-6.5.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:38755bcba18720cb2338bea23a5afcff234445ee75fa11518f6130e22f2ab970"}, - {file = "multidict-6.5.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f42fef9bcba3c32fd4e4a23c5757fc807d218b249573aaffa8634879f95feb73"}, - {file = "multidict-6.5.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:071b962f4cc87469cda90c7cc1c077b76496878b39851d7417a3d994e27fe2c6"}, - {file = "multidict-6.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:627ba4b7ce7c0115981f0fd91921f5d101dfb9972622178aeef84ccce1c2bbf3"}, - {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05dcaed3e5e54f0d0f99a39762b0195274b75016cbf246f600900305581cf1a2"}, - {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:11f5ecf3e741a18c578d118ad257c5588ca33cc7c46d51c0487d7ae76f072c32"}, - {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b948eb625411c20b15088fca862c51a39140b9cf7875b5fb47a72bb249fa2f42"}, - {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc993a96dfc8300befd03d03df46efdb1d8d5a46911b014e956a4443035f470d"}, - {file = "multidict-6.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee2d333380f22d35a56c6461f4579cfe186e143cd0b010b9524ac027de2a34cd"}, - {file = "multidict-6.5.1-cp313-cp313-win32.whl", hash = "sha256:5891e3327e6a426ddd443c87339b967c84feb8c022dd425e0c025fa0fcd71e68"}, - {file = "multidict-6.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:fcdaa72261bff25fad93e7cb9bd7112bd4bac209148e698e380426489d8ed8a9"}, - {file = "multidict-6.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:84292145303f354a35558e601c665cdf87059d87b12777417e2e57ba3eb98903"}, - {file = "multidict-6.5.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f8316e58db799a1972afbc46770dfaaf20b0847003ab80de6fcb9861194faa3f"}, - {file = "multidict-6.5.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3468f0db187aca59eb56e0aa9f7c8c5427bcb844ad1c86557b4886aeb4484d8"}, - {file = "multidict-6.5.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:228533a5f99f1248cd79f6470779c424d63bc3e10d47c82511c65cc294458445"}, - {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527076fdf5854901b1246c589af9a8a18b4a308375acb0020b585f696a10c794"}, - {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9a17a17bad5c22f43e6a6b285dd9c16b1e8f8428202cd9bc22adaac68d0bbfed"}, - {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:efd1951edab4a6cb65108d411867811f2b283f4b972337fb4269e40142f7f6a6"}, - {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c07d5f38b39acb4f8f61a7aa4166d140ed628245ff0441630df15340532e3b3c"}, - {file = "multidict-6.5.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a6605dc74cd333be279e1fcb568ea24f7bdf1cf09f83a77360ce4dd32d67f14"}, - {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d64e30ae9ba66ce303a567548a06d64455d97c5dff7052fe428d154274d7174"}, - {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2fb5dde79a7f6d98ac5e26a4c9de77ccd2c5224a7ce89aeac6d99df7bbe06464"}, - {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:8a0d22e8b07cf620e9aeb1582340d00f0031e6a1f3e39d9c2dcbefa8691443b4"}, - {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0120ed5cff2082c7a0ed62a8f80f4f6ac266010c722381816462f279bfa19487"}, - {file = "multidict-6.5.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3dea06ba27401c4b54317aa04791182dc9295e7aa623732dd459071a0e0f65db"}, - {file = "multidict-6.5.1-cp313-cp313t-win32.whl", hash = "sha256:93b21be44f3cfee3be68ed5cd8848a3c0420d76dbd12d74f7776bde6b29e5f33"}, - {file = "multidict-6.5.1-cp313-cp313t-win_amd64.whl", hash = "sha256:c5c18f8646a520cc34d00f65f9f6f77782b8a8c59fd8de10713e0de7f470b5d0"}, - {file = "multidict-6.5.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eb27128141474a1d545f0531b496c7c2f1c4beff50cb5a828f36eb62fef16c67"}, - {file = "multidict-6.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:279a37cb9d04097bf1c6308d7495cb4dfbd8fb538301bfe464266b045dfeb1cd"}, - {file = "multidict-6.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e63ac6adc668cfe52e29c00afe33c3b8dbec8e37b529aa83bf31ba4bad0c509"}, - {file = "multidict-6.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:36b138c6ec3aedaa975653ea90099efb22042bab31727dd4cd2921a64de46b25"}, - {file = "multidict-6.5.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:576a1887a5c5becbe4fb484d0bdf6ed8ec89e9c11770f8f3214fd127ba137b8b"}, - {file = "multidict-6.5.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a0f1890f9a05d038720a7c3b5d82467534495bcb6bbda929f6f0914977cc56d1"}, - {file = "multidict-6.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5125a9faed98738d7d6e23650bd8af70abb95628d011f57f70a4d8f349e6d073"}, - {file = "multidict-6.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e09d7852100bcc3e466e63478ee18c68cc4d2ca2a978f29b90d5e2ea814f7b3e"}, - {file = "multidict-6.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e615032b684a1d6faffe41d64cd896801bd3f2c1b642355e9b5d11fd8d40223e"}, - {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70c0e51d55f9bc5e97de950c3b3e88f501b3ca2b3894f231f3957dd3985b4d54"}, - {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a6523258f2eb24c91995ae64172c19cd73bacd5a7f2b0733676966c527ab08f8"}, - {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5e8fefd7c062b0657af2480d789dcb347450d17c7bd20b02303c25f1f59a33a7"}, - {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3d749b10cc6acb2c0814df881910ffd8d8ab1ec54493585579b4a75f89fe86d6"}, - {file = "multidict-6.5.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22b47f7e76ebea0b802df9ed08165b1e6ab52b140c7180c3e740e6205b3781b3"}, - {file = "multidict-6.5.1-cp39-cp39-win32.whl", hash = "sha256:cc80c7e8f297484c4511e887c244adec9a7ed3a76826cb8dbc6183b717a37d1f"}, - {file = "multidict-6.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:253e5c41fcc02e2956ab276b5a702f3972db1e87c080be55e87ca31a2f4f8012"}, - {file = "multidict-6.5.1-cp39-cp39-win_arm64.whl", hash = "sha256:a9e15dfe441aec31e0fa78f497aca83f0ad992ca58782cbaba8220e5a87608fc"}, - {file = "multidict-6.5.1-py3-none-any.whl", hash = "sha256:895354f4a38f53a1df2cc3fa2223fa714cff2b079a9f018a76cad35e7f0f044c"}, - {file = "multidict-6.5.1.tar.gz", hash = "sha256:a835ea8103f4723915d7d621529c80ef48db48ae0c818afcabe0f95aa1febc3a"}, + {file = "multidict-6.6.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a2be5b7b35271f7fff1397204ba6708365e3d773579fe2a30625e16c4b4ce817"}, + {file = "multidict-6.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12f4581d2930840295c461764b9a65732ec01250b46c6b2c510d7ee68872b140"}, + {file = "multidict-6.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dd7793bab517e706c9ed9d7310b06c8672fd0aeee5781bfad612f56b8e0f7d14"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:72d8815f2cd3cf3df0f83cac3f3ef801d908b2d90409ae28102e0553af85545a"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:531e331a2ee53543ab32b16334e2deb26f4e6b9b28e41f8e0c87e99a6c8e2d69"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:42ca5aa9329a63be8dc49040f63817d1ac980e02eeddba763a9ae5b4027b9c9c"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:208b9b9757060b9faa6f11ab4bc52846e4f3c2fb8b14d5680c8aac80af3dc751"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:acf6b97bd0884891af6a8b43d0f586ab2fcf8e717cbd47ab4bdddc09e20652d8"}, + {file = "multidict-6.6.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:68e9e12ed00e2089725669bdc88602b0b6f8d23c0c95e52b95f0bc69f7fe9b55"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05db2f66c9addb10cfa226e1acb363450fab2ff8a6df73c622fefe2f5af6d4e7"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:0db58da8eafb514db832a1b44f8fa7906fdd102f7d982025f816a93ba45e3dcb"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:14117a41c8fdb3ee19c743b1c027da0736fdb79584d61a766da53d399b71176c"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:877443eaaabcd0b74ff32ebeed6f6176c71850feb7d6a1d2db65945256ea535c"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:70b72e749a4f6e7ed8fb334fa8d8496384840319512746a5f42fa0aec79f4d61"}, + {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:43571f785b86afd02b3855c5ac8e86ec921b760298d6f82ff2a61daf5a35330b"}, + {file = "multidict-6.6.3-cp310-cp310-win32.whl", hash = "sha256:20c5a0c3c13a15fd5ea86c42311859f970070e4e24de5a550e99d7c271d76318"}, + {file = "multidict-6.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:ab0a34a007704c625e25a9116c6770b4d3617a071c8a7c30cd338dfbadfe6485"}, + {file = "multidict-6.6.3-cp310-cp310-win_arm64.whl", hash = "sha256:769841d70ca8bdd140a715746199fc6473414bd02efd678d75681d2d6a8986c5"}, + {file = "multidict-6.6.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18f4eba0cbac3546b8ae31e0bbc55b02c801ae3cbaf80c247fcdd89b456ff58c"}, + {file = "multidict-6.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef43b5dd842382329e4797c46f10748d8c2b6e0614f46b4afe4aee9ac33159df"}, + {file = "multidict-6.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf9bd1fd5eec01494e0f2e8e446a74a85d5e49afb63d75a9934e4a5423dba21d"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5bd8d6f793a787153956cd35e24f60485bf0651c238e207b9a54f7458b16d539"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bf99b4daf908c73856bd87ee0a2499c3c9a3d19bb04b9c6025e66af3fd07462"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b9e59946b49dafaf990fd9c17ceafa62976e8471a14952163d10a7a630413a9"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e2db616467070d0533832d204c54eea6836a5e628f2cb1e6dfd8cd6ba7277cb7"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7394888236621f61dcdd25189b2768ae5cc280f041029a5bcf1122ac63df79f9"}, + {file = "multidict-6.6.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f114d8478733ca7388e7c7e0ab34b72547476b97009d643644ac33d4d3fe1821"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cdf22e4db76d323bcdc733514bf732e9fb349707c98d341d40ebcc6e9318ef3d"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e995a34c3d44ab511bfc11aa26869b9d66c2d8c799fa0e74b28a473a692532d6"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:766a4a5996f54361d8d5a9050140aa5362fe48ce51c755a50c0bc3706460c430"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3893a0d7d28a7fe6ca7a1f760593bc13038d1d35daf52199d431b61d2660602b"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:934796c81ea996e61914ba58064920d6cad5d99140ac3167901eb932150e2e56"}, + {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9ed948328aec2072bc00f05d961ceadfd3e9bfc2966c1319aeaf7b7c21219183"}, + {file = "multidict-6.6.3-cp311-cp311-win32.whl", hash = "sha256:9f5b28c074c76afc3e4c610c488e3493976fe0e596dd3db6c8ddfbb0134dcac5"}, + {file = "multidict-6.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc7f6fbc61b1c16050a389c630da0b32fc6d4a3d191394ab78972bf5edc568c2"}, + {file = "multidict-6.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:d4e47d8faffaae822fb5cba20937c048d4f734f43572e7079298a6c39fb172cb"}, + {file = "multidict-6.6.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:056bebbeda16b2e38642d75e9e5310c484b7c24e3841dc0fb943206a72ec89d6"}, + {file = "multidict-6.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e5f481cccb3c5c5e5de5d00b5141dc589c1047e60d07e85bbd7dea3d4580d63f"}, + {file = "multidict-6.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10bea2ee839a759ee368b5a6e47787f399b41e70cf0c20d90dfaf4158dfb4e55"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2334cfb0fa9549d6ce2c21af2bfbcd3ac4ec3646b1b1581c88e3e2b1779ec92b"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8fee016722550a2276ca2cb5bb624480e0ed2bd49125b2b73b7010b9090e888"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5511cb35f5c50a2db21047c875eb42f308c5583edf96bd8ebf7d770a9d68f6d"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:712b348f7f449948e0a6c4564a21c7db965af900973a67db432d724619b3c680"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e4e15d2138ee2694e038e33b7c3da70e6b0ad8868b9f8094a72e1414aeda9c1a"}, + {file = "multidict-6.6.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8df25594989aebff8a130f7899fa03cbfcc5d2b5f4a461cf2518236fe6f15961"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:159ca68bfd284a8860f8d8112cf0521113bffd9c17568579e4d13d1f1dc76b65"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e098c17856a8c9ade81b4810888c5ad1914099657226283cab3062c0540b0643"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:67c92ed673049dec52d7ed39f8cf9ebbadf5032c774058b4406d18c8f8fe7063"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:bd0578596e3a835ef451784053cfd327d607fc39ea1a14812139339a18a0dbc3"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:346055630a2df2115cd23ae271910b4cae40f4e336773550dca4889b12916e75"}, + {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:555ff55a359302b79de97e0468e9ee80637b0de1fce77721639f7cd9440b3a10"}, + {file = "multidict-6.6.3-cp312-cp312-win32.whl", hash = "sha256:73ab034fb8d58ff85c2bcbadc470efc3fafeea8affcf8722855fb94557f14cc5"}, + {file = "multidict-6.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:04cbcce84f63b9af41bad04a54d4cc4e60e90c35b9e6ccb130be2d75b71f8c17"}, + {file = "multidict-6.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:0f1130b896ecb52d2a1e615260f3ea2af55fa7dc3d7c3003ba0c3121a759b18b"}, + {file = "multidict-6.6.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:540d3c06d48507357a7d57721e5094b4f7093399a0106c211f33540fdc374d55"}, + {file = "multidict-6.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9c19cea2a690f04247d43f366d03e4eb110a0dc4cd1bbeee4d445435428ed35b"}, + {file = "multidict-6.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7af039820cfd00effec86bda5d8debef711a3e86a1d3772e85bea0f243a4bd65"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:500b84f51654fdc3944e936f2922114349bf8fdcac77c3092b03449f0e5bc2b3"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3fc723ab8a5c5ed6c50418e9bfcd8e6dceba6c271cee6728a10a4ed8561520c"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:94c47ea3ade005b5976789baaed66d4de4480d0a0bf31cef6edaa41c1e7b56a6"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dbc7cf464cc6d67e83e136c9f55726da3a30176f020a36ead246eceed87f1cd8"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:900eb9f9da25ada070f8ee4a23f884e0ee66fe4e1a38c3af644256a508ad81ca"}, + {file = "multidict-6.6.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c6df517cf177da5d47ab15407143a89cd1a23f8b335f3a28d57e8b0a3dbb884"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ef421045f13879e21c994b36e728d8e7d126c91a64b9185810ab51d474f27e7"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c1e61bb4f80895c081790b6b09fa49e13566df8fbff817da3f85b3a8192e36b"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e5e8523bb12d7623cd8300dbd91b9e439a46a028cd078ca695eb66ba31adee3c"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ef58340cc896219e4e653dade08fea5c55c6df41bcc68122e3be3e9d873d9a7b"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc9dc435ec8699e7b602b94fe0cd4703e69273a01cbc34409af29e7820f777f1"}, + {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9e864486ef4ab07db5e9cb997bad2b681514158d6954dd1958dfb163b83d53e6"}, + {file = "multidict-6.6.3-cp313-cp313-win32.whl", hash = "sha256:5633a82fba8e841bc5c5c06b16e21529573cd654f67fd833650a215520a6210e"}, + {file = "multidict-6.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:e93089c1570a4ad54c3714a12c2cef549dc9d58e97bcded193d928649cab78e9"}, + {file = "multidict-6.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:c60b401f192e79caec61f166da9c924e9f8bc65548d4246842df91651e83d600"}, + {file = "multidict-6.6.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02fd8f32d403a6ff13864b0851f1f523d4c988051eea0471d4f1fd8010f11134"}, + {file = "multidict-6.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f3aa090106b1543f3f87b2041eef3c156c8da2aed90c63a2fbed62d875c49c37"}, + {file = "multidict-6.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e924fb978615a5e33ff644cc42e6aa241effcf4f3322c09d4f8cebde95aff5f8"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b9fe5a0e57c6dbd0e2ce81ca66272282c32cd11d31658ee9553849d91289e1c1"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b24576f208793ebae00280c59927c3b7c2a3b1655e443a25f753c4611bc1c373"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:135631cb6c58eac37d7ac0df380294fecdc026b28837fa07c02e459c7fb9c54e"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:274d416b0df887aef98f19f21578653982cfb8a05b4e187d4a17103322eeaf8f"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e252017a817fad7ce05cafbe5711ed40faeb580e63b16755a3a24e66fa1d87c0"}, + {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4cc8d848cd4fe1cdee28c13ea79ab0ed37fc2e89dd77bac86a2e7959a8c3bc"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9e236a7094b9c4c1b7585f6b9cca34b9d833cf079f7e4c49e6a4a6ec9bfdc68f"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e0cb0ab69915c55627c933f0b555a943d98ba71b4d1c57bc0d0a66e2567c7471"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:81ef2f64593aba09c5212a3d0f8c906a0d38d710a011f2f42759704d4557d3f2"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b9cbc60010de3562545fa198bfc6d3825df430ea96d2cc509c39bd71e2e7d648"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70d974eaaa37211390cd02ef93b7e938de564bbffa866f0b08d07e5e65da783d"}, + {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3713303e4a6663c6d01d648a68f2848701001f3390a030edaaf3fc949c90bf7c"}, + {file = "multidict-6.6.3-cp313-cp313t-win32.whl", hash = "sha256:639ecc9fe7cd73f2495f62c213e964843826f44505a3e5d82805aa85cac6f89e"}, + {file = "multidict-6.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:9f97e181f344a0ef3881b573d31de8542cc0dbc559ec68c8f8b5ce2c2e91646d"}, + {file = "multidict-6.6.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ce8b7693da41a3c4fde5871c738a81490cea5496c671d74374c8ab889e1834fb"}, + {file = "multidict-6.6.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c8161b5a7778d3137ea2ee7ae8a08cce0010de3b00ac671c5ebddeaa17cefd22"}, + {file = "multidict-6.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1328201ee930f069961ae707d59c6627ac92e351ed5b92397cf534d1336ce557"}, + {file = "multidict-6.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b1db4d2093d6b235de76932febf9d50766cf49a5692277b2c28a501c9637f616"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53becb01dd8ebd19d1724bebe369cfa87e4e7f29abbbe5c14c98ce4c383e16cd"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41bb9d1d4c303886e2d85bade86e59885112a7f4277af5ad47ab919a2251f306"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:775b464d31dac90f23192af9c291dc9f423101857e33e9ebf0020a10bfcf4144"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d04d01f0a913202205a598246cf77826fe3baa5a63e9f6ccf1ab0601cf56eca0"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d25594d3b38a2e6cabfdcafef339f754ca6e81fbbdb6650ad773ea9775af35ab"}, + {file = "multidict-6.6.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:35712f1748d409e0707b165bf49f9f17f9e28ae85470c41615778f8d4f7d9609"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1c8082e5814b662de8589d6a06c17e77940d5539080cbab9fe6794b5241b76d9"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:61af8a4b771f1d4d000b3168c12c3120ccf7284502a94aa58c68a81f5afac090"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:448e4a9afccbf297577f2eaa586f07067441e7b63c8362a3540ba5a38dc0f14a"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:233ad16999afc2bbd3e534ad8dbe685ef8ee49a37dbc2cdc9514e57b6d589ced"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:bb933c891cd4da6bdcc9733d048e994e22e1883287ff7540c2a0f3b117605092"}, + {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:37b09ca60998e87734699e88c2363abfd457ed18cfbf88e4009a4e83788e63ed"}, + {file = "multidict-6.6.3-cp39-cp39-win32.whl", hash = "sha256:f54cb79d26d0cd420637d184af38f0668558f3c4bbe22ab7ad830e67249f2e0b"}, + {file = "multidict-6.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:295adc9c0551e5d5214b45cf29ca23dbc28c2d197a9c30d51aed9e037cb7c578"}, + {file = "multidict-6.6.3-cp39-cp39-win_arm64.whl", hash = "sha256:15332783596f227db50fb261c2c251a58ac3873c457f3a550a95d5c0aa3c770d"}, + {file = "multidict-6.6.3-py3-none-any.whl", hash = "sha256:8db10f29c7541fc5da4defd8cd697e1ca429db743fa716325f236079b96f775a"}, + {file = "multidict-6.6.3.tar.gz", hash = "sha256:798a9eb12dab0a6c2e29c1de6f3468af5cb2da6053a20dfa3344907eed0937cc"}, ] [package.dependencies] @@ -2317,16 +2362,17 @@ pytest = ">=3.5.0" [[package]] name = "pytest-asyncio" -version = "1.0.0" +version = "1.1.0" description = "Pytest support for asyncio" optional = false python-versions = ">=3.9" files = [ - {file = "pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3"}, - {file = "pytest_asyncio-1.0.0.tar.gz", hash = "sha256:d15463d13f4456e1ead2594520216b225a16f781e144f8fdf6c5bb4667c48b3f"}, + {file = "pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf"}, + {file = "pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea"}, ] [package.dependencies] +backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""} pytest = ">=8.2,<9" [package.extras] @@ -2393,27 +2439,31 @@ files = [ [[package]] name = "pywin32" -version = "310" +version = "311" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, - {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, - {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, - {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, - {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, - {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, - {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, - {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, - {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, - {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, - {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, - {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, - {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, - {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, - {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, - {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, + {file = "pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3"}, + {file = "pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b"}, + {file = "pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b"}, + {file = "pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151"}, + {file = "pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503"}, + {file = "pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2"}, + {file = "pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31"}, + {file = "pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067"}, + {file = "pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852"}, + {file = "pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d"}, + {file = "pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d"}, + {file = "pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a"}, + {file = "pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee"}, + {file = "pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87"}, + {file = "pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42"}, + {file = "pywin32-311-cp38-cp38-win32.whl", hash = "sha256:6c6f2969607b5023b0d9ce2541f8d2cbb01c4f46bc87456017cf63b73f1e2d8c"}, + {file = "pywin32-311-cp38-cp38-win_amd64.whl", hash = "sha256:c8015b09fb9a5e188f83b7b04de91ddca4658cee2ae6f3bc483f0b21a77ef6cd"}, + {file = "pywin32-311-cp39-cp39-win32.whl", hash = "sha256:aba8f82d551a942cb20d4a83413ccbac30790b50efb89a75e4f586ac0bb8056b"}, + {file = "pywin32-311-cp39-cp39-win_amd64.whl", hash = "sha256:e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91"}, + {file = "pywin32-311-cp39-cp39-win_arm64.whl", hash = "sha256:62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d"}, ] [[package]] @@ -2769,13 +2819,13 @@ urllib3 = ">=2" [[package]] name = "typing-extensions" -version = "4.14.0" +version = "4.14.1" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" files = [ - {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, - {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, + {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, + {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] [[package]] @@ -2811,13 +2861,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.31.2" +version = "20.32.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"}, - {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}, + {file = "virtualenv-20.32.0-py3-none-any.whl", hash = "sha256:2c310aecb62e5aa1b06103ed7c2977b81e042695de2697d01017ff0f1034af56"}, + {file = "virtualenv-20.32.0.tar.gz", hash = "sha256:886bf75cadfdc964674e6e33eb74d787dff31ca314ceace03ca5810620f4ecf0"}, ] [package.dependencies] @@ -2831,13 +2881,13 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "web3" -version = "7.12.0" +version = "7.12.1" description = "web3: A Python library for interacting with Ethereum" optional = false python-versions = "<4,>=3.8" files = [ - {file = "web3-7.12.0-py3-none-any.whl", hash = "sha256:c7e2b9c1db5a379ef53b45fe8a19bdc2d47ad262039fbf6675794bc40f74bf06"}, - {file = "web3-7.12.0.tar.gz", hash = "sha256:08fbe79a2e2503c9820132ebad24ba0372831588cabac5f467999c97ace7dda3"}, + {file = "web3-7.12.1-py3-none-any.whl", hash = "sha256:eac9a0d4bba128a0811828312ae0faaaa122a258efffd77e1e7cf06a0629a043"}, + {file = "web3-7.12.1.tar.gz", hash = "sha256:97f6a116ccaeb5907bb4cb6c771cc23bc942bf09528a840189e9b509b7b8347c"}, ] [package.dependencies] diff --git a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py index 8ddf1bb1..a8582f4c 100644 --- a/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py +++ b/pyinjective/proto/exchange/injective_archiver_rpc_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"\x81\x01\n\x15PnlLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16PnlLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"h\n\x0eLeaderboardRow\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\x12\x12\n\x04rank\x18\x04 \x01(\x11R\x04rank\"\x81\x01\n\x15VolLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16VolLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$PnlLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%PnlLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$VolLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%VolLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"W\n\x13\x44\x65nomHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"z\n\x14\x44\x65nomHoldersResponse\x12\x38\n\x07holders\x18\x01 \x03(\x0b\x32\x1e.injective_archiver_rpc.HolderR\x07holders\x12\x12\n\x04next\x18\x02 \x03(\tR\x04next\x12\x14\n\x05total\x18\x03 \x01(\x11R\x05total\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"\xd8\x01\n\x17HistoricalTradesRequest\x12\x1d\n\nfrom_block\x18\x01 \x01(\x04R\tfromBlock\x12\x1b\n\tend_block\x18\x02 \x01(\x04R\x08\x65ndBlock\x12\x1b\n\tfrom_time\x18\x03 \x01(\x12R\x08\x66romTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x18\n\x07\x61\x63\x63ount\x18\x07 \x01(\tR\x07\x61\x63\x63ount\"\xad\x01\n\x18HistoricalTradesResponse\x12?\n\x06trades\x18\x01 \x03(\x0b\x32\'.injective_archiver_rpc.HistoricalTradeR\x06trades\x12\x1f\n\x0blast_height\x18\x02 \x01(\x04R\nlastHeight\x12\x1b\n\tlast_time\x18\x03 \x01(\x12R\x08lastTime\x12\x12\n\x04next\x18\x04 \x03(\tR\x04next\"\xe7\x03\n\x0fHistoricalTrade\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\'\n\x0ftrade_direction\x18\x04 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x05 \x01(\x0b\x32\".injective_archiver_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x06 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\x12\'\n\x0f\x65xecuted_height\x18\x08 \x01(\x04R\x0e\x65xecutedHeight\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12%\n\x0e\x65xecution_side\x18\n \x01(\tR\rexecutionSide\x12\x1b\n\tusd_value\x18\x0b \x01(\tR\x08usdValue\x12\x14\n\x05\x66lags\x18\x0c \x03(\tR\x05\x66lags\x12\x1f\n\x0bmarket_type\x18\r \x01(\tR\nmarketType\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\xa3\x08\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponse\x12o\n\x0ePnlLeaderboard\x12-.injective_archiver_rpc.PnlLeaderboardRequest\x1a..injective_archiver_rpc.PnlLeaderboardResponse\x12o\n\x0eVolLeaderboard\x12-.injective_archiver_rpc.VolLeaderboardRequest\x1a..injective_archiver_rpc.VolLeaderboardResponse\x12\x9c\x01\n\x1dPnlLeaderboardFixedResolution\x12<.injective_archiver_rpc.PnlLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.PnlLeaderboardFixedResolutionResponse\x12\x9c\x01\n\x1dVolLeaderboardFixedResolution\x12<.injective_archiver_rpc.VolLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.VolLeaderboardFixedResolutionResponse\x12i\n\x0c\x44\x65nomHolders\x12+.injective_archiver_rpc.DenomHoldersRequest\x1a,.injective_archiver_rpc.DenomHoldersResponse\x12u\n\x10HistoricalTrades\x12/.injective_archiver_rpc.HistoricalTradesRequest\x1a\x30.injective_archiver_rpc.HistoricalTradesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%exchange/injective_archiver_rpc.proto\x12\x16injective_archiver_rpc\"J\n\x0e\x42\x61lanceRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0f\x42\x61lanceResponse\x12X\n\x12historical_balance\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalBalanceR\x11historicalBalance\"/\n\x11HistoricalBalance\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"/\n\x13\x41\x63\x63ountStatsRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\"Z\n\x14\x41\x63\x63ountStatsResponse\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\"G\n\x0bRpnlRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"_\n\x0cRpnlResponse\x12O\n\x0fhistorical_rpnl\x18\x01 \x01(\x0b\x32&.injective_archiver_rpc.HistoricalRPNLR\x0ehistoricalRpnl\",\n\x0eHistoricalRPNL\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"J\n\x0eVolumesRequest\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x1e\n\nresolution\x18\x02 \x01(\tR\nresolution\"k\n\x0fVolumesResponse\x12X\n\x12historical_volumes\x18\x01 \x01(\x0b\x32).injective_archiver_rpc.HistoricalVolumesR\x11historicalVolumes\"/\n\x11HistoricalVolumes\x12\x0c\n\x01t\x18\x01 \x03(\x11R\x01t\x12\x0c\n\x01v\x18\x02 \x03(\x01R\x01v\"\x81\x01\n\x15PnlLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16PnlLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"h\n\x0eLeaderboardRow\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12\x10\n\x03pnl\x18\x02 \x01(\x01R\x03pnl\x12\x16\n\x06volume\x18\x03 \x01(\x01R\x06volume\x12\x12\n\x04rank\x18\x04 \x01(\x11R\x04rank\"\x81\x01\n\x15VolLeaderboardRequest\x12\x1d\n\nstart_date\x18\x01 \x01(\x12R\tstartDate\x12\x19\n\x08\x65nd_date\x18\x02 \x01(\x12R\x07\x65ndDate\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x04 \x01(\tR\x07\x61\x63\x63ount\"\xdf\x01\n\x16VolLeaderboardResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$PnlLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%PnlLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"v\n$VolLeaderboardFixedResolutionRequest\x12\x1e\n\nresolution\x18\x01 \x01(\tR\nresolution\x12\x14\n\x05limit\x18\x02 \x01(\x11R\x05limit\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\"\xee\x01\n%VolLeaderboardFixedResolutionResponse\x12\x1d\n\nfirst_date\x18\x01 \x01(\tR\tfirstDate\x12\x1b\n\tlast_date\x18\x02 \x01(\tR\x08lastDate\x12@\n\x07leaders\x18\x03 \x03(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\x07leaders\x12G\n\x0b\x61\x63\x63ount_row\x18\x04 \x01(\x0b\x32&.injective_archiver_rpc.LeaderboardRowR\naccountRow\"W\n\x13\x44\x65nomHoldersRequest\x12\x14\n\x05\x64\x65nom\x18\x01 \x01(\tR\x05\x64\x65nom\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x14\n\x05limit\x18\x03 \x01(\x11R\x05limit\"z\n\x14\x44\x65nomHoldersResponse\x12\x38\n\x07holders\x18\x01 \x03(\x0b\x32\x1e.injective_archiver_rpc.HolderR\x07holders\x12\x12\n\x04next\x18\x02 \x03(\tR\x04next\x12\x14\n\x05total\x18\x03 \x01(\x11R\x05total\"K\n\x06Holder\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x18\n\x07\x62\x61lance\x18\x02 \x01(\tR\x07\x62\x61lance\"\xd8\x01\n\x17HistoricalTradesRequest\x12\x1d\n\nfrom_block\x18\x01 \x01(\x04R\tfromBlock\x12\x1b\n\tend_block\x18\x02 \x01(\x04R\x08\x65ndBlock\x12\x1b\n\tfrom_time\x18\x03 \x01(\x12R\x08\x66romTime\x12\x19\n\x08\x65nd_time\x18\x04 \x01(\x12R\x07\x65ndTime\x12\x19\n\x08per_page\x18\x05 \x01(\x11R\x07perPage\x12\x14\n\x05token\x18\x06 \x01(\tR\x05token\x12\x18\n\x07\x61\x63\x63ount\x18\x07 \x01(\tR\x07\x61\x63\x63ount\"\xad\x01\n\x18HistoricalTradesResponse\x12?\n\x06trades\x18\x01 \x03(\x0b\x32\'.injective_archiver_rpc.HistoricalTradeR\x06trades\x12\x1f\n\x0blast_height\x18\x02 \x01(\x04R\nlastHeight\x12\x1b\n\tlast_time\x18\x03 \x01(\x12R\x08lastTime\x12\x12\n\x04next\x18\x04 \x03(\tR\x04next\"\xe7\x03\n\x0fHistoricalTrade\x12\x18\n\x07\x61\x63\x63ount\x18\x01 \x01(\tR\x07\x61\x63\x63ount\x12#\n\rsubaccount_id\x18\x02 \x01(\tR\x0csubaccountId\x12\x1b\n\tmarket_id\x18\x03 \x01(\tR\x08marketId\x12\'\n\x0ftrade_direction\x18\x04 \x01(\tR\x0etradeDirection\x12\x38\n\x05price\x18\x05 \x01(\x0b\x32\".injective_archiver_rpc.PriceLevelR\x05price\x12\x10\n\x03\x66\x65\x65\x18\x06 \x01(\tR\x03\x66\x65\x65\x12\x1f\n\x0b\x65xecuted_at\x18\x07 \x01(\x12R\nexecutedAt\x12\'\n\x0f\x65xecuted_height\x18\x08 \x01(\x04R\x0e\x65xecutedHeight\x12#\n\rfee_recipient\x18\t \x01(\tR\x0c\x66\x65\x65Recipient\x12%\n\x0e\x65xecution_side\x18\n \x01(\tR\rexecutionSide\x12\x1b\n\tusd_value\x18\x0b \x01(\tR\x08usdValue\x12\x14\n\x05\x66lags\x18\x0c \x03(\tR\x05\x66lags\x12\x1f\n\x0bmarket_type\x18\r \x01(\tR\nmarketType\x12\x19\n\x08trade_id\x18\x0e \x01(\tR\x07tradeId\"\\\n\nPriceLevel\x12\x14\n\x05price\x18\x01 \x01(\tR\x05price\x12\x1a\n\x08quantity\x18\x02 \x01(\tR\x08quantity\x12\x1c\n\ttimestamp\x18\x03 \x01(\x12R\ttimestamp2\x8e\t\n\x14InjectiveArchiverRPC\x12Z\n\x07\x42\x61lance\x12&.injective_archiver_rpc.BalanceRequest\x1a\'.injective_archiver_rpc.BalanceResponse\x12i\n\x0c\x41\x63\x63ountStats\x12+.injective_archiver_rpc.AccountStatsRequest\x1a,.injective_archiver_rpc.AccountStatsResponse\x12Q\n\x04Rpnl\x12#.injective_archiver_rpc.RpnlRequest\x1a$.injective_archiver_rpc.RpnlResponse\x12Z\n\x07Volumes\x12&.injective_archiver_rpc.VolumesRequest\x1a\'.injective_archiver_rpc.VolumesResponse\x12o\n\x0ePnlLeaderboard\x12-.injective_archiver_rpc.PnlLeaderboardRequest\x1a..injective_archiver_rpc.PnlLeaderboardResponse\x12o\n\x0eVolLeaderboard\x12-.injective_archiver_rpc.VolLeaderboardRequest\x1a..injective_archiver_rpc.VolLeaderboardResponse\x12\x9c\x01\n\x1dPnlLeaderboardFixedResolution\x12<.injective_archiver_rpc.PnlLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.PnlLeaderboardFixedResolutionResponse\x12\x9c\x01\n\x1dVolLeaderboardFixedResolution\x12<.injective_archiver_rpc.VolLeaderboardFixedResolutionRequest\x1a=.injective_archiver_rpc.VolLeaderboardFixedResolutionResponse\x12i\n\x0c\x44\x65nomHolders\x12+.injective_archiver_rpc.DenomHoldersRequest\x1a,.injective_archiver_rpc.DenomHoldersResponse\x12u\n\x10HistoricalTrades\x12/.injective_archiver_rpc.HistoricalTradesRequest\x1a\x30.injective_archiver_rpc.HistoricalTradesResponseB\xc2\x01\n\x1a\x63om.injective_archiver_rpcB\x19InjectiveArchiverRpcProtoP\x01Z\x19/injective_archiver_rpcpb\xa2\x02\x03IXX\xaa\x02\x14InjectiveArchiverRpc\xca\x02\x14InjectiveArchiverRpc\xe2\x02 InjectiveArchiverRpc\\GPBMetadata\xea\x02\x14InjectiveArchiverRpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,50 +28,54 @@ _globals['_BALANCERESPONSE']._serialized_end=248 _globals['_HISTORICALBALANCE']._serialized_start=250 _globals['_HISTORICALBALANCE']._serialized_end=297 - _globals['_RPNLREQUEST']._serialized_start=299 - _globals['_RPNLREQUEST']._serialized_end=370 - _globals['_RPNLRESPONSE']._serialized_start=372 - _globals['_RPNLRESPONSE']._serialized_end=467 - _globals['_HISTORICALRPNL']._serialized_start=469 - _globals['_HISTORICALRPNL']._serialized_end=513 - _globals['_VOLUMESREQUEST']._serialized_start=515 - _globals['_VOLUMESREQUEST']._serialized_end=589 - _globals['_VOLUMESRESPONSE']._serialized_start=591 - _globals['_VOLUMESRESPONSE']._serialized_end=698 - _globals['_HISTORICALVOLUMES']._serialized_start=700 - _globals['_HISTORICALVOLUMES']._serialized_end=747 - _globals['_PNLLEADERBOARDREQUEST']._serialized_start=750 - _globals['_PNLLEADERBOARDREQUEST']._serialized_end=879 - _globals['_PNLLEADERBOARDRESPONSE']._serialized_start=882 - _globals['_PNLLEADERBOARDRESPONSE']._serialized_end=1105 - _globals['_LEADERBOARDROW']._serialized_start=1107 - _globals['_LEADERBOARDROW']._serialized_end=1211 - _globals['_VOLLEADERBOARDREQUEST']._serialized_start=1214 - _globals['_VOLLEADERBOARDREQUEST']._serialized_end=1343 - _globals['_VOLLEADERBOARDRESPONSE']._serialized_start=1346 - _globals['_VOLLEADERBOARDRESPONSE']._serialized_end=1569 - _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=1571 - _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=1689 - _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=1692 - _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=1930 - _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=1932 - _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=2050 - _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=2053 - _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=2291 - _globals['_DENOMHOLDERSREQUEST']._serialized_start=2293 - _globals['_DENOMHOLDERSREQUEST']._serialized_end=2380 - _globals['_DENOMHOLDERSRESPONSE']._serialized_start=2382 - _globals['_DENOMHOLDERSRESPONSE']._serialized_end=2504 - _globals['_HOLDER']._serialized_start=2506 - _globals['_HOLDER']._serialized_end=2581 - _globals['_HISTORICALTRADESREQUEST']._serialized_start=2584 - _globals['_HISTORICALTRADESREQUEST']._serialized_end=2800 - _globals['_HISTORICALTRADESRESPONSE']._serialized_start=2803 - _globals['_HISTORICALTRADESRESPONSE']._serialized_end=2976 - _globals['_HISTORICALTRADE']._serialized_start=2979 - _globals['_HISTORICALTRADE']._serialized_end=3466 - _globals['_PRICELEVEL']._serialized_start=3468 - _globals['_PRICELEVEL']._serialized_end=3560 - _globals['_INJECTIVEARCHIVERRPC']._serialized_start=3563 - _globals['_INJECTIVEARCHIVERRPC']._serialized_end=4622 + _globals['_ACCOUNTSTATSREQUEST']._serialized_start=299 + _globals['_ACCOUNTSTATSREQUEST']._serialized_end=346 + _globals['_ACCOUNTSTATSRESPONSE']._serialized_start=348 + _globals['_ACCOUNTSTATSRESPONSE']._serialized_end=438 + _globals['_RPNLREQUEST']._serialized_start=440 + _globals['_RPNLREQUEST']._serialized_end=511 + _globals['_RPNLRESPONSE']._serialized_start=513 + _globals['_RPNLRESPONSE']._serialized_end=608 + _globals['_HISTORICALRPNL']._serialized_start=610 + _globals['_HISTORICALRPNL']._serialized_end=654 + _globals['_VOLUMESREQUEST']._serialized_start=656 + _globals['_VOLUMESREQUEST']._serialized_end=730 + _globals['_VOLUMESRESPONSE']._serialized_start=732 + _globals['_VOLUMESRESPONSE']._serialized_end=839 + _globals['_HISTORICALVOLUMES']._serialized_start=841 + _globals['_HISTORICALVOLUMES']._serialized_end=888 + _globals['_PNLLEADERBOARDREQUEST']._serialized_start=891 + _globals['_PNLLEADERBOARDREQUEST']._serialized_end=1020 + _globals['_PNLLEADERBOARDRESPONSE']._serialized_start=1023 + _globals['_PNLLEADERBOARDRESPONSE']._serialized_end=1246 + _globals['_LEADERBOARDROW']._serialized_start=1248 + _globals['_LEADERBOARDROW']._serialized_end=1352 + _globals['_VOLLEADERBOARDREQUEST']._serialized_start=1355 + _globals['_VOLLEADERBOARDREQUEST']._serialized_end=1484 + _globals['_VOLLEADERBOARDRESPONSE']._serialized_start=1487 + _globals['_VOLLEADERBOARDRESPONSE']._serialized_end=1710 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=1712 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=1830 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=1833 + _globals['_PNLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=2071 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_start=2073 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONREQUEST']._serialized_end=2191 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_start=2194 + _globals['_VOLLEADERBOARDFIXEDRESOLUTIONRESPONSE']._serialized_end=2432 + _globals['_DENOMHOLDERSREQUEST']._serialized_start=2434 + _globals['_DENOMHOLDERSREQUEST']._serialized_end=2521 + _globals['_DENOMHOLDERSRESPONSE']._serialized_start=2523 + _globals['_DENOMHOLDERSRESPONSE']._serialized_end=2645 + _globals['_HOLDER']._serialized_start=2647 + _globals['_HOLDER']._serialized_end=2722 + _globals['_HISTORICALTRADESREQUEST']._serialized_start=2725 + _globals['_HISTORICALTRADESREQUEST']._serialized_end=2941 + _globals['_HISTORICALTRADESRESPONSE']._serialized_start=2944 + _globals['_HISTORICALTRADESRESPONSE']._serialized_end=3117 + _globals['_HISTORICALTRADE']._serialized_start=3120 + _globals['_HISTORICALTRADE']._serialized_end=3607 + _globals['_PRICELEVEL']._serialized_start=3609 + _globals['_PRICELEVEL']._serialized_end=3701 + _globals['_INJECTIVEARCHIVERRPC']._serialized_start=3704 + _globals['_INJECTIVEARCHIVERRPC']._serialized_end=4870 # @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py index dd904478..5e433f6c 100644 --- a/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py +++ b/pyinjective/proto/exchange/injective_archiver_rpc_pb2_grpc.py @@ -20,6 +20,11 @@ def __init__(self, channel): request_serializer=exchange_dot_injective__archiver__rpc__pb2.BalanceRequest.SerializeToString, response_deserializer=exchange_dot_injective__archiver__rpc__pb2.BalanceResponse.FromString, _registered_method=True) + self.AccountStats = channel.unary_unary( + '/injective_archiver_rpc.InjectiveArchiverRPC/AccountStats', + request_serializer=exchange_dot_injective__archiver__rpc__pb2.AccountStatsRequest.SerializeToString, + response_deserializer=exchange_dot_injective__archiver__rpc__pb2.AccountStatsResponse.FromString, + _registered_method=True) self.Rpnl = channel.unary_unary( '/injective_archiver_rpc.InjectiveArchiverRPC/Rpnl', request_serializer=exchange_dot_injective__archiver__rpc__pb2.RpnlRequest.SerializeToString, @@ -73,6 +78,13 @@ def Balance(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def AccountStats(self, request, context): + """Provide all-time stats for a given account address. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def Rpnl(self, request, context): """Provide historical realized profit and loss data for a given account address. """ @@ -137,6 +149,11 @@ def add_InjectiveArchiverRPCServicer_to_server(servicer, server): request_deserializer=exchange_dot_injective__archiver__rpc__pb2.BalanceRequest.FromString, response_serializer=exchange_dot_injective__archiver__rpc__pb2.BalanceResponse.SerializeToString, ), + 'AccountStats': grpc.unary_unary_rpc_method_handler( + servicer.AccountStats, + request_deserializer=exchange_dot_injective__archiver__rpc__pb2.AccountStatsRequest.FromString, + response_serializer=exchange_dot_injective__archiver__rpc__pb2.AccountStatsResponse.SerializeToString, + ), 'Rpnl': grpc.unary_unary_rpc_method_handler( servicer.Rpnl, request_deserializer=exchange_dot_injective__archiver__rpc__pb2.RpnlRequest.FromString, @@ -216,6 +233,33 @@ def Balance(request, metadata, _registered_method=True) + @staticmethod + def AccountStats(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_archiver_rpc.InjectiveArchiverRPC/AccountStats', + exchange_dot_injective__archiver__rpc__pb2.AccountStatsRequest.SerializeToString, + exchange_dot_injective__archiver__rpc__pb2.AccountStatsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def Rpnl(request, target, diff --git a/pyinjective/proto/exchange/injective_megavault_rpc_pb2.py b/pyinjective/proto/exchange/injective_megavault_rpc_pb2.py new file mode 100644 index 00000000..372aed1d --- /dev/null +++ b/pyinjective/proto/exchange/injective_megavault_rpc_pb2.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: exchange/injective_megavault_rpc.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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&exchange/injective_megavault_rpc.proto\x12\x17injective_megavault_rpc\"\x11\n\x0fGetVaultRequest\"H\n\x10GetVaultResponse\x12\x34\n\x05vault\x18\x01 \x01(\x0b\x32\x1e.injective_megavault_rpc.VaultR\x05vault\"\xec\x03\n\x05Vault\x12)\n\x10\x63ontract_address\x18\x01 \x01(\tR\x0f\x63ontractAddress\x12#\n\rcontract_name\x18\x02 \x01(\tR\x0c\x63ontractName\x12)\n\x10\x63ontract_version\x18\x03 \x01(\tR\x0f\x63ontractVersion\x12\x14\n\x05\x61\x64min\x18\x04 \x01(\tR\x05\x61\x64min\x12\x19\n\x08lp_denom\x18\x05 \x01(\tR\x07lpDenom\x12\x1f\n\x0bquote_denom\x18\x06 \x01(\tR\nquoteDenom\x12!\n\x0ctotal_amount\x18\x07 \x01(\tR\x0btotalAmount\x12&\n\x0ftotal_lp_amount\x18\x08 \x01(\tR\rtotalLpAmount\x12?\n\toperators\x18\t \x03(\x0b\x32!.injective_megavault_rpc.OperatorR\toperators\x12%\n\x0e\x63reated_height\x18\n \x01(\x12R\rcreatedHeight\x12\x1d\n\ncreated_at\x18\x0b \x01(\x12R\tcreatedAt\x12%\n\x0eupdated_height\x18\x0c \x01(\x12R\rupdatedHeight\x12\x1d\n\nupdated_at\x18\r \x01(\x12R\tupdatedAt\"\x82\x01\n\x08Operator\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x61mount\x18\x02 \x01(\tR\x06\x61mount\x12%\n\x0eupdated_height\x18\x03 \x01(\x12R\rupdatedHeight\x12\x1d\n\nupdated_at\x18\x04 \x01(\x12R\tupdatedAt2x\n\x15InjectiveMegavaultRPC\x12_\n\x08GetVault\x12(.injective_megavault_rpc.GetVaultRequest\x1a).injective_megavault_rpc.GetVaultResponseB\xc9\x01\n\x1b\x63om.injective_megavault_rpcB\x1aInjectiveMegavaultRpcProtoP\x01Z\x1a/injective_megavault_rpcpb\xa2\x02\x03IXX\xaa\x02\x15InjectiveMegavaultRpc\xca\x02\x15InjectiveMegavaultRpc\xe2\x02!InjectiveMegavaultRpc\\GPBMetadata\xea\x02\x15InjectiveMegavaultRpcb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'exchange.injective_megavault_rpc_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective_megavault_rpcB\032InjectiveMegavaultRpcProtoP\001Z\032/injective_megavault_rpcpb\242\002\003IXX\252\002\025InjectiveMegavaultRpc\312\002\025InjectiveMegavaultRpc\342\002!InjectiveMegavaultRpc\\GPBMetadata\352\002\025InjectiveMegavaultRpc' + _globals['_GETVAULTREQUEST']._serialized_start=67 + _globals['_GETVAULTREQUEST']._serialized_end=84 + _globals['_GETVAULTRESPONSE']._serialized_start=86 + _globals['_GETVAULTRESPONSE']._serialized_end=158 + _globals['_VAULT']._serialized_start=161 + _globals['_VAULT']._serialized_end=653 + _globals['_OPERATOR']._serialized_start=656 + _globals['_OPERATOR']._serialized_end=786 + _globals['_INJECTIVEMEGAVAULTRPC']._serialized_start=788 + _globals['_INJECTIVEMEGAVAULTRPC']._serialized_end=908 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/exchange/injective_megavault_rpc_pb2_grpc.py b/pyinjective/proto/exchange/injective_megavault_rpc_pb2_grpc.py new file mode 100644 index 00000000..9e91cb15 --- /dev/null +++ b/pyinjective/proto/exchange/injective_megavault_rpc_pb2_grpc.py @@ -0,0 +1,81 @@ +# 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.exchange import injective_megavault_rpc_pb2 as exchange_dot_injective__megavault__rpc__pb2 + + +class InjectiveMegavaultRPCStub(object): + """InjectiveMegavaultRPC defined a gRPC service for Injective Megavault. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetVault = channel.unary_unary( + '/injective_megavault_rpc.InjectiveMegavaultRPC/GetVault', + request_serializer=exchange_dot_injective__megavault__rpc__pb2.GetVaultRequest.SerializeToString, + response_deserializer=exchange_dot_injective__megavault__rpc__pb2.GetVaultResponse.FromString, + _registered_method=True) + + +class InjectiveMegavaultRPCServicer(object): + """InjectiveMegavaultRPC defined a gRPC service for Injective Megavault. + """ + + def GetVault(self, request, context): + """Get the vault information + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_InjectiveMegavaultRPCServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetVault': grpc.unary_unary_rpc_method_handler( + servicer.GetVault, + request_deserializer=exchange_dot_injective__megavault__rpc__pb2.GetVaultRequest.FromString, + response_serializer=exchange_dot_injective__megavault__rpc__pb2.GetVaultResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective_megavault_rpc.InjectiveMegavaultRPC', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective_megavault_rpc.InjectiveMegavaultRPC', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class InjectiveMegavaultRPC(object): + """InjectiveMegavaultRPC defined a gRPC service for Injective Megavault. + """ + + @staticmethod + def GetVault(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_megavault_rpc.InjectiveMegavaultRPC/GetVault', + exchange_dot_injective__megavault__rpc__pb2.GetVaultRequest.SerializeToString, + exchange_dot_injective__megavault__rpc__pb2.GetVaultResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyproject.toml b/pyproject.toml index d0d4ff10..1d607918 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.11.0-rc6" +version = "1.11.0" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0"