Skip to content

Commit ffea0d2

Browse files
committed
feat: add stream event order fail
1 parent 8858a65 commit ffea0d2

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

examples/chain_client/38_StreamEvent.py renamed to examples/chain_client/38_StreamEventOrderFail.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,17 @@
1313
# limitations under the License.
1414
"""Injective Exchange API client for Python. Example only."""
1515

16-
import sys
17-
sys.path.insert(0, '/Users/nam/desktop/injective/sdk-python/')
18-
1916
import asyncio
2017
import logging
2118
import json
2219
import websockets
20+
import base64
2321

24-
from pyinjective.async_client import AsyncClient
2522
from pyinjective.constant import Network
2623

2724
async def main() -> None:
2825
network = Network.mainnet()
29-
client = AsyncClient(network, insecure=False)
30-
31-
event_filter = "tm.event='Tx' AND message.sender='inj1rwv4zn3jptsqs7l8lpa3uvzhs57y8duemete9e' AND message.action='/injective.exchange.v1beta1.MsgBatchUpdateOrders'"
26+
event_filter = "tm.event='Tx' AND message.sender='inj1rwv4zn3jptsqs7l8lpa3uvzhs57y8duemete9e' AND message.action='/injective.exchange.v1beta1.MsgBatchUpdateOrders' AND injective.exchange.v1beta1.EventOrderFail.flags EXISTS"
3227
query = json.dumps({
3328
"jsonrpc": "2.0",
3429
"method": "subscribe",
@@ -38,12 +33,35 @@ async def main() -> None:
3833
},
3934
})
4035

36+
events_dict = {}
37+
failed_orders = {}
38+
flags = []
39+
order_hashes = []
40+
4141
async with websockets.connect(network.tm_websocket_endpoint) as ws:
4242
await ws.send(query)
4343
while True:
4444
events = await ws.recv()
45-
print(events)
46-
await asyncio.sleep(1)
45+
events_json = json.loads(events)
46+
resp = events_json["result"]
47+
for key, value in resp.items():
48+
if key == "events":
49+
events_dict = value
50+
for key, value in events_dict.items():
51+
if key == "injective.exchange.v1beta1.EventOrderFail.flags":
52+
k = json.loads(value[0])
53+
for i in range(len(k)):
54+
flags.append(k[i])
55+
if key == "injective.exchange.v1beta1.EventOrderFail.hashes":
56+
k = json.loads(value[0])
57+
for i in range(len(k)):
58+
hash_to_bytes = k[i].encode("utf-8")
59+
bytes_to_base64 = base64.standard_b64decode(hash_to_bytes)
60+
base64_to_hex = '0x' + bytes_to_base64.hex()
61+
order_hashes.append(base64_to_hex)
62+
for i in range(len(order_hashes)):
63+
failed_orders[order_hashes[i]] = flags[i]
64+
print(failed_orders)
4765

4866
if __name__ == '__main__':
4967
logging.basicConfig(level=logging.INFO)

0 commit comments

Comments
 (0)