@hawksightco/hawk-sdk 1.3.239 → 1.3.240
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.
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as web3 from '@solana/web3.js';
|
|
2
|
+
import BN from 'bn.js';
|
|
2
3
|
import { MeteoraClaim, MeteoraClaimAll, MeteoraClose, MeteoraCompound, MeteoraRedeposit, MeteoraRedeposit2, MeteoraCreatePositionAndDeposit, MeteoraCreatePositionAndDepositPda, MeteoraDeposit, MeteoraInitializeBinArrays, MeteoraWithdraw, Register, TxgenParams, InitializeStorageTokenAccount, MeteoraLimitCloseAutomation, MeteoraLimitCloseAutomation2, OrcaOpenPosition, OrcaClosePosition, OrcaDeposit, OrcaWithdraw, OrcaSweepDust, OrcaClaimRewards, TransactionMetadataResponse, MeteoraRebalance2, ClaimTokensFromSTA, RaydiumClosePosition, OpenAutomationIx, RelativeOpenAutomationIx, RaydiumWithdrawAndClosePosition, MeteoraCreatePoolAndPosition, ClaimTokenFromPda, MeteoraInitializeLargePosition, MeteoraDepositLargerPosition, MeteoraWithdrawLargerPosition, MeteoraRebalanceForLargerPosition, LabeledInstruction, TransactionMetadataResponse2, MeteoraRebalanceHybridLiquidity, MeteoraRedepositHybridLiquidity, MeteoraDepositHybridToLargePosition, MeteoraCreatePositionAndDepositHybridToLargePosition, SaberWithdrawAndClosePosition } from '../types';
|
|
3
4
|
import { RaydiumIncreaseLiquidity, RaydiumOpenPosition, RaydiumDecreaseLiquidity } from '../types';
|
|
4
5
|
import { GeneralUtility } from './GeneralUtility';
|
|
@@ -9,6 +10,22 @@ export declare function getHybridChunkOffsets(positionLowerBinId: number, chunkL
|
|
|
9
10
|
chunkUpperOffset: number;
|
|
10
11
|
};
|
|
11
12
|
export declare function batchHybridChunkInstructionGroups(chunkInstructionGroups: LabeledInstruction[][], chunksPerTransaction?: number): LabeledInstruction[][];
|
|
13
|
+
export declare function getLastHybridAmountConsumerIndexes(entries: Array<{
|
|
14
|
+
amountX: BN;
|
|
15
|
+
amountY: BN;
|
|
16
|
+
}>): {
|
|
17
|
+
lastXIndex: number;
|
|
18
|
+
lastYIndex: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function buildHybridDepositAmountParams({ userTokenXAmount, userTokenYAmount, omitXAmount, omitYAmount, }: {
|
|
21
|
+
userTokenXAmount: BN;
|
|
22
|
+
userTokenYAmount: BN;
|
|
23
|
+
omitXAmount?: boolean;
|
|
24
|
+
omitYAmount?: boolean;
|
|
25
|
+
}): {
|
|
26
|
+
userTokenXAmount?: BN;
|
|
27
|
+
userTokenYAmount?: BN;
|
|
28
|
+
};
|
|
12
29
|
export declare class Transactions {
|
|
13
30
|
/**
|
|
14
31
|
* Prohibit creating instance other than getInstance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transactions.d.ts","sourceRoot":"","sources":["../../../src/classes/Transactions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Transactions.d.ts","sourceRoot":"","sources":["../../../src/classes/Transactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
48
48
|
exports.txgen = exports.Transactions = void 0;
|
|
49
49
|
exports.getHybridChunkOffsets = getHybridChunkOffsets;
|
|
50
50
|
exports.batchHybridChunkInstructionGroups = batchHybridChunkInstructionGroups;
|
|
51
|
+
exports.getLastHybridAmountConsumerIndexes = getLastHybridAmountConsumerIndexes;
|
|
52
|
+
exports.buildHybridDepositAmountParams = buildHybridDepositAmountParams;
|
|
51
53
|
const errors_1 = require("../errors");
|
|
52
54
|
const dlmm_1 = require("@meteora-ag/dlmm");
|
|
53
55
|
const web3 = __importStar(require("@solana/web3.js"));
|
|
@@ -119,6 +121,30 @@ function batchHybridChunkInstructionGroups(chunkInstructionGroups, chunksPerTran
|
|
|
119
121
|
}
|
|
120
122
|
return batchedGroups;
|
|
121
123
|
}
|
|
124
|
+
function findLastIndex(items, predicate) {
|
|
125
|
+
for (let i = items.length - 1; i >= 0; i--) {
|
|
126
|
+
if (predicate(items[i], i)) {
|
|
127
|
+
return i;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return -1;
|
|
131
|
+
}
|
|
132
|
+
function getLastHybridAmountConsumerIndexes(entries) {
|
|
133
|
+
return {
|
|
134
|
+
lastXIndex: findLastIndex(entries, entry => entry.amountX.gt(new bn_js_1.default(0))),
|
|
135
|
+
lastYIndex: findLastIndex(entries, entry => entry.amountY.gt(new bn_js_1.default(0))),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function buildHybridDepositAmountParams({ userTokenXAmount, userTokenYAmount, omitXAmount = false, omitYAmount = false, }) {
|
|
139
|
+
const amountParams = {};
|
|
140
|
+
if (!omitXAmount) {
|
|
141
|
+
amountParams.userTokenXAmount = userTokenXAmount;
|
|
142
|
+
}
|
|
143
|
+
if (!omitYAmount) {
|
|
144
|
+
amountParams.userTokenYAmount = userTokenYAmount;
|
|
145
|
+
}
|
|
146
|
+
return amountParams;
|
|
147
|
+
}
|
|
122
148
|
class Transactions {
|
|
123
149
|
/**
|
|
124
150
|
* Prohibit creating instance other than getInstance
|
|
@@ -6205,6 +6231,10 @@ class Transactions {
|
|
|
6205
6231
|
binStep,
|
|
6206
6232
|
activeId: new bn_js_1.default(activeId),
|
|
6207
6233
|
});
|
|
6234
|
+
const { lastXIndex: lastXLayerIndex, lastYIndex: lastYLayerIndex } = getLastHybridAmountConsumerIndexes(strategyResults.map(layer => ({
|
|
6235
|
+
amountX: layer.maxAmountX,
|
|
6236
|
+
amountY: layer.maxAmountY,
|
|
6237
|
+
})));
|
|
6208
6238
|
rebuildTxGroups.push(initExtendIxs);
|
|
6209
6239
|
const layeredDepositIxs = [
|
|
6210
6240
|
...binArrayInitIxsLabeled,
|
|
@@ -6220,24 +6250,16 @@ class Transactions {
|
|
|
6220
6250
|
percentageX: layers[i].x.percentage > 0 ? 100 : 0,
|
|
6221
6251
|
percentageY: layers[i].y.percentage > 0 ? 100 : 0,
|
|
6222
6252
|
};
|
|
6223
|
-
const
|
|
6224
|
-
connection,
|
|
6225
|
-
userWallet: params.userWallet,
|
|
6226
|
-
lbPair,
|
|
6227
|
-
position: params.newPosition,
|
|
6228
|
-
tokenXMint,
|
|
6229
|
-
tokenYMint,
|
|
6230
|
-
tokenXProgram,
|
|
6231
|
-
tokenYProgram,
|
|
6232
|
-
layers: [singleLayer],
|
|
6233
|
-
checkRange: params.checkRange,
|
|
6253
|
+
const amountParams = buildHybridDepositAmountParams({
|
|
6234
6254
|
userTokenXAmount: layerStrategy.maxAmountX,
|
|
6235
6255
|
userTokenYAmount: layerStrategy.maxAmountY,
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
lowerBinId: newLowerBinId,
|
|
6239
|
-
upperBinId: newUpperBinId,
|
|
6256
|
+
omitXAmount: i === lastXLayerIndex,
|
|
6257
|
+
omitYAmount: i === lastYLayerIndex,
|
|
6240
6258
|
});
|
|
6259
|
+
const depositIx = yield this.ix.meteoraDlmm.addLiquidity2Automation(Object.assign(Object.assign({ connection, userWallet: params.userWallet, lbPair, position: params.newPosition, tokenXMint,
|
|
6260
|
+
tokenYMint,
|
|
6261
|
+
tokenXProgram,
|
|
6262
|
+
tokenYProgram, layers: [singleLayer], checkRange: params.checkRange }, amountParams), { remainingAccountsInfo: baseRemainingAccountsInfo, pdaTokenType: types_1.TokenType.ATA, lowerBinId: newLowerBinId, upperBinId: newUpperBinId }));
|
|
6241
6263
|
layeredDepositIxs.push({ label: 'deposit_v2', class: CLASS, instruction: depositIx });
|
|
6242
6264
|
}
|
|
6243
6265
|
if (layeredDepositIxs.length > 0) {
|
|
@@ -6256,8 +6278,6 @@ class Transactions {
|
|
|
6256
6278
|
tokenYProgram,
|
|
6257
6279
|
layers: contractLayers,
|
|
6258
6280
|
checkRange: params.checkRange,
|
|
6259
|
-
userTokenXAmount: effectiveAmountX,
|
|
6260
|
-
userTokenYAmount: effectiveAmountY,
|
|
6261
6281
|
remainingAccountsInfo: baseRemainingAccountsInfo,
|
|
6262
6282
|
pdaTokenType: types_1.TokenType.ATA,
|
|
6263
6283
|
lowerBinId: newLowerBinId,
|
|
@@ -6291,35 +6311,31 @@ class Transactions {
|
|
|
6291
6311
|
activeId: new bn_js_1.default(activeId),
|
|
6292
6312
|
});
|
|
6293
6313
|
const depositChunks = (0, liquidityStrategy_1.chunkHybridDepositParameters)(strategyResults, new bn_js_1.default(minDeltaId), new bn_js_1.default(maxDeltaId), new bn_js_1.default(activeId), binStep, maxBinsPerDepositChunk, favorXInActiveId);
|
|
6314
|
+
const { lastXIndex: lastXChunkIndex, lastYIndex: lastYChunkIndex } = getLastHybridAmountConsumerIndexes(depositChunks.map(chunk => ({
|
|
6315
|
+
amountX: chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountX), new bn_js_1.default(0)),
|
|
6316
|
+
amountY: chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountY), new bn_js_1.default(0)),
|
|
6317
|
+
})));
|
|
6294
6318
|
const chunkInstructionGroups = [];
|
|
6295
|
-
for (
|
|
6319
|
+
for (let i = 0; i < depositChunks.length; i++) {
|
|
6320
|
+
const chunk = depositChunks[i];
|
|
6296
6321
|
const { chunkLowerOffset, chunkUpperOffset } = getHybridChunkOffsets(newLowerBinId, chunk.lowerBinId, chunk.upperBinId);
|
|
6297
6322
|
const chunkAmountX = chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountX), new bn_js_1.default(0));
|
|
6298
6323
|
const chunkAmountY = chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountY), new bn_js_1.default(0));
|
|
6299
6324
|
if (chunkAmountX.isZero() && chunkAmountY.isZero()) {
|
|
6300
6325
|
continue;
|
|
6301
6326
|
}
|
|
6302
|
-
const
|
|
6303
|
-
const depositIx = yield this.ix.meteoraDlmm.addLiquidity2Automation({
|
|
6304
|
-
connection,
|
|
6305
|
-
userWallet: params.userWallet,
|
|
6306
|
-
lbPair,
|
|
6307
|
-
position: params.newPosition,
|
|
6308
|
-
tokenXMint,
|
|
6309
|
-
tokenYMint,
|
|
6310
|
-
tokenXProgram,
|
|
6311
|
-
tokenYProgram,
|
|
6312
|
-
layers: contractLayers,
|
|
6313
|
-
checkRange: params.checkRange,
|
|
6327
|
+
const amountParams = buildHybridDepositAmountParams({
|
|
6314
6328
|
userTokenXAmount: chunkAmountX,
|
|
6315
6329
|
userTokenYAmount: chunkAmountY,
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
remainingAccountsInfo: baseRemainingAccountsInfo,
|
|
6319
|
-
pdaTokenType: types_1.TokenType.ATA,
|
|
6320
|
-
lowerBinId: chunk.lowerBinId,
|
|
6321
|
-
upperBinId: chunk.upperBinId,
|
|
6330
|
+
omitXAmount: i === lastXChunkIndex,
|
|
6331
|
+
omitYAmount: i === lastYChunkIndex,
|
|
6322
6332
|
});
|
|
6333
|
+
const binArrayInitIxs = yield this._initBinArraysForRange(connection, lbPair, dlmmPool, chunk.lowerBinId, chunk.upperBinId);
|
|
6334
|
+
const depositIx = yield this.ix.meteoraDlmm.addLiquidity2Automation(Object.assign(Object.assign({ connection, userWallet: params.userWallet, lbPair, position: params.newPosition, tokenXMint,
|
|
6335
|
+
tokenYMint,
|
|
6336
|
+
tokenXProgram,
|
|
6337
|
+
tokenYProgram, layers: contractLayers, checkRange: params.checkRange }, amountParams), { chunkLowerOffset,
|
|
6338
|
+
chunkUpperOffset, remainingAccountsInfo: baseRemainingAccountsInfo, pdaTokenType: types_1.TokenType.ATA, lowerBinId: chunk.lowerBinId, upperBinId: chunk.upperBinId }));
|
|
6323
6339
|
chunkInstructionGroups.push([
|
|
6324
6340
|
...binArrayInitIxs.map(ix => ({
|
|
6325
6341
|
label: 'init_bin_array',
|
|
@@ -6438,6 +6454,10 @@ class Transactions {
|
|
|
6438
6454
|
binStep,
|
|
6439
6455
|
activeId: new bn_js_1.default(activeId),
|
|
6440
6456
|
});
|
|
6457
|
+
const { lastXIndex: lastXLayerIndex, lastYIndex: lastYLayerIndex } = getLastHybridAmountConsumerIndexes(strategyResults.map(layer => ({
|
|
6458
|
+
amountX: layer.maxAmountX,
|
|
6459
|
+
amountY: layer.maxAmountY,
|
|
6460
|
+
})));
|
|
6441
6461
|
const layeredDepositIxs = [];
|
|
6442
6462
|
for (let i = 0; i < strategyResults.length; i++) {
|
|
6443
6463
|
const layerStrategy = strategyResults[i];
|
|
@@ -6450,23 +6470,17 @@ class Transactions {
|
|
|
6450
6470
|
percentageX: layers[i].x.percentage > 0 ? 100 : 0,
|
|
6451
6471
|
percentageY: layers[i].y.percentage > 0 ? 100 : 0,
|
|
6452
6472
|
};
|
|
6453
|
-
const
|
|
6454
|
-
connection,
|
|
6455
|
-
userWallet: params.userWallet,
|
|
6456
|
-
lbPair,
|
|
6457
|
-
position: params.position,
|
|
6458
|
-
tokenXMint,
|
|
6459
|
-
tokenYMint,
|
|
6460
|
-
tokenXProgram,
|
|
6461
|
-
tokenYProgram,
|
|
6462
|
-
layers: [singleLayer],
|
|
6473
|
+
const amountParams = buildHybridDepositAmountParams({
|
|
6463
6474
|
userTokenXAmount: layerStrategy.maxAmountX,
|
|
6464
6475
|
userTokenYAmount: layerStrategy.maxAmountY,
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
lowerBinId,
|
|
6468
|
-
upperBinId,
|
|
6476
|
+
omitXAmount: i === lastXLayerIndex,
|
|
6477
|
+
omitYAmount: i === lastYLayerIndex,
|
|
6469
6478
|
});
|
|
6479
|
+
const depositIx = yield this.ix.meteoraDlmm.addLiquidity2Automation(Object.assign(Object.assign({ connection, userWallet: params.userWallet, lbPair, position: params.position, tokenXMint,
|
|
6480
|
+
tokenYMint,
|
|
6481
|
+
tokenXProgram,
|
|
6482
|
+
tokenYProgram, layers: [singleLayer] }, amountParams), { remainingAccountsInfo: baseRemainingAccountsInfo, pdaTokenType: types_1.TokenType.ATA, lowerBinId,
|
|
6483
|
+
upperBinId }));
|
|
6470
6484
|
layeredDepositIxs.push({ label: 'deposit_v2', class: CLASS, instruction: depositIx });
|
|
6471
6485
|
}
|
|
6472
6486
|
if (layeredDepositIxs.length > 0) {
|
|
@@ -6484,8 +6498,6 @@ class Transactions {
|
|
|
6484
6498
|
tokenXProgram,
|
|
6485
6499
|
tokenYProgram,
|
|
6486
6500
|
layers: contractLayers,
|
|
6487
|
-
userTokenXAmount: effectiveAmountX,
|
|
6488
|
-
userTokenYAmount: effectiveAmountY,
|
|
6489
6501
|
remainingAccountsInfo: baseRemainingAccountsInfo,
|
|
6490
6502
|
pdaTokenType: types_1.TokenType.ATA,
|
|
6491
6503
|
lowerBinId,
|
|
@@ -6507,33 +6519,30 @@ class Transactions {
|
|
|
6507
6519
|
activeId: new bn_js_1.default(activeId),
|
|
6508
6520
|
});
|
|
6509
6521
|
const depositChunks = (0, liquidityStrategy_1.chunkHybridDepositParameters)(strategyResults, new bn_js_1.default(minDeltaId), new bn_js_1.default(maxDeltaId), new bn_js_1.default(activeId), binStep, maxBinsPerDepositChunk, favorXInActiveId);
|
|
6522
|
+
const { lastXIndex: lastXChunkIndex, lastYIndex: lastYChunkIndex } = getLastHybridAmountConsumerIndexes(depositChunks.map(chunk => ({
|
|
6523
|
+
amountX: chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountX), new bn_js_1.default(0)),
|
|
6524
|
+
amountY: chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountY), new bn_js_1.default(0)),
|
|
6525
|
+
})));
|
|
6510
6526
|
const chunkInstructionGroups = [];
|
|
6511
|
-
for (
|
|
6527
|
+
for (let i = 0; i < depositChunks.length; i++) {
|
|
6528
|
+
const chunk = depositChunks[i];
|
|
6512
6529
|
const { chunkLowerOffset, chunkUpperOffset } = getHybridChunkOffsets(lowerBinId, chunk.lowerBinId, chunk.upperBinId);
|
|
6513
6530
|
const chunkAmountX = chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountX), new bn_js_1.default(0));
|
|
6514
6531
|
const chunkAmountY = chunk.layers.reduce((sum, layer) => sum.add(layer.maxAmountY), new bn_js_1.default(0));
|
|
6515
6532
|
if (chunkAmountX.isZero() && chunkAmountY.isZero()) {
|
|
6516
6533
|
continue;
|
|
6517
6534
|
}
|
|
6518
|
-
const
|
|
6519
|
-
connection,
|
|
6520
|
-
userWallet: params.userWallet,
|
|
6521
|
-
lbPair,
|
|
6522
|
-
position: params.position,
|
|
6523
|
-
tokenXMint,
|
|
6524
|
-
tokenYMint,
|
|
6525
|
-
tokenXProgram,
|
|
6526
|
-
tokenYProgram,
|
|
6527
|
-
layers: contractLayers,
|
|
6535
|
+
const amountParams = buildHybridDepositAmountParams({
|
|
6528
6536
|
userTokenXAmount: chunkAmountX,
|
|
6529
6537
|
userTokenYAmount: chunkAmountY,
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
remainingAccountsInfo: baseRemainingAccountsInfo,
|
|
6533
|
-
pdaTokenType: types_1.TokenType.ATA,
|
|
6534
|
-
lowerBinId: chunk.lowerBinId,
|
|
6535
|
-
upperBinId: chunk.upperBinId,
|
|
6538
|
+
omitXAmount: i === lastXChunkIndex,
|
|
6539
|
+
omitYAmount: i === lastYChunkIndex,
|
|
6536
6540
|
});
|
|
6541
|
+
const depositIx = yield this.ix.meteoraDlmm.addLiquidity2Automation(Object.assign(Object.assign({ connection, userWallet: params.userWallet, lbPair, position: params.position, tokenXMint,
|
|
6542
|
+
tokenYMint,
|
|
6543
|
+
tokenXProgram,
|
|
6544
|
+
tokenYProgram, layers: contractLayers }, amountParams), { chunkLowerOffset,
|
|
6545
|
+
chunkUpperOffset, remainingAccountsInfo: baseRemainingAccountsInfo, pdaTokenType: types_1.TokenType.ATA, lowerBinId: chunk.lowerBinId, upperBinId: chunk.upperBinId }));
|
|
6537
6546
|
chunkInstructionGroups.push([
|
|
6538
6547
|
{ label: 'deposit_v2', class: CLASS, instruction: depositIx },
|
|
6539
6548
|
]);
|