1818
1919
2020class Exchange (API ):
21- def __init__ (self , wallet : LocalAccount , base_url : Optional [str ] = None , meta : Optional [Meta ] = None ):
21+ def __init__ (
22+ self ,
23+ wallet : LocalAccount ,
24+ base_url : Optional [str ] = None ,
25+ meta : Optional [Meta ] = None ,
26+ vault_address : Optional [str ] = None ,
27+ ):
2228 super ().__init__ (base_url )
2329 self .wallet = wallet
30+ self .vault_address = vault_address
2431 if meta is None :
2532 info = Info (base_url , skip_ws = True )
2633 self .meta = info .meta ()
@@ -48,39 +55,32 @@ def order(
4855 self .wallet ,
4956 ["(uint32,bool,uint64,uint64,bool,uint8,uint64)[]" , "uint8" ],
5057 [[order_spec_preprocessing (order_spec )], order_grouping_to_number (grouping )],
51- ZERO_ADDRESS ,
58+ ZERO_ADDRESS if self . vault_address is None else self . vault_address ,
5259 timestamp ,
5360 )
54- logging .debug (
55- {
56- "action" : {
57- "type" : "order" ,
58- "grouping" : grouping ,
59- "orders" : [order_spec_to_order_wire (order_spec )],
60- },
61- "nonce" : timestamp ,
62- "signature" : signature ,
63- "vaultAddress" : None ,
64- }
65- )
66- return self .post (
67- "/exchange" ,
68- {
69- "action" : {
70- "type" : "order" ,
71- "grouping" : grouping ,
72- "orders" : [order_spec_to_order_wire (order_spec )],
73- },
74- "nonce" : timestamp ,
75- "signature" : signature ,
76- "vaultAddress" : None ,
61+ payload = {
62+ "action" : {
63+ "type" : "order" ,
64+ "grouping" : grouping ,
65+ "orders" : [order_spec_to_order_wire (order_spec )],
7766 },
78- )
67+ "nonce" : timestamp ,
68+ "signature" : signature ,
69+ "vaultAddress" : self .vault_address ,
70+ }
71+ logging .debug (payload )
72+ return self .post ("/exchange" , payload )
7973
8074 def cancel (self , coin : str , oid : int ) -> Any :
8175 timestamp = get_timestamp_ms ()
8276 asset = self .coin_to_asset [coin ]
83- signature = sign_l1_action (self .wallet , ["(uint32,uint64)[]" ], [[(asset , oid )]], ZERO_ADDRESS , timestamp )
77+ signature = sign_l1_action (
78+ self .wallet ,
79+ ["(uint32,uint64)[]" ],
80+ [[(asset , oid )]],
81+ ZERO_ADDRESS if self .vault_address is None else self .vault_address ,
82+ timestamp ,
83+ )
8484 return self .post (
8585 "/exchange" ,
8686 {
@@ -95,6 +95,6 @@ def cancel(self, coin: str, oid: int) -> Any:
9595 },
9696 "nonce" : timestamp ,
9797 "signature" : signature ,
98- "vaultAddress" : None ,
98+ "vaultAddress" : self . vault_address ,
9999 },
100100 )
0 commit comments