@gbozee/ultimate 0.0.2-122 → 0.0.2-123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +19 -6
- package/dist/index.d.ts +6 -4
- package/dist/index.js +19 -6
- package/dist/mcp-server.cjs +19 -6
- package/dist/mcp-server.js +19 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -51971,7 +51971,7 @@ class AppDatabase {
|
|
|
51971
51971
|
}
|
|
51972
51972
|
}
|
|
51973
51973
|
async cancelLimitOrders(payload) {
|
|
51974
|
-
const { symbol, kind, account, cancelExchangeOrders } = payload;
|
|
51974
|
+
const { symbol, kind, account, cancelExchangeOrders, raw } = payload;
|
|
51975
51975
|
const side = kind === "long" ? "buy" : "sell";
|
|
51976
51976
|
const orders = await this.pb.collection("orders").getFullList({
|
|
51977
51977
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop = 0`
|
|
@@ -51981,6 +51981,9 @@ class AppDatabase {
|
|
|
51981
51981
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
|
|
51982
51982
|
});
|
|
51983
51983
|
const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : parseInt(o.order_id, 10));
|
|
51984
|
+
if (raw) {
|
|
51985
|
+
return exchange_order_ids;
|
|
51986
|
+
}
|
|
51984
51987
|
try {
|
|
51985
51988
|
console.log(`Attempting to cancel ${exchange_order_ids.length} orders on ${account.exchange} for ${account.owner}...`);
|
|
51986
51989
|
const cancel_result = await cancelExchangeOrders({
|
|
@@ -56279,6 +56282,7 @@ async function cancelOrdersParallel(payload) {
|
|
|
56279
56282
|
|
|
56280
56283
|
// src/exchanges/bybit.ts
|
|
56281
56284
|
var import_bybit_api = __toESM(require_lib3());
|
|
56285
|
+
var import_p_limit2 = __toESM(require_p_limit());
|
|
56282
56286
|
async function initClient2(credentials, options) {
|
|
56283
56287
|
const { proxyAgent } = options;
|
|
56284
56288
|
try {
|
|
@@ -56385,14 +56389,22 @@ async function getPositionInfo2(client, symbol) {
|
|
|
56385
56389
|
const short = result.find((x) => x.side.toLowerCase() === "sell");
|
|
56386
56390
|
return { long, short };
|
|
56387
56391
|
}
|
|
56392
|
+
var ORDERS_PER_SECONDS = 10;
|
|
56393
|
+
var BATCH_SIZE2 = 10;
|
|
56388
56394
|
async function cancelOrders2(payload) {
|
|
56389
56395
|
const client = payload.custom_client;
|
|
56390
56396
|
const results = [];
|
|
56391
|
-
|
|
56392
|
-
|
|
56393
|
-
|
|
56397
|
+
const batches = [];
|
|
56398
|
+
for (let i2 = 0;i2 < payload.orders.length; i2 += BATCH_SIZE2) {
|
|
56399
|
+
batches.push(payload.orders.slice(i2, i2 + BATCH_SIZE2));
|
|
56400
|
+
}
|
|
56401
|
+
const limit = import_p_limit2.default(ORDERS_PER_SECONDS);
|
|
56402
|
+
for (let i2 = 0;i2 < batches.length; i2++) {
|
|
56403
|
+
const batch2 = batches[i2];
|
|
56404
|
+
let rr = await limit(async () => {
|
|
56405
|
+
return await client.batchCancelOrders("linear", batch2.map((x) => ({ orderId: x.orderId, symbol: payload.symbol })));
|
|
56406
|
+
});
|
|
56394
56407
|
results.push(rr);
|
|
56395
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
56396
56408
|
}
|
|
56397
56409
|
return results;
|
|
56398
56410
|
}
|
|
@@ -57808,7 +57820,7 @@ class ExchangeAccount {
|
|
|
57808
57820
|
}
|
|
57809
57821
|
}
|
|
57810
57822
|
async cancelOrders(payload) {
|
|
57811
|
-
const { symbol, kind, price: _price, all, stop, limit } = payload;
|
|
57823
|
+
const { symbol, kind, price: _price, all, stop, limit, raw } = payload;
|
|
57812
57824
|
let price = _price || 0;
|
|
57813
57825
|
await this.syncAccount({
|
|
57814
57826
|
symbol,
|
|
@@ -57817,6 +57829,7 @@ class ExchangeAccount {
|
|
|
57817
57829
|
});
|
|
57818
57830
|
if (limit) {
|
|
57819
57831
|
return await this.app_db.cancelLimitOrders({
|
|
57832
|
+
raw,
|
|
57820
57833
|
symbol,
|
|
57821
57834
|
kind,
|
|
57822
57835
|
account: this.instance,
|
package/dist/index.d.ts
CHANGED
|
@@ -656,11 +656,12 @@ export declare class AppDatabase {
|
|
|
656
656
|
symbol: string;
|
|
657
657
|
kind: "long" | "short";
|
|
658
658
|
account: ExchangeType;
|
|
659
|
+
raw?: boolean;
|
|
659
660
|
cancelExchangeOrders: (payload: {
|
|
660
661
|
symbol: string;
|
|
661
662
|
orders: number[];
|
|
662
663
|
}) => Promise<any>;
|
|
663
|
-
}): Promise<
|
|
664
|
+
}): Promise<any[]>;
|
|
664
665
|
cancelOrders(payload: {
|
|
665
666
|
cancelExchangeOrders: (payload: {
|
|
666
667
|
symbol: string;
|
|
@@ -1516,7 +1517,7 @@ declare class ExchangePosition {
|
|
|
1516
1517
|
cancelOrders(payload: {
|
|
1517
1518
|
limit?: boolean;
|
|
1518
1519
|
price?: number;
|
|
1519
|
-
}): Promise<
|
|
1520
|
+
}): Promise<any[] | {
|
|
1520
1521
|
success: boolean;
|
|
1521
1522
|
message: string;
|
|
1522
1523
|
exchange_result?: undefined;
|
|
@@ -1710,7 +1711,8 @@ declare class ExchangeAccount$1 {
|
|
|
1710
1711
|
all?: boolean;
|
|
1711
1712
|
stop?: boolean;
|
|
1712
1713
|
limit?: boolean;
|
|
1713
|
-
|
|
1714
|
+
raw?: boolean;
|
|
1715
|
+
}): Promise<any[] | {
|
|
1714
1716
|
success: boolean;
|
|
1715
1717
|
message: string;
|
|
1716
1718
|
exchange_result?: undefined;
|
|
@@ -2362,7 +2364,7 @@ declare class App {
|
|
|
2362
2364
|
price?: number;
|
|
2363
2365
|
all?: boolean;
|
|
2364
2366
|
stop?: boolean;
|
|
2365
|
-
}): Promise<
|
|
2367
|
+
}): Promise<any[] | {
|
|
2366
2368
|
success: boolean;
|
|
2367
2369
|
message: string;
|
|
2368
2370
|
exchange_result?: undefined;
|
package/dist/index.js
CHANGED
|
@@ -51921,7 +51921,7 @@ class AppDatabase {
|
|
|
51921
51921
|
}
|
|
51922
51922
|
}
|
|
51923
51923
|
async cancelLimitOrders(payload) {
|
|
51924
|
-
const { symbol, kind, account, cancelExchangeOrders } = payload;
|
|
51924
|
+
const { symbol, kind, account, cancelExchangeOrders, raw } = payload;
|
|
51925
51925
|
const side = kind === "long" ? "buy" : "sell";
|
|
51926
51926
|
const orders = await this.pb.collection("orders").getFullList({
|
|
51927
51927
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop = 0`
|
|
@@ -51931,6 +51931,9 @@ class AppDatabase {
|
|
|
51931
51931
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
|
|
51932
51932
|
});
|
|
51933
51933
|
const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : parseInt(o.order_id, 10));
|
|
51934
|
+
if (raw) {
|
|
51935
|
+
return exchange_order_ids;
|
|
51936
|
+
}
|
|
51934
51937
|
try {
|
|
51935
51938
|
console.log(`Attempting to cancel ${exchange_order_ids.length} orders on ${account.exchange} for ${account.owner}...`);
|
|
51936
51939
|
const cancel_result = await cancelExchangeOrders({
|
|
@@ -56229,6 +56232,7 @@ async function cancelOrdersParallel(payload) {
|
|
|
56229
56232
|
|
|
56230
56233
|
// src/exchanges/bybit.ts
|
|
56231
56234
|
var import_bybit_api = __toESM(require_lib3(), 1);
|
|
56235
|
+
var import_p_limit2 = __toESM(require_p_limit(), 1);
|
|
56232
56236
|
async function initClient2(credentials, options) {
|
|
56233
56237
|
const { proxyAgent } = options;
|
|
56234
56238
|
try {
|
|
@@ -56335,14 +56339,22 @@ async function getPositionInfo2(client, symbol) {
|
|
|
56335
56339
|
const short = result.find((x) => x.side.toLowerCase() === "sell");
|
|
56336
56340
|
return { long, short };
|
|
56337
56341
|
}
|
|
56342
|
+
var ORDERS_PER_SECONDS = 10;
|
|
56343
|
+
var BATCH_SIZE2 = 10;
|
|
56338
56344
|
async function cancelOrders2(payload) {
|
|
56339
56345
|
const client = payload.custom_client;
|
|
56340
56346
|
const results = [];
|
|
56341
|
-
|
|
56342
|
-
|
|
56343
|
-
|
|
56347
|
+
const batches = [];
|
|
56348
|
+
for (let i2 = 0;i2 < payload.orders.length; i2 += BATCH_SIZE2) {
|
|
56349
|
+
batches.push(payload.orders.slice(i2, i2 + BATCH_SIZE2));
|
|
56350
|
+
}
|
|
56351
|
+
const limit = import_p_limit2.default(ORDERS_PER_SECONDS);
|
|
56352
|
+
for (let i2 = 0;i2 < batches.length; i2++) {
|
|
56353
|
+
const batch2 = batches[i2];
|
|
56354
|
+
let rr = await limit(async () => {
|
|
56355
|
+
return await client.batchCancelOrders("linear", batch2.map((x) => ({ orderId: x.orderId, symbol: payload.symbol })));
|
|
56356
|
+
});
|
|
56344
56357
|
results.push(rr);
|
|
56345
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
56346
56358
|
}
|
|
56347
56359
|
return results;
|
|
56348
56360
|
}
|
|
@@ -57758,7 +57770,7 @@ class ExchangeAccount {
|
|
|
57758
57770
|
}
|
|
57759
57771
|
}
|
|
57760
57772
|
async cancelOrders(payload) {
|
|
57761
|
-
const { symbol, kind, price: _price, all, stop, limit } = payload;
|
|
57773
|
+
const { symbol, kind, price: _price, all, stop, limit, raw } = payload;
|
|
57762
57774
|
let price = _price || 0;
|
|
57763
57775
|
await this.syncAccount({
|
|
57764
57776
|
symbol,
|
|
@@ -57767,6 +57779,7 @@ class ExchangeAccount {
|
|
|
57767
57779
|
});
|
|
57768
57780
|
if (limit) {
|
|
57769
57781
|
return await this.app_db.cancelLimitOrders({
|
|
57782
|
+
raw,
|
|
57770
57783
|
symbol,
|
|
57771
57784
|
kind,
|
|
57772
57785
|
account: this.instance,
|
package/dist/mcp-server.cjs
CHANGED
|
@@ -58675,7 +58675,7 @@ class AppDatabase {
|
|
|
58675
58675
|
}
|
|
58676
58676
|
}
|
|
58677
58677
|
async cancelLimitOrders(payload) {
|
|
58678
|
-
const { symbol, kind, account, cancelExchangeOrders } = payload;
|
|
58678
|
+
const { symbol, kind, account, cancelExchangeOrders, raw } = payload;
|
|
58679
58679
|
const side = kind === "long" ? "buy" : "sell";
|
|
58680
58680
|
const orders = await this.pb.collection("orders").getFullList({
|
|
58681
58681
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop = 0`
|
|
@@ -58685,6 +58685,9 @@ class AppDatabase {
|
|
|
58685
58685
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
|
|
58686
58686
|
});
|
|
58687
58687
|
const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : parseInt(o.order_id, 10));
|
|
58688
|
+
if (raw) {
|
|
58689
|
+
return exchange_order_ids;
|
|
58690
|
+
}
|
|
58688
58691
|
try {
|
|
58689
58692
|
console.log(`Attempting to cancel ${exchange_order_ids.length} orders on ${account.exchange} for ${account.owner}...`);
|
|
58690
58693
|
const cancel_result = await cancelExchangeOrders({
|
|
@@ -62957,6 +62960,7 @@ async function cancelOrdersParallel(payload) {
|
|
|
62957
62960
|
|
|
62958
62961
|
// src/exchanges/bybit.ts
|
|
62959
62962
|
var import_bybit_api = __toESM(require_lib3());
|
|
62963
|
+
var import_p_limit2 = __toESM(require_p_limit());
|
|
62960
62964
|
async function initClient2(credentials, options) {
|
|
62961
62965
|
const { proxyAgent } = options;
|
|
62962
62966
|
try {
|
|
@@ -63063,14 +63067,22 @@ async function getPositionInfo2(client, symbol) {
|
|
|
63063
63067
|
const short = result.find((x) => x.side.toLowerCase() === "sell");
|
|
63064
63068
|
return { long, short };
|
|
63065
63069
|
}
|
|
63070
|
+
var ORDERS_PER_SECONDS = 10;
|
|
63071
|
+
var BATCH_SIZE2 = 10;
|
|
63066
63072
|
async function cancelOrders2(payload) {
|
|
63067
63073
|
const client = payload.custom_client;
|
|
63068
63074
|
const results = [];
|
|
63069
|
-
|
|
63070
|
-
|
|
63071
|
-
|
|
63075
|
+
const batches = [];
|
|
63076
|
+
for (let i2 = 0;i2 < payload.orders.length; i2 += BATCH_SIZE2) {
|
|
63077
|
+
batches.push(payload.orders.slice(i2, i2 + BATCH_SIZE2));
|
|
63078
|
+
}
|
|
63079
|
+
const limit = import_p_limit2.default(ORDERS_PER_SECONDS);
|
|
63080
|
+
for (let i2 = 0;i2 < batches.length; i2++) {
|
|
63081
|
+
const batch2 = batches[i2];
|
|
63082
|
+
let rr = await limit(async () => {
|
|
63083
|
+
return await client.batchCancelOrders("linear", batch2.map((x) => ({ orderId: x.orderId, symbol: payload.symbol })));
|
|
63084
|
+
});
|
|
63072
63085
|
results.push(rr);
|
|
63073
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
63074
63086
|
}
|
|
63075
63087
|
return results;
|
|
63076
63088
|
}
|
|
@@ -64486,7 +64498,7 @@ class ExchangeAccount {
|
|
|
64486
64498
|
}
|
|
64487
64499
|
}
|
|
64488
64500
|
async cancelOrders(payload) {
|
|
64489
|
-
const { symbol, kind, price: _price, all, stop, limit } = payload;
|
|
64501
|
+
const { symbol, kind, price: _price, all, stop, limit, raw } = payload;
|
|
64490
64502
|
let price = _price || 0;
|
|
64491
64503
|
await this.syncAccount({
|
|
64492
64504
|
symbol,
|
|
@@ -64495,6 +64507,7 @@ class ExchangeAccount {
|
|
|
64495
64507
|
});
|
|
64496
64508
|
if (limit) {
|
|
64497
64509
|
return await this.app_db.cancelLimitOrders({
|
|
64510
|
+
raw,
|
|
64498
64511
|
symbol,
|
|
64499
64512
|
kind,
|
|
64500
64513
|
account: this.instance,
|
package/dist/mcp-server.js
CHANGED
|
@@ -58652,7 +58652,7 @@ class AppDatabase {
|
|
|
58652
58652
|
}
|
|
58653
58653
|
}
|
|
58654
58654
|
async cancelLimitOrders(payload) {
|
|
58655
|
-
const { symbol, kind, account, cancelExchangeOrders } = payload;
|
|
58655
|
+
const { symbol, kind, account, cancelExchangeOrders, raw } = payload;
|
|
58656
58656
|
const side = kind === "long" ? "buy" : "sell";
|
|
58657
58657
|
const orders = await this.pb.collection("orders").getFullList({
|
|
58658
58658
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${side}" && stop = 0`
|
|
@@ -58662,6 +58662,9 @@ class AppDatabase {
|
|
|
58662
58662
|
filter: `symbol:lower="${symbol.toLowerCase()}" && account.owner:lower="${account.owner.toLowerCase()}" && account.exchange:lower="${account.exchange.toLowerCase()}" && kind="${kind}" && side:lower="${stop_side}" && stop > 0`
|
|
58663
58663
|
});
|
|
58664
58664
|
const exchange_order_ids = orders.concat(existing_stop_orders).map((o) => account.exchange === "bybit" ? o.order_id : parseInt(o.order_id, 10));
|
|
58665
|
+
if (raw) {
|
|
58666
|
+
return exchange_order_ids;
|
|
58667
|
+
}
|
|
58665
58668
|
try {
|
|
58666
58669
|
console.log(`Attempting to cancel ${exchange_order_ids.length} orders on ${account.exchange} for ${account.owner}...`);
|
|
58667
58670
|
const cancel_result = await cancelExchangeOrders({
|
|
@@ -62934,6 +62937,7 @@ async function cancelOrdersParallel(payload) {
|
|
|
62934
62937
|
|
|
62935
62938
|
// src/exchanges/bybit.ts
|
|
62936
62939
|
var import_bybit_api = __toESM(require_lib3(), 1);
|
|
62940
|
+
var import_p_limit2 = __toESM(require_p_limit(), 1);
|
|
62937
62941
|
async function initClient2(credentials, options) {
|
|
62938
62942
|
const { proxyAgent } = options;
|
|
62939
62943
|
try {
|
|
@@ -63040,14 +63044,22 @@ async function getPositionInfo2(client, symbol) {
|
|
|
63040
63044
|
const short = result.find((x) => x.side.toLowerCase() === "sell");
|
|
63041
63045
|
return { long, short };
|
|
63042
63046
|
}
|
|
63047
|
+
var ORDERS_PER_SECONDS = 10;
|
|
63048
|
+
var BATCH_SIZE2 = 10;
|
|
63043
63049
|
async function cancelOrders2(payload) {
|
|
63044
63050
|
const client = payload.custom_client;
|
|
63045
63051
|
const results = [];
|
|
63046
|
-
|
|
63047
|
-
|
|
63048
|
-
|
|
63052
|
+
const batches = [];
|
|
63053
|
+
for (let i2 = 0;i2 < payload.orders.length; i2 += BATCH_SIZE2) {
|
|
63054
|
+
batches.push(payload.orders.slice(i2, i2 + BATCH_SIZE2));
|
|
63055
|
+
}
|
|
63056
|
+
const limit = import_p_limit2.default(ORDERS_PER_SECONDS);
|
|
63057
|
+
for (let i2 = 0;i2 < batches.length; i2++) {
|
|
63058
|
+
const batch2 = batches[i2];
|
|
63059
|
+
let rr = await limit(async () => {
|
|
63060
|
+
return await client.batchCancelOrders("linear", batch2.map((x) => ({ orderId: x.orderId, symbol: payload.symbol })));
|
|
63061
|
+
});
|
|
63049
63062
|
results.push(rr);
|
|
63050
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
63051
63063
|
}
|
|
63052
63064
|
return results;
|
|
63053
63065
|
}
|
|
@@ -64463,7 +64475,7 @@ class ExchangeAccount {
|
|
|
64463
64475
|
}
|
|
64464
64476
|
}
|
|
64465
64477
|
async cancelOrders(payload) {
|
|
64466
|
-
const { symbol, kind, price: _price, all, stop, limit } = payload;
|
|
64478
|
+
const { symbol, kind, price: _price, all, stop, limit, raw } = payload;
|
|
64467
64479
|
let price = _price || 0;
|
|
64468
64480
|
await this.syncAccount({
|
|
64469
64481
|
symbol,
|
|
@@ -64472,6 +64484,7 @@ class ExchangeAccount {
|
|
|
64472
64484
|
});
|
|
64473
64485
|
if (limit) {
|
|
64474
64486
|
return await this.app_db.cancelLimitOrders({
|
|
64487
|
+
raw,
|
|
64475
64488
|
symbol,
|
|
64476
64489
|
kind,
|
|
64477
64490
|
account: this.instance,
|