@coin-voyage/shared 0.0.22 → 0.0.24
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 +80 -91
- package/dist/api/client.js +120 -127
- package/dist/api/client.js.map +1 -1
- package/dist/api/fetcher.d.ts +13 -2
- package/dist/api/fetcher.js +22 -14
- package/dist/api/fetcher.js.map +1 -1
- package/package.json +1 -1
package/dist/api/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CurrencyWithBalance, PayOrder } from "../common/index";
|
|
2
|
-
import { DepositPayOrderParams, PaymentDetails, PaymentDetailsParams, PayOrderQuoteParams, RefundOrderParams, SalePayOrderParams } from "../types/api";
|
|
3
|
-
import { APIEnvironment } from "./config";
|
|
1
|
+
import { type CurrencyWithBalance, type PayOrder } from "../common/index";
|
|
2
|
+
import type { DepositPayOrderParams, PaymentDetails, PaymentDetailsParams, PayOrderQuoteParams, RefundOrderParams, SalePayOrderParams } from "../types/api";
|
|
3
|
+
import { type APIEnvironment } from "./config";
|
|
4
|
+
import { type APIResponse } from "./fetcher";
|
|
4
5
|
export declare class ApiClient {
|
|
5
6
|
private readonly apiKey;
|
|
6
7
|
private readonly environment?;
|
|
@@ -20,31 +21,33 @@ export declare class ApiClient {
|
|
|
20
21
|
* This function requires an API key for authentication.
|
|
21
22
|
*
|
|
22
23
|
* @param {string} payOrderId - The unique identifier of the PayOrder.
|
|
23
|
-
* @returns {Promise<PayOrder
|
|
24
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
24
25
|
*
|
|
25
26
|
* @example
|
|
26
|
-
* const payOrder = await getPayOrder('123456');
|
|
27
|
+
* const { data: payOrder, error } = await getPayOrder('123456');
|
|
27
28
|
*/
|
|
28
|
-
getPayOrder(payOrderId: string): Promise<PayOrder
|
|
29
|
+
getPayOrder(payOrderId: string): Promise<APIResponse<PayOrder>>;
|
|
29
30
|
/**
|
|
30
31
|
* Creates a `DEPOSIT` PayOrder.
|
|
31
32
|
*
|
|
32
33
|
* Creates a PayOrder of type `DEPOSIT` with the provided parameters.
|
|
33
34
|
*
|
|
34
35
|
* @param {DepositPayOrderParams} params - Parameters required to create a deposit PayOrder.
|
|
35
|
-
* @
|
|
36
|
-
* @returns {Promise<PayOrder | undefined>} - The PayOrder object if the request is successful.
|
|
36
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
|
-
* const apiKey = 'yourApiKey';
|
|
40
39
|
* const depositOrderParams = {
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* receiving_address: '0x1234...abcd',
|
|
41
|
+
* destination_currency: { chain_id: 1, address: null },
|
|
42
|
+
* destination_amount: '100',
|
|
43
43
|
* metadata: { description: 'Deposit for account' }
|
|
44
44
|
* };
|
|
45
|
-
* const
|
|
45
|
+
* const { data, error } = await createDepositPayOrder(depositOrderParams);
|
|
46
|
+
* if (data) {
|
|
47
|
+
* console.log('Deposit PayOrder created:', data);
|
|
48
|
+
* }
|
|
46
49
|
*/
|
|
47
|
-
createDepositPayOrder(params: DepositPayOrderParams
|
|
50
|
+
createDepositPayOrder(params: DepositPayOrderParams): Promise<APIResponse<PayOrder>>;
|
|
48
51
|
/**
|
|
49
52
|
* Creates a `SALE` PayOrder.
|
|
50
53
|
*
|
|
@@ -54,28 +57,31 @@ export declare class ApiClient {
|
|
|
54
57
|
*
|
|
55
58
|
* @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
|
|
56
59
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
57
|
-
* @returns {PayOrder
|
|
60
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
58
61
|
*
|
|
59
62
|
* @example
|
|
60
|
-
* const apiKey = 'yourApiKey';
|
|
61
63
|
* const apiSecret = 'yourApiSecret';
|
|
62
|
-
* const authSignature = apiClient.generateAuthorizationSignature(
|
|
63
|
-
* const
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
64
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
65
|
+
* const response = await createSalePayOrder({
|
|
66
|
+
* destination_value_usd: 200,
|
|
67
|
+
* metadata: {
|
|
68
|
+
* items: [
|
|
69
|
+
* {
|
|
70
|
+
* name: "t-shirt",
|
|
71
|
+
* description: "a nice t-shirt",
|
|
72
|
+
* image: "https://example.com/tshirt.jpg",
|
|
73
|
+
* quantity: 1,
|
|
74
|
+
* unit_price: 200,
|
|
75
|
+
* currency: "USD"
|
|
76
|
+
* }
|
|
77
|
+
* ]
|
|
78
|
+
* }
|
|
79
|
+
* }, authSignature);
|
|
80
|
+
* if (response.data) {
|
|
81
|
+
* console.log('Sale PayOrder created:', response.data);
|
|
82
|
+
* }
|
|
77
83
|
*/
|
|
78
|
-
createSalePayOrder(params: SalePayOrderParams, signature: string): Promise<PayOrder
|
|
84
|
+
createSalePayOrder(params: SalePayOrderParams, signature: string): Promise<APIResponse<PayOrder>>;
|
|
79
85
|
/**
|
|
80
86
|
* Creates a `REFUND` PayOrder.
|
|
81
87
|
*
|
|
@@ -86,31 +92,35 @@ export declare class ApiClient {
|
|
|
86
92
|
* @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
|
|
87
93
|
* @param {RefundOrderParams} params - Params required to create a refund PayOrder.
|
|
88
94
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
89
|
-
* @returns {PayOrder
|
|
95
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
90
96
|
*
|
|
91
97
|
* @example
|
|
92
|
-
* const apiKey = 'yourApiKey';
|
|
93
98
|
* const apiSecret = 'yourApiSecret';
|
|
94
|
-
* const authSignature = apiClient.generateAuthorizationSignature(
|
|
95
|
-
* const
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* },
|
|
102
|
-
* metadata: {
|
|
103
|
-
* items: [
|
|
104
|
-
* {
|
|
105
|
-
* name: "refund",
|
|
106
|
-
* description: "Refund for t-shirt purchase",
|
|
107
|
-
* unit_price: 100,
|
|
108
|
-
* currency: "USD"
|
|
99
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
100
|
+
* const response = await createRefundPayOrder(refundOrderId, {
|
|
101
|
+
* refund_currency: { chain_id: 1, address: null },
|
|
102
|
+
* amount: {
|
|
103
|
+
* fiat: {
|
|
104
|
+
* value: 100,
|
|
105
|
+
* unit: "USD"
|
|
109
106
|
* }
|
|
110
|
-
*
|
|
111
|
-
*
|
|
107
|
+
* },
|
|
108
|
+
* metadata: {
|
|
109
|
+
* items: [
|
|
110
|
+
* {
|
|
111
|
+
* name: "refund",
|
|
112
|
+
* description: "Refund for t-shirt purchase",
|
|
113
|
+
* unit_price: 100,
|
|
114
|
+
* currency: "USD"
|
|
115
|
+
* }
|
|
116
|
+
* ]
|
|
117
|
+
* }
|
|
118
|
+
* }, authSignature);
|
|
119
|
+
* if (response.data) {
|
|
120
|
+
* console.log('Refund PayOrder created:', response.data);
|
|
121
|
+
* }
|
|
112
122
|
*/
|
|
113
|
-
createRefundPayOrder(payOrderId: string, params: RefundOrderParams, signature: string): Promise<PayOrder
|
|
123
|
+
createRefundPayOrder(payOrderId: string, params: RefundOrderParams, signature: string): Promise<APIResponse<PayOrder>>;
|
|
114
124
|
/**
|
|
115
125
|
* Generates a PayOrder Quote.
|
|
116
126
|
*
|
|
@@ -118,27 +128,28 @@ export declare class ApiClient {
|
|
|
118
128
|
* This function requires an API key for authentication.
|
|
119
129
|
*
|
|
120
130
|
* @param {string} orderId - The unique identifier of the PayOrder for which the quote is requested.
|
|
121
|
-
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, chain_id`.
|
|
122
|
-
* @returns {CurrencyWithBalance[]
|
|
131
|
+
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, `chain_id`.
|
|
132
|
+
* @returns {Promise<APIResponse<CurrencyWithBalance[]>>} - An array of PayTokens wrapped in an API response if the request was successful.
|
|
123
133
|
*
|
|
124
134
|
* @example
|
|
125
135
|
* const orderId = 'existingOrderId';
|
|
126
|
-
* const apiKey = 'yourApiKey';
|
|
127
136
|
* const quoteParams = {
|
|
128
137
|
* wallet_address: '0x1234...abcd',
|
|
129
138
|
* chain_type: ChainType.EVM,
|
|
130
139
|
* chain_id: 1 // Ethereum Mainnet
|
|
131
140
|
* };
|
|
132
141
|
*
|
|
133
|
-
* const
|
|
134
|
-
|
|
142
|
+
* const response = await payOrderQuote(orderId, quoteParams);
|
|
143
|
+
* if (response.data) {
|
|
144
|
+
* console.log('Available tokens:', response.data);
|
|
145
|
+
* }
|
|
135
146
|
*/
|
|
136
|
-
payOrderQuote(orderId: string, quoteParams: PayOrderQuoteParams): Promise<CurrencyWithBalance[]
|
|
147
|
+
payOrderQuote(orderId: string, quoteParams: PayOrderQuoteParams): Promise<APIResponse<CurrencyWithBalance[]>>;
|
|
137
148
|
/**
|
|
138
149
|
* Retrieves payment details for a specific PayOrder.
|
|
139
150
|
*
|
|
140
151
|
* This function fetches payment details associated with a specific PayOrder ID.
|
|
141
|
-
* It allows specifying the token and blockchain network (via `
|
|
152
|
+
* It allows specifying the token and blockchain network (via `token_address` and `chain_id`)
|
|
142
153
|
* to retrieve source currency information, as well as a refund address for the transaction.
|
|
143
154
|
*
|
|
144
155
|
* The request is authenticated using the provided API key in the headers.
|
|
@@ -149,42 +160,21 @@ export declare class ApiClient {
|
|
|
149
160
|
* @param {ChainId} params.chain_id - The blockchain network ID where the token resides.
|
|
150
161
|
* @param {string} params.refund_address - The address where funds will be refunded in case of a failed transaction.
|
|
151
162
|
*
|
|
152
|
-
* @returns {Promise<PaymentDetails
|
|
163
|
+
* @returns {Promise<APIResponse<PaymentDetails>>} - The payment details object wrapped in an API response if the request is successful.
|
|
153
164
|
*
|
|
154
165
|
* @example
|
|
155
|
-
* const
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
166
|
+
* const response = await payOrderPaymentDetails({
|
|
167
|
+
* payorder_id: '12345',
|
|
168
|
+
* token_address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
169
|
+
* chain_id: 1,
|
|
170
|
+
* refund_address: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
160
171
|
* });
|
|
161
172
|
*
|
|
162
|
-
*
|
|
173
|
+
* if (response.data) {
|
|
174
|
+
* console.log('Payment details:', response.data);
|
|
175
|
+
* }
|
|
163
176
|
*/
|
|
164
|
-
payOrderPaymentDetails(params: PaymentDetailsParams): Promise<PaymentDetails
|
|
165
|
-
/**
|
|
166
|
-
* Processes a PayOrder transaction.
|
|
167
|
-
*
|
|
168
|
-
* This function triggers the processing of a PayOrder by providing the transaction hash
|
|
169
|
-
* that represents the payment on the blockchain. The request is authenticated using an API key.
|
|
170
|
-
*
|
|
171
|
-
* @deprecated This function is deprecated and will be removed in future versions. The backend will automatically scan for incoming transactions.
|
|
172
|
-
*
|
|
173
|
-
* @param {Object} params - Parameters required to process the PayOrder.
|
|
174
|
-
* @param {string} params.payOrderId - The unique identifier of the PayOrder to be processed.
|
|
175
|
-
* @param {string} params.sourceTransactionHash - The transaction hash representing the payment on the blockchain.
|
|
176
|
-
*
|
|
177
|
-
* @returns {Promise<void>}
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* const processedPayment = await processPayOrder({
|
|
181
|
-
* payOrderId: '12345',
|
|
182
|
-
* sourceTransactionHash: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
183
|
-
* });
|
|
184
|
-
*
|
|
185
|
-
* console.log(processedPayment);
|
|
186
|
-
*/
|
|
187
|
-
processPayOrder(payOrderId: string, sourceTransactionHash: string): Promise<void>;
|
|
177
|
+
payOrderPaymentDetails(params: PaymentDetailsParams): Promise<APIResponse<PaymentDetails>>;
|
|
188
178
|
/**
|
|
189
179
|
* Generates an authorization signature for API requests.
|
|
190
180
|
*
|
|
@@ -202,9 +192,8 @@ export declare class ApiClient {
|
|
|
202
192
|
* `APIKey=<apiKey>,signature=<signature>,timestamp=<timestamp>`.
|
|
203
193
|
*
|
|
204
194
|
* @example
|
|
205
|
-
* const apiKey = 'yourApiKey';
|
|
206
195
|
* const apiSecret = 'yourApiSecret';
|
|
207
|
-
* const authSignature = generateAuthorizationSignature(
|
|
196
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
208
197
|
* console.log(authSignature);
|
|
209
198
|
* // Example output:
|
|
210
199
|
* // APIKey=yourApiKey,signature=2ee76043a90a...,timestamp=1737106896
|
package/dist/api/client.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { createHash } from "crypto";
|
|
2
|
-
import { z } from "zod";
|
|
3
2
|
import { PayOrderMode, zDepositPayOrder, zPayOrderMetadata } from "../common/index";
|
|
4
|
-
import { API_URL } from "./config";
|
|
5
3
|
import { fetchApi } from "./fetcher";
|
|
6
4
|
export class ApiClient {
|
|
7
5
|
constructor({ apiKey, sessionId, environment = "production", version }) {
|
|
@@ -11,10 +9,9 @@ export class ApiClient {
|
|
|
11
9
|
this.version = version;
|
|
12
10
|
}
|
|
13
11
|
async request(args) {
|
|
14
|
-
const baseUrl = API_URL[this.environment ?? "production"];
|
|
15
12
|
return fetchApi({
|
|
16
13
|
...args,
|
|
17
|
-
|
|
14
|
+
environment: this.environment,
|
|
18
15
|
options: {
|
|
19
16
|
...args.options,
|
|
20
17
|
headers: {
|
|
@@ -24,7 +21,6 @@ export class ApiClient {
|
|
|
24
21
|
...this.version ? { "X-Client-Version": this.version } : {},
|
|
25
22
|
},
|
|
26
23
|
},
|
|
27
|
-
throwOnFailure: args.throwOnFailure,
|
|
28
24
|
});
|
|
29
25
|
}
|
|
30
26
|
/**
|
|
@@ -34,10 +30,10 @@ export class ApiClient {
|
|
|
34
30
|
* This function requires an API key for authentication.
|
|
35
31
|
*
|
|
36
32
|
* @param {string} payOrderId - The unique identifier of the PayOrder.
|
|
37
|
-
* @returns {Promise<PayOrder
|
|
33
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
38
34
|
*
|
|
39
35
|
* @example
|
|
40
|
-
* const payOrder = await getPayOrder('123456');
|
|
36
|
+
* const { data: payOrder, error } = await getPayOrder('123456');
|
|
41
37
|
*/
|
|
42
38
|
async getPayOrder(payOrderId) {
|
|
43
39
|
return this.request({ path: `pay-orders/${payOrderId}` });
|
|
@@ -48,29 +44,38 @@ export class ApiClient {
|
|
|
48
44
|
* Creates a PayOrder of type `DEPOSIT` with the provided parameters.
|
|
49
45
|
*
|
|
50
46
|
* @param {DepositPayOrderParams} params - Parameters required to create a deposit PayOrder.
|
|
51
|
-
* @
|
|
52
|
-
* @returns {Promise<PayOrder | undefined>} - The PayOrder object if the request is successful.
|
|
47
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
53
48
|
*
|
|
54
49
|
* @example
|
|
55
|
-
* const apiKey = 'yourApiKey';
|
|
56
50
|
* const depositOrderParams = {
|
|
57
|
-
*
|
|
58
|
-
*
|
|
51
|
+
* receiving_address: '0x1234...abcd',
|
|
52
|
+
* destination_currency: { chain_id: 1, address: null },
|
|
53
|
+
* destination_amount: '100',
|
|
59
54
|
* metadata: { description: 'Deposit for account' }
|
|
60
55
|
* };
|
|
61
|
-
* const
|
|
56
|
+
* const { data, error } = await createDepositPayOrder(depositOrderParams);
|
|
57
|
+
* if (data) {
|
|
58
|
+
* console.log('Deposit PayOrder created:', data);
|
|
59
|
+
* }
|
|
62
60
|
*/
|
|
63
|
-
async createDepositPayOrder(params
|
|
61
|
+
async createDepositPayOrder(params) {
|
|
64
62
|
const result = zDepositPayOrder.safeParse(params);
|
|
65
|
-
if (!result.success)
|
|
66
|
-
return
|
|
63
|
+
if (!result.success) {
|
|
64
|
+
return {
|
|
65
|
+
error: {
|
|
66
|
+
path: "pay-orders",
|
|
67
|
+
statusCode: 400,
|
|
68
|
+
status: "Bad Request",
|
|
69
|
+
message: result.error.errors.map(e => e.message).join(", "),
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
67
73
|
return this.request({
|
|
68
74
|
path: `pay-orders`,
|
|
69
75
|
options: {
|
|
70
76
|
method: "POST",
|
|
71
77
|
body: JSON.stringify({ mode: PayOrderMode.DEPOSIT, ...params }),
|
|
72
78
|
},
|
|
73
|
-
throwOnFailure: throwOnFailure,
|
|
74
79
|
});
|
|
75
80
|
}
|
|
76
81
|
/**
|
|
@@ -82,45 +87,52 @@ export class ApiClient {
|
|
|
82
87
|
*
|
|
83
88
|
* @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
|
|
84
89
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
85
|
-
* @returns {PayOrder
|
|
90
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
86
91
|
*
|
|
87
92
|
* @example
|
|
88
|
-
* const apiKey = 'yourApiKey';
|
|
89
93
|
* const apiSecret = 'yourApiSecret';
|
|
90
|
-
* const authSignature = apiClient.generateAuthorizationSignature(
|
|
91
|
-
* const
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
94
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
95
|
+
* const response = await createSalePayOrder({
|
|
96
|
+
* destination_value_usd: 200,
|
|
97
|
+
* metadata: {
|
|
98
|
+
* items: [
|
|
99
|
+
* {
|
|
100
|
+
* name: "t-shirt",
|
|
101
|
+
* description: "a nice t-shirt",
|
|
102
|
+
* image: "https://example.com/tshirt.jpg",
|
|
103
|
+
* quantity: 1,
|
|
104
|
+
* unit_price: 200,
|
|
105
|
+
* currency: "USD"
|
|
106
|
+
* }
|
|
107
|
+
* ]
|
|
108
|
+
* }
|
|
109
|
+
* }, authSignature);
|
|
110
|
+
* if (response.data) {
|
|
111
|
+
* console.log('Sale PayOrder created:', response.data);
|
|
112
|
+
* }
|
|
105
113
|
*/
|
|
106
114
|
async createSalePayOrder(params, signature) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
catch (err) {
|
|
119
|
-
if (err instanceof z.ZodError) {
|
|
120
|
-
throw new Error(err.errors.map(e => e.message).join(", "));
|
|
115
|
+
if (params.metadata) {
|
|
116
|
+
const result = zPayOrderMetadata.safeParse(params.metadata);
|
|
117
|
+
if (!result.success) {
|
|
118
|
+
return {
|
|
119
|
+
error: {
|
|
120
|
+
path: "pay-orders",
|
|
121
|
+
statusCode: 400,
|
|
122
|
+
status: "Bad Request",
|
|
123
|
+
message: result.error.errors.map(e => e.message).join(", "),
|
|
124
|
+
}
|
|
125
|
+
};
|
|
121
126
|
}
|
|
122
|
-
throw err;
|
|
123
127
|
}
|
|
128
|
+
return this.request({
|
|
129
|
+
path: "pay-orders",
|
|
130
|
+
options: {
|
|
131
|
+
method: "POST",
|
|
132
|
+
body: JSON.stringify({ mode: PayOrderMode.SALE, ...params }),
|
|
133
|
+
headers: { Authorization: signature },
|
|
134
|
+
},
|
|
135
|
+
});
|
|
124
136
|
}
|
|
125
137
|
/**
|
|
126
138
|
* Creates a `REFUND` PayOrder.
|
|
@@ -132,49 +144,56 @@ export class ApiClient {
|
|
|
132
144
|
* @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
|
|
133
145
|
* @param {RefundOrderParams} params - Params required to create a refund PayOrder.
|
|
134
146
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
135
|
-
* @returns {PayOrder
|
|
147
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
136
148
|
*
|
|
137
149
|
* @example
|
|
138
|
-
* const apiKey = 'yourApiKey';
|
|
139
150
|
* const apiSecret = 'yourApiSecret';
|
|
140
|
-
* const authSignature = apiClient.generateAuthorizationSignature(
|
|
141
|
-
* const
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* },
|
|
148
|
-
* metadata: {
|
|
149
|
-
* items: [
|
|
150
|
-
* {
|
|
151
|
-
* name: "refund",
|
|
152
|
-
* description: "Refund for t-shirt purchase",
|
|
153
|
-
* unit_price: 100,
|
|
154
|
-
* currency: "USD"
|
|
151
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
152
|
+
* const response = await createRefundPayOrder(refundOrderId, {
|
|
153
|
+
* refund_currency: { chain_id: 1, address: null },
|
|
154
|
+
* amount: {
|
|
155
|
+
* fiat: {
|
|
156
|
+
* value: 100,
|
|
157
|
+
* unit: "USD"
|
|
155
158
|
* }
|
|
156
|
-
*
|
|
157
|
-
*
|
|
159
|
+
* },
|
|
160
|
+
* metadata: {
|
|
161
|
+
* items: [
|
|
162
|
+
* {
|
|
163
|
+
* name: "refund",
|
|
164
|
+
* description: "Refund for t-shirt purchase",
|
|
165
|
+
* unit_price: 100,
|
|
166
|
+
* currency: "USD"
|
|
167
|
+
* }
|
|
168
|
+
* ]
|
|
169
|
+
* }
|
|
170
|
+
* }, authSignature);
|
|
171
|
+
* if (response.data) {
|
|
172
|
+
* console.log('Refund PayOrder created:', response.data);
|
|
173
|
+
* }
|
|
158
174
|
*/
|
|
159
175
|
async createRefundPayOrder(payOrderId, params, signature) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
catch (err) {
|
|
173
|
-
if (err instanceof z.ZodError) {
|
|
174
|
-
throw new Error(err.errors.map(e => e.message).join(", "));
|
|
176
|
+
if (params.metadata) {
|
|
177
|
+
const result = zPayOrderMetadata.safeParse(params.metadata);
|
|
178
|
+
if (!result.success) {
|
|
179
|
+
return {
|
|
180
|
+
error: {
|
|
181
|
+
path: `pay-orders/${payOrderId}/refund`,
|
|
182
|
+
statusCode: 400,
|
|
183
|
+
status: "Bad Request",
|
|
184
|
+
message: result.error.errors.map(e => e.message).join(", "),
|
|
185
|
+
}
|
|
186
|
+
};
|
|
175
187
|
}
|
|
176
|
-
throw err;
|
|
177
188
|
}
|
|
189
|
+
return this.request({
|
|
190
|
+
path: `pay-orders/${payOrderId}/refund`,
|
|
191
|
+
options: {
|
|
192
|
+
method: "POST",
|
|
193
|
+
body: JSON.stringify(params),
|
|
194
|
+
headers: { Authorization: signature },
|
|
195
|
+
},
|
|
196
|
+
});
|
|
178
197
|
}
|
|
179
198
|
/**
|
|
180
199
|
* Generates a PayOrder Quote.
|
|
@@ -183,20 +202,21 @@ export class ApiClient {
|
|
|
183
202
|
* This function requires an API key for authentication.
|
|
184
203
|
*
|
|
185
204
|
* @param {string} orderId - The unique identifier of the PayOrder for which the quote is requested.
|
|
186
|
-
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, chain_id`.
|
|
187
|
-
* @returns {CurrencyWithBalance[]
|
|
205
|
+
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, `chain_id`.
|
|
206
|
+
* @returns {Promise<APIResponse<CurrencyWithBalance[]>>} - An array of PayTokens wrapped in an API response if the request was successful.
|
|
188
207
|
*
|
|
189
208
|
* @example
|
|
190
209
|
* const orderId = 'existingOrderId';
|
|
191
|
-
* const apiKey = 'yourApiKey';
|
|
192
210
|
* const quoteParams = {
|
|
193
211
|
* wallet_address: '0x1234...abcd',
|
|
194
212
|
* chain_type: ChainType.EVM,
|
|
195
213
|
* chain_id: 1 // Ethereum Mainnet
|
|
196
214
|
* };
|
|
197
215
|
*
|
|
198
|
-
* const
|
|
199
|
-
|
|
216
|
+
* const response = await payOrderQuote(orderId, quoteParams);
|
|
217
|
+
* if (response.data) {
|
|
218
|
+
* console.log('Available tokens:', response.data);
|
|
219
|
+
* }
|
|
200
220
|
*/
|
|
201
221
|
async payOrderQuote(orderId, quoteParams) {
|
|
202
222
|
return this.request({
|
|
@@ -211,7 +231,7 @@ export class ApiClient {
|
|
|
211
231
|
* Retrieves payment details for a specific PayOrder.
|
|
212
232
|
*
|
|
213
233
|
* This function fetches payment details associated with a specific PayOrder ID.
|
|
214
|
-
* It allows specifying the token and blockchain network (via `
|
|
234
|
+
* It allows specifying the token and blockchain network (via `token_address` and `chain_id`)
|
|
215
235
|
* to retrieve source currency information, as well as a refund address for the transaction.
|
|
216
236
|
*
|
|
217
237
|
* The request is authenticated using the provided API key in the headers.
|
|
@@ -222,17 +242,19 @@ export class ApiClient {
|
|
|
222
242
|
* @param {ChainId} params.chain_id - The blockchain network ID where the token resides.
|
|
223
243
|
* @param {string} params.refund_address - The address where funds will be refunded in case of a failed transaction.
|
|
224
244
|
*
|
|
225
|
-
* @returns {Promise<PaymentDetails
|
|
245
|
+
* @returns {Promise<APIResponse<PaymentDetails>>} - The payment details object wrapped in an API response if the request is successful.
|
|
226
246
|
*
|
|
227
247
|
* @example
|
|
228
|
-
* const
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
248
|
+
* const response = await payOrderPaymentDetails({
|
|
249
|
+
* payorder_id: '12345',
|
|
250
|
+
* token_address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
251
|
+
* chain_id: 1,
|
|
252
|
+
* refund_address: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
233
253
|
* });
|
|
234
254
|
*
|
|
235
|
-
*
|
|
255
|
+
* if (response.data) {
|
|
256
|
+
* console.log('Payment details:', response.data);
|
|
257
|
+
* }
|
|
236
258
|
*/
|
|
237
259
|
async payOrderPaymentDetails(params) {
|
|
238
260
|
const { payorder_id, token_address, chain_id, refund_address } = params;
|
|
@@ -250,34 +272,6 @@ export class ApiClient {
|
|
|
250
272
|
},
|
|
251
273
|
});
|
|
252
274
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Processes a PayOrder transaction.
|
|
255
|
-
*
|
|
256
|
-
* This function triggers the processing of a PayOrder by providing the transaction hash
|
|
257
|
-
* that represents the payment on the blockchain. The request is authenticated using an API key.
|
|
258
|
-
*
|
|
259
|
-
* @deprecated This function is deprecated and will be removed in future versions. The backend will automatically scan for incoming transactions.
|
|
260
|
-
*
|
|
261
|
-
* @param {Object} params - Parameters required to process the PayOrder.
|
|
262
|
-
* @param {string} params.payOrderId - The unique identifier of the PayOrder to be processed.
|
|
263
|
-
* @param {string} params.sourceTransactionHash - The transaction hash representing the payment on the blockchain.
|
|
264
|
-
*
|
|
265
|
-
* @returns {Promise<void>}
|
|
266
|
-
*
|
|
267
|
-
* @example
|
|
268
|
-
* const processedPayment = await processPayOrder({
|
|
269
|
-
* payOrderId: '12345',
|
|
270
|
-
* sourceTransactionHash: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
271
|
-
* });
|
|
272
|
-
*
|
|
273
|
-
* console.log(processedPayment);
|
|
274
|
-
*/
|
|
275
|
-
async processPayOrder(payOrderId, sourceTransactionHash) {
|
|
276
|
-
return this.request({
|
|
277
|
-
path: `pay-orders/${payOrderId}/process?tx_hash=${sourceTransactionHash}`,
|
|
278
|
-
options: { method: "GET" },
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
275
|
/**
|
|
282
276
|
* Generates an authorization signature for API requests.
|
|
283
277
|
*
|
|
@@ -295,9 +289,8 @@ export class ApiClient {
|
|
|
295
289
|
* `APIKey=<apiKey>,signature=<signature>,timestamp=<timestamp>`.
|
|
296
290
|
*
|
|
297
291
|
* @example
|
|
298
|
-
* const apiKey = 'yourApiKey';
|
|
299
292
|
* const apiSecret = 'yourApiSecret';
|
|
300
|
-
* const authSignature = generateAuthorizationSignature(
|
|
293
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
301
294
|
* console.log(authSignature);
|
|
302
295
|
* // Example output:
|
|
303
296
|
* // APIKey=yourApiKey,signature=2ee76043a90a...,timestamp=1737106896
|
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,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/fetcher.d.ts
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
import { APIEnvironment } from "./config";
|
|
1
2
|
type FetchApiOptions = {
|
|
2
3
|
path: string;
|
|
4
|
+
environment?: APIEnvironment;
|
|
3
5
|
options?: RequestInit;
|
|
4
|
-
throwOnFailure?: boolean;
|
|
5
6
|
};
|
|
6
|
-
export
|
|
7
|
+
export type APIError = {
|
|
8
|
+
path: string;
|
|
9
|
+
statusCode: number;
|
|
10
|
+
status: string;
|
|
11
|
+
message: string;
|
|
12
|
+
};
|
|
13
|
+
export type APIResponse<T> = {
|
|
14
|
+
data?: T;
|
|
15
|
+
error?: APIError;
|
|
16
|
+
};
|
|
17
|
+
export declare function fetchApi<T>(opts: FetchApiOptions): Promise<APIResponse<T>>;
|
|
7
18
|
export {};
|
package/dist/api/fetcher.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { API_URL } from "./config";
|
|
1
2
|
export async function fetchApi(opts) {
|
|
2
3
|
try {
|
|
3
|
-
const
|
|
4
|
+
const baseUrl = API_URL[opts.environment ?? "production"];
|
|
5
|
+
const response = await fetch(`${baseUrl}/${opts.path}`, {
|
|
4
6
|
...opts.options,
|
|
5
7
|
headers: {
|
|
6
8
|
...opts.options?.headers,
|
|
@@ -9,22 +11,28 @@ export async function fetchApi(opts) {
|
|
|
9
11
|
},
|
|
10
12
|
});
|
|
11
13
|
if (!response.ok) {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const message = await response.text();
|
|
15
|
+
return {
|
|
16
|
+
error: {
|
|
17
|
+
path: opts.path,
|
|
18
|
+
statusCode: response.status,
|
|
19
|
+
status: response.statusText,
|
|
20
|
+
message
|
|
21
|
+
}
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
|
-
|
|
24
|
+
const data = await response.json();
|
|
25
|
+
return { data };
|
|
22
26
|
}
|
|
23
27
|
catch (error) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
return {
|
|
29
|
+
error: {
|
|
30
|
+
path: opts.path,
|
|
31
|
+
statusCode: 500,
|
|
32
|
+
status: "Internal Server Error",
|
|
33
|
+
message: error.message || "An unknown error occurred"
|
|
34
|
+
}
|
|
35
|
+
};
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
38
|
//# sourceMappingURL=fetcher.js.map
|
package/dist/api/fetcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/api/fetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/api/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AAqBnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAqB;IACnD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACpD,GAAG,IAAI,CAAC,OAAO;YACf,OAAO,EAAE;gBACL,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO;gBACxB,cAAc,EAAE,kBAAkB;gBAClC,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO;gBACH,KAAK,EAAE;oBACH,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,MAAM,EAAE,QAAQ,CAAC,UAAU;oBAC3B,OAAO;iBACV;aACJ,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,uBAAuB;gBAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,2BAA2B;aACxD;SACJ,CAAC;IACN,CAAC;AACL,CAAC"}
|