forgex-cli 1.0.59 → 1.0.61
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 +375 -368
- package/dist/bin/forgex.d.ts +5 -5
- package/dist/bin/forgex.js +14 -14
- package/dist/bin/forgex.js.map +1 -1
- package/dist/src/adapters/codex-adapter.d.ts +90 -90
- package/dist/src/adapters/codex-adapter.d.ts.map +1 -1
- package/dist/src/adapters/codex-adapter.js +76 -76
- package/dist/src/adapters/codex-adapter.js.map +1 -1
- package/dist/src/adapters/connection.d.ts +6 -6
- package/dist/src/adapters/connection.js +8 -8
- package/dist/src/adapters/connection.js.map +1 -1
- package/dist/src/adapters/ipfs.d.ts +3 -3
- package/dist/src/adapters/ipfs.js +3 -3
- package/dist/src/adapters/jito-adapter.d.ts +85 -85
- package/dist/src/adapters/jito-adapter.d.ts.map +1 -1
- package/dist/src/adapters/jito-adapter.js +111 -111
- package/dist/src/adapters/jito-adapter.js.map +1 -1
- package/dist/src/adapters/rpc-adapter.d.ts +53 -53
- package/dist/src/adapters/rpc-adapter.d.ts.map +1 -1
- package/dist/src/adapters/rpc-adapter.js +69 -69
- package/dist/src/adapters/rpc-adapter.js.map +1 -1
- package/dist/src/adapters/sdk-adapter.d.ts +21 -21
- package/dist/src/adapters/sdk-adapter.d.ts.map +1 -1
- package/dist/src/adapters/sdk-adapter.js +79 -79
- package/dist/src/adapters/sdk-adapter.js.map +1 -1
- package/dist/src/commands/config/index.d.ts +1 -1
- package/dist/src/commands/config/index.js +15 -15
- package/dist/src/commands/config/index.js.map +1 -1
- package/dist/src/commands/query/index.d.ts +2 -2
- package/dist/src/commands/query/index.js +82 -82
- package/dist/src/commands/query/index.js.map +1 -1
- package/dist/src/commands/token/index.d.ts +8 -8
- package/dist/src/commands/token/index.js +73 -73
- package/dist/src/commands/token/index.js.map +1 -1
- package/dist/src/commands/tools/index.d.ts +9 -9
- package/dist/src/commands/tools/index.js +137 -137
- package/dist/src/commands/tools/index.js.map +1 -1
- package/dist/src/commands/trade/index.d.ts +2 -2
- package/dist/src/commands/trade/index.js +82 -82
- package/dist/src/commands/trade/index.js.map +1 -1
- package/dist/src/commands/transfer/index.d.ts +8 -8
- package/dist/src/commands/transfer/index.js +106 -106
- package/dist/src/commands/transfer/index.js.map +1 -1
- package/dist/src/commands/wallet/index.d.ts +1 -1
- package/dist/src/commands/wallet/index.js +175 -175
- package/dist/src/commands/wallet/index.js.map +1 -1
- package/dist/src/config.d.ts +26 -26
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +28 -28
- package/dist/src/config.js.map +1 -1
- package/dist/src/const/index.js +1 -1
- package/dist/src/const/index.js.map +1 -1
- package/dist/src/data-source.d.ts +81 -81
- package/dist/src/data-source.d.ts.map +1 -1
- package/dist/src/data-source.js +149 -149
- package/dist/src/data-source.js.map +1 -1
- package/dist/src/data-store/index.d.ts +22 -22
- package/dist/src/data-store/index.d.ts.map +1 -1
- package/dist/src/data-store/index.js +46 -46
- package/dist/src/data-store/index.js.map +1 -1
- package/dist/src/data-store/types.d.ts +3 -3
- package/dist/src/data-store/types.js +3 -3
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +10 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/output.d.ts +18 -18
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +34 -34
- package/dist/src/output.js.map +1 -1
- package/dist/src/shims/store.d.ts +3 -2
- package/dist/src/shims/store.d.ts.map +1 -1
- package/dist/src/shims/store.js +6 -5
- package/dist/src/shims/store.js.map +1 -1
- package/dist/src/sol-sdk/batch/create.d.ts +4 -1
- package/dist/src/sol-sdk/batch/create.d.ts.map +1 -1
- package/dist/src/sol-sdk/batch/create.js +44 -44
- package/dist/src/sol-sdk/batch/create.js.map +1 -1
- package/dist/src/sol-sdk/batch/index.js +135 -135
- package/dist/src/sol-sdk/batch/index.js.map +1 -1
- package/dist/src/sol-sdk/calc.d.ts +63 -63
- package/dist/src/sol-sdk/calc.d.ts.map +1 -1
- package/dist/src/sol-sdk/calc.js +120 -120
- package/dist/src/sol-sdk/calc.js.map +1 -1
- package/dist/src/sol-sdk/jito/index.js +12 -12
- package/dist/src/sol-sdk/jito/index.js.map +1 -1
- package/dist/src/sol-sdk/launchlab/instructions/create.js +10 -10
- package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -1
- package/dist/src/sol-sdk/meteora/index.d.ts +5 -5
- package/dist/src/sol-sdk/meteora/index.js +11 -11
- package/dist/src/sol-sdk/meteora/index.js.map +1 -1
- package/dist/src/sol-sdk/meteora/instructions/buy.js +8 -8
- package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/meteora/instructions/sell.js +6 -6
- package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pump/index.js +3 -3
- package/dist/src/sol-sdk/pump/index.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/buy.d.ts +12 -12
- package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/buy.js +26 -26
- package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +13 -13
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +17 -17
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/sell.d.ts +2 -2
- package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/sell.js +7 -7
- package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/index.d.ts +4 -4
- package/dist/src/sol-sdk/pumpswap/index.js +5 -5
- package/dist/src/sol-sdk/pumpswap/index.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +8 -8
- package/dist/src/sol-sdk/pumpswap/instructions/buy.js +19 -19
- package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +2 -2
- package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/sell.js +4 -4
- package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/rpc/index.js +1 -1
- package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +3 -3
- package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +40 -8520
- package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/sell.js +6 -6
- package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/raydium/rpc/index.d.ts +4 -4
- package/dist/src/sol-sdk/rpc/index.d.ts +14 -14
- package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -1
- package/dist/src/sol-sdk/rpc/index.js +17 -17
- package/dist/src/sol-sdk/rpc/index.js.map +1 -1
- package/dist/src/sol-sdk/transfer/index.js +5 -5
- package/dist/src/sol-sdk/transfer/index.js.map +1 -1
- package/dist/src/sol-sdk/turnover/index.d.ts +3 -3
- package/dist/src/sol-sdk/turnover/index.js +56 -56
- package/dist/src/sol-sdk/turnover/index.js.map +1 -1
- package/dist/src/telemetry.d.ts +8 -8
- package/dist/src/telemetry.d.ts.map +1 -1
- package/dist/src/telemetry.js +25 -25
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/tx-tracker/detail-adapter.d.ts +53 -53
- package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -1
- package/dist/src/tx-tracker/detail-adapter.js +68 -68
- package/dist/src/tx-tracker/detail-adapter.js.map +1 -1
- package/dist/src/tx-tracker/index.d.ts +67 -67
- package/dist/src/tx-tracker/index.d.ts.map +1 -1
- package/dist/src/tx-tracker/index.js +103 -103
- package/dist/src/tx-tracker/index.js.map +1 -1
- package/dist/src/types/index.d.ts +10 -10
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/websocket.js +1 -1
- package/dist/src/types/websocket.js.map +1 -1
- package/dist/src/utils/index.js +20 -20
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/wallet-store.d.ts +51 -51
- package/dist/src/wallet-store.d.ts.map +1 -1
- package/dist/src/wallet-store.js +104 -104
- package/dist/src/wallet-store.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,14 +20,14 @@ async function getMeteoraDLMM() {
|
|
|
20
20
|
_MeteoraDLMM = mod.default;
|
|
21
21
|
}
|
|
22
22
|
catch {
|
|
23
|
-
throw new Error('@meteora-ag/dlmm
|
|
23
|
+
throw new Error('@meteora-ag/dlmm is not installed. Please run: npm install @meteora-ag/dlmm');
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
return _MeteoraDLMM;
|
|
27
27
|
}
|
|
28
28
|
import { getBinArray } from '../meteora/index.js';
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Execute a single turnover trade (bundled buy + sell transaction)
|
|
31
31
|
*/
|
|
32
32
|
export const executeSingleTurnover = async (params) => {
|
|
33
33
|
const { connection, fromWallet, toWallet, tokenAddress, tokenAmount, decimals, exchangeName, poolInfo, priceInSol, creatorAddress, priorityFee, slippage = 1, fallbackSendTx = false, pumpfunReverseInfo, ammReverseInfo, raydiumV4Keys, raydiumCpmmKeys, pumpswapReverseInfo, launchlabReverseInfo, meteoraDLMMReverseInfo, } = params;
|
|
@@ -43,7 +43,7 @@ export const executeSingleTurnover = async (params) => {
|
|
|
43
43
|
poolId: poolInfo.pairAddress,
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
// 1.
|
|
46
|
+
// 1. Build buy transaction (receiver wallet buys tokens)
|
|
47
47
|
const buyTx = await buildBuyTransaction({
|
|
48
48
|
connection,
|
|
49
49
|
buyerKeypair: toKeypair,
|
|
@@ -66,7 +66,7 @@ export const executeSingleTurnover = async (params) => {
|
|
|
66
66
|
meteoraDLMMReverseInfo,
|
|
67
67
|
binArray,
|
|
68
68
|
});
|
|
69
|
-
// 2.
|
|
69
|
+
// 2. Build sell transaction (sender wallet sells tokens)
|
|
70
70
|
const sellTx = await buildSellTransaction({
|
|
71
71
|
connection,
|
|
72
72
|
sellerKeypair: fromKeypair,
|
|
@@ -93,7 +93,7 @@ export const executeSingleTurnover = async (params) => {
|
|
|
93
93
|
sellTx.add(tipTx);
|
|
94
94
|
buyTx.sign(toKeypair);
|
|
95
95
|
sellTx.sign(fromKeypair);
|
|
96
|
-
//
|
|
96
|
+
// Extract transaction signatures (for result display and RPC confirmation)
|
|
97
97
|
const buyTxSig = bs58.encode(buyTx.signature);
|
|
98
98
|
const sellTxSig = bs58.encode(sellTx.signature);
|
|
99
99
|
const simulation1 = await connection.simulateTransaction(buyTx);
|
|
@@ -101,7 +101,7 @@ export const executeSingleTurnover = async (params) => {
|
|
|
101
101
|
if (simulation1.value.err) {
|
|
102
102
|
return {
|
|
103
103
|
success: false,
|
|
104
|
-
error:
|
|
104
|
+
error: `Buy transaction simulation failed: ${JSON.stringify(simulation1.value.err)} | ${simulation1.value.logs?.slice(-3)?.join(' | ')}`,
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
const simulation2 = await connection.simulateTransaction(sellTx);
|
|
@@ -109,14 +109,14 @@ export const executeSingleTurnover = async (params) => {
|
|
|
109
109
|
if (simulation2.value.err) {
|
|
110
110
|
return {
|
|
111
111
|
success: false,
|
|
112
|
-
error:
|
|
112
|
+
error: `Sell transaction simulation failed: ${JSON.stringify(simulation2.value.err)} | ${simulation2.value.logs?.slice(-3)?.join(' | ')}`,
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
|
-
// 3.
|
|
115
|
+
// 3. Merge buy + sell instructions into a single transaction (same signature / same block)
|
|
116
116
|
const combinedTx = new Transaction();
|
|
117
117
|
combinedTx.recentBlockhash = blockhash;
|
|
118
118
|
combinedTx.feePayer = fromKeypair.publicKey;
|
|
119
|
-
//
|
|
119
|
+
// Order must be buy first then sell; filter duplicate ComputeBudget instructions during merge
|
|
120
120
|
const seenComputeBudgetTypes = new Set();
|
|
121
121
|
const appendInstruction = (ix) => {
|
|
122
122
|
if (ix.programId.equals(ComputeBudgetProgram.programId)) {
|
|
@@ -133,37 +133,37 @@ export const executeSingleTurnover = async (params) => {
|
|
|
133
133
|
appendInstruction(ix);
|
|
134
134
|
for (const ix of sellTx.instructions)
|
|
135
135
|
appendInstruction(ix);
|
|
136
|
-
//
|
|
136
|
+
// Both wallets need to sign
|
|
137
137
|
combinedTx.sign(toKeypair, fromKeypair);
|
|
138
138
|
const simCombined = await connection.simulateTransaction(combinedTx);
|
|
139
139
|
if (simCombined.value.err) {
|
|
140
140
|
return {
|
|
141
141
|
success: false,
|
|
142
|
-
error:
|
|
142
|
+
error: `Combined transaction simulation failed: ${JSON.stringify(simCombined.value.err)} | ${simCombined.value.logs?.slice(-3)?.join(' | ')}`,
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
145
|
const combinedTxBase64 = Buffer.from(combinedTx.serialize()).toString('base64');
|
|
146
146
|
const sendResult = await jitoAdapter.sendTransaction(combinedTxBase64);
|
|
147
|
-
console.log(`[Turnover]
|
|
147
|
+
console.log(`[Turnover] Combined transaction sent, txHash: ${sendResult.txHash}`);
|
|
148
148
|
const confirm = await jitoAdapter.confirmTransactionByRpc(connection, sendResult.txHash, 90000);
|
|
149
149
|
return {
|
|
150
150
|
success: confirm.success,
|
|
151
151
|
bundleId: undefined,
|
|
152
152
|
buyTxHash: sendResult.txHash,
|
|
153
153
|
sellTxHash: sendResult.txHash,
|
|
154
|
-
error: confirm.success ? undefined :
|
|
154
|
+
error: confirm.success ? undefined : `Combined transaction not confirmed: ${confirm.error}`,
|
|
155
155
|
};
|
|
156
156
|
}
|
|
157
157
|
catch (error) {
|
|
158
|
-
console.error('
|
|
158
|
+
console.error('Turnover trade execution failed:', error);
|
|
159
159
|
return {
|
|
160
160
|
success: false,
|
|
161
|
-
error: error instanceof Error ? error.message : '
|
|
161
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
164
|
};
|
|
165
165
|
/**
|
|
166
|
-
*
|
|
166
|
+
* Execute batch turnover trades
|
|
167
167
|
*/
|
|
168
168
|
export const executeBatchTurnover = async (params) => {
|
|
169
169
|
const { turnoverItems, intervalMs = 1000 } = params;
|
|
@@ -177,7 +177,7 @@ export const executeBatchTurnover = async (params) => {
|
|
|
177
177
|
tokenAmount: item.tokenAmount,
|
|
178
178
|
});
|
|
179
179
|
results.push(result);
|
|
180
|
-
//
|
|
180
|
+
// Add trade interval (no interval needed after last trade)
|
|
181
181
|
if (i < turnoverItems.length - 1) {
|
|
182
182
|
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
183
183
|
}
|
|
@@ -185,7 +185,7 @@ export const executeBatchTurnover = async (params) => {
|
|
|
185
185
|
return results;
|
|
186
186
|
};
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
188
|
+
* Build buy transaction
|
|
189
189
|
*/
|
|
190
190
|
async function buildBuyTransaction(params) {
|
|
191
191
|
const { connection, buyerKeypair, tokenAddress, tokenAmount, decimals, exchangeName, poolInfo, priceInSol, creatorAddress, priorityFee, slippage, blockhash, pumpfunReverseInfo, ammReverseInfo, raydiumV4Keys, raydiumCpmmKeys, pumpswapReverseInfo, launchlabReverseInfo, meteoraDLMMReverseInfo, binArray, } = params;
|
|
@@ -194,14 +194,14 @@ async function buildBuyTransaction(params) {
|
|
|
194
194
|
const provider = new AnchorProvider(connection, {
|
|
195
195
|
publicKey: buyerKeypair.publicKey,
|
|
196
196
|
signTransaction: async () => {
|
|
197
|
-
throw new Error('
|
|
197
|
+
throw new Error('Signing not supported');
|
|
198
198
|
},
|
|
199
199
|
signAllTransactions: async () => {
|
|
200
|
-
throw new Error('
|
|
200
|
+
throw new Error('Signing not supported');
|
|
201
201
|
},
|
|
202
202
|
});
|
|
203
203
|
if (exchangeName === 'Pump') {
|
|
204
|
-
// Pump.fun
|
|
204
|
+
// Pump.fun buy
|
|
205
205
|
const solAmount = new BigNumber(tokenAmount)
|
|
206
206
|
.times(priceInSol)
|
|
207
207
|
.times(LAMPORTS_PER_SOL)
|
|
@@ -212,7 +212,7 @@ async function buildBuyTransaction(params) {
|
|
|
212
212
|
buyTx.add(buyInstruction);
|
|
213
213
|
}
|
|
214
214
|
else if (exchangeName === 'PumpSwap') {
|
|
215
|
-
// PumpSwap
|
|
215
|
+
// PumpSwap buy
|
|
216
216
|
let info = ammReverseInfo;
|
|
217
217
|
if (!info) {
|
|
218
218
|
const rawInfo = await pumpSwapGetPoolInfo(connection, poolInfo.pairAddress);
|
|
@@ -245,7 +245,7 @@ async function buildBuyTransaction(params) {
|
|
|
245
245
|
slippage,
|
|
246
246
|
creator: new PublicKey(creatorAddress),
|
|
247
247
|
});
|
|
248
|
-
//
|
|
248
|
+
// Check if buyer wallet needs user_volume_accumulator initialization
|
|
249
249
|
const initVolumeIx = await getInitUserVolumeAccumulatorIxIfNeeded(connection, buyerKeypair.publicKey, buyerKeypair.publicKey);
|
|
250
250
|
if (initVolumeIx) {
|
|
251
251
|
buyTx.add(initVolumeIx);
|
|
@@ -253,9 +253,9 @@ async function buildBuyTransaction(params) {
|
|
|
253
253
|
buyTx.add(buyInstruction);
|
|
254
254
|
}
|
|
255
255
|
else if (exchangeName === 'Raydium') {
|
|
256
|
-
// Raydium V4
|
|
256
|
+
// Raydium V4 buy
|
|
257
257
|
if (!raydiumV4Keys) {
|
|
258
|
-
throw new Error('Raydium V4 Keys
|
|
258
|
+
throw new Error('Raydium V4 Keys not provided');
|
|
259
259
|
}
|
|
260
260
|
let info = ammReverseInfo;
|
|
261
261
|
let raydiumPoolInfo;
|
|
@@ -285,9 +285,9 @@ async function buildBuyTransaction(params) {
|
|
|
285
285
|
buyTx.add(buyInstruction);
|
|
286
286
|
}
|
|
287
287
|
else if (exchangeName === 'Raydium CPMM') {
|
|
288
|
-
// Raydium CPMM
|
|
288
|
+
// Raydium CPMM buy
|
|
289
289
|
if (!raydiumCpmmKeys) {
|
|
290
|
-
throw new Error('Raydium CPMM Keys
|
|
290
|
+
throw new Error('Raydium CPMM Keys not provided');
|
|
291
291
|
}
|
|
292
292
|
let info = ammReverseInfo;
|
|
293
293
|
if (!info) {
|
|
@@ -319,14 +319,14 @@ async function buildBuyTransaction(params) {
|
|
|
319
319
|
buyTx.add(buyInstruction);
|
|
320
320
|
}
|
|
321
321
|
else if (exchangeName === 'LaunchLab') {
|
|
322
|
-
// Launchlab
|
|
322
|
+
// Launchlab buy
|
|
323
323
|
const provider = new AnchorProvider(connection, {
|
|
324
324
|
publicKey: buyerKeypair.publicKey,
|
|
325
325
|
signTransaction: async () => {
|
|
326
|
-
throw new Error('
|
|
326
|
+
throw new Error('Signing not supported');
|
|
327
327
|
},
|
|
328
328
|
signAllTransactions: async () => {
|
|
329
|
-
throw new Error('
|
|
329
|
+
throw new Error('Signing not supported');
|
|
330
330
|
},
|
|
331
331
|
});
|
|
332
332
|
const solAmount = new BigNumber(tokenAmount)
|
|
@@ -350,9 +350,9 @@ async function buildBuyTransaction(params) {
|
|
|
350
350
|
const dlmmPool = await MeteoraDLMM.create(connection, new PublicKey(poolInfo.pairAddress));
|
|
351
351
|
const swapQuote = dlmmPool.swapQuote(new BN(new BigNumber(tokenAmount).times(10 ** decimals).toFixed(0)), poolInfo.tokenB == NATIVE_MINT.toBase58(), new BN(slippage), binArray || []);
|
|
352
352
|
if (!meteoraDLMMReverseInfo) {
|
|
353
|
-
throw new Error('Meteora DLMM Reverse Info
|
|
353
|
+
throw new Error('Meteora DLMM Reverse Info not provided');
|
|
354
354
|
}
|
|
355
|
-
// Meteora
|
|
355
|
+
// Meteora buy
|
|
356
356
|
const buyInstruction = await meteoraDlmmBuyExactOutInstructions({
|
|
357
357
|
provider,
|
|
358
358
|
owner: buyerKeypair,
|
|
@@ -374,9 +374,9 @@ async function buildBuyTransaction(params) {
|
|
|
374
374
|
buyTx.add(buyInstruction);
|
|
375
375
|
}
|
|
376
376
|
else {
|
|
377
|
-
throw new Error(
|
|
377
|
+
throw new Error(`Unsupported exchange: ${exchangeName}`);
|
|
378
378
|
}
|
|
379
|
-
//
|
|
379
|
+
// Add priority fee
|
|
380
380
|
// if (priorityFee > 0) {
|
|
381
381
|
// const { limitIx, priceIx } = getCU(priorityFee);
|
|
382
382
|
// buyTx.add(limitIx);
|
|
@@ -386,7 +386,7 @@ async function buildBuyTransaction(params) {
|
|
|
386
386
|
return buyTx;
|
|
387
387
|
}
|
|
388
388
|
/**
|
|
389
|
-
*
|
|
389
|
+
* Build sell transaction
|
|
390
390
|
*/
|
|
391
391
|
async function buildSellTransaction(params) {
|
|
392
392
|
const { connection, sellerKeypair, tokenAddress, tokenAmount, decimals, exchangeName, poolInfo, priceInSol, creatorAddress, priorityFee, slippage, blockhash, pumpfunReverseInfo, ammReverseInfo, raydiumV4Keys, raydiumCpmmKeys, pumpswapReverseInfo, launchlabReverseInfo, meteoraDLMMReverseInfo, binArray, } = params;
|
|
@@ -396,14 +396,14 @@ async function buildSellTransaction(params) {
|
|
|
396
396
|
const provider = new AnchorProvider(connection, {
|
|
397
397
|
publicKey: sellerKeypair.publicKey,
|
|
398
398
|
signTransaction: async () => {
|
|
399
|
-
throw new Error('
|
|
399
|
+
throw new Error('Signing not supported');
|
|
400
400
|
},
|
|
401
401
|
signAllTransactions: async () => {
|
|
402
|
-
throw new Error('
|
|
402
|
+
throw new Error('Signing not supported');
|
|
403
403
|
},
|
|
404
404
|
});
|
|
405
405
|
if (exchangeName === 'Pump') {
|
|
406
|
-
// Pump.fun
|
|
406
|
+
// Pump.fun sell
|
|
407
407
|
const expectedSolOutput = new BigNumber(tokenAmount)
|
|
408
408
|
.times(priceInSol)
|
|
409
409
|
.times(1 - slippage)
|
|
@@ -413,7 +413,7 @@ async function buildSellTransaction(params) {
|
|
|
413
413
|
sellTx.add(sellInstruction);
|
|
414
414
|
}
|
|
415
415
|
else if (exchangeName === 'PumpSwap') {
|
|
416
|
-
// PumpSwap
|
|
416
|
+
// PumpSwap sell
|
|
417
417
|
let poolData = ammReverseInfo;
|
|
418
418
|
if (!poolData) {
|
|
419
419
|
const rawPoolData = await pumpSwapGetPoolInfo(connection, poolInfo.pairAddress);
|
|
@@ -452,11 +452,11 @@ async function buildSellTransaction(params) {
|
|
|
452
452
|
sellTx.add(sellInstruction);
|
|
453
453
|
}
|
|
454
454
|
else if (exchangeName === 'Raydium') {
|
|
455
|
-
// Raydium V4
|
|
455
|
+
// Raydium V4 sell
|
|
456
456
|
if (!raydiumV4Keys) {
|
|
457
|
-
throw new Error('Raydium V4 Keys
|
|
457
|
+
throw new Error('Raydium V4 Keys not provided');
|
|
458
458
|
}
|
|
459
|
-
//
|
|
459
|
+
// Get pool info
|
|
460
460
|
let baseReserve, quoteReserve, mintA, mintB;
|
|
461
461
|
if (ammReverseInfo) {
|
|
462
462
|
baseReserve = ammReverseInfo.poolBaseTokenInfo.amount;
|
|
@@ -489,11 +489,11 @@ async function buildSellTransaction(params) {
|
|
|
489
489
|
sellTx.add(sellInstruction);
|
|
490
490
|
}
|
|
491
491
|
else if (exchangeName === 'Raydium CPMM') {
|
|
492
|
-
// Raydium CPMM
|
|
492
|
+
// Raydium CPMM sell
|
|
493
493
|
if (!raydiumCpmmKeys) {
|
|
494
|
-
throw new Error('Raydium CPMM Keys
|
|
494
|
+
throw new Error('Raydium CPMM Keys not provided');
|
|
495
495
|
}
|
|
496
|
-
//
|
|
496
|
+
// Get pool info
|
|
497
497
|
let baseReserve, quoteReserve, mintA, mintB;
|
|
498
498
|
if (ammReverseInfo) {
|
|
499
499
|
baseReserve = ammReverseInfo.poolBaseTokenInfo.amount;
|
|
@@ -531,22 +531,22 @@ async function buildSellTransaction(params) {
|
|
|
531
531
|
sellTx.add(sellInstruction);
|
|
532
532
|
}
|
|
533
533
|
else if (exchangeName === 'LaunchLab') {
|
|
534
|
-
// Launchlab
|
|
534
|
+
// Launchlab sell
|
|
535
535
|
const provider = new AnchorProvider(connection, {
|
|
536
536
|
publicKey: sellerKeypair.publicKey,
|
|
537
537
|
signTransaction: async () => {
|
|
538
|
-
throw new Error('
|
|
538
|
+
throw new Error('Signing not supported');
|
|
539
539
|
},
|
|
540
540
|
signAllTransactions: async () => {
|
|
541
|
-
throw new Error('
|
|
541
|
+
throw new Error('Signing not supported');
|
|
542
542
|
},
|
|
543
543
|
});
|
|
544
|
-
//
|
|
544
|
+
// Get pool info
|
|
545
545
|
let poolData = launchlabReverseInfo;
|
|
546
546
|
if (!poolData) {
|
|
547
547
|
poolData = await getLaunchlabReverseInfo({ connection, poolId: poolInfo.pairAddress });
|
|
548
548
|
}
|
|
549
|
-
//
|
|
549
|
+
// Create calculator instance
|
|
550
550
|
const launchlabCalc = new LaunchlabAmmCalc({
|
|
551
551
|
baseDecimals: poolData.baseDecimals,
|
|
552
552
|
quoteDecimals: poolData.quoteDecimals,
|
|
@@ -572,12 +572,12 @@ async function buildSellTransaction(params) {
|
|
|
572
572
|
sellTx.add(sellInstruction);
|
|
573
573
|
}
|
|
574
574
|
else if (exchangeName === 'Meteora') {
|
|
575
|
-
// Meteora
|
|
575
|
+
// Meteora sell
|
|
576
576
|
const MeteoraDLMM = await getMeteoraDLMM();
|
|
577
577
|
const dlmmPool = await MeteoraDLMM.create(connection, new PublicKey(poolInfo.pairAddress));
|
|
578
578
|
const swapQuote = dlmmPool.swapQuote(new BN(tokenAmountInDecimals), poolInfo.tokenB == NATIVE_MINT.toBase58(), new BN(slippage), binArray || []);
|
|
579
579
|
if (!meteoraDLMMReverseInfo) {
|
|
580
|
-
throw new Error('Meteora DLMM Reverse Info
|
|
580
|
+
throw new Error('Meteora DLMM Reverse Info not provided');
|
|
581
581
|
}
|
|
582
582
|
const sellInstruction = await meteoraDlmmSellInstructions({
|
|
583
583
|
provider,
|
|
@@ -600,9 +600,9 @@ async function buildSellTransaction(params) {
|
|
|
600
600
|
sellTx.add(sellInstruction);
|
|
601
601
|
}
|
|
602
602
|
else {
|
|
603
|
-
throw new Error(
|
|
603
|
+
throw new Error(`Unsupported exchange: ${exchangeName}`);
|
|
604
604
|
}
|
|
605
|
-
//
|
|
605
|
+
// Add priority fee
|
|
606
606
|
// if (priorityFee > 0) {
|
|
607
607
|
// const { limitIx, priceIx } = getCU(priorityFee);
|
|
608
608
|
// sellTx.add(limitIx);
|
|
@@ -612,9 +612,9 @@ async function buildSellTransaction(params) {
|
|
|
612
612
|
return sellTx;
|
|
613
613
|
}
|
|
614
614
|
/**
|
|
615
|
-
*
|
|
615
|
+
* Calculate SOL transfer amount for turnover trades
|
|
616
616
|
*/
|
|
617
|
-
export const calculateTurnoverProfit = (tokenAmount, priceInSol, slippage = 0.01, fees = 0.02 // 2
|
|
617
|
+
export const calculateTurnoverProfit = (tokenAmount, priceInSol, slippage = 0.01, fees = 0.02 // 2% fees (slippage + transaction fees)
|
|
618
618
|
) => {
|
|
619
619
|
return new BigNumber(tokenAmount)
|
|
620
620
|
.times(priceInSol)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sol-sdk/turnover/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sol-sdk/turnover/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/telemetry.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ForgeX CLI
|
|
2
|
+
* ForgeX CLI Anonymous Usage Telemetry
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* - Async fire-and-forget, does not block command execution
|
|
5
|
+
* - Failures are silently ignored, no impact on user experience
|
|
6
|
+
* - Supports opt-out: `forgex config set telemetry false` or `FORGEX_NO_TELEMETRY=1`
|
|
7
|
+
* - Does not collect any private keys, addresses, transaction content, or other sensitive data
|
|
8
8
|
*/
|
|
9
|
-
/**
|
|
9
|
+
/** Track command execution event */
|
|
10
10
|
export declare function trackCommand(command: string, properties?: Record<string, unknown>): void;
|
|
11
|
-
/**
|
|
11
|
+
/** Track custom event */
|
|
12
12
|
export declare function trackEvent(event: string, properties?: Record<string, unknown>): void;
|
|
13
|
-
/**
|
|
13
|
+
/** Flush all pending events before process exit (non-blocking) */
|
|
14
14
|
export declare function shutdownTelemetry(): Promise<void>;
|
|
15
15
|
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyHH,
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyHH,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAsBxF;AAED,yBAAyB;AACzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiBpF;AAED,kEAAkE;AAClE,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvD"}
|
package/dist/src/telemetry.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ForgeX CLI
|
|
2
|
+
* ForgeX CLI Anonymous Usage Telemetry
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* - Async fire-and-forget, does not block command execution
|
|
5
|
+
* - Failures are silently ignored, no impact on user experience
|
|
6
|
+
* - Supports opt-out: `forgex config set telemetry false` or `FORGEX_NO_TELEMETRY=1`
|
|
7
|
+
* - Does not collect any private keys, addresses, transaction content, or other sensitive data
|
|
8
8
|
*/
|
|
9
9
|
import { PostHog } from 'posthog-node';
|
|
10
10
|
import { randomUUID } from 'crypto';
|
|
@@ -13,15 +13,15 @@ import os from 'os';
|
|
|
13
13
|
import path from 'path';
|
|
14
14
|
import { FORGEX_DIR, ensureConfigDir, loadConfig } from './config.js';
|
|
15
15
|
// ============================================================
|
|
16
|
-
//
|
|
16
|
+
// Constants
|
|
17
17
|
// ============================================================
|
|
18
|
-
const POSTHOG_API_KEY = '
|
|
19
|
-
const POSTHOG_HOST = 'https://
|
|
18
|
+
const POSTHOG_API_KEY = 'phc_nYSQzmljgTrNqmuHonEWEjGXzX97B9w81D9DzsiVYlX';
|
|
19
|
+
const POSTHOG_HOST = 'https://eu.i.posthog.com';
|
|
20
20
|
const ANONYMOUS_ID_FILE = path.join(FORGEX_DIR, '.anonymous-id');
|
|
21
21
|
// ============================================================
|
|
22
|
-
//
|
|
22
|
+
// Anonymous ID Management
|
|
23
23
|
// ============================================================
|
|
24
|
-
/**
|
|
24
|
+
/** Get or generate a persistent anonymous ID (not linked to any user identity) */
|
|
25
25
|
function getAnonymousId() {
|
|
26
26
|
ensureConfigDir();
|
|
27
27
|
try {
|
|
@@ -42,7 +42,7 @@ function getAnonymousId() {
|
|
|
42
42
|
return id;
|
|
43
43
|
}
|
|
44
44
|
// ============================================================
|
|
45
|
-
//
|
|
45
|
+
// Install Source Detection
|
|
46
46
|
// ============================================================
|
|
47
47
|
function detectInstallSource() {
|
|
48
48
|
// npm install
|
|
@@ -61,18 +61,18 @@ function detectInstallSource() {
|
|
|
61
61
|
return 'manual';
|
|
62
62
|
}
|
|
63
63
|
// ============================================================
|
|
64
|
-
// Telemetry
|
|
64
|
+
// Telemetry Toggle
|
|
65
65
|
// ============================================================
|
|
66
66
|
function isTelemetryEnabled() {
|
|
67
|
-
//
|
|
67
|
+
// Environment variables take priority
|
|
68
68
|
if (process.env.FORGEX_NO_TELEMETRY === '1' || process.env.DO_NOT_TRACK === '1') {
|
|
69
69
|
return false;
|
|
70
70
|
}
|
|
71
|
-
// CI
|
|
71
|
+
// Disabled by default in CI environments
|
|
72
72
|
if (process.env.CI === 'true' || process.env.CI === '1') {
|
|
73
73
|
return false;
|
|
74
74
|
}
|
|
75
|
-
//
|
|
75
|
+
// Config file
|
|
76
76
|
try {
|
|
77
77
|
const config = loadConfig();
|
|
78
78
|
if (config.telemetry === false) {
|
|
@@ -85,7 +85,7 @@ function isTelemetryEnabled() {
|
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
87
|
// ============================================================
|
|
88
|
-
// PostHog
|
|
88
|
+
// PostHog Client (lazy initialization)
|
|
89
89
|
// ============================================================
|
|
90
90
|
let _client = null;
|
|
91
91
|
function getClient() {
|
|
@@ -98,15 +98,15 @@ function getClient() {
|
|
|
98
98
|
flushInterval: 10000,
|
|
99
99
|
requestTimeout: 3000,
|
|
100
100
|
});
|
|
101
|
-
//
|
|
101
|
+
// Swallow all PostHog errors to avoid affecting CLI main flow
|
|
102
102
|
_client.on?.('error', () => { });
|
|
103
103
|
}
|
|
104
104
|
return _client;
|
|
105
105
|
}
|
|
106
106
|
// ============================================================
|
|
107
|
-
//
|
|
107
|
+
// Public API
|
|
108
108
|
// ============================================================
|
|
109
|
-
/**
|
|
109
|
+
/** Track command execution event */
|
|
110
110
|
export function trackCommand(command, properties) {
|
|
111
111
|
try {
|
|
112
112
|
const client = getClient();
|
|
@@ -128,10 +128,10 @@ export function trackCommand(command, properties) {
|
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
catch {
|
|
131
|
-
//
|
|
131
|
+
// Tracking failure does not affect user operations
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
/**
|
|
134
|
+
/** Track custom event */
|
|
135
135
|
export function trackEvent(event, properties) {
|
|
136
136
|
try {
|
|
137
137
|
const client = getClient();
|
|
@@ -148,14 +148,14 @@ export function trackEvent(event, properties) {
|
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
catch {
|
|
151
|
-
//
|
|
151
|
+
// Tracking failure does not affect user operations
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
/**
|
|
154
|
+
/** Flush all pending events before process exit (non-blocking) */
|
|
155
155
|
export async function shutdownTelemetry() {
|
|
156
156
|
try {
|
|
157
157
|
if (_client) {
|
|
158
|
-
//
|
|
158
|
+
// Don't wait for flush, destroy client immediately to avoid network timeout blocking process exit
|
|
159
159
|
_client.shutdown().catch(() => { });
|
|
160
160
|
_client = null;
|
|
161
161
|
}
|
|
@@ -165,7 +165,7 @@ export async function shutdownTelemetry() {
|
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
// ============================================================
|
|
168
|
-
//
|
|
168
|
+
// Utility Functions
|
|
169
169
|
// ============================================================
|
|
170
170
|
function getCliVersion() {
|
|
171
171
|
try {
|