@coin-voyage/shared 0.0.21 → 0.0.23
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 +77 -88
- package/dist/api/client.js +83 -96
- package/dist/api/client.js.map +1 -1
- package/dist/api/fetcher.d.ts +13 -2
- package/dist/api/fetcher.js +20 -13
- package/dist/api/fetcher.js.map +1 -1
- package/dist/types/crypto.d.ts +1 -1
- package/dist/types/crypto.js.map +1 -1
- package/package.json +1 -1
package/dist/api/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CurrencyWithBalance, PayOrder } from "../common/index";
|
|
2
2
|
import { DepositPayOrderParams, PaymentDetails, PaymentDetailsParams, PayOrderQuoteParams, RefundOrderParams, SalePayOrderParams } from "../types/api";
|
|
3
3
|
import { APIEnvironment } from "./config";
|
|
4
|
+
import { 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,6 @@
|
|
|
1
1
|
import { createHash } from "crypto";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { PayOrderMode, zDepositPayOrder, zPayOrderMetadata } from "../common/index";
|
|
4
|
-
import { API_URL } from "./config";
|
|
5
4
|
import { fetchApi } from "./fetcher";
|
|
6
5
|
export class ApiClient {
|
|
7
6
|
constructor({ apiKey, sessionId, environment = "production", version }) {
|
|
@@ -11,10 +10,9 @@ export class ApiClient {
|
|
|
11
10
|
this.version = version;
|
|
12
11
|
}
|
|
13
12
|
async request(args) {
|
|
14
|
-
const baseUrl = API_URL[this.environment ?? "production"];
|
|
15
13
|
return fetchApi({
|
|
16
14
|
...args,
|
|
17
|
-
|
|
15
|
+
environment: this.environment,
|
|
18
16
|
options: {
|
|
19
17
|
...args.options,
|
|
20
18
|
headers: {
|
|
@@ -24,7 +22,6 @@ export class ApiClient {
|
|
|
24
22
|
...this.version ? { "X-Client-Version": this.version } : {},
|
|
25
23
|
},
|
|
26
24
|
},
|
|
27
|
-
throwOnFailure: args.throwOnFailure,
|
|
28
25
|
});
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
@@ -34,10 +31,10 @@ export class ApiClient {
|
|
|
34
31
|
* This function requires an API key for authentication.
|
|
35
32
|
*
|
|
36
33
|
* @param {string} payOrderId - The unique identifier of the PayOrder.
|
|
37
|
-
* @returns {Promise<PayOrder
|
|
34
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
38
35
|
*
|
|
39
36
|
* @example
|
|
40
|
-
* const payOrder = await getPayOrder('123456');
|
|
37
|
+
* const { data: payOrder, error } = await getPayOrder('123456');
|
|
41
38
|
*/
|
|
42
39
|
async getPayOrder(payOrderId) {
|
|
43
40
|
return this.request({ path: `pay-orders/${payOrderId}` });
|
|
@@ -48,29 +45,38 @@ export class ApiClient {
|
|
|
48
45
|
* Creates a PayOrder of type `DEPOSIT` with the provided parameters.
|
|
49
46
|
*
|
|
50
47
|
* @param {DepositPayOrderParams} params - Parameters required to create a deposit PayOrder.
|
|
51
|
-
* @
|
|
52
|
-
* @returns {Promise<PayOrder | undefined>} - The PayOrder object if the request is successful.
|
|
48
|
+
* @returns {Promise<APIResponse<PayOrder>>} - The PayOrder object wrapped in an API response if the request is successful.
|
|
53
49
|
*
|
|
54
50
|
* @example
|
|
55
|
-
* const apiKey = 'yourApiKey';
|
|
56
51
|
* const depositOrderParams = {
|
|
57
|
-
*
|
|
58
|
-
*
|
|
52
|
+
* receiving_address: '0x1234...abcd',
|
|
53
|
+
* destination_currency: { chain_id: 1, address: null },
|
|
54
|
+
* destination_amount: '100',
|
|
59
55
|
* metadata: { description: 'Deposit for account' }
|
|
60
56
|
* };
|
|
61
|
-
* const
|
|
57
|
+
* const { data, error } = await createDepositPayOrder(depositOrderParams);
|
|
58
|
+
* if (data) {
|
|
59
|
+
* console.log('Deposit PayOrder created:', data);
|
|
60
|
+
* }
|
|
62
61
|
*/
|
|
63
|
-
async createDepositPayOrder(params
|
|
62
|
+
async createDepositPayOrder(params) {
|
|
64
63
|
const result = zDepositPayOrder.safeParse(params);
|
|
65
|
-
if (!result.success)
|
|
66
|
-
return
|
|
64
|
+
if (!result.success) {
|
|
65
|
+
return {
|
|
66
|
+
error: {
|
|
67
|
+
path: "pay-orders",
|
|
68
|
+
statusCode: 400,
|
|
69
|
+
status: "Bad Request",
|
|
70
|
+
message: result.error.errors.map(e => e.message).join(", "),
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
67
74
|
return this.request({
|
|
68
75
|
path: `pay-orders`,
|
|
69
76
|
options: {
|
|
70
77
|
method: "POST",
|
|
71
78
|
body: JSON.stringify({ mode: PayOrderMode.DEPOSIT, ...params }),
|
|
72
79
|
},
|
|
73
|
-
throwOnFailure: throwOnFailure,
|
|
74
80
|
});
|
|
75
81
|
}
|
|
76
82
|
/**
|
|
@@ -82,26 +88,29 @@ export class ApiClient {
|
|
|
82
88
|
*
|
|
83
89
|
* @param {SalePayOrderParams} params - Params required to create a sale PayOrder.
|
|
84
90
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
85
|
-
* @returns {PayOrder
|
|
91
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
86
92
|
*
|
|
87
93
|
* @example
|
|
88
|
-
* const apiKey = 'yourApiKey';
|
|
89
94
|
* const apiSecret = 'yourApiSecret';
|
|
90
|
-
* const authSignature = apiClient.generateAuthorizationSignature(
|
|
91
|
-
* const
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
95
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
96
|
+
* const response = await createSalePayOrder({
|
|
97
|
+
* destination_value_usd: 200,
|
|
98
|
+
* metadata: {
|
|
99
|
+
* items: [
|
|
100
|
+
* {
|
|
101
|
+
* name: "t-shirt",
|
|
102
|
+
* description: "a nice t-shirt",
|
|
103
|
+
* image: "https://example.com/tshirt.jpg",
|
|
104
|
+
* quantity: 1,
|
|
105
|
+
* unit_price: 200,
|
|
106
|
+
* currency: "USD"
|
|
107
|
+
* }
|
|
108
|
+
* ]
|
|
109
|
+
* }
|
|
110
|
+
* }, authSignature);
|
|
111
|
+
* if (response.data) {
|
|
112
|
+
* console.log('Sale PayOrder created:', response.data);
|
|
113
|
+
* }
|
|
105
114
|
*/
|
|
106
115
|
async createSalePayOrder(params, signature) {
|
|
107
116
|
try {
|
|
@@ -113,7 +122,7 @@ export class ApiClient {
|
|
|
113
122
|
body: JSON.stringify({ mode: PayOrderMode.SALE, ...params }),
|
|
114
123
|
headers: { Authorization: signature },
|
|
115
124
|
},
|
|
116
|
-
});
|
|
125
|
+
});
|
|
117
126
|
}
|
|
118
127
|
catch (err) {
|
|
119
128
|
if (err instanceof z.ZodError) {
|
|
@@ -132,29 +141,33 @@ export class ApiClient {
|
|
|
132
141
|
* @param {string} payOrderId - The unique identifier of the PayOrder to be refunded.
|
|
133
142
|
* @param {RefundOrderParams} params - Params required to create a refund PayOrder.
|
|
134
143
|
* @param {string} signature - signature generated by the `generateAuthorizationSignature` function.
|
|
135
|
-
* @returns {PayOrder
|
|
144
|
+
* @returns {Promise<APIResponse<PayOrder>>} - A PayOrder object wrapped in an API response if the request was successful.
|
|
136
145
|
*
|
|
137
146
|
* @example
|
|
138
|
-
* const apiKey = 'yourApiKey';
|
|
139
147
|
* 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"
|
|
148
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
149
|
+
* const response = await createRefundPayOrder(refundOrderId, {
|
|
150
|
+
* refund_currency: { chain_id: 1, address: null },
|
|
151
|
+
* amount: {
|
|
152
|
+
* fiat: {
|
|
153
|
+
* value: 100,
|
|
154
|
+
* unit: "USD"
|
|
155
155
|
* }
|
|
156
|
-
*
|
|
157
|
-
*
|
|
156
|
+
* },
|
|
157
|
+
* metadata: {
|
|
158
|
+
* items: [
|
|
159
|
+
* {
|
|
160
|
+
* name: "refund",
|
|
161
|
+
* description: "Refund for t-shirt purchase",
|
|
162
|
+
* unit_price: 100,
|
|
163
|
+
* currency: "USD"
|
|
164
|
+
* }
|
|
165
|
+
* ]
|
|
166
|
+
* }
|
|
167
|
+
* }, authSignature);
|
|
168
|
+
* if (response.data) {
|
|
169
|
+
* console.log('Refund PayOrder created:', response.data);
|
|
170
|
+
* }
|
|
158
171
|
*/
|
|
159
172
|
async createRefundPayOrder(payOrderId, params, signature) {
|
|
160
173
|
try {
|
|
@@ -183,20 +196,21 @@ export class ApiClient {
|
|
|
183
196
|
* This function requires an API key for authentication.
|
|
184
197
|
*
|
|
185
198
|
* @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[]
|
|
199
|
+
* @param {PayOrderQuoteParams} quoteParams - Contains `wallet_address`, `chain_type`, `chain_id`.
|
|
200
|
+
* @returns {Promise<APIResponse<CurrencyWithBalance[]>>} - An array of PayTokens wrapped in an API response if the request was successful.
|
|
188
201
|
*
|
|
189
202
|
* @example
|
|
190
203
|
* const orderId = 'existingOrderId';
|
|
191
|
-
* const apiKey = 'yourApiKey';
|
|
192
204
|
* const quoteParams = {
|
|
193
205
|
* wallet_address: '0x1234...abcd',
|
|
194
206
|
* chain_type: ChainType.EVM,
|
|
195
207
|
* chain_id: 1 // Ethereum Mainnet
|
|
196
208
|
* };
|
|
197
209
|
*
|
|
198
|
-
* const
|
|
199
|
-
|
|
210
|
+
* const response = await payOrderQuote(orderId, quoteParams);
|
|
211
|
+
* if (response.data) {
|
|
212
|
+
* console.log('Available tokens:', response.data);
|
|
213
|
+
* }
|
|
200
214
|
*/
|
|
201
215
|
async payOrderQuote(orderId, quoteParams) {
|
|
202
216
|
return this.request({
|
|
@@ -211,7 +225,7 @@ export class ApiClient {
|
|
|
211
225
|
* Retrieves payment details for a specific PayOrder.
|
|
212
226
|
*
|
|
213
227
|
* This function fetches payment details associated with a specific PayOrder ID.
|
|
214
|
-
* It allows specifying the token and blockchain network (via `
|
|
228
|
+
* It allows specifying the token and blockchain network (via `token_address` and `chain_id`)
|
|
215
229
|
* to retrieve source currency information, as well as a refund address for the transaction.
|
|
216
230
|
*
|
|
217
231
|
* The request is authenticated using the provided API key in the headers.
|
|
@@ -222,17 +236,19 @@ export class ApiClient {
|
|
|
222
236
|
* @param {ChainId} params.chain_id - The blockchain network ID where the token resides.
|
|
223
237
|
* @param {string} params.refund_address - The address where funds will be refunded in case of a failed transaction.
|
|
224
238
|
*
|
|
225
|
-
* @returns {Promise<PaymentDetails
|
|
239
|
+
* @returns {Promise<APIResponse<PaymentDetails>>} - The payment details object wrapped in an API response if the request is successful.
|
|
226
240
|
*
|
|
227
241
|
* @example
|
|
228
|
-
* const
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
242
|
+
* const response = await payOrderPaymentDetails({
|
|
243
|
+
* payorder_id: '12345',
|
|
244
|
+
* token_address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
245
|
+
* chain_id: 1,
|
|
246
|
+
* refund_address: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
233
247
|
* });
|
|
234
248
|
*
|
|
235
|
-
*
|
|
249
|
+
* if (response.data) {
|
|
250
|
+
* console.log('Payment details:', response.data);
|
|
251
|
+
* }
|
|
236
252
|
*/
|
|
237
253
|
async payOrderPaymentDetails(params) {
|
|
238
254
|
const { payorder_id, token_address, chain_id, refund_address } = params;
|
|
@@ -250,34 +266,6 @@ export class ApiClient {
|
|
|
250
266
|
},
|
|
251
267
|
});
|
|
252
268
|
}
|
|
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
269
|
/**
|
|
282
270
|
* Generates an authorization signature for API requests.
|
|
283
271
|
*
|
|
@@ -295,9 +283,8 @@ export class ApiClient {
|
|
|
295
283
|
* `APIKey=<apiKey>,signature=<signature>,timestamp=<timestamp>`.
|
|
296
284
|
*
|
|
297
285
|
* @example
|
|
298
|
-
* const apiKey = 'yourApiKey';
|
|
299
286
|
* const apiSecret = 'yourApiSecret';
|
|
300
|
-
* const authSignature = generateAuthorizationSignature(
|
|
287
|
+
* const authSignature = apiClient.generateAuthorizationSignature(apiSecret);
|
|
301
288
|
* console.log(authSignature);
|
|
302
289
|
* // Example output:
|
|
303
290
|
* // 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,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
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,27 @@ 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
|
return await response.json();
|
|
22
25
|
}
|
|
23
26
|
catch (error) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
return {
|
|
28
|
+
error: {
|
|
29
|
+
path: opts.path,
|
|
30
|
+
statusCode: 500,
|
|
31
|
+
status: "Internal Server Error",
|
|
32
|
+
message: error.message || "An unknown error occurred"
|
|
33
|
+
}
|
|
34
|
+
};
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
37
|
//# 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,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,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"}
|
package/dist/types/crypto.d.ts
CHANGED
package/dist/types/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/types/crypto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/types/crypto.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,WAAW,GAAG,4CAA4C,CAAC"}
|