solana-meme-kit 0.3.0 → 0.4.0
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/README.md +493 -3
- package/dist/core/MemeKit.d.ts +30 -0
- package/dist/core/MemeKit.d.ts.map +1 -0
- package/dist/core/MemeKit.js +218 -0
- package/dist/core/MemeKit.js.map +1 -0
- package/dist/core/utils.d.ts +16 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +39 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/JitoManager.d.ts +17 -0
- package/dist/managers/JitoManager.d.ts.map +1 -0
- package/dist/managers/JitoManager.js +64 -0
- package/dist/managers/JitoManager.js.map +1 -0
- package/dist/managers/LiquidityManager.d.ts +16 -0
- package/dist/managers/LiquidityManager.d.ts.map +1 -0
- package/dist/managers/LiquidityManager.js +121 -0
- package/dist/managers/LiquidityManager.js.map +1 -0
- package/dist/managers/MarketManager.d.ts +17 -0
- package/dist/managers/MarketManager.d.ts.map +1 -0
- package/dist/managers/MarketManager.js +182 -0
- package/dist/managers/MarketManager.js.map +1 -0
- package/dist/managers/TokenManager.d.ts +18 -0
- package/dist/managers/TokenManager.d.ts.map +1 -0
- package/dist/managers/TokenManager.js +64 -0
- package/dist/managers/TokenManager.js.map +1 -0
- package/dist/strategies/LiquidityStrategy.d.ts +53 -0
- package/dist/strategies/LiquidityStrategy.d.ts.map +1 -0
- package/dist/strategies/LiquidityStrategy.js +2 -0
- package/dist/strategies/LiquidityStrategy.js.map +1 -0
- package/dist/strategies/meteora/DLMMManager.d.ts +25 -0
- package/dist/strategies/meteora/DLMMManager.d.ts.map +1 -0
- package/dist/strategies/meteora/DLMMManager.js +326 -0
- package/dist/strategies/meteora/DLMMManager.js.map +1 -0
- package/dist/strategies/meteora/index.d.ts +3 -0
- package/dist/strategies/meteora/index.d.ts.map +1 -0
- package/dist/strategies/meteora/index.js +4 -0
- package/dist/strategies/meteora/index.js.map +1 -0
- package/dist/strategies/meteora/presets.d.ts +32 -0
- package/dist/strategies/meteora/presets.d.ts.map +1 -0
- package/dist/strategies/meteora/presets.js +43 -0
- package/dist/strategies/meteora/presets.js.map +1 -0
- package/dist/strategies/raydium/AMMManager.d.ts +20 -0
- package/dist/strategies/raydium/AMMManager.d.ts.map +1 -0
- package/dist/strategies/raydium/AMMManager.js +96 -0
- package/dist/strategies/raydium/AMMManager.js.map +1 -0
- package/dist/strategies/raydium/CPMMManager.d.ts +20 -0
- package/dist/strategies/raydium/CPMMManager.d.ts.map +1 -0
- package/dist/strategies/raydium/CPMMManager.js +121 -0
- package/dist/strategies/raydium/CPMMManager.js.map +1 -0
- package/dist/strategies/raydium/index.d.ts +3 -0
- package/dist/strategies/raydium/index.d.ts.map +1 -0
- package/dist/strategies/raydium/index.js +4 -0
- package/dist/strategies/raydium/index.js.map +1 -0
- package/dist/utils/jitoTools.d.ts +14 -0
- package/dist/utils/jitoTools.d.ts.map +1 -0
- package/dist/utils/jitoTools.js +78 -0
- package/dist/utils/jitoTools.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { Connection, Keypair, PublicKey, SystemProgram, Transaction, TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
import { Market, DexInstructions } from '@openbook-dex/openbook'; // Verify typescript support/exports
|
|
3
|
+
import { ACCOUNT_SIZE, createInitializeAccountInstruction, TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
|
4
|
+
import { Logger } from '../core/utils';
|
|
5
|
+
import { BN } from 'bn.js';
|
|
6
|
+
// OpenBook Program ID (Mainnet)
|
|
7
|
+
// OpenBook Program ID (Mainnet) - V1 Official
|
|
8
|
+
export const OPENBOOK_PROGRAM_ID = new PublicKey('srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX');
|
|
9
|
+
export class MarketManager {
|
|
10
|
+
connection;
|
|
11
|
+
wallet;
|
|
12
|
+
cluster;
|
|
13
|
+
constructor(connection, wallet, cluster = 'mainnet-beta') {
|
|
14
|
+
this.connection = connection;
|
|
15
|
+
this.wallet = wallet;
|
|
16
|
+
this.cluster = cluster;
|
|
17
|
+
}
|
|
18
|
+
async createLowCostMarket(baseMint, quoteMint, baseDecimals, quoteDecimals,
|
|
19
|
+
// Defaults for "Low Cost"
|
|
20
|
+
eventQueueLength = 128, requestQueueLength = 63, orderbookLength = 201) {
|
|
21
|
+
Logger.info('Generating Low-Cost OpenBook Market...');
|
|
22
|
+
const marketKeypair = Keypair.generate();
|
|
23
|
+
const eventQueue = Keypair.generate();
|
|
24
|
+
const requestQueue = Keypair.generate();
|
|
25
|
+
const bids = Keypair.generate();
|
|
26
|
+
const asks = Keypair.generate();
|
|
27
|
+
const vaultSignerNonce = new BN(0); // This usually needs calculation or is found inside the instruction builder
|
|
28
|
+
const [vaultOwner, _vaultSignerNonce] = await PublicKey.findProgramAddress([
|
|
29
|
+
marketKeypair.publicKey.toBuffer(),
|
|
30
|
+
vaultSignerNonce.toArrayLike(Buffer, 'le', 8),
|
|
31
|
+
], OPENBOOK_PROGRAM_ID);
|
|
32
|
+
// Calculate space and rent
|
|
33
|
+
// We need to look up exact sizes.
|
|
34
|
+
// Standard sizes:
|
|
35
|
+
// EventQ: 8 + 12 * length? Header + events?
|
|
36
|
+
// RequestQ: ...
|
|
37
|
+
// Orderbook: ...
|
|
38
|
+
// For simplicity, we'll try to use the Market.create helper if it allows options,
|
|
39
|
+
// OR manual calculation.
|
|
40
|
+
// The @openbook-dex/openbook package usually exposes `Market.getLayout(programId)` or similar.
|
|
41
|
+
// Let's assume standard low-cost sizes (in bytes) often used:
|
|
42
|
+
// Event Queue (128): 262144 (This is standard 2978 slots? No, 128 is tiny).
|
|
43
|
+
// Let's use specific calculations from v1 documentation/examples if available.
|
|
44
|
+
// PROVISIONAL: Using known valid sizes for "low cost"
|
|
45
|
+
// Event Queue (128 slots) -> ~11308 bytes?
|
|
46
|
+
// Request Queue (63 slots) -> ~5084 bytes?
|
|
47
|
+
// Bids/Asks (201 slots) -> ~14524 bytes?
|
|
48
|
+
// Better strategy: Calculate safely or over-provision slightly less than max.
|
|
49
|
+
// Length * SlotSize + Header
|
|
50
|
+
const EVENT_SLOT_SIZE = 88;
|
|
51
|
+
const REQUEST_SLOT_SIZE = 80;
|
|
52
|
+
const ORDER_SLOT_SIZE = 72;
|
|
53
|
+
const HEADER_SIZE = 32; // Approx, need exact layout
|
|
54
|
+
// Actually, let's use the layout from the SDK
|
|
55
|
+
const totalEventQueueSize = 376 + 128 * 88; // Header + slots
|
|
56
|
+
const totalRequestQueueSize = 332 + 63 * 80;
|
|
57
|
+
const totalOrderbookSize = 104 + 201 * 72;
|
|
58
|
+
Logger.info(`Calculated Sizes - Event: ${totalEventQueueSize}, Request: ${totalRequestQueueSize}, Orderbook: ${totalOrderbookSize}`);
|
|
59
|
+
const lamportsEventQueue = await this.connection.getMinimumBalanceForRentExemption(totalEventQueueSize);
|
|
60
|
+
const lamportsRequestQueue = await this.connection.getMinimumBalanceForRentExemption(totalRequestQueueSize);
|
|
61
|
+
const lamportsOrderbook = await this.connection.getMinimumBalanceForRentExemption(totalOrderbookSize);
|
|
62
|
+
const tx = new Transaction();
|
|
63
|
+
// Create Accounts
|
|
64
|
+
tx.add(SystemProgram.createAccount({
|
|
65
|
+
fromPubkey: this.wallet.publicKey,
|
|
66
|
+
newAccountPubkey: eventQueue.publicKey,
|
|
67
|
+
lamports: lamportsEventQueue,
|
|
68
|
+
space: totalEventQueueSize,
|
|
69
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
70
|
+
}), SystemProgram.createAccount({
|
|
71
|
+
fromPubkey: this.wallet.publicKey,
|
|
72
|
+
newAccountPubkey: requestQueue.publicKey,
|
|
73
|
+
lamports: lamportsRequestQueue,
|
|
74
|
+
space: totalRequestQueueSize,
|
|
75
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
76
|
+
}), SystemProgram.createAccount({
|
|
77
|
+
fromPubkey: this.wallet.publicKey,
|
|
78
|
+
newAccountPubkey: bids.publicKey,
|
|
79
|
+
lamports: lamportsOrderbook,
|
|
80
|
+
space: totalOrderbookSize,
|
|
81
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
82
|
+
}), SystemProgram.createAccount({
|
|
83
|
+
fromPubkey: this.wallet.publicKey,
|
|
84
|
+
newAccountPubkey: asks.publicKey,
|
|
85
|
+
lamports: lamportsOrderbook,
|
|
86
|
+
space: totalOrderbookSize,
|
|
87
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
88
|
+
}));
|
|
89
|
+
// Initialize Market
|
|
90
|
+
const marketLayoutSpan = Market.getLayout(OPENBOOK_PROGRAM_ID).span;
|
|
91
|
+
const lamportsMarket = await this.connection.getMinimumBalanceForRentExemption(marketLayoutSpan);
|
|
92
|
+
// Create Vaults
|
|
93
|
+
// Vaults are Token Accounts owned by the Market PDA (Vault Owner)
|
|
94
|
+
// We generate random keypairs for them, create the accounts, and init them with Owner = vaultOwner
|
|
95
|
+
const baseVault = Keypair.generate();
|
|
96
|
+
const quoteVault = Keypair.generate();
|
|
97
|
+
const vaultLamports = await this.connection.getMinimumBalanceForRentExemption(ACCOUNT_SIZE);
|
|
98
|
+
tx.add(
|
|
99
|
+
// Create Base Vault Account
|
|
100
|
+
SystemProgram.createAccount({
|
|
101
|
+
fromPubkey: this.wallet.publicKey,
|
|
102
|
+
newAccountPubkey: baseVault.publicKey,
|
|
103
|
+
lamports: vaultLamports,
|
|
104
|
+
space: ACCOUNT_SIZE,
|
|
105
|
+
programId: TOKEN_PROGRAM_ID,
|
|
106
|
+
}),
|
|
107
|
+
// Initialize Base Vault (Owned by Vault Owner PDA)
|
|
108
|
+
createInitializeAccountInstruction(baseVault.publicKey, baseMint, vaultOwner),
|
|
109
|
+
// Create Quote Vault Account
|
|
110
|
+
SystemProgram.createAccount({
|
|
111
|
+
fromPubkey: this.wallet.publicKey,
|
|
112
|
+
newAccountPubkey: quoteVault.publicKey,
|
|
113
|
+
lamports: vaultLamports,
|
|
114
|
+
space: ACCOUNT_SIZE,
|
|
115
|
+
programId: TOKEN_PROGRAM_ID,
|
|
116
|
+
}),
|
|
117
|
+
// Initialize Quote Vault (Owned by Vault Owner PDA)
|
|
118
|
+
createInitializeAccountInstruction(quoteVault.publicKey, quoteMint, vaultOwner));
|
|
119
|
+
tx.add(SystemProgram.createAccount({
|
|
120
|
+
fromPubkey: this.wallet.publicKey,
|
|
121
|
+
newAccountPubkey: marketKeypair.publicKey,
|
|
122
|
+
lamports: lamportsMarket,
|
|
123
|
+
space: marketLayoutSpan,
|
|
124
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
125
|
+
}), DexInstructions.initializeMarket({
|
|
126
|
+
market: marketKeypair.publicKey,
|
|
127
|
+
requestQueue: requestQueue.publicKey,
|
|
128
|
+
eventQueue: eventQueue.publicKey,
|
|
129
|
+
bids: bids.publicKey,
|
|
130
|
+
asks: asks.publicKey,
|
|
131
|
+
baseVault: baseVault.publicKey,
|
|
132
|
+
quoteVault: quoteVault.publicKey,
|
|
133
|
+
baseMint,
|
|
134
|
+
quoteMint,
|
|
135
|
+
baseLotSize: new BN(1), // Tunable?
|
|
136
|
+
quoteLotSize: new BN(1), // Tunable?
|
|
137
|
+
feeRateBps: 0,
|
|
138
|
+
vaultSignerNonce: _vaultSignerNonce,
|
|
139
|
+
programId: OPENBOOK_PROGRAM_ID,
|
|
140
|
+
quoteDustThreshold: new BN(100), // Standard dust threshold
|
|
141
|
+
// authority // deprecated/not used usually?
|
|
142
|
+
}));
|
|
143
|
+
Logger.info(`Sending Market Creation Transaction (Market ID: ${marketKeypair.publicKey.toString()})...`);
|
|
144
|
+
// Note: This transaction might be large.
|
|
145
|
+
// We strictly need to sign with all these keypairs.
|
|
146
|
+
const signers = [
|
|
147
|
+
this.wallet,
|
|
148
|
+
marketKeypair,
|
|
149
|
+
eventQueue,
|
|
150
|
+
requestQueue,
|
|
151
|
+
bids,
|
|
152
|
+
asks,
|
|
153
|
+
baseVault,
|
|
154
|
+
quoteVault
|
|
155
|
+
];
|
|
156
|
+
// For now, return the instruction and signers to be sent, or send it here.
|
|
157
|
+
// The architecture says "MarketManager Handles interaction".
|
|
158
|
+
// Let's send it.
|
|
159
|
+
// Using sendTransaction helper from web3.js/connection
|
|
160
|
+
// We need to compile it or use sendTransaction (if passing Keypair as wallet).
|
|
161
|
+
// Let's assume standard behavior.
|
|
162
|
+
try {
|
|
163
|
+
const sig = await this.connection.sendTransaction(tx, signers);
|
|
164
|
+
await this.connection.confirmTransaction(sig);
|
|
165
|
+
Logger.info(`Market Created! Signature: ${sig}`);
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
Logger.error('Failed to create market', e);
|
|
169
|
+
throw e;
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
marketId: marketKeypair.publicKey.toString(),
|
|
173
|
+
marketState: {
|
|
174
|
+
baseVault: baseVault.publicKey,
|
|
175
|
+
quoteVault: quoteVault.publicKey,
|
|
176
|
+
eventQueue: eventQueue.publicKey,
|
|
177
|
+
// ...
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=MarketManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketManager.js","sourceRoot":"","sources":["../../src/managers/MarketManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
2
|
+
export interface TokenConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
symbol: string;
|
|
5
|
+
uri: string;
|
|
6
|
+
decimals?: number;
|
|
7
|
+
initialSupply: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class TokenManager {
|
|
10
|
+
private connection;
|
|
11
|
+
private umi;
|
|
12
|
+
constructor(connection: Connection, payer: Keypair);
|
|
13
|
+
createToken(config: TokenConfig): Promise<{
|
|
14
|
+
mint: Keypair;
|
|
15
|
+
}>;
|
|
16
|
+
revokeAuthorities(mint: PublicKey, payer: Keypair): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TokenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/managers/TokenManager.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,YAAY;IAGT,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,GAAG,CAAC;gBAEQ,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO;IAQpD,WAAW,CAAC,MAAM,EAAE,WAAW;;;IAmC/B,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;CAyB1D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { createUmi } from '@metaplex-foundation/umi-bundle-defaults';
|
|
2
|
+
import { createSignerFromKeypair, signerIdentity, generateSigner, percentAmount, keypairIdentity } from '@metaplex-foundation/umi';
|
|
3
|
+
import { createFungible, mintV1, TokenStandard, mplTokenMetadata } from '@metaplex-foundation/mpl-token-metadata';
|
|
4
|
+
import { fromWeb3JsKeypair, toWeb3JsKeypair } from '@metaplex-foundation/umi-web3js-adapters';
|
|
5
|
+
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
6
|
+
import { setAuthority, AuthorityType } from '@solana/spl-token';
|
|
7
|
+
import { Logger } from '../core/utils';
|
|
8
|
+
export class TokenManager {
|
|
9
|
+
connection;
|
|
10
|
+
umi;
|
|
11
|
+
constructor(connection, payer) {
|
|
12
|
+
this.connection = connection;
|
|
13
|
+
this.umi = createUmi(connection.rpcEndpoint)
|
|
14
|
+
.use(mplTokenMetadata());
|
|
15
|
+
const keypair = fromWeb3JsKeypair(payer);
|
|
16
|
+
this.umi.use(keypairIdentity(keypair));
|
|
17
|
+
}
|
|
18
|
+
async createToken(config) {
|
|
19
|
+
Logger.info(`Creating token ${config.name} (${config.symbol})...`);
|
|
20
|
+
const mint = generateSigner(this.umi);
|
|
21
|
+
const supply = BigInt(config.initialSupply * (10 ** (config.decimals || 6)));
|
|
22
|
+
// Create the Fungible Token
|
|
23
|
+
// We use createFungible which inherently creates a mint with 0 decimals if not specified,
|
|
24
|
+
// but here we specify it. It defaults to 0 supply.
|
|
25
|
+
const builder = createFungible(this.umi, {
|
|
26
|
+
mint,
|
|
27
|
+
name: config.name,
|
|
28
|
+
symbol: config.symbol,
|
|
29
|
+
uri: config.uri,
|
|
30
|
+
sellerFeeBasisPoints: percentAmount(0),
|
|
31
|
+
decimals: config.decimals || 6,
|
|
32
|
+
});
|
|
33
|
+
await builder.sendAndConfirm(this.umi);
|
|
34
|
+
Logger.info(`Token Mint created: ${mint.publicKey.toString()}`);
|
|
35
|
+
// Mint initial supply to payer
|
|
36
|
+
Logger.info(`Minting ${config.initialSupply} tokens to payer...`);
|
|
37
|
+
await mintV1(this.umi, {
|
|
38
|
+
mint: mint.publicKey,
|
|
39
|
+
amount: supply,
|
|
40
|
+
tokenStandard: TokenStandard.Fungible,
|
|
41
|
+
}).sendAndConfirm(this.umi);
|
|
42
|
+
return {
|
|
43
|
+
mint: toWeb3JsKeypair(mint),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async revokeAuthorities(mint, payer) {
|
|
47
|
+
Logger.info(`Revoking Mint and Freeze authorities for ${mint.toString()}...`);
|
|
48
|
+
// Revoke Mint Authority
|
|
49
|
+
await setAuthority(this.connection, payer, // Payer
|
|
50
|
+
mint, // Account
|
|
51
|
+
payer, // Current authority
|
|
52
|
+
AuthorityType.MintTokens, null // Set new authority to null to revoke
|
|
53
|
+
);
|
|
54
|
+
Logger.info(`Mint authority revoked for ${mint.toString()}`);
|
|
55
|
+
// Revoke Freeze Authority
|
|
56
|
+
await setAuthority(this.connection, payer, // Payer
|
|
57
|
+
mint, // Account
|
|
58
|
+
payer, // Current authority
|
|
59
|
+
AuthorityType.FreezeAccount, null // Set new authority to null to revoke
|
|
60
|
+
);
|
|
61
|
+
Logger.info(`Freeze authority revoked for ${mint.toString()}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=TokenManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/managers/TokenManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Keypair, TransactionInstruction, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import type { BlockEngineRegion } from "../utils/jitoTools";
|
|
3
|
+
import type { StrategyType } from "@meteora-ag/dlmm";
|
|
4
|
+
export type MeteoraStrategy = "Spot" | "Curve" | "BidAsk";
|
|
5
|
+
export interface MeteoraOptions {
|
|
6
|
+
activationDate?: Date;
|
|
7
|
+
binStep?: number;
|
|
8
|
+
width?: number;
|
|
9
|
+
strategy?: MeteoraStrategy;
|
|
10
|
+
strategyType?: StrategyType;
|
|
11
|
+
lfg?: {
|
|
12
|
+
minPrice?: number;
|
|
13
|
+
maxPrice?: number;
|
|
14
|
+
curvature?: number;
|
|
15
|
+
};
|
|
16
|
+
feeBps?: number;
|
|
17
|
+
baseFactor?: number;
|
|
18
|
+
includeAlphaVault?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface LaunchOptions {
|
|
21
|
+
name: string;
|
|
22
|
+
symbol: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
image: string;
|
|
25
|
+
decimals?: number;
|
|
26
|
+
supply?: number;
|
|
27
|
+
solLiquidityAmount?: number;
|
|
28
|
+
tokenLiquidityAmount?: number;
|
|
29
|
+
liquidity?: {
|
|
30
|
+
solAmount: number;
|
|
31
|
+
tokenAmount: number;
|
|
32
|
+
};
|
|
33
|
+
dex?: "meteora" | "meteora:dlmm" | "raydium:cpmm" | "raydium:amm";
|
|
34
|
+
strategy?: "meteora" | "raydium-cpmm" | "raydium-amm";
|
|
35
|
+
devBuySolAmount?: number;
|
|
36
|
+
jitoTip?: number | "auto";
|
|
37
|
+
blockEngine?: BlockEngineRegion;
|
|
38
|
+
meteoraOptions?: {
|
|
39
|
+
activationPoint?: number;
|
|
40
|
+
activationDate?: Date;
|
|
41
|
+
activationType?: "timestamp" | "slot";
|
|
42
|
+
};
|
|
43
|
+
meteora?: MeteoraOptions;
|
|
44
|
+
marketMode?: "low-cost" | "standard";
|
|
45
|
+
}
|
|
46
|
+
export interface LiquidityStrategy {
|
|
47
|
+
initialize(options: LaunchOptions, mint: PublicKey): Promise<{
|
|
48
|
+
poolId: PublicKey;
|
|
49
|
+
instructions: TransactionInstruction[];
|
|
50
|
+
signers?: Keypair[];
|
|
51
|
+
}>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=LiquidityStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidityStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/LiquidityStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,sBAAsB,EACtB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,IAAI,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAGF,GAAG,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;IAClE,QAAQ,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;IAGtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC,cAAc,CAAC,EAAE;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,IAAI,CAAC;QACtB,cAAc,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KACvC,CAAC;IAEF,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAGtC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CACR,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC;QACT,MAAM,EAAE,SAAS,CAAC;QAClB,YAAY,EAAE,sBAAsB,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidityStrategy.js","sourceRoot":"","sources":["../../src/strategies/LiquidityStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EACP,sBAAsB,EACtB,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Connection, Keypair, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
+
import type { LiquidityStrategy, LaunchOptions } from "../LiquidityStrategy";
|
|
3
|
+
export declare class DLMMManager implements LiquidityStrategy {
|
|
4
|
+
private connection;
|
|
5
|
+
private wallet;
|
|
6
|
+
private cluster;
|
|
7
|
+
private static DEFAULT_BASE_FACTOR;
|
|
8
|
+
private static U16_MAX;
|
|
9
|
+
private static MAX_LFG_BINS_SINGLE_TX;
|
|
10
|
+
private programId;
|
|
11
|
+
constructor(connection: Connection, wallet: Keypair, cluster?: "devnet" | "mainnet-beta");
|
|
12
|
+
/**
|
|
13
|
+
* Calculate the starting Bin ID from a price.
|
|
14
|
+
* Price = solAmount / tokenAmount (adjusted for decimals)
|
|
15
|
+
*/
|
|
16
|
+
private calculateActiveBinId;
|
|
17
|
+
private priceToBinId;
|
|
18
|
+
private calculateLfgDistribution;
|
|
19
|
+
initialize(options: LaunchOptions, mint: PublicKey): Promise<{
|
|
20
|
+
poolId: PublicKey;
|
|
21
|
+
instructions: TransactionInstruction[];
|
|
22
|
+
signers?: Keypair[];
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=DLMMManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DLMMManager.d.ts","sourceRoot":"","sources":["../../../src/strategies/meteora/DLMMManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EAEd,MAAM,sBAAsB,CAAC;AA4B9B,qBAAa,WAAY,YAAW,iBAAiB;IAOjD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IARjB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAS;IAC3C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAM;IAC3C,OAAO,CAAC,SAAS,CAAY;gBAGnB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,QAAQ,GAAG,cAA+B;IAK7D;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,wBAAwB;IAgD1B,UAAU,CACd,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC;QACT,MAAM,EAAE,SAAS,CAAC;QAClB,YAAY,EAAE,sBAAsB,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;CAuYH"}
|