Succesfully connect to kucoin ws
							parent
							
								
									f89b408f64
								
							
						
					
					
						commit
						e4a78eaeef
					
				| 
						 | 
					@ -26,7 +26,8 @@ import math
 | 
				
			||||||
import base64
 | 
					import base64
 | 
				
			||||||
import hmac
 | 
					import hmac
 | 
				
			||||||
import hashlib
 | 
					import hashlib
 | 
				
			||||||
import wsproto
 | 
					# import wsproto
 | 
				
			||||||
 | 
					from uuid import uuid4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import asks
 | 
					import asks
 | 
				
			||||||
import tractor
 | 
					import tractor
 | 
				
			||||||
| 
						 | 
					@ -66,7 +67,6 @@ def get_config() -> dict[str, Any]:
 | 
				
			||||||
    # TODO: document why we send this, basically because logging params for cryptofeed
 | 
					    # TODO: document why we send this, basically because logging params for cryptofeed
 | 
				
			||||||
    conf["log"] = {}
 | 
					    conf["log"] = {}
 | 
				
			||||||
    conf["log"]["disabled"] = True
 | 
					    conf["log"]["disabled"] = True
 | 
				
			||||||
    breakpoint()
 | 
					 | 
				
			||||||
    if section is None:
 | 
					    if section is None:
 | 
				
			||||||
        log.warning("No config section found for kucoin in config")
 | 
					        log.warning("No config section found for kucoin in config")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -152,8 +152,12 @@ class Client:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def _get_ws_token(self, private: bool) -> str:
 | 
					    async def _get_ws_token(self, private: bool) -> str:
 | 
				
			||||||
        token_type = "private" if private else "public"
 | 
					        token_type = "private" if private else "public"
 | 
				
			||||||
        token = await self._request("POST", f"/bullet-{token_type}", "v1")
 | 
					        data = await self._request("POST", f"/bullet-{token_type}", "v1")
 | 
				
			||||||
        return token
 | 
					        if "token" in data:
 | 
				
			||||||
 | 
					            return data["token"]
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            print(f'KUCOIN ERROR: {data.json()["msg"]}')
 | 
				
			||||||
 | 
					            breakpoint()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def get_pairs(
 | 
					    async def get_pairs(
 | 
				
			||||||
        self,
 | 
					        self,
 | 
				
			||||||
| 
						 | 
					@ -201,7 +205,6 @@ class Client:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def last_trades(self, sym: str):
 | 
					    async def last_trades(self, sym: str):
 | 
				
			||||||
        trades = await self._request("GET", f"/accounts/ledgers?currency={sym}", "v1")
 | 
					        trades = await self._request("GET", f"/accounts/ledgers?currency={sym}", "v1")
 | 
				
			||||||
        breakpoint()
 | 
					 | 
				
			||||||
        return trades.items
 | 
					        return trades.items
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def get_bars(
 | 
					    async def get_bars(
 | 
				
			||||||
| 
						 | 
					@ -328,13 +331,15 @@ async def stream_quotes(
 | 
				
			||||||
        # async def subscribe(ws: wsproto.WSConnection):
 | 
					        # async def subscribe(ws: wsproto.WSConnection):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        token = await client._get_ws_token(True)
 | 
					        token = await client._get_ws_token(True)
 | 
				
			||||||
 | 
					        connect_id = str(uuid4())
 | 
				
			||||||
        async with open_autorecon_ws(
 | 
					        async with open_autorecon_ws(
 | 
				
			||||||
            f"wss://ws-api-spot.kucoin.com/?token=={token}&[connectId={12345}]"
 | 
					            f"wss://ws-api-spot.kucoin.com/?token=={token}&[connectId={connect_id}]"
 | 
				
			||||||
        ) as ws:
 | 
					        ) as ws:
 | 
				
			||||||
            msg_gen = stream_messageS(ws)
 | 
					            breakpoint()
 | 
				
			||||||
 | 
					            msg_gen = stream_messages(ws)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async def stream_messageS(ws: NoBsWs) -> AsyncGenerator[NoBsWs, dict]:
 | 
					async def stream_messages(ws: NoBsWs) -> AsyncGenerator[NoBsWs, dict]:
 | 
				
			||||||
    timeouts = 0
 | 
					    timeouts = 0
 | 
				
			||||||
    while True:
 | 
					    while True:
 | 
				
			||||||
        with trio.move_on_after(3) as cs:
 | 
					        with trio.move_on_after(3) as cs:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue