|
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