@@ -45,22 +45,7 @@ def __init__(
4545 self .wallet = wallet
4646 self .vault_address = vault_address
4747 self .account_address = account_address
48- self .info = Info (base_url , skip_ws = True )
49- if meta is None :
50- self .meta = self .info .meta ()
51- else :
52- self .meta = meta
53-
54- if spot_meta is None :
55- self .spot_meta = self .info .spot_meta ()
56- else :
57- self .spot_meta = spot_meta
58-
59- self .coin_to_asset = {asset_info ["name" ]: asset for (asset , asset_info ) in enumerate (self .meta ["universe" ])}
60-
61- # spot assets start at 10000
62- for spot_info in self .spot_meta ["universe" ]:
63- self .coin_to_asset [spot_info ["name" ]] = spot_info ["index" ] + 10000
48+ self .info = Info (base_url , True , meta , spot_meta )
6449
6550 def _post_action (self , action , signature , nonce ):
6651 payload = {
@@ -74,17 +59,18 @@ def _post_action(self, action, signature, nonce):
7459
7560 def _slippage_price (
7661 self ,
77- coin : str ,
62+ name : str ,
7863 is_buy : bool ,
7964 slippage : float ,
8065 px : Optional [float ] = None ,
8166 ) -> float :
67+ coin = self .info .name_to_coin [name ]
8268 if not px :
8369 # Get midprice
8470 px = float (self .info .all_mids ()[coin ])
8571
8672 # spot assets start at 10000
87- is_spot = self .coin_to_asset [coin ] >= 10_000
73+ is_spot = self .info . coin_to_asset [coin ] >= 10_000
8874
8975 # Calculate Slippage
9076 px *= (1 + slippage ) if is_buy else (1 - slippage )
@@ -93,7 +79,7 @@ def _slippage_price(
9379
9480 def order (
9581 self ,
96- coin : str ,
82+ name : str ,
9783 is_buy : bool ,
9884 sz : float ,
9985 limit_px : float ,
@@ -102,7 +88,7 @@ def order(
10288 cloid : Optional [Cloid ] = None ,
10389 ) -> Any :
10490 order : OrderRequest = {
105- "coin" : coin ,
91+ "coin" : name ,
10692 "is_buy" : is_buy ,
10793 "sz" : sz ,
10894 "limit_px" : limit_px ,
@@ -115,7 +101,7 @@ def order(
115101
116102 def bulk_orders (self , order_requests : List [OrderRequest ]) -> Any :
117103 order_wires : List [OrderWire ] = [
118- order_request_to_order_wire (order , self .coin_to_asset [ order ["coin" ]] ) for order in order_requests
104+ order_request_to_order_wire (order , self .info . name_to_asset ( order ["coin" ]) ) for order in order_requests
119105 ]
120106 timestamp = get_timestamp_ms ()
121107
@@ -138,7 +124,7 @@ def bulk_orders(self, order_requests: List[OrderRequest]) -> Any:
138124 def modify_order (
139125 self ,
140126 oid : OidOrCloid ,
141- coin : str ,
127+ name : str ,
142128 is_buy : bool ,
143129 sz : float ,
144130 limit_px : float ,
@@ -149,7 +135,7 @@ def modify_order(
149135 modify : ModifyRequest = {
150136 "oid" : oid ,
151137 "order" : {
152- "coin" : coin ,
138+ "coin" : name ,
153139 "is_buy" : is_buy ,
154140 "sz" : sz ,
155141 "limit_px" : limit_px ,
@@ -165,7 +151,7 @@ def bulk_modify_orders_new(self, modify_requests: List[ModifyRequest]) -> Any:
165151 modify_wires = [
166152 {
167153 "oid" : modify ["oid" ].to_raw () if isinstance (modify ["oid" ], Cloid ) else modify ["oid" ],
168- "order" : order_request_to_order_wire (modify ["order" ], self .coin_to_asset [ modify ["order" ]["coin" ]] ),
154+ "order" : order_request_to_order_wire (modify ["order" ], self .info . name_to_asset ( modify ["order" ]["coin" ]) ),
169155 }
170156 for modify in modify_requests
171157 ]
@@ -191,17 +177,17 @@ def bulk_modify_orders_new(self, modify_requests: List[ModifyRequest]) -> Any:
191177
192178 def market_open (
193179 self ,
194- coin : str ,
180+ name : str ,
195181 is_buy : bool ,
196182 sz : float ,
197183 px : Optional [float ] = None ,
198184 slippage : float = DEFAULT_SLIPPAGE ,
199185 cloid : Optional [Cloid ] = None ,
200186 ) -> Any :
201187 # Get aggressive Market Price
202- px = self ._slippage_price (coin , is_buy , slippage , px )
188+ px = self ._slippage_price (name , is_buy , slippage , px )
203189 # Market Order is an aggressive Limit Order IoC
204- return self .order (coin , is_buy , sz , px , order_type = {"limit" : {"tif" : "Ioc" }}, reduce_only = False , cloid = cloid )
190+ return self .order (name , is_buy , sz , px , order_type = {"limit" : {"tif" : "Ioc" }}, reduce_only = False , cloid = cloid )
205191
206192 def market_close (
207193 self ,
@@ -230,19 +216,19 @@ def market_close(
230216 # Market Order is an aggressive Limit Order IoC
231217 return self .order (coin , is_buy , sz , px , order_type = {"limit" : {"tif" : "Ioc" }}, reduce_only = True , cloid = cloid )
232218
233- def cancel (self , coin : str , oid : int ) -> Any :
234- return self .bulk_cancel ([{"coin" : coin , "oid" : oid }])
219+ def cancel (self , name : str , oid : int ) -> Any :
220+ return self .bulk_cancel ([{"coin" : name , "oid" : oid }])
235221
236- def cancel_by_cloid (self , coin : str , cloid : Cloid ) -> Any :
237- return self .bulk_cancel_by_cloid ([{"coin" : coin , "cloid" : cloid }])
222+ def cancel_by_cloid (self , name : str , cloid : Cloid ) -> Any :
223+ return self .bulk_cancel_by_cloid ([{"coin" : name , "cloid" : cloid }])
238224
239225 def bulk_cancel (self , cancel_requests : List [CancelRequest ]) -> Any :
240226 timestamp = get_timestamp_ms ()
241227 cancel_action = {
242228 "type" : "cancel" ,
243229 "cancels" : [
244230 {
245- "a" : self .coin_to_asset [ cancel ["coin" ]] ,
231+ "a" : self .info . name_to_asset ( cancel ["coin" ]) ,
246232 "o" : cancel ["oid" ],
247233 }
248234 for cancel in cancel_requests
@@ -269,7 +255,7 @@ def bulk_cancel_by_cloid(self, cancel_requests: List[CancelByCloidRequest]) -> A
269255 "type" : "cancelByCloid" ,
270256 "cancels" : [
271257 {
272- "asset" : self .coin_to_asset [ cancel ["coin" ]] ,
258+ "asset" : self .info . name_to_asset ( cancel ["coin" ]) ,
273259 "cloid" : cancel ["cloid" ].to_raw (),
274260 }
275261 for cancel in cancel_requests
@@ -316,12 +302,11 @@ def schedule_cancel(self, time: Optional[int]) -> Any:
316302 timestamp ,
317303 )
318304
319- def update_leverage (self , leverage : int , coin : str , is_cross : bool = True ) -> Any :
305+ def update_leverage (self , leverage : int , name : str , is_cross : bool = True ) -> Any :
320306 timestamp = get_timestamp_ms ()
321- asset = self .coin_to_asset [coin ]
322307 update_leverage_action = {
323308 "type" : "updateLeverage" ,
324- "asset" : asset ,
309+ "asset" : self . info . name_to_asset ( name ) ,
325310 "isCross" : is_cross ,
326311 "leverage" : leverage ,
327312 }
@@ -338,13 +323,12 @@ def update_leverage(self, leverage: int, coin: str, is_cross: bool = True) -> An
338323 timestamp ,
339324 )
340325
341- def update_isolated_margin (self , amount : float , coin : str ) -> Any :
326+ def update_isolated_margin (self , amount : float , name : str ) -> Any :
342327 timestamp = get_timestamp_ms ()
343- asset = self .coin_to_asset [coin ]
344328 amount = float_to_usd_int (amount )
345329 update_isolated_margin_action = {
346330 "type" : "updateIsolatedMargin" ,
347- "asset" : asset ,
331+ "asset" : self . info . name_to_asset ( name ) ,
348332 "isBuy" : True ,
349333 "ntli" : amount ,
350334 }
0 commit comments