diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 68bce37a..bac6a0c2 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.10", "3.11", "3.12"] + os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} env: OS: ${{ matrix.os }} 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 5e997f6f..7ad72282 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to this project will be documented in this file. +## [1.11.0] - 2025-07-29 +### 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 +- 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 + +### Removed +- Removed all methods marked as deprecated in AsyncClient and Composer + ## [1.10.0] - 2025-04-16 ### Added - Added support for the queries in the new TXFees module diff --git a/Makefile b/Makefile index 478f850b..6d7f9c7f 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.15.6 --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/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 b8aa35c1..523b8e8b 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -11,19 +11,21 @@ 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.5 - git_repo: https://github.com/InjectiveLabs/ibc-go - tag: v8.7.0-inj + tag: v8.7.0-evm-comet1-inj - git_repo: https://github.com/InjectiveLabs/wasmd - tag: v0.53.2-inj.2 + 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 + tag: v0.50.13-evm-comet1-inj.3 # - 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 + tag: v1.16.0 subdir: proto # - git_repo: https://github.com/InjectiveLabs/injective-core -# branch: release/v1.15.x +# branch: master # subdir: proto - directory: proto diff --git a/examples/chain_client/1_LocalOrderHash.py b/examples/chain_client/1_LocalOrderHash.py index ec47bf63..55574d6d 100644 --- a/examples/chain_client/1_LocalOrderHash.py +++ b/examples/chain_client/1_LocalOrderHash.py @@ -1,11 +1,12 @@ import asyncio +import json import os import uuid from decimal import Decimal 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 @@ -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/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 0415a932..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 diff --git a/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py b/examples/chain_client/4_MessageBroadcasterWithGranteeAccount.py index 4a4a11ab..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 diff --git a/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py b/examples/chain_client/5_MessageBroadcasterWithoutSimulation.py index c463b699..7efd2fde 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 @@ -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/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py b/examples/chain_client/6_MessageBroadcasterWithGranteeAccountWithoutSimulation.py index 5bfb75ce..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 diff --git a/examples/chain_client/7_ChainStream.py b/examples/chain_client/7_ChainStream.py index 05a5bbdc..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,7 +23,7 @@ async def main() -> None: network = Network.testnet() client = AsyncClient(network) - composer = Composer(network=network.string()) + composer = await client.composer() subaccount_id = "0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000" 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..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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.MsgBid(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) + msg = composer.msg_bid(sender=address.to_acc_bech32(), round=16250, bid_amount=1) - # 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 ed193834..d0318646 100644 --- a/examples/chain_client/auth/query/1_Account.py +++ b/examples/chain_client/auth/query/1_Account.py @@ -1,6 +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 @@ -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 ed6ef08c..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,28 +21,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) # market_ids = ["0x0511ddc4e6586f3bfe1acb2dd905f8b8a82c97e1edaef654b12ca7e6031ca0fa"] # 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.v1beta1.MsgCreateSpotLimitOrder", + msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", expire_in=31536000, # 1 year ) # TYPED AUTHZ - # msg = composer.MsgGrantTyped( + # msg = composer.msg_grant_typed( # granter = "inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku", # grantee = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", # msg_type = "CreateSpotLimitOrderAuthz", @@ -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 a2eae9d7..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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.MsgExec(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 86a659cf..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,63 +21,39 @@ 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.MsgRevoke( + msg = composer.msg_revoke( granter=address.to_acc_bech32(), grantee=grantee_public_address, - msg_type="/injective.exchange.v1beta1.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) + msg_type="/injective.exchange.v2.MsgCreateSpotLimitOrder", ) - 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 9ab27f22..abf12e75 100644 --- a/examples/chain_client/authz/query/1_Grants.py +++ b/examples/chain_client/authz/query/1_Grants.py @@ -1,9 +1,10 @@ import asyncio +import json import os import dotenv -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network @@ -14,9 +15,9 @@ 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) + 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 a08a9d37..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,64 +20,40 @@ 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.MsgSend( + msg = composer.msg_send( from_address=address.to_acc_bech32(), to_address="inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", - amount=0.000000000000000001, - 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) + amount=100000000000000000, + denom="inj", ) - 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 03ed41d9..6ae82c71 100644 --- a/examples/chain_client/bank/query/10_SendEnabled.py +++ b/examples/chain_client/bank/query/10_SendEnabled.py @@ -1,6 +1,7 @@ import asyncio +import json -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 @@ -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 af17dfac..2163ee1e 100644 --- a/examples/chain_client/bank/query/1_BankBalance.py +++ b/examples/chain_client/bank/query/1_BankBalance.py @@ -1,6 +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 @@ -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 6ead7b13..be03cfc4 100644 --- a/examples/chain_client/bank/query/2_BankBalances.py +++ b/examples/chain_client/bank/query/2_BankBalances.py @@ -1,6 +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 @@ -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 d13836e0..0536d0c2 100644 --- a/examples/chain_client/bank/query/3_SpendableBalances.py +++ b/examples/chain_client/bank/query/3_SpendableBalances.py @@ -1,6 +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 @@ -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 639d7933..d9c5bc1a 100644 --- a/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py +++ b/examples/chain_client/bank/query/4_SpendableBalancesByDenom.py @@ -1,6 +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 @@ -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 8156c54b..c55ec15a 100644 --- a/examples/chain_client/bank/query/5_TotalSupply.py +++ b/examples/chain_client/bank/query/5_TotalSupply.py @@ -1,6 +1,7 @@ import asyncio +import json -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 @@ -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 225b9db7..472c06f2 100644 --- a/examples/chain_client/bank/query/6_SupplyOf.py +++ b/examples/chain_client/bank/query/6_SupplyOf.py @@ -1,6 +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 @@ -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 ff8a9337..76ffb25c 100644 --- a/examples/chain_client/bank/query/7_DenomMetadata.py +++ b/examples/chain_client/bank/query/7_DenomMetadata.py @@ -1,6 +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 @@ -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 26402f49..3a4b16bc 100644 --- a/examples/chain_client/bank/query/8_DenomsMetadata.py +++ b/examples/chain_client/bank/query/8_DenomsMetadata.py @@ -1,6 +1,7 @@ import asyncio +import json -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 @@ -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 3204cc34..a170e7fd 100644 --- a/examples/chain_client/bank/query/9_DenomOwners.py +++ b/examples/chain_client/bank/query/9_DenomOwners.py @@ -1,6 +1,7 @@ import asyncio +import json -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 @@ -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 d560556c..64041aaa 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 @@ -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 c0c86bbc..bd452c57 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 @@ -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 13161630..6be36259 100644 --- a/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py +++ b/examples/chain_client/distribution/query/1_ValidatorDistributionInfo.py @@ -1,6 +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 @@ -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 31833682..1bd21c12 100644 --- a/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py +++ b/examples/chain_client/distribution/query/2_ValidatorOutstandingRewards.py @@ -1,6 +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 @@ -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 a82e191b..f6054ae0 100644 --- a/examples/chain_client/distribution/query/3_ValidatorCommission.py +++ b/examples/chain_client/distribution/query/3_ValidatorCommission.py @@ -1,6 +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 @@ -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 08dbfea1..00b7a8e2 100644 --- a/examples/chain_client/distribution/query/4_ValidatorSlashes.py +++ b/examples/chain_client/distribution/query/4_ValidatorSlashes.py @@ -1,6 +1,7 @@ import asyncio +import json -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 @@ -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 da112263..71e36cad 100644 --- a/examples/chain_client/distribution/query/5_DelegationRewards.py +++ b/examples/chain_client/distribution/query/5_DelegationRewards.py @@ -1,6 +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 @@ -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 c67dc94f..06d5c84a 100644 --- a/examples/chain_client/distribution/query/6_DelegationTotalRewards.py +++ b/examples/chain_client/distribution/query/6_DelegationTotalRewards.py @@ -1,6 +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 @@ -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 f03fb8ec..7cf7634e 100644 --- a/examples/chain_client/distribution/query/7_DelegatorValidators.py +++ b/examples/chain_client/distribution/query/7_DelegatorValidators.py @@ -1,6 +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 @@ -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 d3c27091..90378bef 100644 --- a/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py +++ b/examples/chain_client/distribution/query/8_DelegatorWithdrawAddress.py @@ -1,6 +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 @@ -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 7a803d03..f4a14dfd 100644 --- a/examples/chain_client/distribution/query/9_CommunityPool.py +++ b/examples/chain_client/distribution/query/9_CommunityPool.py @@ -1,6 +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 @@ -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/erc20/1_CreateTokenPair.py b/examples/chain_client/erc20/1_CreateTokenPair.py new file mode 100644 index 00000000..5fe3c00f --- /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_v2 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..b4fd73da --- /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_v2 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..34f2cd90 --- /dev/null +++ b/examples/chain_client/erc20/query/1_AllTokenPairs.py @@ -0,0 +1,39 @@ +import asyncio +import json +import os + +import dotenv + +from pyinjective import PrivateKey +from pyinjective.async_client_v2 import AsyncClient +from pyinjective.client.model.pagination import PaginationOption +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( + pagination=PaginationOption( + skip=0, + limit=100, + ), + ) + 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..fa52bb0d --- /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_v2 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..d67db422 --- /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_v2 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..76917ed2 --- /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_v2 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..a062d756 --- /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_v2 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..57d2271c --- /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_v2 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..32c072c7 --- /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_v2 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..48021968 --- /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_v2 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..43d08667 --- /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_v2 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..67dcfee4 --- /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_v2 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/10_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/exchange/10_MsgCreateDerivativeLimitOrder.py index 3e5f44f2..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 6db44951..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 f0215781..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 @@ -36,51 +44,24 @@ async def main() -> None: # 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 - ) - - # 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) + 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, ) - 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/13_MsgInstantBinaryOptionsMarketLaunch.py b/examples/chain_client/exchange/13_MsgInstantBinaryOptionsMarketLaunch.py index 69f06e63..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 diff --git a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py index f628bf02..9532d3bb 100644 --- a/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/exchange/14_MsgCreateBinaryOptionsLimitOrder.py @@ -1,22 +1,20 @@ 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.async_client_v2 import AsyncClient +from pyinjective.core.broadcaster import MsgBroadcasterWithPk from pyinjective.core.network import Network -from pyinjective.transaction import Transaction -from pyinjective.utils.denom import Denom 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() @@ -24,29 +22,28 @@ 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 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( sender=address.to_acc_bech32(), @@ -58,56 +55,17 @@ async def main() -> None: margin=Decimal("0.5"), order_type="BUY", cid=str(uuid.uuid4()), - 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 - - 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 247c6883..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 54b00845..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 @@ -36,55 +44,24 @@ async def main() -> None: # 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 + 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 = ( - 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 a77959e1..25ee7ebd 100644 --- a/examples/chain_client/exchange/17_MsgSubaccountTransfer.py +++ b/examples/chain_client/exchange/17_MsgSubaccountTransfer.py @@ -1,20 +1,18 @@ import asyncio +import json import os -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.async_client_v2 import AsyncClient +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 +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) @@ -37,52 +44,19 @@ async def main() -> None: sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, - amount=Decimal(100), - 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) + amount=100, + denom="inj", ) - 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 e1abfc19..e0edc731 100644 --- a/examples/chain_client/exchange/18_MsgExternalTransfer.py +++ b/examples/chain_client/exchange/18_MsgExternalTransfer.py @@ -1,20 +1,18 @@ import asyncio +import json import os -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.async_client_v2 import AsyncClient +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 +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" @@ -37,52 +44,19 @@ async def main() -> None: sender=address.to_acc_bech32(), source_subaccount_id=subaccount_id, destination_subaccount_id=dest_subaccount_id, - amount=Decimal(100), - 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) + amount=100, + denom="inj", ) - 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 bac9f90e..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 2af750e8..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,62 +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=0.000001, 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) + msg = composer.msg_deposit(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom="inj") - # 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 dd89e7b6..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 0730fe76..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 7114fb6a..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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/23_MsgDecreasePositionMargin.py b/examples/chain_client/exchange/23_MsgDecreasePositionMargin.py index 06f02e1f..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 diff --git a/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py b/examples/chain_client/exchange/24_MsgUpdateSpotMarket.py index 1d303ad0..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 diff --git a/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py b/examples/chain_client/exchange/25_MsgUpdateDerivativeMarket.py index e5ec3697..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 @@ -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/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 new file mode 100644 index 00000000..ddaaa2ca --- /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_v2 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()) + 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( + 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..cbf980af --- /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_v2 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()) + 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( + 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/2_MsgWithdraw.py b/examples/chain_client/exchange/2_MsgWithdraw.py index c542172d..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,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="USDT") - - # 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) + msg = composer.msg_withdraw(sender=address.to_acc_bech32(), subaccount_id=subaccount_id, amount=1, denom=denom) - # 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/3_MsgInstantSpotMarketLaunch.py b/examples/chain_client/exchange/3_MsgInstantSpotMarketLaunch.py index a1a50606..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 @@ -45,8 +45,8 @@ async def main() -> None: message = composer.msg_instant_spot_market_launch( 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 9b71269f..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 @@ -42,10 +42,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, @@ -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/5_MsgInstantExpiryFuturesMarketLaunch.py b/examples/chain_client/exchange/5_MsgInstantExpiryFuturesMarketLaunch.py index c4c3a083..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 @@ -42,10 +42,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 9b7827dc..afc984ce 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.async_client_v2 import AsyncClient +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/exchange/7_MsgCreateSpotMarketOrder.py b/examples/chain_client/exchange/7_MsgCreateSpotMarketOrder.py index 57ea2409..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 3f927097..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 1e3216c6..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 @@ -44,12 +52,12 @@ async def main() -> None: spot_market_id_cancel_2 = "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0" derivative_orders_to_cancel = [ - composer.order_data( + composer.create_order_data_without_mask( market_id=derivative_market_id_cancel, subaccount_id=subaccount_id, order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", ), - composer.order_data( + composer.create_order_data_without_mask( market_id=derivative_market_id_cancel_2, subaccount_id=subaccount_id, order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", @@ -57,12 +65,12 @@ async def main() -> None: ] spot_orders_to_cancel = [ - composer.order_data( + composer.create_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_order_data_without_mask( market_id=spot_market_id_cancel_2, subaccount_id=subaccount_id, order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", @@ -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/10_SpotMarkets.py b/examples/chain_client/exchange/query/10_SpotMarkets.py index 4cedc9d7..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 diff --git a/examples/chain_client/exchange/query/11_SpotMarket.py b/examples/chain_client/exchange/query/11_SpotMarket.py index 0e774edf..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 diff --git a/examples/chain_client/exchange/query/12_FullSpotMarkets.py b/examples/chain_client/exchange/query/12_FullSpotMarkets.py index cfefee28..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 diff --git a/examples/chain_client/exchange/query/13_FullSpotMarket.py b/examples/chain_client/exchange/query/13_FullSpotMarket.py index 6a39269d..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 diff --git a/examples/chain_client/exchange/query/14_SpotOrderbook.py b/examples/chain_client/exchange/query/14_SpotOrderbook.py index 7b5a9aa1..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 diff --git a/examples/chain_client/exchange/query/15_TraderSpotOrders.py b/examples/chain_client/exchange/query/15_TraderSpotOrders.py index 0cc96b6f..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 diff --git a/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py b/examples/chain_client/exchange/query/16_AccountAddressSpotOrders.py index 8e50fa95..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 diff --git a/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py b/examples/chain_client/exchange/query/17_SpotOrdersByHashes.py index 641eb6f5..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 diff --git a/examples/chain_client/exchange/query/18_SubaccountOrders.py b/examples/chain_client/exchange/query/18_SubaccountOrders.py index 4983f827..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 diff --git a/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py b/examples/chain_client/exchange/query/19_TraderSpotTransientOrders.py index 2b29c2c0..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 diff --git a/examples/chain_client/exchange/query/1_SubaccountDeposits.py b/examples/chain_client/exchange/query/1_SubaccountDeposits.py index f9afb8ae..24a0f362 100644 --- a/examples/chain_client/exchange/query/1_SubaccountDeposits.py +++ b/examples/chain_client/exchange/query/1_SubaccountDeposits.py @@ -1,10 +1,11 @@ import asyncio +import json import os 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 @@ -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/20_SpotMidPriceAndTOB.py b/examples/chain_client/exchange/query/20_SpotMidPriceAndTOB.py index 35493ffd..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 diff --git a/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py b/examples/chain_client/exchange/query/21_DerivativeMidPriceAndTOB.py index 5b5c5fff..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 diff --git a/examples/chain_client/exchange/query/22_DerivativeOrderbook.py b/examples/chain_client/exchange/query/22_DerivativeOrderbook.py index 465a62b6..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 diff --git a/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py b/examples/chain_client/exchange/query/23_TraderDerivativeOrders.py index 244a61b4..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 diff --git a/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py b/examples/chain_client/exchange/query/24_AccountAddressDerivativeOrders.py index 2ecc6e2d..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 diff --git a/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py b/examples/chain_client/exchange/query/25_DerivativeOrdersByHashes.py index 825f5523..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 diff --git a/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py b/examples/chain_client/exchange/query/26_TraderDerivativeTransientOrders.py index c5548d59..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 diff --git a/examples/chain_client/exchange/query/27_DerivativeMarkets.py b/examples/chain_client/exchange/query/27_DerivativeMarkets.py index 2f4bbc5a..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 diff --git a/examples/chain_client/exchange/query/28_DerivativeMarket.py b/examples/chain_client/exchange/query/28_DerivativeMarket.py index 152381f5..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 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..274d393b 100644 --- a/examples/chain_client/exchange/query/2_SubaccountDeposit.py +++ b/examples/chain_client/exchange/query/2_SubaccountDeposit.py @@ -1,10 +1,11 @@ import asyncio +import json import os 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 @@ -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/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 ae494b6a..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 diff --git a/examples/chain_client/exchange/query/32_SubaccountPositions.py b/examples/chain_client/exchange/query/32_SubaccountPositions.py index 000d95b6..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 diff --git a/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py b/examples/chain_client/exchange/query/33_SubaccountPositionInMarket.py index 4e0f1ddb..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 diff --git a/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py b/examples/chain_client/exchange/query/34_SubaccountEffectivePositionInMarket.py index e729e77c..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 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 4053013c..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 diff --git a/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py b/examples/chain_client/exchange/query/37_PerpetualMarketFunding.py index 099c2a0f..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 diff --git a/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py b/examples/chain_client/exchange/query/38_SubaccountOrderMetadata.py index f4af9d38..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 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..15ade507 100644 --- a/examples/chain_client/exchange/query/3_ExchangeBalances.py +++ b/examples/chain_client/exchange/query/3_ExchangeBalances.py @@ -1,6 +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 @@ -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/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 15fbb7ce..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 diff --git a/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py b/examples/chain_client/exchange/query/43_FeeDiscountSchedule.py index a0ae96cb..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 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 6b93200f..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 diff --git a/examples/chain_client/exchange/query/4_AggregateVolume.py b/examples/chain_client/exchange/query/4_AggregateVolume.py index 35c334a5..1c284e79 100644 --- a/examples/chain_client/exchange/query/4_AggregateVolume.py +++ b/examples/chain_client/exchange/query/4_AggregateVolume.py @@ -1,10 +1,11 @@ import asyncio +import json import os 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,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/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 3173ca39..c1e0900c 100644 --- a/examples/chain_client/exchange/query/52_MarketVolatility.py +++ b/examples/chain_client/exchange/query/52_MarketVolatility.py @@ -1,6 +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 @@ -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/53_BinaryOptionsMarkets.py b/examples/chain_client/exchange/query/53_BinaryOptionsMarkets.py index 4448a4ec..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 diff --git a/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py b/examples/chain_client/exchange/query/54_TraderDerivativeConditionalOrders.py index fd65e68f..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 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 new file mode 100644 index 00000000..582aaad4 --- /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_v2 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..f2b9bcba --- /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_v2 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..0a930e81 --- /dev/null +++ b/examples/chain_client/exchange/query/58_GrantAuthorizations.py @@ -0,0 +1,33 @@ +import asyncio +import json +import os + +import dotenv + +from pyinjective import PrivateKey +from pyinjective.async_client_v2 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(json.dumps(active_grant, indent=4)) + + +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 54% rename from examples/chain_client/exchange/query/58_MarketBalance.py rename to examples/chain_client/exchange/query/59_MarketBalance.py index fb31e2a7..4fe4c760 100644 --- a/examples/chain_client/exchange/query/58_MarketBalance.py +++ b/examples/chain_client/exchange/query/59_MarketBalance.py @@ -1,12 +1,13 @@ import asyncio +import json -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network 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 6effe4be..66b1acd7 100644 --- a/examples/chain_client/exchange/query/5_AggregateVolumes.py +++ b/examples/chain_client/exchange/query/5_AggregateVolumes.py @@ -1,10 +1,11 @@ import asyncio +import json import os 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 @@ -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/59_MarketBalances.py b/examples/chain_client/exchange/query/60_MarketBalances.py similarity index 84% rename from examples/chain_client/exchange/query/59_MarketBalances.py rename to examples/chain_client/exchange/query/60_MarketBalances.py index 03cad68a..59981f40 100644 --- a/examples/chain_client/exchange/query/59_MarketBalances.py +++ b/examples/chain_client/exchange/query/60_MarketBalances.py @@ -1,6 +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 @@ -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 93% rename from examples/chain_client/exchange/query/60_DenomMinNotional.py rename to examples/chain_client/exchange/query/61_DenomMinNotional.py index 40919df9..842c822e 100644 --- a/examples/chain_client/exchange/query/60_DenomMinNotional.py +++ b/examples/chain_client/exchange/query/61_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/61_DenomMinNotionals.py b/examples/chain_client/exchange/query/62_DenomMinNotionals.py similarity index 92% rename from examples/chain_client/exchange/query/61_DenomMinNotionals.py rename to examples/chain_client/exchange/query/62_DenomMinNotionals.py index 8925f663..b652f9fb 100644 --- a/examples/chain_client/exchange/query/61_DenomMinNotionals.py +++ b/examples/chain_client/exchange/query/62_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/56_L3DerivativeOrderBook.py b/examples/chain_client/exchange/query/63_L3DerivativeOrderBook.py similarity index 90% rename from examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py rename to examples/chain_client/exchange/query/63_L3DerivativeOrderBook.py index a59fd81d..38f10f92 100644 --- a/examples/chain_client/exchange/query/56_L3DerivativeOrderBook.py +++ b/examples/chain_client/exchange/query/63_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_L3SpotOrderBook.py b/examples/chain_client/exchange/query/64_L3SpotOrderBook.py similarity index 90% rename from examples/chain_client/exchange/query/57_L3SpotOrderBook.py rename to examples/chain_client/exchange/query/64_L3SpotOrderBook.py index c1fce58e..f2fee345 100644 --- a/examples/chain_client/exchange/query/57_L3SpotOrderBook.py +++ b/examples/chain_client/exchange/query/64_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/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/examples/chain_client/exchange/query/6_AggregateMarketVolume.py b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py index b3262d82..fef7714c 100644 --- a/examples/chain_client/exchange/query/6_AggregateMarketVolume.py +++ b/examples/chain_client/exchange/query/6_AggregateMarketVolume.py @@ -1,6 +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 @@ -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/exchange/query/7_AggregateMarketVolumes.py b/examples/chain_client/exchange/query/7_AggregateMarketVolumes.py index 23dfa0ec..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 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 346961c7..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 @@ -40,7 +40,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/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 1bed1031..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,67 +21,43 @@ 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.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, ) - # 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 01cff5e9..d717d798 100644 --- a/examples/chain_client/insurance/2_MsgUnderwrite.py +++ b/examples/chain_client/insurance/2_MsgUnderwrite.py @@ -1,19 +1,19 @@ import asyncio +import json import os +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.async_client_v2 import AsyncClient +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,63 +22,43 @@ 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.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, - ) - - # 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) + quote_denom="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + amount=int(chain_amount), ) - 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 b1cc3762..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,63 +21,39 @@ 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.MsgRequestRedemption( + msg = composer.msg_request_redemption( sender=address.to_acc_bech32(), market_id="0x141e3c92ed55107067ceb60ee412b86256cedef67b1227d6367b4cdf30c55a74", share_denom="share15", 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 6a0de597..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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))] @@ -35,50 +43,19 @@ 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) - - # 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) + msg = composer.msg_relay_price_feed_price( + sender=address.to_acc_bech32(), price=price_to_send, base=base, quote=quote ) - 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 74400ec7..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,70 +20,41 @@ 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"] 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 ) - # 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 5a8550d2..e1e38d7b 100644 --- a/examples/chain_client/peggy/1_MsgSendToEth.py +++ b/examples/chain_client/peggy/1_MsgSendToEth.py @@ -1,20 +1,20 @@ import asyncio +import json import os +from decimal import Decimal import dotenv import requests -from grpc import RpcError -from pyinjective.async_client import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 +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" @@ -36,58 +45,27 @@ 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, - ) - - # 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) + bridge_fee=chain_bridge_fee, ) - 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/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..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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,64 +20,40 @@ 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" amount = 100 - msg = composer.MsgDelegate( + msg = composer.msg_delegate( 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/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 a30748e5..bfa7e799 100644 --- a/examples/chain_client/tendermint/query/3_GetLatestBlock.py +++ b/examples/chain_client/tendermint/query/3_GetLatestBlock.py @@ -1,6 +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 @@ -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/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..566ab321 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 @@ -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 a0cba885..24549c1b 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 @@ -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/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 f645dba7..020e2e19 100644 --- a/examples/chain_client/tx/query/1_GetTx.py +++ b/examples/chain_client/tx/query/1_GetTx.py @@ -1,13 +1,13 @@ import asyncio -from pyinjective.async_client import AsyncClient +from pyinjective.async_client_v2 import AsyncClient from pyinjective.core.network import Network 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/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..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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 @@ -40,55 +48,22 @@ 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":{}}', 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/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..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 import AsyncClient -from pyinjective.constant import GAS_FEE_BUFFER_AMOUNT +from pyinjective.async_client_v2 import AsyncClient +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/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 def49ded..fa54822f 100644 --- a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py +++ b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py @@ -1,19 +1,21 @@ 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", ] - 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/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 new file mode 100644 index 00000000..bd54f606 --- /dev/null +++ b/examples/exchange_client/derivative_exchange_rpc/24_OpenInterest.py @@ -0,0 +1,24 @@ +import asyncio +import json + +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 = IndexerClient(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/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 01443459..a7ea8660 100644 --- a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py @@ -1,16 +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_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/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 93b00a0a..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]) + 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 new file mode 100644 index 00000000..cb0a9f8c --- /dev/null +++ b/examples/exchange_client/oracle_rpc/4_PriceV2.py @@ -0,0 +1,26 @@ +import asyncio +import json + +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 = IndexerClient(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/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 ac672940..92381cdb 100644 --- a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py +++ b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py @@ -1,18 +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_ids = [ "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/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 9e4e08eb..6ff61ace 100644 --- a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py @@ -1,15 +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) 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/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 6a7fb247..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]) + 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/poetry.lock b/poetry.lock index fb8af2ef..50e81869 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,97 +13,102 @@ files = [ [[package]] name = "aiohttp" -version = "3.11.16" +version = "3.12.14" 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.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.3.0" -aiosignal = ">=1.1.2" +aiohappyeyeballs = ">=2.5.0" +aiosignal = ">=1.4.0" async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} attrs = ">=17.3.0" frozenlist = ">=1.1.1" @@ -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" @@ -131,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" @@ -195,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" @@ -222,145 +239,145 @@ coincurve = ">=15.0,<21" [[package]] name = "bitarray" -version = "3.3.1" +version = "3.5.2" 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.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]] @@ -411,13 +428,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2025.1.31" +version = "2025.7.14" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" 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.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, + {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, ] [[package]] @@ -512,103 +529,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]] @@ -722,13 +739,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 +830,99 @@ files = [ [[package]] name = "coverage" -version = "7.8.0" +version = "7.10.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.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] @@ -1017,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]] @@ -1046,13 +1088,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] @@ -1105,13 +1147,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 +1302,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,230 +1373,242 @@ docs = ["alabaster", "myst-parser (>=0.18.0,<0.19.0)", "pygments-github-lexers", [[package]] name = "frozenlist" -version = "1.5.0" +version = "1.7.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.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.74.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.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.71.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 = "*" @@ -1571,29 +1628,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.12" 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.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"}, + {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}, ] [package.extras] @@ -1682,115 +1739,121 @@ files = [ [[package]] name = "multidict" -version = "6.4.3" +version = "6.6.3" 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.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] @@ -1798,13 +1861,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 +1883,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 +1919,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 +1935,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" @@ -1905,129 +1968,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]] @@ -2054,56 +2117,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.7" 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.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, + {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, ] [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 +2188,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] @@ -2235,13 +2310,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] @@ -2249,25 +2324,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" @@ -2286,18 +2362,18 @@ pytest = ">=3.5.0" [[package]] name = "pytest-asyncio" -version = "0.26.0" +version = "1.1.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.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" -typing-extensions = {version = ">=4.12", markers = "python_version < \"3.10\""} [package.extras] docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1)"] @@ -2305,18 +2381,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"] @@ -2337,13 +2414,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] @@ -2362,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]] @@ -2552,18 +2633,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" @@ -2610,23 +2691,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 = "78.1.0" +version = "80.9.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.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, + {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, ] [package.extras] @@ -2714,13 +2805,13 @@ files = [ [[package]] name = "types-requests" -version = "2.32.0.20250328" +version = "2.32.4.20250611" 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.4.20250611-py3-none-any.whl", hash = "sha256:ad2fe5d3b0cb3c2c902c8815a70e7fb2302c4b8c1f77bdcd738192cdb3878072"}, + {file = "types_requests-2.32.4.20250611.tar.gz", hash = "sha256:741c8777ed6425830bf51e54d6abe245f79b4dcb9019f1622b773463946bf826"}, ] [package.dependencies] @@ -2728,24 +2819,24 @@ urllib3 = ">=2" [[package]] name = "typing-extensions" -version = "4.13.2" -description = "Backported and Experimental Type Hints for Python 3.8+" +version = "4.14.1" +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.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, + {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] [[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] @@ -2753,13 +2844,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] @@ -2770,13 +2861,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.30.0" +version = "20.32.0" 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.32.0-py3-none-any.whl", hash = "sha256:2c310aecb62e5aa1b06103ed7c2977b81e042695de2697d01017ff0f1034af56"}, + {file = "virtualenv-20.32.0.tar.gz", hash = "sha256:886bf75cadfdc964674e6e33eb74d787dff31ca314ceace03ca5810620f4ecf0"}, ] [package.dependencies] @@ -2790,19 +2881,19 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "web3" -version = "7.10.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.10.0-py3-none-any.whl", hash = "sha256:06fcab920554450e9f7d108da5e6b9d29c0d1a981a59a5551cc82d2cb2233b34"}, - {file = "web3-7.10.0.tar.gz", hash = "sha256:0cace05ea14f800a4497649ecd99332ca4e85c8a90ea577e05ae909cb08902b9"}, + {file = "web3-7.12.1-py3-none-any.whl", hash = "sha256:eac9a0d4bba128a0811828312ae0faaaa122a258efffd77e1e7cf06a0629a043"}, + {file = "web3-7.12.1.tar.gz", hash = "sha256:97f6a116ccaeb5907bb4cb6c771cc23bc942bf09528a840189e9b509b7b8347c"}, ] [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 +2907,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"] +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.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)"] +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 +2992,115 @@ files = [ [[package]] name = "yarl" -version = "1.19.0" +version = "1.20.1" 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.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] @@ -3002,13 +3110,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] @@ -3016,10 +3124,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/async_client.py b/pyinjective/async_client.py index 62811380..31f41a9d 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -16,23 +16,6 @@ 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 @@ -47,23 +30,13 @@ 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_accounts_rpc_pb2_grpc as exchange_accounts_rpc_grpc, - injective_auction_rpc_pb2_grpc as auction_rpc_grpc, - injective_derivative_exchange_rpc_pb2_grpc as derivative_exchange_rpc_grpc, - injective_explorer_rpc_pb2_grpc as explorer_rpc_grpc, - injective_insurance_rpc_pb2_grpc as insurance_rpc_grpc, - injective_meta_rpc_pb2_grpc as exchange_meta_rpc_grpc, - injective_oracle_rpc_pb2_grpc as oracle_rpc_grpc, - injective_portfolio_rpc_pb2_grpc as portfolio_rpc_grpc, - 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, ) @@ -90,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() @@ -100,26 +74,8 @@ 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() - 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) @@ -199,84 +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_chain_channel(self): await self.chain_channel.close() self._cancel_timeout_height_sync_task() @@ -911,10 +792,10 @@ async def fetch_denom_min_notionals(self) -> Dict[str, Any]: # 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, @@ -922,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, @@ -948,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, @@ -1074,7 +955,7 @@ 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, @@ -1088,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, @@ -1105,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.exchange_explorer_api.fetch_contract_txs_v2( + return await self.indexer_client.fetch_contract_txs_v2( address=address, height=height, token=token, + status=status, pagination=pagination, ) @@ -1120,25 +1003,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, @@ -1151,7 +1028,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, @@ -1168,7 +1045,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, @@ -1180,7 +1057,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, @@ -1192,7 +1069,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, @@ -1204,7 +1081,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, @@ -1220,7 +1097,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, @@ -1234,7 +1111,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, ) @@ -1242,19 +1119,23 @@ 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, 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.exchange_explorer_api.fetch_wasm_contracts( + return await self.indexer_client.fetch_wasm_contracts( code_id=code_id, assets_only=assets_only, label=label, + token=token, + lookup=lookup, pagination=pagination, ) @@ -1262,14 +1143,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, ) @@ -1278,7 +1159,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, ) @@ -1292,7 +1173,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, @@ -1312,7 +1193,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, @@ -1321,17 +1202,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, @@ -1340,7 +1219,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, @@ -1353,7 +1232,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, @@ -1364,16 +1243,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 @@ -1386,7 +1265,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, @@ -1402,7 +1281,7 @@ 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, @@ -1410,12 +1289,12 @@ async def fetch_oracle_price( ) async def fetch_oracle_list(self) -> Dict[str, Any]: - return await self.exchange_oracle_api.fetch_oracle_list() + 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, @@ -1423,7 +1302,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, @@ -1432,7 +1311,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, @@ -1440,7 +1319,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 ) @@ -1451,7 +1330,7 @@ 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, @@ -1459,10 +1338,10 @@ async def listen_spot_markets_updates( ) 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) + return await self.indexer_client.fetch_spot_orderbook_v2(market_id=market_id) 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) + return await self.indexer_client.fetch_spot_orderbooks_v2(market_ids=market_ids) async def fetch_spot_orders( self, @@ -1475,7 +1354,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, @@ -1499,7 +1378,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, @@ -1525,7 +1404,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, @@ -1545,7 +1424,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, @@ -1559,7 +1438,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, @@ -1580,7 +1459,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, @@ -1606,7 +1485,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, @@ -1630,7 +1509,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, @@ -1658,7 +1537,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, @@ -1680,7 +1559,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 ) @@ -1692,7 +1571,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, @@ -1703,14 +1582,14 @@ 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, ) @@ -1722,7 +1601,7 @@ 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, @@ -1730,10 +1609,10 @@ async def listen_derivative_market_updates( ) 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) + return await self.indexer_client.fetch_derivative_orderbook_v2(market_id=market_id) 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) + return await self.indexer_client.fetch_derivative_orderbooks_v2(market_ids=market_ids) async def fetch_derivative_orders( self, @@ -1748,7 +1627,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, @@ -1775,7 +1654,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, @@ -1802,7 +1681,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, @@ -1822,7 +1701,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, @@ -1836,7 +1715,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, @@ -1859,7 +1738,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, @@ -1891,7 +1770,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, @@ -1915,7 +1794,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, @@ -1939,7 +1818,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, @@ -1970,7 +1849,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, @@ -1986,7 +1865,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, ) @@ -1997,7 +1876,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 ) @@ -2009,7 +1888,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, @@ -2023,7 +1902,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 ) @@ -2032,7 +1911,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, @@ -2040,22 +1919,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) + 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, @@ -2066,7 +1943,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, @@ -2396,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 @@ -2534,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 @@ -2559,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 new file mode 100644 index 00000000..b46d71be --- /dev/null +++ b/pyinjective/async_client_v2.py @@ -0,0 +1,1486 @@ +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_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 +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_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) + + 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, 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) + + 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, + unique_symbol=unique_symbol, + ) + + 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"]), + unique_symbol=unique_symbol, + ) + + 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 + + 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 + + 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/client/chain/grpc/chain_grpc_erc20_api.py b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py new file mode 100644 index 00000000..2286bee5 --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_erc20_api.py @@ -0,0 +1,49 @@ +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 + + +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, + 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 + + 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/client/chain/grpc/chain_grpc_exchange_api.py b/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py index c6fcf83a..0fcb99e2 100644 --- a/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_api.py @@ -610,5 +610,30 @@ async def fetch_denom_min_notionals(self) -> Dict[str, Any]: 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) + + 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 _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..3690b3ef --- /dev/null +++ b/pyinjective/client/chain/grpc/chain_grpc_exchange_v2_api.py @@ -0,0 +1,655 @@ +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_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) + + 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_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) + + 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 _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/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_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/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 8a0ed982..aaad2f5a 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -311,7 +311,15 @@ def create_grant_authorization(self, grantee: str, amount: Decimal) -> injective 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): + 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( @@ -323,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) @@ -338,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() @@ -346,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): @@ -360,7 +394,15 @@ 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) + + 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: 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( @@ -428,104 +470,6 @@ def msg_instant_spot_market_launch( 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: - 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_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: - 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_create_spot_limit_order( self, market_id: str, @@ -754,7 +698,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: quote_token = self.tokens[quote_denom] chain_min_price_tick_size = min_price_tick_size * Decimal( @@ -1080,7 +1024,34 @@ 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) + + return self.msg_create_insurance_fund( + sender=sender, + ticker=ticker, + quote_denom=quote_denom, + oracle_base=oracle_base, + oracle_quote=oracle_quote, + oracle_type=oracle_type, + expiry=expiry, + initial_deposit=initial_deposit, + ) + + def msg_create_insurance_fund( + self, + sender: str, + ticker: str, + quote_denom: str, + oracle_base: str, + oracle_quote: str, + oracle_type: int, + expiry: int, + initial_deposit: int, + ) -> injective_insurance_tx_pb.MsgCreateInsuranceFund: token = self.tokens[quote_denom] deposit = self.create_coin_amount(Decimal(str(initial_deposit)), quote_denom) @@ -1101,7 +1072,26 @@ 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) + + return self.msg_underwrite( + sender=sender, + market_id=market_id, + quote_denom=quote_denom, + amount=amount, + ) + + def msg_underwrite( + self, + sender: str, + market_id: str, + quote_denom: str, + amount: int, + ) -> 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( @@ -1116,7 +1106,26 @@ def MsgRequestRedemption( market_id: str, share_denom: str, amount: int, - ): + ) -> 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, @@ -1127,6 +1136,14 @@ def MsgRequestRedemption( # 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: @@ -1138,13 +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) @@ -1158,7 +1199,21 @@ def MsgSendToEth(self, denom: str, sender: str, eth_dest: str, amount: float, br # endregion # region Staking module - def MsgDelegate(self, delegator_address: str, validator_address: str, amount: float): + 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( @@ -1256,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, @@ -1263,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 @@ -1286,56 +1371,77 @@ 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 `msg_grant_typed` instead + """ + warn("This method is deprecated. Use msg_grant_typed instead", DeprecationWarning, stacklevel=2) + + 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"), + ) + + 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_pb.CreateSpotLimitOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) + auth = injective_authz_pb.CreateSpotLimitOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "CreateSpotMarketOrderAuthz": - auth = injective_authz_pb.CreateSpotMarketOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) + auth = injective_authz_pb.CreateSpotMarketOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "BatchCreateSpotLimitOrdersAuthz": auth = injective_authz_pb.BatchCreateSpotLimitOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") + subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "CancelSpotOrderAuthz": - auth = injective_authz_pb.CancelSpotOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) + auth = injective_authz_pb.CancelSpotOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "BatchCancelSpotOrdersAuthz": - auth = injective_authz_pb.BatchCancelSpotOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) + auth = injective_authz_pb.BatchCancelSpotOrdersAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "CreateDerivativeLimitOrderAuthz": auth = injective_authz_pb.CreateDerivativeLimitOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") + subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "CreateDerivativeMarketOrderAuthz": auth = injective_authz_pb.CreateDerivativeMarketOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") + subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "BatchCreateDerivativeLimitOrdersAuthz": auth = injective_authz_pb.BatchCreateDerivativeLimitOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") + subaccount_id=subaccount_id, market_ids=market_ids ) elif msg_type == "CancelDerivativeOrderAuthz": - auth = injective_authz_pb.CancelDerivativeOrderAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") - ) + auth = injective_authz_pb.CancelDerivativeOrderAuthz(subaccount_id=subaccount_id, market_ids=market_ids) elif msg_type == "BatchCancelDerivativeOrdersAuthz": auth = injective_authz_pb.BatchCancelDerivativeOrdersAuthz( - subaccount_id=subaccount_id, market_ids=kwargs.get("market_ids") + 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_pb.BatchUpdateOrdersAuthz( subaccount_id=subaccount_id, - spot_markets=kwargs.get("spot_markets"), - derivative_markets=kwargs.get("derivative_markets"), + spot_markets=spot_markets_ids, + derivative_markets=derivative_markets_ids, ) any_auth = any_pb2.Any() @@ -1343,17 +1449,30 @@ def MsgGrantTyped( grant = cosmos_authz_pb.Grant( authorization=any_auth, - expiration=timestamp_pb2.Timestamp(seconds=(int(time()) + expire_in)), + 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, + proposal_id: int, voter: str, option: int, - ): + ) -> 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) + + 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( @@ -1423,15 +1542,6 @@ def msg_withdraw_delegator_reward(self, delegator_address: str, validator_addres 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/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/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/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/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/core/market_v2.py b/pyinjective/core/market_v2.py new file mode 100644 index 00000000..022bb7ef --- /dev/null +++ b/pyinjective/core/market_v2.py @@ -0,0 +1,269 @@ +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: + 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 = 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 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 + 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 = 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 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: + 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 + + 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 + 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 + ) + 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 + 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 + + 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 + ) + 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 calculate_margin_in_chain_format( + self, + human_readable_quantity: Decimal, + human_readable_price: Decimal, + is_buy: bool, + special_denom: Optional[Denom] = None, + ) -> Decimal: + 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 + 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 + 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 + + 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/core/network.py b/pyinjective/core/network.py index 2fdf91fe..f83c3e4a 100644 --- a/pyinjective/core/network.py +++ b/pyinjective/core/network.py @@ -2,7 +2,6 @@ from abc import ABC, abstractmethod from http.cookies import SimpleCookie from typing import List, Optional -from warnings import warn import grpc from grpc import ChannelCredentials @@ -119,20 +118,11 @@ def __init__( exchange_cookie_assistant: CookieAssistant, explorer_cookie_assistant: CookieAssistant, official_tokens_list_url: str, - use_secure_connection: Optional[bool] = None, grpc_channel_credentials: Optional[ChannelCredentials] = None, grpc_exchange_channel_credentials: Optional[ChannelCredentials] = None, grpc_explorer_channel_credentials: Optional[ChannelCredentials] = None, chain_stream_channel_credentials: Optional[ChannelCredentials] = None, ): - # the `use_secure_connection` parameter is ignored and will be deprecated soon. - if use_secure_connection is not None: - warn( - "use_secure_connection parameter in Network is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - self.lcd_endpoint = lcd_endpoint self.tm_websocket_endpoint = tm_websocket_endpoint self.grpc_endpoint = grpc_endpoint @@ -299,20 +289,11 @@ def custom( chain_cookie_assistant: Optional[CookieAssistant] = None, exchange_cookie_assistant: Optional[CookieAssistant] = None, explorer_cookie_assistant: Optional[CookieAssistant] = None, - use_secure_connection: Optional[bool] = None, grpc_channel_credentials: Optional[ChannelCredentials] = None, grpc_exchange_channel_credentials: Optional[ChannelCredentials] = None, grpc_explorer_channel_credentials: Optional[ChannelCredentials] = None, chain_stream_channel_credentials: Optional[ChannelCredentials] = None, ): - # the `use_secure_connection` parameter is ignored and will be deprecated soon. - if use_secure_connection is not None: - warn( - "use_secure_connection parameter in Network is no longer used and will be deprecated", - DeprecationWarning, - stacklevel=2, - ) - chain_assistant = chain_cookie_assistant or DisabledCookieAssistant() exchange_assistant = exchange_cookie_assistant or DisabledCookieAssistant() explorer_assistant = explorer_cookie_assistant or DisabledCookieAssistant() diff --git a/pyinjective/core/token.py b/pyinjective/core/token.py index bdeace85..ea926a11 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: @@ -24,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/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/pyinjective/indexer_client.py b/pyinjective/indexer_client.py new file mode 100644 index 00000000..0cce0a9f --- /dev/null +++ b/pyinjective/indexer_client.py @@ -0,0 +1,1189 @@ +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, + 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, + ) + + 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, + 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, + ) + + 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/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/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/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_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_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..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\"\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\"\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) @@ -27,145 +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=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['_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=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_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_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/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/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/ibc/lightclients/tendermint/v1/tendermint_pb2.py b/pyinjective/proto/ibc/lightclients/tendermint/v1/tendermint_pb2.py index 31cbde92..8fb84729 100644 --- a/pyinjective/proto/ibc/lightclients/tendermint/v1/tendermint_pb2.py +++ b/pyinjective/proto/ibc/lightclients/tendermint/v1/tendermint_pb2.py @@ -12,8 +12,8 @@ _sym_db = _symbol_database.Default() -from pyinjective.proto.tendermint.types import validator_pb2 as tendermint_dot_types_dot_validator__pb2 -from pyinjective.proto.tendermint.types import types_pb2 as tendermint_dot_types_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.types.v1 import types_pb2 as cometbft_dot_types_dot_v1_dot_types__pb2 from pyinjective.proto.cosmos.ics23.v1 import proofs_pb2 as cosmos_dot_ics23_dot_v1_dot_proofs__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 @@ -22,7 +22,7 @@ from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/ibc/lightclients/tendermint/v1/tendermint.proto\x12\x1eibc.lightclients.tendermint.v1\x1a tendermint/types/validator.proto\x1a\x1ctendermint/types/types.proto\x1a\x1c\x63osmos/ics23/v1/proofs.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fibc/core/client/v1/client.proto\x1a\'ibc/core/commitment/v1/commitment.proto\x1a\x14gogoproto/gogo.proto\"\xe2\x05\n\x0b\x43lientState\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\tR\x07\x63hainId\x12O\n\x0btrust_level\x18\x02 \x01(\x0b\x32(.ibc.lightclients.tendermint.v1.FractionB\x04\xc8\xde\x1f\x00R\ntrustLevel\x12L\n\x0ftrusting_period\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0etrustingPeriod\x12N\n\x10unbonding_period\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0funbondingPeriod\x12K\n\x0fmax_clock_drift\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\rmaxClockDrift\x12\x45\n\rfrozen_height\x18\x06 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0c\x66rozenHeight\x12\x45\n\rlatest_height\x18\x07 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0clatestHeight\x12;\n\x0bproof_specs\x18\x08 \x03(\x0b\x32\x1a.cosmos.ics23.v1.ProofSpecR\nproofSpecs\x12!\n\x0cupgrade_path\x18\t \x03(\tR\x0bupgradePath\x12=\n\x19\x61llow_update_after_expiry\x18\n \x01(\x08\x42\x02\x18\x01R\x16\x61llowUpdateAfterExpiry\x12I\n\x1f\x61llow_update_after_misbehaviour\x18\x0b \x01(\x08\x42\x02\x18\x01R\x1c\x61llowUpdateAfterMisbehaviour:\x04\x88\xa0\x1f\x00\"\x80\x02\n\x0e\x43onsensusState\x12\x42\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12<\n\x04root\x18\x02 \x01(\x0b\x32\".ibc.core.commitment.v1.MerkleRootB\x04\xc8\xde\x1f\x00R\x04root\x12\x66\n\x14next_validators_hash\x18\x03 \x01(\x0c\x42\x34\xfa\xde\x1f\x30github.com/cometbft/cometbft/libs/bytes.HexBytesR\x12nextValidatorsHash:\x04\x88\xa0\x1f\x00\"\xd5\x01\n\x0cMisbehaviour\x12\x1f\n\tclient_id\x18\x01 \x01(\tB\x02\x18\x01R\x08\x63lientId\x12N\n\x08header_1\x18\x02 \x01(\x0b\x32&.ibc.lightclients.tendermint.v1.HeaderB\x0b\xe2\xde\x1f\x07Header1R\x07header1\x12N\n\x08header_2\x18\x03 \x01(\x0b\x32&.ibc.lightclients.tendermint.v1.HeaderB\x0b\xe2\xde\x1f\x07Header2R\x07header2:\x04\x88\xa0\x1f\x00\"\xb0\x02\n\x06Header\x12I\n\rsigned_header\x18\x01 \x01(\x0b\x32\x1e.tendermint.types.SignedHeaderB\x04\xd0\xde\x1f\x01R\x0csignedHeader\x12\x43\n\rvalidator_set\x18\x02 \x01(\x0b\x32\x1e.tendermint.types.ValidatorSetR\x0cvalidatorSet\x12G\n\x0etrusted_height\x18\x03 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\rtrustedHeight\x12M\n\x12trusted_validators\x18\x04 \x01(\x0b\x32\x1e.tendermint.types.ValidatorSetR\x11trustedValidators\"J\n\x08\x46raction\x12\x1c\n\tnumerator\x18\x01 \x01(\x04R\tnumerator\x12 \n\x0b\x64\x65nominator\x18\x02 \x01(\x04R\x0b\x64\x65nominatorB\x9c\x02\n\"com.ibc.lightclients.tendermint.v1B\x0fTendermintProtoP\x01ZJgithub.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint;tendermint\xa2\x02\x03ILT\xaa\x02\x1eIbc.Lightclients.Tendermint.V1\xca\x02\x1eIbc\\Lightclients\\Tendermint\\V1\xe2\x02*Ibc\\Lightclients\\Tendermint\\V1\\GPBMetadata\xea\x02!Ibc::Lightclients::Tendermint::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/ibc/lightclients/tendermint/v1/tendermint.proto\x12\x1eibc.lightclients.tendermint.v1\x1a!cometbft/types/v1/validator.proto\x1a\x1d\x63ometbft/types/v1/types.proto\x1a\x1c\x63osmos/ics23/v1/proofs.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1fibc/core/client/v1/client.proto\x1a\'ibc/core/commitment/v1/commitment.proto\x1a\x14gogoproto/gogo.proto\"\xe2\x05\n\x0b\x43lientState\x12\x19\n\x08\x63hain_id\x18\x01 \x01(\tR\x07\x63hainId\x12O\n\x0btrust_level\x18\x02 \x01(\x0b\x32(.ibc.lightclients.tendermint.v1.FractionB\x04\xc8\xde\x1f\x00R\ntrustLevel\x12L\n\x0ftrusting_period\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0etrustingPeriod\x12N\n\x10unbonding_period\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\x0funbondingPeriod\x12K\n\x0fmax_clock_drift\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x08\xc8\xde\x1f\x00\x98\xdf\x1f\x01R\rmaxClockDrift\x12\x45\n\rfrozen_height\x18\x06 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0c\x66rozenHeight\x12\x45\n\rlatest_height\x18\x07 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\x0clatestHeight\x12;\n\x0bproof_specs\x18\x08 \x03(\x0b\x32\x1a.cosmos.ics23.v1.ProofSpecR\nproofSpecs\x12!\n\x0cupgrade_path\x18\t \x03(\tR\x0bupgradePath\x12=\n\x19\x61llow_update_after_expiry\x18\n \x01(\x08\x42\x02\x18\x01R\x16\x61llowUpdateAfterExpiry\x12I\n\x1f\x61llow_update_after_misbehaviour\x18\x0b \x01(\x08\x42\x02\x18\x01R\x1c\x61llowUpdateAfterMisbehaviour:\x04\x88\xa0\x1f\x00\"\x80\x02\n\x0e\x43onsensusState\x12\x42\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\ttimestamp\x12<\n\x04root\x18\x02 \x01(\x0b\x32\".ibc.core.commitment.v1.MerkleRootB\x04\xc8\xde\x1f\x00R\x04root\x12\x66\n\x14next_validators_hash\x18\x03 \x01(\x0c\x42\x34\xfa\xde\x1f\x30github.com/cometbft/cometbft/libs/bytes.HexBytesR\x12nextValidatorsHash:\x04\x88\xa0\x1f\x00\"\xd5\x01\n\x0cMisbehaviour\x12\x1f\n\tclient_id\x18\x01 \x01(\tB\x02\x18\x01R\x08\x63lientId\x12N\n\x08header_1\x18\x02 \x01(\x0b\x32&.ibc.lightclients.tendermint.v1.HeaderB\x0b\xe2\xde\x1f\x07Header1R\x07header1\x12N\n\x08header_2\x18\x03 \x01(\x0b\x32&.ibc.lightclients.tendermint.v1.HeaderB\x0b\xe2\xde\x1f\x07Header2R\x07header2:\x04\x88\xa0\x1f\x00\"\xb3\x02\n\x06Header\x12J\n\rsigned_header\x18\x01 \x01(\x0b\x32\x1f.cometbft.types.v1.SignedHeaderB\x04\xd0\xde\x1f\x01R\x0csignedHeader\x12\x44\n\rvalidator_set\x18\x02 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x0cvalidatorSet\x12G\n\x0etrusted_height\x18\x03 \x01(\x0b\x32\x1a.ibc.core.client.v1.HeightB\x04\xc8\xde\x1f\x00R\rtrustedHeight\x12N\n\x12trusted_validators\x18\x04 \x01(\x0b\x32\x1f.cometbft.types.v1.ValidatorSetR\x11trustedValidators\"J\n\x08\x46raction\x12\x1c\n\tnumerator\x18\x01 \x01(\x04R\tnumerator\x12 \n\x0b\x64\x65nominator\x18\x02 \x01(\x04R\x0b\x64\x65nominatorB\x9c\x02\n\"com.ibc.lightclients.tendermint.v1B\x0fTendermintProtoP\x01ZJgithub.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint;tendermint\xa2\x02\x03ILT\xaa\x02\x1eIbc.Lightclients.Tendermint.V1\xca\x02\x1eIbc\\Lightclients\\Tendermint\\V1\xe2\x02*Ibc\\Lightclients\\Tendermint\\V1\\GPBMetadata\xea\x02!Ibc::Lightclients::Tendermint::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -68,14 +68,14 @@ _globals['_HEADER'].fields_by_name['signed_header']._serialized_options = b'\320\336\037\001' _globals['_HEADER'].fields_by_name['trusted_height']._loaded_options = None _globals['_HEADER'].fields_by_name['trusted_height']._serialized_options = b'\310\336\037\000' - _globals['_CLIENTSTATE']._serialized_start=339 - _globals['_CLIENTSTATE']._serialized_end=1077 - _globals['_CONSENSUSSTATE']._serialized_start=1080 - _globals['_CONSENSUSSTATE']._serialized_end=1336 - _globals['_MISBEHAVIOUR']._serialized_start=1339 - _globals['_MISBEHAVIOUR']._serialized_end=1552 - _globals['_HEADER']._serialized_start=1555 - _globals['_HEADER']._serialized_end=1859 - _globals['_FRACTION']._serialized_start=1861 - _globals['_FRACTION']._serialized_end=1935 + _globals['_CLIENTSTATE']._serialized_start=341 + _globals['_CLIENTSTATE']._serialized_end=1079 + _globals['_CONSENSUSSTATE']._serialized_start=1082 + _globals['_CONSENSUSSTATE']._serialized_end=1338 + _globals['_MISBEHAVIOUR']._serialized_start=1341 + _globals['_MISBEHAVIOUR']._serialized_end=1554 + _globals['_HEADER']._serialized_start=1557 + _globals['_HEADER']._serialized_end=1864 + _globals['_FRACTION']._serialized_start=1866 + _globals['_FRACTION']._serialized_end=1940 # @@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/erc20/v1beta1/erc20_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/erc20_pb2.py new file mode 100644 index 00000000..466dbf1f --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/erc20_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/v1beta1/erc20.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#injective/erc20/v1beta1/erc20.proto\x12\x17injective.erc20.v1beta1\"O\n\tTokenPair\x12\x1d\n\nbank_denom\x18\x01 \x01(\tR\tbankDenom\x12#\n\rerc20_address\x18\x02 \x01(\tR\x0c\x65rc20AddressB\xf4\x01\n\x1b\x63om.injective.erc20.v1beta1B\nErc20ProtoP\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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.erc20_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\nErc20ProtoP\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['_TOKENPAIR']._serialized_start=64 + _globals['_TOKENPAIR']._serialized_end=143 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/erc20_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/erc20_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/erc20_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/erc20/v1beta1/events_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/events_pb2.py new file mode 100644 index 00000000..6a41a1b3 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/events_pb2.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/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$injective/erc20/v1beta1/events.proto\x12\x17injective.erc20.v1beta1\"Z\n\x14\x45ventCreateTokenPair\x12\x1d\n\nbank_denom\x18\x01 \x01(\tR\tbankDenom\x12#\n\rerc20_address\x18\x02 \x01(\tR\x0c\x65rc20Address\"5\n\x14\x45ventDeleteTokenPair\x12\x1d\n\nbank_denom\x18\x01 \x01(\tR\tbankDenomB\xf5\x01\n\x1b\x63om.injective.erc20.v1beta1B\x0b\x45ventsProtoP\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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\013EventsProtoP\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['_EVENTCREATETOKENPAIR']._serialized_start=65 + _globals['_EVENTCREATETOKENPAIR']._serialized_end=155 + _globals['_EVENTDELETETOKENPAIR']._serialized_start=157 + _globals['_EVENTDELETETOKENPAIR']._serialized_end=210 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/events_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/events_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/erc20/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/injective/erc20/v1beta1/genesis_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/genesis_pb2.py new file mode 100644 index 00000000..3d50ce84 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/genesis_pb2.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/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.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 +from pyinjective.proto.injective.erc20.v1beta1 import params_pb2 as injective_dot_erc20_dot_v1beta1_dot_params__pb2 +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/genesis.proto\x12\x17injective.erc20.v1beta1\x1a\x14gogoproto/gogo.proto\x1a$injective/erc20/v1beta1/params.proto\x1a#injective/erc20/v1beta1/erc20.proto\"\x98\x01\n\x0cGenesisState\x12=\n\x06params\x18\x01 \x01(\x0b\x32\x1f.injective.erc20.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\x12I\n\x0btoken_pairs\x18\x02 \x03(\x0b\x32\".injective.erc20.v1beta1.TokenPairB\x04\xc8\xde\x1f\x00R\ntokenPairsB\xf6\x01\n\x1b\x63om.injective.erc20.v1beta1B\x0cGenesisProtoP\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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.genesis_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\014GenesisProtoP\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['_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['token_pairs']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['token_pairs']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE']._serialized_start=164 + _globals['_GENESISSTATE']._serialized_end=316 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/genesis_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/genesis_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/erc20/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/erc20/v1beta1/params_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py new file mode 100644 index 00000000..3fc72b3b --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/params_pb2.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/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 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\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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.params_pb2', _globals) +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=139 + _globals['_PARAMS']._serialized_end=278 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/params_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/params_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/erc20/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/injective/erc20/v1beta1/query_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py new file mode 100644 index 00000000..5b7c6288 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/query_pb2.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/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.cosmos.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__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.injective.erc20.v1beta1 import params_pb2 as injective_dot_erc20_dot_v1beta1_dot_params__pb2 +from pyinjective.proto.injective.erc20.v1beta1 import genesis_pb2 as injective_dot_erc20_dot_v1beta1_dot_genesis__pb2 +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\"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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\nQueryProtoP\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['_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\037/injective/erc20/v1beta1/params' + _globals['_QUERY'].methods_by_name['AllTokenPairs']._loaded_options = None + _globals['_QUERY'].methods_by_name['AllTokenPairs']._serialized_options = b'\202\323\344\223\002*\022(/injective/erc20/v1beta1/all_token_pairs' + _globals['_QUERY'].methods_by_name['TokenPairByDenom']._loaded_options = None + _globals['_QUERY'].methods_by_name['TokenPairByDenom']._serialized_options = b'\202\323\344\223\002.\022,/injective/erc20/v1beta1/token_pair_by_denom' + _globals['_QUERY'].methods_by_name['TokenPairByERC20Address']._loaded_options = None + _globals['_QUERY'].methods_by_name['TokenPairByERC20Address']._serialized_options = b'\202\323\344\223\0026\0224/injective/erc20/v1beta1/token_pair_by_erc20_address' + _globals['_QUERYPARAMSREQUEST']._serialized_start=306 + _globals['_QUERYPARAMSREQUEST']._serialized_end=326 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=328 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=412 + _globals['_QUERYALLTOKENPAIRSREQUEST']._serialized_start=414 + _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/erc20/v1beta1/query_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/query_pb2_grpc.py new file mode 100644 index 00000000..85003335 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/query_pb2_grpc.py @@ -0,0 +1,217 @@ +# 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.erc20.v1beta1 import query_pb2 as injective_dot_erc20_dot_v1beta1_dot_query__pb2 + + +class QueryStub(object): + """Query defines the gRPC querier service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Params = channel.unary_unary( + '/injective.erc20.v1beta1.Query/Params', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + _registered_method=True) + self.AllTokenPairs = channel.unary_unary( + '/injective.erc20.v1beta1.Query/AllTokenPairs', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsRequest.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsResponse.FromString, + _registered_method=True) + self.TokenPairByDenom = channel.unary_unary( + '/injective.erc20.v1beta1.Query/TokenPairByDenom', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomRequest.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomResponse.FromString, + _registered_method=True) + self.TokenPairByERC20Address = channel.unary_unary( + '/injective.erc20.v1beta1.Query/TokenPairByERC20Address', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressRequest.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Query defines the gRPC querier service. + """ + + def Params(self, request, context): + """Params defines a gRPC query method that returns the erc20 module's + parameters. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AllTokenPairs(self, request, context): + """AllTokenPairs defines a gRPC query method that returns the erc20 + module's created token pairs. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TokenPairByDenom(self, request, context): + """TokenPairByDenom defines a gRPC query method that returns the erc20 + module's token pair associated with the provided bank denom. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TokenPairByERC20Address(self, request, context): + """TokenPairByERC20Address defines a gRPC query method that returns the erc20 + module's token pair associated with the provided erc20 contract address. + """ + 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_erc20_dot_v1beta1_dot_query__pb2.QueryParamsRequest.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryParamsResponse.SerializeToString, + ), + 'AllTokenPairs': grpc.unary_unary_rpc_method_handler( + servicer.AllTokenPairs, + request_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsRequest.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsResponse.SerializeToString, + ), + 'TokenPairByDenom': grpc.unary_unary_rpc_method_handler( + servicer.TokenPairByDenom, + request_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomRequest.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomResponse.SerializeToString, + ), + 'TokenPairByERC20Address': grpc.unary_unary_rpc_method_handler( + servicer.TokenPairByERC20Address, + request_deserializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressRequest.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.erc20.v1beta1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.erc20.v1beta1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Query defines the gRPC querier service. + """ + + @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.erc20.v1beta1.Query/Params', + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryParamsRequest.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def AllTokenPairs(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.erc20.v1beta1.Query/AllTokenPairs', + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsRequest.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryAllTokenPairsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TokenPairByDenom(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.erc20.v1beta1.Query/TokenPairByDenom', + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomRequest.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByDenomResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TokenPairByERC20Address(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.erc20.v1beta1.Query/TokenPairByERC20Address', + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressRequest.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_query__pb2.QueryTokenPairByERC20AddressResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/erc20/v1beta1/tx_pb2.py b/pyinjective/proto/injective/erc20/v1beta1/tx_pb2.py new file mode 100644 index 00000000..46e11712 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/tx_pb2.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/erc20/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.base.v1beta1 import coin_pb2 as cosmos_dot_base_dot_v1beta1_dot_coin__pb2 +from pyinjective.proto.cosmos.bank.v1beta1 import bank_pb2 as cosmos_dot_bank_dot_v1beta1_dot_bank__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.erc20.v1beta1 import params_pb2 as injective_dot_erc20_dot_v1beta1_dot_params__pb2 +from pyinjective.proto.injective.erc20.v1beta1 import erc20_pb2 as injective_dot_erc20_dot_v1beta1_dot_erc20__pb2 +from pyinjective.proto.amino import amino_pb2 as amino_dot_amino__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n injective/erc20/v1beta1/tx.proto\x12\x17injective.erc20.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/erc20/v1beta1/params.proto\x1a#injective/erc20/v1beta1/erc20.proto\x1a\x11\x61mino/amino.proto\"\xb2\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\x1f.injective.erc20.v1beta1.ParamsB\x04\xc8\xde\x1f\x00R\x06params:(\x82\xe7\xb0*\tauthority\x8a\xe7\xb0*\x15\x65rc20/MsgUpdateParams\"\x19\n\x17MsgUpdateParamsResponse\"\xb2\x01\n\x12MsgCreateTokenPair\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12G\n\ntoken_pair\x18\x02 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairB\x04\xc8\xde\x1f\x00R\ttokenPair:(\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x18\x65rc20/MsgCreateTokenPair\"e\n\x1aMsgCreateTokenPairResponse\x12G\n\ntoken_pair\x18\x01 \x01(\x0b\x32\".injective.erc20.v1beta1.TokenPairB\x04\xc8\xde\x1f\x00R\ttokenPair\"\x88\x01\n\x12MsgDeleteTokenPair\x12)\n\x06sender\x18\x01 \x01(\tB\x11\xf2\xde\x1f\ryaml:\"sender\"R\x06sender\x12\x1d\n\nbank_denom\x18\x02 \x01(\tR\tbankDenom:(\x82\xe7\xb0*\x06sender\x8a\xe7\xb0*\x18\x65rc20/MsgDeleteTokenPair\"\x1c\n\x1aMsgDeleteTokenPairResponse2\xe2\x02\n\x03Msg\x12j\n\x0cUpdateParams\x12(.injective.erc20.v1beta1.MsgUpdateParams\x1a\x30.injective.erc20.v1beta1.MsgUpdateParamsResponse\x12s\n\x0f\x43reateTokenPair\x12+.injective.erc20.v1beta1.MsgCreateTokenPair\x1a\x33.injective.erc20.v1beta1.MsgCreateTokenPairResponse\x12s\n\x0f\x44\x65leteTokenPair\x12+.injective.erc20.v1beta1.MsgDeleteTokenPair\x1a\x33.injective.erc20.v1beta1.MsgDeleteTokenPairResponse\x1a\x05\x80\xe7\xb0*\x01\x42\xf1\x01\n\x1b\x63om.injective.erc20.v1beta1B\x07TxProtoP\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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.erc20.v1beta1.tx_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\033com.injective.erc20.v1beta1B\007TxProtoP\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['_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*\025erc20/MsgUpdateParams' + _globals['_MSGCREATETOKENPAIR'].fields_by_name['sender']._loaded_options = None + _globals['_MSGCREATETOKENPAIR'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' + _globals['_MSGCREATETOKENPAIR'].fields_by_name['token_pair']._loaded_options = None + _globals['_MSGCREATETOKENPAIR'].fields_by_name['token_pair']._serialized_options = b'\310\336\037\000' + _globals['_MSGCREATETOKENPAIR']._loaded_options = None + _globals['_MSGCREATETOKENPAIR']._serialized_options = b'\202\347\260*\006sender\212\347\260*\030erc20/MsgCreateTokenPair' + _globals['_MSGCREATETOKENPAIRRESPONSE'].fields_by_name['token_pair']._loaded_options = None + _globals['_MSGCREATETOKENPAIRRESPONSE'].fields_by_name['token_pair']._serialized_options = b'\310\336\037\000' + _globals['_MSGDELETETOKENPAIR'].fields_by_name['sender']._loaded_options = None + _globals['_MSGDELETETOKENPAIR'].fields_by_name['sender']._serialized_options = b'\362\336\037\ryaml:\"sender\"' + _globals['_MSGDELETETOKENPAIR']._loaded_options = None + _globals['_MSGDELETETOKENPAIR']._serialized_options = b'\202\347\260*\006sender\212\347\260*\030erc20/MsgDeleteTokenPair' + _globals['_MSG']._loaded_options = None + _globals['_MSG']._serialized_options = b'\200\347\260*\001' + _globals['_MSGUPDATEPARAMS']._serialized_start=294 + _globals['_MSGUPDATEPARAMS']._serialized_end=472 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_start=474 + _globals['_MSGUPDATEPARAMSRESPONSE']._serialized_end=499 + _globals['_MSGCREATETOKENPAIR']._serialized_start=502 + _globals['_MSGCREATETOKENPAIR']._serialized_end=680 + _globals['_MSGCREATETOKENPAIRRESPONSE']._serialized_start=682 + _globals['_MSGCREATETOKENPAIRRESPONSE']._serialized_end=783 + _globals['_MSGDELETETOKENPAIR']._serialized_start=786 + _globals['_MSGDELETETOKENPAIR']._serialized_end=922 + _globals['_MSGDELETETOKENPAIRRESPONSE']._serialized_start=924 + _globals['_MSGDELETETOKENPAIRRESPONSE']._serialized_end=952 + _globals['_MSG']._serialized_start=955 + _globals['_MSG']._serialized_end=1309 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/erc20/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/erc20/v1beta1/tx_pb2_grpc.py new file mode 100644 index 00000000..88e5c614 --- /dev/null +++ b/pyinjective/proto/injective/erc20/v1beta1/tx_pb2_grpc.py @@ -0,0 +1,166 @@ +# 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.erc20.v1beta1 import tx_pb2 as injective_dot_erc20_dot_v1beta1_dot_tx__pb2 + + +class MsgStub(object): + """Msg defines the erc20 module's gRPC message service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UpdateParams = channel.unary_unary( + '/injective.erc20.v1beta1.Msg/UpdateParams', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + _registered_method=True) + self.CreateTokenPair = channel.unary_unary( + '/injective.erc20.v1beta1.Msg/CreateTokenPair', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPair.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPairResponse.FromString, + _registered_method=True) + self.DeleteTokenPair = channel.unary_unary( + '/injective.erc20.v1beta1.Msg/DeleteTokenPair', + request_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPair.SerializeToString, + response_deserializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPairResponse.FromString, + _registered_method=True) + + +class MsgServicer(object): + """Msg defines the erc20 module's gRPC message 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 CreateTokenPair(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 DeleteTokenPair(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_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.SerializeToString, + ), + 'CreateTokenPair': grpc.unary_unary_rpc_method_handler( + servicer.CreateTokenPair, + request_deserializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPair.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPairResponse.SerializeToString, + ), + 'DeleteTokenPair': grpc.unary_unary_rpc_method_handler( + servicer.DeleteTokenPair, + request_deserializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPair.FromString, + response_serializer=injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPairResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.erc20.v1beta1.Msg', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.erc20.v1beta1.Msg', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Msg(object): + """Msg defines the erc20 module's gRPC message 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.erc20.v1beta1.Msg/UpdateParams', + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParams.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgUpdateParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CreateTokenPair(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.erc20.v1beta1.Msg/CreateTokenPair', + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPair.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgCreateTokenPairResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DeleteTokenPair(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/injective.erc20.v1beta1.Msg/DeleteTokenPair', + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPair.SerializeToString, + injective_dot_erc20_dot_v1beta1_dot_tx__pb2.MsgDeleteTokenPairResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/evm/v1/access_tuple_pb2.py b/pyinjective/proto/injective/evm/v1/access_tuple_pb2.py new file mode 100644 index 00000000..698fb614 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/access_tuple_pb2.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/access_tuple.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/evm/v1/access_tuple.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\"a\n\x0b\x41\x63\x63\x65ssTuple\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x32\n\x0cstorage_keys\x18\x02 \x03(\tB\x0f\xea\xde\x1f\x0bstorageKeysR\x0bstorageKeys:\x04\x88\xa0\x1f\x00\x42\xd5\x01\n\x14\x63om.injective.evm.v1B\x10\x41\x63\x63\x65ssTupleProtoP\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.access_tuple_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\020AccessTupleProtoP\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['_ACCESSTUPLE'].fields_by_name['storage_keys']._loaded_options = None + _globals['_ACCESSTUPLE'].fields_by_name['storage_keys']._serialized_options = b'\352\336\037\013storageKeys' + _globals['_ACCESSTUPLE']._loaded_options = None + _globals['_ACCESSTUPLE']._serialized_options = b'\210\240\037\000' + _globals['_ACCESSTUPLE']._serialized_start=79 + _globals['_ACCESSTUPLE']._serialized_end=176 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/access_tuple_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/access_tuple_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/access_tuple_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/chain_config_pb2.py b/pyinjective/proto/injective/evm/v1/chain_config_pb2.py new file mode 100644 index 00000000..80e2dff1 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/chain_config_pb2.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/chain_config.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/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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.evm.v1.chain_config_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\020ChainConfigProtoP\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['_CHAINCONFIG'].fields_by_name['homestead_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['homestead_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\026yaml:\"homestead_block\"' + _globals['_CHAINCONFIG'].fields_by_name['dao_fork_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['dao_fork_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\014DAOForkBlock\362\336\037\025yaml:\"dao_fork_block\"' + _globals['_CHAINCONFIG'].fields_by_name['dao_fork_support']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['dao_fork_support']._serialized_options = b'\342\336\037\016DAOForkSupport\362\336\037\027yaml:\"dao_fork_support\"' + _globals['_CHAINCONFIG'].fields_by_name['eip150_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['eip150_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\013EIP150Block\362\336\037\023yaml:\"eip150_block\"' + _globals['_CHAINCONFIG'].fields_by_name['eip150_hash']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['eip150_hash']._serialized_options = b'\342\336\037\nEIP150Hash\362\336\037\026yaml:\"byzantium_block\"' + _globals['_CHAINCONFIG'].fields_by_name['eip155_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['eip155_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\013EIP155Block\362\336\037\023yaml:\"eip155_block\"' + _globals['_CHAINCONFIG'].fields_by_name['eip158_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['eip158_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\342\336\037\013EIP158Block\362\336\037\023yaml:\"eip158_block\"' + _globals['_CHAINCONFIG'].fields_by_name['byzantium_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['byzantium_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\026yaml:\"byzantium_block\"' + _globals['_CHAINCONFIG'].fields_by_name['constantinople_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['constantinople_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\033yaml:\"constantinople_block\"' + _globals['_CHAINCONFIG'].fields_by_name['petersburg_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['petersburg_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\027yaml:\"petersburg_block\"' + _globals['_CHAINCONFIG'].fields_by_name['istanbul_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['istanbul_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\025yaml:\"istanbul_block\"' + _globals['_CHAINCONFIG'].fields_by_name['muir_glacier_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['muir_glacier_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\031yaml:\"muir_glacier_block\"' + _globals['_CHAINCONFIG'].fields_by_name['berlin_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['berlin_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\023yaml:\"berlin_block\"' + _globals['_CHAINCONFIG'].fields_by_name['london_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['london_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\023yaml:\"london_block\"' + _globals['_CHAINCONFIG'].fields_by_name['arrow_glacier_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['arrow_glacier_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\032yaml:\"arrow_glacier_block\"' + _globals['_CHAINCONFIG'].fields_by_name['gray_glacier_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['gray_glacier_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\031yaml:\"gray_glacier_block\"' + _globals['_CHAINCONFIG'].fields_by_name['merge_netsplit_block']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['merge_netsplit_block']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\033yaml:\"merge_netsplit_block\"' + _globals['_CHAINCONFIG'].fields_by_name['shanghai_time']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['shanghai_time']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\024yaml:\"shanghai_time\"' + _globals['_CHAINCONFIG'].fields_by_name['cancun_time']._loaded_options = None + _globals['_CHAINCONFIG'].fields_by_name['cancun_time']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int\362\336\037\022yaml:\"cancun_time\"' + _globals['_CHAINCONFIG'].fields_by_name['prague_time']._loaded_options = None + _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=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/pyinjective/proto/injective/evm/v1/chain_config_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/chain_config_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/chain_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/events_pb2.py b/pyinjective/proto/injective/evm/v1/events_pb2.py new file mode 100644 index 00000000..196b5b98 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/events_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/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\x1dinjective/evm/v1/events.proto\x12\x10injective.evm.v1\"\xcb\x01\n\x0f\x45ventEthereumTx\x12\x16\n\x06\x61mount\x18\x01 \x01(\tR\x06\x61mount\x12\x19\n\x08\x65th_hash\x18\x02 \x01(\tR\x07\x65thHash\x12\x14\n\x05index\x18\x03 \x01(\tR\x05index\x12\x19\n\x08gas_used\x18\x04 \x01(\tR\x07gasUsed\x12\x12\n\x04hash\x18\x05 \x01(\tR\x04hash\x12\x1c\n\trecipient\x18\x06 \x01(\tR\trecipient\x12\"\n\reth_tx_failed\x18\x07 \x01(\tR\x0b\x65thTxFailed\"%\n\nEventTxLog\x12\x17\n\x07tx_logs\x18\x01 \x03(\tR\x06txLogs\"W\n\x0c\x45ventMessage\x12\x16\n\x06module\x18\x01 \x01(\tR\x06module\x12\x16\n\x06sender\x18\x02 \x01(\tR\x06sender\x12\x17\n\x07tx_type\x18\x03 \x01(\tR\x06txType\"\'\n\x0f\x45ventBlockBloom\x12\x14\n\x05\x62loom\x18\x01 \x01(\tR\x05\x62loomB\xd0\x01\n\x14\x63om.injective.evm.v1B\x0b\x45ventsProtoP\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.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\013EventsProtoP\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['_EVENTETHEREUMTX']._serialized_start=52 + _globals['_EVENTETHEREUMTX']._serialized_end=255 + _globals['_EVENTTXLOG']._serialized_start=257 + _globals['_EVENTTXLOG']._serialized_end=294 + _globals['_EVENTMESSAGE']._serialized_start=296 + _globals['_EVENTMESSAGE']._serialized_end=383 + _globals['_EVENTBLOCKBLOOM']._serialized_start=385 + _globals['_EVENTBLOCKBLOOM']._serialized_end=424 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/events_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/events_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/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/injective/evm/v1/genesis_pb2.py b/pyinjective/proto/injective/evm/v1/genesis_pb2.py new file mode 100644 index 00000000..663913e9 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/genesis_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/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.evm.v1 import params_pb2 as injective_dot_evm_dot_v1_dot_params__pb2 +from pyinjective.proto.injective.evm.v1 import state_pb2 as injective_dot_evm_dot_v1_dot_state__pb2 +from pyinjective.proto.gogoproto import gogo_pb2 as gogoproto_dot_gogo__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1einjective/evm/v1/genesis.proto\x12\x10injective.evm.v1\x1a\x1dinjective/evm/v1/params.proto\x1a\x1cinjective/evm/v1/state.proto\x1a\x14gogoproto/gogo.proto\"\x8a\x01\n\x0cGenesisState\x12\x42\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32 .injective.evm.v1.GenesisAccountB\x04\xc8\xde\x1f\x00R\x08\x61\x63\x63ounts\x12\x36\n\x06params\x18\x02 \x01(\x0b\x32\x18.injective.evm.v1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\x82\x01\n\x0eGenesisAccount\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04\x63ode\x18\x02 \x01(\tR\x04\x63ode\x12\x42\n\x07storage\x18\x03 \x03(\x0b\x32\x17.injective.evm.v1.StateB\x0f\xc8\xde\x1f\x00\xaa\xdf\x1f\x07StorageR\x07storageB\xd1\x01\n\x14\x63om.injective.evm.v1B\x0cGenesisProtoP\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.genesis_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\014GenesisProtoP\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['_GENESISSTATE'].fields_by_name['accounts']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['accounts']._serialized_options = b'\310\336\037\000' + _globals['_GENESISSTATE'].fields_by_name['params']._loaded_options = None + _globals['_GENESISSTATE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_GENESISACCOUNT'].fields_by_name['storage']._loaded_options = None + _globals['_GENESISACCOUNT'].fields_by_name['storage']._serialized_options = b'\310\336\037\000\252\337\037\007Storage' + _globals['_GENESISSTATE']._serialized_start=136 + _globals['_GENESISSTATE']._serialized_end=274 + _globals['_GENESISACCOUNT']._serialized_start=277 + _globals['_GENESISACCOUNT']._serialized_end=407 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/genesis_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/genesis_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/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/evm/v1/log_pb2.py b/pyinjective/proto/injective/evm/v1/log_pb2.py new file mode 100644 index 00000000..4ac569e7 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/log_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/log.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\x1ainjective/evm/v1/log.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\"\xca\x02\n\x03Log\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06topics\x18\x02 \x03(\tR\x06topics\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\x0cR\x04\x64\x61ta\x12\x32\n\x0c\x62lock_number\x18\x04 \x01(\x04\x42\x0f\xea\xde\x1f\x0b\x62lockNumberR\x0b\x62lockNumber\x12,\n\x07tx_hash\x18\x05 \x01(\tB\x13\xea\xde\x1f\x0ftransactionHashR\x06txHash\x12/\n\x08tx_index\x18\x06 \x01(\x04\x42\x14\xea\xde\x1f\x10transactionIndexR\x07txIndex\x12,\n\nblock_hash\x18\x07 \x01(\tB\r\xea\xde\x1f\tblockHashR\tblockHash\x12\"\n\x05index\x18\x08 \x01(\x04\x42\x0c\xea\xde\x1f\x08logIndexR\x05index\x12\x18\n\x07removed\x18\t \x01(\x08R\x07removedB\xcd\x01\n\x14\x63om.injective.evm.v1B\x08LogProtoP\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.log_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\010LogProtoP\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['_LOG'].fields_by_name['block_number']._loaded_options = None + _globals['_LOG'].fields_by_name['block_number']._serialized_options = b'\352\336\037\013blockNumber' + _globals['_LOG'].fields_by_name['tx_hash']._loaded_options = None + _globals['_LOG'].fields_by_name['tx_hash']._serialized_options = b'\352\336\037\017transactionHash' + _globals['_LOG'].fields_by_name['tx_index']._loaded_options = None + _globals['_LOG'].fields_by_name['tx_index']._serialized_options = b'\352\336\037\020transactionIndex' + _globals['_LOG'].fields_by_name['block_hash']._loaded_options = None + _globals['_LOG'].fields_by_name['block_hash']._serialized_options = b'\352\336\037\tblockHash' + _globals['_LOG'].fields_by_name['index']._loaded_options = None + _globals['_LOG'].fields_by_name['index']._serialized_options = b'\352\336\037\010logIndex' + _globals['_LOG']._serialized_start=71 + _globals['_LOG']._serialized_end=401 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/log_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/log_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/log_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/params_pb2.py b/pyinjective/proto/injective/evm/v1/params_pb2.py new file mode 100644 index 00000000..68927d4f --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/params_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/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 pyinjective.proto.injective.evm.v1 import chain_config_pb2 as injective_dot_evm_dot_v1_dot_chain__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dinjective/evm/v1/params.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\x1a#injective/evm/v1/chain_config.proto\"\xc9\x03\n\x06Params\x12\x31\n\tevm_denom\x18\x01 \x01(\tB\x14\xf2\xde\x1f\x10yaml:\"evm_denom\"R\x08\x65vmDenom\x12=\n\renable_create\x18\x02 \x01(\x08\x42\x18\xf2\xde\x1f\x14yaml:\"enable_create\"R\x0c\x65nableCreate\x12\x37\n\x0b\x65nable_call\x18\x03 \x01(\x08\x42\x16\xf2\xde\x1f\x12yaml:\"enable_call\"R\nenableCall\x12\x41\n\nextra_eips\x18\x04 \x03(\x03\x42\"\xe2\xde\x1f\tExtraEIPs\xf2\xde\x1f\x11yaml:\"extra_eips\"R\textraEips\x12\x46\n\x0c\x63hain_config\x18\x05 \x01(\x0b\x32\x1d.injective.evm.v1.ChainConfigB\x04\xc8\xde\x1f\x00R\x0b\x63hainConfig\x12\x32\n\x15\x61llow_unprotected_txs\x18\x06 \x01(\x08R\x13\x61llowUnprotectedTxs\x12\x31\n\x14\x61uthorized_deployers\x18\x07 \x03(\tR\x13\x61uthorizedDeployers\x12\"\n\x0cpermissioned\x18\x08 \x01(\x08R\x0cpermissionedB\xd0\x01\n\x14\x63om.injective.evm.v1B\x0bParamsProtoP\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.params_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\013ParamsProtoP\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['_PARAMS'].fields_by_name['evm_denom']._loaded_options = None + _globals['_PARAMS'].fields_by_name['evm_denom']._serialized_options = b'\362\336\037\020yaml:\"evm_denom\"' + _globals['_PARAMS'].fields_by_name['enable_create']._loaded_options = None + _globals['_PARAMS'].fields_by_name['enable_create']._serialized_options = b'\362\336\037\024yaml:\"enable_create\"' + _globals['_PARAMS'].fields_by_name['enable_call']._loaded_options = None + _globals['_PARAMS'].fields_by_name['enable_call']._serialized_options = b'\362\336\037\022yaml:\"enable_call\"' + _globals['_PARAMS'].fields_by_name['extra_eips']._loaded_options = None + _globals['_PARAMS'].fields_by_name['extra_eips']._serialized_options = b'\342\336\037\tExtraEIPs\362\336\037\021yaml:\"extra_eips\"' + _globals['_PARAMS'].fields_by_name['chain_config']._loaded_options = None + _globals['_PARAMS'].fields_by_name['chain_config']._serialized_options = b'\310\336\037\000' + _globals['_PARAMS']._serialized_start=111 + _globals['_PARAMS']._serialized_end=568 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/params_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/params_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/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/injective/evm/v1/query_pb2.py b/pyinjective/proto/injective/evm/v1/query_pb2.py new file mode 100644 index 00000000..bb1c139b --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/query_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/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.query.v1beta1 import pagination_pb2 as cosmos_dot_base_dot_query_dot_v1beta1_dot_pagination__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 timestamp_pb2 as google_dot_protobuf_dot_timestamp__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 +from pyinjective.proto.injective.evm.v1 import trace_config_pb2 as injective_dot_evm_dot_v1_dot_trace__config__pb2 +from pyinjective.proto.injective.evm.v1 import tx_pb2 as injective_dot_evm_dot_v1_dot_tx__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cinjective/evm/v1/query.proto\x12\x10injective.evm.v1\x1a*cosmos/base/query/v1beta1/pagination.proto\x1a\x14gogoproto/gogo.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1ainjective/evm/v1/log.proto\x1a\x1dinjective/evm/v1/params.proto\x1a#injective/evm/v1/trace_config.proto\x1a\x19injective/evm/v1/tx.proto\"9\n\x13QueryAccountRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"c\n\x14QueryAccountResponse\x12\x18\n\x07\x62\x61lance\x18\x01 \x01(\tR\x07\x62\x61lance\x12\x1b\n\tcode_hash\x18\x02 \x01(\tR\x08\x63odeHash\x12\x14\n\x05nonce\x18\x03 \x01(\x04R\x05nonce\"?\n\x19QueryCosmosAccountRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x86\x01\n\x1aQueryCosmosAccountResponse\x12%\n\x0e\x63osmos_address\x18\x01 \x01(\tR\rcosmosAddress\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12%\n\x0e\x61\x63\x63ount_number\x18\x03 \x01(\x04R\raccountNumber\"K\n\x1cQueryValidatorAccountRequest\x12!\n\x0c\x63ons_address\x18\x01 \x01(\tR\x0b\x63onsAddress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x8b\x01\n\x1dQueryValidatorAccountResponse\x12\'\n\x0f\x61\x63\x63ount_address\x18\x01 \x01(\tR\x0e\x61\x63\x63ountAddress\x12\x1a\n\x08sequence\x18\x02 \x01(\x04R\x08sequence\x12%\n\x0e\x61\x63\x63ount_number\x18\x03 \x01(\x04R\raccountNumber\"9\n\x13QueryBalanceRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"0\n\x14QueryBalanceResponse\x12\x18\n\x07\x62\x61lance\x18\x01 \x01(\tR\x07\x62\x61lance\"K\n\x13QueryStorageRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x10\n\x03key\x18\x02 \x01(\tR\x03key:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\",\n\x14QueryStorageResponse\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\"6\n\x10QueryCodeRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\'\n\x11QueryCodeResponse\x12\x12\n\x04\x63ode\x18\x01 \x01(\x0cR\x04\x63ode\"z\n\x12QueryTxLogsRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x46\n\npagination\x18\x02 \x01(\x0b\x32&.cosmos.base.query.v1beta1.PageRequestR\npagination:\x08\x88\xa0\x1f\x00\xe8\xa0\x1f\x00\"\x89\x01\n\x13QueryTxLogsResponse\x12)\n\x04logs\x18\x01 \x03(\x0b\x32\x15.injective.evm.v1.LogR\x04logs\x12G\n\npagination\x18\x02 \x01(\x0b\x32\'.cosmos.base.query.v1beta1.PageResponseR\npagination\"\x14\n\x12QueryParamsRequest\"M\n\x13QueryParamsResponse\x12\x36\n\x06params\x18\x01 \x01(\x0b\x32\x18.injective.evm.v1.ParamsB\x04\xc8\xde\x1f\x00R\x06params\"\xd5\x01\n\x0e\x45thCallRequest\x12\x12\n\x04\x61rgs\x18\x01 \x01(\x0cR\x04\x61rgs\x12\x17\n\x07gas_cap\x18\x02 \x01(\x04R\x06gasCap\x12]\n\x10proposer_address\x18\x03 \x01(\x0c\x42\x32\xfa\xde\x1f.github.com/cosmos/cosmos-sdk/types.ConsAddressR\x0fproposerAddress\x12\x19\n\x08\x63hain_id\x18\x04 \x01(\x03R\x07\x63hainId\x12\x1c\n\toverrides\x18\x05 \x01(\x0cR\toverrides\"T\n\x13\x45stimateGasResponse\x12\x10\n\x03gas\x18\x01 \x01(\x04R\x03gas\x12\x10\n\x03ret\x18\x02 \x01(\x0cR\x03ret\x12\x19\n\x08vm_error\x18\x03 \x01(\tR\x07vmError\"\xe0\x03\n\x13QueryTraceTxRequest\x12\x31\n\x03msg\x18\x01 \x01(\x0b\x32\x1f.injective.evm.v1.MsgEthereumTxR\x03msg\x12@\n\x0ctrace_config\x18\x03 \x01(\x0b\x32\x1d.injective.evm.v1.TraceConfigR\x0btraceConfig\x12\x43\n\x0cpredecessors\x18\x04 \x03(\x0b\x32\x1f.injective.evm.v1.MsgEthereumTxR\x0cpredecessors\x12!\n\x0c\x62lock_number\x18\x05 \x01(\x03R\x0b\x62lockNumber\x12\x1d\n\nblock_hash\x18\x06 \x01(\tR\tblockHash\x12\x43\n\nblock_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\tblockTime\x12]\n\x10proposer_address\x18\x08 \x01(\x0c\x42\x32\xfa\xde\x1f.github.com/cosmos/cosmos-sdk/types.ConsAddressR\x0fproposerAddress\x12\x19\n\x08\x63hain_id\x18\t \x01(\x03R\x07\x63hainIdJ\x04\x08\x02\x10\x03R\x08tx_index\"*\n\x14QueryTraceTxResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"\x87\x03\n\x15QueryTraceCallRequest\x12\x12\n\x04\x61rgs\x18\x01 \x01(\x0cR\x04\x61rgs\x12\x17\n\x07gas_cap\x18\x02 \x01(\x04R\x06gasCap\x12]\n\x10proposer_address\x18\x03 \x01(\x0c\x42\x32\xfa\xde\x1f.github.com/cosmos/cosmos-sdk/types.ConsAddressR\x0fproposerAddress\x12@\n\x0ctrace_config\x18\x04 \x01(\x0b\x32\x1d.injective.evm.v1.TraceConfigR\x0btraceConfig\x12!\n\x0c\x62lock_number\x18\x05 \x01(\x03R\x0b\x62lockNumber\x12\x1d\n\nblock_hash\x18\x06 \x01(\tR\tblockHash\x12\x43\n\nblock_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\tblockTime\x12\x19\n\x08\x63hain_id\x18\x08 \x01(\x03R\x07\x63hainId\",\n\x16QueryTraceCallResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"\x8e\x03\n\x16QueryTraceBlockRequest\x12\x31\n\x03txs\x18\x01 \x03(\x0b\x32\x1f.injective.evm.v1.MsgEthereumTxR\x03txs\x12@\n\x0ctrace_config\x18\x03 \x01(\x0b\x32\x1d.injective.evm.v1.TraceConfigR\x0btraceConfig\x12!\n\x0c\x62lock_number\x18\x05 \x01(\x03R\x0b\x62lockNumber\x12\x1d\n\nblock_hash\x18\x06 \x01(\tR\tblockHash\x12\x43\n\nblock_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\xc8\xde\x1f\x00\x90\xdf\x1f\x01R\tblockTime\x12]\n\x10proposer_address\x18\x08 \x01(\x0c\x42\x32\xfa\xde\x1f.github.com/cosmos/cosmos-sdk/types.ConsAddressR\x0fproposerAddress\x12\x19\n\x08\x63hain_id\x18\t \x01(\x03R\x07\x63hainId\"-\n\x17QueryTraceBlockResponse\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0cR\x04\x64\x61ta\"\x15\n\x13QueryBaseFeeRequest\"L\n\x14QueryBaseFeeResponse\x12\x34\n\x08\x62\x61se_fee\x18\x01 \x01(\tB\x19\xda\xde\x1f\x15\x63osmossdk.io/math.IntR\x07\x62\x61seFee2\xf6\r\n\x05Query\x12\x85\x01\n\x07\x41\x63\x63ount\x12%.injective.evm.v1.QueryAccountRequest\x1a&.injective.evm.v1.QueryAccountResponse\"+\x82\xd3\xe4\x93\x02%\x12#/injective/evm/v1/account/{address}\x12\x9e\x01\n\rCosmosAccount\x12+.injective.evm.v1.QueryCosmosAccountRequest\x1a,.injective.evm.v1.QueryCosmosAccountResponse\"2\x82\xd3\xe4\x93\x02,\x12*/injective/evm/v1/cosmos_account/{address}\x12\xaf\x01\n\x10ValidatorAccount\x12..injective.evm.v1.QueryValidatorAccountRequest\x1a/.injective.evm.v1.QueryValidatorAccountResponse\":\x82\xd3\xe4\x93\x02\x34\x12\x32/injective/evm/v1/validator_account/{cons_address}\x12\x86\x01\n\x07\x42\x61lance\x12%.injective.evm.v1.QueryBalanceRequest\x1a&.injective.evm.v1.QueryBalanceResponse\",\x82\xd3\xe4\x93\x02&\x12$/injective/evm/v1/balances/{address}\x12\x8b\x01\n\x07Storage\x12%.injective.evm.v1.QueryStorageRequest\x1a&.injective.evm.v1.QueryStorageResponse\"1\x82\xd3\xe4\x93\x02+\x12)/injective/evm/v1/storage/{address}/{key}\x12z\n\x04\x43ode\x12\".injective.evm.v1.QueryCodeRequest\x1a#.injective.evm.v1.QueryCodeResponse\")\x82\xd3\xe4\x93\x02#\x12!/injective/evm/v1/codes/{address}\x12w\n\x06Params\x12$.injective.evm.v1.QueryParamsRequest\x1a%.injective.evm.v1.QueryParamsResponse\" \x82\xd3\xe4\x93\x02\x1a\x12\x18/injective/evm/v1/params\x12x\n\x07\x45thCall\x12 .injective.evm.v1.EthCallRequest\x1a\'.injective.evm.v1.MsgEthereumTxResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/injective/evm/v1/eth_call\x12~\n\x0b\x45stimateGas\x12 .injective.evm.v1.EthCallRequest\x1a%.injective.evm.v1.EstimateGasResponse\"&\x82\xd3\xe4\x93\x02 \x12\x1e/injective/evm/v1/estimate_gas\x12|\n\x07TraceTx\x12%.injective.evm.v1.QueryTraceTxRequest\x1a&.injective.evm.v1.QueryTraceTxResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/injective/evm/v1/trace_tx\x12\x88\x01\n\nTraceBlock\x12(.injective.evm.v1.QueryTraceBlockRequest\x1a).injective.evm.v1.QueryTraceBlockResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/injective/evm/v1/trace_block\x12\x84\x01\n\tTraceCall\x12\'.injective.evm.v1.QueryTraceCallRequest\x1a(.injective.evm.v1.QueryTraceCallResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/injective/evm/v1/trace_call\x12|\n\x07\x42\x61seFee\x12%.injective.evm.v1.QueryBaseFeeRequest\x1a&.injective.evm.v1.QueryBaseFeeResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/injective/evm/v1/base_feeB\xcf\x01\n\x14\x63om.injective.evm.v1B\nQueryProtoP\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.query_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\nQueryProtoP\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['_QUERYACCOUNTREQUEST']._loaded_options = None + _globals['_QUERYACCOUNTREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYCOSMOSACCOUNTREQUEST']._loaded_options = None + _globals['_QUERYCOSMOSACCOUNTREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYVALIDATORACCOUNTREQUEST']._loaded_options = None + _globals['_QUERYVALIDATORACCOUNTREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYBALANCEREQUEST']._loaded_options = None + _globals['_QUERYBALANCEREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYSTORAGEREQUEST']._loaded_options = None + _globals['_QUERYSTORAGEREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYCODEREQUEST']._loaded_options = None + _globals['_QUERYCODEREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYTXLOGSREQUEST']._loaded_options = None + _globals['_QUERYTXLOGSREQUEST']._serialized_options = b'\210\240\037\000\350\240\037\000' + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._loaded_options = None + _globals['_QUERYPARAMSRESPONSE'].fields_by_name['params']._serialized_options = b'\310\336\037\000' + _globals['_ETHCALLREQUEST'].fields_by_name['proposer_address']._loaded_options = None + _globals['_ETHCALLREQUEST'].fields_by_name['proposer_address']._serialized_options = b'\372\336\037.github.com/cosmos/cosmos-sdk/types.ConsAddress' + _globals['_QUERYTRACETXREQUEST'].fields_by_name['block_time']._loaded_options = None + _globals['_QUERYTRACETXREQUEST'].fields_by_name['block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_QUERYTRACETXREQUEST'].fields_by_name['proposer_address']._loaded_options = None + _globals['_QUERYTRACETXREQUEST'].fields_by_name['proposer_address']._serialized_options = b'\372\336\037.github.com/cosmos/cosmos-sdk/types.ConsAddress' + _globals['_QUERYTRACECALLREQUEST'].fields_by_name['proposer_address']._loaded_options = None + _globals['_QUERYTRACECALLREQUEST'].fields_by_name['proposer_address']._serialized_options = b'\372\336\037.github.com/cosmos/cosmos-sdk/types.ConsAddress' + _globals['_QUERYTRACECALLREQUEST'].fields_by_name['block_time']._loaded_options = None + _globals['_QUERYTRACECALLREQUEST'].fields_by_name['block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_QUERYTRACEBLOCKREQUEST'].fields_by_name['block_time']._loaded_options = None + _globals['_QUERYTRACEBLOCKREQUEST'].fields_by_name['block_time']._serialized_options = b'\310\336\037\000\220\337\037\001' + _globals['_QUERYTRACEBLOCKREQUEST'].fields_by_name['proposer_address']._loaded_options = None + _globals['_QUERYTRACEBLOCKREQUEST'].fields_by_name['proposer_address']._serialized_options = b'\372\336\037.github.com/cosmos/cosmos-sdk/types.ConsAddress' + _globals['_QUERYBASEFEERESPONSE'].fields_by_name['base_fee']._loaded_options = None + _globals['_QUERYBASEFEERESPONSE'].fields_by_name['base_fee']._serialized_options = b'\332\336\037\025cosmossdk.io/math.Int' + _globals['_QUERY'].methods_by_name['Account']._loaded_options = None + _globals['_QUERY'].methods_by_name['Account']._serialized_options = b'\202\323\344\223\002%\022#/injective/evm/v1/account/{address}' + _globals['_QUERY'].methods_by_name['CosmosAccount']._loaded_options = None + _globals['_QUERY'].methods_by_name['CosmosAccount']._serialized_options = b'\202\323\344\223\002,\022*/injective/evm/v1/cosmos_account/{address}' + _globals['_QUERY'].methods_by_name['ValidatorAccount']._loaded_options = None + _globals['_QUERY'].methods_by_name['ValidatorAccount']._serialized_options = b'\202\323\344\223\0024\0222/injective/evm/v1/validator_account/{cons_address}' + _globals['_QUERY'].methods_by_name['Balance']._loaded_options = None + _globals['_QUERY'].methods_by_name['Balance']._serialized_options = b'\202\323\344\223\002&\022$/injective/evm/v1/balances/{address}' + _globals['_QUERY'].methods_by_name['Storage']._loaded_options = None + _globals['_QUERY'].methods_by_name['Storage']._serialized_options = b'\202\323\344\223\002+\022)/injective/evm/v1/storage/{address}/{key}' + _globals['_QUERY'].methods_by_name['Code']._loaded_options = None + _globals['_QUERY'].methods_by_name['Code']._serialized_options = b'\202\323\344\223\002#\022!/injective/evm/v1/codes/{address}' + _globals['_QUERY'].methods_by_name['Params']._loaded_options = None + _globals['_QUERY'].methods_by_name['Params']._serialized_options = b'\202\323\344\223\002\032\022\030/injective/evm/v1/params' + _globals['_QUERY'].methods_by_name['EthCall']._loaded_options = None + _globals['_QUERY'].methods_by_name['EthCall']._serialized_options = b'\202\323\344\223\002\034\022\032/injective/evm/v1/eth_call' + _globals['_QUERY'].methods_by_name['EstimateGas']._loaded_options = None + _globals['_QUERY'].methods_by_name['EstimateGas']._serialized_options = b'\202\323\344\223\002 \022\036/injective/evm/v1/estimate_gas' + _globals['_QUERY'].methods_by_name['TraceTx']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraceTx']._serialized_options = b'\202\323\344\223\002\034\022\032/injective/evm/v1/trace_tx' + _globals['_QUERY'].methods_by_name['TraceBlock']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraceBlock']._serialized_options = b'\202\323\344\223\002\037\022\035/injective/evm/v1/trace_block' + _globals['_QUERY'].methods_by_name['TraceCall']._loaded_options = None + _globals['_QUERY'].methods_by_name['TraceCall']._serialized_options = b'\202\323\344\223\002\036\022\034/injective/evm/v1/trace_call' + _globals['_QUERY'].methods_by_name['BaseFee']._loaded_options = None + _globals['_QUERY'].methods_by_name['BaseFee']._serialized_options = b'\202\323\344\223\002\034\022\032/injective/evm/v1/base_fee' + _globals['_QUERYACCOUNTREQUEST']._serialized_start=302 + _globals['_QUERYACCOUNTREQUEST']._serialized_end=359 + _globals['_QUERYACCOUNTRESPONSE']._serialized_start=361 + _globals['_QUERYACCOUNTRESPONSE']._serialized_end=460 + _globals['_QUERYCOSMOSACCOUNTREQUEST']._serialized_start=462 + _globals['_QUERYCOSMOSACCOUNTREQUEST']._serialized_end=525 + _globals['_QUERYCOSMOSACCOUNTRESPONSE']._serialized_start=528 + _globals['_QUERYCOSMOSACCOUNTRESPONSE']._serialized_end=662 + _globals['_QUERYVALIDATORACCOUNTREQUEST']._serialized_start=664 + _globals['_QUERYVALIDATORACCOUNTREQUEST']._serialized_end=739 + _globals['_QUERYVALIDATORACCOUNTRESPONSE']._serialized_start=742 + _globals['_QUERYVALIDATORACCOUNTRESPONSE']._serialized_end=881 + _globals['_QUERYBALANCEREQUEST']._serialized_start=883 + _globals['_QUERYBALANCEREQUEST']._serialized_end=940 + _globals['_QUERYBALANCERESPONSE']._serialized_start=942 + _globals['_QUERYBALANCERESPONSE']._serialized_end=990 + _globals['_QUERYSTORAGEREQUEST']._serialized_start=992 + _globals['_QUERYSTORAGEREQUEST']._serialized_end=1067 + _globals['_QUERYSTORAGERESPONSE']._serialized_start=1069 + _globals['_QUERYSTORAGERESPONSE']._serialized_end=1113 + _globals['_QUERYCODEREQUEST']._serialized_start=1115 + _globals['_QUERYCODEREQUEST']._serialized_end=1169 + _globals['_QUERYCODERESPONSE']._serialized_start=1171 + _globals['_QUERYCODERESPONSE']._serialized_end=1210 + _globals['_QUERYTXLOGSREQUEST']._serialized_start=1212 + _globals['_QUERYTXLOGSREQUEST']._serialized_end=1334 + _globals['_QUERYTXLOGSRESPONSE']._serialized_start=1337 + _globals['_QUERYTXLOGSRESPONSE']._serialized_end=1474 + _globals['_QUERYPARAMSREQUEST']._serialized_start=1476 + _globals['_QUERYPARAMSREQUEST']._serialized_end=1496 + _globals['_QUERYPARAMSRESPONSE']._serialized_start=1498 + _globals['_QUERYPARAMSRESPONSE']._serialized_end=1575 + _globals['_ETHCALLREQUEST']._serialized_start=1578 + _globals['_ETHCALLREQUEST']._serialized_end=1791 + _globals['_ESTIMATEGASRESPONSE']._serialized_start=1793 + _globals['_ESTIMATEGASRESPONSE']._serialized_end=1877 + _globals['_QUERYTRACETXREQUEST']._serialized_start=1880 + _globals['_QUERYTRACETXREQUEST']._serialized_end=2360 + _globals['_QUERYTRACETXRESPONSE']._serialized_start=2362 + _globals['_QUERYTRACETXRESPONSE']._serialized_end=2404 + _globals['_QUERYTRACECALLREQUEST']._serialized_start=2407 + _globals['_QUERYTRACECALLREQUEST']._serialized_end=2798 + _globals['_QUERYTRACECALLRESPONSE']._serialized_start=2800 + _globals['_QUERYTRACECALLRESPONSE']._serialized_end=2844 + _globals['_QUERYTRACEBLOCKREQUEST']._serialized_start=2847 + _globals['_QUERYTRACEBLOCKREQUEST']._serialized_end=3245 + _globals['_QUERYTRACEBLOCKRESPONSE']._serialized_start=3247 + _globals['_QUERYTRACEBLOCKRESPONSE']._serialized_end=3292 + _globals['_QUERYBASEFEEREQUEST']._serialized_start=3294 + _globals['_QUERYBASEFEEREQUEST']._serialized_end=3315 + _globals['_QUERYBASEFEERESPONSE']._serialized_start=3317 + _globals['_QUERYBASEFEERESPONSE']._serialized_end=3393 + _globals['_QUERY']._serialized_start=3396 + _globals['_QUERY']._serialized_end=5178 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/query_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/query_pb2_grpc.py new file mode 100644 index 00000000..1e3b77b2 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/query_pb2_grpc.py @@ -0,0 +1,615 @@ +# 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 query_pb2 as injective_dot_evm_dot_v1_dot_query__pb2 +from pyinjective.proto.injective.evm.v1 import tx_pb2 as injective_dot_evm_dot_v1_dot_tx__pb2 + + +class QueryStub(object): + """Query defines the gRPC querier service. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Account = channel.unary_unary( + '/injective.evm.v1.Query/Account', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountResponse.FromString, + _registered_method=True) + self.CosmosAccount = channel.unary_unary( + '/injective.evm.v1.Query/CosmosAccount', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountResponse.FromString, + _registered_method=True) + self.ValidatorAccount = channel.unary_unary( + '/injective.evm.v1.Query/ValidatorAccount', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountResponse.FromString, + _registered_method=True) + self.Balance = channel.unary_unary( + '/injective.evm.v1.Query/Balance', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceResponse.FromString, + _registered_method=True) + self.Storage = channel.unary_unary( + '/injective.evm.v1.Query/Storage', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageResponse.FromString, + _registered_method=True) + self.Code = channel.unary_unary( + '/injective.evm.v1.Query/Code', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeResponse.FromString, + _registered_method=True) + self.Params = channel.unary_unary( + '/injective.evm.v1.Query/Params', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsResponse.FromString, + _registered_method=True) + self.EthCall = channel.unary_unary( + '/injective.evm.v1.Query/EthCall', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTxResponse.FromString, + _registered_method=True) + self.EstimateGas = channel.unary_unary( + '/injective.evm.v1.Query/EstimateGas', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.EstimateGasResponse.FromString, + _registered_method=True) + self.TraceTx = channel.unary_unary( + '/injective.evm.v1.Query/TraceTx', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxResponse.FromString, + _registered_method=True) + self.TraceBlock = channel.unary_unary( + '/injective.evm.v1.Query/TraceBlock', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockResponse.FromString, + _registered_method=True) + self.TraceCall = channel.unary_unary( + '/injective.evm.v1.Query/TraceCall', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallResponse.FromString, + _registered_method=True) + self.BaseFee = channel.unary_unary( + '/injective.evm.v1.Query/BaseFee', + request_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeRequest.SerializeToString, + response_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeResponse.FromString, + _registered_method=True) + + +class QueryServicer(object): + """Query defines the gRPC querier service. + """ + + def Account(self, request, context): + """Account queries an Ethereum account. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CosmosAccount(self, request, context): + """CosmosAccount queries an Ethereum account's Cosmos Address. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ValidatorAccount(self, request, context): + """ValidatorAccount queries an Ethereum account's from a validator consensus + Address. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Balance(self, request, context): + """Balance queries the balance of a the EVM denomination for a single + EthAccount. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Storage(self, request, context): + """Storage queries the balance of all coins for a single account. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Code(self, request, context): + """Code queries the code of a single account. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Params(self, request, context): + """Params queries the parameters of x/evm module. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EthCall(self, request, context): + """EthCall implements the `eth_call` rpc api + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EstimateGas(self, request, context): + """EstimateGas implements the `eth_estimateGas` rpc api + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraceTx(self, request, context): + """TraceTx implements the `debug_traceTransaction` rpc api + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraceBlock(self, request, context): + """TraceBlock implements the `debug_traceBlockByNumber` and + `debug_traceBlockByHash` rpc api + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def TraceCall(self, request, context): + """TraceCall implements the `debug_traceCall` rpc api + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BaseFee(self, request, context): + """BaseFee queries the base fee of the parent block of the current block, + it's similar to feemarket module's method, but also checks london hardfork + status. + """ + 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 = { + 'Account': grpc.unary_unary_rpc_method_handler( + servicer.Account, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountResponse.SerializeToString, + ), + 'CosmosAccount': grpc.unary_unary_rpc_method_handler( + servicer.CosmosAccount, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountResponse.SerializeToString, + ), + 'ValidatorAccount': grpc.unary_unary_rpc_method_handler( + servicer.ValidatorAccount, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountResponse.SerializeToString, + ), + 'Balance': grpc.unary_unary_rpc_method_handler( + servicer.Balance, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceResponse.SerializeToString, + ), + 'Storage': grpc.unary_unary_rpc_method_handler( + servicer.Storage, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageResponse.SerializeToString, + ), + 'Code': grpc.unary_unary_rpc_method_handler( + servicer.Code, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeResponse.SerializeToString, + ), + 'Params': grpc.unary_unary_rpc_method_handler( + servicer.Params, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsResponse.SerializeToString, + ), + 'EthCall': grpc.unary_unary_rpc_method_handler( + servicer.EthCall, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_tx__pb2.MsgEthereumTxResponse.SerializeToString, + ), + 'EstimateGas': grpc.unary_unary_rpc_method_handler( + servicer.EstimateGas, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.EstimateGasResponse.SerializeToString, + ), + 'TraceTx': grpc.unary_unary_rpc_method_handler( + servicer.TraceTx, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxResponse.SerializeToString, + ), + 'TraceBlock': grpc.unary_unary_rpc_method_handler( + servicer.TraceBlock, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockResponse.SerializeToString, + ), + 'TraceCall': grpc.unary_unary_rpc_method_handler( + servicer.TraceCall, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallResponse.SerializeToString, + ), + 'BaseFee': grpc.unary_unary_rpc_method_handler( + servicer.BaseFee, + request_deserializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeRequest.FromString, + response_serializer=injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'injective.evm.v1.Query', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('injective.evm.v1.Query', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class Query(object): + """Query defines the gRPC querier service. + """ + + @staticmethod + def Account(request, + target, + options=(), + channel_credentials=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.Query/Account', + injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryAccountResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CosmosAccount(request, + target, + options=(), + channel_credentials=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.Query/CosmosAccount', + injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryCosmosAccountResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ValidatorAccount(request, + target, + options=(), + channel_credentials=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.Query/ValidatorAccount', + injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryValidatorAccountResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Balance(request, + target, + options=(), + channel_credentials=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.Query/Balance', + injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryBalanceResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Storage(request, + target, + options=(), + channel_credentials=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.Query/Storage', + injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryStorageResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Code(request, + target, + options=(), + channel_credentials=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.Query/Code', + injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryCodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @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.evm.v1.Query/Params', + injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryParamsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EthCall(request, + target, + options=(), + channel_credentials=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.Query/EthCall', + injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.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 EstimateGas(request, + target, + options=(), + channel_credentials=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.Query/EstimateGas', + injective_dot_evm_dot_v1_dot_query__pb2.EthCallRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.EstimateGasResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraceTx(request, + target, + options=(), + channel_credentials=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.Query/TraceTx', + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceTxResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraceBlock(request, + target, + options=(), + channel_credentials=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.Query/TraceBlock', + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceBlockResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def TraceCall(request, + target, + options=(), + channel_credentials=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.Query/TraceCall', + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryTraceCallResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def BaseFee(request, + target, + options=(), + channel_credentials=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.Query/BaseFee', + injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeRequest.SerializeToString, + injective_dot_evm_dot_v1_dot_query__pb2.QueryBaseFeeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyinjective/proto/injective/evm/v1/state_pb2.py b/pyinjective/proto/injective/evm/v1/state_pb2.py new file mode 100644 index 00000000..62fc5fb5 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/state_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/state.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\x1cinjective/evm/v1/state.proto\x12\x10injective.evm.v1\"/\n\x05State\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05valueB\xcf\x01\n\x14\x63om.injective.evm.v1B\nStateProtoP\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.state_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\024com.injective.evm.v1B\nStateProtoP\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['_STATE']._serialized_start=50 + _globals['_STATE']._serialized_end=97 +# @@protoc_insertion_point(module_scope) diff --git a/pyinjective/proto/injective/evm/v1/state_pb2_grpc.py b/pyinjective/proto/injective/evm/v1/state_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/state_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/trace_config_pb2.py b/pyinjective/proto/injective/evm/v1/trace_config_pb2.py new file mode 100644 index 00000000..a04062c2 --- /dev/null +++ b/pyinjective/proto/injective/evm/v1/trace_config_pb2.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: injective/evm/v1/trace_config.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 chain_config_pb2 as injective_dot_evm_dot_v1_dot_chain__config__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#injective/evm/v1/trace_config.proto\x12\x10injective.evm.v1\x1a\x14gogoproto/gogo.proto\x1a#injective/evm/v1/chain_config.proto\"\x9a\x05\n\x0bTraceConfig\x12\x16\n\x06tracer\x18\x01 \x01(\tR\x06tracer\x12\x18\n\x07timeout\x18\x02 \x01(\tR\x07timeout\x12\x16\n\x06reexec\x18\x03 \x01(\x04R\x06reexec\x12\x35\n\rdisable_stack\x18\x05 \x01(\x08\x42\x10\xea\xde\x1f\x0c\x64isableStackR\x0c\x64isableStack\x12;\n\x0f\x64isable_storage\x18\x06 \x01(\x08\x42\x12\xea\xde\x1f\x0e\x64isableStorageR\x0e\x64isableStorage\x12\x14\n\x05\x64\x65\x62ug\x18\x08 \x01(\x08R\x05\x64\x65\x62ug\x12\x14\n\x05limit\x18\t \x01(\x05R\x05limit\x12;\n\toverrides\x18\n \x01(\x0b\x32\x1d.injective.evm.v1.ChainConfigR\toverrides\x12\x35\n\renable_memory\x18\x0b \x01(\x08\x42\x10\xea\xde\x1f\x0c\x65nableMemoryR\x0c\x65nableMemory\x12\x42\n\x12\x65nable_return_data\x18\x0c \x01(\x08\x42\x14\xea\xde\x1f\x10\x65nableReturnDataR\x10\x65nableReturnData\x12>\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/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/exchange/v1beta1/tx_pb2_grpc.py b/pyinjective/proto/injective/exchange/v1beta1/tx_pb2_grpc.py index 50710e5d..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, @@ -225,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. """ @@ -488,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, @@ -746,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, 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..7c49d59a --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/authz_pb2.py @@ -0,0 +1,79 @@ +# -*- 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.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\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) +_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['_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/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..bf803a2c --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/events_pb2.py @@ -0,0 +1,191 @@ +# -*- 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\"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) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'injective.exchange.v2.events_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\031com.injective.exchange.v2B\013EventsProtoP\001ZQgithub.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2\242\002\003IEX\252\002\025Injective.Exchange.V2\312\002\025Injective\\Exchange\\V2\342\002!Injective\\Exchange\\V2\\GPBMetadata\352\002\027Injective::Exchange::V2' + _globals['_EVENTBATCHDERIVATIVEEXECUTION'].fields_by_name['cumulative_funding']._loaded_options = None + _globals['_EVENTBATCHDERIVATIVEEXECUTION'].fields_by_name['cumulative_funding']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_available_during_payout']._loaded_options = None + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_available_during_payout']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_order_cancels']._loaded_options = None + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION'].fields_by_name['lost_funds_from_order_cancels']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTBINARYOPTIONSMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTBINARYOPTIONSMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTCANCELSPOTORDER'].fields_by_name['order']._loaded_options = None + _globals['_EVENTCANCELSPOTORDER'].fields_by_name['order']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSPOTMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTSPOTMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['perpetual_market_info']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['perpetual_market_info']._serialized_options = b'\310\336\037\001' + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['funding']._loaded_options = None + _globals['_EVENTPERPETUALMARKETUPDATE'].fields_by_name['funding']._serialized_options = b'\310\336\037\001' + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['market']._loaded_options = None + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['market']._serialized_options = b'\310\336\037\000' + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['expiry_futures_market_info']._loaded_options = None + _globals['_EVENTEXPIRYFUTURESMARKETUPDATE'].fields_by_name['expiry_futures_market_info']._serialized_options = b'\310\336\037\001' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding']._serialized_options = b'\310\336\037\000' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding_rate']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['funding_rate']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['mark_price']._loaded_options = None + _globals['_EVENTPERPETUALMARKETFUNDINGUPDATE'].fields_by_name['mark_price']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTSUBACCOUNTDEPOSIT'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTDEPOSIT'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSUBACCOUNTWITHDRAW'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTWITHDRAW'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_EVENTSUBACCOUNTBALANCETRANSFER'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTSUBACCOUNTBALANCETRANSFER'].fields_by_name['amount']._serialized_options = b'\310\336\037\000' + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['market_order']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['market_order']._serialized_options = b'\310\336\037\001' + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['cancel_quantity']._loaded_options = None + _globals['_DERIVATIVEMARKETORDERCANCEL'].fields_by_name['cancel_quantity']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['limit_order']._loaded_options = None + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['limit_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['market_order_cancel']._loaded_options = None + _globals['_EVENTCANCELDERIVATIVEORDER'].fields_by_name['market_order_cancel']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['limit_order']._loaded_options = None + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['limit_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['market_order']._loaded_options = None + _globals['_EVENTCANCELCONDITIONALDERIVATIVEORDER'].fields_by_name['market_order']._serialized_options = b'\310\336\037\001' + _globals['_EVENTGRANTACTIVATION'].fields_by_name['amount']._loaded_options = None + _globals['_EVENTGRANTACTIVATION'].fields_by_name['amount']._serialized_options = b'\310\336\037\000\332\336\037\025cosmossdk.io/math.Int' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['p']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['p']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['q']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['q']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['m']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['m']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['f']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['f']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['tp']._loaded_options = None + _globals['_DERIVATIVEORDERV2CHANGES'].fields_by_name['tp']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_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 + _globals['_SPOTORDERV2CHANGES'].fields_by_name['q']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['f']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['f']._serialized_options = b'\310\336\037\000\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_SPOTORDERV2CHANGES'].fields_by_name['tp']._loaded_options = None + _globals['_SPOTORDERV2CHANGES'].fields_by_name['tp']._serialized_options = b'\310\336\037\001\332\336\037\033cosmossdk.io/math.LegacyDec' + _globals['_EVENTBATCHSPOTEXECUTION']._serialized_start=264 + _globals['_EVENTBATCHSPOTEXECUTION']._serialized_end=474 + _globals['_EVENTBATCHDERIVATIVEEXECUTION']._serialized_start=477 + _globals['_EVENTBATCHDERIVATIVEEXECUTION']._serialized_end=826 + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION']._serialized_start=829 + _globals['_EVENTLOSTFUNDSFROMLIQUIDATION']._serialized_end=1151 + _globals['_EVENTBATCHDERIVATIVEPOSITION']._serialized_start=1154 + _globals['_EVENTBATCHDERIVATIVEPOSITION']._serialized_end=1286 + _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_start=1289 + _globals['_EVENTDERIVATIVEMARKETPAUSED']._serialized_end=1476 + _globals['_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/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..7f368df5 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/exchange_pb2.py @@ -0,0 +1,231 @@ +# -*- 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\"\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) +_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'].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 + _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['_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=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/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..8e0cef7c --- /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\"\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) +_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=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/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..5014a6c2 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/market_pb2.py @@ -0,0 +1,125 @@ +# -*- 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\"\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) +_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'].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 + _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=5093 + _globals['_MARKETSTATUS']._serialized_end=5177 + _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=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/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..2a79d0c8 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/order_pb2.py @@ -0,0 +1,134 @@ +# -*- 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\"\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) +_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['_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 + _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['_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 + _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['_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=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/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..845c8389 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/proposal_pb2.py @@ -0,0 +1,232 @@ +# -*- 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\"\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) +_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'].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 + _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'].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 + _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'].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 + _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['_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=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/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..b2fb4675 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/query_pb2.py @@ -0,0 +1,606 @@ +# -*- 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\"<\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) +_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['_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 + _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['_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 + _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['_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 + _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['_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 new file mode 100644 index 00000000..1afb2a62 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/query_pb2_grpc.py @@ -0,0 +1,2987 @@ +# 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.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, + 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) + 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): + """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 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 + """ + 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 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 = { + '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, + ), + '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, + 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, + ), + '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) + 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 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, + options=(), + channel_credentials=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) + + @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 new file mode 100644 index 00000000..1642c1f4 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2.py @@ -0,0 +1,544 @@ +# -*- 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.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/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) +_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'].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 + _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'].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 + _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'].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 + _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['_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=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 new file mode 100644 index 00000000..fcdeb507 --- /dev/null +++ b/pyinjective/proto/injective/exchange/v2/tx_pb2_grpc.py @@ -0,0 +1,2283 @@ +# 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) + 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): + """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 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 = { + '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, + ), + '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) + 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) + + @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/stream/v2/query_pb2.py b/pyinjective/proto/injective/stream/v2/query_pb2.py new file mode 100644 index 00000000..d83d0087 --- /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\"\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) +_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=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=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/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/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/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) 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/pyproject.toml b/pyproject.toml index 657181e5..1d607918 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "injective-py" -version = "1.10.0" +version = "1.11.0" description = "Injective Python SDK, with Exchange API Client" authors = ["Injective Labs "] license = "Apache-2.0" @@ -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 = "*" @@ -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/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/configurable_exchange_query_servicer.py b/tests/client/chain/grpc/configurable_exchange_query_servicer.py index cfc2c36a..8a7c39ef 100644 --- a/tests/client/chain/grpc/configurable_exchange_query_servicer.py +++ b/tests/client/chain/grpc/configurable_exchange_query_servicer.py @@ -71,6 +71,9 @@ def __init__(self): self.market_balances_responses = deque() self.denom_min_notional_responses = deque() self.denom_min_notionals_responses = deque() + self.active_stake_grant_responses = deque() + self.grant_authorization_responses = deque() + self.grant_authorizations_responses = deque() async def QueryExchangeParams( self, request: exchange_query_pb.QueryExchangeParamsRequest, context=None, metadata=None @@ -361,3 +364,18 @@ async def DenomMinNotionals( self, request: exchange_query_pb.QueryDenomMinNotionalsRequest, context=None, metadata=None ): return self.denom_min_notionals_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() 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..e7187e21 --- /dev/null +++ b/tests/client/chain/grpc/configurable_exchange_v2_query_servicer.py @@ -0,0 +1,387 @@ +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.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() + 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() + 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 + ): + 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 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 + ): + 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() + + 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_auction_api.py b/tests/client/chain/grpc/test_chain_grpc_auction_api.py index 0c6ef320..667c8efb 100644 --- a/tests/client/chain/grpc/test_chain_grpc_auction_api.py +++ b/tests/client/chain/grpc/test_chain_grpc_auction_api.py @@ -26,7 +26,7 @@ async def test_fetch_module_params( params = auction_pb.Params( auction_period=604800, min_next_bid_increment_rate="2500000000000000", - inj_basket_max_cap="1000000000000000000000", + inj_basket_max_cap="100000", ) auction_servicer.auction_params.append(auction_query_pb.QueryAuctionParamsResponse(params=params)) @@ -37,7 +37,7 @@ async def test_fetch_module_params( "params": { "auctionPeriod": str(params.auction_period), "minNextBidIncrementRate": params.min_next_bid_increment_rate, - "injBasketMaxCap": params.inj_basket_max_cap, + "injBasketMaxCap": str(params.inj_basket_max_cap), } } @@ -51,18 +51,24 @@ async def test_fetch_module_state( params = auction_pb.Params( auction_period=604800, min_next_bid_increment_rate="2500000000000000", - inj_basket_max_cap="1000000000000000000000", + inj_basket_max_cap="100000", ) - bid_amount = coin_pb.Coin(amount="2347518723906280000", denom="inj") + coin = coin_pb.Coin(denom="inj", amount="988987297011197594664") highest_bid = auction_pb.Bid( bidder="inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", - amount=bid_amount, + 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)) @@ -74,16 +80,24 @@ async def test_fetch_module_state( "auctionEndingTimestamp": "1687504387", "auctionRound": "50", "highestBid": { - "bidder": "inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", "amount": { - "amount": "2347518723906280000", - "denom": "inj", + "denom": coin.denom, + "amount": coin.amount, }, + "bidder": "inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5", }, "params": { "auctionPeriod": str(params.auction_period), "minNextBidIncrementRate": params.min_next_bid_increment_rate, - "injBasketMaxCap": params.inj_basket_max_cap, + "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), }, } } @@ -98,7 +112,7 @@ async def test_fetch_module_state_when_no_highest_bid_present( params = auction_pb.Params( auction_period=604800, min_next_bid_increment_rate="2500000000000000", - inj_basket_max_cap="1000000000000000000000", + inj_basket_max_cap="100000", ) state = genesis_pb.GenesisState( params=params, @@ -117,7 +131,7 @@ async def test_fetch_module_state_when_no_highest_bid_present( "params": { "auctionPeriod": str(params.auction_period), "minNextBidIncrementRate": params.min_next_bid_increment_rate, - "injBasketMaxCap": params.inj_basket_max_cap, + "injBasketMaxCap": str(params.inj_basket_max_cap), }, } } 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..e1c3ae89 --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_erc20_api.py @@ -0,0 +1,137 @@ +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, + 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 TestChainGrpcERC20Api: + @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", + ) + 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], + pagination=result_pagination, + ) + ) + + api = self._api_instance(erc20_servicer) + response = await api.fetch_all_token_pairs( + pagination=PaginationOption( + skip=0, + limit=100, + ), + ) + + expected_token_pairs = { + "tokenPairs": [ + { + "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 + + @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..551953ca --- /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 TestChainGrpcEVMApi: + @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) + response = await api.fetch_base_fee() + + expected_response = { + "baseFee": "160000000", + } + + assert response == expected_response + + 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/chain/grpc/test_chain_grpc_exchange_api.py b/tests/client/chain/grpc/test_chain_grpc_exchange_api.py index 64ed3a25..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, @@ -2446,6 +2450,99 @@ 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, 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..d741043b --- /dev/null +++ b/tests/client/chain/grpc/test_chain_grpc_exchange_v2_api.py @@ -0,0 +1,2812 @@ +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 TestChainGrpcExchangeV2Api: + @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", + 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)) + + 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, + "fixedGasEnabled": params.fixed_gas_enabled, + "emitLegacyVersionEvents": params.emit_legacy_version_events, + "defaultReduceMarginRatio": params.default_reduce_margin_ratio, + } + } + + 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", + reduce_margin_ratio="30000000000000000", + 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, + "reduceMarginRatio": market.reduce_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", + reduce_margin_ratio="30000000000000000", + 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, + "reduceMarginRatio": market.reduce_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_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, + 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 + + @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) + 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 10db7088..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,12 +5,18 @@ 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 +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 +24,17 @@ def chain_stream_servicer(): return ConfigurableChainStreamQueryServicer() +@pytest.fixture +def chain_stream_v2_servicer(): + return ConfigurableChainStreamV2QueryServicer() + + class TestChainGrpcChainStream: @pytest.mark.asyncio async def test_stream( self, chain_stream_servicer, + chain_stream_v2_servicer, ): block_height = 19114391 block_time = 1701457189786 @@ -54,7 +66,7 @@ async def test_stream( price="18215000", subaccount_id="0x893f2abf8034627e50cbc63923120b1122503ce0000000000000000000000001", fee="76503000000000000000", - order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + order_hash="0xce0d9b701f77cd6ddfda5dd3a4fe7b2d53ba83e5d6c054fb2e9e886200b7b7bb", fee_recipient_address="inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx", cid="HBOTSIJUT60b77b9c56f0456af96c5c6c0d8", trade_id=f"{block_height}_0", @@ -100,7 +112,7 @@ async def test_stream( ) spot_order_update = chain_stream_pb.SpotOrderUpdate( status="Booked", - order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", cid="cid2", order=spot_order, ) @@ -126,7 +138,7 @@ async def test_stream( ) derivative_order_update = chain_stream_pb.DerivativeOrderUpdate( status="Booked", - order_hash="0x14e43adbb3302db28bcd0619068227ebca880cdd66cdfc8b4a662bcac0777849", + order_hash="0x48690013c382d5dbaff9989db04629a16a5818d7524e027d517ccc89fd068103", cid="cid3", order=derivative_order, ) @@ -191,8 +203,8 @@ async def test_stream( ) network = Network.devnet() - composer = Composer(network=network.string()) - api = self._api_instance(servicer=chain_stream_servicer) + composer = ComposerV1(network=network.string()) + api = self._api_instance(servicer=chain_stream_servicer, servicer_v2=chain_stream_v2_servicer) events = asyncio.Queue() end_event = asyncio.Event() @@ -403,12 +415,403 @@ 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 + gas_price = "1600000000" + 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, + gas_price=gas_price, + 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 = ComposerV2(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_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), + "blockTime": str(block_time), + "gasPrice": gas_price, + "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, + "expirationBlock": "0", + "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, + "expirationBlock": "0", + "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/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..8dd39430 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, }, } } @@ -417,7 +425,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 +487,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": [ { @@ -929,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"]) @@ -981,6 +991,7 @@ async def test_fetch_trades( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], "paging": { @@ -1108,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( @@ -1149,6 +1161,7 @@ async def test_fetch_subaccount_trades_list( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], } @@ -1277,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"]) @@ -1329,6 +1343,7 @@ async def test_fetch_trades_v2( "tradeId": trade.trade_id, "executionSide": trade.execution_side, "cid": trade.cid, + "pnl": trade.pnl, }, ], "paging": { @@ -1342,6 +1357,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_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/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/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py b/tests/client/indexer/stream_grpc/test_indexer_grpc_derivative_stream.py index 80637cc6..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 @@ -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, @@ -514,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( @@ -575,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), @@ -710,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( @@ -771,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), 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_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_gas_heuristics_gas_limit_estimator.py b/tests/core/test_gas_heuristics_gas_limit_estimator.py index 32d0cc95..5dec02dd 100644 --- a/tests/core/test_gas_heuristics_gas_limit_estimator.py +++ b/tests/core/test_gas_heuristics_gas_limit_estimator.py @@ -1,8 +1,9 @@ +import math from decimal import Decimal 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, @@ -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, @@ -26,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_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 TestGasLimitEstimator: @@ -44,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) @@ -66,7 +61,7 @@ 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.spot_order( market_id=spot_market_id, @@ -96,17 +91,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", @@ -120,7 +115,7 @@ 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.derivative_order( market_id=market_id, @@ -152,17 +147,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", @@ -176,7 +171,7 @@ 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.spot_order( market_id=market_id, @@ -209,7 +204,7 @@ 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.derivative_order( market_id=market_id, @@ -246,25 +241,6 @@ 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.binary_options_order( market_id=market_id, @@ -303,17 +279,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", @@ -336,17 +312,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", @@ -369,17 +345,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", @@ -498,6 +474,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( + 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( + 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 +583,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( + 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( + 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 @@ -597,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) @@ -641,6 +698,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( + 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( + 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 @@ -669,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) @@ -684,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) @@ -699,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) @@ -715,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) @@ -731,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) @@ -772,7 +874,7 @@ 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.spot_order( market_id=market_id, @@ -790,7 +892,7 @@ def test_estimation_for_exec_message(self, basic_composer): 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) @@ -809,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="", @@ -837,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 fa336e64..1912158d 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, @@ -16,23 +17,74 @@ 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 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_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 TestGasLimitEstimator: + def test_estimation_for_message_without_applying_rule(self): + 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) + + expected_message_gas_limit = 150_000 + + assert expected_message_gas_limit == estimator.gas_limit() + + def test_estimation_for_privileged_execute_contract_message(self): + message = injective_exchange_tx_pb.MsgPrivilegedExecuteContract() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 900_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_execute_contract_message(self): + composer = ComposerV2(network="testnet") + message = composer.msg_execute_contract( + sender="", + contract="", + msg="", + ) + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 375_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_wasm_message(self): + message = wasm_tx_pb.MsgInstantiateContract2() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 225_000 + + assert expected_gas_limit == estimator.gas_limit() + + def test_estimation_for_governance_message(self): + message = gov_tx_pb.MsgDeposit() + estimator = GasLimitEstimator.for_message(message=message) + + expected_gas_limit = 2_250_000 + + assert expected_gas_limit == estimator.gas_limit() + + +class TestGasLimitEstimatorForV1ExchangeMessages: @pytest.fixture def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( + 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}, @@ -46,15 +98,6 @@ def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match return composer - def test_estimation_for_message_without_applying_rule(self, basic_composer): - message = basic_composer.MsgSend(from_address="from_address", to_address="to_address", amount=1, denom="INJ") - - estimator = GasLimitEstimator.for_message(message=message) - - expected_message_gas_limit = 150_000 - - assert expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ @@ -83,27 +126,26 @@ def test_estimation_for_batch_create_spot_limit_orders(self, basic_composer): assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_cancel_spot_orders(self): - spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_cancel_spot_orders(self, basic_composer): + spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) + message = basic_composer.msg_batch_cancel_spot_orders(sender="sender", orders_data=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = SPOT_ORDER_CANCELATION_GAS_LIMIT @@ -141,27 +183,26 @@ def test_estimation_for_batch_create_derivative_limit_orders(self, basic_compose assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_cancel_derivative_orders(self): - spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_cancel_derivative_orders(self, basic_composer): + spot_market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=spot_market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) + message = basic_composer.msg_batch_cancel_derivative_orders(sender="sender", orders_data=orders) estimator = GasLimitEstimator.for_message(message=message) expected_order_gas_limit = DERIVATIVE_ORDER_CANCELATION_GAS_LIMIT @@ -239,9 +280,8 @@ def test_estimation_for_batch_update_orders_to_create_derivative_orders(self, ba assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_token): - market_id = "0x230dcce315364ff6360097838701b14713e2f4007d704df20ed3d81d09eec957" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_create_binary_orders(self, basic_composer, usdt_token): + market_id = list(basic_composer.binary_option_markets.keys())[0] market = BinaryOptionMarket( id=market_id, status="active", @@ -260,9 +300,9 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t min_quantity_tick_size=Decimal("1"), min_notional=Decimal(0), ) - composer.binary_option_markets[market.id] = market + basic_composer.binary_option_markets[market.id] = market orders = [ - composer.binary_options_order( + basic_composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -271,7 +311,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t margin=Decimal(3), order_type="BUY", ), - composer.binary_options_order( + basic_composer.binary_options_order( market_id=market_id, subaccount_id="subaccount_id", fee_recipient="fee_recipient", @@ -281,7 +321,7 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t order_type="SELL", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -296,27 +336,26 @@ def test_estimation_for_batch_update_orders_to_create_binary_orders(self, usdt_t assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): - market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -330,27 +369,26 @@ def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self, basic_composer): + market_id = list(basic_composer.derivative_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -364,27 +402,26 @@ def test_estimation_for_batch_update_orders_to_cancel_derivative_orders(self): assert (expected_order_gas_limit * 3) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self): - market_id = "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" - composer = Composer(network="testnet") + def test_estimation_for_batch_update_orders_to_cancel_binary_orders(self, basic_composer): + market_id = list(basic_composer.binary_option_markets.keys())[0] orders = [ - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", ), - composer.order_data( + basic_composer.order_data_without_mask( market_id=market_id, subaccount_id="subaccount_id", order_hash="0x7ee76255d7ca763c56b0eab9828fca89fdd3739645501c8a80f58b62b4f76da5", ), ] - message = composer.msg_batch_update_orders( + message = basic_composer.msg_batch_update_orders( sender="senders", derivative_orders_to_create=[], spot_orders_to_create=[], @@ -401,7 +438,7 @@ 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 = ComposerV1(network="testnet") message = composer.msg_batch_update_orders( sender="senders", @@ -421,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", @@ -441,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", @@ -478,7 +515,7 @@ def test_estimation_for_exec_message(self, basic_composer): 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) @@ -491,48 +528,453 @@ def test_estimation_for_exec_message(self, basic_composer): == estimator.gas_limit() ) - def test_estimation_for_privileged_execute_contract_message(self): - message = injective_exchange_tx_pb.MsgPrivilegedExecuteContract() + def test_estimation_for_generic_exchange_message(self, basic_composer): + market_id = list(basic_composer.spot_markets.keys())[0] + message = basic_composer.msg_create_spot_limit_order( + sender="sender", + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("7.523"), + quantity=Decimal("0.01"), + order_type="BUY", + ) estimator = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 900_000 + expected_gas_limit = 120_000 assert expected_gas_limit == estimator.gas_limit() - def test_estimation_for_execute_contract_message(self): - composer = Composer(network="testnet") - message = composer.MsgExecuteContract( - sender="", - contract="", - msg="", + +class TestGasLimitEstimatorForV2ExchangeMessages: + def test_estimation_for_batch_create_spot_limit_orders(self): + spot_market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = ComposerV2(network="testnet") + orders = [ + 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", + ), + 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 = 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 + 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 = ComposerV2(network="testnet") + orders = [ + composer.order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + 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) + 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 = ComposerV2(network="testnet") + orders = [ + 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", + ), + 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 = 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 + 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 = ComposerV2(network="testnet") + orders = [ + composer.order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data_without_mask( + market_id=spot_market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + 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) + 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 = ComposerV2(network="testnet") + orders = [ + composer.spot_order( + market_id=market_id, + subaccount_id="subaccount_id", + fee_recipient="fee_recipient", + price=Decimal("5"), + quantity=Decimal("1"), + order_type="BUY", + ), + 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 = 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 = 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 = ComposerV2(network="testnet") + orders = [ + 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", + ), + 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 = 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 = 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 = ComposerV2(network="testnet") + + 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 = GasLimitEstimator.for_message(message=message) - expected_gas_limit = 2_250_000 + expected_order_gas_limit = DERIVATIVE_ORDER_CREATION_GAS_LIMIT + expected_message_gas_limit = BatchUpdateOrdersGasLimitEstimator.MESSAGE_GAS_LIMIT - assert expected_gas_limit == estimator.gas_limit() + assert (expected_order_gas_limit * 2) + expected_message_gas_limit == estimator.gas_limit() - def test_estimation_for_generic_exchange_message(self, basic_composer): - market_id = list(basic_composer.spot_markets.keys())[0] - message = basic_composer.msg_create_spot_limit_order( + def test_estimation_for_batch_update_orders_to_cancel_spot_orders(self): + market_id = "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + composer = ComposerV2(network="testnet") + orders = [ + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data_without_mask( + 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 = 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 = ComposerV2(network="testnet") + orders = [ + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data_without_mask( + 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 = 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 = ComposerV2(network="testnet") + orders = [ + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x3870fbdd91f07d54425147b1bb96404f4f043ba6335b422a6d494d285b387f2d", + ), + composer.order_data_without_mask( + market_id=market_id, + subaccount_id="subaccount_id", + order_hash="0x222daa22f60fe9f075ed0ca583459e121c23e64431c3fbffdedda04598ede0d2", + ), + composer.order_data_without_mask( + 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 = 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 = ComposerV2(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 = 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 = ComposerV2(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 = 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 = ComposerV2(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 = 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 = ComposerV2(network="testnet") + orders = [ + 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 = 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.msg_exec(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 = ComposerV2(network="testnet") + message = composer.msg_create_spot_limit_order( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), diff --git a/tests/core/test_market.py b/tests/core/test_market.py index 514e6256..a94bf0d4 100644 --- a/tests/core/test_market.py +++ b/tests/core/test_market.py @@ -20,7 +20,7 @@ def test_convert_quantity_to_chain_format(self, inj_usdt_spot_market: SpotMarket 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("1e18") + quantized_chain_format_value = quantized_value * Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}") assert quantized_chain_format_value == chain_value diff --git a/tests/core/test_market_v2.py b/tests/core/test_market_v2.py new file mode 100644 index 00000000..73c9a1a3 --- /dev/null +++ b/tests/core/test_market_v2.py @@ -0,0 +1,587 @@ +from decimal import Decimal + +from pyinjective.constant import ADDITIONAL_CHAIN_FORMAT_DECIMALS +from pyinjective.core.market_v2 import BinaryOptionMarket, DerivativeMarket, SpotMarket +from pyinjective.utils.denom import Denom +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: + 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 + ) * 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") + + 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 + quantized_value = ( + original_quantity // 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}") + + 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 + quantized_value = ( + original_quantity // 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}") + + 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=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 + ) + quantized_value = (original_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}") + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + chain_value = first_match_bet_market.price_to_chain_format( + human_readable_value=original_quantity, + special_denom=fixed_denom, + ) + price_decimals = fixed_denom.quote + quantized_value = (original_quantity // 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}") + + 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 + quantized_value = ( + original_quantity // 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}") + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + chain_value = first_match_bet_market.margin_to_chain_format( + human_readable_value=original_quantity, + special_denom=fixed_denom, + ) + price_decimals = fixed_denom.quote + quantized_value = (original_quantity // 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}") + + 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 + quantized_value = ( + original_quantity // 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}") + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + 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, + ) + + margin = original_quantity * original_price + quantized_margin = (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}") + + 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 + 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) + ) + 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 + + 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 + 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) + ) + 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 + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + 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=1, + min_price_tick_size=1, + min_notional=1, + ) + + 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_message_based_transaction_fee_calculator.py b/tests/core/test_message_based_transaction_fee_calculator.py index 13465f77..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, @@ -17,31 +17,9 @@ from pyinjective.proto.cosmos.gov.v1beta1 import tx_pb2 as gov_tx_pb2 from pyinjective.proto.cosmwasm.wasm.v1 import tx_pb2 as wasm_tx_pb2 from pyinjective.proto.injective.exchange.v1beta1 import tx_pb2 -from tests.model_fixtures.markets_fixtures import btc_usdt_perp_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import first_match_bet_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import inj_usdt_spot_market # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_perp_token # noqa: F401 -from tests.model_fixtures.markets_fixtures import usdt_token # noqa: F401 class TestMessageBasedTransactionFeeCalculator: - @pytest.fixture - def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( - network=Network.devnet().string(), - spot_markets={inj_usdt_spot_market.id: inj_usdt_spot_market}, - derivative_markets={btc_usdt_perp_market.id: btc_usdt_perp_market}, - binary_option_markets={first_match_bet_market.id: first_match_bet_market}, - tokens={ - inj_usdt_spot_market.base_token.symbol: inj_usdt_spot_market.base_token, - inj_usdt_spot_market.quote_token.symbol: inj_usdt_spot_market.quote_token, - btc_usdt_perp_market.quote_token.symbol: btc_usdt_perp_market.quote_token, - }, - ) - - return composer - @pytest.mark.asyncio async def test_gas_fee_for_privileged_execute_contract_message(self): network = Network.testnet(node="sentry") @@ -77,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="", @@ -137,20 +115,19 @@ async def test_gas_fee_for_governance_message(self): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_exchange_message(self, basic_composer): + async def test_gas_fee_for_exchange_message(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - message = basic_composer.msg_create_spot_limit_order( + message = composer.msg_create_spot_limit_order( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), @@ -168,27 +145,26 @@ async def test_gas_fee_for_exchange_message(self, basic_composer): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_msg_exec_message(self, basic_composer): + async def test_gas_fee_for_msg_exec_message(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - inner_message = basic_composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), quantity=Decimal("0.01"), order_type="BUY", ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.msg_exec(grantee="grantee", msgs=[inner_message]) transaction = Transaction() transaction.with_messages(message) @@ -204,29 +180,28 @@ async def test_gas_fee_for_msg_exec_message(self, basic_composer): assert str(expected_gas_limit * 5_000_000) == transaction.fee.amount[0].amount @pytest.mark.asyncio - async def test_gas_fee_for_two_messages_in_one_transaction(self, basic_composer): + async def test_gas_fee_for_two_messages_in_one_transaction(self): network = Network.testnet(node="sentry") client = AsyncClient(network=network) + composer = Composer(network=network.string()) calculator = MessageBasedTransactionFeeCalculator( client=client, - composer=basic_composer, + composer=composer, gas_price=5_000_000, ) - market_id = list(basic_composer.spot_markets.keys())[0] - - inner_message = basic_composer.msg_create_spot_limit_order( + inner_message = composer.msg_create_spot_limit_order( sender="sender", - market_id=market_id, + market_id="0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe", subaccount_id="subaccount_id", fee_recipient="fee_recipient", price=Decimal("7.523"), quantity=Decimal("0.01"), order_type="BUY", ) - message = basic_composer.MsgExec(grantee="grantee", msgs=[inner_message]) + message = composer.msg_exec(grantee="grantee", msgs=[inner_message]) - send_message = basic_composer.MsgSend(from_address="address", to_address="to_address", amount=1, denom="INJ") + send_message = composer.msg_send(from_address="address", to_address="to_address", amount=1, denom="INJ") transaction = Transaction() transaction.with_messages(message, send_message) diff --git a/tests/core/test_network_deprecation_warnings.py b/tests/core/test_network_deprecation_warnings.py deleted file mode 100644 index 1764576c..00000000 --- a/tests/core/test_network_deprecation_warnings.py +++ /dev/null @@ -1,56 +0,0 @@ -from warnings import catch_warnings - -from pyinjective.core.network import DisabledCookieAssistant, Network - - -class TestNetworkDeprecationWarnings: - def test_use_secure_connection_parameter_deprecation_warning(self): - with catch_warnings(record=True) as all_warnings: - Network( - lcd_endpoint="lcd_endpoint", - tm_websocket_endpoint="tm_websocket_endpoint", - grpc_endpoint="grpc_endpoint", - grpc_exchange_endpoint="grpc_exchange_endpoint", - grpc_explorer_endpoint="grpc_explorer_endpoint", - chain_stream_endpoint="chain_stream_endpoint", - chain_id="chain_id", - fee_denom="fee_denom", - env="env", - official_tokens_list_url="https://tokens.url", - chain_cookie_assistant=DisabledCookieAssistant(), - exchange_cookie_assistant=DisabledCookieAssistant(), - explorer_cookie_assistant=DisabledCookieAssistant(), - use_secure_connection=True, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "use_secure_connection parameter in Network is no longer used and will be deprecated" - ) - - def test_use_secure_connection_parameter_in_custom_network_deprecation_warning(self): - with catch_warnings(record=True) as all_warnings: - Network.custom( - lcd_endpoint="lcd_endpoint", - tm_websocket_endpoint="tm_websocket_endpoint", - grpc_endpoint="grpc_endpoint", - grpc_exchange_endpoint="grpc_exchange_endpoint", - grpc_explorer_endpoint="grpc_explorer_endpoint", - chain_stream_endpoint="chain_stream_endpoint", - chain_id="chain_id", - env="env", - official_tokens_list_url="https://tokens.url", - chain_cookie_assistant=DisabledCookieAssistant(), - exchange_cookie_assistant=DisabledCookieAssistant(), - explorer_cookie_assistant=DisabledCookieAssistant(), - use_secure_connection=True, - ) - - deprecation_warnings = [warning for warning in all_warnings if issubclass(warning.category, DeprecationWarning)] - assert len(deprecation_warnings) == 1 - assert ( - str(deprecation_warnings[0].message) - == "use_secure_connection parameter in Network is no longer used and will be deprecated" - ) diff --git a/tests/core/test_token.py b/tests/core/test_token.py index 6c649f06..2c084b6e 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: @@ -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 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_fixtures.py b/tests/model_fixtures/markets_fixtures.py index bdfa1d2a..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 diff --git a/tests/model_fixtures/markets_v2_fixtures.py b/tests/model_fixtures/markets_v2_fixtures.py new file mode 100644 index 00000000..76840843 --- /dev/null +++ b/tests/model_fixtures/markets_v2_fixtures.py @@ -0,0 +1,121 @@ +from decimal import Decimal + +import pytest + +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, + unique_symbol="INJ", + ) + + 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, + unique_symbol="USDT", + ) + + 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, + unique_symbol="peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", + ) + + return token + + +@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.01"), + min_quantity_tick_size=Decimal("0.001"), + min_notional=Decimal("1"), + ) + + 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("0.01"), + min_quantity_tick_size=Decimal("0.0001"), + min_notional=Decimal("1"), + ) + + 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("0.01"), + min_quantity_tick_size=Decimal("1"), + min_notional=Decimal("0.000001"), + ) + + return market diff --git a/tests/rpc_fixtures/markets_fixtures.py b/tests/rpc_fixtures/markets_fixtures.py index 68ddbea9..b4e35dfd 100644 --- a/tests/rpc_fixtures/markets_fixtures.py +++ b/tests/rpc_fixtures/markets_fixtures.py @@ -109,9 +109,9 @@ def usdt_perp_token_meta(): @pytest.fixture def ape_usdt_spot_market_meta(): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.SpotMarket( + market = market_pb.SpotMarket( ticker="APE/USDT", base_denom="peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7", quote_denom="factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt", @@ -134,9 +134,9 @@ def ape_usdt_spot_market_meta(): @pytest.fixture def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.SpotMarket( + market = market_pb.SpotMarket( ticker="INJ/USDT", base_denom="inj", quote_denom="peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", @@ -159,9 +159,13 @@ def inj_usdt_spot_market_meta(inj_token_meta, usdt_token_meta): @pytest.fixture def btc_usdt_perp_market_meta(usdt_perp_token_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb, query_pb2 as exchange_query_pb + from pyinjective.proto.injective.exchange.v2 import ( + exchange_pb2 as exchange_pb, + market_pb2 as market_pb, + query_pb2 as exchange_query_pb, + ) - market = exchange_pb.DerivativeMarket( + market = market_pb.DerivativeMarket( ticker="BTC/USDT PERP", oracle_base="BTC", oracle_quote="USDT", @@ -183,14 +187,14 @@ def btc_usdt_perp_market_meta(usdt_perp_token_meta): admin_permissions=1, quote_decimals=6, ) - market_info = exchange_pb.PerpetualMarketInfo( + market_info = market_pb.PerpetualMarketInfo( market_id="0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", hourly_funding_rate_cap="625000000000000", hourly_interest_rate="4166660000000", next_funding_timestamp=1708099200, funding_interval=3600, ) - funding_info = exchange_pb.PerpetualMarketFunding( + funding_info = market_pb.PerpetualMarketFunding( cumulative_funding="-107853477278881692857461", cumulative_price="0", last_timestamp=1708099200, @@ -216,9 +220,9 @@ def btc_usdt_perp_market_meta(usdt_perp_token_meta): @pytest.fixture def first_match_bet_market_meta(inj_usdt_spot_market_meta): - from pyinjective.proto.injective.exchange.v1beta1 import exchange_pb2 as exchange_pb + from pyinjective.proto.injective.exchange.v2 import market_pb2 as market_pb - market = exchange_pb.BinaryOptionsMarket( + market = market_pb.BinaryOptionsMarket( ticker="5fdbe0b1-1707800399-WAS", oracle_symbol="Frontrunner", oracle_provider="Frontrunner", diff --git a/tests/test_async_client.py b/tests/test_async_client.py index 92a4c98f..3a09b33e 100644 --- a/tests/test_async_client.py +++ b/tests/test_async_client.py @@ -2,13 +2,14 @@ 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 -from pyinjective.proto.injective.exchange.v1beta1 import query_pb2 as exchange_query_pb +from pyinjective.proto.injective.exchange.v2 import query_pb2 as exchange_query_pb from tests.client.chain.grpc.configurable_bank_query_servicer import ConfigurableBankQueryServicer -from tests.client.chain.grpc.configurable_exchange_query_servicer import ConfigurableExchangeQueryServicer +from tests.client.chain.grpc.configurable_exchange_v2_query_servicer import ConfigurableExchangeV2QueryServicer +from tests.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, @@ -30,16 +31,23 @@ def bank_servicer(): @pytest.fixture def exchange_servicer(): - return ConfigurableExchangeQueryServicer() + 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() @@ -49,15 +57,17 @@ async def test_sync_timeout_height_logs_exception(self, caplog): 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 - 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="") @@ -67,13 +77,14 @@ async def test_get_account_logs_exception(self, caplog): 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 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, @@ -162,7 +173,8 @@ async def test_initialize_tokens_and_markets( network=test_network, ) - client.chain_exchange_api._stub = exchange_servicer + client.chain_exchange_v2_api._stub = exchange_servicer + 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, @@ -254,7 +267,8 @@ async def test_tokens_and_markets_initialization_read_tokens_from_official_list( network=test_network, ) - client.chain_exchange_api._stub = exchange_servicer + client.chain_exchange_v2_api._stub = exchange_servicer + 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_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() diff --git a/tests/test_async_client_deprecation_warnings.py b/tests/test_async_client_deprecation_warnings.py deleted file mode 100644 index 6e59b7a9..00000000 --- a/tests/test_async_client_deprecation_warnings.py +++ /dev/null @@ -1,30 +0,0 @@ -from warnings import catch_warnings - -import pytest - -from pyinjective.async_client import AsyncClient -from pyinjective.core.network import Network - - -class TestAsyncClientDeprecationWarnings: - @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 16642c81..0436e01c 100644 --- a/tests/test_composer.py +++ b/tests/test_composer.py @@ -346,143 +346,6 @@ def test_msg_instant_spot_market_launch(self, basic_composer): ) 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") - - 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_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_perpetual_market_launch( - 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, - 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_token.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}", - "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") - 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_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( - 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, - 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_token.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}", - "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): spot_market = list(basic_composer.spot_markets.values())[0] subaccount_id = "0x5e249f0e8cb406f41de16e1bd6f6b55e7bc75add000000000000000000000000" diff --git a/tests/test_composer_deprecation_warnings.py b/tests/test_composer_deprecation_warnings.py new file mode 100644 index 00000000..aa02c25d --- /dev/null +++ b/tests/test_composer_deprecation_warnings.py @@ -0,0 +1,226 @@ +import warnings + +import pytest + +from pyinjective.composer import Composer as ComposerV1 +from pyinjective.core.network import Network +from tests.model_fixtures.markets_fixtures import ( # noqa: F401 + btc_usdt_perp_market, + first_match_bet_market, + inj_token, + inj_usdt_spot_market, + usdt_perp_token, + usdt_token, +) + + +class TestComposerDeprecationWarnings: + @pytest.fixture + 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}, + 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_composer_v1_msg_bid_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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 msg_bid instead" + + 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.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 msg_grant_generic instead" + + 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.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 msg_exec instead" + + def test_composer_v1_msg_revoke_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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 msg_revoke 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] + + with warnings.catch_warnings(record=True) as all_warnings: + 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_send instead" + + 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: + composer.MsgCreateInsuranceFund( + sender="sender", + 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_create_insurance_fund 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] + + with warnings.catch_warnings(record=True) as all_warnings: + 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 msg_underwrite instead" + + 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: + 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_request_redemption instead" + + 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: + 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_relay_provider_prices instead" + ) + + def test_composer_v1_msg_relay_price_feed_price_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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_relay_price_feed_price instead" + ) + + 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: + 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_send_to_eth instead" + + def test_composer_v1_msg_delegate_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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_delegate instead" + + def test_composer_v1_msg_instantiate_contract_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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_instantiate_contract instead" + + def test_composer_v1_msg_execute_contract_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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_execute_contract instead" + + def test_composer_v1_msg_grant_typed_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=1000, + subaccount_id="subaccount_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_grant_typed instead" + + def test_composer_v1_msg_vote_deprecation_warning(self): + composer = ComposerV1(network=Network.devnet().string()) + + with warnings.catch_warnings(record=True) as all_warnings: + 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_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 dd6d2895..2ce99be1 100644 --- a/tests/test_orderhash.py +++ b/tests/test_orderhash.py @@ -1,40 +1,15 @@ from decimal import Decimal -import pytest - from pyinjective import PrivateKey -from pyinjective.composer import Composer +from pyinjective.composer_v2 import Composer from pyinjective.core.network import Network from pyinjective.orderhash import OrderHashManager -from tests.model_fixtures.markets_fixtures import ( # noqa: F401 - btc_usdt_perp_market, - first_match_bet_market, - inj_token, - inj_usdt_spot_market, - usdt_perp_token, - usdt_token, -) class TestOrderHashManager: - @pytest.fixture - def basic_composer(self, inj_usdt_spot_market, btc_usdt_perp_market, first_match_bet_market): - composer = Composer( - network=Network.devnet().string(), - spot_markets={inj_usdt_spot_market.id: inj_usdt_spot_market}, - derivative_markets={btc_usdt_perp_market.id: btc_usdt_perp_market}, - binary_option_markets={first_match_bet_market.id: first_match_bet_market}, - tokens={ - inj_usdt_spot_market.base_token.symbol: inj_usdt_spot_market.base_token, - inj_usdt_spot_market.quote_token.symbol: inj_usdt_spot_market.quote_token, - btc_usdt_perp_market.quote_token.symbol: btc_usdt_perp_market.quote_token, - }, - ) - - return composer - - def test_spot_order_hash(self, requests_mock, basic_composer): + def test_spot_order_hash(self, requests_mock): network = Network.devnet() + composer = Composer(network=network.string()) priv_key = PrivateKey.from_mnemonic("test one few words") pub_key = priv_key.to_public_key() address = pub_key.to_address() @@ -45,11 +20,11 @@ def test_spot_order_hash(self, requests_mock, basic_composer): requests_mock.get(url, json={"nonce": 0}) order_hash_manager = OrderHashManager(address=address, network=network, subaccount_indexes=[0]) - spot_market_id = list(basic_composer.spot_markets.keys())[0] + spot_market_id = "0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0" fee_recipient = "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" spot_orders = [ - basic_composer.spot_order( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -57,7 +32,7 @@ def test_spot_order_hash(self, requests_mock, basic_composer): quantity=Decimal("0.01"), order_type="BUY", ), - basic_composer.spot_order( + composer.spot_order( market_id=spot_market_id, subaccount_id=subaccount_id, fee_recipient=fee_recipient, @@ -73,5 +48,5 @@ def test_spot_order_hash(self, requests_mock, basic_composer): assert len(order_hashes_response.spot) == 2 assert len(order_hashes_response.derivative) == 0 - assert order_hashes_response.spot[0] == "0x79f259a10d813f11c9582b94950b5a0922180c1b2785638d8aefa04e0c8ae4aa" - assert order_hashes_response.spot[1] == "0x96c2c4a5d38a20457e8f3319b9aac194ad03b2ce80d0acd718190487bf12e434" + assert order_hashes_response.spot[0] == "0x4f70723b33db271e6c56201e42c5911dd97a9f5345c7fcf12eb69c2689f94e78" + assert order_hashes_response.spot[1] == "0x2cc1acacf0e576ea41e9381725f4c78fc5c191f9df4e3e98402c09b8ad2c82e8" 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"