@cromix-dev/payment-component 0.0.3 → 0.0.5
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/src/components/CryptoPayment.d.ts.map +1 -1
- package/dist/src/components/CryptoPayment.js +176 -23
- package/dist/src/components/CryptoPayment.js.map +1 -1
- package/dist/src/components/PaymentProvider.d.ts +5 -3
- package/dist/src/components/PaymentProvider.d.ts.map +1 -1
- package/dist/src/components/PaymentProvider.js +56 -2
- package/dist/src/components/PaymentProvider.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/src/libs/payment-wallet.d.ts +0 -10
- package/dist/src/libs/payment-wallet.d.ts.map +0 -1
- package/dist/src/libs/payment-wallet.js +0 -28
- package/dist/src/libs/payment-wallet.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoPayment.d.ts","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CryptoPayment.d.ts","sourceRoot":"","sources":["../../../src/components/CryptoPayment.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAOrC,OAAO,KAAK,EAGV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAW3B,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
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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:
|
|
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 {
|
|
1
|
+
import { AppKitOptions } from "@reown/appkit/react";
|
|
2
2
|
interface PaymentProviderProps {
|
|
3
|
-
|
|
3
|
+
projectId: string;
|
|
4
|
+
metadata: AppKitOptions["metadata"];
|
|
5
|
+
includeTestnets?: boolean;
|
|
4
6
|
children: React.ReactNode;
|
|
5
7
|
}
|
|
6
|
-
export default function PaymentProvider({
|
|
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":"
|
|
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,2CAmDtB"}
|
|
@@ -1,8 +1,62 @@
|
|
|
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({
|
|
6
|
-
|
|
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
|
+
featuredWalletIds: [
|
|
46
|
+
"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96", // metamask
|
|
47
|
+
"18388be9ac2d02726dbac9777c96efaac06d744b2f6d580fccdd4127a6d01fd1", // rabby
|
|
48
|
+
"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4", // binance
|
|
49
|
+
"971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709", // okx
|
|
50
|
+
"fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa", // coinbase
|
|
51
|
+
],
|
|
52
|
+
features: {
|
|
53
|
+
email: false,
|
|
54
|
+
socials: false,
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
appKitInitializedRef.current = true;
|
|
58
|
+
}
|
|
59
|
+
}, []);
|
|
60
|
+
return (_jsx(WagmiProvider, { config: adapterRef.current.wagmiConfig, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
|
|
7
61
|
}
|
|
8
62
|
//# 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,
|
|
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;gBACR,iBAAiB,EAAE;oBACjB,kEAAkE,EAAE,WAAW;oBAC/E,kEAAkE,EAAE,QAAQ;oBAC5E,kEAAkE,EAAE,UAAU;oBAC9E,kEAAkE,EAAE,MAAM;oBAC1E,kEAAkE,EAAE,WAAW;iBAChF;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,KAAK;iBACf;aACF,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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,kBAAkB,CAAC;AACtC,OAAO,EAAE,
|
|
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
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
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.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"decimal.js": "^10.6.0",
|
|
25
25
|
"react": "^19.1.0",
|
|
26
26
|
"react-dom": "^19.1.0",
|
|
27
|
-
"viem": "^2.
|
|
27
|
+
"viem": "^2.38.5",
|
|
28
28
|
"wagmi": "^2.17.0",
|
|
29
29
|
"@cromix-dev/evm": "0.0.3"
|
|
30
30
|
},
|
|
@@ -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"}
|