@cromix-dev/payment-component 0.0.11 → 0.0.13
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 → components}/CryptoPayment.d.ts +6 -1
- package/dist/components/CryptoPayment.d.ts.map +1 -0
- package/dist/components/CryptoPayment.js +753 -0
- package/dist/components/CryptoPayment.js.map +1 -0
- package/dist/components/PaymentProvider.d.ts.map +1 -0
- package/dist/components/PaymentProvider.js +69 -0
- package/dist/components/PaymentProvider.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/styles/Crypto.css.d.ts +37 -0
- package/dist/styles/Crypto.css.d.ts.map +1 -0
- package/dist/styles/Crypto.css.js +339 -0
- package/dist/styles/Crypto.css.js.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +13 -4
- package/dist/src/components/CryptoPayment.d.ts.map +0 -1
- package/dist/src/components/CryptoPayment.js +0 -260
- package/dist/src/components/CryptoPayment.js.map +0 -1
- package/dist/src/components/PaymentProvider.d.ts.map +0 -1
- package/dist/src/components/PaymentProvider.js +0 -62
- package/dist/src/components/PaymentProvider.js.map +0 -1
- package/dist/src/index.d.ts +0 -4
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -3
- package/dist/src/index.js.map +0 -1
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- /package/dist/{src/components → components}/PaymentProvider.d.ts +0 -0
- /package/dist/{src/types → types}/index.d.ts +0 -0
- /package/dist/{src/types → types}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CryptoPayment.js","names":["useState","useEffect","useCallback","useRef","useMemo","useAccount","useWalletClient","usePublicClient","useSwitchChain","useDisconnect","useChains","useBalance","useReadContract","useEstimateFeesPerGas","useAppKit","mainnet","erc20Abi","formatUnits","maxUint256","toast","PaymentRouterAbi","ETH","mainnetUSDTAbi","USDT_ADDRESSES","styles","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","isNativeCoin","tokenAddress","toLowerCase","isMainnetUSDT","chainId","id","CryptoPayment","paymentConfig","usdAmount","onEstimateTokenAmount","onCreatePayment","onGetSignature","onSuccess","onCancel","address","chain","isConnected","publicClient","data","walletClient","switchChain","disconnect","open","chains","estimatedTokenAmount","setEstimatedTokenAmount","status","setStatus","selectedPaymentRouter","setSelectedPaymentRouter","selectedPaymentSetting","setSelectedPaymentSetting","needsApproval","setNeedsApproval","currentAllowance","setCurrentAllowance","error","setError","availableNetworks","paymentSettings","filter","s","tokenSymbol","balance","isSupported","isLoading","useTokenBalance","decimals","tokenDecimals","Number","estimatedFeesPerGas","undefined","query","enabled","Boolean","estimatedFee","maxFeePerGas","gasPrice","estimatedGas","nativeCoinSymbol","find","c","nativeCurrency","symbol","linkPre","document","createElement","href","rel","head","appendChild","link","removeChild","length","firstToken","fetchEstimatedTokenAmount","paymentSetting","selectedRouter","paymentRouters","router","success","className","walletConnectSuccess","children","slice","containerId","getNetworkName","name","handleSwitch","Promise","res","setTimeout","handleConnectWallet","checkAllowance","parseInt","allowance","readContract","abi","functionName","args","err","console","handleSwitchNetwork","Error","message","handleApprove","request","revokeRequest","simulateContract","account","revokeHash","writeContract","waitForTransactionReceipt","hash","approveRequest","approveHash","handlePay","createdPaymentId","toString","sender","paymentData","signature","erc20","BigInt","receiver","feeRate","expirationTimestamp","value","amount","debug","receipt","overlay","wrapper","style","height","wallet","walletInput","walletLink","cursor","onClick","UnLinkSVG","LinkSVG","walletAddress","switchBtn","closeBtn","CloseLargeSVG","paymentWrapper","paymentTitle","Dropdown","type","active","Math","round","items","Array","from","Map","map","item","values","onSelect","paymentAmountWrapper","paymentAmount","paymentAmountTotal","chevronDownLarge","ChevronDownLargeSVG","summaryWrapper","summaryItemWrapper","marginBottom","summaryItemTitle","summaryItemValue","fontSize","summaryTotal","connectWallet","disabled","switchNetworkButton","payButton","fontFamily","fontWeight","backgroundColor","color","token","evmWallet","isErc20","evmNative","evmErc20","raw","lists","setLists","setOpen","search","setSearch","ref","handleClickOutside","e","current","contains","target","addEventListener","removeEventListener","trim","handleSearch","q","includes","iconSrc","tokenIcon","chainIcon","altText","tokenName","paymentTokenNetworkWrapper","paymentTokenNetwork","dropdownItem","paddingLeft","paddingRight","icon24","src","alt","dropdownItemMiddle","dropdownItemText","dropdownItemBalance","chevronDown","transform","ChevronDownSVG","dropdownWrapper","display","dropdownSearch","placeholder","dropdownInput","onChange","onKeyDown","key","SearchSVG","dropdownItemWrapper","maxHeight","index","width","viewBox","fill","xmlns","d","stroke","opacity"],"sources":["../../src/components/CryptoPayment.tsx"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from \"react\";\nimport {\n useAccount,\n useWalletClient,\n usePublicClient,\n useSwitchChain,\n useDisconnect,\n useChains,\n useBalance,\n useReadContract,\n useEstimateFeesPerGas,\n} from \"wagmi\";\nimport { useAppKit } from \"@reown/appkit/react\";\nimport { mainnet } from \"@reown/appkit/networks\";\nimport {\n type Address,\n type Hex,\n Chain,\n erc20Abi,\n formatUnits,\n maxUint256,\n} from \"viem\";\nimport { Decimal } from \"decimal.js\";\nimport { toast } from \"react-toastify\";\nimport {\n PaymentRouterAbi,\n ETH,\n mainnetUSDTAbi,\n USDT_ADDRESSES,\n} from \"@cromix-dev/evm\";\nimport {\n type PaymentRouter,\n type PaymentSetting,\n type PaymentConfig,\n type CreatePaymentRequest,\n type CreatePaymentResponse,\n type GetSignatureResponse,\n} from \"../types/index.js\";\nimport * as styles from \"../styles/Crypto.css.js\";\n\n// checkers for native coins\nconst isNativeCoin = (tokenAddress: string): boolean =>\n tokenAddress.toLowerCase() === ETH.toLowerCase();\n\n// checkers for non-standard ERC20 tokens\nconst isMainnetUSDT = (chainId: number, tokenAddress: string): boolean =>\n chainId === mainnet.id &&\n tokenAddress.toLowerCase() === USDT_ADDRESSES[mainnet.id].toLowerCase();\n\ninterface CryptoPaymentProps {\n paymentConfig: PaymentConfig;\n usdAmount: Decimal.Value;\n onEstimateTokenAmount: (\n usdAmount: number,\n token: { chainId: string; tokenSymbol: string; tokenAddress: string },\n ) => Promise<number>;\n onCreatePayment: (\n request: CreatePaymentRequest,\n ) => Promise<CreatePaymentResponse>;\n onGetSignature: (id: string) => Promise<GetSignatureResponse>;\n onSuccess: (id: string) => void;\n onCancel: () => void;\n}\n\nexport default function CryptoPayment({\n paymentConfig,\n usdAmount,\n onEstimateTokenAmount,\n onCreatePayment,\n onGetSignature,\n onSuccess,\n onCancel,\n}: CryptoPaymentProps) {\n const { address, chain, isConnected } = useAccount();\n const publicClient = usePublicClient();\n const { data: walletClient } = useWalletClient();\n const { switchChain } = useSwitchChain();\n const { disconnect } = useDisconnect();\n const { open } = useAppKit();\n const chains = useChains();\n\n const [estimatedTokenAmount, setEstimatedTokenAmount] = useState(0);\n\n const [status, setStatus] = useState<\n | \"idle\"\n | \"switching\"\n | \"checking_allowance\"\n | \"approving\"\n | \"creating\"\n | \"signing\"\n | \"sending\"\n | \"confirming\"\n | \"success\"\n >(\"idle\");\n const [selectedPaymentRouter, setSelectedPaymentRouter] =\n useState<PaymentRouter | null>(null);\n const [selectedPaymentSetting, setSelectedPaymentSetting] =\n useState<PaymentSetting | null>(null);\n const [needsApproval, setNeedsApproval] = useState<boolean | null>(null);\n const [currentAllowance, setCurrentAllowance] = useState<bigint>(0n);\n const [error, setError] = useState<string | null>(null);\n\n const availableNetworks = useMemo(() => {\n if (!selectedPaymentSetting) return [];\n return paymentConfig.paymentSettings.filter(\n (s) => s.tokenSymbol === selectedPaymentSetting.tokenSymbol,\n );\n }, [paymentConfig.paymentSettings, selectedPaymentSetting]);\n\n const { balance, isSupported, isLoading } = useTokenBalance(\n {\n tokenAddress: selectedPaymentSetting?.tokenAddress as string,\n decimals: selectedPaymentSetting?.tokenDecimals as number,\n chainId: Number(selectedPaymentSetting?.chainId as string),\n },\n address,\n );\n\n const { data: estimatedFeesPerGas } = useEstimateFeesPerGas({\n chainId: selectedPaymentSetting\n ? Number(selectedPaymentSetting.chainId)\n : undefined,\n query: {\n enabled: Boolean(selectedPaymentSetting?.chainId),\n },\n });\n\n const estimatedFee = useMemo(() => {\n if (!estimatedFeesPerGas) return \"0\";\n const maxFeePerGas =\n estimatedFeesPerGas.maxFeePerGas ?? estimatedFeesPerGas.gasPrice;\n if (!maxFeePerGas) return \"0\";\n const estimatedGas = 21000n;\n return formatUnits(estimatedGas * maxFeePerGas, 18);\n }, [estimatedFeesPerGas]);\n\n const nativeCoinSymbol = useMemo(() => {\n if (!selectedPaymentSetting) return \"\";\n const chain = chains.find(\n (c) => c.id === Number(selectedPaymentSetting.chainId),\n );\n return chain?.nativeCurrency?.symbol ?? \"ETH\";\n }, [selectedPaymentSetting, chains]);\n\n useEffect(() => {\n const linkPre = document.createElement(\"link\");\n linkPre.href =\n \"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.6/dist/web/static/pretendard-dynamic-subset.css\";\n linkPre.rel = \"stylesheet\";\n document.head.appendChild(linkPre);\n\n const link = document.createElement(\"link\");\n link.href =\n \"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@600&family=Inter:opsz,wght@14..32,500&display=swap\";\n link.rel = \"stylesheet\";\n document.head.appendChild(link);\n\n return () => {\n document.head.removeChild(linkPre);\n document.head.removeChild(link);\n };\n }, []);\n\n useEffect(() => {\n if (paymentConfig.paymentSettings.length === 0) {\n setSelectedPaymentSetting(null);\n return;\n }\n const firstToken = paymentConfig.paymentSettings[0];\n setSelectedPaymentSetting(firstToken);\n }, [paymentConfig]);\n\n useEffect(() => {\n if (!selectedPaymentSetting) return;\n\n async function fetchEstimatedTokenAmount(paymentSetting: PaymentSetting) {\n const estimatedTokenAmount = await onEstimateTokenAmount(\n Number(usdAmount),\n {\n chainId: paymentSetting.chainId,\n tokenSymbol: paymentSetting.tokenSymbol,\n tokenAddress: paymentSetting.tokenAddress,\n },\n );\n setEstimatedTokenAmount(estimatedTokenAmount);\n }\n\n fetchEstimatedTokenAmount(selectedPaymentSetting);\n }, [selectedPaymentSetting, onEstimateTokenAmount, usdAmount]);\n\n useEffect(() => {\n if (!selectedPaymentSetting) {\n setSelectedPaymentRouter(null);\n return;\n }\n const selectedRouter = paymentConfig.paymentRouters.find(\n (router) => router.chainId === selectedPaymentSetting.chainId,\n );\n setSelectedPaymentRouter(selectedRouter ?? null);\n }, [selectedPaymentSetting, paymentConfig.paymentRouters]);\n\n useEffect(() => {\n if (isConnected && address) {\n toast.success(\n <div className={styles.walletConnectSuccess}>\n Connected to Wallet {address.slice(0, 5)}...{address.slice(-5)}\n </div>,\n { containerId: \"payment-component\" },\n );\n }\n }, [isConnected, address]);\n\n const getNetworkName = (chainId: string) => {\n const chain = chains.find((c) => c.id === Number(chainId));\n\n return chain ? chain.name : chainId;\n };\n\n const handleSwitch = async () => {\n disconnect();\n await new Promise((res) => setTimeout(res, 500));\n open();\n };\n\n const handleConnectWallet = () => {\n open();\n };\n\n const checkAllowance = useCallback(async () => {\n if (\n !isConnected ||\n !address ||\n !chain ||\n !publicClient ||\n !selectedPaymentRouter ||\n !selectedPaymentSetting ||\n chain.id !== parseInt(selectedPaymentSetting.chainId)\n ) {\n setNeedsApproval(null);\n setCurrentAllowance(0n);\n return;\n }\n if (isNativeCoin(selectedPaymentSetting.tokenAddress)) {\n setNeedsApproval(false);\n setCurrentAllowance(0n);\n return;\n }\n\n try {\n setStatus(\"checking_allowance\");\n const allowance = await publicClient.readContract({\n address: selectedPaymentSetting.tokenAddress as Address,\n abi: erc20Abi,\n functionName: \"allowance\",\n args: [address, selectedPaymentRouter.address as Address],\n });\n setNeedsApproval(allowance === 0n);\n setCurrentAllowance(allowance);\n setStatus(\"idle\");\n } catch (err) {\n console.error(\"Failed to check allowance:\", err);\n setNeedsApproval(true);\n setCurrentAllowance(0n);\n setStatus(\"idle\");\n }\n }, [\n isConnected,\n address,\n chain,\n publicClient,\n selectedPaymentRouter,\n selectedPaymentSetting,\n ]);\n\n useEffect(() => {\n checkAllowance();\n }, [checkAllowance]);\n\n const handleSwitchNetwork = () => {\n if (!isConnected) return;\n if (!selectedPaymentRouter) return;\n\n setError(null);\n try {\n setStatus(\"switching\");\n switchChain({ chainId: parseInt(selectedPaymentRouter.chainId) });\n setStatus(\"idle\");\n } catch (err) {\n console.error(\"Failed to switch network:\", err);\n setError(err instanceof Error ? err.message : \"Failed to switch network\");\n setStatus(\"idle\");\n }\n };\n\n const handleApprove = async () => {\n if (!isConnected) return;\n if (!address) return;\n if (!chain) return;\n if (!publicClient) return;\n if (!walletClient) return;\n if (!selectedPaymentRouter) return;\n if (!selectedPaymentSetting) return;\n if (chain.id !== parseInt(selectedPaymentRouter.chainId)) {\n setError(`Please switch to Chain ID ${selectedPaymentRouter.chainId}`);\n return;\n }\n\n // setError(null);\n try {\n setStatus(\"approving\");\n // if the token is ethereum USDT, then revoke existing allowance first\n if (\n isMainnetUSDT(chain.id, selectedPaymentSetting.tokenAddress) &&\n currentAllowance > 0n\n ) {\n const { request: revokeRequest } = await publicClient.simulateContract({\n account: address,\n address: selectedPaymentSetting.tokenAddress as Address,\n abi: mainnetUSDTAbi,\n functionName: \"approve\",\n args: [selectedPaymentRouter.address as Address, 0n],\n });\n const revokeHash = await walletClient.writeContract(revokeRequest);\n await publicClient.waitForTransactionReceipt({ hash: revokeHash });\n }\n\n // approve infinite\n const { request: approveRequest } = await publicClient.simulateContract({\n account: address,\n address: selectedPaymentSetting.tokenAddress as Address,\n abi: isMainnetUSDT(chain.id, selectedPaymentSetting.tokenAddress)\n ? mainnetUSDTAbi\n : erc20Abi,\n functionName: \"approve\",\n args: [selectedPaymentRouter.address as Address, maxUint256],\n });\n const approveHash = await walletClient.writeContract(approveRequest);\n await publicClient.waitForTransactionReceipt({ hash: approveHash });\n // re-check allowance after approval\n await checkAllowance();\n setStatus(\"idle\");\n } catch (err) {\n console.error(\"Failed to approve token:\", err);\n toast.error(\n `Approval failed. Please ensure your wallet has enough ${selectedPaymentSetting.tokenSymbol} to complete payment and ${chains.find((c) => c.id === chain.id)?.nativeCurrency?.symbol ?? \"native coin\"} to cover gas fees.`,\n { containerId: \"payment-component\" },\n );\n setStatus(\"idle\");\n }\n };\n\n const handlePay = async () => {\n if (!isConnected) return;\n if (!address) return;\n if (!chain) return;\n if (!publicClient) return;\n if (!walletClient) return;\n if (!selectedPaymentRouter) return;\n if (!selectedPaymentSetting) return;\n if (chain.id !== parseInt(selectedPaymentSetting.chainId)) {\n setError(`Please switch to Chain ID ${selectedPaymentRouter.chainId}`);\n return;\n }\n\n // setError(null);\n try {\n setStatus(\"creating\");\n // Create payment via merchant's API\n const { id: createdPaymentId } = await onCreatePayment({\n usdAmount: usdAmount.toString(),\n chainId: selectedPaymentSetting.chainId,\n tokenAddress: selectedPaymentSetting.tokenAddress,\n sender: address,\n });\n\n setStatus(\"signing\");\n // Get signature from merchant's API\n const { paymentData, signature } = await onGetSignature(createdPaymentId);\n\n setStatus(\"sending\");\n // Send transaction to PaymentRouter contract\n let hash: Hex;\n if (isNativeCoin(paymentData.erc20)) {\n const { request } = await publicClient.simulateContract({\n account: address,\n address: selectedPaymentRouter.address as Address,\n abi: PaymentRouterAbi,\n functionName: \"payETH\",\n args: [\n BigInt(paymentData.id),\n paymentData.receiver as Address,\n BigInt(paymentData.feeRate),\n BigInt(paymentData.expirationTimestamp),\n signature as Hex,\n ],\n value: BigInt(paymentData.amount),\n });\n hash = await walletClient.writeContract(request);\n } else {\n const { request } = await publicClient.simulateContract({\n account: address,\n address: selectedPaymentRouter.address as Address,\n abi: PaymentRouterAbi,\n functionName: \"payERC20\",\n args: [\n BigInt(paymentData.id),\n paymentData.erc20 as Address,\n paymentData.receiver as Address,\n BigInt(paymentData.amount),\n BigInt(paymentData.feeRate),\n BigInt(paymentData.expirationTimestamp),\n signature as Hex,\n ],\n });\n hash = await walletClient.writeContract(request);\n }\n console.debug(\"Payment transaction sent:\", hash);\n\n setStatus(\"confirming\");\n // Confirm payment transaction\n const receipt = await publicClient.waitForTransactionReceipt({ hash });\n if (!receipt) {\n throw new Error(\"Transaction receipt not found\");\n }\n console.debug(\"Payment transaction confirmed:\", receipt);\n\n setStatus(\"success\");\n // Call onSuccess callback\n onSuccess(createdPaymentId);\n } catch (err) {\n console.error(\"Failed to process payment:\", err);\n toast.error(\n `Payment failed. Please ensure your wallet has enough ${selectedPaymentSetting.tokenSymbol} to complete payment and ${chains.find((c) => c.id === chain.id)?.nativeCurrency?.symbol ?? \"native coin\"} to cover gas fees.`,\n { containerId: \"payment-component\" },\n );\n setStatus(\"idle\");\n }\n };\n\n return (\n <div className={styles.overlay}>\n <div\n className={styles.wrapper}\n style={{\n height: isConnected ? \"570px\" : \"575px\",\n }}\n >\n <div className={styles.wallet}>\n <div className={styles.walletInput}>\n <div\n className={styles.walletLink}\n style={{\n cursor: isConnected ? \"pointer\" : \"default\",\n }}\n onClick={() => (isConnected ? disconnect() : undefined)}\n >\n {isConnected ? <UnLinkSVG /> : <LinkSVG />}\n </div>\n <div className={styles.walletAddress}>\n {address\n ? `${address.slice(0, 5)}...${address.slice(-5)}`\n : \"Wallet Not Connected\"}\n </div>\n {isConnected && (\n <div className={styles.switchBtn} onClick={handleSwitch}>\n Switch\n </div>\n )}\n </div>\n <div className={styles.closeBtn} onClick={onCancel}>\n <CloseLargeSVG />\n </div>\n </div>\n\n <div className={styles.paymentWrapper}>\n <h4 className={styles.paymentTitle}>Select Payment Currency</h4>\n <Dropdown\n type=\"token\"\n chains={chains}\n active={selectedPaymentSetting}\n balance={Math.round(Number(balance)).toString()}\n items={Array.from(\n new Map(\n paymentConfig.paymentSettings.map((item) => [\n item.tokenSymbol,\n item,\n ]),\n ).values(),\n )}\n onSelect={(item) => setSelectedPaymentSetting(item)}\n />\n <Dropdown\n type=\"network\"\n chains={chains}\n active={selectedPaymentSetting}\n balance={`${estimatedFee} ${nativeCoinSymbol}`}\n items={availableNetworks}\n onSelect={(item) => setSelectedPaymentSetting(item)}\n />\n <div className={styles.paymentAmountWrapper}>\n <p className={styles.paymentAmount}>Payment amount</p>\n <p className={styles.paymentAmountTotal}>{`${usdAmount} $`}</p>\n </div>\n </div>\n <div className={styles.chevronDownLarge}>\n <ChevronDownLargeSVG />\n </div>\n <div className={styles.summaryWrapper}>\n <div\n className={styles.summaryItemWrapper}\n style={{ marginBottom: \"4px\" }}\n >\n <p className={styles.summaryItemTitle}>Token</p>\n <p className={styles.summaryItemValue}>\n {selectedPaymentSetting?.tokenSymbol}\n </p>\n </div>\n <div\n className={styles.summaryItemWrapper}\n style={{ marginBottom: \"12px\" }}\n >\n <p className={styles.summaryItemTitle}>Network</p>\n <p className={styles.summaryItemValue}>\n {getNetworkName(selectedPaymentSetting?.chainId as string)}\n </p>\n </div>\n <div className={styles.summaryItemWrapper}>\n <p className={styles.summaryItemValue} style={{ fontSize: \"14px\" }}>\n Amount\n </p>\n <p className={styles.summaryTotal}>\n {estimatedTokenAmount} {selectedPaymentSetting?.tokenSymbol}\n </p>\n </div>\n </div>\n\n {/* Payment Execution */}\n {/* {isConnected && selectedPaymentRouter && selectedPaymentSetting && (\n <div className=\"space-y-4\">\n {status !== \"idle\" && (\n <div className=\"bg-blue-900 bg-opacity-30 border border-blue-700 p-3 rounded text-sm text-blue-300\">\n {status === \"switching\" && \"Switching network...\"}\n {status === \"checking_allowance\" && \"Checking allowance...\"}\n {status === \"approving\" && \"Approving token...\"}\n {status === \"creating\" && \"Creating payment...\"}\n {status === \"signing\" && \"Getting signature...\"}\n {status === \"sending\" && \"Sending transaction...\"}\n {status === \"confirming\" && \"Confirming...\"}\n {status === \"success\" && \"✓ Payment successful!\"}\n </div>\n )}\n\n <div className=\"flex gap-3\">\n <button\n onClick={() => {\n setSelectedPaymentRouter(null);\n setSelectedPaymentSetting(null);\n }}\n disabled={status !== \"idle\"}\n className=\"flex-1 bg-gray-600 text-white py-3 rounded hover:bg-gray-700 disabled:opacity-50 transition\"\n >\n Back\n </button>\n {needsApproval ? (\n <button\n onClick={handleApprove}\n disabled={\n status !== \"idle\" ||\n !address ||\n !chain ||\n chain.id !== parseInt(selectedPaymentRouter.chainId)\n }\n className=\"flex-1 bg-orange-600 text-white py-3 rounded hover:bg-orange-700 disabled:opacity-50 font-semibold transition\"\n >\n {status === \"idle\"\n ? `Approve ${selectedPaymentSetting.tokenSymbol}`\n : \"Processing...\"}\n </button>\n ) : (\n <button\n onClick={handlePay}\n disabled={\n status !== \"idle\" ||\n !address ||\n !chain ||\n chain.id !== parseInt(selectedPaymentRouter.chainId) ||\n needsApproval === null\n }\n className=\"flex-1 bg-blue-600 text-white py-3 rounded hover:bg-blue-700 disabled:opacity-50 font-semibold transition\"\n >\n {status === \"idle\"\n ? `Pay ${selectedPaymentSetting.tokenSymbol}`\n : \"Processing...\"}\n </button>\n )}\n </div>\n </div>\n )} */}\n\n {/* Connect To Wallet */}\n {!isConnected && (\n <button\n className={styles.connectWallet}\n onClick={handleConnectWallet}\n disabled={status !== \"idle\"}\n >\n Wallet Connect\n </button>\n )}\n\n {isConnected && selectedPaymentRouter && selectedPaymentSetting && (\n <>\n {chain && chain.id !== parseInt(selectedPaymentRouter.chainId) && (\n <button\n onClick={handleSwitchNetwork}\n disabled={status === \"switching\"}\n className={styles.switchNetworkButton}\n >\n {status === \"switching\" ? \"Switching...\" : \"Switch Network\"}\n </button>\n )}\n\n {/* Payment */}\n {chain && chain.id === parseInt(selectedPaymentRouter.chainId) && (\n <>\n {needsApproval ? (\n <button\n onClick={handleApprove}\n disabled={\n status !== \"idle\" ||\n !address ||\n !chain ||\n chain.id !== parseInt(selectedPaymentRouter.chainId)\n }\n className={styles.payButton}\n style={{\n fontFamily: '\"Inter\", sans-serif',\n fontWeight: \"500\",\n backgroundColor: \"#646464\",\n color: \"#FFFFFF\",\n }}\n >\n {status === \"idle\" ? \"Approve\" : \"Processing...\"}\n </button>\n ) : (\n <button\n onClick={handlePay}\n disabled={\n status !== \"idle\" ||\n !address ||\n !chain ||\n chain.id !== parseInt(selectedPaymentRouter.chainId)\n // || needsApproval === null\n }\n className={styles.payButton}\n style={{\n fontFamily: '\"IBM Plex Mono\", monospace',\n fontWeight: \"600\",\n backgroundColor: \"#FFED2B\",\n color: \"#000000\",\n }}\n >\n {status === \"idle\" ? \"Pay\" : \"Processing...\"}\n </button>\n )}\n </>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n\nconst useTokenBalance = (\n token: {\n tokenAddress: `0x${string}` | string;\n decimals: number;\n chainId: number;\n },\n evmWallet?: `0x${string}`,\n) => {\n const isErc20 =\n Boolean(token.tokenAddress) && !isNativeCoin(token.tokenAddress);\n\n // Native balance\n const evmNative = useBalance({\n address: evmWallet,\n chainId: token.chainId,\n query: {\n enabled: !isErc20 && Boolean(evmWallet),\n },\n });\n\n // ERC-20 balance\n const evmErc20 = useReadContract({\n address: isErc20 ? (token.tokenAddress as `0x${string}`) : undefined,\n abi: erc20Abi,\n functionName: \"balanceOf\",\n args: evmWallet ? [evmWallet] : undefined,\n chainId: token.chainId,\n query: {\n enabled: isErc20 && Boolean(evmWallet),\n },\n });\n\n const isLoading = isErc20 ? evmErc20.isLoading : evmNative.isLoading;\n\n const raw = isErc20 ? (evmErc20.data ?? 0n) : (evmNative.data?.value ?? 0n);\n\n return {\n isSupported: Boolean(token),\n isLoading: isLoading,\n balance: formatUnits(raw, token.decimals),\n };\n};\n\nconst Dropdown = ({\n type,\n chains,\n active,\n items,\n balance,\n onSelect,\n}: {\n type: \"token\" | \"network\";\n chains: readonly [Chain, ...Chain[]];\n active: PaymentSetting | null;\n items: Array<PaymentSetting>;\n balance: string;\n onSelect: (item: PaymentSetting) => void;\n}) => {\n const [lists, setLists] = useState<Array<PaymentSetting>>([]);\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const ref = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n setLists(items);\n const handleClickOutside = (e: any) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n useEffect(() => {\n setLists(items);\n }, [items]);\n\n useEffect(() => {\n if (search.trim().length === 0) {\n setLists(items);\n }\n }, [search]);\n\n const getNetworkName = (chainId: string) => {\n const chain = chains.find((c) => c.id === Number(chainId));\n\n return chain ? chain.name : chainId;\n };\n\n const handleSearch = () => {\n if (search.trim().length === 0) {\n setLists(items);\n return;\n }\n const q = search.trim().toLowerCase();\n setLists(\n items.filter((item) => item.tokenSymbol.toLowerCase().includes(q)),\n );\n };\n\n const iconSrc =\n type === \"token\"\n ? active?.tokenIcon\n : type === \"network\"\n ? active?.chainIcon\n : null;\n const altText =\n type === \"token\"\n ? active?.tokenName\n : type === \"network\"\n ? getNetworkName(active?.chainId as string)\n : \"\";\n\n return (\n <div ref={ref} className={styles.paymentTokenNetworkWrapper}>\n <div\n className={styles.paymentTokenNetwork}\n style={{ color: open ? \"#FFFFFF\" : \"#8D8D8D\" }}\n onClick={() => setOpen(!open)}\n >\n {active && (\n <div\n className={styles.dropdownItem}\n style={{ height: \"auto\", paddingLeft: 0, paddingRight: 0 }}\n >\n {iconSrc && (\n <div className={styles.icon24}>\n <img src={iconSrc} alt={altText} />\n </div>\n )}\n <div className={styles.dropdownItemMiddle}>\n <div className={styles.dropdownItemText}>\n {type === \"token\"\n ? active?.tokenSymbol\n : getNetworkName(active.chainId).slice(0, 16)}\n </div>\n <div className={styles.dropdownItemBalance}>{balance}</div>\n </div>\n <div\n className={styles.chevronDown}\n style={{ transform: open ? \"rotate(180deg)\" : \"rotate(0deg)\" }}\n >\n <ChevronDownSVG />\n </div>\n </div>\n )}\n </div>\n <div\n className={styles.dropdownWrapper}\n style={{ display: open ? \"flex\" : \"none\" }}\n >\n {type === \"token\" && (\n <div className={styles.dropdownSearch}>\n <input\n type=\"text\"\n name=\"search\"\n placeholder=\"Search Token\"\n value={search}\n className={styles.dropdownInput}\n onChange={(e: any) => setSearch(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleSearch();\n }\n }}\n />\n <div\n className={styles.icon24}\n style={{ cursor: \"pointer\" }}\n onClick={handleSearch}\n >\n <SearchSVG />\n </div>\n </div>\n )}\n <div\n className={styles.dropdownItemWrapper}\n style={{ maxHeight: type === \"token\" ? \"257px\" : \"202px\" }}\n >\n {lists.map((item, index) => {\n const iconSrc =\n type === \"token\"\n ? item.tokenIcon\n : type === \"network\"\n ? item.chainIcon\n : null;\n const altText =\n type === \"token\"\n ? item.tokenName\n : type === \"network\"\n ? getNetworkName(item.chainId)\n : \"\";\n return (\n <div\n key={index}\n className={styles.dropdownItem}\n style={{\n backgroundColor:\n active?.id === item.id ? \"#1D1D1D\" : \"transparent\",\n }}\n onClick={() => {\n onSelect?.(item);\n setOpen(false);\n setSearch(\"\");\n setLists(items);\n }}\n >\n {iconSrc && (\n <div className={styles.icon24}>\n <img src={iconSrc} alt={altText} />\n </div>\n )}\n <div className={styles.dropdownItemText}>\n {type === \"token\"\n ? item.tokenSymbol\n : getNetworkName(item.chainId)}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nconst LinkSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.8284 9.17158L9.17156 14.8284M12.7071 16.9498L11.2929 18.364C9.73078 19.9261 7.19812 19.9261 5.63603 18.364C4.07393 16.8019 4.07393 14.2692 5.63603 12.7071L7.05024 11.2929M16.9497 12.7071L18.3639 11.2929C19.926 9.7308 19.926 7.19814 18.3639 5.63604C16.8019 4.07395 14.2692 4.07395 12.7071 5.63604L11.2929 7.05026\"\n stroke=\"#707070\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n\nconst UnLinkSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.8284 9.17158L9.17156 14.8284M12.7071 16.9498L11.2929 18.364C9.73078 19.9261 7.19812 19.9261 5.63603 18.364C4.07393 16.8019 4.07393 14.2692 5.63603 12.7071L7.05024 11.2929M16.9497 12.7071L18.3639 11.2929C19.926 9.7308 19.926 7.19814 18.3639 5.63604C16.8019 4.07395 14.2692 4.07395 12.7071 5.63604L11.2929 7.05026\"\n stroke=\"#FFED2B\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n\nconst CloseLargeSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21 21L12 12M12 12L3 3M12 12L21.0001 3M12 12L3 21.0001\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n\nconst SearchSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.2\">\n <path\n d=\"M15 15L21 21M10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 13.866 13.866 17 10 17Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n </svg>\n );\n};\n\nconst ChevronDownSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.92004 9.75L11.9985 14.511L16.0815 9.75\"\n stroke=\"white\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n\nconst ChevronDownLargeSVG = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 9L12 16L5 9\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentProvider.d.ts","sourceRoot":"","sources":["../../src/components/PaymentProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAsB7B,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,2CAuEtB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useRef, useEffect } from "react";
|
|
2
|
+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
+
import { WagmiProvider } from "wagmi";
|
|
4
|
+
import { createAppKit } from "@reown/appkit/react";
|
|
5
|
+
import { anvil, arbitrum, arbitrumSepolia, base, baseSepolia, bsc, bscTestnet, kaia, kairos, mainnet, polygon, polygonAmoy, sepolia } from "@reown/appkit/networks";
|
|
6
|
+
import { WagmiAdapter } from "@reown/appkit-adapter-wagmi";
|
|
7
|
+
import { ToastContainer } from "react-toastify";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const queryClient = new QueryClient();
|
|
10
|
+
export default function PaymentProvider({
|
|
11
|
+
projectId,
|
|
12
|
+
metadata,
|
|
13
|
+
includeTestnets = false,
|
|
14
|
+
children
|
|
15
|
+
}) {
|
|
16
|
+
const networksRef = useRef(null);
|
|
17
|
+
const wagmiAdapterRef = useRef(null);
|
|
18
|
+
const appKitRef = useRef(null);
|
|
19
|
+
networksRef.current ??= [mainnet, arbitrum, base, bsc, polygon, kaia, ...(includeTestnets ? [anvil, sepolia, arbitrumSepolia, baseSepolia, bscTestnet, polygonAmoy, kairos] : [])];
|
|
20
|
+
wagmiAdapterRef.current ??= new WagmiAdapter({
|
|
21
|
+
networks: networksRef.current,
|
|
22
|
+
projectId,
|
|
23
|
+
ssr: true
|
|
24
|
+
});
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (!networksRef.current) return;
|
|
27
|
+
if (!wagmiAdapterRef.current) return;
|
|
28
|
+
appKitRef.current ??= createAppKit({
|
|
29
|
+
adapters: [wagmiAdapterRef.current],
|
|
30
|
+
networks: networksRef.current,
|
|
31
|
+
projectId,
|
|
32
|
+
metadata,
|
|
33
|
+
featuredWalletIds: ["c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96",
|
|
34
|
+
// metamask
|
|
35
|
+
"18388be9ac2d02726dbac9777c96efaac06d744b2f6d580fccdd4127a6d01fd1",
|
|
36
|
+
// rabby
|
|
37
|
+
"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4",
|
|
38
|
+
// binance
|
|
39
|
+
"971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709",
|
|
40
|
+
// okx
|
|
41
|
+
"fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa" // coinbase
|
|
42
|
+
],
|
|
43
|
+
features: {
|
|
44
|
+
email: false,
|
|
45
|
+
socials: false
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}, []);
|
|
49
|
+
return /*#__PURE__*/_jsx(WagmiProvider, {
|
|
50
|
+
config: wagmiAdapterRef.current.wagmiConfig,
|
|
51
|
+
children: /*#__PURE__*/_jsxs(QueryClientProvider, {
|
|
52
|
+
client: queryClient,
|
|
53
|
+
children: [/*#__PURE__*/_jsx(ToastContainer, {
|
|
54
|
+
containerId: "payment-component",
|
|
55
|
+
closeButton: false,
|
|
56
|
+
position: "bottom-center",
|
|
57
|
+
autoClose: 4000,
|
|
58
|
+
hideProgressBar: true,
|
|
59
|
+
newestOnTop: true,
|
|
60
|
+
closeOnClick: false,
|
|
61
|
+
rtl: false,
|
|
62
|
+
pauseOnFocusLoss: true,
|
|
63
|
+
draggable: false,
|
|
64
|
+
pauseOnHover: false
|
|
65
|
+
}), children]
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=PaymentProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentProvider.js","names":["useRef","useEffect","QueryClient","QueryClientProvider","WagmiProvider","createAppKit","anvil","arbitrum","arbitrumSepolia","base","baseSepolia","bsc","bscTestnet","kaia","kairos","mainnet","polygon","polygonAmoy","sepolia","WagmiAdapter","ToastContainer","jsx","_jsx","jsxs","_jsxs","queryClient","PaymentProvider","projectId","metadata","includeTestnets","children","networksRef","wagmiAdapterRef","appKitRef","current","networks","ssr","adapters","featuredWalletIds","features","email","socials","config","wagmiConfig","client","containerId","closeButton","position","autoClose","hideProgressBar","newestOnTop","closeOnClick","rtl","pauseOnFocusLoss","draggable","pauseOnHover"],"sources":["../../src/components/PaymentProvider.tsx"],"sourcesContent":["import { useRef, useEffect } from \"react\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { WagmiProvider } from \"wagmi\";\nimport {\n type AppKit,\n type AppKitOptions,\n createAppKit,\n} from \"@reown/appkit/react\";\nimport {\n type AppKitNetwork,\n anvil,\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n kaia,\n kairos,\n mainnet,\n polygon,\n polygonAmoy,\n sepolia,\n} from \"@reown/appkit/networks\";\nimport { WagmiAdapter } from \"@reown/appkit-adapter-wagmi\";\nimport { ToastContainer } from \"react-toastify\";\n\nconst queryClient = new QueryClient();\n\ninterface PaymentProviderProps {\n projectId: string;\n metadata: AppKitOptions[\"metadata\"];\n includeTestnets?: boolean;\n children: React.ReactNode;\n}\n\nexport default function PaymentProvider({\n projectId,\n metadata,\n includeTestnets = false,\n children,\n}: PaymentProviderProps) {\n const networksRef = useRef<[AppKitNetwork, ...AppKitNetwork[]] | null>(null);\n const wagmiAdapterRef = useRef<WagmiAdapter | null>(null);\n const appKitRef = useRef<AppKit | null>(null);\n\n networksRef.current ??= [\n mainnet,\n arbitrum,\n base,\n bsc,\n polygon,\n kaia,\n ...(includeTestnets\n ? [\n anvil,\n sepolia,\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n polygonAmoy,\n kairos,\n ]\n : []),\n ];\n wagmiAdapterRef.current ??= new WagmiAdapter({\n networks: networksRef.current,\n projectId,\n ssr: true,\n });\n useEffect(() => {\n if (!networksRef.current) return;\n if (!wagmiAdapterRef.current) return;\n appKitRef.current ??= createAppKit({\n adapters: [wagmiAdapterRef.current],\n networks: networksRef.current,\n projectId,\n metadata,\n featuredWalletIds: [\n \"c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96\", // metamask\n \"18388be9ac2d02726dbac9777c96efaac06d744b2f6d580fccdd4127a6d01fd1\", // rabby\n \"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4\", // binance\n \"971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709\", // okx\n \"fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa\", // coinbase\n ],\n features: {\n email: false,\n socials: false,\n },\n });\n }, []);\n\n return (\n <WagmiProvider config={wagmiAdapterRef.current.wagmiConfig}>\n <QueryClientProvider client={queryClient}>\n <ToastContainer\n containerId={\"payment-component\"}\n closeButton={false}\n position=\"bottom-center\"\n autoClose={4000}\n hideProgressBar={true}\n newestOnTop={true}\n closeOnClick={false}\n rtl={false}\n pauseOnFocusLoss={true}\n draggable={false}\n pauseOnHover={false}\n />\n {children}\n </QueryClientProvider>\n </WagmiProvider>\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,mBAAmB,QAAQ,uBAAuB;AACxE,SAASC,aAAa,QAAQ,OAAO;AACrC,SAGEC,YAAY,QACP,qBAAqB;AAC5B,SAEEC,KAAK,EACLC,QAAQ,EACRC,eAAe,EACfC,IAAI,EACJC,WAAW,EACXC,GAAG,EACHC,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,OAAO,QACF,wBAAwB;AAC/B,SAASC,YAAY,QAAQ,6BAA6B;AAC1D,SAASC,cAAc,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhD,MAAMC,WAAW,GAAG,IAAIvB,WAAW,CAAC,CAAC;AASrC,eAAe,SAASwB,eAAeA,CAAC;EACtCC,SAAS;EACTC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvBC;AACoB,CAAC,EAAE;EACvB,MAAMC,WAAW,GAAG/B,MAAM,CAA6C,IAAI,CAAC;EAC5E,MAAMgC,eAAe,GAAGhC,MAAM,CAAsB,IAAI,CAAC;EACzD,MAAMiC,SAAS,GAAGjC,MAAM,CAAgB,IAAI,CAAC;EAE7C+B,WAAW,CAACG,OAAO,KAAK,CACtBnB,OAAO,EACPR,QAAQ,EACRE,IAAI,EACJE,GAAG,EACHK,OAAO,EACPH,IAAI,EACJ,IAAIgB,eAAe,GACf,CACEvB,KAAK,EACLY,OAAO,EACPV,eAAe,EACfE,WAAW,EACXE,UAAU,EACVK,WAAW,EACXH,MAAM,CACP,GACD,EAAE,CAAC,CACR;EACDkB,eAAe,CAACE,OAAO,KAAK,IAAIf,YAAY,CAAC;IAC3CgB,QAAQ,EAAEJ,WAAW,CAACG,OAAO;IAC7BP,SAAS;IACTS,GAAG,EAAE;EACP,CAAC,CAAC;EACFnC,SAAS,CAAC,MAAM;IACd,IAAI,CAAC8B,WAAW,CAACG,OAAO,EAAE;IAC1B,IAAI,CAACF,eAAe,CAACE,OAAO,EAAE;IAC9BD,SAAS,CAACC,OAAO,KAAK7B,YAAY,CAAC;MACjCgC,QAAQ,EAAE,CAACL,eAAe,CAACE,OAAO,CAAC;MACnCC,QAAQ,EAAEJ,WAAW,CAACG,OAAO;MAC7BP,SAAS;MACTC,QAAQ;MACRU,iBAAiB,EAAE,CACjB,kEAAkE;MAAE;MACpE,kEAAkE;MAAE;MACpE,kEAAkE;MAAE;MACpE,kEAAkE;MAAE;MACpE,kEAAkE,CAAE;MAAA,CACrE;MACDC,QAAQ,EAAE;QACRC,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEnB,IAAA,CAAClB,aAAa;IAACsC,MAAM,EAAEV,eAAe,CAACE,OAAO,CAACS,WAAY;IAAAb,QAAA,eACzDN,KAAA,CAACrB,mBAAmB;MAACyC,MAAM,EAAEnB,WAAY;MAAAK,QAAA,gBACvCR,IAAA,CAACF,cAAc;QACbyB,WAAW,EAAE,mBAAoB;QACjCC,WAAW,EAAE,KAAM;QACnBC,QAAQ,EAAC,eAAe;QACxBC,SAAS,EAAE,IAAK;QAChBC,eAAe,EAAE,IAAK;QACtBC,WAAW,EAAE,IAAK;QAClBC,YAAY,EAAE,KAAM;QACpBC,GAAG,EAAE,KAAM;QACXC,gBAAgB,EAAE,IAAK;QACvBC,SAAS,EAAE,KAAM;QACjBC,YAAY,EAAE;MAAM,CACrB,CAAC,EACDzB,QAAQ;IAAA,CACU;EAAC,CACT,CAAC;AAEpB","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,
|
|
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/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","PaymentProvider","CryptoPayment"],"sources":["../src/index.ts"],"sourcesContent":["export type * from \"./types/index.js\";\nexport { default as PaymentProvider } from \"./components/PaymentProvider.js\";\nexport { default as CryptoPayment } from \"./components/CryptoPayment.js\";\n"],"mappings":"AACA,SAASA,OAAO,IAAIC,eAAe,QAAQ,iCAAiC;AAC5E,SAASD,OAAO,IAAIE,aAAa,QAAQ,+BAA+B","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const walletConnectSuccess: string;
|
|
2
|
+
export declare const balanceEmpty: string;
|
|
3
|
+
export declare const overlay: string;
|
|
4
|
+
export declare const wrapper: string;
|
|
5
|
+
export declare const wallet: string;
|
|
6
|
+
export declare const walletInput: string;
|
|
7
|
+
export declare const walletLink: string;
|
|
8
|
+
export declare const walletAddress: string;
|
|
9
|
+
export declare const switchBtn: string;
|
|
10
|
+
export declare const closeBtn: string;
|
|
11
|
+
export declare const paymentWrapper: string;
|
|
12
|
+
export declare const paymentTitle: string;
|
|
13
|
+
export declare const paymentTokenNetworkWrapper: string;
|
|
14
|
+
export declare const paymentTokenNetwork: string;
|
|
15
|
+
export declare const icon24: string;
|
|
16
|
+
export declare const dropdownItem: string;
|
|
17
|
+
export declare const dropdownItemMiddle: string;
|
|
18
|
+
export declare const dropdownItemText: string;
|
|
19
|
+
export declare const dropdownItemBalance: string;
|
|
20
|
+
export declare const chevronDown: string;
|
|
21
|
+
export declare const dropdownWrapper: string;
|
|
22
|
+
export declare const dropdownSearch: string;
|
|
23
|
+
export declare const dropdownInput: string;
|
|
24
|
+
export declare const dropdownItemWrapper: string;
|
|
25
|
+
export declare const paymentAmountWrapper: string;
|
|
26
|
+
export declare const paymentAmount: string;
|
|
27
|
+
export declare const paymentAmountTotal: string;
|
|
28
|
+
export declare const chevronDownLarge: string;
|
|
29
|
+
export declare const summaryWrapper: string;
|
|
30
|
+
export declare const summaryItemWrapper: string;
|
|
31
|
+
export declare const summaryItemTitle: string;
|
|
32
|
+
export declare const summaryItemValue: string;
|
|
33
|
+
export declare const summaryTotal: string;
|
|
34
|
+
export declare const connectWallet: string;
|
|
35
|
+
export declare const switchNetworkButton: string;
|
|
36
|
+
export declare const payButton: string;
|
|
37
|
+
//# sourceMappingURL=Crypto.css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Crypto.css.d.ts","sourceRoot":"","sources":["../../src/styles/Crypto.css.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,oBAAoB,QAE/B,CAAC;AAEH,eAAO,MAAM,YAAY,QAEvB,CAAC;AAEH,eAAO,MAAM,OAAO,QAQlB,CAAC;AAEH,eAAO,MAAM,OAAO,QAWlB,CAAC;AAEH,eAAO,MAAM,MAAM,QAOjB,CAAC;AAEH,eAAO,MAAM,WAAW,QAYtB,CAAC;AAEH,eAAO,MAAM,UAAU,QAMrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAGxB,CAAC;AAEH,eAAO,MAAM,SAAS,QAYpB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAYnB,CAAC;AAEH,eAAO,MAAM,cAAc,QAGzB,CAAC;AAEH,eAAO,MAAM,YAAY,QAOvB,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAErC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAY9B,CAAC;AAEH,eAAO,MAAM,MAAM,QAQjB,CAAC;AAEH,eAAO,MAAM,YAAY,QAWvB,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAI3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAK9B,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC;AAEH,eAAO,MAAM,eAAe,QAY1B,CAAC;AAEH,eAAO,MAAM,cAAc,QAczB,CAAC;AAEH,eAAO,MAAM,aAAa,QAcxB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAK9B,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAW/B,CAAC;AAEH,eAAO,MAAM,aAAa,QAKxB,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAK3B,CAAC;AAEH,eAAO,MAAM,cAAc,QAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAI7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAM3B,CAAC;AAEH,eAAO,MAAM,YAAY,QAMvB,CAAC;AAEH,eAAO,MAAM,aAAa,QAkBxB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAY9B,CAAC;AAEH,eAAO,MAAM,SAAS,QAQpB,CAAC"}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import * as __vanilla_filescope__ from '@vanilla-extract/css/fileScope';
|
|
2
|
+
__vanilla_filescope__.setFileScope("src/styles/Crypto.css.ts", "@cromix-dev/payment-component");
|
|
3
|
+
import { globalStyle, style } from "@vanilla-extract/css";
|
|
4
|
+
globalStyle("#payment-component .Toastify__toast", {
|
|
5
|
+
backgroundColor: "#3D3D3D !important",
|
|
6
|
+
border: "1px solid transparent !important",
|
|
7
|
+
fontFamily: '"Inter", sans-serif !important',
|
|
8
|
+
fontSize: "13px !important",
|
|
9
|
+
fontWeight: "500 !important",
|
|
10
|
+
padding: "8px 16px !important",
|
|
11
|
+
minHeight: "32px !important"
|
|
12
|
+
});
|
|
13
|
+
globalStyle("#payment-component .Toastify__toast--success", {
|
|
14
|
+
borderColor: "#0FAA36 !important"
|
|
15
|
+
});
|
|
16
|
+
globalStyle("#payment-component .Toastify__toast--warning", {
|
|
17
|
+
borderColor: "#7A80E9 !important"
|
|
18
|
+
});
|
|
19
|
+
globalStyle("#payment-component .Toastify__toast--warning .Toastify__toast-icon", {
|
|
20
|
+
["--toastify-icon-color-warning"]: "#7A80E9 !important"
|
|
21
|
+
});
|
|
22
|
+
globalStyle("#payment-component .Toastify__toast--success .Toastify__toast-icon", {
|
|
23
|
+
["--toastify-icon-color-success"]: "#0FAA36 !important"
|
|
24
|
+
});
|
|
25
|
+
export const walletConnectSuccess = style({
|
|
26
|
+
color: "#0FAA36"
|
|
27
|
+
}, "walletConnectSuccess");
|
|
28
|
+
export const balanceEmpty = style({
|
|
29
|
+
color: "#7A80E9"
|
|
30
|
+
}, "balanceEmpty");
|
|
31
|
+
export const overlay = style({
|
|
32
|
+
position: "fixed",
|
|
33
|
+
inset: 0,
|
|
34
|
+
backgroundColor: "rgba(0, 0, 0, 0.3)",
|
|
35
|
+
display: "flex",
|
|
36
|
+
alignItems: "center",
|
|
37
|
+
justifyContent: "center",
|
|
38
|
+
zIndex: 9999
|
|
39
|
+
}, "overlay");
|
|
40
|
+
export const wrapper = style({
|
|
41
|
+
fontFamily: '"Pretendard", sans-serif',
|
|
42
|
+
backgroundColor: "#202020",
|
|
43
|
+
border: "1px solid rgba(255, 255, 255, 0.08)",
|
|
44
|
+
borderRadius: "30px",
|
|
45
|
+
paddingLeft: "24px",
|
|
46
|
+
paddingRight: "23px",
|
|
47
|
+
paddingTop: "28px",
|
|
48
|
+
paddingBottom: "37px",
|
|
49
|
+
width: "100%",
|
|
50
|
+
maxWidth: "370px"
|
|
51
|
+
}, "wrapper");
|
|
52
|
+
export const wallet = style({
|
|
53
|
+
display: "flex",
|
|
54
|
+
justifyContent: "space-between",
|
|
55
|
+
alignItems: "center",
|
|
56
|
+
height: "50px",
|
|
57
|
+
gap: "10px",
|
|
58
|
+
marginBottom: "34px"
|
|
59
|
+
}, "wallet");
|
|
60
|
+
export const walletInput = style({
|
|
61
|
+
display: "flex",
|
|
62
|
+
alignItems: "center",
|
|
63
|
+
justifyContent: "flex-start",
|
|
64
|
+
backgroundColor: "#000000",
|
|
65
|
+
borderRadius: "100px",
|
|
66
|
+
paddingLeft: "20px",
|
|
67
|
+
paddingRight: "20px",
|
|
68
|
+
boxShadow: "0px 0px 8px 0px #00000040",
|
|
69
|
+
height: "100%",
|
|
70
|
+
width: "100%",
|
|
71
|
+
gap: "8px"
|
|
72
|
+
}, "walletInput");
|
|
73
|
+
export const walletLink = style({
|
|
74
|
+
display: "flex",
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
justifyContent: "center",
|
|
77
|
+
height: "24px",
|
|
78
|
+
width: "24px"
|
|
79
|
+
}, "walletLink");
|
|
80
|
+
export const walletAddress = style({
|
|
81
|
+
color: "#969696",
|
|
82
|
+
fontSize: "16px"
|
|
83
|
+
}, "walletAddress");
|
|
84
|
+
export const switchBtn = style({
|
|
85
|
+
display: "flex",
|
|
86
|
+
alignItems: "center",
|
|
87
|
+
justifyContent: "center",
|
|
88
|
+
backgroundColor: "#FFEF46",
|
|
89
|
+
borderRadius: "1000px",
|
|
90
|
+
color: "#161616",
|
|
91
|
+
cursor: "pointer",
|
|
92
|
+
fontSize: "14px",
|
|
93
|
+
marginLeft: "auto",
|
|
94
|
+
height: "24px",
|
|
95
|
+
width: "56px"
|
|
96
|
+
}, "switchBtn");
|
|
97
|
+
export const closeBtn = style({
|
|
98
|
+
display: "flex",
|
|
99
|
+
alignItems: "center",
|
|
100
|
+
justifyContent: "center",
|
|
101
|
+
flexShrink: 0,
|
|
102
|
+
flexGrow: 0,
|
|
103
|
+
backgroundColor: "black",
|
|
104
|
+
borderRadius: "100px",
|
|
105
|
+
height: "50px",
|
|
106
|
+
width: "50px",
|
|
107
|
+
cursor: "pointer",
|
|
108
|
+
transition: "background-color 150ms ease-in-out"
|
|
109
|
+
}, "closeBtn");
|
|
110
|
+
export const paymentWrapper = style({
|
|
111
|
+
display: "flex",
|
|
112
|
+
flexDirection: "column"
|
|
113
|
+
}, "paymentWrapper");
|
|
114
|
+
export const paymentTitle = style({
|
|
115
|
+
color: "#969696",
|
|
116
|
+
fontSize: "16px",
|
|
117
|
+
fontWeight: 500,
|
|
118
|
+
lineHeight: "25px",
|
|
119
|
+
textAlign: "center",
|
|
120
|
+
marginBottom: "10px"
|
|
121
|
+
}, "paymentTitle");
|
|
122
|
+
export const paymentTokenNetworkWrapper = style({
|
|
123
|
+
position: "relative"
|
|
124
|
+
}, "paymentTokenNetworkWrapper");
|
|
125
|
+
export const paymentTokenNetwork = style({
|
|
126
|
+
display: "flex",
|
|
127
|
+
alignItems: "center",
|
|
128
|
+
justifyContent: "flex-start",
|
|
129
|
+
backgroundColor: "#171717",
|
|
130
|
+
borderRadius: "6px",
|
|
131
|
+
height: "45px",
|
|
132
|
+
cursor: "pointer",
|
|
133
|
+
paddingLeft: "15px",
|
|
134
|
+
paddingRight: "5px",
|
|
135
|
+
marginBottom: "10px",
|
|
136
|
+
transition: "color 0.3s ease"
|
|
137
|
+
}, "paymentTokenNetwork");
|
|
138
|
+
export const icon24 = style({
|
|
139
|
+
display: "flex",
|
|
140
|
+
alignItems: "center",
|
|
141
|
+
justifyContent: "center",
|
|
142
|
+
flexShrink: 0,
|
|
143
|
+
flexGrow: 0,
|
|
144
|
+
height: "24px",
|
|
145
|
+
width: "24px"
|
|
146
|
+
}, "icon24");
|
|
147
|
+
export const dropdownItem = style({
|
|
148
|
+
display: "flex",
|
|
149
|
+
alignItems: "center",
|
|
150
|
+
flexGrow: 0,
|
|
151
|
+
flexShrink: 0,
|
|
152
|
+
height: "35px",
|
|
153
|
+
cursor: "pointer",
|
|
154
|
+
paddingLeft: "20px",
|
|
155
|
+
paddingRight: "20px",
|
|
156
|
+
gap: "10px",
|
|
157
|
+
width: "100%"
|
|
158
|
+
}, "dropdownItem");
|
|
159
|
+
export const dropdownItemMiddle = style({
|
|
160
|
+
display: "flex",
|
|
161
|
+
alignItems: "center",
|
|
162
|
+
justifyContent: "space-between",
|
|
163
|
+
width: "100%"
|
|
164
|
+
}, "dropdownItemMiddle");
|
|
165
|
+
export const dropdownItemText = style({
|
|
166
|
+
fontSize: "15px",
|
|
167
|
+
letterSpacing: "0.2px",
|
|
168
|
+
color: "#FFFFFF"
|
|
169
|
+
}, "dropdownItemText");
|
|
170
|
+
export const dropdownItemBalance = style({
|
|
171
|
+
fontSize: "15px",
|
|
172
|
+
letterSpacing: "0.2px",
|
|
173
|
+
color: "#FFFFFF",
|
|
174
|
+
marginLeft: "auto"
|
|
175
|
+
}, "dropdownItemBalance");
|
|
176
|
+
export const chevronDown = style({
|
|
177
|
+
display: "flex",
|
|
178
|
+
alignItems: "center",
|
|
179
|
+
justifyContent: "center",
|
|
180
|
+
height: "24px",
|
|
181
|
+
width: "24px",
|
|
182
|
+
transition: "transform 0.3s ease"
|
|
183
|
+
}, "chevronDown");
|
|
184
|
+
export const dropdownWrapper = style({
|
|
185
|
+
flexDirection: "column",
|
|
186
|
+
backgroundColor: "#121212",
|
|
187
|
+
borderRadius: "7px",
|
|
188
|
+
paddingTop: "12px",
|
|
189
|
+
paddingBottom: "12px",
|
|
190
|
+
position: "absolute",
|
|
191
|
+
top: "calc(100% - 5px)",
|
|
192
|
+
left: "0",
|
|
193
|
+
right: "0",
|
|
194
|
+
zIndex: "10",
|
|
195
|
+
gap: "5px"
|
|
196
|
+
}, "dropdownWrapper");
|
|
197
|
+
export const dropdownSearch = style({
|
|
198
|
+
display: "flex",
|
|
199
|
+
alignItems: "center",
|
|
200
|
+
flexGrow: 0,
|
|
201
|
+
flexShrink: 0,
|
|
202
|
+
backgroundColor: "#1D1D1D",
|
|
203
|
+
borderRadius: "10px",
|
|
204
|
+
paddingLeft: "10px",
|
|
205
|
+
paddingRight: "10px",
|
|
206
|
+
marginLeft: "20px",
|
|
207
|
+
marginRight: "20px",
|
|
208
|
+
marginTop: "5px",
|
|
209
|
+
marginBottom: "5px",
|
|
210
|
+
height: "40px"
|
|
211
|
+
}, "dropdownSearch");
|
|
212
|
+
export const dropdownInput = style({
|
|
213
|
+
backgroundColor: "transparent",
|
|
214
|
+
border: "none",
|
|
215
|
+
color: "#FFFFFF",
|
|
216
|
+
outlineStyle: "none",
|
|
217
|
+
height: "100%",
|
|
218
|
+
width: "100%",
|
|
219
|
+
selectors: {
|
|
220
|
+
"&::placeholder": {
|
|
221
|
+
fontSize: "15px",
|
|
222
|
+
letterSpacing: "0.2px",
|
|
223
|
+
color: "#525050"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}, "dropdownInput");
|
|
227
|
+
export const dropdownItemWrapper = style({
|
|
228
|
+
display: "flex",
|
|
229
|
+
flexDirection: "column",
|
|
230
|
+
gap: "5px",
|
|
231
|
+
overflowY: "scroll"
|
|
232
|
+
}, "dropdownItemWrapper");
|
|
233
|
+
export const paymentAmountWrapper = style({
|
|
234
|
+
display: "flex",
|
|
235
|
+
alignItems: "center",
|
|
236
|
+
justifyContent: "space-between",
|
|
237
|
+
backgroundColor: "#323232",
|
|
238
|
+
borderRadius: "6px",
|
|
239
|
+
color: "#8D8D8D",
|
|
240
|
+
height: "48px",
|
|
241
|
+
paddingLeft: "12px",
|
|
242
|
+
paddingRight: "12px",
|
|
243
|
+
marginBottom: "5px"
|
|
244
|
+
}, "paymentAmountWrapper");
|
|
245
|
+
export const paymentAmount = style({
|
|
246
|
+
fontWeight: 500,
|
|
247
|
+
fontSize: "14px",
|
|
248
|
+
color: "#888888",
|
|
249
|
+
letterSpacing: "-0.2px"
|
|
250
|
+
}, "paymentAmount");
|
|
251
|
+
export const paymentAmountTotal = style({
|
|
252
|
+
fontWeight: 700,
|
|
253
|
+
fontSize: "16px",
|
|
254
|
+
color: "#FFFFFF",
|
|
255
|
+
letterSpacing: "-0.2px"
|
|
256
|
+
}, "paymentAmountTotal");
|
|
257
|
+
export const chevronDownLarge = style({
|
|
258
|
+
display: "flex",
|
|
259
|
+
alignItems: "center",
|
|
260
|
+
justifyContent: "center",
|
|
261
|
+
marginBottom: "5px"
|
|
262
|
+
}, "chevronDownLarge");
|
|
263
|
+
export const summaryWrapper = style({
|
|
264
|
+
display: "flex",
|
|
265
|
+
flexDirection: "column",
|
|
266
|
+
backgroundColor: "#2C2C2C",
|
|
267
|
+
borderRadius: "6px",
|
|
268
|
+
color: "#8D8D8D",
|
|
269
|
+
padding: "12px",
|
|
270
|
+
marginBottom: "34px"
|
|
271
|
+
}, "summaryWrapper");
|
|
272
|
+
export const summaryItemWrapper = style({
|
|
273
|
+
display: "flex",
|
|
274
|
+
alignItems: "center",
|
|
275
|
+
justifyContent: "space-between"
|
|
276
|
+
}, "summaryItemWrapper");
|
|
277
|
+
export const summaryItemTitle = style({
|
|
278
|
+
fontSize: "14px",
|
|
279
|
+
lineHeight: "20px",
|
|
280
|
+
color: "#888888",
|
|
281
|
+
letterSpacing: "-0.2px"
|
|
282
|
+
}, "summaryItemTitle");
|
|
283
|
+
export const summaryItemValue = style({
|
|
284
|
+
fontSize: "13px",
|
|
285
|
+
fontWeight: 500,
|
|
286
|
+
lineHeight: "20px",
|
|
287
|
+
color: "#888888",
|
|
288
|
+
letterSpacing: "-0.2px"
|
|
289
|
+
}, "summaryItemValue");
|
|
290
|
+
export const summaryTotal = style({
|
|
291
|
+
fontSize: "18px",
|
|
292
|
+
fontWeight: 700,
|
|
293
|
+
lineHeight: "24px",
|
|
294
|
+
color: "#888888",
|
|
295
|
+
letterSpacing: "-0.2px"
|
|
296
|
+
}, "summaryTotal");
|
|
297
|
+
export const connectWallet = style({
|
|
298
|
+
display: "flex",
|
|
299
|
+
alignItems: "center",
|
|
300
|
+
justifyContent: "center",
|
|
301
|
+
backgroundColor: "#FFED2B",
|
|
302
|
+
borderRadius: "100px",
|
|
303
|
+
fontFamily: '"IBM Plex Mono", monospace',
|
|
304
|
+
fontWeight: 600,
|
|
305
|
+
fontSize: "16px",
|
|
306
|
+
color: "#000000",
|
|
307
|
+
cursor: "pointer",
|
|
308
|
+
height: "56px",
|
|
309
|
+
width: "100%",
|
|
310
|
+
selectors: {
|
|
311
|
+
"&:hover": {
|
|
312
|
+
opacity: 0.9
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}, "connectWallet");
|
|
316
|
+
export const switchNetworkButton = style({
|
|
317
|
+
display: "flex",
|
|
318
|
+
alignItems: "center",
|
|
319
|
+
justifyContent: "center",
|
|
320
|
+
backgroundColor: "#FF2A2D",
|
|
321
|
+
borderRadius: "100px",
|
|
322
|
+
color: "#FFFFFF",
|
|
323
|
+
cursor: "pointer",
|
|
324
|
+
fontFamily: '"Inter", sans-serif !important',
|
|
325
|
+
fontSize: "16px",
|
|
326
|
+
height: "56px",
|
|
327
|
+
width: "100%"
|
|
328
|
+
}, "switchNetworkButton");
|
|
329
|
+
export const payButton = style({
|
|
330
|
+
display: "flex",
|
|
331
|
+
alignItems: "center",
|
|
332
|
+
justifyContent: "center",
|
|
333
|
+
borderRadius: "100px",
|
|
334
|
+
fontSize: "16px",
|
|
335
|
+
height: "56px",
|
|
336
|
+
width: "100%"
|
|
337
|
+
}, "payButton");
|
|
338
|
+
__vanilla_filescope__.endFileScope();
|
|
339
|
+
//# sourceMappingURL=Crypto.css.js.map
|