|
1 | 1 | package hyperliquid |
2 | 2 |
|
3 | 3 | import ( |
| 4 | +"log" |
4 | 5 | "math" |
5 | 6 | "os" |
6 | 7 | "testing" |
@@ -200,3 +201,59 @@ func TestExchageAPI_TestMarketOrderSpot(testing *testing.T) { |
200 | 201 | testing.Errorf("res.Response.Data.Statuses[0].Filled.AvgPx = %v", avgPrice) |
201 | 202 | } |
202 | 203 | } |
| 204 | + |
| 205 | +func TestExchangeAPI_TestModifyOrder(t *testing.T) { |
| 206 | +exchangeAPI := GetExchangeAPI() |
| 207 | +size := 0.005 |
| 208 | +coin := "ETH" |
| 209 | +px := 2000.0 |
| 210 | +res, err := exchangeAPI.LimitOrder(TifGtc, coin, size, px, false) |
| 211 | +if err != nil { |
| 212 | +t.Errorf("MakeLimit() error = %v", err) |
| 213 | +} |
| 214 | +t.Logf("MakeLimit() = %v", res) |
| 215 | +openOrders, err := exchangeAPI.infoAPI.GetOpenOrders(exchangeAPI.AccountAddress()) |
| 216 | +if err != nil { |
| 217 | +t.Errorf("GetAccountOpenOrders() error = %v", err) |
| 218 | +} |
| 219 | +t.Logf("GetAccountOpenOrders() = %v", openOrders) |
| 220 | +orderOpened := false |
| 221 | +for _, order := range *openOrders { |
| 222 | +if order.Coin == coin && order.Sz == size && order.LimitPx == px { |
| 223 | +orderOpened = true |
| 224 | +break |
| 225 | +} |
| 226 | +} |
| 227 | +log.Printf("Order ID: %v", res.Response.Data.Statuses[0].Resting.OrderId) |
| 228 | +if !orderOpened { |
| 229 | +t.Errorf("Order not found: %+v", openOrders) |
| 230 | +} |
| 231 | +time.Sleep(5 * time.Second) // wait to execute order |
| 232 | +// modify order |
| 233 | +newPx := 2500.0 |
| 234 | +orderType := OrderType{ |
| 235 | +Limit: &LimitOrderType{ |
| 236 | +Tif: TifGtc, |
| 237 | +}, |
| 238 | +} |
| 239 | +modifyOrderRequest := ModifyOrderRequest{ |
| 240 | +OrderId: res.Response.Data.Statuses[0].Resting.OrderId, |
| 241 | +Coin: coin, |
| 242 | +Sz: size, |
| 243 | +LimitPx: newPx, |
| 244 | +OrderType: orderType, |
| 245 | +IsBuy: true, |
| 246 | +ReduceOnly: false, |
| 247 | +} |
| 248 | +modifyRes, err := exchangeAPI.BulkModifyOrders([]ModifyOrderRequest{modifyOrderRequest}, false) |
| 249 | +if err != nil { |
| 250 | +t.Errorf("ModifyOrder() error = %v", err) |
| 251 | +} |
| 252 | +t.Logf("ModifyOrder() = %+v", modifyRes) |
| 253 | +time.Sleep(5 * time.Second) // wait to execute order |
| 254 | +cancelRes, err := exchangeAPI.CancelAllOrders() |
| 255 | +if err != nil { |
| 256 | +t.Errorf("CancelAllOrders() error = %v", err) |
| 257 | +} |
| 258 | +t.Logf("CancelAllOrders() = %v", cancelRes) |
| 259 | +} |
0 commit comments