@chainstream-io/sdk 2.0.7 → 2.0.9

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,17 @@ 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.apiKey) {
238
+ config.headers["X-API-KEY"] = options.apiKey;
239
+ } else if (options.accessToken) {
240
+ const token = typeof options.accessToken === "string" ? options.accessToken : await options.accessToken.getToken();
241
+ config.headers.Authorization = `Bearer ${token}`;
242
+ }
210
243
  config.headers["Content-Type"] = "application/json";
211
244
  if (options.source) {
212
245
  config.headers["X-Source"] = options.source;
@@ -2522,7 +2555,9 @@ var ChainStreamClient = class {
2522
2555
  const streamUrl = options.streamUrl ?? "wss://realtime-dex.chainstream.io/connection/websocket";
2523
2556
  this.requestCtx = { baseUrl, streamUrl, accessToken };
2524
2557
  configure({
2525
- accessToken,
2558
+ accessToken: options.walletSigner || options.apiKey ? void 0 : accessToken,
2559
+ apiKey: options.apiKey,
2560
+ walletSigner: options.walletSigner,
2526
2561
  basePath: baseUrl,
2527
2562
  debugging: options.debug
2528
2563
  });
@@ -3062,11 +3097,13 @@ var QuoteDex = {
3062
3097
  WsMetricType,
3063
3098
  WsRankingType,
3064
3099
  WsTokenActivityType,
3100
+ buildSignMessage,
3065
3101
  calculatePnl,
3066
3102
  claimRedpacket,
3067
3103
  createEndpoint,
3068
3104
  createRedpacket,
3069
3105
  createToken,
3106
+ createWalletAuthHeaders,
3070
3107
  deleteEndpoint,
3071
3108
  get,
3072
3109
  getActivities,