@coin-voyage/shared 2.1.0 → 2.2.0-beta.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.
- package/dist/api/client.d.ts +222 -161
- package/dist/api/client.js +321 -178
- package/dist/api/client.js.map +1 -1
- package/dist/api/config.js +3 -3
- package/dist/api/config.js.map +1 -1
- package/dist/api/fetcher.js +5 -5
- package/dist/api/fetcher.js.map +1 -1
- package/dist/common/address.js.map +1 -1
- package/dist/common/assert.js.map +1 -1
- package/dist/common/chains.js.map +1 -1
- package/dist/common/currencies.d.ts +1 -1
- package/dist/common/currencies.js.map +1 -1
- package/dist/common/debug.d.ts +1 -1
- package/dist/common/debug.js +5 -2
- package/dist/common/debug.js.map +1 -1
- package/dist/common/i18n/languages/en.js.map +1 -1
- package/dist/common/local-storage.js +1 -2
- package/dist/common/local-storage.js.map +1 -1
- package/dist/common/pay-order/validation.js +25 -14
- package/dist/common/pay-order/validation.js.map +1 -1
- package/dist/common/time.js.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/types/api.d.ts +58 -1
- package/dist/types/crypto.js +1 -1
- package/dist/types/crypto.js.map +1 -1
- package/dist/utils/browser.js.map +1 -1
- package/dist/utils/plural.js.map +1 -1
- package/package.json +1 -1
package/dist/api/client.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createHmac } from "crypto";
|
|
2
|
-
import { now, PayOrderMode, zPayOrder, zPayOrderMetadata } from "../common/index";
|
|
2
|
+
import { now, PayOrderMode, zPayOrder, zPayOrderMetadata, } from "../common/index";
|
|
3
3
|
import { fetchApi } from "./fetcher";
|
|
4
4
|
export class ApiClient {
|
|
5
|
-
constructor({ apiKey, sessionId, environment = "production", version }) {
|
|
5
|
+
constructor({ apiKey, sessionId, environment = "production", version, }) {
|
|
6
6
|
this.apiKey = apiKey;
|
|
7
7
|
this.environment = environment;
|
|
8
8
|
this.sessionId = sessionId;
|
|
@@ -17,49 +17,49 @@ export class ApiClient {
|
|
|
17
17
|
headers: {
|
|
18
18
|
...args.options?.headers,
|
|
19
19
|
"X-API-KEY": this.apiKey,
|
|
20
|
-
...this.sessionId ? { "X-Session-ID": this.sessionId } : {},
|
|
21
|
-
...this.version ? { "X-Client-Version": this.version } : {},
|
|
20
|
+
...(this.sessionId ? { "X-Session-ID": this.sessionId } : {}),
|
|
21
|
+
...(this.version ? { "X-Client-Version": this.version } : {}),
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
* Fetches a PayOrder by its ID.
|
|
28
|
+
*
|
|
29
|
+
* Retrieves a PayOrder object from the API using the provided payOrderId.
|
|
30
|
+
* This function requires an API key for authentication.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} payOrderId - The unique identifier of the PayOrder.
|
|
33
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const { data: payOrder, error } = await getPayOrder('123456');
|
|
37
|
+
*/
|
|
38
38
|
async getPayOrder(payOrderId) {
|
|
39
|
-
return this.request({ path:
|
|
39
|
+
return this.request({ path: `/pay-orders/${payOrderId}` });
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
42
|
+
* Creates a `DEPOSIT` PayOrder.
|
|
43
|
+
*
|
|
44
|
+
* Creates a PayOrder of type `DEPOSIT` with the provided parameters.
|
|
45
|
+
*
|
|
46
|
+
* @param {PayOrderParams} params - Parameters required to create a deposit PayOrder.
|
|
47
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* const depositOrderParams = {
|
|
51
|
+
* intent: {
|
|
52
|
+
* asset: { chain_id: 1, address: null },
|
|
53
|
+
* amount: { token_amount: 100 },
|
|
54
|
+
* receiving_address: '0x1234...abcd'
|
|
55
|
+
* },
|
|
56
|
+
* metadata: { description: 'Deposit for account' }
|
|
57
|
+
* };
|
|
58
|
+
* const { data, error } = await createDepositPayOrder(depositOrderParams);
|
|
59
|
+
* if (data) {
|
|
60
|
+
* console.log('Deposit PayOrder created:', data);
|
|
61
|
+
* }
|
|
62
|
+
*/
|
|
63
63
|
async createDepositPayOrder(params) {
|
|
64
64
|
try {
|
|
65
65
|
return this.createPayOrder(params, PayOrderMode.DEPOSIT);
|
|
@@ -67,141 +67,141 @@ export class ApiClient {
|
|
|
67
67
|
catch (error) {
|
|
68
68
|
return {
|
|
69
69
|
error: {
|
|
70
|
-
path:
|
|
70
|
+
path: `/pay-orders`,
|
|
71
71
|
statusCode: 400,
|
|
72
72
|
status: "Bad Request",
|
|
73
73
|
message: error.message,
|
|
74
|
-
}
|
|
74
|
+
},
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
79
|
+
* Creates a `SALE` PayOrder.
|
|
80
|
+
*
|
|
81
|
+
* Creates a PayOrder with mode `SALE` with the provided params.
|
|
82
|
+
*
|
|
83
|
+
* Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
|
|
84
|
+
*
|
|
85
|
+
* @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
|
|
86
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
87
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* const apiSecret = 'yourApiSecret';
|
|
91
|
+
* const response = await createSalePayOrder({
|
|
92
|
+
* intent: {
|
|
93
|
+
* asset: { chain_id: 1, address: null },
|
|
94
|
+
* amount: {
|
|
95
|
+
* fiat: {
|
|
96
|
+
* amount: 200,
|
|
97
|
+
* unit: "USD"
|
|
98
|
+
* },
|
|
99
|
+
* },
|
|
100
|
+
* metadata: {
|
|
101
|
+
* items: [
|
|
102
|
+
* {
|
|
103
|
+
* name: "t-shirt",
|
|
104
|
+
* description: "a nice t-shirt",
|
|
105
|
+
* image: "https://example.com/tshirt.jpg",
|
|
106
|
+
* quantity: 1,
|
|
107
|
+
* unit_price: 200,
|
|
108
|
+
* currency: "USD"
|
|
109
|
+
* }
|
|
110
|
+
* ]
|
|
111
|
+
* }
|
|
112
|
+
* }, apiSecret);
|
|
113
|
+
* if (response.data) {
|
|
114
|
+
* console.log('Sale PayOrder created:', response.data);
|
|
115
|
+
* }
|
|
116
|
+
*/
|
|
117
117
|
async createSalePayOrder(params, apiSecret) {
|
|
118
118
|
try {
|
|
119
|
-
const signature = this.generateAuthorizationSignature(apiSecret,
|
|
119
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "POST", "/pay-orders");
|
|
120
120
|
return this.createPayOrder(params, PayOrderMode.SALE, signature);
|
|
121
121
|
}
|
|
122
122
|
catch (error) {
|
|
123
123
|
return {
|
|
124
124
|
error: {
|
|
125
|
-
path:
|
|
125
|
+
path: `/pay-orders`,
|
|
126
126
|
statusCode: 400,
|
|
127
127
|
status: "Bad Request",
|
|
128
128
|
message: error.message,
|
|
129
|
-
}
|
|
129
|
+
},
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
134
|
+
* Creates a `REFUND` PayOrder.
|
|
135
|
+
*
|
|
136
|
+
* Creates a PayOrder with mode `REFUND` with the provided params.
|
|
137
|
+
*
|
|
138
|
+
* Requires a valid HMAC-SHA256 signature generated by `generateAuthorizationSignature`.
|
|
139
|
+
*
|
|
140
|
+
* @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
|
|
141
|
+
* @param {PayOrderParams} params - Params required to create a refund PayOrder.
|
|
142
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
143
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* const apiSecret = 'yourApiSecret';
|
|
147
|
+
* const response = await createRefundPayOrder(refundOrderId, {
|
|
148
|
+
* intent: {
|
|
149
|
+
* asset: { chain_id: 1, address: null },
|
|
150
|
+
* receiving_address: '0x5678...efgh',
|
|
151
|
+
* amount: {
|
|
152
|
+
* fiat: {
|
|
153
|
+
* value: 100,
|
|
154
|
+
* unit: "USD"
|
|
155
|
+
* }
|
|
156
|
+
* }
|
|
157
|
+
* },
|
|
158
|
+
* metadata: {
|
|
159
|
+
* items: [
|
|
160
|
+
* {
|
|
161
|
+
* name: "refund",
|
|
162
|
+
* description: "Refund for t-shirt purchase",
|
|
163
|
+
* unit_price: 100,
|
|
164
|
+
* currency: "USD"
|
|
165
|
+
* }
|
|
166
|
+
* ]
|
|
167
|
+
* }
|
|
168
|
+
* }, apiSecret);
|
|
169
|
+
* if (response.data) {
|
|
170
|
+
* console.log('Refund PayOrder created:', response.data);
|
|
171
|
+
* }
|
|
172
|
+
*/
|
|
173
173
|
async createRefundPayOrder(payOrderId, params, apiSecret) {
|
|
174
174
|
try {
|
|
175
|
-
const signature = this.generateAuthorizationSignature(apiSecret,
|
|
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) {
|
|
179
179
|
return {
|
|
180
180
|
error: {
|
|
181
|
-
path:
|
|
181
|
+
path: `/pay-orders/${payOrderId}/refund`,
|
|
182
182
|
statusCode: 400,
|
|
183
183
|
status: "Bad Request",
|
|
184
184
|
message: error.message,
|
|
185
|
-
}
|
|
185
|
+
},
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
async createPayOrder(params, mode, signature) {
|
|
190
190
|
const result = zPayOrder.safeParse(params);
|
|
191
191
|
if (!result.success) {
|
|
192
|
-
throw new Error(result.error.issues.map(e => e.message).join(", "));
|
|
192
|
+
throw new Error(result.error.issues.map((e) => e.message).join(", "));
|
|
193
193
|
}
|
|
194
194
|
if (params.metadata) {
|
|
195
195
|
const result = zPayOrderMetadata.safeParse(params.metadata);
|
|
196
196
|
if (!result.success) {
|
|
197
|
-
throw new Error(result.error.issues.map(e => e.message).join(", "));
|
|
197
|
+
throw new Error(result.error.issues.map((e) => e.message).join(", "));
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
if ([PayOrderMode.SALE, PayOrderMode.REFUND].includes(mode) && !signature) {
|
|
201
201
|
throw new Error(`Signature is required for ${mode} PayOrders`);
|
|
202
202
|
}
|
|
203
203
|
return this.request({
|
|
204
|
-
path: "pay-orders",
|
|
204
|
+
path: "/pay-orders",
|
|
205
205
|
options: {
|
|
206
206
|
method: "POST",
|
|
207
207
|
body: JSON.stringify({ mode, ...params }),
|
|
@@ -210,31 +210,31 @@ export class ApiClient {
|
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
213
|
+
* Generates a PayOrder Quote.
|
|
214
|
+
*
|
|
215
|
+
* Creates a PayOrder Quote for an existing PayOrder by providing wallet information and chain details.
|
|
216
|
+
* This function requires an API key for authentication.
|
|
217
|
+
*
|
|
218
|
+
* @param {string} orderId - The unique identifier of the PayOrder for which the quote is requested.
|
|
219
|
+
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, `chain_id`.
|
|
220
|
+
* @returns {Promise<APIResponse<CurrencyWithBalance[]>>} - An array of PayTokens wrapped in an API response if the request was successful.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* const orderId = 'existingOrderId';
|
|
224
|
+
* const quoteParams = {
|
|
225
|
+
* wallet_address: '0x1234...abcd',
|
|
226
|
+
* chain_type: ChainType.EVM,
|
|
227
|
+
* chain_id: 1 // Ethereum Mainnet
|
|
228
|
+
* };
|
|
229
|
+
*
|
|
230
|
+
* const response = await payOrderQuote(orderId, quoteParams);
|
|
231
|
+
* if (response.data) {
|
|
232
|
+
* console.log('Available tokens:', response.data);
|
|
233
|
+
* }
|
|
234
|
+
*/
|
|
235
235
|
async payOrderQuote(orderId, quoteParams) {
|
|
236
236
|
return this.request({
|
|
237
|
-
path:
|
|
237
|
+
path: `/pay-orders/${orderId}/quote`,
|
|
238
238
|
options: {
|
|
239
239
|
method: "POST",
|
|
240
240
|
body: JSON.stringify(quoteParams),
|
|
@@ -242,38 +242,38 @@ export class ApiClient {
|
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
/**
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
245
|
+
* Retrieves payment details for a specific PayOrder.
|
|
246
|
+
*
|
|
247
|
+
* This function fetches payment details associated with a specific PayOrder ID.
|
|
248
|
+
* It allows specifying the token and blockchain network (via `token_address` and `chain_id`)
|
|
249
|
+
* to retrieve source currency information, as well as a refund address for the transaction.
|
|
250
|
+
*
|
|
251
|
+
* The request is authenticated using the provided API key in the headers.
|
|
252
|
+
*
|
|
253
|
+
* @param {PaymentDetailsParams} params - Parameters to retrieve the payment details.
|
|
254
|
+
* @param {string} params.payorder_id - The unique identifier of the PayOrder for which payment details are fetched.
|
|
255
|
+
* @param {string} [params.token_address] - (Optional) The token address of the source currency.
|
|
256
|
+
* @param {ChainId} params.chain_id - The blockchain network ID where the token resides.
|
|
257
|
+
* @param {string} params.refund_address - The address where funds will be refunded in case of a failed transaction.
|
|
258
|
+
*
|
|
259
|
+
* @returns {Promise<APIResponse<PaymentDetails>>} - The payment details object wrapped in an API response if the request is successful.
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* const response = await payOrderPaymentDetails({
|
|
263
|
+
* payorder_id: '12345',
|
|
264
|
+
* token_address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
265
|
+
* chain_id: 1,
|
|
266
|
+
* refund_address: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
267
|
+
* });
|
|
268
|
+
*
|
|
269
|
+
* if (response.data) {
|
|
270
|
+
* console.log('Payment details:', response.data);
|
|
271
|
+
* }
|
|
272
|
+
*/
|
|
273
273
|
async payOrderPaymentDetails(params) {
|
|
274
274
|
const { payorder_id, token_address, chain_id, refund_address } = params;
|
|
275
275
|
return this.request({
|
|
276
|
-
path:
|
|
276
|
+
path: `/pay-orders/${payorder_id}/payment-details`,
|
|
277
277
|
options: {
|
|
278
278
|
method: "POST",
|
|
279
279
|
body: JSON.stringify({
|
|
@@ -314,8 +314,151 @@ export class ApiClient {
|
|
|
314
314
|
const timestamp = now();
|
|
315
315
|
// Create HMAC-SHA256 signature over: method + path + timestamp
|
|
316
316
|
const data = `${method}${path}${timestamp}`;
|
|
317
|
-
const signature = createHmac(
|
|
317
|
+
const signature = createHmac("sha256", apiSecret).update(data).digest("hex");
|
|
318
318
|
return `APIKey=${this.apiKey},signature=${signature},timestamp=${timestamp}`;
|
|
319
319
|
}
|
|
320
|
+
// ===================
|
|
321
|
+
// Fee endpoints
|
|
322
|
+
// ===================
|
|
323
|
+
/**
|
|
324
|
+
* Retrieves the claimable fee balances for the authenticated organization.
|
|
325
|
+
*
|
|
326
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
327
|
+
* @returns {Promise<APIResponse<GetFeeBalancesResponse>>} - Fee balances wrapped in an API response.
|
|
328
|
+
*/
|
|
329
|
+
async getFeeBalances(apiSecret) {
|
|
330
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "GET", "/fees/balance");
|
|
331
|
+
return this.request({
|
|
332
|
+
path: "/fees/balance",
|
|
333
|
+
options: {
|
|
334
|
+
method: "GET",
|
|
335
|
+
headers: { Authorization: signature },
|
|
336
|
+
},
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Claims accrued fees for the authenticated organization.
|
|
341
|
+
*
|
|
342
|
+
* @param {ClaimFeesRequest} params - Parameters for claiming fees.
|
|
343
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
344
|
+
* @returns {Promise<APIResponse<ClaimFeesResponse>>} - Claim result wrapped in an API response.
|
|
345
|
+
*/
|
|
346
|
+
async claimFees(params, apiSecret) {
|
|
347
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "POST", "/fees/claim");
|
|
348
|
+
return this.request({
|
|
349
|
+
path: "/fees/claim",
|
|
350
|
+
options: {
|
|
351
|
+
method: "POST",
|
|
352
|
+
body: JSON.stringify(params),
|
|
353
|
+
headers: { Authorization: signature },
|
|
354
|
+
},
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
// ===================
|
|
358
|
+
// Webhook endpoints
|
|
359
|
+
// ===================
|
|
360
|
+
/**
|
|
361
|
+
* Retrieves all webhooks for the authenticated organization.
|
|
362
|
+
*
|
|
363
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
364
|
+
* @returns {Promise<APIResponse<WebhookResponse[]>>} - List of webhooks wrapped in an API response.
|
|
365
|
+
*/
|
|
366
|
+
async listWebhooks(apiSecret) {
|
|
367
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "GET", "/organizations/webhooks");
|
|
368
|
+
return this.request({
|
|
369
|
+
path: "/webhooks",
|
|
370
|
+
options: {
|
|
371
|
+
method: "GET",
|
|
372
|
+
headers: { Authorization: signature },
|
|
373
|
+
},
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Creates a new webhook for the authenticated organization.
|
|
378
|
+
*
|
|
379
|
+
* @param {CreateWebhookRequest} params - Parameters for creating the webhook.
|
|
380
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
381
|
+
* @returns {Promise<APIResponse<WebhookResponse>>} - Created webhook wrapped in an API response.
|
|
382
|
+
*/
|
|
383
|
+
async createWebhook(params, apiSecret) {
|
|
384
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "POST", "/webhooks");
|
|
385
|
+
return this.request({
|
|
386
|
+
path: "/webhooks",
|
|
387
|
+
options: {
|
|
388
|
+
method: "POST",
|
|
389
|
+
body: JSON.stringify(params),
|
|
390
|
+
headers: { Authorization: signature },
|
|
391
|
+
},
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Updates an existing webhook for the authenticated organization.
|
|
396
|
+
*
|
|
397
|
+
* @param {string} webhookId - The unique identifier of the webhook to update.
|
|
398
|
+
* @param {UpdateWebhookRequest} params - Parameters for updating the webhook.
|
|
399
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
400
|
+
* @returns {Promise<APIResponse<WebhookResponse>>} - Updated webhook wrapped in an API response.
|
|
401
|
+
*/
|
|
402
|
+
async updateWebhook(webhookId, params, apiSecret) {
|
|
403
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "PUT", `/webhooks/${webhookId}`);
|
|
404
|
+
return this.request({
|
|
405
|
+
path: `/webhooks/${webhookId}`,
|
|
406
|
+
options: {
|
|
407
|
+
method: "PUT",
|
|
408
|
+
body: JSON.stringify(params),
|
|
409
|
+
headers: { Authorization: signature },
|
|
410
|
+
},
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Deletes an existing webhook for the authenticated organization.
|
|
415
|
+
*
|
|
416
|
+
* @param {string} webhookId - The unique identifier of the webhook to delete.
|
|
417
|
+
* @param {string} apiSecret - API secret used to generate the authorization signature.
|
|
418
|
+
* @returns {Promise<APIResponse<void>>} - Empty response on success.
|
|
419
|
+
*/
|
|
420
|
+
async deleteWebhook(webhookId, apiSecret) {
|
|
421
|
+
const signature = this.generateAuthorizationSignature(apiSecret, "DELETE", `/webhooks/${webhookId}`);
|
|
422
|
+
return this.request({
|
|
423
|
+
path: `/webhooks/${webhookId}`,
|
|
424
|
+
options: {
|
|
425
|
+
method: "DELETE",
|
|
426
|
+
headers: { Authorization: signature },
|
|
427
|
+
},
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
// ===================
|
|
431
|
+
// Swap endpoints
|
|
432
|
+
// ===================
|
|
433
|
+
/**
|
|
434
|
+
* Gets a quote for swapping between two currencies.
|
|
435
|
+
*
|
|
436
|
+
* @param {SwapQuoteRequest} params - Parameters for the swap quote.
|
|
437
|
+
* @returns {Promise<APIResponse<QuoteWithBalance>>} - Swap quote wrapped in an API response.
|
|
438
|
+
*/
|
|
439
|
+
async swapQuote(params) {
|
|
440
|
+
return this.request({
|
|
441
|
+
path: "/swap/quote",
|
|
442
|
+
options: {
|
|
443
|
+
method: "POST",
|
|
444
|
+
body: JSON.stringify(params),
|
|
445
|
+
},
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Gets transaction data for executing a swap.
|
|
450
|
+
*
|
|
451
|
+
* @param {SwapDataRequest} params - Parameters for the swap data.
|
|
452
|
+
* @returns {Promise<APIResponse<SwapDataResponse>>} - Swap data wrapped in an API response.
|
|
453
|
+
*/
|
|
454
|
+
async swapData(params) {
|
|
455
|
+
return this.request({
|
|
456
|
+
path: "/swap/data",
|
|
457
|
+
options: {
|
|
458
|
+
method: "POST",
|
|
459
|
+
body: JSON.stringify(params),
|
|
460
|
+
},
|
|
461
|
+
});
|
|
462
|
+
}
|
|
320
463
|
}
|
|
321
464
|
//# sourceMappingURL=client.js.map
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const API_URL = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
production: "https://api.coinvoyage.io/v2",
|
|
3
|
+
development: "https://acc-api.coinvoyage.io/v2",
|
|
4
|
+
local: "http://localhost:8000/v2",
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=config.js.map
|
package/dist/api/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/api/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAA2B;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/api/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,UAAU,EAAE,8BAA8B;IAC1C,WAAW,EAAE,kCAAkC;IAC/C,KAAK,EAAE,0BAA0B;CAClC,CAAA"}
|