feat: update to use coinbaseWallet and metaMask connectors

This commit is contained in:
lucas-neynar 2025-05-05 15:54:34 -07:00
parent 5f0fd8876a
commit d8c53ceab7
No known key found for this signature in database
3 changed files with 48 additions and 12 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@neynar/create-farcaster-mini-app", "name": "@neynar/create-farcaster-mini-app",
"version": "1.2.17", "version": "1.2.18",
"type": "module", "type": "module",
"private": false, "private": false,
"access": "public", "access": "public",

View File

@ -59,7 +59,22 @@ export default function Demo(
} = useSignTypedData(); } = useSignTypedData();
const { disconnect } = useDisconnect(); const { disconnect } = useDisconnect();
const { connect } = useConnect(); const { connect, connectors } = useConnect();
const handleConnect = useCallback(async () => {
if (context) {
// If we're in a frame client, use the frame connector
await connect({ connector: connectors[0] });
} else {
try {
// Try Coinbase Wallet first
await connect({ connector: connectors[1] });
} catch (error) {
// If Coinbase Wallet fails, try MetaMask
await connect({ connector: connectors[2] });
}
}
}, [connect, connectors, context]);
const { const {
switchChain, switchChain,
@ -321,15 +336,21 @@ export default function Demo(
)} )}
<div className="mb-4"> <div className="mb-4">
{isConnected ? (
<Button <Button
onClick={() => onClick={() => disconnect()}
isConnected className="w-full"
? disconnect()
: connect({ connector: config.connectors[0] })
}
> >
{isConnected ? "Disconnect" : "Connect"} Disconnect
</Button> </Button>
) : (
<Button
onClick={handleConnect}
className="w-full"
>
Connect
</Button>
)}
</div> </div>
<div className="mb-4"> <div className="mb-4">

View File

@ -2,6 +2,8 @@ import { createConfig, http, WagmiProvider } from "wagmi";
import { base, degen, mainnet, optimism, unichain } from "wagmi/chains"; import { base, degen, mainnet, optimism, unichain } from "wagmi/chains";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { farcasterFrame } from "@farcaster/frame-wagmi-connector"; import { farcasterFrame } from "@farcaster/frame-wagmi-connector";
import { coinbaseWallet, metaMask } from 'wagmi/connectors';
import { APP_NAME, APP_ICON_URL, APP_URL } from "~/lib/constants";
export const config = createConfig({ export const config = createConfig({
chains: [base, optimism, mainnet, degen, unichain], chains: [base, optimism, mainnet, degen, unichain],
@ -12,7 +14,20 @@ export const config = createConfig({
[degen.id]: http(), [degen.id]: http(),
[unichain.id]: http(), [unichain.id]: http(),
}, },
connectors: [farcasterFrame()], connectors: [
farcasterFrame(),
coinbaseWallet({
appName: APP_NAME,
appLogoUrl: APP_ICON_URL,
preference: 'all',
}),
metaMask({
dappMetadata: {
name: APP_NAME,
url: APP_URL,
},
}),
],
}); });
const queryClient = new QueryClient(); const queryClient = new QueryClient();