From 4660d2ada7bbcfa43d30646b1b3aab61dc27d7d3 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Wed, 12 Feb 2025 10:23:29 -0800 Subject: [PATCH] Add wallet provider --- .../src/Components/WalletProvider/index.jsx | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Client/src/Components/WalletProvider/index.jsx diff --git a/Client/src/Components/WalletProvider/index.jsx b/Client/src/Components/WalletProvider/index.jsx new file mode 100644 index 000000000..a24124d93 --- /dev/null +++ b/Client/src/Components/WalletProvider/index.jsx @@ -0,0 +1,45 @@ +import { useMemo } from "react"; +import { ConnectionProvider, WalletProvider } from "@solana/wallet-adapter-react"; +import { WalletAdapterNetwork } from "@solana/wallet-adapter-base"; +import { + UnsafeBurnerWalletAdapter, + PhantomWalletAdapter, +} from "@solana/wallet-adapter-wallets"; + +import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"; +import { clusterApiUrl } from "@solana/web3.js"; +import PropTypes from "prop-types"; + +// Default styles that can be overridden by your app +import "@solana/wallet-adapter-react-ui/styles.css"; + +export const Wallet = ({ children }) => { + // The network can be set to 'devnet', 'testnet', or 'mainnet-beta'. + const network = WalletAdapterNetwork.Mainnet; + + // You can also provide a custom RPC endpoint. + const endpoint = useMemo(() => clusterApiUrl(network), [network]); + + const wallets = useMemo( + () => [new PhantomWalletAdapter()], + // eslint-disable-next-line react-hooks/exhaustive-deps + [network] + ); + + return ( + + + {children} + + + ); +}; + +Wallet.propTypes = { + children: PropTypes.node, +}; + +export default Wallet;