@drift-labs/sdk 2.152.0-beta.1 → 2.152.0-beta.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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.152.0-beta.1
1
+ 2.152.0-beta.2
@@ -60,11 +60,12 @@ export interface SwapTransactionResult {
60
60
  export declare class UnifiedSwapClient {
61
61
  private client;
62
62
  private clientType;
63
- constructor({ clientType, connection, authToken, url, }: {
63
+ constructor({ clientType, connection, authToken, url, proxyUrl, }: {
64
64
  clientType: SwapClientType;
65
65
  connection: Connection;
66
66
  authToken?: string;
67
67
  url?: string;
68
+ proxyUrl?: string;
68
69
  });
69
70
  /**
70
71
  * Get a swap quote from the underlying client
@@ -6,7 +6,7 @@ const anchor_1 = require("@coral-xyz/anchor");
6
6
  const jupiterClient_1 = require("../jupiter/jupiterClient");
7
7
  const titanClient_1 = require("../titan/titanClient");
8
8
  class UnifiedSwapClient {
9
- constructor({ clientType, connection, authToken, url, }) {
9
+ constructor({ clientType, connection, authToken, url, proxyUrl, }) {
10
10
  this.clientType = clientType;
11
11
  if (clientType === 'jupiter') {
12
12
  this.client = new jupiterClient_1.JupiterClient({
@@ -15,13 +15,11 @@ class UnifiedSwapClient {
15
15
  });
16
16
  }
17
17
  else if (clientType === 'titan') {
18
- if (!authToken) {
19
- throw new Error('authToken is required for Titan client');
20
- }
21
18
  this.client = new titanClient_1.TitanClient({
22
19
  connection,
23
- authToken,
20
+ authToken: authToken || '', // Not needed when using proxy
24
21
  url,
22
+ proxyUrl,
25
23
  });
26
24
  }
27
25
  else {
@@ -29,10 +29,12 @@ export declare class TitanClient {
29
29
  authToken: string;
30
30
  url: string;
31
31
  connection: Connection;
32
- constructor({ connection, authToken, url, }: {
32
+ proxyUrl?: string;
33
+ constructor({ connection, authToken, url, proxyUrl, }: {
33
34
  connection: Connection;
34
35
  authToken: string;
35
36
  url?: string;
37
+ proxyUrl?: string;
36
38
  });
37
39
  /**
38
40
  * Get routes for a swap
@@ -10,10 +10,11 @@ var SwapMode;
10
10
  })(SwapMode || (exports.SwapMode = SwapMode = {}));
11
11
  const TITAN_API_URL = 'https://api.titan.exchange';
12
12
  class TitanClient {
13
- constructor({ connection, authToken, url, }) {
13
+ constructor({ connection, authToken, url, proxyUrl, }) {
14
14
  this.connection = connection;
15
15
  this.authToken = authToken;
16
16
  this.url = url !== null && url !== void 0 ? url : TITAN_API_URL;
17
+ this.proxyUrl = proxyUrl;
17
18
  }
18
19
  /**
19
20
  * Get routes for a swap
@@ -40,13 +41,27 @@ class TitanClient {
40
41
  accountsLimitWritable: accountsLimitWritable.toString(),
41
42
  }),
42
43
  });
43
- const response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
44
- headers: {
45
- Accept: 'application/vnd.msgpack',
46
- 'Accept-Encoding': 'gzip, deflate, br',
47
- Authorization: `Bearer ${this.authToken}`,
48
- },
49
- });
44
+ let response;
45
+ if (this.proxyUrl) {
46
+ // Use proxy route - send parameters in request body
47
+ response = await fetch(this.proxyUrl, {
48
+ method: 'POST',
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ },
52
+ body: JSON.stringify(Object.fromEntries(params.entries())),
53
+ });
54
+ }
55
+ else {
56
+ // Direct request to Titan API
57
+ response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
58
+ headers: {
59
+ Accept: 'application/vnd.msgpack',
60
+ 'Accept-Encoding': 'gzip, deflate, br',
61
+ Authorization: `Bearer ${this.authToken}`,
62
+ },
63
+ });
64
+ }
50
65
  if (!response.ok) {
51
66
  throw new Error(`Titan API error: ${response.status} ${response.statusText}`);
52
67
  }
@@ -112,13 +127,27 @@ class TitanClient {
112
127
  accountsLimitWritable: accountsLimitWritable.toString(),
113
128
  }),
114
129
  });
115
- const response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
116
- headers: {
117
- Accept: 'application/vnd.msgpack',
118
- 'Accept-Encoding': 'gzip, deflate, br',
119
- Authorization: `Bearer ${this.authToken}`,
120
- },
121
- });
130
+ let response;
131
+ if (this.proxyUrl) {
132
+ // Use proxy route - send parameters in request body
133
+ response = await fetch(this.proxyUrl, {
134
+ method: 'POST',
135
+ headers: {
136
+ 'Content-Type': 'application/json',
137
+ },
138
+ body: JSON.stringify(Object.fromEntries(params.entries())),
139
+ });
140
+ }
141
+ else {
142
+ // Direct request to Titan API
143
+ response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
144
+ headers: {
145
+ Accept: 'application/vnd.msgpack',
146
+ 'Accept-Encoding': 'gzip, deflate, br',
147
+ Authorization: `Bearer ${this.authToken}`,
148
+ },
149
+ });
150
+ }
122
151
  if (!response.ok) {
123
152
  if (response.status === 404) {
124
153
  throw new Error('No routes available');
@@ -60,11 +60,12 @@ export interface SwapTransactionResult {
60
60
  export declare class UnifiedSwapClient {
61
61
  private client;
62
62
  private clientType;
63
- constructor({ clientType, connection, authToken, url, }: {
63
+ constructor({ clientType, connection, authToken, url, proxyUrl, }: {
64
64
  clientType: SwapClientType;
65
65
  connection: Connection;
66
66
  authToken?: string;
67
67
  url?: string;
68
+ proxyUrl?: string;
68
69
  });
69
70
  /**
70
71
  * Get a swap quote from the underlying client
@@ -1 +1 @@
1
- {"version":3,"file":"UnifiedSwapClient.d.ts","sourceRoot":"","sources":["../../../src/swap/UnifiedSwapClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UnifiedSwapClient.d.ts","sourceRoot":"","sources":["../../../src/swap/UnifiedSwapClient.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ const anchor_1 = require("@coral-xyz/anchor");
6
6
  const jupiterClient_1 = require("../jupiter/jupiterClient");
7
7
  const titanClient_1 = require("../titan/titanClient");
8
8
  class UnifiedSwapClient {
9
- constructor({ clientType, connection, authToken, url, }) {
9
+ constructor({ clientType, connection, authToken, url, proxyUrl, }) {
10
10
  this.clientType = clientType;
11
11
  if (clientType === 'jupiter') {
12
12
  this.client = new jupiterClient_1.JupiterClient({
@@ -15,13 +15,11 @@ class UnifiedSwapClient {
15
15
  });
16
16
  }
17
17
  else if (clientType === 'titan') {
18
- if (!authToken) {
19
- throw new Error('authToken is required for Titan client');
20
- }
21
18
  this.client = new titanClient_1.TitanClient({
22
19
  connection,
23
- authToken,
20
+ authToken: authToken || '', // Not needed when using proxy
24
21
  url,
22
+ proxyUrl,
25
23
  });
26
24
  }
27
25
  else {
@@ -29,10 +29,12 @@ export declare class TitanClient {
29
29
  authToken: string;
30
30
  url: string;
31
31
  connection: Connection;
32
- constructor({ connection, authToken, url, }: {
32
+ proxyUrl?: string;
33
+ constructor({ connection, authToken, url, proxyUrl, }: {
33
34
  connection: Connection;
34
35
  authToken: string;
35
36
  url?: string;
37
+ proxyUrl?: string;
36
38
  });
37
39
  /**
38
40
  * Get routes for a swap
@@ -1 +1 @@
1
- {"version":3,"file":"titanClient.d.ts","sourceRoot":"","sources":["../../../src/titan/titanClient.ts"],"names":[],"mappings":"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"}
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;gBAEN,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;;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;IAkG1B;;OAEG;IACU,OAAO,CAAC,EACpB,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,QAAQ,CAAC;QACpB,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;QACX,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,YAAY,EAAE,yBAAyB,EAAE,CAAC;KAC1C,CAAC;IAgFF;;;;;OAKG;IACI,oBAAoB,CAAC,EAC3B,kBAAkB,EAClB,SAAS,EACT,UAAU,GACV,EAAE;QACF,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,SAAS,EAAE,SAAS,CAAC;QACrB,UAAU,EAAE,SAAS,CAAC;KACtB,GAAG,sBAAsB,EAAE;YAmCd,oCAAoC;CA+ClD"}
@@ -10,10 +10,11 @@ var SwapMode;
10
10
  })(SwapMode || (exports.SwapMode = SwapMode = {}));
11
11
  const TITAN_API_URL = 'https://api.titan.exchange';
12
12
  class TitanClient {
13
- constructor({ connection, authToken, url, }) {
13
+ constructor({ connection, authToken, url, proxyUrl, }) {
14
14
  this.connection = connection;
15
15
  this.authToken = authToken;
16
16
  this.url = url !== null && url !== void 0 ? url : TITAN_API_URL;
17
+ this.proxyUrl = proxyUrl;
17
18
  }
18
19
  /**
19
20
  * Get routes for a swap
@@ -40,13 +41,27 @@ class TitanClient {
40
41
  accountsLimitWritable: accountsLimitWritable.toString(),
41
42
  }),
42
43
  });
43
- const response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
44
- headers: {
45
- Accept: 'application/vnd.msgpack',
46
- 'Accept-Encoding': 'gzip, deflate, br',
47
- Authorization: `Bearer ${this.authToken}`,
48
- },
49
- });
44
+ let response;
45
+ if (this.proxyUrl) {
46
+ // Use proxy route - send parameters in request body
47
+ response = await fetch(this.proxyUrl, {
48
+ method: 'POST',
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ },
52
+ body: JSON.stringify(Object.fromEntries(params.entries())),
53
+ });
54
+ }
55
+ else {
56
+ // Direct request to Titan API
57
+ response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
58
+ headers: {
59
+ Accept: 'application/vnd.msgpack',
60
+ 'Accept-Encoding': 'gzip, deflate, br',
61
+ Authorization: `Bearer ${this.authToken}`,
62
+ },
63
+ });
64
+ }
50
65
  if (!response.ok) {
51
66
  throw new Error(`Titan API error: ${response.status} ${response.statusText}`);
52
67
  }
@@ -112,13 +127,27 @@ class TitanClient {
112
127
  accountsLimitWritable: accountsLimitWritable.toString(),
113
128
  }),
114
129
  });
115
- const response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
116
- headers: {
117
- Accept: 'application/vnd.msgpack',
118
- 'Accept-Encoding': 'gzip, deflate, br',
119
- Authorization: `Bearer ${this.authToken}`,
120
- },
121
- });
130
+ let response;
131
+ if (this.proxyUrl) {
132
+ // Use proxy route - send parameters in request body
133
+ response = await fetch(this.proxyUrl, {
134
+ method: 'POST',
135
+ headers: {
136
+ 'Content-Type': 'application/json',
137
+ },
138
+ body: JSON.stringify(Object.fromEntries(params.entries())),
139
+ });
140
+ }
141
+ else {
142
+ // Direct request to Titan API
143
+ response = await fetch(`${this.url}/api/v1/quote/swap?${params.toString()}`, {
144
+ headers: {
145
+ Accept: 'application/vnd.msgpack',
146
+ 'Accept-Encoding': 'gzip, deflate, br',
147
+ Authorization: `Bearer ${this.authToken}`,
148
+ },
149
+ });
150
+ }
122
151
  if (!response.ok) {
123
152
  if (response.status === 404) {
124
153
  throw new Error('No routes available');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.152.0-beta.1",
3
+ "version": "2.152.0-beta.2",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "module": "./lib/browser/index.js",
@@ -82,11 +82,13 @@ export class UnifiedSwapClient {
82
82
  connection,
83
83
  authToken,
84
84
  url,
85
+ proxyUrl,
85
86
  }: {
86
87
  clientType: SwapClientType;
87
88
  connection: Connection;
88
- authToken?: string; // Required for Titan, optional for Jupiter
89
+ authToken?: string; // Required for Titan when not using proxy, optional for Jupiter
89
90
  url?: string; // Optional custom URL
91
+ proxyUrl?: string; // Optional proxy URL for Titan
90
92
  }) {
91
93
  this.clientType = clientType;
92
94
 
@@ -96,13 +98,11 @@ export class UnifiedSwapClient {
96
98
  url,
97
99
  });
98
100
  } else if (clientType === 'titan') {
99
- if (!authToken) {
100
- throw new Error('authToken is required for Titan client');
101
- }
102
101
  this.client = new TitanClient({
103
102
  connection,
104
- authToken,
103
+ authToken: authToken || '', // Not needed when using proxy
105
104
  url,
105
+ proxyUrl,
106
106
  });
107
107
  } else {
108
108
  throw new Error(`Unsupported client type: ${clientType}`);
@@ -93,19 +93,23 @@ export class TitanClient {
93
93
  authToken: string;
94
94
  url: string;
95
95
  connection: Connection;
96
+ proxyUrl?: string;
96
97
 
97
98
  constructor({
98
99
  connection,
99
100
  authToken,
100
101
  url,
102
+ proxyUrl,
101
103
  }: {
102
104
  connection: Connection;
103
105
  authToken: string;
104
106
  url?: string;
107
+ proxyUrl?: string;
105
108
  }) {
106
109
  this.connection = connection;
107
110
  this.authToken = authToken;
108
111
  this.url = url ?? TITAN_API_URL;
112
+ this.proxyUrl = proxyUrl;
109
113
  }
110
114
 
111
115
  /**
@@ -157,16 +161,30 @@ export class TitanClient {
157
161
  }),
158
162
  });
159
163
 
160
- const response = await fetch(
161
- `${this.url}/api/v1/quote/swap?${params.toString()}`,
162
- {
164
+ let response: Response;
165
+
166
+ if (this.proxyUrl) {
167
+ // Use proxy route - send parameters in request body
168
+ response = await fetch(this.proxyUrl, {
169
+ method: 'POST',
163
170
  headers: {
164
- Accept: 'application/vnd.msgpack',
165
- 'Accept-Encoding': 'gzip, deflate, br',
166
- Authorization: `Bearer ${this.authToken}`,
171
+ 'Content-Type': 'application/json',
167
172
  },
168
- }
169
- );
173
+ body: JSON.stringify(Object.fromEntries(params.entries())),
174
+ });
175
+ } else {
176
+ // Direct request to Titan API
177
+ response = await fetch(
178
+ `${this.url}/api/v1/quote/swap?${params.toString()}`,
179
+ {
180
+ headers: {
181
+ Accept: 'application/vnd.msgpack',
182
+ 'Accept-Encoding': 'gzip, deflate, br',
183
+ Authorization: `Bearer ${this.authToken}`,
184
+ },
185
+ }
186
+ );
187
+ }
170
188
 
171
189
  if (!response.ok) {
172
190
  throw new Error(
@@ -268,16 +286,30 @@ export class TitanClient {
268
286
  }),
269
287
  });
270
288
 
271
- const response = await fetch(
272
- `${this.url}/api/v1/quote/swap?${params.toString()}`,
273
- {
289
+ let response: Response;
290
+
291
+ if (this.proxyUrl) {
292
+ // Use proxy route - send parameters in request body
293
+ response = await fetch(this.proxyUrl, {
294
+ method: 'POST',
274
295
  headers: {
275
- Accept: 'application/vnd.msgpack',
276
- 'Accept-Encoding': 'gzip, deflate, br',
277
- Authorization: `Bearer ${this.authToken}`,
296
+ 'Content-Type': 'application/json',
278
297
  },
279
- }
280
- );
298
+ body: JSON.stringify(Object.fromEntries(params.entries())),
299
+ });
300
+ } else {
301
+ // Direct request to Titan API
302
+ response = await fetch(
303
+ `${this.url}/api/v1/quote/swap?${params.toString()}`,
304
+ {
305
+ headers: {
306
+ Accept: 'application/vnd.msgpack',
307
+ 'Accept-Encoding': 'gzip, deflate, br',
308
+ Authorization: `Bearer ${this.authToken}`,
309
+ },
310
+ }
311
+ );
312
+ }
281
313
 
282
314
  if (!response.ok) {
283
315
  if (response.status === 404) {