@chainstream-io/sdk 2.0.7 → 2.0.8

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/index.cjs CHANGED
@@ -81,11 +81,13 @@ __export(index_exports, {
81
81
  WsMetricType: () => WsMetricType,
82
82
  WsRankingType: () => WsRankingType,
83
83
  WsTokenActivityType: () => WsTokenActivityType,
84
+ buildSignMessage: () => buildSignMessage,
84
85
  calculatePnl: () => calculatePnl,
85
86
  claimRedpacket: () => claimRedpacket,
86
87
  createEndpoint: () => createEndpoint,
87
88
  createRedpacket: () => createRedpacket,
88
89
  createToken: () => createToken,
90
+ createWalletAuthHeaders: () => createWalletAuthHeaders,
89
91
  deleteEndpoint: () => deleteEndpoint,
90
92
  get: () => get,
91
93
  getActivities: () => getActivities,
@@ -189,6 +191,28 @@ var import_event_source_polyfill = require("event-source-polyfill");
189
191
  // src/openapi-client/chainstreamApiClient.ts
190
192
  var import_axios = __toESM(require("axios"), 1);
191
193
  var import_axios_retry = __toESM(require("axios-retry"), 1);
194
+
195
+ // src/wallet-auth.ts
196
+ var import_crypto = require("crypto");
197
+ var SIGNATURE_PREFIX = "chainstream";
198
+ function buildSignMessage(chain, address, timestamp, nonce) {
199
+ return `${SIGNATURE_PREFIX}:${chain}:${address}:${timestamp}:${nonce}`;
200
+ }
201
+ async function createWalletAuthHeaders(signer) {
202
+ const timestamp = Math.floor(Date.now() / 1e3).toString();
203
+ const nonce = (0, import_crypto.randomBytes)(16).toString("hex");
204
+ const message = buildSignMessage(signer.chain, signer.address, timestamp, nonce);
205
+ const signature = await signer.signMessage(message);
206
+ return {
207
+ "X-Wallet-Address": signer.address,
208
+ "X-Wallet-Chain": signer.chain,
209
+ "X-Wallet-Signature": signature,
210
+ "X-Wallet-Timestamp": timestamp,
211
+ "X-Wallet-Nonce": nonce
212
+ };
213
+ }
214
+
215
+ // src/openapi-client/chainstreamApiClient.ts
192
216
  var axiosRetry = typeof import_axios_retry.default === "function" ? import_axios_retry.default : import_axios_retry.default.default;
193
217
  var axiosInstance;
194
218
  var currentOptions = void 0;
@@ -205,8 +229,15 @@ var configure = (options) => {
205
229
  retryDelay: import_axios_retry.exponentialDelay
206
230
  });
207
231
  axiosInstance.interceptors.request.use(async (config) => {
208
- const token = typeof options.accessToken === "string" ? options.accessToken : await options.accessToken.getToken();
209
- config.headers.Authorization = `Bearer ${token}`;
232
+ if (options.walletSigner) {
233
+ const walletHeaders = await createWalletAuthHeaders(options.walletSigner);
234
+ Object.entries(walletHeaders).forEach(([key, value]) => {
235
+ config.headers[key] = value;
236
+ });
237
+ } else if (options.accessToken) {
238
+ const token = typeof options.accessToken === "string" ? options.accessToken : await options.accessToken.getToken();
239
+ config.headers.Authorization = `Bearer ${token}`;
240
+ }
210
241
  config.headers["Content-Type"] = "application/json";
211
242
  if (options.source) {
212
243
  config.headers["X-Source"] = options.source;
@@ -2522,7 +2553,8 @@ var ChainStreamClient = class {
2522
2553
  const streamUrl = options.streamUrl ?? "wss://realtime-dex.chainstream.io/connection/websocket";
2523
2554
  this.requestCtx = { baseUrl, streamUrl, accessToken };
2524
2555
  configure({
2525
- accessToken,
2556
+ accessToken: options.walletSigner ? void 0 : accessToken,
2557
+ walletSigner: options.walletSigner,
2526
2558
  basePath: baseUrl,
2527
2559
  debugging: options.debug
2528
2560
  });
@@ -3062,11 +3094,13 @@ var QuoteDex = {
3062
3094
  WsMetricType,
3063
3095
  WsRankingType,
3064
3096
  WsTokenActivityType,
3097
+ buildSignMessage,
3065
3098
  calculatePnl,
3066
3099
  claimRedpacket,
3067
3100
  createEndpoint,
3068
3101
  createRedpacket,
3069
3102
  createToken,
3103
+ createWalletAuthHeaders,
3070
3104
  deleteEndpoint,
3071
3105
  get,
3072
3106
  getActivities,