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