@deserialize/swap-sdk 1.0.0 → 1.0.2

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/swapSDK.d.ts CHANGED
@@ -19,6 +19,16 @@ export interface SwapRequestParams {
19
19
  */
20
20
  options?: RouteOptions;
21
21
  }
22
+ export interface SwapTransactionResponse {
23
+ /** Fully constructed VersionedTransaction ready for signing */
24
+ transaction: VersionedTransaction;
25
+ /** Raw transaction data in base64 encoding */
26
+ serializedTransactions: string;
27
+ /** Associated lookup accounts */
28
+ lookupAccounts: PublicKey[];
29
+ /** Required transaction signers */
30
+ signers: Keypair[];
31
+ }
22
32
  export interface RouteOptions {
23
33
  reduceToTwoHops: boolean;
24
34
  }
@@ -212,10 +222,10 @@ export declare class SwapSDK {
212
222
  * @param params Swap parameters including the quote
213
223
  * @returns Transaction and output details
214
224
  */
215
- executeSwap(params: {
225
+ getSwapTransaction(params: {
216
226
  publicKey: PublicKey;
217
227
  quote: QuoteResponse;
218
- }): Promise<any>;
228
+ }): Promise<SwapTransactionResponse>;
219
229
  /**
220
230
  * Calls the swap endpoint and returns a fully constructed Transaction.
221
231
  * This method is a wrapper that gets a quote first, then executes the swap.
@@ -224,14 +234,6 @@ export declare class SwapSDK {
224
234
  * @returns A promise that resolves to a SwapTxResult.
225
235
  */
226
236
  swapTx(params: SwapRequestParams): Promise<SwapTxResult>;
227
- /**
228
- * Calls the swap endpoint and returns the raw instructions and related data.
229
- * This method is a wrapper that gets a quote first, then executes the swap to get instructions.
230
- *
231
- * @param params Swap parameters.
232
- * @returns A promise that resolves to a SwapIxResult.
233
- */
234
- swapIx(params: SwapRequestParams): Promise<SwapIxResult>;
235
237
  /**
236
238
  * Calls the /tokenList endpoint and returns an array of tokens.
237
239
  *
package/dist/swapSDK.js CHANGED
@@ -145,7 +145,7 @@ class SwapSDK {
145
145
  * @param params Swap parameters including the quote
146
146
  * @returns Transaction and output details
147
147
  */
148
- async executeSwap(params) {
148
+ async getSwapTransaction(params) {
149
149
  const body = {
150
150
  publicKey: params.publicKey.toBase58(),
151
151
  quote: params.quote,
@@ -160,85 +160,59 @@ class SwapSDK {
160
160
  if (!response.ok) {
161
161
  throw new Error(`API Error: ${response.statusText}`);
162
162
  }
163
- return await response.json();
164
- }
165
- /**
166
- * Calls the swap endpoint and returns a fully constructed Transaction.
167
- * This method is a wrapper that gets a quote first, then executes the swap.
168
- *
169
- * @param params Swap parameters.
170
- * @returns A promise that resolves to a SwapTxResult.
171
- */
172
- async swapTx(params) {
173
- // First get a quote
174
- const quote = await this.getSwapQuote(params);
175
- // Then execute the swap with the quote
176
- const data = await this.executeSwap({
177
- publicKey: params.publicKey,
178
- quote,
179
- });
163
+ const data = await response.json();
180
164
  // Convert the base64-encoded transaction into a VersionedTransaction.
181
165
  const txBuffer = Buffer.from(data.transaction, "base64");
182
166
  const transaction = web3_js_1.VersionedTransaction.deserialize(txBuffer);
183
167
  // Convert lookup accounts from strings to PublicKey objects.
184
168
  const lookupAccounts = (data.lookUpAccounts || []).map((addr) => new web3_js_1.PublicKey(addr));
185
- // Convert the route plan tokens into PublicKey objects.
186
- const routePlan = (quote.routePlan || []).map((rp) => ({
187
- tokenA: new web3_js_1.PublicKey(rp.tokenA),
188
- tokenB: new web3_js_1.PublicKey(rp.tokenB),
189
- dexId: rp.dexId,
190
- }));
191
169
  // Convert each base58-encoded signer secret into a Keypair.
192
170
  const signers = data.signers.map((s) => web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(s)));
193
171
  transaction.sign(signers);
194
172
  return {
195
173
  transaction,
196
174
  serializedTransactions: data.transaction,
197
- amountOut: Number(data.amountOut),
198
- amountOutUi: Number(quote.amountOut),
199
- pairPrice: Number(quote.tokenPrice),
200
- routePlan,
201
175
  lookupAccounts,
202
176
  signers,
203
- feeRate: parseFloat(quote.feeRate),
204
177
  };
205
178
  }
206
179
  /**
207
- * Calls the swap endpoint and returns the raw instructions and related data.
208
- * This method is a wrapper that gets a quote first, then executes the swap to get instructions.
180
+ * Calls the swap endpoint and returns a fully constructed Transaction.
181
+ * This method is a wrapper that gets a quote first, then executes the swap.
209
182
  *
210
183
  * @param params Swap parameters.
211
- * @returns A promise that resolves to a SwapIxResult.
184
+ * @returns A promise that resolves to a SwapTxResult.
212
185
  */
213
- async swapIx(params) {
186
+ async swapTx(params) {
214
187
  // First get a quote
215
188
  const quote = await this.getSwapQuote(params);
216
189
  // Then execute the swap with the quote
217
- const data = await this.executeSwap({
190
+ const data = await this.getSwapTransaction({
218
191
  publicKey: params.publicKey,
219
192
  quote,
220
193
  });
194
+ const transaction = data.transaction;
221
195
  // Convert lookup accounts from strings to PublicKey objects.
222
- const lookupAccounts = (data.lookUpAccounts || []).map((addr) => new web3_js_1.PublicKey(addr));
196
+ const lookupAccounts = data.lookupAccounts;
223
197
  // Convert the route plan tokens into PublicKey objects.
224
198
  const routePlan = (quote.routePlan || []).map((rp) => ({
225
199
  tokenA: new web3_js_1.PublicKey(rp.tokenA),
226
200
  tokenB: new web3_js_1.PublicKey(rp.tokenB),
227
201
  dexId: rp.dexId,
228
202
  }));
229
- // Convert each API instruction group into properly formatted objects.
230
- const instructionGroups = (data.inXs || []).map((group) => ({
231
- instructions: (group.instructions || []).map((inst) => this.convertAPIInstruction(inst)),
232
- cleanupInstructions: (group.cleanupInstructions || []).map((inst) => this.convertAPIInstruction(inst)),
233
- signers: group.signers || [],
234
- }));
203
+ // Convert each base58-encoded signer secret into a Keypair.
204
+ const signers = data.signers;
205
+ transaction.sign(signers);
235
206
  return {
236
- instructionGroups,
237
- amountOut: Number(data.amountOut),
207
+ transaction,
208
+ serializedTransactions: data.serializedTransactions,
209
+ amountOut: Number(quote.amountOut),
238
210
  amountOutUi: Number(quote.amountOut),
211
+ pairPrice: Number(quote.tokenPrice),
239
212
  routePlan,
240
213
  lookupAccounts,
241
- signers: data.signers,
214
+ signers,
215
+ feeRate: parseFloat(quote.feeRate),
242
216
  };
243
217
  }
244
218
  /**
@@ -252,7 +226,7 @@ class SwapSDK {
252
226
  throw new Error(`API Error: ${response.statusText}`);
253
227
  }
254
228
  const data = await response.json();
255
- return data.map((token) => ({
229
+ return data.data.map((token) => ({
256
230
  name: token.metadata.name,
257
231
  symbol: token.metadata.symbol,
258
232
  address: token.address,
@@ -1 +1 @@
1
- {"version":3,"file":"swapSDK.js","sourceRoot":"","sources":["../src/swapSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swapSDK.js","sourceRoot":"","sources":["../src/swapSDK.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deserialize/swap-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Swap SDK for the deserialize aggregator",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/swapSDK.ts CHANGED
@@ -33,6 +33,17 @@ export interface SwapRequestParams {
33
33
  options?: RouteOptions;
34
34
  }
35
35
 
36
+ export interface SwapTransactionResponse {
37
+ /** Fully constructed VersionedTransaction ready for signing */
38
+ transaction: VersionedTransaction;
39
+ /** Raw transaction data in base64 encoding */
40
+ serializedTransactions: string;
41
+ /** Associated lookup accounts */
42
+ lookupAccounts: PublicKey[];
43
+ /** Required transaction signers */
44
+ signers: Keypair[];
45
+ }
46
+
36
47
  export interface RouteOptions {
37
48
  reduceToTwoHops: boolean;
38
49
  }
@@ -258,10 +269,10 @@ export class SwapSDK {
258
269
  * @param params Swap parameters including the quote
259
270
  * @returns Transaction and output details
260
271
  */
261
- async executeSwap(params: {
272
+ async getSwapTransaction(params: {
262
273
  publicKey: PublicKey;
263
274
  quote: QuoteResponse;
264
- }): Promise<any> {
275
+ }): Promise<SwapTransactionResponse> {
265
276
  const body = {
266
277
  publicKey: params.publicKey.toBase58(),
267
278
  quote: params.quote,
@@ -279,25 +290,7 @@ export class SwapSDK {
279
290
  throw new Error(`API Error: ${response.statusText}`);
280
291
  }
281
292
 
282
- return await response.json();
283
- }
284
-
285
- /**
286
- * Calls the swap endpoint and returns a fully constructed Transaction.
287
- * This method is a wrapper that gets a quote first, then executes the swap.
288
- *
289
- * @param params Swap parameters.
290
- * @returns A promise that resolves to a SwapTxResult.
291
- */
292
- async swapTx(params: SwapRequestParams): Promise<SwapTxResult> {
293
- // First get a quote
294
- const quote = await this.getSwapQuote(params);
295
-
296
- // Then execute the swap with the quote
297
- const data = await this.executeSwap({
298
- publicKey: params.publicKey,
299
- quote,
300
- });
293
+ const data = await response.json();
301
294
 
302
295
  // Convert the base64-encoded transaction into a VersionedTransaction.
303
296
  const txBuffer = Buffer.from(data.transaction, "base64");
@@ -308,13 +301,6 @@ export class SwapSDK {
308
301
  (addr: string) => new PublicKey(addr)
309
302
  );
310
303
 
311
- // Convert the route plan tokens into PublicKey objects.
312
- const routePlan = (quote.routePlan || []).map((rp: any) => ({
313
- tokenA: new PublicKey(rp.tokenA),
314
- tokenB: new PublicKey(rp.tokenB),
315
- dexId: rp.dexId as DexIdTypes,
316
- }));
317
-
318
304
  // Convert each base58-encoded signer secret into a Keypair.
319
305
  const signers = data.signers.map((s: string) =>
320
306
  Keypair.fromSecretKey(base58.decode(s))
@@ -325,65 +311,53 @@ export class SwapSDK {
325
311
  return {
326
312
  transaction,
327
313
  serializedTransactions: data.transaction,
328
- amountOut: Number(data.amountOut),
329
- amountOutUi: Number(quote.amountOut),
330
- pairPrice: Number(quote.tokenPrice),
331
- routePlan,
332
314
  lookupAccounts,
333
315
  signers,
334
- feeRate: parseFloat(quote.feeRate),
335
316
  };
336
317
  }
337
318
 
338
319
  /**
339
- * Calls the swap endpoint and returns the raw instructions and related data.
340
- * This method is a wrapper that gets a quote first, then executes the swap to get instructions.
320
+ * Calls the swap endpoint and returns a fully constructed Transaction.
321
+ * This method is a wrapper that gets a quote first, then executes the swap.
341
322
  *
342
323
  * @param params Swap parameters.
343
- * @returns A promise that resolves to a SwapIxResult.
324
+ * @returns A promise that resolves to a SwapTxResult.
344
325
  */
345
- async swapIx(params: SwapRequestParams): Promise<SwapIxResult> {
326
+ async swapTx(params: SwapRequestParams): Promise<SwapTxResult> {
346
327
  // First get a quote
347
328
  const quote = await this.getSwapQuote(params);
348
329
 
349
330
  // Then execute the swap with the quote
350
- const data = await this.executeSwap({
331
+ const data = await this.getSwapTransaction({
351
332
  publicKey: params.publicKey,
352
333
  quote,
353
334
  });
354
335
 
355
- // Convert lookup accounts from strings to PublicKey objects.
356
- const lookupAccounts: PublicKey[] = (data.lookUpAccounts || []).map(
357
- (addr: string) => new PublicKey(addr)
358
- );
336
+ const transaction = data.transaction;
359
337
 
338
+ // Convert lookup accounts from strings to PublicKey objects.
339
+ const lookupAccounts: PublicKey[] = data.lookupAccounts;
360
340
  // Convert the route plan tokens into PublicKey objects.
361
341
  const routePlan = (quote.routePlan || []).map((rp: any) => ({
362
342
  tokenA: new PublicKey(rp.tokenA),
363
343
  tokenB: new PublicKey(rp.tokenB),
364
- dexId: rp.dexId,
344
+ dexId: rp.dexId as DexIdTypes,
365
345
  }));
366
346
 
367
- // Convert each API instruction group into properly formatted objects.
368
- const instructionGroups: InstructionGroup[] = (data.inXs || []).map(
369
- (group: any) => ({
370
- instructions: (group.instructions || []).map((inst: any) =>
371
- this.convertAPIInstruction(inst)
372
- ),
373
- cleanupInstructions: (group.cleanupInstructions || []).map(
374
- (inst: any) => this.convertAPIInstruction(inst)
375
- ),
376
- signers: group.signers || [],
377
- })
378
- );
347
+ // Convert each base58-encoded signer secret into a Keypair.
348
+ const signers = data.signers;
349
+ transaction.sign(signers);
379
350
 
380
351
  return {
381
- instructionGroups,
382
- amountOut: Number(data.amountOut),
352
+ transaction,
353
+ serializedTransactions: data.serializedTransactions,
354
+ amountOut: Number(quote.amountOut),
383
355
  amountOutUi: Number(quote.amountOut),
356
+ pairPrice: Number(quote.tokenPrice),
384
357
  routePlan,
385
358
  lookupAccounts,
386
- signers: data.signers,
359
+ signers,
360
+ feeRate: parseFloat(quote.feeRate),
387
361
  };
388
362
  }
389
363
 
@@ -398,7 +372,7 @@ export class SwapSDK {
398
372
  throw new Error(`API Error: ${response.statusText}`);
399
373
  }
400
374
  const data = await response.json();
401
- return data.map((token: any) => ({
375
+ return data.data.map((token: any) => ({
402
376
  name: token.metadata.name,
403
377
  symbol: token.metadata.symbol,
404
378
  address: token.address,