@rozoai/intent-common 0.1.1-beta.2 → 0.1.1-beta.4
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/base.d.ts +11 -11
- package/dist/api/base.js +40 -29
- package/dist/api/base.js.map +1 -1
- package/dist/api/fee.d.ts +10 -6
- package/dist/api/fee.js +8 -9
- package/dist/api/fee.js.map +1 -1
- package/dist/api/payment.d.ts +1 -1
- package/dist/api/payment.js +4 -4
- package/dist/api/payment.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/rozoPay.d.ts +2 -2
- package/package.json +1 -1
- package/src/api/base.ts +42 -31
- package/src/api/fee.ts +17 -15
- package/src/api/payment.ts +5 -5
- package/src/index.ts +1 -0
package/dist/api/base.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface RequestState<T = any> extends ApiResponse<T> {
|
|
|
25
25
|
/**
|
|
26
26
|
* API Version type
|
|
27
27
|
*/
|
|
28
|
-
export type ApiVersion = "
|
|
28
|
+
export type ApiVersion = "v1" | "v2";
|
|
29
29
|
/**
|
|
30
30
|
* API Configuration
|
|
31
31
|
*/
|
|
@@ -34,31 +34,31 @@ export interface ApiConfig {
|
|
|
34
34
|
apiToken: string;
|
|
35
35
|
version?: ApiVersion;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets the current active API configuration
|
|
39
|
+
* @returns Current API configuration
|
|
40
|
+
*/
|
|
41
|
+
export declare const getApiConfig: () => ApiConfig;
|
|
37
42
|
/**
|
|
38
43
|
* Sets the API configuration (baseUrl, apiToken, and version)
|
|
39
44
|
* @param config - Partial API configuration to override defaults
|
|
40
45
|
* @example
|
|
41
46
|
* ```typescript
|
|
42
|
-
* // Use v2 API
|
|
47
|
+
* // Use v2 API (default)
|
|
43
48
|
* setApiConfig({ version: "v2" });
|
|
44
49
|
*
|
|
45
|
-
* // Use
|
|
46
|
-
* setApiConfig({ version: "
|
|
50
|
+
* // Use v1 API
|
|
51
|
+
* setApiConfig({ version: "v1" });
|
|
47
52
|
*
|
|
48
|
-
* // Custom configuration
|
|
53
|
+
* // Custom configuration for a specific version
|
|
49
54
|
* setApiConfig({
|
|
50
55
|
* baseUrl: "https://custom-api.com",
|
|
51
56
|
* apiToken: "custom-token",
|
|
52
|
-
* version: "
|
|
57
|
+
* version: "v2"
|
|
53
58
|
* });
|
|
54
59
|
* ```
|
|
55
60
|
*/
|
|
56
61
|
export declare const setApiConfig: (config: Partial<ApiConfig>) => void;
|
|
57
|
-
/**
|
|
58
|
-
* Gets the current API configuration
|
|
59
|
-
* @returns Current API configuration
|
|
60
|
-
*/
|
|
61
|
-
export declare const getApiConfig: () => Readonly<ApiConfig>;
|
|
62
62
|
/**
|
|
63
63
|
* Core fetch function for making API requests
|
|
64
64
|
* @param url - API endpoint path
|
package/dist/api/base.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.apiClient = exports.fetchApi = exports.
|
|
3
|
+
exports.apiClient = exports.fetchApi = exports.setApiConfig = exports.getApiConfig = exports.ROZO_API_TOKEN = exports.NEW_ROZO_API_URL = exports.ROZO_API_URL = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* RozoAI API Configuration Constants
|
|
6
6
|
*/
|
|
@@ -8,53 +8,62 @@ exports.ROZO_API_URL = "https://intentapiv2.rozo.ai/functions/v1";
|
|
|
8
8
|
exports.NEW_ROZO_API_URL = "https://intentapiv4.rozo.ai/functions/v1";
|
|
9
9
|
exports.ROZO_API_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZ4Y3Zmb2xobmNtdXZmYXp1cXViIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTI4Mzg2NjYsImV4cCI6MjA2ODQxNDY2Nn0.B4dV5y_-zCMKSNm3_qyCbAvCPJmoOGv_xB783LfAVUA";
|
|
10
10
|
// Default configuration (can be overridden via setApiConfig)
|
|
11
|
-
//
|
|
11
|
+
// v2 is the default API version
|
|
12
12
|
let apiConfig = {
|
|
13
|
-
baseUrl: exports.
|
|
14
|
-
apiToken: exports.ROZO_API_TOKEN,
|
|
15
|
-
version: "v4",
|
|
13
|
+
v1: { baseUrl: exports.ROZO_API_URL, apiToken: exports.ROZO_API_TOKEN, version: "v1" },
|
|
14
|
+
v2: { baseUrl: exports.NEW_ROZO_API_URL, apiToken: exports.ROZO_API_TOKEN, version: "v2" },
|
|
16
15
|
};
|
|
16
|
+
// Current active API version
|
|
17
|
+
let activeVersion = "v2";
|
|
18
|
+
/**
|
|
19
|
+
* Gets the current active API configuration
|
|
20
|
+
* @returns Current API configuration
|
|
21
|
+
*/
|
|
22
|
+
const getApiConfig = () => {
|
|
23
|
+
return apiConfig[activeVersion];
|
|
24
|
+
};
|
|
25
|
+
exports.getApiConfig = getApiConfig;
|
|
17
26
|
/**
|
|
18
27
|
* Sets the API configuration (baseUrl, apiToken, and version)
|
|
19
28
|
* @param config - Partial API configuration to override defaults
|
|
20
29
|
* @example
|
|
21
30
|
* ```typescript
|
|
22
|
-
* // Use v2 API
|
|
31
|
+
* // Use v2 API (default)
|
|
23
32
|
* setApiConfig({ version: "v2" });
|
|
24
33
|
*
|
|
25
|
-
* // Use
|
|
26
|
-
* setApiConfig({ version: "
|
|
34
|
+
* // Use v1 API
|
|
35
|
+
* setApiConfig({ version: "v1" });
|
|
27
36
|
*
|
|
28
|
-
* // Custom configuration
|
|
37
|
+
* // Custom configuration for a specific version
|
|
29
38
|
* setApiConfig({
|
|
30
39
|
* baseUrl: "https://custom-api.com",
|
|
31
40
|
* apiToken: "custom-token",
|
|
32
|
-
* version: "
|
|
41
|
+
* version: "v2"
|
|
33
42
|
* });
|
|
34
43
|
* ```
|
|
35
44
|
*/
|
|
36
45
|
const setApiConfig = (config) => {
|
|
37
46
|
if (config.version) {
|
|
38
|
-
|
|
39
|
-
if
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
activeVersion = config.version;
|
|
48
|
+
// Update the specific version's config if baseUrl or apiToken provided
|
|
49
|
+
if (config.baseUrl || config.apiToken) {
|
|
50
|
+
apiConfig[activeVersion] = {
|
|
51
|
+
...apiConfig[activeVersion],
|
|
52
|
+
...(config.baseUrl && { baseUrl: config.baseUrl }),
|
|
53
|
+
...(config.apiToken && { apiToken: config.apiToken }),
|
|
54
|
+
};
|
|
42
55
|
}
|
|
43
56
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
else {
|
|
58
|
+
// Update current active version with provided config
|
|
59
|
+
apiConfig[activeVersion] = {
|
|
60
|
+
...apiConfig[activeVersion],
|
|
61
|
+
...(config.baseUrl && { baseUrl: config.baseUrl }),
|
|
62
|
+
...(config.apiToken && { apiToken: config.apiToken }),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
48
65
|
};
|
|
49
66
|
exports.setApiConfig = setApiConfig;
|
|
50
|
-
/**
|
|
51
|
-
* Gets the current API configuration
|
|
52
|
-
* @returns Current API configuration
|
|
53
|
-
*/
|
|
54
|
-
const getApiConfig = () => {
|
|
55
|
-
return { ...apiConfig };
|
|
56
|
-
};
|
|
57
|
-
exports.getApiConfig = getApiConfig;
|
|
58
67
|
/**
|
|
59
68
|
* Creates a URL with query parameters
|
|
60
69
|
* @param url - Base URL
|
|
@@ -62,9 +71,10 @@ exports.getApiConfig = getApiConfig;
|
|
|
62
71
|
* @returns Full URL with query parameters
|
|
63
72
|
*/
|
|
64
73
|
const createUrl = (url, params) => {
|
|
74
|
+
const config = (0, exports.getApiConfig)();
|
|
65
75
|
const fullUrl = url.startsWith("/")
|
|
66
|
-
? `${
|
|
67
|
-
: `${
|
|
76
|
+
? `${config.baseUrl}${url}`
|
|
77
|
+
: `${config.baseUrl}/${url}`;
|
|
68
78
|
if (!params)
|
|
69
79
|
return fullUrl;
|
|
70
80
|
const queryParams = new URLSearchParams();
|
|
@@ -86,10 +96,11 @@ const fetchApi = async (url, options = {}) => {
|
|
|
86
96
|
const { method = "GET", headers = {}, body, params, signal } = options;
|
|
87
97
|
try {
|
|
88
98
|
const fullUrl = createUrl(url, params);
|
|
99
|
+
const config = (0, exports.getApiConfig)();
|
|
89
100
|
const requestHeaders = {
|
|
90
101
|
"Content-Type": "application/json",
|
|
91
102
|
...headers,
|
|
92
|
-
Authorization: `Bearer ${
|
|
103
|
+
Authorization: `Bearer ${config.apiToken}`,
|
|
93
104
|
};
|
|
94
105
|
const requestOptions = {
|
|
95
106
|
method,
|
package/dist/api/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,YAAY,GAAG,0CAA0C,CAAC;AAC1D,QAAA,gBAAgB,GAAG,0CAA0C,CAAC;AAC9D,QAAA,cAAc,GACzB,kNAAkN,CAAC;AA0CrN,6DAA6D;AAC7D,gCAAgC;AAChC,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api/base.ts"],"names":[],"mappings":"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"}
|
package/dist/api/fee.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ApiResponse
|
|
1
|
+
import { ApiResponse } from "./base";
|
|
2
|
+
import { FeeType } from "./payment";
|
|
2
3
|
/**
|
|
3
4
|
* Fee response data type (success case)
|
|
4
5
|
*/
|
|
@@ -6,10 +7,14 @@ export interface FeeResponseData {
|
|
|
6
7
|
appId: string;
|
|
7
8
|
amount: number;
|
|
8
9
|
currency: string;
|
|
10
|
+
type: string;
|
|
9
11
|
fee: number;
|
|
10
12
|
feePercentage: string;
|
|
11
13
|
minimumFee: string;
|
|
14
|
+
amountIn: number;
|
|
15
|
+
amountOut: number;
|
|
12
16
|
amount_out: number;
|
|
17
|
+
amount_in: number;
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Fee error response data type
|
|
@@ -24,12 +29,11 @@ export interface FeeErrorData {
|
|
|
24
29
|
* Fee request parameters
|
|
25
30
|
*/
|
|
26
31
|
export interface GetFeeParams {
|
|
27
|
-
appId
|
|
28
|
-
amount: number;
|
|
29
|
-
toChain: number;
|
|
32
|
+
appId?: string;
|
|
30
33
|
currency?: string;
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
toUnits: string;
|
|
35
|
+
toChain: number;
|
|
36
|
+
type: FeeType;
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
39
|
* Gets fee calculation for a payment amount
|
package/dist/api/fee.js
CHANGED
|
@@ -2,24 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFee = void 0;
|
|
4
4
|
const chain_1 = require("../chain");
|
|
5
|
-
const
|
|
5
|
+
const payment_1 = require("./payment");
|
|
6
6
|
/**
|
|
7
7
|
* Gets fee calculation for a payment amount
|
|
8
8
|
* @param params - Fee calculation parameters (amount is required)
|
|
9
9
|
* @returns Promise with fee response or error
|
|
10
10
|
*/
|
|
11
11
|
const getFee = async (params) => {
|
|
12
|
-
const {
|
|
13
|
-
// Set API version if provided
|
|
14
|
-
if (apiVersion) {
|
|
15
|
-
(0, base_1.setApiConfig)({ version: apiVersion });
|
|
16
|
-
}
|
|
12
|
+
const { toUnits, appId, currency = "USDC", toChain, type } = params;
|
|
17
13
|
try {
|
|
18
|
-
const chain = (0, chain_1.getChainById)(toChain);
|
|
14
|
+
const chain = (0, chain_1.getChainById)(Number(toChain));
|
|
19
15
|
const toChainName = chain.name.toLowerCase();
|
|
20
16
|
const queryParams = new URLSearchParams({
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
...(appId ? { appId } : {}),
|
|
18
|
+
...(type === payment_1.FeeType.ExactIn
|
|
19
|
+
? { type: "exactIn" }
|
|
20
|
+
: { type: "exactOut" }),
|
|
21
|
+
amount: toUnits,
|
|
23
22
|
currency,
|
|
24
23
|
tochain: toChainName,
|
|
25
24
|
});
|
package/dist/api/fee.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/api/fee.ts"],"names":[],"mappings":";;;AAAA,oCAAwC;
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../src/api/fee.ts"],"names":[],"mappings":";;;AAAA,oCAAwC;AAExC,uCAAoC;AAwCpC;;;;GAIG;AACI,MAAM,MAAM,GAAG,KAAK,EACzB,MAAoB,EACmB,EAAE;IACzC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,KAAK,iBAAO,CAAC,OAAO;gBAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACzB,MAAM,EAAE,OAAO;YACf,QAAQ;YACR,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,oCAAoC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAC7D,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAC;QAEvE,sCAAsC;QACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAoB,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC;gBACtD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAuB;YAC7B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AA/CW,QAAA,MAAM,UA+CjB"}
|
package/dist/api/payment.d.ts
CHANGED
|
@@ -277,7 +277,7 @@ export interface CreateNewPaymentParams {
|
|
|
277
277
|
/** Order reference ID (for idempotency) */
|
|
278
278
|
orderId?: string;
|
|
279
279
|
/** Fee calculation type (exactIn or exactOut) */
|
|
280
|
-
|
|
280
|
+
feeType?: FeeType;
|
|
281
281
|
/** Webhook URL to receive payment status updates */
|
|
282
282
|
webhookUrl?: string;
|
|
283
283
|
/** Secret for HMAC-SHA256 signature verification */
|
package/dist/api/payment.js
CHANGED
|
@@ -71,7 +71,7 @@ var PaymentErrorCode;
|
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
73
|
async function createPayment(params) {
|
|
74
|
-
const { toChain, toToken, toAddress, preferredChain, preferredTokenAddress, toUnits, appId, metadata, title, description, orderId,
|
|
74
|
+
const { toChain, toToken, toAddress, preferredChain, preferredTokenAddress, toUnits, appId, metadata, title, description, orderId, feeType, webhookUrl, webhookSecret, receiverMemo, apiVersion, } = params;
|
|
75
75
|
// Set API version if provided
|
|
76
76
|
if (apiVersion) {
|
|
77
77
|
(0, base_1.setApiConfig)({ version: apiVersion });
|
|
@@ -97,7 +97,7 @@ async function createPayment(params) {
|
|
|
97
97
|
// Build payment request data matching new backend interface
|
|
98
98
|
const paymentData = {
|
|
99
99
|
appId,
|
|
100
|
-
type:
|
|
100
|
+
type: feeType ?? FeeType.ExactIn,
|
|
101
101
|
...(orderId ? { orderId } : {}),
|
|
102
102
|
source: {
|
|
103
103
|
chainId: sourceChain.chainId,
|
|
@@ -129,7 +129,7 @@ async function createPayment(params) {
|
|
|
129
129
|
...(webhookUrl ? { webhookUrl } : {}),
|
|
130
130
|
...(webhookSecret ? { webhookSecret } : {}),
|
|
131
131
|
};
|
|
132
|
-
if (apiVersion === "
|
|
132
|
+
if (apiVersion === "v1") {
|
|
133
133
|
paymentData.display.intent = title ?? "Pay";
|
|
134
134
|
paymentData.destination.amountUnits = destination.amountUnits;
|
|
135
135
|
paymentData.destination.destinationAddress = destinationAddress;
|
|
@@ -155,7 +155,7 @@ const getPayment = (paymentId, apiVersion) => {
|
|
|
155
155
|
if (apiVersion) {
|
|
156
156
|
(0, base_1.setApiConfig)({ version: apiVersion });
|
|
157
157
|
}
|
|
158
|
-
if (apiVersion === "
|
|
158
|
+
if (apiVersion === "v1") {
|
|
159
159
|
const isMugglePay = paymentId.includes("mugglepay_order");
|
|
160
160
|
const endpoint = isMugglePay
|
|
161
161
|
? `/payment-api/${paymentId}`
|
package/dist/api/payment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/api/payment.ts"],"names":[],"mappings":";;;AA4UA,sCA+GC;AA3bD,kDAA4D;AAC5D,oCAAwC;AACxC,oCAAyC;AACzC,iCAA0E;AAE1E;;;;GAIG;AACH,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED;;GAEG;AACH,IAAY,aASX;AATD,WAAY,aAAa;IACvB,mDAAkC,CAAA;IAClC,uDAAsC,CAAA;IACtC,mDAAkC,CAAA;IAClC,kEAAiD,CAAA;IACjD,oEAAmD,CAAA;IACnD,qDAAoC,CAAA;IACpC,mDAAkC,CAAA;IAClC,iDAAgC,CAAA;AAClC,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAED;;GAEG;AACH,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,mDAA+B,CAAA;IAC/B,iDAA6B,CAAA;IAC7B,yDAAqC,CAAA;IACrC,mEAA+C,CAAA;IAC/C,yDAAqC,CAAA;IACrC,yDAAqC,CAAA;IACrC,iDAA6B,CAAA;IAC7B,mDAA+B,CAAA;IAC/B,6DAAyC,CAAA;AAC3C,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B;AAyQD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,aAAa,CACjC,MAA8B;IAE9B,MAAM,EACJ,OAAO,EACP,OAAO,EACP,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/api/payment.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.setApiConfig = void 0;
|
|
18
|
+
var base_1 = require("./api/base");
|
|
19
|
+
Object.defineProperty(exports, "setApiConfig", { enumerable: true, get: function () { return base_1.setApiConfig; } });
|
|
17
20
|
__exportStar(require("./api/fee"), exports);
|
|
18
21
|
__exportStar(require("./api/payment"), exports);
|
|
19
22
|
__exportStar(require("./assert"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAA2D;AAAlD,oGAAA,YAAY,OAAA;AACrB,4CAA0B;AAC1B,gDAA8B;AAC9B,2CAAyB;AACzB,iDAA+B;AAC/B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,mDAAiC;AACjC,iDAA+B;AAC/B,4CAA0B;AAC1B,0CAAwB;AACxB,wCAAsB;AACtB,+CAA6B"}
|
package/dist/rozoPay.d.ts
CHANGED
|
@@ -44,11 +44,11 @@ export declare const zBridgeTokenOutOptions: z.ZodArray<z.ZodObject<{
|
|
|
44
44
|
token: z.ZodEffects<z.ZodString, `0x${string}`, string>;
|
|
45
45
|
amount: z.ZodEffects<z.ZodEffects<z.ZodString, `${bigint}`, string>, bigint, string>;
|
|
46
46
|
}, "strip", z.ZodTypeAny, {
|
|
47
|
-
amount: bigint;
|
|
48
47
|
token: `0x${string}`;
|
|
48
|
+
amount: bigint;
|
|
49
49
|
}, {
|
|
50
|
-
amount: string;
|
|
51
50
|
token: string;
|
|
51
|
+
amount: string;
|
|
52
52
|
}>, "many">;
|
|
53
53
|
export type BridgeTokenOutOptions = z.infer<typeof zBridgeTokenOutOptions>;
|
|
54
54
|
export declare const zRozoPayOrderMetadata: z.ZodObject<{
|
package/package.json
CHANGED
package/src/api/base.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface RequestState<T = any> extends ApiResponse<T> {
|
|
|
35
35
|
/**
|
|
36
36
|
* API Version type
|
|
37
37
|
*/
|
|
38
|
-
export type ApiVersion = "
|
|
38
|
+
export type ApiVersion = "v1" | "v2";
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* API Configuration
|
|
@@ -47,11 +47,21 @@ export interface ApiConfig {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
// Default configuration (can be overridden via setApiConfig)
|
|
50
|
-
//
|
|
51
|
-
let apiConfig: ApiConfig = {
|
|
52
|
-
baseUrl:
|
|
53
|
-
apiToken: ROZO_API_TOKEN,
|
|
54
|
-
|
|
50
|
+
// v2 is the default API version
|
|
51
|
+
let apiConfig: Record<ApiVersion, ApiConfig> = {
|
|
52
|
+
v1: { baseUrl: ROZO_API_URL, apiToken: ROZO_API_TOKEN, version: "v1" },
|
|
53
|
+
v2: { baseUrl: NEW_ROZO_API_URL, apiToken: ROZO_API_TOKEN, version: "v2" },
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Current active API version
|
|
57
|
+
let activeVersion: ApiVersion = "v2";
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Gets the current active API configuration
|
|
61
|
+
* @returns Current API configuration
|
|
62
|
+
*/
|
|
63
|
+
export const getApiConfig = (): ApiConfig => {
|
|
64
|
+
return apiConfig[activeVersion];
|
|
55
65
|
};
|
|
56
66
|
|
|
57
67
|
/**
|
|
@@ -59,41 +69,40 @@ let apiConfig: ApiConfig = {
|
|
|
59
69
|
* @param config - Partial API configuration to override defaults
|
|
60
70
|
* @example
|
|
61
71
|
* ```typescript
|
|
62
|
-
* // Use v2 API
|
|
72
|
+
* // Use v2 API (default)
|
|
63
73
|
* setApiConfig({ version: "v2" });
|
|
64
74
|
*
|
|
65
|
-
* // Use
|
|
66
|
-
* setApiConfig({ version: "
|
|
75
|
+
* // Use v1 API
|
|
76
|
+
* setApiConfig({ version: "v1" });
|
|
67
77
|
*
|
|
68
|
-
* // Custom configuration
|
|
78
|
+
* // Custom configuration for a specific version
|
|
69
79
|
* setApiConfig({
|
|
70
80
|
* baseUrl: "https://custom-api.com",
|
|
71
81
|
* apiToken: "custom-token",
|
|
72
|
-
* version: "
|
|
82
|
+
* version: "v2"
|
|
73
83
|
* });
|
|
74
84
|
* ```
|
|
75
85
|
*/
|
|
76
86
|
export const setApiConfig = (config: Partial<ApiConfig>): void => {
|
|
77
87
|
if (config.version) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
activeVersion = config.version;
|
|
89
|
+
|
|
90
|
+
// Update the specific version's config if baseUrl or apiToken provided
|
|
91
|
+
if (config.baseUrl || config.apiToken) {
|
|
92
|
+
apiConfig[activeVersion] = {
|
|
93
|
+
...apiConfig[activeVersion],
|
|
94
|
+
...(config.baseUrl && { baseUrl: config.baseUrl }),
|
|
95
|
+
...(config.apiToken && { apiToken: config.apiToken }),
|
|
96
|
+
};
|
|
82
97
|
}
|
|
98
|
+
} else {
|
|
99
|
+
// Update current active version with provided config
|
|
100
|
+
apiConfig[activeVersion] = {
|
|
101
|
+
...apiConfig[activeVersion],
|
|
102
|
+
...(config.baseUrl && { baseUrl: config.baseUrl }),
|
|
103
|
+
...(config.apiToken && { apiToken: config.apiToken }),
|
|
104
|
+
};
|
|
83
105
|
}
|
|
84
|
-
|
|
85
|
-
apiConfig = {
|
|
86
|
-
...apiConfig,
|
|
87
|
-
...config,
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Gets the current API configuration
|
|
93
|
-
* @returns Current API configuration
|
|
94
|
-
*/
|
|
95
|
-
export const getApiConfig = (): Readonly<ApiConfig> => {
|
|
96
|
-
return { ...apiConfig };
|
|
97
106
|
};
|
|
98
107
|
|
|
99
108
|
/**
|
|
@@ -103,9 +112,10 @@ export const getApiConfig = (): Readonly<ApiConfig> => {
|
|
|
103
112
|
* @returns Full URL with query parameters
|
|
104
113
|
*/
|
|
105
114
|
const createUrl = (url: string, params?: Record<string, string>): string => {
|
|
115
|
+
const config = getApiConfig();
|
|
106
116
|
const fullUrl = url.startsWith("/")
|
|
107
|
-
? `${
|
|
108
|
-
: `${
|
|
117
|
+
? `${config.baseUrl}${url}`
|
|
118
|
+
: `${config.baseUrl}/${url}`;
|
|
109
119
|
|
|
110
120
|
if (!params) return fullUrl;
|
|
111
121
|
|
|
@@ -135,10 +145,11 @@ export const fetchApi = async <T = any>(
|
|
|
135
145
|
try {
|
|
136
146
|
const fullUrl = createUrl(url, params);
|
|
137
147
|
|
|
148
|
+
const config = getApiConfig();
|
|
138
149
|
const requestHeaders: Record<string, string> = {
|
|
139
150
|
"Content-Type": "application/json",
|
|
140
151
|
...headers,
|
|
141
|
-
Authorization: `Bearer ${
|
|
152
|
+
Authorization: `Bearer ${config.apiToken}`,
|
|
142
153
|
};
|
|
143
154
|
|
|
144
155
|
const requestOptions: {
|
package/src/api/fee.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getChainById } from "../chain";
|
|
2
|
-
import { ApiResponse
|
|
2
|
+
import { ApiResponse } from "./base";
|
|
3
|
+
import { FeeType } from "./payment";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Fee response data type (success case)
|
|
@@ -8,10 +9,14 @@ export interface FeeResponseData {
|
|
|
8
9
|
appId: string;
|
|
9
10
|
amount: number;
|
|
10
11
|
currency: string;
|
|
12
|
+
type: string;
|
|
11
13
|
fee: number;
|
|
12
14
|
feePercentage: string;
|
|
13
15
|
minimumFee: string;
|
|
16
|
+
amountIn: number;
|
|
17
|
+
amountOut: number;
|
|
14
18
|
amount_out: number;
|
|
19
|
+
amount_in: number;
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
/**
|
|
@@ -28,12 +33,11 @@ export interface FeeErrorData {
|
|
|
28
33
|
* Fee request parameters
|
|
29
34
|
*/
|
|
30
35
|
export interface GetFeeParams {
|
|
31
|
-
appId
|
|
32
|
-
amount: number;
|
|
33
|
-
toChain: number;
|
|
36
|
+
appId?: string;
|
|
34
37
|
currency?: string;
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
toUnits: string;
|
|
39
|
+
toChain: number;
|
|
40
|
+
type: FeeType;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
/**
|
|
@@ -44,20 +48,18 @@ export interface GetFeeParams {
|
|
|
44
48
|
export const getFee = async (
|
|
45
49
|
params: GetFeeParams
|
|
46
50
|
): Promise<ApiResponse<FeeResponseData>> => {
|
|
47
|
-
const {
|
|
48
|
-
|
|
49
|
-
// Set API version if provided
|
|
50
|
-
if (apiVersion) {
|
|
51
|
-
setApiConfig({ version: apiVersion });
|
|
52
|
-
}
|
|
51
|
+
const { toUnits, appId, currency = "USDC", toChain, type } = params;
|
|
53
52
|
|
|
54
53
|
try {
|
|
55
|
-
const chain = getChainById(toChain);
|
|
54
|
+
const chain = getChainById(Number(toChain));
|
|
56
55
|
const toChainName = chain.name.toLowerCase();
|
|
57
56
|
|
|
58
57
|
const queryParams = new URLSearchParams({
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
...(appId ? { appId } : {}),
|
|
59
|
+
...(type === FeeType.ExactIn
|
|
60
|
+
? { type: "exactIn" }
|
|
61
|
+
: { type: "exactOut" }),
|
|
62
|
+
amount: toUnits,
|
|
61
63
|
currency,
|
|
62
64
|
tochain: toChainName,
|
|
63
65
|
});
|
package/src/api/payment.ts
CHANGED
|
@@ -294,7 +294,7 @@ export interface CreateNewPaymentParams {
|
|
|
294
294
|
/** Order reference ID (for idempotency) */
|
|
295
295
|
orderId?: string;
|
|
296
296
|
/** Fee calculation type (exactIn or exactOut) */
|
|
297
|
-
|
|
297
|
+
feeType?: FeeType;
|
|
298
298
|
/** Webhook URL to receive payment status updates */
|
|
299
299
|
webhookUrl?: string;
|
|
300
300
|
/** Secret for HMAC-SHA256 signature verification */
|
|
@@ -345,7 +345,7 @@ export async function createPayment(
|
|
|
345
345
|
title,
|
|
346
346
|
description,
|
|
347
347
|
orderId,
|
|
348
|
-
|
|
348
|
+
feeType,
|
|
349
349
|
webhookUrl,
|
|
350
350
|
webhookSecret,
|
|
351
351
|
receiverMemo,
|
|
@@ -388,7 +388,7 @@ export async function createPayment(
|
|
|
388
388
|
// Build payment request data matching new backend interface
|
|
389
389
|
const paymentData: CreatePaymentRequest = {
|
|
390
390
|
appId,
|
|
391
|
-
type:
|
|
391
|
+
type: feeType ?? FeeType.ExactIn,
|
|
392
392
|
...(orderId ? { orderId } : {}),
|
|
393
393
|
source: {
|
|
394
394
|
chainId: sourceChain.chainId,
|
|
@@ -421,7 +421,7 @@ export async function createPayment(
|
|
|
421
421
|
...(webhookSecret ? { webhookSecret } : {}),
|
|
422
422
|
};
|
|
423
423
|
|
|
424
|
-
if (apiVersion === "
|
|
424
|
+
if (apiVersion === "v1") {
|
|
425
425
|
paymentData.display.intent = title ?? "Pay";
|
|
426
426
|
paymentData.destination.amountUnits = destination.amountUnits;
|
|
427
427
|
paymentData.destination.destinationAddress = destinationAddress;
|
|
@@ -458,7 +458,7 @@ export const getPayment = (
|
|
|
458
458
|
setApiConfig({ version: apiVersion });
|
|
459
459
|
}
|
|
460
460
|
|
|
461
|
-
if (apiVersion === "
|
|
461
|
+
if (apiVersion === "v1") {
|
|
462
462
|
const isMugglePay = paymentId.includes("mugglepay_order");
|
|
463
463
|
const endpoint = isMugglePay
|
|
464
464
|
? `/payment-api/${paymentId}`
|
package/src/index.ts
CHANGED