@rozoai/intent-pay 0.1.37 → 0.1.38-beta.1
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/build/components/Common/TokenChainLogo/index.d.ts +7 -1
- package/build/components/Spinners/TokenLogoSpinner/index.d.ts +6 -1
- package/build/hooks/useDepositAddressOptions.d.ts +3 -2
- package/build/hooks/usePaymentState.d.ts +11 -5
- package/build/hooks/useRozoPay.d.ts +4 -4
- package/build/hooks/useSolanaPaymentOptions.d.ts +1 -1
- package/build/hooks/useStellarPaymentOptions.d.ts +1 -1
- package/build/hooks/useWalletPaymentOptions.d.ts +12 -7
- package/build/package.json.js +2 -2
- package/build/payment/createPaymentPayload.d.ts +3 -3
- package/build/payment/paymentFsm.d.ts +25 -2
- package/build/provider/PayContext.d.ts +3 -5
- package/build/src/components/Common/AmountInput/index.js +1 -1
- package/build/src/components/Common/AmountInput/index.js.map +1 -1
- package/build/src/components/Common/ConnectorList/index.js +2 -4
- package/build/src/components/Common/ConnectorList/index.js.map +1 -1
- package/build/src/components/Common/TokenChainLogo/index.js +26 -3
- package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/index.js +4 -10
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
- package/build/src/components/Pages/PayWithToken/index.js +15 -4
- package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +6 -17
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js +2 -6
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +64 -26
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js +40 -38
- package/build/src/components/Pages/Stellar/PayWithStellarToken/index.js.map +1 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +110 -33
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
- package/build/src/components/RozoPayModal/index.js +9 -32
- package/build/src/components/RozoPayModal/index.js.map +1 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +5 -2
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
- package/build/src/hooks/useDepositAddressOptions.js +19 -9
- package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
- package/build/src/hooks/usePaymentState.js +193 -72
- package/build/src/hooks/usePaymentState.js.map +1 -1
- package/build/src/hooks/useRozoPay.js +4 -2
- package/build/src/hooks/useRozoPay.js.map +1 -1
- package/build/src/hooks/useSolanaPaymentOptions.js +45 -12
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
- package/build/src/hooks/useStellarPaymentOptions.js +40 -10
- package/build/src/hooks/useStellarPaymentOptions.js.map +1 -1
- package/build/src/hooks/useTokenOptions.js +4 -3
- package/build/src/hooks/useTokenOptions.js.map +1 -1
- package/build/src/hooks/useWalletPaymentOptions.js +54 -21
- package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
- package/build/src/payment/createPaymentPayload.js +38 -13
- package/build/src/payment/createPaymentPayload.js.map +1 -1
- package/build/src/payment/paymentEffects.js +4 -5
- package/build/src/payment/paymentEffects.js.map +1 -1
- package/build/src/payment/paymentFsm.js.map +1 -1
- package/build/src/provider/RozoPayProvider.js +0 -6
- package/build/src/provider/RozoPayProvider.js.map +1 -1
- package/build/src/utils/format.js +82 -13
- package/build/src/utils/format.js.map +1 -1
- package/build/src/utils/token.js +21 -5
- package/build/src/utils/token.js.map +1 -1
- package/build/src/wallets/walletConfigs.js +1 -1
- package/build/src/wallets/walletConfigs.js.map +1 -1
- package/build/utils/format.d.ts +44 -3
- package/build/utils/token.d.ts +6 -2
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatUnits } from 'viem';
|
|
1
|
+
import { formatUnits, parseUnits } from 'viem';
|
|
2
2
|
|
|
3
3
|
const USD_DECIMALS = 2;
|
|
4
4
|
/**
|
|
@@ -80,22 +80,16 @@ function roundTokenAmount(amount, token, round = "down") {
|
|
|
80
80
|
throw new Error(`Invalid amount type: ${typeof amount}`);
|
|
81
81
|
}
|
|
82
82
|
const formattedAmount = formatUnits(amountBigInt, token.decimals);
|
|
83
|
-
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
round);
|
|
87
|
-
}
|
|
88
|
-
/** Strip trailing zeros from a decimal token amount string. e.g. "0.01600" → "0.016" */
|
|
89
|
-
function trimTokenAmount(amount) {
|
|
90
|
-
return String(parseFloat(amount));
|
|
83
|
+
// Use the token's own displayDecimals so small-quantity, high-unit-value
|
|
84
|
+
// tokens render meaningfully: forcing 2 dp shows e.g. 0.00089 ETH as
|
|
85
|
+
// "0.00". Stablecoins keep displayDecimals=2 → "1.00"; natives use 5.
|
|
86
|
+
return roundDecimals(Number(formattedAmount), token.displayDecimals ?? USD_DECIMALS, round);
|
|
91
87
|
}
|
|
92
88
|
/**
|
|
93
89
|
* Round a token amount in units to `displayDecimals` precision
|
|
94
90
|
*/
|
|
95
91
|
function roundTokenAmountUnits(amountUnits, token, round = "down") {
|
|
96
|
-
|
|
97
|
-
// @NOTE: Force 2 decimal places
|
|
98
|
-
return roundDecimals(amountUnits, USD_DECIMALS, round);
|
|
92
|
+
return roundDecimals(amountUnits, token.displayDecimals ?? USD_DECIMALS, round);
|
|
99
93
|
}
|
|
100
94
|
/**
|
|
101
95
|
* Convert a USD amount to a token amount with `displayDecimals` precision
|
|
@@ -120,6 +114,81 @@ function tokenAmountToRoundedUsd(amount, token, round = "nearest") {
|
|
|
120
114
|
const amountUnits = formatUnits(BigInt(amount), token.decimals);
|
|
121
115
|
return roundUsd(Number(amountUnits) * token.usd, round);
|
|
122
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Build a Stellar SEP-0007 `pay` URI that opens a Stellar wallet with the
|
|
119
|
+
* destination, amount, asset, and optional memo pre-filled.
|
|
120
|
+
*
|
|
121
|
+
* Native XLM uses asset_code=XLM with no asset_issuer. Custom assets use the
|
|
122
|
+
* token address (issuer) and token symbol parsed from the Rozo token object.
|
|
123
|
+
*/
|
|
124
|
+
function generateStellarDeepLink({ amountUnits, recipientAddress, token, memo, }) {
|
|
125
|
+
const params = new URLSearchParams();
|
|
126
|
+
params.set("destination", recipientAddress);
|
|
127
|
+
params.set("amount", amountUnits);
|
|
128
|
+
const tokenAddress = token.token;
|
|
129
|
+
let assetCode = token.symbol;
|
|
130
|
+
let assetIssuer;
|
|
131
|
+
if (tokenAddress.toLowerCase() !== "xlm") {
|
|
132
|
+
const parts = tokenAddress.split(":");
|
|
133
|
+
if (parts.length === 2) {
|
|
134
|
+
assetCode = parts[0];
|
|
135
|
+
assetIssuer = parts[1];
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
assetIssuer = tokenAddress;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
params.set("asset_code", assetCode);
|
|
142
|
+
if (assetIssuer) {
|
|
143
|
+
params.set("asset_issuer", assetIssuer);
|
|
144
|
+
}
|
|
145
|
+
if (memo) {
|
|
146
|
+
params.set("memo", memo);
|
|
147
|
+
}
|
|
148
|
+
return `stellar:pay?${params.toString()}`;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Convert a `RozoPayTokenAmount.amount` value to a full-precision, human-readable
|
|
152
|
+
* decimal string suitable for sending to the backend (checkout/create-payment
|
|
153
|
+
* payloads, on-chain transfer amounts, etc).
|
|
154
|
+
*
|
|
155
|
+
* `amount` is documented as `BigIntStr` (integer base units, e.g. lamports/wei)
|
|
156
|
+
* but some endpoints (e.g. Solana tRPC payment options) have been observed to
|
|
157
|
+
* return an already-human-readable decimal string instead (e.g. "0.012985327").
|
|
158
|
+
* `BigInt()` throws on decimal strings, so this detects the shape first:
|
|
159
|
+
* - Contains a "." → already a decimal token amount, pass through as-is.
|
|
160
|
+
* - Otherwise → integer base units, convert via `formatUnits`.
|
|
161
|
+
*/
|
|
162
|
+
function tokenBaseAmountToDecimalString(amount, decimals) {
|
|
163
|
+
if (typeof amount === "string" && amount.includes(".")) {
|
|
164
|
+
return amount;
|
|
165
|
+
}
|
|
166
|
+
return formatUnits(BigInt(amount), decimals);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Inverse of `tokenBaseAmountToDecimalString`: convert a
|
|
170
|
+
* `RozoPayTokenAmount.amount` value to an integer base-units bigint, suitable
|
|
171
|
+
* for on-chain transfer instructions (e.g. lamports for SOL, raw SPL/ERC20
|
|
172
|
+
* transfer amounts).
|
|
173
|
+
*
|
|
174
|
+
* Same shape ambiguity as above — detects a decimal string (already
|
|
175
|
+
* human-readable) and converts it up to base units via `parseUnits`;
|
|
176
|
+
* otherwise assumes the string is already an integer base-units amount.
|
|
177
|
+
*/
|
|
178
|
+
/**
|
|
179
|
+
* Strip trailing zeros from a non-native token amount string for display.
|
|
180
|
+
* "0.0200" → "0.02", "1.5000" → "1.5", "1.0" → "1"
|
|
181
|
+
* Only for display — never use for calculations or on-chain amounts.
|
|
182
|
+
*/
|
|
183
|
+
function trimTokenAmount(amount) {
|
|
184
|
+
return String(parseFloat(amount));
|
|
185
|
+
}
|
|
186
|
+
function tokenAmountToBaseUnits(amount, decimals) {
|
|
187
|
+
if (typeof amount === "string" && amount.includes(".")) {
|
|
188
|
+
return parseUnits(amount, decimals);
|
|
189
|
+
}
|
|
190
|
+
return BigInt(amount);
|
|
191
|
+
}
|
|
123
192
|
|
|
124
|
-
export { USD_DECIMALS, formatUsd, roundDecimals, roundTokenAmount, roundTokenAmountUnits, roundUsd, tokenAmountToRoundedUsd, trimTokenAmount, usdToRoundedTokenAmount };
|
|
193
|
+
export { USD_DECIMALS, formatUsd, generateStellarDeepLink, roundDecimals, roundTokenAmount, roundTokenAmountUnits, roundUsd, tokenAmountToBaseUnits, tokenAmountToRoundedUsd, tokenBaseAmountToDecimalString, trimTokenAmount, usdToRoundedTokenAmount };
|
|
125
194
|
//# sourceMappingURL=format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sources":["../../../src/utils/format.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGO,MAAM,YAAY,GAAG,EAAE;AAE9B;;;;;;;AAOG;SACa,aAAa,CAC3B,KAAa,EACb,QAAgB,EAChB,KAAgC,EAAA;AAEhC,IAAA,MAAM,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC;AAC9B,IAAA,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;AAElC,IAAA,IAAI,OAAe,CAAC;AACpB,IAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjC;AAAM,SAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AAC3B,QAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAClC;SAAM;AACL,QAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,OAAO,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;AAMG;AACG,SAAU,SAAS,CACvB,GAAW,EACX,QAAmC,MAAM,EACzC,OAAO,GAAG,KAAK,EAAA;AAEf,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3C,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACpC,YAAA,KAAK,EAAE,UAAU;YACjB,QAAQ;AACT,SAAA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAClB;AAAC,IAAA,MAAM;AACN,QAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACpC,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAClB;AACH,CAAC;AAED;;AAEG;SACa,QAAQ,CAAC,GAAW,EAAE,QAAmC,MAAM,EAAA;IAC7E,OAAO,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED;;AAEG;AACG,SAAU,gBAAgB,CAC9B,MAA0B,EAC1B,KAAmB,EACnB,QAAmC,MAAM,EAAA;;AAGzC,IAAA,IAAI,YAAoB,CAAC;AACzB,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,YAAY,GAAG,MAAM,CAAC;KACvB;AAAM,SAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;;AAErC,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAEhD,YAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM;AACL,YAAA,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SAC/B;KACF;AAAM,SAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;;QAErC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;KAC3C;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,CAAA,qBAAA,EAAwB,OAAO,MAAM,CAAA,CAAE,CAAC,CAAC;KAC1D;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"format.js","sources":["../../../src/utils/format.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/build/src/utils/token.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { TokenSymbol, supportedTokens } from '@rozoai/intent-common';
|
|
2
|
+
export { isNativeToken } from '@rozoai/intent-common';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Converts preferredSymbol array to preferredTokens array.
|
|
5
|
-
*
|
|
6
|
+
* Explicit preferredSymbol values are respected as given (USDC, USDT, EURC,
|
|
7
|
+
* or native ETH/BNB/POL/SOL/XLM). When neither preferredSymbol nor
|
|
8
|
+
* preferredTokens is provided, defaults to stablecoins plus native tokens
|
|
9
|
+
* so native options aren't silently filtered out of the default request.
|
|
6
10
|
* Finds tokens matching the symbols across supported chains (Base, Polygon, Ethereum, Solana, Stellar).
|
|
7
11
|
*/
|
|
8
12
|
function convertPreferredSymbolsToTokens(symbols, existingPreferredTokens) {
|
|
@@ -11,16 +15,28 @@ function convertPreferredSymbolsToTokens(symbols, existingPreferredTokens) {
|
|
|
11
15
|
if (existingPreferredTokens !== undefined) {
|
|
12
16
|
return existingPreferredTokens.filter((v) => !!v);
|
|
13
17
|
}
|
|
14
|
-
|
|
18
|
+
const nativeSymbols = [
|
|
19
|
+
TokenSymbol.ETH,
|
|
20
|
+
TokenSymbol.BNB,
|
|
21
|
+
TokenSymbol.POL,
|
|
22
|
+
TokenSymbol.SOL,
|
|
23
|
+
TokenSymbol.XLM,
|
|
24
|
+
];
|
|
25
|
+
// If no preferredSymbol provided, default to stablecoins plus native tokens
|
|
15
26
|
const symbolsToUse = symbols && symbols.length > 0
|
|
16
27
|
? symbols
|
|
17
|
-
: [TokenSymbol.USDC, TokenSymbol.USDT];
|
|
28
|
+
: [TokenSymbol.USDC, TokenSymbol.USDT, ...nativeSymbols];
|
|
18
29
|
// Validate that only allowed symbols are used
|
|
19
|
-
const allowedSymbols = [
|
|
30
|
+
const allowedSymbols = [
|
|
31
|
+
TokenSymbol.USDC,
|
|
32
|
+
TokenSymbol.USDT,
|
|
33
|
+
TokenSymbol.EURC,
|
|
34
|
+
...nativeSymbols,
|
|
35
|
+
];
|
|
20
36
|
const validSymbols = symbolsToUse.filter((s) => allowedSymbols.includes(s));
|
|
21
37
|
const invalidSymbols = symbolsToUse.filter((s) => !allowedSymbols.includes(s));
|
|
22
38
|
if (invalidSymbols.length > 0) {
|
|
23
|
-
console.warn(`[RozoPay] Invalid preferredSymbol values: ${invalidSymbols.join(", ")}.
|
|
39
|
+
console.warn(`[RozoPay] Invalid preferredSymbol values: ${invalidSymbols.join(", ")}. Allowed: ${allowedSymbols.join(", ")}.`);
|
|
24
40
|
}
|
|
25
41
|
if (validSymbols.length === 0) {
|
|
26
42
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sources":["../../../src/utils/token.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.js","sources":["../../../src/utils/token.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;;;;;AAOG;AACa,SAAA,+BAA+B,CAC7C,OAAkC,EAClC,uBAA4C,EAAA;;;AAI5C,IAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACnD;AAED,IAAA,MAAM,aAAa,GAAG;AACpB,QAAA,WAAW,CAAC,GAAG;AACf,QAAA,WAAW,CAAC,GAAG;AACf,QAAA,WAAW,CAAC,GAAG;AACf,QAAA,WAAW,CAAC,GAAG;AACf,QAAA,WAAW,CAAC,GAAG;KAChB,CAAC;;IAGF,MAAM,YAAY,GAChB,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;AAC3B,UAAE,OAAO;AACT,UAAE,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC;;AAG7D,IAAA,MAAM,cAAc,GAAG;AACrB,QAAA,WAAW,CAAC,IAAI;AAChB,QAAA,WAAW,CAAC,IAAI;AAChB,QAAA,WAAW,CAAC,IAAI;AAChB,QAAA,GAAG,aAAa;KACjB,CAAC;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAA,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnC,CAAC;AAEF,IAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,QAAA,OAAO,CAAC,IAAI,CACV,6CAA6C,cAAc,CAAC,IAAI,CAC9D,IAAI,CACL,CAAc,WAAA,EAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAC5C,CAAC;KACH;AAED,IAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,QAAA,OAAO,SAAS,CAAC;KAClB;;IAGD,MAAM,MAAM,GAAY,EAAE,CAAC;AAC3B,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;;IAGxC,KAAK,MAAM,WAAW,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE;AAClD,QAAA,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;YAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAqB,CAAC,EAAE;AAC9C,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;KACF;AAED,IAAA,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;AAChD;;;;"}
|
|
@@ -115,7 +115,7 @@ const walletConfigs = {
|
|
|
115
115
|
brave: "https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",
|
|
116
116
|
edge: "https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",
|
|
117
117
|
},
|
|
118
|
-
showInMobileConnectors:
|
|
118
|
+
showInMobileConnectors: false,
|
|
119
119
|
deeplinkScheme: "metamask://",
|
|
120
120
|
getRozoPayDeeplink: ({ payId, ref, appId, customDeeplink, }) => {
|
|
121
121
|
const rozoPayUrl = customDeeplink ?? getRozoPayUrl(payId, appId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletConfigs.js","sources":["../../../src/wallets/walletConfigs.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"walletConfigs.js","sources":["../../../src/wallets/walletConfigs.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
package/build/utils/format.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BigIntStr, RozoPayToken } from "@rozoai/intent-common";
|
|
1
|
+
import { BigIntStr, RozoPayToken, type Token } from "@rozoai/intent-common";
|
|
2
2
|
export declare const USD_DECIMALS = 2;
|
|
3
3
|
/**
|
|
4
4
|
* Round a number to a given number of decimal places
|
|
@@ -25,8 +25,6 @@ export declare function roundUsd(usd: number, round?: "up" | "down" | "nearest")
|
|
|
25
25
|
* Round a token amount to `displayDecimals` precision
|
|
26
26
|
*/
|
|
27
27
|
export declare function roundTokenAmount(amount: bigint | BigIntStr, token: RozoPayToken, round?: "up" | "down" | "nearest"): string;
|
|
28
|
-
/** Strip trailing zeros from a decimal token amount string. e.g. "0.01600" → "0.016" */
|
|
29
|
-
export declare function trimTokenAmount(amount: string): string;
|
|
30
28
|
/**
|
|
31
29
|
* Round a token amount in units to `displayDecimals` precision
|
|
32
30
|
*/
|
|
@@ -49,3 +47,46 @@ export declare function usdToRoundedTokenAmount(usd: number, token: RozoPayToken
|
|
|
49
47
|
* @returns The formatted USD amount
|
|
50
48
|
*/
|
|
51
49
|
export declare function tokenAmountToRoundedUsd(amount: bigint | BigIntStr, token: RozoPayToken, round?: "up" | "down" | "nearest"): string;
|
|
50
|
+
/**
|
|
51
|
+
* Build a Stellar SEP-0007 `pay` URI that opens a Stellar wallet with the
|
|
52
|
+
* destination, amount, asset, and optional memo pre-filled.
|
|
53
|
+
*
|
|
54
|
+
* Native XLM uses asset_code=XLM with no asset_issuer. Custom assets use the
|
|
55
|
+
* token address (issuer) and token symbol parsed from the Rozo token object.
|
|
56
|
+
*/
|
|
57
|
+
export declare function generateStellarDeepLink({ amountUnits, recipientAddress, token, memo, }: {
|
|
58
|
+
amountUnits: string;
|
|
59
|
+
recipientAddress: string;
|
|
60
|
+
token: Token;
|
|
61
|
+
memo?: string | null;
|
|
62
|
+
}): string;
|
|
63
|
+
/**
|
|
64
|
+
* Convert a `RozoPayTokenAmount.amount` value to a full-precision, human-readable
|
|
65
|
+
* decimal string suitable for sending to the backend (checkout/create-payment
|
|
66
|
+
* payloads, on-chain transfer amounts, etc).
|
|
67
|
+
*
|
|
68
|
+
* `amount` is documented as `BigIntStr` (integer base units, e.g. lamports/wei)
|
|
69
|
+
* but some endpoints (e.g. Solana tRPC payment options) have been observed to
|
|
70
|
+
* return an already-human-readable decimal string instead (e.g. "0.012985327").
|
|
71
|
+
* `BigInt()` throws on decimal strings, so this detects the shape first:
|
|
72
|
+
* - Contains a "." → already a decimal token amount, pass through as-is.
|
|
73
|
+
* - Otherwise → integer base units, convert via `formatUnits`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function tokenBaseAmountToDecimalString(amount: bigint | string, decimals: number): string;
|
|
76
|
+
/**
|
|
77
|
+
* Inverse of `tokenBaseAmountToDecimalString`: convert a
|
|
78
|
+
* `RozoPayTokenAmount.amount` value to an integer base-units bigint, suitable
|
|
79
|
+
* for on-chain transfer instructions (e.g. lamports for SOL, raw SPL/ERC20
|
|
80
|
+
* transfer amounts).
|
|
81
|
+
*
|
|
82
|
+
* Same shape ambiguity as above — detects a decimal string (already
|
|
83
|
+
* human-readable) and converts it up to base units via `parseUnits`;
|
|
84
|
+
* otherwise assumes the string is already an integer base-units amount.
|
|
85
|
+
*/
|
|
86
|
+
/**
|
|
87
|
+
* Strip trailing zeros from a non-native token amount string for display.
|
|
88
|
+
* "0.0200" → "0.02", "1.5000" → "1.5", "1.0" → "1"
|
|
89
|
+
* Only for display — never use for calculations or on-chain amounts.
|
|
90
|
+
*/
|
|
91
|
+
export declare function trimTokenAmount(amount: string): string;
|
|
92
|
+
export declare function tokenAmountToBaseUnits(amount: bigint | BigIntStr, decimals: number): bigint;
|
package/build/utils/token.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { Token, TokenSymbol } from "@rozoai/intent-common";
|
|
1
|
+
import { isNativeToken, Token, TokenSymbol } from "@rozoai/intent-common";
|
|
2
|
+
export { isNativeToken };
|
|
2
3
|
/**
|
|
3
4
|
* Converts preferredSymbol array to preferredTokens array.
|
|
4
|
-
*
|
|
5
|
+
* Explicit preferredSymbol values are respected as given (USDC, USDT, EURC,
|
|
6
|
+
* or native ETH/BNB/POL/SOL/XLM). When neither preferredSymbol nor
|
|
7
|
+
* preferredTokens is provided, defaults to stablecoins plus native tokens
|
|
8
|
+
* so native options aren't silently filtered out of the default request.
|
|
5
9
|
* Finds tokens matching the symbols across supported chains (Base, Polygon, Ethereum, Solana, Stellar).
|
|
6
10
|
*/
|
|
7
11
|
export declare function convertPreferredSymbolsToTokens(symbols: TokenSymbol[] | undefined, existingPreferredTokens: Token[] | undefined): Token[] | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rozoai/intent-pay",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.38-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.",
|
|
6
6
|
"keywords": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@reown/appkit": "^1.7.0",
|
|
49
49
|
"@rollup/plugin-image": "^3.0.3",
|
|
50
50
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
51
|
-
"@rozoai/intent-common": "
|
|
51
|
+
"@rozoai/intent-common": "workspace:*",
|
|
52
52
|
"@solana/spl-memo": "^0.2.5",
|
|
53
53
|
"@solana/spl-token": "^0.4.14",
|
|
54
54
|
"@solana/wallet-adapter-base": "^0.9.27",
|