@hawksightco/hawk-sdk 1.3.110 → 1.3.111
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/src/classes/SimpleIxGenerator.d.ts.map +1 -1
- package/dist/src/classes/SimpleIxGenerator.js +1 -1
- package/dist/src/idl/iyf-extension-idl.d.ts +1 -0
- package/dist/src/idl/iyf-extension-idl.d.ts.map +1 -1
- package/dist/src/idl/iyf-extension-idl.js +2 -1
- package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.d.ts +24 -2
- package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.d.ts.map +1 -1
- package/dist/src/ixGenerator/MeteoraDlmmIxGenerator.js +57 -1
- package/dist/src/pdaGenerator/MeteoraPdaGenerator.d.ts +68 -0
- package/dist/src/pdaGenerator/MeteoraPdaGenerator.d.ts.map +1 -1
- package/dist/src/pdaGenerator/MeteoraPdaGenerator.js +139 -0
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import * as web3 from "@solana/web3.js";
|
|
|
2
2
|
import { TokenType, StrategyType as OldStrategyType } from "../types";
|
|
3
3
|
import BN from "bn.js";
|
|
4
4
|
import { SimpleIxGenerator } from "../classes/SimpleIxGenerator";
|
|
5
|
+
import { SimplePdaGenerator } from "../classes/SimplePdaGenerator";
|
|
5
6
|
type LimitOrderCloseV2Params = {
|
|
6
7
|
connection: web3.Connection;
|
|
7
8
|
userWallet: web3.PublicKey;
|
|
@@ -119,12 +120,23 @@ type DepositWithAmountAutomation = {
|
|
|
119
120
|
userTokenYAmount: BN | null;
|
|
120
121
|
tokenType?: TokenType;
|
|
121
122
|
};
|
|
123
|
+
type InitializeLbPair2 = {
|
|
124
|
+
connection: web3.Connection;
|
|
125
|
+
funder: web3.PublicKey;
|
|
126
|
+
tokenMintX: web3.PublicKey;
|
|
127
|
+
tokenMintY: web3.PublicKey;
|
|
128
|
+
tokenProgramX: web3.PublicKey;
|
|
129
|
+
tokenProgramY: web3.PublicKey;
|
|
130
|
+
presetParameter: web3.PublicKey;
|
|
131
|
+
activeId: number;
|
|
132
|
+
};
|
|
122
133
|
/**
|
|
123
134
|
* Meteora related instructions executed via iyf extension or iyf main
|
|
124
135
|
*/
|
|
125
136
|
export declare class MeteoraDlmmIxGenerator {
|
|
126
|
-
private ix;
|
|
127
|
-
|
|
137
|
+
private readonly ix;
|
|
138
|
+
private readonly pda;
|
|
139
|
+
constructor(ix: SimpleIxGenerator, pda: SimplePdaGenerator);
|
|
128
140
|
initializePositionAutomation(connection: web3.Connection, { userWallet, lbPair, position, lowerBinId, upperBinId }: InitializePositionAutomation): Promise<web3.TransactionInstruction>;
|
|
129
141
|
redepositAutomation(connection: web3.Connection, { userWallet, lbPair, position, relativeLowerBinId, relativeUpperBinId, strategyType, checkRange }: OpenPositionAndDepositAutomation): Promise<web3.TransactionInstruction>;
|
|
130
142
|
redepositAutomation2(connection: web3.Connection, { userWallet, lbPair, position, relativeLowerBinId, relativeUpperBinId, strategyType, checkRange }: RedepositAutomation2): Promise<web3.TransactionInstruction>;
|
|
@@ -154,6 +166,16 @@ export declare class MeteoraDlmmIxGenerator {
|
|
|
154
166
|
private dlmm;
|
|
155
167
|
limitOrderCloseV2({ connection, userWallet, position, lbPair, tokenXMint, tokenYMint, reserveX, reserveY, tokenXProgram, tokenYProgram, useFuelAccount, param, minBinId, maxBinId, binArrays, }: LimitOrderCloseV2Params): Promise<web3.TransactionInstruction>;
|
|
156
168
|
meteoraDlmmLimitCloseAutomationV2({ connection, userWallet, position, lbPair, tokenXMint, tokenYMint, reserveX, reserveY, tokenXProgram, tokenYProgram, pdaTokenType, param, minBinId, maxBinId, isHawkRefund, useFuelAccount, binArrays, }: MeteoraDlmmLimitCloseAutomationV2Params): Promise<web3.TransactionInstruction>;
|
|
169
|
+
/**
|
|
170
|
+
* Generates raw meteora instruction that initializes a meteora pool
|
|
171
|
+
*
|
|
172
|
+
* @param param0
|
|
173
|
+
* @returns
|
|
174
|
+
*/
|
|
175
|
+
initializeLbPair2Raw({ connection, funder, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, presetParameter, activeId }: InitializeLbPair2): Promise<web3.TransactionInstruction>;
|
|
176
|
+
private isOverflowDefaultBinArrayBitmap;
|
|
177
|
+
private internalBitmapRange;
|
|
178
|
+
private binIdToBinArrayIndex;
|
|
157
179
|
}
|
|
158
180
|
export {};
|
|
159
181
|
//# sourceMappingURL=MeteoraDlmmIxGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeteoraDlmmIxGenerator.d.ts","sourceRoot":"","sources":["../../../src/ixGenerator/MeteoraDlmmIxGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAKxC,OAAO,EAAE,SAAS,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"MeteoraDlmmIxGenerator.d.ts","sourceRoot":"","sources":["../../../src/ixGenerator/MeteoraDlmmIxGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,8 +95,9 @@ function mapOldStrategyTypeToNew(oldStrategyType) {
|
|
|
95
95
|
* Meteora related instructions executed via iyf extension or iyf main
|
|
96
96
|
*/
|
|
97
97
|
class MeteoraDlmmIxGenerator {
|
|
98
|
-
constructor(ix) {
|
|
98
|
+
constructor(ix, pda) {
|
|
99
99
|
this.ix = ix;
|
|
100
|
+
this.pda = pda;
|
|
100
101
|
}
|
|
101
102
|
initializePositionAutomation(connection_1, _a) {
|
|
102
103
|
return __awaiter(this, arguments, void 0, function* (connection, { userWallet, lbPair, position, lowerBinId, upperBinId }) {
|
|
@@ -741,5 +742,60 @@ class MeteoraDlmmIxGenerator {
|
|
|
741
742
|
return meteoraDlmmLimitCloseAutomationV2Ix;
|
|
742
743
|
});
|
|
743
744
|
}
|
|
745
|
+
/**
|
|
746
|
+
* Generates raw meteora instruction that initializes a meteora pool
|
|
747
|
+
*
|
|
748
|
+
* @param param0
|
|
749
|
+
* @returns
|
|
750
|
+
*/
|
|
751
|
+
initializeLbPair2Raw(_a) {
|
|
752
|
+
return __awaiter(this, arguments, void 0, function* ({ connection, funder, tokenMintX, tokenMintY, tokenProgramX, tokenProgramY, presetParameter, activeId }) {
|
|
753
|
+
// Initialize anchor
|
|
754
|
+
anchor_1.Anchor.initialize(connection);
|
|
755
|
+
const tokenX = tokenMintX;
|
|
756
|
+
const tokenY = tokenMintY;
|
|
757
|
+
const lbPair = this.pda.meteora.deriveLbPairWithPresetParamWithIndexKey(presetParameter, tokenX, tokenY);
|
|
758
|
+
const reserveX = this.pda.meteora.deriveReserve(tokenX, lbPair);
|
|
759
|
+
const reserveY = this.pda.meteora.deriveReserve(tokenY, lbPair);
|
|
760
|
+
const oracle = this.pda.meteora.deriveOracle(lbPair);
|
|
761
|
+
const activeBinArrayIndex = this.binIdToBinArrayIndex(new bn_js_1.default(activeId));
|
|
762
|
+
const binArrayBitmapExtension = this.isOverflowDefaultBinArrayBitmap(activeBinArrayIndex) ? this.pda.meteora.deriveBinArrayBitmapExtension(lbPair) : METEORA_DLMM_PROGRAM;
|
|
763
|
+
return new web3.TransactionInstruction({
|
|
764
|
+
data: Buffer.concat([
|
|
765
|
+
Buffer.from(util.sighash("initialize_lb_pair_2")),
|
|
766
|
+
Buffer.from([activeId]),
|
|
767
|
+
Buffer.from(Array(96).fill(0)),
|
|
768
|
+
]),
|
|
769
|
+
keys: [
|
|
770
|
+
{ pubkey: funder, isSigner: true, isWritable: true },
|
|
771
|
+
{ pubkey: lbPair, isSigner: false, isWritable: true },
|
|
772
|
+
{ pubkey: reserveX, isSigner: false, isWritable: true },
|
|
773
|
+
{ pubkey: reserveY, isSigner: false, isWritable: true },
|
|
774
|
+
{ pubkey: binArrayBitmapExtension, isSigner: false, isWritable: true },
|
|
775
|
+
{ pubkey: tokenMintX, isSigner: false, isWritable: false },
|
|
776
|
+
{ pubkey: tokenMintY, isSigner: false, isWritable: false },
|
|
777
|
+
{ pubkey: METEORA_DLMM_PROGRAM, isSigner: false, isWritable: false },
|
|
778
|
+
{ pubkey: METEORA_DLMM_PROGRAM, isSigner: false, isWritable: false },
|
|
779
|
+
{ pubkey: tokenProgramX, isSigner: false, isWritable: false },
|
|
780
|
+
{ pubkey: tokenProgramY, isSigner: false, isWritable: false },
|
|
781
|
+
{ pubkey: METEORA_DLMM_PROGRAM, isSigner: false, isWritable: false },
|
|
782
|
+
],
|
|
783
|
+
programId: METEORA_DLMM_PROGRAM,
|
|
784
|
+
});
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
isOverflowDefaultBinArrayBitmap(binArrayIndex) {
|
|
788
|
+
const [minBinArrayIndex, maxBinArrayIndex] = this.internalBitmapRange();
|
|
789
|
+
return binArrayIndex.gt(maxBinArrayIndex) || binArrayIndex.lt(minBinArrayIndex);
|
|
790
|
+
}
|
|
791
|
+
internalBitmapRange() {
|
|
792
|
+
const lowerBinArrayIndex = new bn_js_1.default(512).neg();
|
|
793
|
+
const upperBinArrayIndex = new bn_js_1.default(512).sub(new bn_js_1.default(1));
|
|
794
|
+
return [lowerBinArrayIndex, upperBinArrayIndex];
|
|
795
|
+
}
|
|
796
|
+
binIdToBinArrayIndex(binId) {
|
|
797
|
+
const { div: idx, mod } = binId.divmod(new bn_js_1.default(70));
|
|
798
|
+
return binId.isNeg() && !mod.isZero() ? idx.sub(new bn_js_1.default(1)) : idx;
|
|
799
|
+
}
|
|
744
800
|
}
|
|
745
801
|
exports.MeteoraDlmmIxGenerator = MeteoraDlmmIxGenerator;
|
|
@@ -1,6 +1,74 @@
|
|
|
1
|
+
import * as web3 from "@solana/web3.js";
|
|
2
|
+
import BN from "bn.js";
|
|
1
3
|
/**
|
|
2
4
|
* Meteora PDA Generator
|
|
3
5
|
*/
|
|
4
6
|
export declare class MeteoraPdaGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Derive LbPair with Preset Parameter with Index Key
|
|
9
|
+
*
|
|
10
|
+
* @param tokenX
|
|
11
|
+
* @param tokenY
|
|
12
|
+
* @param indexKey
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
deriveLbPairWithPresetParamWithIndexKey(presetParameterKey: web3.PublicKey, tokenX: web3.PublicKey, tokenY: web3.PublicKey): web3.PublicKey;
|
|
16
|
+
/**
|
|
17
|
+
* Derive LbPair2
|
|
18
|
+
*
|
|
19
|
+
* @param tokenX
|
|
20
|
+
* @param tokenY
|
|
21
|
+
* @param binStep
|
|
22
|
+
* @param baseFactor
|
|
23
|
+
* @param programId
|
|
24
|
+
*/
|
|
25
|
+
deriveLbPair2(tokenX: web3.PublicKey, tokenY: web3.PublicKey, binStep: BN, baseFactor: BN, programId: web3.PublicKey): web3.PublicKey;
|
|
26
|
+
/**
|
|
27
|
+
* Derive Reserve
|
|
28
|
+
*
|
|
29
|
+
* @param token
|
|
30
|
+
* @param lbPair
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
deriveReserve(token: web3.PublicKey, lbPair: web3.PublicKey): web3.PublicKey;
|
|
34
|
+
/**
|
|
35
|
+
* Derive Oracle
|
|
36
|
+
*
|
|
37
|
+
* @param lbPair
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
deriveOracle(lbPair: web3.PublicKey): web3.PublicKey;
|
|
41
|
+
/**
|
|
42
|
+
* Derive Token Badge
|
|
43
|
+
*
|
|
44
|
+
* @param token
|
|
45
|
+
* @param programId
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
deriveTokenBadge(tokenMint: web3.PublicKey): web3.PublicKey;
|
|
49
|
+
/**
|
|
50
|
+
* Derive Bin Array
|
|
51
|
+
*
|
|
52
|
+
* @param lbPair
|
|
53
|
+
* @param index
|
|
54
|
+
* @returns
|
|
55
|
+
*/
|
|
56
|
+
deriveBinArray(lbPair: web3.PublicKey, index: BN): web3.PublicKey;
|
|
57
|
+
/**
|
|
58
|
+
* Derive Bin Array Bitmap Extension
|
|
59
|
+
*
|
|
60
|
+
* @param lbPair
|
|
61
|
+
* @param programId
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
deriveBinArrayBitmapExtension(lbPair: web3.PublicKey): web3.PublicKey;
|
|
65
|
+
/**
|
|
66
|
+
* Sort token mints
|
|
67
|
+
*
|
|
68
|
+
* @param tokenX
|
|
69
|
+
* @param tokenY
|
|
70
|
+
* @returns
|
|
71
|
+
*/
|
|
72
|
+
private sortTokenMints;
|
|
5
73
|
}
|
|
6
74
|
//# sourceMappingURL=MeteoraPdaGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeteoraPdaGenerator.d.ts","sourceRoot":"","sources":["../../../src/pdaGenerator/MeteoraPdaGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MeteoraPdaGenerator.d.ts","sourceRoot":"","sources":["../../../src/pdaGenerator/MeteoraPdaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB;;GAEG;AACH,qBAAa,mBAAmB;IAE9B;;;;;;;OAOG;IACH,uCAAuC,CACrC,kBAAkB,EAAE,IAAI,CAAC,SAAS,EAClC,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,MAAM,EAAE,IAAI,CAAC,SAAS,GACrB,IAAI,CAAC,SAAS;IASjB;;;;;;;;OAQG;IACH,aAAa,CACX,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CAAC,SAAS;IAcjB;;;;;;OAMG;IACH,aAAa,CACX,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,MAAM,EAAE,IAAI,CAAC,SAAS,GACrB,IAAI,CAAC,SAAS;IAQjB;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;IAQpD;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;IAK3D;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,KAAK,EAAE,EAAE,GACR,IAAI,CAAC,SAAS;IAgBjB;;;;;;OAMG;IACH,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;IAQrE;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -1,9 +1,148 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.MeteoraPdaGenerator = void 0;
|
|
37
|
+
const web3 = __importStar(require("@solana/web3.js"));
|
|
38
|
+
const addresses_1 = require("../addresses");
|
|
4
39
|
/**
|
|
5
40
|
* Meteora PDA Generator
|
|
6
41
|
*/
|
|
7
42
|
class MeteoraPdaGenerator {
|
|
43
|
+
/**
|
|
44
|
+
* Derive LbPair with Preset Parameter with Index Key
|
|
45
|
+
*
|
|
46
|
+
* @param tokenX
|
|
47
|
+
* @param tokenY
|
|
48
|
+
* @param indexKey
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
deriveLbPairWithPresetParamWithIndexKey(presetParameterKey, tokenX, tokenY) {
|
|
52
|
+
const [minKey, maxKey] = this.sortTokenMints(tokenX, tokenY);
|
|
53
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([presetParameterKey.toBuffer(), minKey.toBuffer(), maxKey.toBuffer()], addresses_1.METEORA_DLMM_PROGRAM);
|
|
54
|
+
return pda;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Derive LbPair2
|
|
58
|
+
*
|
|
59
|
+
* @param tokenX
|
|
60
|
+
* @param tokenY
|
|
61
|
+
* @param binStep
|
|
62
|
+
* @param baseFactor
|
|
63
|
+
* @param programId
|
|
64
|
+
*/
|
|
65
|
+
deriveLbPair2(tokenX, tokenY, binStep, baseFactor, programId) {
|
|
66
|
+
const [minKey, maxKey] = this.sortTokenMints(tokenX, tokenY);
|
|
67
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([
|
|
68
|
+
minKey.toBuffer(),
|
|
69
|
+
maxKey.toBuffer(),
|
|
70
|
+
new Uint8Array(binStep.toArrayLike(Buffer, "le", 2)),
|
|
71
|
+
new Uint8Array(baseFactor.toArrayLike(Buffer, "le", 2))
|
|
72
|
+
], programId);
|
|
73
|
+
return pda;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Derive Reserve
|
|
77
|
+
*
|
|
78
|
+
* @param token
|
|
79
|
+
* @param lbPair
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
deriveReserve(token, lbPair) {
|
|
83
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([lbPair.toBuffer(), token.toBuffer()], addresses_1.METEORA_DLMM_PROGRAM);
|
|
84
|
+
return pda;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Derive Oracle
|
|
88
|
+
*
|
|
89
|
+
* @param lbPair
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
deriveOracle(lbPair) {
|
|
93
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([Buffer.from("oracle"), lbPair.toBytes()], addresses_1.METEORA_DLMM_PROGRAM);
|
|
94
|
+
return pda;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Derive Token Badge
|
|
98
|
+
*
|
|
99
|
+
* @param token
|
|
100
|
+
* @param programId
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
103
|
+
deriveTokenBadge(tokenMint) {
|
|
104
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([Buffer.from("token_badge"), tokenMint.toBuffer()], addresses_1.METEORA_DLMM_PROGRAM);
|
|
105
|
+
return pda;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Derive Bin Array
|
|
109
|
+
*
|
|
110
|
+
* @param lbPair
|
|
111
|
+
* @param index
|
|
112
|
+
* @returns
|
|
113
|
+
*/
|
|
114
|
+
deriveBinArray(lbPair, index) {
|
|
115
|
+
let binArrayBytes;
|
|
116
|
+
if (index.isNeg()) {
|
|
117
|
+
binArrayBytes = new Uint8Array(index.toTwos(64).toArrayLike(Buffer, "le", 8));
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
binArrayBytes = new Uint8Array(index.toArrayLike(Buffer, "le", 8));
|
|
121
|
+
}
|
|
122
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([Buffer.from("bin_array"), lbPair.toBytes(), binArrayBytes], addresses_1.METEORA_DLMM_PROGRAM);
|
|
123
|
+
return pda;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Derive Bin Array Bitmap Extension
|
|
127
|
+
*
|
|
128
|
+
* @param lbPair
|
|
129
|
+
* @param programId
|
|
130
|
+
* @returns
|
|
131
|
+
*/
|
|
132
|
+
deriveBinArrayBitmapExtension(lbPair) {
|
|
133
|
+
const [pda] = web3.PublicKey.findProgramAddressSync([Buffer.from("bitmap"), lbPair.toBytes()], addresses_1.METEORA_DLMM_PROGRAM);
|
|
134
|
+
return pda;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Sort token mints
|
|
138
|
+
*
|
|
139
|
+
* @param tokenX
|
|
140
|
+
* @param tokenY
|
|
141
|
+
* @returns
|
|
142
|
+
*/
|
|
143
|
+
sortTokenMints(tokenX, tokenY) {
|
|
144
|
+
const [minKey, maxKey] = tokenX.toBuffer().compare(tokenY.toBuffer()) == 1 ? [tokenY, tokenX] : [tokenX, tokenY];
|
|
145
|
+
return [minKey, maxKey];
|
|
146
|
+
}
|
|
8
147
|
}
|
|
9
148
|
exports.MeteoraPdaGenerator = MeteoraPdaGenerator;
|