@meteora-ag/dlmm 1.0.47-rc.0 → 1.0.47-rc.2
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.d.ts +2 -2
- package/dist/index.js +169 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +169 -66
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4739,7 +4739,7 @@ interface StrategyParameters {
|
|
|
4739
4739
|
maxBinId: number;
|
|
4740
4740
|
minBinId: number;
|
|
4741
4741
|
strategyType: StrategyType;
|
|
4742
|
-
|
|
4742
|
+
singleSidedX?: boolean;
|
|
4743
4743
|
}
|
|
4744
4744
|
interface TQuoteCreatePositionParams {
|
|
4745
4745
|
strategy: StrategyParameters;
|
|
@@ -5464,7 +5464,7 @@ declare function toAmountsBothSideByStrategy(activeId: number, binStep: number,
|
|
|
5464
5464
|
}[];
|
|
5465
5465
|
declare function autoFillYByStrategy(activeId: number, binStep: number, amountX: BN, amountXInActiveBin: BN, amountYInActiveBin: BN, minBinId: number, maxBinId: number, strategyType: StrategyType): BN;
|
|
5466
5466
|
declare function autoFillXByStrategy(activeId: number, binStep: number, amountY: BN, amountXInActiveBin: BN, amountYInActiveBin: BN, minBinId: number, maxBinId: number, strategyType: StrategyType): BN;
|
|
5467
|
-
declare function toStrategyParameters({ maxBinId, minBinId, strategyType,
|
|
5467
|
+
declare function toStrategyParameters({ maxBinId, minBinId, strategyType, singleSidedX, }: StrategyParameters): {
|
|
5468
5468
|
minBinId: number;
|
|
5469
5469
|
maxBinId: number;
|
|
5470
5470
|
strategyType: {
|
package/dist/index.js
CHANGED
|
@@ -6293,6 +6293,7 @@ function toAmountsOneSideByStrategy(activeId, binStep, minBinId, maxBinId, amoun
|
|
|
6293
6293
|
}
|
|
6294
6294
|
}
|
|
6295
6295
|
function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amountX, amountY, amountXInActiveBin, amountYInActiveBin, strategyType) {
|
|
6296
|
+
const isSingleSideX = amountY.isZero();
|
|
6296
6297
|
switch (strategyType) {
|
|
6297
6298
|
case 0 /* SpotOneSide */:
|
|
6298
6299
|
case 1 /* CurveOneSide */:
|
|
@@ -6301,7 +6302,7 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6301
6302
|
}
|
|
6302
6303
|
case 3 /* SpotImBalanced */: {
|
|
6303
6304
|
if (activeId < minBinId || activeId > maxBinId) {
|
|
6304
|
-
|
|
6305
|
+
const weights = toWeightSpotBalanced(minBinId, maxBinId);
|
|
6305
6306
|
return toAmountBothSide(
|
|
6306
6307
|
activeId,
|
|
6307
6308
|
binStep,
|
|
@@ -6312,27 +6313,61 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6312
6313
|
weights
|
|
6313
6314
|
);
|
|
6314
6315
|
}
|
|
6315
|
-
|
|
6316
|
-
if (
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
|
|
6324
|
-
|
|
6316
|
+
const amountsInBin = [];
|
|
6317
|
+
if (!isSingleSideX) {
|
|
6318
|
+
if (minBinId <= activeId) {
|
|
6319
|
+
const weights = toWeightSpotBalanced(minBinId, activeId);
|
|
6320
|
+
const amounts = toAmountBidSide(activeId, amountY, weights);
|
|
6321
|
+
for (let bin of amounts) {
|
|
6322
|
+
amountsInBin.push({
|
|
6323
|
+
binId: bin.binId,
|
|
6324
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6325
|
+
amountY: bin.amount
|
|
6326
|
+
});
|
|
6327
|
+
}
|
|
6325
6328
|
}
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
}
|
|
6329
|
+
if (activeId < maxBinId) {
|
|
6330
|
+
const weights = toWeightSpotBalanced(activeId + 1, maxBinId);
|
|
6331
|
+
const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
|
|
6332
|
+
for (let bin of amounts) {
|
|
6333
|
+
amountsInBin.push({
|
|
6334
|
+
binId: bin.binId,
|
|
6335
|
+
amountX: bin.amount,
|
|
6336
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6337
|
+
});
|
|
6338
|
+
}
|
|
6339
|
+
}
|
|
6340
|
+
} else {
|
|
6341
|
+
if (minBinId < activeId) {
|
|
6342
|
+
const weights = toWeightSpotBalanced(minBinId, activeId - 1);
|
|
6343
|
+
const amountsIntoBidSide = toAmountBidSide(
|
|
6344
|
+
activeId,
|
|
6345
|
+
amountY,
|
|
6346
|
+
weights
|
|
6347
|
+
);
|
|
6348
|
+
for (let bin of amountsIntoBidSide) {
|
|
6349
|
+
amountsInBin.push({
|
|
6350
|
+
binId: bin.binId,
|
|
6351
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6352
|
+
amountY: bin.amount
|
|
6353
|
+
});
|
|
6354
|
+
}
|
|
6355
|
+
}
|
|
6356
|
+
if (activeId <= maxBinId) {
|
|
6357
|
+
const weights = toWeightSpotBalanced(activeId, maxBinId);
|
|
6358
|
+
const amountsIntoAskSide = toAmountAskSide(
|
|
6359
|
+
activeId,
|
|
6360
|
+
binStep,
|
|
6361
|
+
amountX,
|
|
6362
|
+
weights
|
|
6363
|
+
);
|
|
6364
|
+
for (let bin of amountsIntoAskSide) {
|
|
6365
|
+
amountsInBin.push({
|
|
6366
|
+
binId: bin.binId,
|
|
6367
|
+
amountX: bin.amount,
|
|
6368
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6369
|
+
});
|
|
6370
|
+
}
|
|
6336
6371
|
}
|
|
6337
6372
|
}
|
|
6338
6373
|
return amountsInBin;
|
|
@@ -6351,7 +6386,7 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6351
6386
|
);
|
|
6352
6387
|
}
|
|
6353
6388
|
if (activeId > maxBinId) {
|
|
6354
|
-
|
|
6389
|
+
const weights = toWeightAscendingOrder(minBinId, maxBinId);
|
|
6355
6390
|
return toAmountBothSide(
|
|
6356
6391
|
activeId,
|
|
6357
6392
|
binStep,
|
|
@@ -6362,34 +6397,68 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6362
6397
|
weights
|
|
6363
6398
|
);
|
|
6364
6399
|
}
|
|
6365
|
-
|
|
6366
|
-
if (
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6400
|
+
const amountsInBin = [];
|
|
6401
|
+
if (!isSingleSideX) {
|
|
6402
|
+
if (minBinId <= activeId) {
|
|
6403
|
+
const weights = toWeightAscendingOrder(minBinId, activeId);
|
|
6404
|
+
const amounts = toAmountBidSide(activeId, amountY, weights);
|
|
6405
|
+
for (let bin of amounts) {
|
|
6406
|
+
amountsInBin.push({
|
|
6407
|
+
binId: bin.binId,
|
|
6408
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6409
|
+
amountY: bin.amount
|
|
6410
|
+
});
|
|
6411
|
+
}
|
|
6375
6412
|
}
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
}
|
|
6413
|
+
if (activeId < maxBinId) {
|
|
6414
|
+
const weights = toWeightDecendingOrder(activeId + 1, maxBinId);
|
|
6415
|
+
const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
|
|
6416
|
+
for (let bin of amounts) {
|
|
6417
|
+
amountsInBin.push({
|
|
6418
|
+
binId: bin.binId,
|
|
6419
|
+
amountX: bin.amount,
|
|
6420
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6421
|
+
});
|
|
6422
|
+
}
|
|
6423
|
+
}
|
|
6424
|
+
} else {
|
|
6425
|
+
if (minBinId < activeId) {
|
|
6426
|
+
const weights = toWeightAscendingOrder(minBinId, activeId - 1);
|
|
6427
|
+
const amountsIntoBidSide = toAmountBidSide(
|
|
6428
|
+
activeId,
|
|
6429
|
+
amountY,
|
|
6430
|
+
weights
|
|
6431
|
+
);
|
|
6432
|
+
for (let bin of amountsIntoBidSide) {
|
|
6433
|
+
amountsInBin.push({
|
|
6434
|
+
binId: bin.binId,
|
|
6435
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6436
|
+
amountY: bin.amount
|
|
6437
|
+
});
|
|
6438
|
+
}
|
|
6439
|
+
}
|
|
6440
|
+
if (activeId <= maxBinId) {
|
|
6441
|
+
const weights = toWeightDecendingOrder(activeId, maxBinId);
|
|
6442
|
+
const amountsIntoAskSide = toAmountAskSide(
|
|
6443
|
+
activeId,
|
|
6444
|
+
binStep,
|
|
6445
|
+
amountX,
|
|
6446
|
+
weights
|
|
6447
|
+
);
|
|
6448
|
+
for (let bin of amountsIntoAskSide) {
|
|
6449
|
+
amountsInBin.push({
|
|
6450
|
+
binId: bin.binId,
|
|
6451
|
+
amountX: bin.amount,
|
|
6452
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6453
|
+
});
|
|
6454
|
+
}
|
|
6386
6455
|
}
|
|
6387
6456
|
}
|
|
6388
6457
|
return amountsInBin;
|
|
6389
6458
|
}
|
|
6390
6459
|
case 5 /* BidAskImBalanced */: {
|
|
6391
6460
|
if (activeId < minBinId) {
|
|
6392
|
-
|
|
6461
|
+
const weights = toWeightAscendingOrder(minBinId, maxBinId);
|
|
6393
6462
|
return toAmountBothSide(
|
|
6394
6463
|
activeId,
|
|
6395
6464
|
binStep,
|
|
@@ -6401,7 +6470,7 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6401
6470
|
);
|
|
6402
6471
|
}
|
|
6403
6472
|
if (activeId > maxBinId) {
|
|
6404
|
-
|
|
6473
|
+
const weights = toWeightDecendingOrder(minBinId, maxBinId);
|
|
6405
6474
|
return toAmountBothSide(
|
|
6406
6475
|
activeId,
|
|
6407
6476
|
binStep,
|
|
@@ -6412,27 +6481,61 @@ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amou
|
|
|
6412
6481
|
weights
|
|
6413
6482
|
);
|
|
6414
6483
|
}
|
|
6415
|
-
|
|
6416
|
-
if (
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6423
|
-
|
|
6424
|
-
|
|
6484
|
+
const amountsInBin = [];
|
|
6485
|
+
if (!isSingleSideX) {
|
|
6486
|
+
if (minBinId <= activeId) {
|
|
6487
|
+
const weights = toWeightDecendingOrder(minBinId, activeId);
|
|
6488
|
+
const amounts = toAmountBidSide(activeId, amountY, weights);
|
|
6489
|
+
for (let bin of amounts) {
|
|
6490
|
+
amountsInBin.push({
|
|
6491
|
+
binId: bin.binId,
|
|
6492
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6493
|
+
amountY: bin.amount
|
|
6494
|
+
});
|
|
6495
|
+
}
|
|
6425
6496
|
}
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
|
|
6435
|
-
}
|
|
6497
|
+
if (activeId < maxBinId) {
|
|
6498
|
+
const weights = toWeightAscendingOrder(activeId + 1, maxBinId);
|
|
6499
|
+
const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
|
|
6500
|
+
for (let bin of amounts) {
|
|
6501
|
+
amountsInBin.push({
|
|
6502
|
+
binId: bin.binId,
|
|
6503
|
+
amountX: bin.amount,
|
|
6504
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6505
|
+
});
|
|
6506
|
+
}
|
|
6507
|
+
}
|
|
6508
|
+
} else {
|
|
6509
|
+
if (minBinId < activeId) {
|
|
6510
|
+
const weights = toWeightDecendingOrder(minBinId, activeId - 1);
|
|
6511
|
+
const amountsIntoBidSide = toAmountBidSide(
|
|
6512
|
+
activeId,
|
|
6513
|
+
amountY,
|
|
6514
|
+
weights
|
|
6515
|
+
);
|
|
6516
|
+
for (let bin of amountsIntoBidSide) {
|
|
6517
|
+
amountsInBin.push({
|
|
6518
|
+
binId: bin.binId,
|
|
6519
|
+
amountX: new (0, _anchor.BN)(0),
|
|
6520
|
+
amountY: bin.amount
|
|
6521
|
+
});
|
|
6522
|
+
}
|
|
6523
|
+
}
|
|
6524
|
+
if (activeId <= maxBinId) {
|
|
6525
|
+
const weights = toWeightAscendingOrder(activeId, maxBinId);
|
|
6526
|
+
const amountsIntoAskSide = toAmountAskSide(
|
|
6527
|
+
activeId,
|
|
6528
|
+
binStep,
|
|
6529
|
+
amountX,
|
|
6530
|
+
weights
|
|
6531
|
+
);
|
|
6532
|
+
for (let bin of amountsIntoAskSide) {
|
|
6533
|
+
amountsInBin.push({
|
|
6534
|
+
binId: bin.binId,
|
|
6535
|
+
amountX: bin.amount,
|
|
6536
|
+
amountY: new (0, _anchor.BN)(0)
|
|
6537
|
+
});
|
|
6538
|
+
}
|
|
6436
6539
|
}
|
|
6437
6540
|
}
|
|
6438
6541
|
return amountsInBin;
|
|
@@ -6569,9 +6672,9 @@ function toStrategyParameters({
|
|
|
6569
6672
|
maxBinId,
|
|
6570
6673
|
minBinId,
|
|
6571
6674
|
strategyType,
|
|
6572
|
-
|
|
6675
|
+
singleSidedX
|
|
6573
6676
|
}) {
|
|
6574
|
-
const parameters = [
|
|
6677
|
+
const parameters = [singleSidedX ? 1 : 0, ...new Array(63).fill(0)];
|
|
6575
6678
|
switch (strategyType) {
|
|
6576
6679
|
case 0 /* SpotOneSide */: {
|
|
6577
6680
|
return {
|