@deserialize/multi-vm-wallet 1.0.37 → 1.0.372

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/svm/utils.js CHANGED
@@ -8,7 +8,12 @@ const transactionSender_1 = require("./transactionSender");
8
8
  const bn_js_1 = require("bn.js");
9
9
  const JUPITER_BASE_URL = 'https://lite-api.jup.ag';
10
10
  const createV0Transaction = async (connection, inX, signers, payerPubKey, blockHash) => {
11
+ console.log('createV0Transaction: Starting transaction creation');
12
+ console.log('Instructions count:', inX.length);
13
+ console.log('Signers count:', signers.length);
14
+ console.log('Payer public key:', payerPubKey.toString());
11
15
  const blockhash = blockHash || (await connection.getLatestBlockhash()).blockhash;
16
+ console.log('Using blockhash:', blockhash);
12
17
  const message = new web3_js_1.TransactionMessage({
13
18
  payerKey: payerPubKey,
14
19
  instructions: inX,
@@ -17,18 +22,30 @@ const createV0Transaction = async (connection, inX, signers, payerPubKey, blockH
17
22
  const transaction = new web3_js_1.VersionedTransaction(message);
18
23
  transaction.message.staticAccountKeys;
19
24
  if (signers.length < 1) {
25
+ console.log('Signing transaction with signers');
20
26
  transaction.sign(signers);
21
27
  }
28
+ console.log('createV0Transaction: Transaction created successfully');
22
29
  return transaction;
23
30
  };
24
31
  exports.createV0Transaction = createV0Transaction;
25
32
  const createAtaAndIx = async (token, ownerPublicKey, tokenProgramId, connection) => {
33
+ console.log('createAtaAndIx: Starting ATA creation');
34
+ console.log('Token:', token.toString());
35
+ console.log('Owner:', ownerPublicKey.toString());
36
+ console.log('Token Program ID:', tokenProgramId.toString());
26
37
  let AtaTokenIx;
27
38
  const associatedToken = (0, spl_token_1.getAssociatedTokenAddressSync)(token, ownerPublicKey, false, tokenProgramId);
39
+ console.log('Associated token address:', associatedToken.toString());
28
40
  const accountExist = await connection.getAccountInfo(associatedToken);
29
41
  if (!accountExist) {
42
+ console.log('Account does not exist, creating ATA instruction');
30
43
  AtaTokenIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(ownerPublicKey, associatedToken, ownerPublicKey, token, tokenProgramId);
31
44
  }
45
+ else {
46
+ console.log('Account already exists, no ATA instruction needed');
47
+ }
48
+ console.log('createAtaAndIx: Completed');
32
49
  return {
33
50
  AtaTokenIx,
34
51
  associatedToken,
@@ -36,6 +53,9 @@ const createAtaAndIx = async (token, ownerPublicKey, tokenProgramId, connection)
36
53
  };
37
54
  exports.createAtaAndIx = createAtaAndIx;
38
55
  const getSureAssociatedTokenAddressAndAccount = async (connection, token, owner) => {
56
+ console.log('getSureAssociatedTokenAddressAndAccount: Starting');
57
+ console.log('Token:', token.toString());
58
+ console.log('Owner:', owner.toString());
39
59
  let ATA;
40
60
  let programId;
41
61
  let tokenAccount;
@@ -43,78 +63,112 @@ const getSureAssociatedTokenAddressAndAccount = async (connection, token, owner)
43
63
  programId = token.equals(spl_token_1.NATIVE_MINT)
44
64
  ? spl_token_1.TOKEN_PROGRAM_ID
45
65
  : spl_token_1.TOKEN_2022_PROGRAM_ID;
66
+ console.log('Trying with program ID:', programId.toString());
46
67
  ATA = (0, spl_token_1.getAssociatedTokenAddressSync)(token, owner, true, programId);
68
+ console.log('ATA address:', ATA.toString());
47
69
  tokenAccount = await (0, spl_token_1.getAccount)(connection, ATA, "confirmed", programId);
70
+ console.log('Token account found with TOKEN_2022_PROGRAM_ID');
48
71
  return { ATA, programId, tokenAccount };
49
72
  }
50
73
  catch (error) {
74
+ console.log('Failed with TOKEN_2022_PROGRAM_ID, trying TOKEN_PROGRAM_ID');
75
+ console.log('Error:', error);
51
76
  programId = spl_token_1.TOKEN_PROGRAM_ID;
52
77
  ATA = (0, spl_token_1.getAssociatedTokenAddressSync)(token, owner, true, programId);
78
+ console.log('New ATA address:', ATA.toString());
53
79
  tokenAccount = await (0, spl_token_1.getAccount)(connection, ATA, "confirmed", programId);
80
+ console.log('Token account found with TOKEN_PROGRAM_ID');
54
81
  return { ATA, programId, tokenAccount };
55
82
  }
56
83
  };
57
84
  exports.getSureAssociatedTokenAddressAndAccount = getSureAssociatedTokenAddressAndAccount;
58
85
  const getProgramIdOfToken = async (owner, token, connection) => {
86
+ console.log('getProgramIdOfToken: Starting');
87
+ console.log('Owner:', owner.toString());
88
+ console.log('Token:', token.toString());
59
89
  if (token.equals(spl_token_1.NATIVE_MINT)) {
90
+ console.log('Token is native mint, returning TOKEN_PROGRAM_ID');
60
91
  return spl_token_1.TOKEN_PROGRAM_ID;
61
92
  }
62
93
  let ATA;
63
94
  let programId = spl_token_1.TOKEN_PROGRAM_ID;
64
95
  let tokenAccount;
65
96
  try {
97
+ console.log('Trying with TOKEN_PROGRAM_ID');
66
98
  ATA = (0, spl_token_1.getAssociatedTokenAddressSync)(token, owner, true, programId);
67
99
  tokenAccount = await (0, spl_token_1.getAccount)(connection, ATA, "confirmed", programId);
100
+ console.log('Found with TOKEN_PROGRAM_ID');
68
101
  return spl_token_1.TOKEN_PROGRAM_ID;
69
102
  }
70
103
  catch (error) {
104
+ console.log('Failed with TOKEN_PROGRAM_ID, returning TOKEN_2022_PROGRAM_ID');
105
+ console.log('Error:', error);
71
106
  return spl_token_1.TOKEN_2022_PROGRAM_ID;
72
107
  }
73
108
  };
74
109
  exports.getProgramIdOfToken = getProgramIdOfToken;
75
110
  //get native balance
76
111
  const getSvmNativeBalance = async (address, connection) => {
112
+ console.log('getSvmNativeBalance: Getting balance for', address.toString());
77
113
  const balance = await connection.getBalance(address);
114
+ console.log('Raw balance:', balance);
115
+ console.log('Formatted balance:', balance / web3_js_1.LAMPORTS_PER_SOL, 'SOL');
78
116
  return { balance: new bn_js_1.BN(balance), formatted: balance / web3_js_1.LAMPORTS_PER_SOL, decimal: 9 };
79
117
  };
80
118
  exports.getSvmNativeBalance = getSvmNativeBalance;
81
119
  const getTokenBalance = async (address, token, connection) => {
120
+ console.log('getTokenBalance: Starting');
121
+ console.log('Address:', address.toString());
122
+ console.log('Token:', token.toString());
82
123
  try {
83
124
  // Get the balance from the token account
84
125
  const tokenAccount = await (0, exports.getTokenAccountAccount)(token, address, connection);
85
126
  if (!tokenAccount) {
86
- console.error("Token account not found");
127
+ console.log("Token account not found");
87
128
  return 0;
88
129
  }
130
+ console.log('Token account found:', tokenAccount.address.toString());
89
131
  const tokenBalance = await connection.getTokenAccountBalance(tokenAccount.address);
90
132
  if (!tokenBalance) {
91
- console.error("Token balance not found");
133
+ console.log("Token balance not found");
92
134
  return 0;
93
135
  }
136
+ console.log('Token balance:', tokenBalance.value);
94
137
  return tokenBalance.value;
95
138
  }
96
139
  catch (error) {
140
+ console.log('Error in getTokenBalance:', error);
97
141
  return 0;
98
142
  }
99
143
  };
100
144
  exports.getTokenBalance = getTokenBalance;
101
145
  const getTokenAccountAccount = async (token, address, connection) => {
146
+ console.log('getTokenAccountAccount: Starting');
147
+ console.log('Token:', token.toString());
148
+ console.log('Address:', address.toString());
102
149
  try {
103
150
  // Get the associated token account address for the user and the token mint
104
151
  const associatedTokenAccount = await (0, spl_token_1.getAssociatedTokenAddress)(token, // The token mint address
105
152
  address // The user's public key
106
153
  );
154
+ console.log('Associated token account:', associatedTokenAccount.toString());
107
155
  // Fetch the token account information
108
156
  const tokenAccount = await (0, spl_token_1.getAccount)(connection, associatedTokenAccount);
157
+ console.log('Token account retrieved successfully');
109
158
  return tokenAccount;
110
159
  }
111
160
  catch (error) {
112
- console.error("Error getting token balance:");
161
+ console.log("Error getting token account:", error);
113
162
  return null;
114
163
  }
115
164
  };
116
165
  exports.getTokenAccountAccount = getTokenAccountAccount;
117
166
  const getTransferNativeInx = async (from, to, amount) => {
167
+ console.log('getTransferNativeInx: Creating transfer instruction');
168
+ console.log('From:', from.toString());
169
+ console.log('To:', to.toString());
170
+ console.log('Amount:', amount, 'SOL');
171
+ console.log('Lamports:', amount * web3_js_1.LAMPORTS_PER_SOL);
118
172
  return web3_js_1.SystemProgram.transfer({
119
173
  fromPubkey: from,
120
174
  toPubkey: to,
@@ -123,46 +177,82 @@ const getTransferNativeInx = async (from, to, amount) => {
123
177
  };
124
178
  exports.getTransferNativeInx = getTransferNativeInx;
125
179
  const getTransferNativeTransaction = async (from, to, amount, connection) => {
180
+ console.log('getTransferNativeTransaction: Starting');
126
181
  const instruction = await (0, exports.getTransferNativeInx)(from.publicKey, to, amount);
127
182
  const transaction = await (0, exports.createV0Transaction)(connection, [instruction], [from], from.publicKey);
183
+ console.log('getTransferNativeTransaction: Completed');
128
184
  return transaction;
129
185
  };
130
186
  exports.getTransferNativeTransaction = getTransferNativeTransaction;
131
187
  const getTransferTokenInx = async (from, to, token, amount, connection) => {
188
+ console.log('getTransferTokenInx: Starting');
189
+ console.log('From:', from.toString());
190
+ console.log('To:', to.toString());
191
+ console.log('Token:', token);
192
+ console.log('Amount:', amount);
132
193
  const inx = [];
133
194
  const tokenToSend = new web3_js_1.PublicKey(token.address);
195
+ console.log('Token to send:', tokenToSend.toString());
134
196
  const { ATA: source, programId, tokenAccount } = await (0, exports.getSureAssociatedTokenAddressAndAccount)(connection, from, tokenToSend);
197
+ console.log('Source ATA:', source.toString());
135
198
  const { associatedToken: destination, AtaTokenIx } = await (0, exports.createAtaAndIx)(tokenToSend, to, programId, connection);
199
+ console.log('Destination ATA:', destination.toString());
136
200
  if (!tokenAccount) {
201
+ console.log('Token account not found, throwing error');
137
202
  throw new Error("Token account not found");
138
203
  }
139
204
  if (AtaTokenIx) {
205
+ console.log('Adding ATA creation instruction');
140
206
  inx.push(AtaTokenIx);
141
207
  }
208
+ console.log('Creating transfer instruction');
142
209
  const tInx = (0, spl_token_1.createTransferCheckedInstruction)(source, tokenToSend, destination, from, amount, token.decimals, undefined, programId);
143
210
  inx.push(tInx);
211
+ console.log('getTransferTokenInx: Completed with', inx.length, 'instructions');
144
212
  return inx;
145
213
  };
146
214
  exports.getTransferTokenInx = getTransferTokenInx;
147
215
  const getTransferTokenTransaction = async (from, to, token, amount, connection) => {
216
+ console.log('getTransferTokenTransaction: Starting');
148
217
  const instruction = await (0, exports.getTransferTokenInx)(from.publicKey, to, token, amount, connection);
149
218
  const transaction = await (0, exports.createV0Transaction)(connection, instruction, [from], from.publicKey);
219
+ console.log('getTransferTokenTransaction: Completed');
150
220
  return transaction;
151
221
  };
152
222
  exports.getTransferTokenTransaction = getTransferTokenTransaction;
153
223
  const signAndSendTransaction = async (transaction, connection, signers) => {
224
+ console.log('signAndSendTransaction: Starting');
225
+ console.log('Signers count:', signers.length);
154
226
  transaction.sign(signers);
227
+ console.log('Transaction signed');
155
228
  const blockhash = await connection.getLatestBlockhash();
156
- const res = await (0, transactionSender_1.transactionSenderAndConfirmationWaiter)({ connection, serializedTransaction: Buffer.from(transaction.serialize()), blockhashWithExpiryBlockHeight: { blockhash: blockhash.blockhash, lastValidBlockHeight: blockhash.lastValidBlockHeight } });
229
+ console.log('Got latest blockhash:', blockhash.blockhash);
230
+ console.log('Sending transaction...');
231
+ const res = await (0, transactionSender_1.transactionSenderAndConfirmationWaiter)({
232
+ connection,
233
+ serializedTransaction: Buffer.from(transaction.serialize()),
234
+ blockhashWithExpiryBlockHeight: {
235
+ blockhash: blockhash.blockhash,
236
+ lastValidBlockHeight: blockhash.lastValidBlockHeight
237
+ }
238
+ });
157
239
  if (!res) {
240
+ console.log('Transaction failed to send or confirm');
158
241
  throw new Error("Transaction failed to send or confirm");
159
242
  }
160
- return res.transaction.signatures[0];
243
+ const signature = res.transaction.signatures[0];
244
+ console.log('Transaction successful, signature:', signature);
245
+ return signature;
161
246
  };
162
247
  exports.signAndSendTransaction = signAndSendTransaction;
163
248
  //swap
164
249
  //you will. use jupiter for this
165
250
  const getJupiterQuote = async (inputMint, outputMint, amount, slippageBps = 50) => {
251
+ console.log('getJupiterQuote: Starting');
252
+ console.log('Input mint:', inputMint);
253
+ console.log('Output mint:', outputMint);
254
+ console.log('Amount:', amount);
255
+ console.log('Slippage BPS:', slippageBps);
166
256
  const params = new URLSearchParams({
167
257
  inputMint,
168
258
  outputMint,
@@ -171,15 +261,37 @@ const getJupiterQuote = async (inputMint, outputMint, amount, slippageBps = 50)
171
261
  onlyDirectRoutes: 'false',
172
262
  asLegacyTransaction: 'false'
173
263
  });
174
- const response = await fetch(`${JUPITER_BASE_URL}/swap/v1/quote?${params}`);
264
+ const url = `${JUPITER_BASE_URL}/swap/v1/quote?${params}`;
265
+ console.log('Request URL:', url);
266
+ const response = await fetch(url);
267
+ console.log('Response status:', response.status);
268
+ console.log('Response status text:', response.statusText);
175
269
  if (!response.ok) {
176
- const error = await response.json();
177
- throw new Error(`Jupiter quote failed: ${error.message || response.statusText}`);
270
+ console.log('Jupiter quote request failed');
271
+ console.log('Status:', response.status);
272
+ console.log('Status Text:', response.statusText);
273
+ console.log('URL:', url);
274
+ try {
275
+ const error = await response.json();
276
+ console.log('Error details:', error);
277
+ }
278
+ catch {
279
+ const textError = await response.text();
280
+ console.log('Error text:', textError);
281
+ }
282
+ throw new Error(`Jupiter quote failed: ${response.statusText}`);
178
283
  }
179
- return await response.json();
284
+ const result = await response.json();
285
+ console.log('Jupiter quote successful');
286
+ console.log('Quote result:', result);
287
+ return result;
180
288
  };
181
289
  exports.getJupiterQuote = getJupiterQuote;
182
290
  const buildJupiterSwapTransaction = async (quote, userPublicKey, prioritizationFeeLamports) => {
291
+ console.log('buildJupiterSwapTransaction: Starting');
292
+ console.log('User public key:', userPublicKey);
293
+ const priorityFee = prioritizationFeeLamports || 5000;
294
+ console.log('Prioritization fee:', priorityFee);
183
295
  const body = {
184
296
  quoteResponse: quote,
185
297
  userPublicKey,
@@ -188,13 +300,14 @@ const buildJupiterSwapTransaction = async (quote, userPublicKey, prioritizationF
188
300
  feeAccount: undefined,
189
301
  trackingAccount: undefined,
190
302
  computeUnitPriceMicroLamports: undefined,
191
- prioritizationFeeLamports: prioritizationFeeLamports || 1000,
303
+ prioritizationFeeLamports: priorityFee,
192
304
  asLegacyTransaction: false,
193
305
  useTokenLedger: false,
194
306
  destinationTokenAccount: undefined,
195
307
  dynamicComputeUnitLimit: true,
196
308
  skipUserAccountsRpcCalls: false
197
309
  };
310
+ console.log('Request body:', body);
198
311
  const response = await fetch(`${JUPITER_BASE_URL}/swap/v1/swap`, {
199
312
  method: 'POST',
200
313
  headers: {
@@ -202,14 +315,35 @@ const buildJupiterSwapTransaction = async (quote, userPublicKey, prioritizationF
202
315
  },
203
316
  body: JSON.stringify(body),
204
317
  });
318
+ console.log('Swap transaction build response status:', response.status);
205
319
  if (!response.ok) {
206
- const error = await response.json();
207
- throw new Error(`Jupiter swap transaction build failed: ${error.message || response.statusText}`);
320
+ console.log('Jupiter swap transaction build failed');
321
+ console.log('Status:', response.status);
322
+ console.log('Status text:', response.statusText);
323
+ try {
324
+ const error = await response.json();
325
+ console.log('Swap build error details:', error);
326
+ throw new Error(`Jupiter swap transaction build failed: ${error.message || response.statusText}`);
327
+ }
328
+ catch (parseError) {
329
+ console.log('Failed to parse error response:', parseError);
330
+ throw new Error(`Jupiter swap transaction build failed: ${response.statusText}`);
331
+ }
208
332
  }
209
- return await response.json();
333
+ const result = await response.json();
334
+ console.log('Jupiter swap transaction built successfully');
335
+ return result;
210
336
  };
211
337
  exports.buildJupiterSwapTransaction = buildJupiterSwapTransaction;
212
338
  const executeJupiterSwap = async (swapParams, connection, payer) => {
339
+ console.log('executeJupiterSwap: Starting');
340
+ console.log('Swap params:', {
341
+ fromToken: swapParams.fromToken.toString(),
342
+ toToken: swapParams.toToken.toString(),
343
+ amount: swapParams.amount,
344
+ slippageBps: swapParams.slippageBps,
345
+ userPublicKey: swapParams.userPublicKey.toString()
346
+ });
213
347
  try {
214
348
  console.log('Getting Jupiter quote...');
215
349
  const quote = await (0, exports.getJupiterQuote)(swapParams.fromToken.toString(), swapParams.toToken.toString(), swapParams.amount, swapParams.slippageBps);
@@ -222,11 +356,15 @@ const executeJupiterSwap = async (swapParams, connection, payer) => {
222
356
  const swapResponse = await (0, exports.buildJupiterSwapTransaction)(quote, swapParams.userPublicKey.toString());
223
357
  console.log('Deserializing transaction...');
224
358
  const swapTransactionBuf = Buffer.from(swapResponse.swapTransaction, 'base64');
359
+ console.log('Transaction buffer length:', swapTransactionBuf.length);
225
360
  const transaction = web3_js_1.VersionedTransaction.deserialize(swapTransactionBuf);
361
+ console.log('Transaction deserialized successfully');
226
362
  console.log('Signing transaction...');
227
363
  transaction.sign([payer]);
364
+ console.log('Transaction signed');
228
365
  console.log('Sending transaction...');
229
366
  const blockhash = await connection.getLatestBlockhash();
367
+ console.log('Got latest blockhash for confirmation');
230
368
  const signature = await (0, transactionSender_1.transactionSenderAndConfirmationWaiter)({
231
369
  connection,
232
370
  serializedTransaction: Buffer.from(transaction.serialize()),
@@ -236,22 +374,27 @@ const executeJupiterSwap = async (swapParams, connection, payer) => {
236
374
  }
237
375
  });
238
376
  if (!signature) {
377
+ console.log('Transaction failed to confirm');
239
378
  return {
240
379
  success: false,
241
380
  error: 'Transaction failed to confirm'
242
381
  };
243
382
  }
244
- console.log('Swap successful! Signature:', signature.transaction.signatures[0]);
383
+ const txSignature = signature.transaction.signatures[0];
384
+ console.log('Swap successful! Signature:', txSignature);
245
385
  return {
246
386
  success: true,
247
- hash: signature.transaction.signatures[0],
387
+ hash: txSignature,
248
388
  inputAmount: quote.inAmount,
249
389
  outputAmount: quote.outAmount,
250
390
  priceImpact: quote.priceImpactPct
251
391
  };
252
392
  }
253
393
  catch (error) {
254
- console.error('Jupiter swap failed:', error);
394
+ console.log('Jupiter swap failed with error:', error);
395
+ console.log('Error type:', typeof error);
396
+ console.log('Error message:', error instanceof Error ? error.message : 'Unknown error');
397
+ console.log('Error stack:', error instanceof Error ? error.stack : 'No stack trace');
255
398
  return {
256
399
  success: false,
257
400
  error: error instanceof Error ? error.message : 'Unknown error occurred'
@@ -260,44 +403,65 @@ const executeJupiterSwap = async (swapParams, connection, payer) => {
260
403
  };
261
404
  exports.executeJupiterSwap = executeJupiterSwap;
262
405
  const uiAmountToBaseUnits = (uiAmount, decimals) => {
263
- return Math.floor(uiAmount * Math.pow(10, decimals));
406
+ console.log('uiAmountToBaseUnits: Converting', uiAmount, 'with', decimals, 'decimals');
407
+ const result = Math.floor(uiAmount * Math.pow(10, decimals));
408
+ console.log('Converted to base units:', result);
409
+ return result;
264
410
  };
265
411
  exports.uiAmountToBaseUnits = uiAmountToBaseUnits;
266
412
  const baseUnitsToUiAmount = (baseAmount, decimals) => {
267
- return Number(baseAmount) / Math.pow(10, decimals);
413
+ console.log('baseUnitsToUiAmount: Converting', baseAmount, 'with', decimals, 'decimals');
414
+ const result = Number(baseAmount) / Math.pow(10, decimals);
415
+ console.log('Converted to UI amount:', result);
416
+ return result;
268
417
  };
269
418
  exports.baseUnitsToUiAmount = baseUnitsToUiAmount;
270
419
  const getJupiterTokenList = async () => {
420
+ console.log('getJupiterTokenList: Fetching token list');
271
421
  try {
272
422
  const response = await fetch(`${JUPITER_BASE_URL}/tokens/v1/mints/tradable`);
423
+ console.log('Token list response status:', response.status);
273
424
  if (!response.ok) {
425
+ console.log('Failed to fetch token list:', response.statusText);
274
426
  throw new Error(`Failed to fetch token list: ${response.statusText}`);
275
427
  }
276
- return await response.json();
428
+ const result = await response.json();
429
+ console.log('Token list fetched, count:', result.length);
430
+ return result;
277
431
  }
278
432
  catch (error) {
279
- console.error('Failed to fetch Jupiter token list:', error);
433
+ console.log('Failed to fetch Jupiter token list:', error);
280
434
  return [];
281
435
  }
282
436
  };
283
437
  exports.getJupiterTokenList = getJupiterTokenList;
284
438
  const validateJupiterTokens = async (inputMint, outputMint) => {
439
+ console.log('validateJupiterTokens: Starting validation');
440
+ console.log('Input mint:', inputMint);
441
+ console.log('Output mint:', outputMint);
285
442
  try {
286
443
  const tokenList = await (0, exports.getJupiterTokenList)();
287
444
  const inputSupported = tokenList.includes(inputMint);
288
445
  const outputSupported = tokenList.includes(outputMint);
446
+ console.log('Input token supported:', inputSupported);
447
+ console.log('Output token supported:', outputSupported);
289
448
  if (!inputSupported && !outputSupported) {
449
+ console.log('Both tokens not supported');
290
450
  return { valid: false, message: 'Both input and output tokens are not supported' };
291
451
  }
292
452
  if (!inputSupported) {
453
+ console.log('Input token not supported');
293
454
  return { valid: false, message: 'Input token is not supported' };
294
455
  }
295
456
  if (!outputSupported) {
457
+ console.log('Output token not supported');
296
458
  return { valid: false, message: 'Output token is not supported' };
297
459
  }
460
+ console.log('Both tokens are supported');
298
461
  return { valid: true };
299
462
  }
300
463
  catch (error) {
464
+ console.log('Token validation failed:', error);
301
465
  return { valid: false, message: 'Failed to validate tokens' };
302
466
  }
303
467
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../utils/svm/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../utils/svm/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deserialize/multi-vm-wallet",
3
- "version": "1.0.37",
3
+ "version": "1.0.372",
4
4
  "devDependencies": {
5
5
  "@types/bn.js": "^5.2.0",
6
6
  "@types/crypto-js": "^4.2.2",
@@ -68,8 +68,15 @@ export const createV0Transaction = async (
68
68
  payerPubKey: PublicKey,
69
69
  blockHash?: string
70
70
  ) => {
71
+ console.log('createV0Transaction: Starting transaction creation');
72
+ console.log('Instructions count:', inX.length);
73
+ console.log('Signers count:', signers.length);
74
+ console.log('Payer public key:', payerPubKey.toString());
75
+
71
76
  const blockhash =
72
77
  blockHash || (await connection.getLatestBlockhash()).blockhash;
78
+ console.log('Using blockhash:', blockhash);
79
+
73
80
  const message = new TransactionMessage({
74
81
  payerKey: payerPubKey,
75
82
  instructions: inX,
@@ -79,9 +86,11 @@ export const createV0Transaction = async (
79
86
  const transaction = new VersionedTransaction(message);
80
87
  transaction.message.staticAccountKeys;
81
88
  if (signers.length < 1) {
89
+ console.log('Signing transaction with signers');
82
90
  transaction.sign(signers);
83
91
  }
84
92
 
93
+ console.log('createV0Transaction: Transaction created successfully');
85
94
  return transaction;
86
95
  };
87
96
 
@@ -91,6 +100,11 @@ export const createAtaAndIx = async (
91
100
  tokenProgramId: PublicKey,
92
101
  connection: Connection,
93
102
  ) => {
103
+ console.log('createAtaAndIx: Starting ATA creation');
104
+ console.log('Token:', token.toString());
105
+ console.log('Owner:', ownerPublicKey.toString());
106
+ console.log('Token Program ID:', tokenProgramId.toString());
107
+
94
108
  let AtaTokenIx;
95
109
  const associatedToken = getAssociatedTokenAddressSync(
96
110
  token,
@@ -98,9 +112,11 @@ export const createAtaAndIx = async (
98
112
  false,
99
113
  tokenProgramId
100
114
  );
115
+ console.log('Associated token address:', associatedToken.toString());
101
116
 
102
117
  const accountExist = await connection.getAccountInfo(associatedToken);
103
118
  if (!accountExist) {
119
+ console.log('Account does not exist, creating ATA instruction');
104
120
  AtaTokenIx = createAssociatedTokenAccountIdempotentInstruction(
105
121
  ownerPublicKey,
106
122
  associatedToken,
@@ -108,17 +124,26 @@ export const createAtaAndIx = async (
108
124
  token,
109
125
  tokenProgramId
110
126
  );
127
+ } else {
128
+ console.log('Account already exists, no ATA instruction needed');
111
129
  }
130
+
131
+ console.log('createAtaAndIx: Completed');
112
132
  return {
113
133
  AtaTokenIx,
114
134
  associatedToken,
115
135
  };
116
136
  };
137
+
117
138
  export const getSureAssociatedTokenAddressAndAccount = async (
118
139
  connection: Connection,
119
140
  token: PublicKey,
120
141
  owner: PublicKey,
121
142
  ) => {
143
+ console.log('getSureAssociatedTokenAddressAndAccount: Starting');
144
+ console.log('Token:', token.toString());
145
+ console.log('Owner:', owner.toString());
146
+
122
147
  let ATA: PublicKey;
123
148
  let programId: PublicKey;
124
149
  let tokenAccount: Account;
@@ -126,90 +151,128 @@ export const getSureAssociatedTokenAddressAndAccount = async (
126
151
  programId = token.equals(NATIVE_MINT)
127
152
  ? TOKEN_PROGRAM_ID
128
153
  : TOKEN_2022_PROGRAM_ID;
154
+ console.log('Trying with program ID:', programId.toString());
155
+
129
156
  ATA = getAssociatedTokenAddressSync(token, owner, true, programId);
157
+ console.log('ATA address:', ATA.toString());
158
+
130
159
  tokenAccount = await getAccount(connection, ATA, "confirmed", programId);
160
+ console.log('Token account found with TOKEN_2022_PROGRAM_ID');
131
161
  return { ATA, programId, tokenAccount };
132
162
  } catch (error) {
163
+ console.log('Failed with TOKEN_2022_PROGRAM_ID, trying TOKEN_PROGRAM_ID');
164
+ console.log('Error:', error);
165
+
133
166
  programId = TOKEN_PROGRAM_ID;
134
167
  ATA = getAssociatedTokenAddressSync(token, owner, true, programId);
168
+ console.log('New ATA address:', ATA.toString());
169
+
135
170
  tokenAccount = await getAccount(connection, ATA, "confirmed", programId);
171
+ console.log('Token account found with TOKEN_PROGRAM_ID');
136
172
  return { ATA, programId, tokenAccount };
137
173
  }
138
174
  };
139
175
 
140
176
  export const getProgramIdOfToken = async (owner: PublicKey, token: PublicKey, connection: Connection) => {
177
+ console.log('getProgramIdOfToken: Starting');
178
+ console.log('Owner:', owner.toString());
179
+ console.log('Token:', token.toString());
180
+
141
181
  if (token.equals(NATIVE_MINT)) {
182
+ console.log('Token is native mint, returning TOKEN_PROGRAM_ID');
142
183
  return TOKEN_PROGRAM_ID;
143
184
  }
144
185
  let ATA: PublicKey;
145
186
  let programId: PublicKey = TOKEN_PROGRAM_ID
146
187
  let tokenAccount: Account;
147
188
  try {
189
+ console.log('Trying with TOKEN_PROGRAM_ID');
148
190
  ATA = getAssociatedTokenAddressSync(token, owner, true, programId);
149
191
  tokenAccount = await getAccount(connection, ATA, "confirmed", programId);
192
+ console.log('Found with TOKEN_PROGRAM_ID');
150
193
  return TOKEN_PROGRAM_ID
151
194
  } catch (error) {
195
+ console.log('Failed with TOKEN_PROGRAM_ID, returning TOKEN_2022_PROGRAM_ID');
196
+ console.log('Error:', error);
152
197
  return TOKEN_2022_PROGRAM_ID;
153
-
154
198
  }
155
-
156
-
157
-
158
199
  }
159
- //get native balance
160
200
 
201
+ //get native balance
161
202
  export const getSvmNativeBalance = async (address: PublicKey, connection: Connection,) => {
203
+ console.log('getSvmNativeBalance: Getting balance for', address.toString());
162
204
  const balance = await connection.getBalance(address);
205
+ console.log('Raw balance:', balance);
206
+ console.log('Formatted balance:', balance / LAMPORTS_PER_SOL, 'SOL');
163
207
  return { balance: new BN(balance), formatted: balance / LAMPORTS_PER_SOL, decimal: 9 };
164
208
  };
165
209
 
166
210
  export const getTokenBalance = async (address: PublicKey, token: PublicKey, connection: Connection) => {
211
+ console.log('getTokenBalance: Starting');
212
+ console.log('Address:', address.toString());
213
+ console.log('Token:', token.toString());
167
214
 
168
215
  try {
169
216
  // Get the balance from the token account
170
217
  const tokenAccount = await getTokenAccountAccount(token, address, connection);
171
218
  if (!tokenAccount) {
172
- console.error("Token account not found");
219
+ console.log("Token account not found");
173
220
  return 0;
174
221
  }
222
+ console.log('Token account found:', tokenAccount.address.toString());
223
+
175
224
  const tokenBalance = await connection.getTokenAccountBalance(
176
225
  tokenAccount.address
177
226
  );
178
227
 
179
228
  if (!tokenBalance) {
180
- console.error("Token balance not found");
229
+ console.log("Token balance not found");
181
230
  return 0;
182
231
  }
183
232
 
233
+ console.log('Token balance:', tokenBalance.value);
184
234
  return tokenBalance.value;
185
235
 
186
236
  } catch (error) {
237
+ console.log('Error in getTokenBalance:', error);
187
238
  return 0;
188
239
  }
189
240
  }
190
241
 
191
242
  export const getTokenAccountAccount = async (token: PublicKey, address: PublicKey, connection: Connection): Promise<Account | null> => {
192
- try {
243
+ console.log('getTokenAccountAccount: Starting');
244
+ console.log('Token:', token.toString());
245
+ console.log('Address:', address.toString());
193
246
 
247
+ try {
194
248
  // Get the associated token account address for the user and the token mint
195
249
  const associatedTokenAccount = await getAssociatedTokenAddress(
196
250
  token, // The token mint address
197
251
  address // The user's public key
198
252
  );
253
+ console.log('Associated token account:', associatedTokenAccount.toString());
254
+
199
255
  // Fetch the token account information
200
256
  const tokenAccount = await getAccount(
201
257
  connection,
202
258
  associatedTokenAccount
203
259
  );
204
260
 
261
+ console.log('Token account retrieved successfully');
205
262
  return tokenAccount;
206
263
  } catch (error) {
207
- console.error("Error getting token balance:");
264
+ console.log("Error getting token account:", error);
208
265
  return null;
209
266
  }
210
267
  };
211
268
 
212
269
  export const getTransferNativeInx = async (from: PublicKey, to: PublicKey, amount: number): Promise<TransactionInstruction> => {
270
+ console.log('getTransferNativeInx: Creating transfer instruction');
271
+ console.log('From:', from.toString());
272
+ console.log('To:', to.toString());
273
+ console.log('Amount:', amount, 'SOL');
274
+ console.log('Lamports:', amount * LAMPORTS_PER_SOL);
275
+
213
276
  return SystemProgram.transfer({
214
277
  fromPubkey: from,
215
278
  toPubkey: to,
@@ -218,48 +281,86 @@ export const getTransferNativeInx = async (from: PublicKey, to: PublicKey, amoun
218
281
  }
219
282
 
220
283
  export const getTransferNativeTransaction = async (from: Keypair, to: PublicKey, amount: number, connection: Connection) => {
284
+ console.log('getTransferNativeTransaction: Starting');
221
285
  const instruction = await getTransferNativeInx(from.publicKey, to, amount);
222
286
  const transaction = await createV0Transaction(connection, [instruction], [from], from.publicKey);
287
+ console.log('getTransferNativeTransaction: Completed');
223
288
  return transaction;
224
289
  }
225
290
 
226
291
  export const getTransferTokenInx = async (from: PublicKey, to: PublicKey, token: TokenInfo, amount: number, connection: Connection): Promise<TransactionInstruction[]> => {
292
+ console.log('getTransferTokenInx: Starting');
293
+ console.log('From:', from.toString());
294
+ console.log('To:', to.toString());
295
+ console.log('Token:', token);
296
+ console.log('Amount:', amount);
297
+
227
298
  const inx: TransactionInstruction[] = []
228
299
 
229
300
  const tokenToSend = new PublicKey(token.address);
301
+ console.log('Token to send:', tokenToSend.toString());
302
+
230
303
  const { ATA: source, programId, tokenAccount } = await getSureAssociatedTokenAddressAndAccount(connection, from, tokenToSend);
304
+ console.log('Source ATA:', source.toString());
305
+
231
306
  const { associatedToken: destination, AtaTokenIx } = await createAtaAndIx(tokenToSend, to, programId, connection);
307
+ console.log('Destination ATA:', destination.toString());
232
308
 
233
309
  if (!tokenAccount) {
310
+ console.log('Token account not found, throwing error');
234
311
  throw new Error("Token account not found");
235
312
  }
236
313
  if (AtaTokenIx) {
314
+ console.log('Adding ATA creation instruction');
237
315
  inx.push(AtaTokenIx);
238
316
  }
317
+
318
+ console.log('Creating transfer instruction');
239
319
  const tInx = createTransferCheckedInstruction(source, tokenToSend, destination, from, amount, token.decimals, undefined, programId)
240
320
  inx.push(tInx);
241
321
 
322
+ console.log('getTransferTokenInx: Completed with', inx.length, 'instructions');
242
323
  return inx;
243
-
244
324
  }
325
+
245
326
  export const getTransferTokenTransaction = async (from: Keypair, to: PublicKey, token: TokenInfo, amount: number, connection: Connection): Promise<VersionedTransaction> => {
327
+ console.log('getTransferTokenTransaction: Starting');
246
328
  const instruction = await getTransferTokenInx(from.publicKey, to, token, amount, connection);
247
329
  const transaction = await createV0Transaction(connection, instruction, [from], from.publicKey);
330
+ console.log('getTransferTokenTransaction: Completed');
248
331
  return transaction;
249
332
  }
333
+
250
334
  export const signAndSendTransaction = async (transaction: VersionedTransaction, connection: Connection, signers: Keypair[]) => {
335
+ console.log('signAndSendTransaction: Starting');
336
+ console.log('Signers count:', signers.length);
337
+
251
338
  transaction.sign(signers)
339
+ console.log('Transaction signed');
340
+
252
341
  const blockhash = await connection.getLatestBlockhash()
253
- const res = await transactionSenderAndConfirmationWaiter({ connection, serializedTransaction: Buffer.from(transaction.serialize()), blockhashWithExpiryBlockHeight: { blockhash: blockhash.blockhash, lastValidBlockHeight: blockhash.lastValidBlockHeight } })
342
+ console.log('Got latest blockhash:', blockhash.blockhash);
343
+
344
+ console.log('Sending transaction...');
345
+ const res = await transactionSenderAndConfirmationWaiter({
346
+ connection,
347
+ serializedTransaction: Buffer.from(transaction.serialize()),
348
+ blockhashWithExpiryBlockHeight: {
349
+ blockhash: blockhash.blockhash,
350
+ lastValidBlockHeight: blockhash.lastValidBlockHeight
351
+ }
352
+ });
353
+
254
354
  if (!res) {
355
+ console.log('Transaction failed to send or confirm');
255
356
  throw new Error("Transaction failed to send or confirm");
256
357
  }
257
- return res.transaction.signatures[0];
258
358
 
359
+ const signature = res.transaction.signatures[0];
360
+ console.log('Transaction successful, signature:', signature);
361
+ return signature;
259
362
  }
260
363
 
261
-
262
-
263
364
  //swap
264
365
  //you will. use jupiter for this
265
366
 
@@ -269,6 +370,12 @@ export const getJupiterQuote = async (
269
370
  amount: number,
270
371
  slippageBps: number = 50
271
372
  ): Promise<JupiterQuoteResponse> => {
373
+ console.log('getJupiterQuote: Starting');
374
+ console.log('Input mint:', inputMint);
375
+ console.log('Output mint:', outputMint);
376
+ console.log('Amount:', amount);
377
+ console.log('Slippage BPS:', slippageBps);
378
+
272
379
  const params = new URLSearchParams({
273
380
  inputMint,
274
381
  outputMint,
@@ -278,14 +385,34 @@ export const getJupiterQuote = async (
278
385
  asLegacyTransaction: 'false'
279
386
  });
280
387
 
281
- const response = await fetch(`${JUPITER_BASE_URL}/swap/v1/quote?${params}`);
388
+ const url = `${JUPITER_BASE_URL}/swap/v1/quote?${params}`;
389
+ console.log('Request URL:', url);
390
+
391
+ const response = await fetch(url);
392
+ console.log('Response status:', response.status);
393
+ console.log('Response status text:', response.statusText);
282
394
 
283
395
  if (!response.ok) {
284
- const error = await response.json();
285
- throw new Error(`Jupiter quote failed: ${error.message || response.statusText}`);
396
+ console.log('Jupiter quote request failed');
397
+ console.log('Status:', response.status);
398
+ console.log('Status Text:', response.statusText);
399
+ console.log('URL:', url);
400
+
401
+ try {
402
+ const error = await response.json();
403
+ console.log('Error details:', error);
404
+ } catch {
405
+ const textError = await response.text();
406
+ console.log('Error text:', textError);
407
+ }
408
+
409
+ throw new Error(`Jupiter quote failed: ${response.statusText}`);
286
410
  }
287
411
 
288
- return await response.json();
412
+ const result = await response.json();
413
+ console.log('Jupiter quote successful');
414
+ console.log('Quote result:', result);
415
+ return result;
289
416
  };
290
417
 
291
418
  export const buildJupiterSwapTransaction = async (
@@ -293,6 +420,10 @@ export const buildJupiterSwapTransaction = async (
293
420
  userPublicKey: string,
294
421
  prioritizationFeeLamports?: number
295
422
  ): Promise<JupiterSwapResponse> => {
423
+ console.log('buildJupiterSwapTransaction: Starting');
424
+ console.log('User public key:', userPublicKey);
425
+ const priorityFee = prioritizationFeeLamports || 5000;
426
+ console.log('Prioritization fee:', priorityFee);
296
427
  const body = {
297
428
  quoteResponse: quote,
298
429
  userPublicKey,
@@ -301,7 +432,7 @@ export const buildJupiterSwapTransaction = async (
301
432
  feeAccount: undefined,
302
433
  trackingAccount: undefined,
303
434
  computeUnitPriceMicroLamports: undefined,
304
- prioritizationFeeLamports: prioritizationFeeLamports || 1000,
435
+ prioritizationFeeLamports: priorityFee,
305
436
  asLegacyTransaction: false,
306
437
  useTokenLedger: false,
307
438
  destinationTokenAccount: undefined,
@@ -309,6 +440,8 @@ export const buildJupiterSwapTransaction = async (
309
440
  skipUserAccountsRpcCalls: false
310
441
  };
311
442
 
443
+ console.log('Request body:', body);
444
+
312
445
  const response = await fetch(`${JUPITER_BASE_URL}/swap/v1/swap`, {
313
446
  method: 'POST',
314
447
  headers: {
@@ -317,12 +450,26 @@ export const buildJupiterSwapTransaction = async (
317
450
  body: JSON.stringify(body),
318
451
  });
319
452
 
453
+ console.log('Swap transaction build response status:', response.status);
454
+
320
455
  if (!response.ok) {
321
- const error = await response.json();
322
- throw new Error(`Jupiter swap transaction build failed: ${error.message || response.statusText}`);
456
+ console.log('Jupiter swap transaction build failed');
457
+ console.log('Status:', response.status);
458
+ console.log('Status text:', response.statusText);
459
+
460
+ try {
461
+ const error = await response.json();
462
+ console.log('Swap build error details:', error);
463
+ throw new Error(`Jupiter swap transaction build failed: ${error.message || response.statusText}`);
464
+ } catch (parseError) {
465
+ console.log('Failed to parse error response:', parseError);
466
+ throw new Error(`Jupiter swap transaction build failed: ${response.statusText}`);
467
+ }
323
468
  }
324
469
 
325
- return await response.json();
470
+ const result = await response.json();
471
+ console.log('Jupiter swap transaction built successfully');
472
+ return result;
326
473
  };
327
474
 
328
475
  export const executeJupiterSwap = async (
@@ -330,6 +477,15 @@ export const executeJupiterSwap = async (
330
477
  connection: Connection,
331
478
  payer: Keypair
332
479
  ): Promise<SwapResult> => {
480
+ console.log('executeJupiterSwap: Starting');
481
+ console.log('Swap params:', {
482
+ fromToken: swapParams.fromToken.toString(),
483
+ toToken: swapParams.toToken.toString(),
484
+ amount: swapParams.amount,
485
+ slippageBps: swapParams.slippageBps,
486
+ userPublicKey: swapParams.userPublicKey.toString()
487
+ });
488
+
333
489
  try {
334
490
  console.log('Getting Jupiter quote...');
335
491
  const quote = await getJupiterQuote(
@@ -353,13 +509,19 @@ export const executeJupiterSwap = async (
353
509
 
354
510
  console.log('Deserializing transaction...');
355
511
  const swapTransactionBuf = Buffer.from(swapResponse.swapTransaction, 'base64');
512
+ console.log('Transaction buffer length:', swapTransactionBuf.length);
513
+
356
514
  const transaction = VersionedTransaction.deserialize(swapTransactionBuf);
515
+ console.log('Transaction deserialized successfully');
357
516
 
358
517
  console.log('Signing transaction...');
359
518
  transaction.sign([payer]);
519
+ console.log('Transaction signed');
360
520
 
361
521
  console.log('Sending transaction...');
362
522
  const blockhash = await connection.getLatestBlockhash();
523
+ console.log('Got latest blockhash for confirmation');
524
+
363
525
  const signature = await transactionSenderAndConfirmationWaiter({
364
526
  connection,
365
527
  serializedTransaction: Buffer.from(transaction.serialize()),
@@ -370,24 +532,30 @@ export const executeJupiterSwap = async (
370
532
  });
371
533
 
372
534
  if (!signature) {
535
+ console.log('Transaction failed to confirm');
373
536
  return {
374
537
  success: false,
375
538
  error: 'Transaction failed to confirm'
376
539
  };
377
540
  }
378
541
 
379
- console.log('Swap successful! Signature:', signature.transaction.signatures[0]);
542
+ const txSignature = signature.transaction.signatures[0];
543
+ console.log('Swap successful! Signature:', txSignature);
380
544
 
381
545
  return {
382
546
  success: true,
383
- hash: signature.transaction.signatures[0],
547
+ hash: txSignature,
384
548
  inputAmount: quote.inAmount,
385
549
  outputAmount: quote.outAmount,
386
550
  priceImpact: quote.priceImpactPct
387
551
  };
388
552
 
389
553
  } catch (error) {
390
- console.error('Jupiter swap failed:', error);
554
+ console.log('Jupiter swap failed with error:', error);
555
+ console.log('Error type:', typeof error);
556
+ console.log('Error message:', error instanceof Error ? error.message : 'Unknown error');
557
+ console.log('Error stack:', error instanceof Error ? error.stack : 'No stack trace');
558
+
391
559
  return {
392
560
  success: false,
393
561
  error: error instanceof Error ? error.message : 'Unknown error occurred'
@@ -396,22 +564,34 @@ export const executeJupiterSwap = async (
396
564
  };
397
565
 
398
566
  export const uiAmountToBaseUnits = (uiAmount: number, decimals: number): number => {
399
- return Math.floor(uiAmount * Math.pow(10, decimals));
567
+ console.log('uiAmountToBaseUnits: Converting', uiAmount, 'with', decimals, 'decimals');
568
+ const result = Math.floor(uiAmount * Math.pow(10, decimals));
569
+ console.log('Converted to base units:', result);
570
+ return result;
400
571
  };
401
572
 
402
573
  export const baseUnitsToUiAmount = (baseAmount: string | number, decimals: number): number => {
403
- return Number(baseAmount) / Math.pow(10, decimals);
574
+ console.log('baseUnitsToUiAmount: Converting', baseAmount, 'with', decimals, 'decimals');
575
+ const result = Number(baseAmount) / Math.pow(10, decimals);
576
+ console.log('Converted to UI amount:', result);
577
+ return result;
404
578
  };
405
579
 
406
580
  export const getJupiterTokenList = async (): Promise<any[]> => {
581
+ console.log('getJupiterTokenList: Fetching token list');
407
582
  try {
408
583
  const response = await fetch(`${JUPITER_BASE_URL}/tokens/v1/mints/tradable`);
584
+ console.log('Token list response status:', response.status);
585
+
409
586
  if (!response.ok) {
587
+ console.log('Failed to fetch token list:', response.statusText);
410
588
  throw new Error(`Failed to fetch token list: ${response.statusText}`);
411
589
  }
412
- return await response.json();
590
+ const result = await response.json();
591
+ console.log('Token list fetched, count:', result.length);
592
+ return result;
413
593
  } catch (error) {
414
- console.error('Failed to fetch Jupiter token list:', error);
594
+ console.log('Failed to fetch Jupiter token list:', error);
415
595
  return [];
416
596
  }
417
597
  };
@@ -420,23 +600,35 @@ export const validateJupiterTokens = async (
420
600
  inputMint: string,
421
601
  outputMint: string
422
602
  ): Promise<{ valid: boolean; message?: string }> => {
603
+ console.log('validateJupiterTokens: Starting validation');
604
+ console.log('Input mint:', inputMint);
605
+ console.log('Output mint:', outputMint);
606
+
423
607
  try {
424
608
  const tokenList = await getJupiterTokenList();
425
609
  const inputSupported = tokenList.includes(inputMint);
426
610
  const outputSupported = tokenList.includes(outputMint);
427
611
 
612
+ console.log('Input token supported:', inputSupported);
613
+ console.log('Output token supported:', outputSupported);
614
+
428
615
  if (!inputSupported && !outputSupported) {
616
+ console.log('Both tokens not supported');
429
617
  return { valid: false, message: 'Both input and output tokens are not supported' };
430
618
  }
431
619
  if (!inputSupported) {
620
+ console.log('Input token not supported');
432
621
  return { valid: false, message: 'Input token is not supported' };
433
622
  }
434
623
  if (!outputSupported) {
624
+ console.log('Output token not supported');
435
625
  return { valid: false, message: 'Output token is not supported' };
436
626
  }
437
627
 
628
+ console.log('Both tokens are supported');
438
629
  return { valid: true };
439
630
  } catch (error) {
631
+ console.log('Token validation failed:', error);
440
632
  return { valid: false, message: 'Failed to validate tokens' };
441
633
  }
442
634
  };