import { useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { v4 as uuid } from "uuid"; import AsyncButton from "Element/AsyncButton"; import { unwrap } from "Util"; import { WalletConfig, WalletKind, Wallets } from "Wallet"; import { useNavigate } from "react-router-dom"; const ConnectCashu = () => { const navigate = useNavigate(); const { formatMessage } = useIntl(); const [mintUrl, setMintUrl] = useState(); const [error, setError] = useState(); async function tryConnect(config: string) { try { if (!mintUrl) { throw new Error("Mint URL is required"); } const { CashuWallet } = await import("Wallet/Cashu"); const connection = new CashuWallet(config); await connection.login(); const info = await connection.getInfo(); const newWallet = { id: uuid(), kind: WalletKind.Cashu, active: true, info, data: mintUrl, } as WalletConfig; Wallets.add(newWallet); navigate("/wallet"); } catch (e) { if (e instanceof Error) { setError((e as Error).message); } else { setError( formatMessage({ defaultMessage: "Unknown error", }) ); } } } return ( <>

setMintUrl(e.target.value)} />
tryConnect(unwrap(mintUrl))} disabled={!mintUrl}>
{error && {error}} ); }; export default ConnectCashu;