import { Wallet } from '@project-serum/anchor' import { Wallet as WalletAdapter } from '@solana/wallet-adapter-react' import { Keypair, PublicKey, Transaction } from '@solana/web3.js' import { notify } from './notifications' export default class EmptyWallet implements Wallet { constructor(readonly payer: Keypair) {} async signTransaction(tx: Transaction): Promise { tx.partialSign(this.payer) return tx } async signAllTransactions(txs: Transaction[]): Promise { return txs.map((t) => { t.partialSign(this.payer) return t }) } get publicKey(): PublicKey { return this.payer.publicKey } } export const handleWalletConnect = (wallet: WalletAdapter) => { if (!wallet) { return } wallet?.adapter?.connect().catch((e) => { if (e.name.includes('WalletLoadError')) { notify({ title: `${wallet.adapter.name} Error`, type: 'error', description: `Please install ${wallet.adapter.name} and then reload this page.`, }) } }) }