@coin-voyage/shared 2.0.0 → 2.1.0

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.
@@ -55,15 +55,14 @@ export declare class ApiClient {
55
55
  *
56
56
  * Creates a PayOrder with mode `SALE` with the provided params.
57
57
  *
58
- * requires a valid SHA-512 hash signature of the concatenated API key, secret, and timestamp.
58
+ * Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
59
59
  *
60
60
  * @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
61
- * @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
61
+ * @param {string} apiSecret - API secret used to generate the authorization signature.
62
62
  * @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
63
63
  *
64
64
  * @example
65
65
  * const apiSecret = 'yourApiSecret';
66
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
67
66
  * const response = await createSalePayOrder({
68
67
  * intent: {
69
68
  * asset: { chain_id: 1, address: null },
@@ -85,27 +84,26 @@ export declare class ApiClient {
85
84
  * }
86
85
  * ]
87
86
  * }
88
- * }, authSignature);
87
+ * }, apiSecret);
89
88
  * if (response.data) {
90
89
  * console.log('Sale PayOrder created:', response.data);
91
90
  * }
92
91
  */
93
- createSalePayOrder(params: PayOrderParams, signature: string): Promise<APIResponse<PayOrder>>;
92
+ createSalePayOrder(params: PayOrderParams, apiSecret: string): Promise<APIResponse<PayOrder>>;
94
93
  /**
95
94
  * Creates a `REFUND` PayOrder.
96
95
  *
97
96
  * Creates a PayOrder with mode `REFUND` with the provided params.
98
97
  *
99
- * requires a valid SHA-512 hash signature of the concatenated API key, secret, and timestamp.
98
+ * Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
100
99
  *
101
100
  * @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
102
101
  * @param {PayOrderParams} params - Params required to create a refund PayOrder.
103
- * @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
102
+ * @param {string} apiSecret - API secret used to generate the authorization signature.
104
103
  * @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
105
104
  *
106
105
  * @example
107
106
  * const apiSecret = 'yourApiSecret';
108
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
109
107
  * const response = await createRefundPayOrder(refundOrderId, {
110
108
  * intent: {
111
109
  * asset: { chain_id: 1, address: null },
@@ -127,12 +125,12 @@ export declare class ApiClient {
127
125
  * }
128
126
  * ]
129
127
  * }
130
- * }, authSignature);
128
+ * }, apiSecret);
131
129
  * if (response.data) {
132
130
  * console.log('Refund PayOrder created:', response.data);
133
131
  * }
134
132
  */
135
- createRefundPayOrder(payOrderId: string, params: PayOrderParams, signature: string): Promise<APIResponse<PayOrder>>;
133
+ createRefundPayOrder(payOrderId: string, params: PayOrderParams, apiSecret: string): Promise<APIResponse<PayOrder>>;
136
134
  createPayOrder(params: PayOrderParams, mode: PayOrderMode, signature?: string): Promise<APIResponse<PayOrder>>;
137
135
  /**
138
136
  * Generates a PayOrder Quote.
@@ -189,27 +187,28 @@ export declare class ApiClient {
189
187
  */
190
188
  payOrderPaymentDetails(params: PaymentDetailsParams): Promise<APIResponse<PaymentDetails>>;
191
189
  /**
192
- * Generates an authorization signature for API requests.
190
+ * Generates an authorization signature for API requests using HMAC-SHA256.
193
191
  *
194
192
  * ⚠️ **Warning:** This function should only be run on the server.
195
193
  * It uses the API secret, which must remain confidential. Running this
196
194
  * code in a client-side environment risks exposing sensitive information
197
195
  * to end users or malicious actors.
198
196
  *
199
- * This function creates a signed authorization string using the provided API key and secret.
200
- * The generated string includes the API key, a timestamp (in seconds since epoch),
201
- * and a SHA-512 hash signature of the concatenated API key, secret, and timestamp.
197
+ * This function creates a signed authorization string using HMAC-SHA256.
198
+ * The signature is computed over: method + path + timestamp, using the secret as the HMAC key.
202
199
  *
203
- * @param {string} apiSecret - The API secret used to generate the signature.
200
+ * @param {string} apiSecret - The API secret used as the HMAC key.
201
+ * @param {string} method - The HTTP method (e.g., "POST", "GET").
202
+ * @param {string} path - The request path (e.g., "/pay-orders").
204
203
  * @returns {string} - A formatted authorization string in the format:
205
204
  * `APIKey=<apiKey>,signature=<signature>,timestamp=<timestamp>`.
206
205
  *
207
206
  * @example
208
207
  * const apiSecret = 'yourApiSecret';
209
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
208
+ * const authSignature = apiClient.generateAuthorizationSignature(apiSecret, 'POST', '/pay-orders');
210
209
  * console.log(authSignature);
211
210
  * // Example output:
212
- * // APIKey=yourApiKey,signature=2ee76043a90a...,timestamp=1737106896
211
+ * // APIKey=yourApiKey,signature=a1b2c3d4...,timestamp=1737106896
213
212
  */
214
- generateAuthorizationSignature(apiSecret: string): string;
213
+ generateAuthorizationSignature(apiSecret: string, method: string, path: string): string;
215
214
  }
@@ -1,4 +1,4 @@
1
- import { createHash } from "crypto";
1
+ import { createHmac } from "crypto";
2
2
  import { now, PayOrderMode, zPayOrder, zPayOrderMetadata } from "../common/index";
3
3
  import { fetchApi } from "./fetcher";
4
4
  export class ApiClient {
@@ -80,15 +80,14 @@ export class ApiClient {
80
80
  *
81
81
  * Creates a PayOrder with mode `SALE` with the provided params.
82
82
  *
83
- * requires a valid SHA-512 hash signature of the concatenated API key, secret, and timestamp.
83
+ * Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
84
84
  *
85
85
  * @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
86
- * @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
86
+ * @param {string} apiSecret - API secret used to generate the authorization signature.
87
87
  * @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
88
88
  *
89
89
  * @example
90
90
  * const apiSecret = 'yourApiSecret';
91
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
92
91
  * const response = await createSalePayOrder({
93
92
  * intent: {
94
93
  * asset: { chain_id: 1, address: null },
@@ -110,13 +109,14 @@ export class ApiClient {
110
109
  * }
111
110
  * ]
112
111
  * }
113
- * }, authSignature);
112
+ * }, apiSecret);
114
113
  * if (response.data) {
115
114
  * console.log('Sale PayOrder created:', response.data);
116
115
  * }
117
116
  */
118
- async createSalePayOrder(params, signature) {
117
+ async createSalePayOrder(params, apiSecret) {
119
118
  try {
119
+ const signature = this.generateAuthorizationSignature(apiSecret, 'POST', '/pay-orders');
120
120
  return this.createPayOrder(params, PayOrderMode.SALE, signature);
121
121
  }
122
122
  catch (error) {
@@ -135,16 +135,15 @@ export class ApiClient {
135
135
  *
136
136
  * Creates a PayOrder with mode `REFUND` with the provided params.
137
137
  *
138
- * requires a valid SHA-512 hash signature of the concatenated API key, secret, and timestamp.
138
+ * Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
139
139
  *
140
140
  * @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
141
141
  * @param {PayOrderParams} params - Params required to create a refund PayOrder.
142
- * @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
142
+ * @param {string} apiSecret - API secret used to generate the authorization signature.
143
143
  * @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
144
144
  *
145
145
  * @example
146
146
  * const apiSecret = 'yourApiSecret';
147
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
148
147
  * const response = await createRefundPayOrder(refundOrderId, {
149
148
  * intent: {
150
149
  * asset: { chain_id: 1, address: null },
@@ -166,13 +165,14 @@ export class ApiClient {
166
165
  * }
167
166
  * ]
168
167
  * }
169
- * }, authSignature);
168
+ * }, apiSecret);
170
169
  * if (response.data) {
171
170
  * console.log('Refund PayOrder created:', response.data);
172
171
  * }
173
172
  */
174
- async createRefundPayOrder(payOrderId, params, signature) {
173
+ async createRefundPayOrder(payOrderId, params, apiSecret) {
175
174
  try {
175
+ const signature = this.generateAuthorizationSignature(apiSecret, 'POST', `/pay-orders/${payOrderId}/refund`);
176
176
  return this.createPayOrder(params, PayOrderMode.REFUND, signature);
177
177
  }
178
178
  catch (error) {
@@ -287,39 +287,34 @@ export class ApiClient {
287
287
  });
288
288
  }
289
289
  /**
290
- * Generates an authorization signature for API requests.
290
+ * Generates an authorization signature for API requests using HMAC-SHA256.
291
291
  *
292
292
  * ⚠️ **Warning:** This function should only be run on the server.
293
293
  * It uses the API secret, which must remain confidential. Running this
294
294
  * code in a client-side environment risks exposing sensitive information
295
295
  * to end users or malicious actors.
296
296
  *
297
- * This function creates a signed authorization string using the provided API key and secret.
298
- * The generated string includes the API key, a timestamp (in seconds since epoch),
299
- * and a SHA-512 hash signature of the concatenated API key, secret, and timestamp.
297
+ * This function creates a signed authorization string using HMAC-SHA256.
298
+ * The signature is computed over: method + path + timestamp, using the secret as the HMAC key.
300
299
  *
301
- * @param {string} apiSecret - The API secret used to generate the signature.
300
+ * @param {string} apiSecret - The API secret used as the HMAC key.
301
+ * @param {string} method - The HTTP method (e.g., "POST", "GET").
302
+ * @param {string} path - The request path (e.g., "/pay-orders").
302
303
  * @returns {string} - A formatted authorization string in the format:
303
304
  * `APIKey=<apiKey>,signature=<signature>,timestamp=<timestamp>`.
304
305
  *
305
306
  * @example
306
307
  * const apiSecret = 'yourApiSecret';
307
- * const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
308
+ * const authSignature = apiClient.generateAuthorizationSignature(apiSecret, 'POST', '/pay-orders');
308
309
  * console.log(authSignature);
309
310
  * // Example output:
310
- * // APIKey=yourApiKey,signature=2ee76043a90a...,timestamp=1737106896
311
+ * // APIKey=yourApiKey,signature=a1b2c3d4...,timestamp=1737106896
311
312
  */
312
- generateAuthorizationSignature(apiSecret) {
313
- // Get the current timestamp as a string
313
+ generateAuthorizationSignature(apiSecret, method, path) {
314
314
  const timestamp = now();
315
- // Create the data string
316
- const data = this.apiKey + apiSecret + timestamp;
317
- // Create a SHA-512 hash of the data
318
- const hash = createHash('sha512');
319
- hash.update(data);
320
- // Encode the hash as a hexadecimal string
321
- const signature = hash.digest('hex');
322
- // Format the final string
315
+ // Create HMAC-SHA256 signature over: method + path + timestamp
316
+ const data = `${method}${path}${timestamp}`;
317
+ const signature = createHmac('sha256', apiSecret).update(data).digest('hex');
323
318
  return `APIKey=${this.apiKey},signature=${signature},timestamp=${timestamp}`;
324
319
  }
325
320
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coin-voyage/shared",
3
3
  "description": "Shared utilities for Coin Voyage",
4
- "version": "2.0.0",
4
+ "version": "2.1.0",
5
5
  "private": false,
6
6
  "sideEffects": false,
7
7
  "exports": {