UNPKG

@macalinao/wallet-adapter-compat

Version:

Compatibility layer that bridges @solana/wallet-adapter with @solana/kit and grill

33 lines 1.36 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { WalletProvider } from "@macalinao/grill"; import { useConnection, useWallet } from "@solana/wallet-adapter-react"; import { install } from "@solana/webcrypto-ed25519-polyfill"; import { useMemo } from "react"; import { createWalletTransactionSendingSigner } from "./walletTransactionSendingSigner.js"; // Install the polyfill install(); /** * A compatibility provider that creates a TransactionSendingSigner from * wallet-adapter and provides it through grill's WalletProvider. * * This bridges the gap between @solana/wallet-adapter and @solana/kit. */ export const WalletAdapterCompatProvider = ({ children }) => { const { connection } = useConnection(); const wallet = useWallet(); // Create the signer when wallet is connected const signer = useMemo(() => { if (!(wallet.connected && wallet.publicKey && wallet.signTransaction)) { return null; } try { return createWalletTransactionSendingSigner(wallet, connection); } catch (error) { console.error("Failed to create transaction sending signer:", error); return null; } }, [wallet, connection]); return _jsx(WalletProvider, { signer: signer, children: children }); }; //# sourceMappingURL=WalletAdapterCompatProvider.js.map