@drift-labs/sdk-browser 2.155.0-beta.3 → 2.155.0-beta.4
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/VERSION +1 -1
- package/lib/browser/swap/UnifiedSwapClient.js +1 -10
- package/lib/browser/titan/titanClient.d.ts +4 -5
- package/lib/browser/titan/titanClient.js +2 -16
- package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
- package/lib/node/swap/UnifiedSwapClient.js +1 -10
- package/lib/node/titan/titanClient.d.ts +4 -5
- package/lib/node/titan/titanClient.d.ts.map +1 -1
- package/lib/node/titan/titanClient.js +2 -16
- package/package.json +1 -1
- package/src/swap/UnifiedSwapClient.ts +2 -13
- package/src/titan/titanClient.ts +4 -28
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.155.0-beta.
|
|
1
|
+
2.155.0-beta.4
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnifiedSwapClient = void 0;
|
|
4
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
-
const anchor_1 = require("@coral-xyz/anchor");
|
|
6
4
|
const jupiterClient_1 = require("../jupiter/jupiterClient");
|
|
7
5
|
const titanClient_1 = require("../titan/titanClient");
|
|
8
6
|
class UnifiedSwapClient {
|
|
@@ -70,17 +68,10 @@ class UnifiedSwapClient {
|
|
|
70
68
|
}
|
|
71
69
|
else {
|
|
72
70
|
const titanClient = this.client;
|
|
73
|
-
const {
|
|
71
|
+
const { userPublicKey } = params;
|
|
74
72
|
// For Titan, we need to reconstruct the parameters from the quote
|
|
75
|
-
const titanQuote = quote;
|
|
76
73
|
const result = await titanClient.getSwap({
|
|
77
|
-
inputMint: new web3_js_1.PublicKey(titanQuote.inputMint),
|
|
78
|
-
outputMint: new web3_js_1.PublicKey(titanQuote.outputMint),
|
|
79
|
-
amount: new anchor_1.BN(titanQuote.inAmount),
|
|
80
74
|
userPublicKey,
|
|
81
|
-
slippageBps: slippageBps || titanQuote.slippageBps,
|
|
82
|
-
swapMode: titanQuote.swapMode,
|
|
83
|
-
sizeConstraint: 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for drift instructions
|
|
84
75
|
});
|
|
85
76
|
return {
|
|
86
77
|
transactionMessage: result.transactionMessage,
|
|
@@ -59,11 +59,10 @@ export declare class TitanClient {
|
|
|
59
59
|
/**
|
|
60
60
|
* Get a swap transaction for quote
|
|
61
61
|
*/
|
|
62
|
-
getSwap({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
amount: BN;
|
|
62
|
+
getSwap({ userPublicKey, }: {
|
|
63
|
+
inputMint?: PublicKey;
|
|
64
|
+
outputMint?: PublicKey;
|
|
65
|
+
amount?: BN;
|
|
67
66
|
userPublicKey: PublicKey;
|
|
68
67
|
maxAccounts?: number;
|
|
69
68
|
slippageBps?: number;
|
|
@@ -128,23 +128,9 @@ class TitanClient {
|
|
|
128
128
|
/**
|
|
129
129
|
* Get a swap transaction for quote
|
|
130
130
|
*/
|
|
131
|
-
async getSwap({
|
|
132
|
-
slippageBps, swapMode, onlyDirectRoutes, excludeDexes, sizeConstraint, accountsLimitWritable, }) {
|
|
133
|
-
const params = this.buildParams({
|
|
134
|
-
inputMint,
|
|
135
|
-
outputMint,
|
|
136
|
-
amount,
|
|
137
|
-
userPublicKey,
|
|
138
|
-
maxAccounts,
|
|
139
|
-
slippageBps,
|
|
140
|
-
swapMode,
|
|
141
|
-
onlyDirectRoutes,
|
|
142
|
-
excludeDexes,
|
|
143
|
-
sizeConstraint,
|
|
144
|
-
accountsLimitWritable,
|
|
145
|
-
});
|
|
131
|
+
async getSwap({ userPublicKey, }) {
|
|
146
132
|
// Check if we have cached quote data that matches the current parameters
|
|
147
|
-
if (!this.lastQuoteData
|
|
133
|
+
if (!this.lastQuoteData) {
|
|
148
134
|
throw new Error('No matching quote data found. Please get a fresh quote before attempting to swap.');
|
|
149
135
|
}
|
|
150
136
|
// Reuse the cached quote data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnifiedSwapClient.d.ts","sourceRoot":"","sources":["../../../src/swap/UnifiedSwapClient.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EACN,aAAa,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"UnifiedSwapClient.d.ts","sourceRoot":"","sources":["../../../src/swap/UnifiedSwapClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnifiedSwapClient = void 0;
|
|
4
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
-
const anchor_1 = require("@coral-xyz/anchor");
|
|
6
4
|
const jupiterClient_1 = require("../jupiter/jupiterClient");
|
|
7
5
|
const titanClient_1 = require("../titan/titanClient");
|
|
8
6
|
class UnifiedSwapClient {
|
|
@@ -70,17 +68,10 @@ class UnifiedSwapClient {
|
|
|
70
68
|
}
|
|
71
69
|
else {
|
|
72
70
|
const titanClient = this.client;
|
|
73
|
-
const {
|
|
71
|
+
const { userPublicKey } = params;
|
|
74
72
|
// For Titan, we need to reconstruct the parameters from the quote
|
|
75
|
-
const titanQuote = quote;
|
|
76
73
|
const result = await titanClient.getSwap({
|
|
77
|
-
inputMint: new web3_js_1.PublicKey(titanQuote.inputMint),
|
|
78
|
-
outputMint: new web3_js_1.PublicKey(titanQuote.outputMint),
|
|
79
|
-
amount: new anchor_1.BN(titanQuote.inAmount),
|
|
80
74
|
userPublicKey,
|
|
81
|
-
slippageBps: slippageBps || titanQuote.slippageBps,
|
|
82
|
-
swapMode: titanQuote.swapMode,
|
|
83
|
-
sizeConstraint: 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for drift instructions
|
|
84
75
|
});
|
|
85
76
|
return {
|
|
86
77
|
transactionMessage: result.transactionMessage,
|
|
@@ -59,11 +59,10 @@ export declare class TitanClient {
|
|
|
59
59
|
/**
|
|
60
60
|
* Get a swap transaction for quote
|
|
61
61
|
*/
|
|
62
|
-
getSwap({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
amount: BN;
|
|
62
|
+
getSwap({ userPublicKey, }: {
|
|
63
|
+
inputMint?: PublicKey;
|
|
64
|
+
outputMint?: PublicKey;
|
|
65
|
+
amount?: BN;
|
|
67
66
|
userPublicKey: PublicKey;
|
|
68
67
|
maxAccounts?: number;
|
|
69
68
|
slippageBps?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"titanClient.d.ts","sourceRoot":"","sources":["../../../src/titan/titanClient.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAGvC,oBAAY,QAAQ;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACrB;AA6DD,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,WAAW;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,EACX,UAAU,EACV,SAAS,EACT,GAAG,EACH,QAAQ,GACR,EAAE;QACF,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB;IAOD,OAAO,CAAC,WAAW;IAkDnB;;OAEG;IACU,QAAQ,CAAC,EACrB,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,WAAgB,EAAE,wCAAwC;IAC1D,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,qBAAqB,GACrB,EAAE;QACF,SAAS,EAAE,SAAS,CAAC;QACrB,UAAU,EAAE,SAAS,CAAC;QACtB,MAAM,EAAE,EAAE,CAAC;QACX,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC,aAAa,CAAC;IA4F1B;;OAEG;IACU,OAAO,CAAC,EACpB,
|
|
1
|
+
{"version":3,"file":"titanClient.d.ts","sourceRoot":"","sources":["../../../src/titan/titanClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -128,23 +128,9 @@ class TitanClient {
|
|
|
128
128
|
/**
|
|
129
129
|
* Get a swap transaction for quote
|
|
130
130
|
*/
|
|
131
|
-
async getSwap({
|
|
132
|
-
slippageBps, swapMode, onlyDirectRoutes, excludeDexes, sizeConstraint, accountsLimitWritable, }) {
|
|
133
|
-
const params = this.buildParams({
|
|
134
|
-
inputMint,
|
|
135
|
-
outputMint,
|
|
136
|
-
amount,
|
|
137
|
-
userPublicKey,
|
|
138
|
-
maxAccounts,
|
|
139
|
-
slippageBps,
|
|
140
|
-
swapMode,
|
|
141
|
-
onlyDirectRoutes,
|
|
142
|
-
excludeDexes,
|
|
143
|
-
sizeConstraint,
|
|
144
|
-
accountsLimitWritable,
|
|
145
|
-
});
|
|
131
|
+
async getSwap({ userPublicKey, }) {
|
|
146
132
|
// Check if we have cached quote data that matches the current parameters
|
|
147
|
-
if (!this.lastQuoteData
|
|
133
|
+
if (!this.lastQuoteData) {
|
|
148
134
|
throw new Error('No matching quote data found. Please get a fresh quote before attempting to swap.');
|
|
149
135
|
}
|
|
150
136
|
// Reuse the cached quote data
|
package/package.json
CHANGED
|
@@ -11,11 +11,7 @@ import {
|
|
|
11
11
|
JupiterClient,
|
|
12
12
|
QuoteResponse as JupiterQuoteResponse,
|
|
13
13
|
} from '../jupiter/jupiterClient';
|
|
14
|
-
import {
|
|
15
|
-
TitanClient,
|
|
16
|
-
QuoteResponse as TitanQuoteResponse,
|
|
17
|
-
SwapMode as TitanSwapMode,
|
|
18
|
-
} from '../titan/titanClient';
|
|
14
|
+
import { TitanClient, SwapMode as TitanSwapMode } from '../titan/titanClient';
|
|
19
15
|
|
|
20
16
|
export type SwapMode = 'ExactIn' | 'ExactOut';
|
|
21
17
|
export type SwapClientType = 'jupiter' | 'titan';
|
|
@@ -167,18 +163,11 @@ export class UnifiedSwapClient {
|
|
|
167
163
|
return { transaction };
|
|
168
164
|
} else {
|
|
169
165
|
const titanClient = this.client as TitanClient;
|
|
170
|
-
const {
|
|
166
|
+
const { userPublicKey } = params;
|
|
171
167
|
|
|
172
168
|
// For Titan, we need to reconstruct the parameters from the quote
|
|
173
|
-
const titanQuote = quote as TitanQuoteResponse;
|
|
174
169
|
const result = await titanClient.getSwap({
|
|
175
|
-
inputMint: new PublicKey(titanQuote.inputMint),
|
|
176
|
-
outputMint: new PublicKey(titanQuote.outputMint),
|
|
177
|
-
amount: new BN(titanQuote.inAmount),
|
|
178
170
|
userPublicKey,
|
|
179
|
-
slippageBps: slippageBps || titanQuote.slippageBps,
|
|
180
|
-
swapMode: titanQuote.swapMode,
|
|
181
|
-
sizeConstraint: 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for drift instructions
|
|
182
171
|
});
|
|
183
172
|
|
|
184
173
|
return {
|
package/src/titan/titanClient.ts
CHANGED
|
@@ -287,21 +287,11 @@ export class TitanClient {
|
|
|
287
287
|
* Get a swap transaction for quote
|
|
288
288
|
*/
|
|
289
289
|
public async getSwap({
|
|
290
|
-
inputMint,
|
|
291
|
-
outputMint,
|
|
292
|
-
amount,
|
|
293
290
|
userPublicKey,
|
|
294
|
-
maxAccounts = 50, // 50 is an estimated amount with buffer
|
|
295
|
-
slippageBps,
|
|
296
|
-
swapMode,
|
|
297
|
-
onlyDirectRoutes,
|
|
298
|
-
excludeDexes,
|
|
299
|
-
sizeConstraint,
|
|
300
|
-
accountsLimitWritable,
|
|
301
291
|
}: {
|
|
302
|
-
inputMint
|
|
303
|
-
outputMint
|
|
304
|
-
amount
|
|
292
|
+
inputMint?: PublicKey;
|
|
293
|
+
outputMint?: PublicKey;
|
|
294
|
+
amount?: BN;
|
|
305
295
|
userPublicKey: PublicKey;
|
|
306
296
|
maxAccounts?: number;
|
|
307
297
|
slippageBps?: number;
|
|
@@ -314,22 +304,8 @@ export class TitanClient {
|
|
|
314
304
|
transactionMessage: TransactionMessage;
|
|
315
305
|
lookupTables: AddressLookupTableAccount[];
|
|
316
306
|
}> {
|
|
317
|
-
const params = this.buildParams({
|
|
318
|
-
inputMint,
|
|
319
|
-
outputMint,
|
|
320
|
-
amount,
|
|
321
|
-
userPublicKey,
|
|
322
|
-
maxAccounts,
|
|
323
|
-
slippageBps,
|
|
324
|
-
swapMode,
|
|
325
|
-
onlyDirectRoutes,
|
|
326
|
-
excludeDexes,
|
|
327
|
-
sizeConstraint,
|
|
328
|
-
accountsLimitWritable,
|
|
329
|
-
});
|
|
330
|
-
|
|
331
307
|
// Check if we have cached quote data that matches the current parameters
|
|
332
|
-
if (!this.lastQuoteData
|
|
308
|
+
if (!this.lastQuoteData) {
|
|
333
309
|
throw new Error(
|
|
334
310
|
'No matching quote data found. Please get a fresh quote before attempting to swap.'
|
|
335
311
|
);
|