@cromix-dev/payment-component 0.0.2 → 0.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPayment.d.ts","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,KAAK,EAGV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,CACf,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CA0XpB"}
1
+ {"version":3,"file":"CryptoPayment.d.ts","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAiBrC,OAAO,KAAK,EAGV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,CACf,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CA0iBpB"}
@@ -1,9 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
2
+ import { useState, useEffect, useCallback } from "react";
3
3
  import { useAccount, useWalletClient, usePublicClient, useSwitchChain, useDisconnect, } from "wagmi";
4
4
  import { useAppKit } from "@reown/appkit/react";
5
+ import { erc20Abi, maxUint256 } from "viem";
6
+ import { mainnet } from "viem/chains";
5
7
  import { Decimal } from "decimal.js";
6
- import { PaymentRouterAbi } from "@cromix-dev/evm";
8
+ import { PaymentRouterAbi, ETH, mainnetUSDTAbi, USDT_ADDRESSES, } from "@cromix-dev/evm";
9
+ /** Check if token address represents native coin (ETH) using ERC-7528 standard */
10
+ const isNativeToken = (tokenAddress) => tokenAddress.toLowerCase() === ETH.toLowerCase();
11
+ /** Check if token is the non-standard Ethereum mainnet USDT */
12
+ const isMainnetUSDT = (chainId, tokenAddress) => chainId === mainnet.id &&
13
+ tokenAddress.toLowerCase() === USDT_ADDRESSES[mainnet.id].toLowerCase();
7
14
  export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePayment, onGetSignature, onSuccess, onCancel, }) {
8
15
  const { address, chain: currentChain, isConnected } = useAccount();
9
16
  const { data: walletClient } = useWalletClient();
@@ -15,6 +22,8 @@ export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePaymen
15
22
  const [selectedPaymentSetting, setSelectedPaymentSetting] = useState(null);
16
23
  const [status, setStatus] = useState("idle");
17
24
  const [error, setError] = useState(null);
25
+ const [needsApproval, setNeedsApproval] = useState(null);
26
+ const [currentAllowance, setCurrentAllowance] = useState(0n);
18
27
  const getPaymentRouterByChainId = (chainId) => {
19
28
  return (paymentConfig.paymentRouters.find((router) => router.chainId === chainId) || null);
20
29
  };
@@ -43,15 +52,69 @@ export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePaymen
43
52
  const isCorrectNetwork = targetChainId
44
53
  ? currentChain?.id === targetChainId
45
54
  : false;
55
+ /** Check current allowance for ERC20 tokens */
56
+ const checkAllowance = useCallback(async () => {
57
+ if (!selectedPaymentSetting ||
58
+ !selectedPaymentRouter ||
59
+ !publicClient ||
60
+ !address) {
61
+ return;
62
+ }
63
+ // Check if wallet is on the correct network before making RPC calls
64
+ const requiredChainId = parseInt(selectedPaymentSetting.chainId);
65
+ if (currentChain?.id !== requiredChainId) {
66
+ // Wrong network - can't check allowance yet, reset state
67
+ setNeedsApproval(null);
68
+ setCurrentAllowance(0n);
69
+ return;
70
+ }
71
+ // Native tokens don't need approval
72
+ if (isNativeToken(selectedPaymentSetting.tokenAddress)) {
73
+ setNeedsApproval(false);
74
+ setCurrentAllowance(0n);
75
+ return;
76
+ }
77
+ try {
78
+ setStatus("checking_allowance");
79
+ const allowance = await publicClient.readContract({
80
+ address: selectedPaymentSetting.tokenAddress,
81
+ abi: erc20Abi,
82
+ functionName: "allowance",
83
+ args: [address, selectedPaymentRouter.address],
84
+ });
85
+ setCurrentAllowance(allowance);
86
+ // If allowance is 0, user needs to approve first
87
+ setNeedsApproval(allowance === 0n);
88
+ setStatus("idle");
89
+ }
90
+ catch (err) {
91
+ console.error("Failed to check allowance:", err);
92
+ // Assume approval needed if we can't check
93
+ setNeedsApproval(true);
94
+ setStatus("idle");
95
+ }
96
+ }, [
97
+ selectedPaymentSetting,
98
+ selectedPaymentRouter,
99
+ publicClient,
100
+ address,
101
+ currentChain,
102
+ ]);
103
+ // Check allowance when payment setting is selected or network changes (for ERC20 tokens)
104
+ useEffect(() => {
105
+ if (selectedPaymentSetting && selectedPaymentRouter && address) {
106
+ checkAllowance();
107
+ }
108
+ else {
109
+ setNeedsApproval(null);
110
+ setCurrentAllowance(0n);
111
+ }
112
+ }, [selectedPaymentSetting, selectedPaymentRouter, address, checkAllowance]);
46
113
  const handleConnectWallet = () => {
47
114
  open();
48
115
  };
49
116
  const handleChainIdSelect = (chainId) => {
50
117
  setSelectedChainId(chainId);
51
- const settings = getPaymentSettingsByChainId(chainId);
52
- if (settings.length > 0) {
53
- setSelectedPaymentSetting(settings[0]);
54
- }
55
118
  };
56
119
  const handleSwitchNetwork = async () => {
57
120
  if (!targetChainId)
@@ -68,9 +131,67 @@ export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePaymen
68
131
  setStatus("idle");
69
132
  }
70
133
  };
134
+ /** Handle ERC20 token approval with special handling for mainnet USDT */
135
+ const handleApprove = async () => {
136
+ if (!address ||
137
+ !walletClient ||
138
+ !publicClient ||
139
+ !selectedPaymentSetting ||
140
+ !selectedPaymentRouter ||
141
+ !targetChainId) {
142
+ return;
143
+ }
144
+ if (!isCorrectNetwork) {
145
+ setError(`Please switch to Chain ID ${targetChainId}`);
146
+ return;
147
+ }
148
+ const tokenAddress = selectedPaymentSetting.tokenAddress;
149
+ const spender = selectedPaymentRouter.address;
150
+ const isUSDT = isMainnetUSDT(targetChainId, tokenAddress);
151
+ try {
152
+ setError(null);
153
+ setStatus("approving");
154
+ // For mainnet USDT: if there's existing allowance, must revoke first
155
+ if (isUSDT && currentAllowance > 0n) {
156
+ console.log("Revoking existing USDT allowance...");
157
+ const { request: revokeRequest } = await publicClient.simulateContract({
158
+ account: address,
159
+ address: tokenAddress,
160
+ abi: mainnetUSDTAbi,
161
+ functionName: "approve",
162
+ args: [spender, 0n],
163
+ });
164
+ const revokeHash = await walletClient.writeContract(revokeRequest);
165
+ await publicClient.waitForTransactionReceipt({ hash: revokeHash });
166
+ console.log("Revoke complete:", revokeHash);
167
+ }
168
+ // Approve max amount (common pattern for good UX)
169
+ const approveAbi = isUSDT ? mainnetUSDTAbi : erc20Abi;
170
+ console.log("Approving token...", { tokenAddress, spender, isUSDT });
171
+ const { request: approveRequest } = await publicClient.simulateContract({
172
+ account: address,
173
+ address: tokenAddress,
174
+ abi: approveAbi,
175
+ functionName: "approve",
176
+ args: [spender, maxUint256],
177
+ });
178
+ const approveHash = await walletClient.writeContract(approveRequest);
179
+ console.log("Approval transaction sent:", approveHash);
180
+ await publicClient.waitForTransactionReceipt({ hash: approveHash });
181
+ console.log("Approval confirmed");
182
+ // Re-check allowance after approval
183
+ await checkAllowance();
184
+ }
185
+ catch (err) {
186
+ console.error("Approval error:", err);
187
+ setError(err instanceof Error ? err.message : "Approval failed");
188
+ setStatus("idle");
189
+ }
190
+ };
71
191
  const handlePay = async () => {
72
192
  if (!address ||
73
193
  !walletClient ||
194
+ !publicClient ||
74
195
  !selectedPaymentSetting ||
75
196
  !selectedPaymentRouter)
76
197
  return;
@@ -95,25 +216,52 @@ export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePaymen
95
216
  const signatureResponse = await onGetSignature(createdPaymentId);
96
217
  const { signature, paymentData } = signatureResponse;
97
218
  setStatus("sending");
219
+ const isNative = isNativeToken(paymentData.erc20);
98
220
  console.log("Sending transaction:", {
99
221
  paymentId: createdPaymentId,
100
222
  paymentRouter: selectedPaymentRouter.address,
101
223
  paymentData,
224
+ isNative,
102
225
  });
103
- // Send transaction to PaymentRouter contract
104
- const hash = await walletClient.writeContract({
105
- address: selectedPaymentRouter.address,
106
- abi: PaymentRouterAbi,
107
- functionName: "payETH",
108
- args: [
109
- BigInt(paymentData.id),
110
- paymentData.receiver,
111
- BigInt(paymentData.feeRate),
112
- BigInt(paymentData.expirationTimestamp),
113
- signature,
114
- ],
115
- value: BigInt(paymentData.amount),
116
- });
226
+ // Simulate then send transaction to PaymentRouter contract
227
+ let hash;
228
+ if (isNative) {
229
+ // Native coin (ETH): use payETH with value
230
+ const { request } = await publicClient.simulateContract({
231
+ account: address,
232
+ address: selectedPaymentRouter.address,
233
+ abi: PaymentRouterAbi,
234
+ functionName: "payETH",
235
+ args: [
236
+ BigInt(paymentData.id),
237
+ paymentData.receiver,
238
+ BigInt(paymentData.feeRate),
239
+ BigInt(paymentData.expirationTimestamp),
240
+ signature,
241
+ ],
242
+ value: BigInt(paymentData.amount),
243
+ });
244
+ hash = await walletClient.writeContract(request);
245
+ }
246
+ else {
247
+ // ERC20 token: use payERC20 without value
248
+ const { request } = await publicClient.simulateContract({
249
+ account: address,
250
+ address: selectedPaymentRouter.address,
251
+ abi: PaymentRouterAbi,
252
+ functionName: "payERC20",
253
+ args: [
254
+ BigInt(paymentData.id),
255
+ paymentData.erc20,
256
+ paymentData.receiver,
257
+ BigInt(paymentData.amount),
258
+ BigInt(paymentData.feeRate),
259
+ BigInt(paymentData.expirationTimestamp),
260
+ signature,
261
+ ],
262
+ });
263
+ hash = await walletClient.writeContract(request);
264
+ }
117
265
  console.log("Transaction sent:", hash);
118
266
  setStatus("confirming");
119
267
  // Wait for confirmation
@@ -140,11 +288,16 @@ export default function CryptoPayment({ usdAmount, paymentConfig, onCreatePaymen
140
288
  }) })] })), isConnected && selectedChainId && !selectedPaymentSetting && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center mb-3", children: [_jsx("button", { onClick: () => {
141
289
  setSelectedChainId(null);
142
290
  setSelectedPaymentSetting(null);
143
- }, className: "text-blue-400 hover:text-blue-300 mr-3", children: "\u2190 Back" }), _jsxs("h5", { className: "font-semibold text-white", children: ["Select Token (Chain ID ", selectedChainId, ")"] })] }), _jsx("div", { className: "grid grid-cols-2 gap-3", children: availablePaymentSettings.map((setting) => (_jsxs("button", { onClick: () => setSelectedPaymentSetting(setting), className: "p-4 border-2 border-gray-600 rounded-lg hover:border-blue-500 hover:bg-gray-700 text-left transition", children: [_jsx("div", { className: "font-semibold text-white", children: setting.tokenSymbol }), _jsx("div", { className: "text-sm text-gray-400", children: setting.tokenName })] }, setting.id))) })] })), isConnected && selectedPaymentSetting && selectedPaymentRouter && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "bg-gray-700 p-4 rounded-lg border border-gray-600", children: [_jsx("h4", { className: "font-semibold mb-2 text-white", children: "Payment Details" }), _jsxs("div", { className: "space-y-1 text-sm text-gray-300", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Amount:" }), _jsxs("span", { className: "text-white", children: ["$", new Decimal(usdAmount).toFixed(2), " USD"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Chain ID:" }), _jsx("span", { className: "text-white", children: selectedPaymentSetting.chainId })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Token:" }), _jsx("span", { className: "text-white", children: selectedPaymentSetting.tokenSymbol })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Receiver:" }), _jsxs("span", { className: "font-mono text-xs text-white", children: [selectedPaymentSetting.receiver.slice(0, 10), "..."] })] })] })] }), !isCorrectNetwork && currentChain && (_jsxs("div", { className: "bg-yellow-900 bg-opacity-30 border border-yellow-700 p-3 rounded", children: [_jsx("div", { className: "text-sm mb-2 text-yellow-300 font-semibold", children: "\u26A0\uFE0F Wrong Network" }), _jsxs("div", { className: "text-sm mb-3 text-yellow-200", children: ["Current: Chain ID ", currentChain.id, _jsx("br", {}), "Required: Chain ID ", targetChainId] }), _jsx("button", { onClick: handleSwitchNetwork, disabled: status === "switching", className: "w-full bg-yellow-600 text-white py-2 rounded hover:bg-yellow-700 disabled:opacity-50 transition", children: status === "switching" ? "Switching..." : "Switch Network" })] })), isCorrectNetwork && (_jsxs("div", { className: "bg-green-900 bg-opacity-30 border border-green-700 p-2 rounded text-sm text-green-300", children: ["\u2713 Connected to Chain ID ", targetChainId] })), error && (_jsx("div", { className: "bg-red-900 bg-opacity-30 border border-red-700 p-3 rounded text-red-300 text-sm", children: error })), status !== "idle" && (_jsxs("div", { className: "bg-blue-900 bg-opacity-30 border border-blue-700 p-3 rounded text-sm text-blue-300", children: [status === "switching" && "Switching network...", status === "creating" && "Creating payment...", status === "signing" && "Getting signature...", status === "sending" && "Sending transaction...", status === "confirming" && "Confirming...", status === "success" && "✓ Payment successful!"] })), _jsxs("div", { className: "flex gap-3", children: [_jsx("button", { onClick: () => {
291
+ }, className: "text-blue-400 hover:text-blue-300 mr-3", children: "\u2190 Back" }), _jsxs("h5", { className: "font-semibold text-white", children: ["Select Token (Chain ID ", selectedChainId, ")"] })] }), _jsx("div", { className: "grid grid-cols-2 gap-3", children: availablePaymentSettings.map((setting) => (_jsxs("button", { onClick: () => setSelectedPaymentSetting(setting), className: "p-4 border-2 border-gray-600 rounded-lg hover:border-blue-500 hover:bg-gray-700 text-left transition", children: [_jsx("div", { className: "font-semibold text-white", children: setting.tokenSymbol }), _jsx("div", { className: "text-sm text-gray-400", children: setting.tokenName })] }, setting.id))) })] })), isConnected && selectedPaymentSetting && selectedPaymentRouter && (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "bg-gray-700 p-4 rounded-lg border border-gray-600", children: [_jsx("h4", { className: "font-semibold mb-2 text-white", children: "Payment Details" }), _jsxs("div", { className: "space-y-1 text-sm text-gray-300", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Amount:" }), _jsxs("span", { className: "text-white", children: ["$", new Decimal(usdAmount).toFixed(2), " USD"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Chain ID:" }), _jsx("span", { className: "text-white", children: selectedPaymentSetting.chainId })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Token:" }), _jsx("span", { className: "text-white", children: selectedPaymentSetting.tokenSymbol })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { children: "Receiver:" }), _jsxs("span", { className: "font-mono text-xs text-white", children: [selectedPaymentSetting.receiver.slice(0, 10), "..."] })] })] })] }), !isCorrectNetwork && currentChain && (_jsxs("div", { className: "bg-yellow-900 bg-opacity-30 border border-yellow-700 p-3 rounded", children: [_jsx("div", { className: "text-sm mb-2 text-yellow-300 font-semibold", children: "\u26A0\uFE0F Wrong Network" }), _jsxs("div", { className: "text-sm mb-3 text-yellow-200", children: ["Current: Chain ID ", currentChain.id, _jsx("br", {}), "Required: Chain ID ", targetChainId] }), _jsx("button", { onClick: handleSwitchNetwork, disabled: status === "switching", className: "w-full bg-yellow-600 text-white py-2 rounded hover:bg-yellow-700 disabled:opacity-50 transition", children: status === "switching" ? "Switching..." : "Switch Network" })] })), isCorrectNetwork && (_jsxs("div", { className: "bg-green-900 bg-opacity-30 border border-green-700 p-2 rounded text-sm text-green-300", children: ["\u2713 Connected to Chain ID ", targetChainId] })), error && (_jsx("div", { className: "bg-red-900 bg-opacity-30 border border-red-700 p-3 rounded text-red-300 text-sm", children: error })), status !== "idle" && (_jsxs("div", { className: "bg-blue-900 bg-opacity-30 border border-blue-700 p-3 rounded text-sm text-blue-300", children: [status === "switching" && "Switching network...", status === "checking_allowance" && "Checking allowance...", status === "approving" && "Approving token...", status === "creating" && "Creating payment...", status === "signing" && "Getting signature...", status === "sending" && "Sending transaction...", status === "confirming" && "Confirming...", status === "success" && "✓ Payment successful!"] })), _jsxs("div", { className: "flex gap-3", children: [_jsx("button", { onClick: () => {
144
292
  setSelectedChainId(null);
145
293
  setSelectedPaymentSetting(null);
146
- }, disabled: status !== "idle", className: "flex-1 bg-gray-600 text-white py-3 rounded hover:bg-gray-700 disabled:opacity-50 transition", children: "Back" }), _jsx("button", { onClick: handlePay, disabled: status !== "idle" || !address || !isCorrectNetwork, className: "flex-1 bg-blue-600 text-white py-3 rounded hover:bg-blue-700 disabled:opacity-50 font-semibold transition", children: status === "idle"
294
+ }, disabled: status !== "idle", className: "flex-1 bg-gray-600 text-white py-3 rounded hover:bg-gray-700 disabled:opacity-50 transition", children: "Back" }), needsApproval ? (_jsx("button", { onClick: handleApprove, disabled: status !== "idle" || !address || !isCorrectNetwork, className: "flex-1 bg-orange-600 text-white py-3 rounded hover:bg-orange-700 disabled:opacity-50 font-semibold transition", children: status === "idle"
295
+ ? `Approve ${selectedPaymentSetting.tokenSymbol}`
296
+ : "Processing..." })) : (_jsx("button", { onClick: handlePay, disabled: status !== "idle" ||
297
+ !address ||
298
+ !isCorrectNetwork ||
299
+ needsApproval === null, className: "flex-1 bg-blue-600 text-white py-3 rounded hover:bg-blue-700 disabled:opacity-50 font-semibold transition", children: status === "idle"
147
300
  ? `Pay ${selectedPaymentSetting.tokenSymbol}`
148
- : "Processing..." })] })] })), _jsx("div", { className: "border-t border-gray-600 pt-4", children: _jsx("button", { onClick: onCancel, disabled: status !== "idle", className: "w-full bg-gray-600 text-white py-2 rounded hover:bg-gray-700 disabled:opacity-50 transition", children: "Cancel Payment" }) })] }));
301
+ : "Processing..." }))] })] })), _jsx("div", { className: "border-t border-gray-600 pt-4", children: _jsx("button", { onClick: onCancel, disabled: status !== "idle", className: "w-full bg-gray-600 text-white py-2 rounded hover:bg-gray-700 disabled:opacity-50 transition", children: "Cancel Payment" }) })] }));
149
302
  }
150
303
  //# sourceMappingURL=CryptoPayment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoPayment.js","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoPayment.js","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { Config } from "wagmi";
1
+ import { AppKitOptions } from "@reown/appkit/react";
2
2
  interface PaymentProviderProps {
3
- wagmiConfig: Config;
3
+ projectId: string;
4
+ metadata: AppKitOptions["metadata"];
5
+ includeTestnets?: boolean;
4
6
  children: React.ReactNode;
5
7
  }
6
- export default function PaymentProvider({ wagmiConfig, children, }: PaymentProviderProps): import("react/jsx-runtime").JSX.Element;
8
+ export default function PaymentProvider({ projectId, metadata, includeTestnets, children, }: PaymentProviderProps): import("react/jsx-runtime").JSX.Element;
7
9
  export {};
8
10
  //# sourceMappingURL=PaymentProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/PaymentProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,MAAM,OAAO,CAAC;AAI9C,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,WAAW,EACX,QAAQ,GACT,EAAE,oBAAoB,2CAMtB"}
1
+ {"version":3,"file":"PaymentProvider.d.ts","sourceRoot":"","sources":["../../../src/components/PaymentProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAgB,MAAM,qBAAqB,CAAC;AAgClE,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,QAAQ,GACT,EAAE,oBAAoB,2CAwCtB"}
@@ -1,8 +1,51 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
3
  import { WagmiProvider } from "wagmi";
4
+ import { useRef, useEffect } from "react";
5
+ import { createAppKit } from "@reown/appkit/react";
6
+ import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
7
+ import { anvil, arbitrum, arbitrumSepolia, base, baseSepolia, bsc, bscTestnet, kaia, kairos, mainnet, polygon, polygonAmoy, sepolia, } from "viem/chains";
8
+ const DEFAULT_MAINNETS = [mainnet, arbitrum, base, bsc, polygon, kaia];
9
+ const DEFAULT_TESTNETS = [
10
+ anvil,
11
+ sepolia,
12
+ arbitrumSepolia,
13
+ baseSepolia,
14
+ bscTestnet,
15
+ polygonAmoy,
16
+ kairos,
17
+ ];
4
18
  const queryClient = new QueryClient();
5
- export default function PaymentProvider({ wagmiConfig, children, }) {
6
- return (_jsx(WagmiProvider, { config: wagmiConfig, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
19
+ export default function PaymentProvider({ projectId, metadata, includeTestnets = false, children, }) {
20
+ const adapterRef = useRef(null);
21
+ const chainsRef = useRef(null);
22
+ const appKitInitializedRef = useRef(false);
23
+ // Create WagmiAdapter once (works on both server and client due to ssr: true)
24
+ if (!adapterRef.current) {
25
+ chainsRef.current = [
26
+ ...DEFAULT_MAINNETS,
27
+ ...(includeTestnets ? DEFAULT_TESTNETS : []),
28
+ ];
29
+ adapterRef.current = new WagmiAdapter({
30
+ networks: chainsRef.current,
31
+ projectId,
32
+ ssr: true,
33
+ });
34
+ }
35
+ // Create AppKit singleton on client only (useEffect never runs on server)
36
+ useEffect(() => {
37
+ if (!appKitInitializedRef.current &&
38
+ adapterRef.current &&
39
+ chainsRef.current) {
40
+ createAppKit({
41
+ adapters: [adapterRef.current],
42
+ networks: chainsRef.current,
43
+ projectId,
44
+ metadata,
45
+ });
46
+ appKitInitializedRef.current = true;
47
+ }
48
+ }, []);
49
+ return (_jsx(WagmiProvider, { config: adapterRef.current.wagmiConfig, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
7
50
  }
8
51
  //# sourceMappingURL=PaymentProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentProvider.js","sourceRoot":"","sources":["../../../src/components/PaymentProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAU,aAAa,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAOtC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,WAAW,EACX,QAAQ,GACa;IACrB,OAAO,CACL,KAAC,aAAa,IAAC,MAAM,EAAE,WAAW,YAChC,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,GAAuB,GAC5D,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PaymentProvider.js","sourceRoot":"","sources":["../../../src/components/PaymentProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EACL,KAAK,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,WAAW,EACX,GAAG,EACH,UAAU,EACV,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAU,CAAC;AAChF,MAAM,gBAAgB,GAAG;IACvB,KAAK;IACL,OAAO;IACP,eAAe;IACf,WAAW;IACX,UAAU;IACV,WAAW;IACX,MAAM;CACE,CAAC;AAEX,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAStC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,SAAS,EACT,QAAQ,EACR,eAAe,GAAG,KAAK,EACvB,QAAQ,GACa;IACrB,MAAM,UAAU,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACxD,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,SAAS,CAAC,OAAO,GAAG;YAClB,GAAG,gBAAgB;YACnB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;QACF,UAAU,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC;YACpC,QAAQ,EAAE,SAAS,CAAC,OAAc;YAClC,SAAS;YACT,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,SAAS,CAAC,GAAG,EAAE;QACb,IACE,CAAC,oBAAoB,CAAC,OAAO;YAC7B,UAAU,CAAC,OAAO;YAClB,SAAS,CAAC,OAAO,EACjB,CAAC;YACD,YAAY,CAAC;gBACX,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC9B,QAAQ,EAAE,SAAS,CAAC,OAAc;gBAClC,SAAS;gBACT,QAAQ;aACT,CAAC,CAAC;YACH,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,aAAa,IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,YACnD,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,GAAuB,GAC5D,CACjB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export type * from "./types/index.js";
2
- export { createPaymentWalletConfig } from "./libs/payment-wallet.js";
3
2
  export { default as PaymentProvider } from "./components/PaymentProvider.js";
4
3
  export { default as CryptoPayment } from "./components/CryptoPayment.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kBAAkB,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export { createPaymentWalletConfig } from "./libs/payment-wallet.js";
2
1
  export { default as PaymentProvider } from "./components/PaymentProvider.js";
3
2
  export { default as CryptoPayment } from "./components/CryptoPayment.js";
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cromix-dev/payment-component",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -24,9 +24,9 @@
24
24
  "decimal.js": "^10.6.0",
25
25
  "react": "^19.1.0",
26
26
  "react-dom": "^19.1.0",
27
- "viem": "^2.37.6",
27
+ "viem": "^2.38.5",
28
28
  "wagmi": "^2.17.0",
29
- "@cromix-dev/evm": "0.0.2"
29
+ "@cromix-dev/evm": "0.0.3"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@eslint/eslintrc": "^3",
@@ -1,10 +0,0 @@
1
- import { AppKitOptions } from "@reown/appkit/react";
2
- export declare function createPaymentWalletConfig(config: {
3
- projectId: string;
4
- metadata: AppKitOptions["metadata"];
5
- includeTestnets?: boolean;
6
- }): {
7
- wagmiConfig: import("wagmi").Config;
8
- appKit: import("@reown/appkit/react").AppKit;
9
- };
10
- //# sourceMappingURL=payment-wallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payment-wallet.d.ts","sourceRoot":"","sources":["../../../src/libs/payment-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,qBAAqB,CAAC;AAelE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;EAwBA"}
@@ -1,28 +0,0 @@
1
- import { createAppKit } from "@reown/appkit/react";
2
- import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
3
- import { mainnet, sepolia, polygon, polygonAmoy, bsc, bscTestnet, anvil, } from "viem/chains";
4
- const DEFAULT_TESTNETS = [anvil, sepolia, polygonAmoy, bscTestnet];
5
- const DEFAULT_MAINNETS = [mainnet, polygon, bsc];
6
- export function createPaymentWalletConfig(config) {
7
- const { projectId, metadata, includeTestnets } = config;
8
- const chains = [
9
- ...DEFAULT_MAINNETS,
10
- ...(includeTestnets ? DEFAULT_TESTNETS : []),
11
- ];
12
- const wagmiAdapter = new WagmiAdapter({
13
- networks: chains,
14
- projectId,
15
- ssr: true,
16
- });
17
- const appKit = createAppKit({
18
- adapters: [wagmiAdapter],
19
- networks: chains,
20
- projectId,
21
- metadata,
22
- });
23
- return {
24
- wagmiConfig: wagmiAdapter.wagmiConfig,
25
- appKit,
26
- };
27
- }
28
- //# sourceMappingURL=payment-wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payment-wallet.js","sourceRoot":"","sources":["../../../src/libs/payment-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,GAAG,EACH,UAAU,EACV,KAAK,GACN,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAC5E,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAU,CAAC;AAE1D,MAAM,UAAU,yBAAyB,CAAC,MAIzC;IACC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG;QACb,GAAG,gBAAgB;QACnB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;IAEX,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,QAAQ,EAAE,MAAa;QACvB,SAAS;QACT,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,QAAQ,EAAE,MAAa;QACvB,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,MAAM;KACP,CAAC;AACJ,CAAC"}