- Hello, {displayName}! Your FID is {fid}. -
-- Your custody address is:
{custody}- +
+ Hello, {displayName}! Your FID is {fid}. +
++ Your custody address is:
{custody}+
diff --git a/examples/with-next-auth/.eslintrc.json b/examples/with-next-auth/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/examples/with-next-auth/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/examples/with-next-auth/package.json b/examples/with-next-auth/package.json index 3c70296..3ef5a12 100644 --- a/examples/with-next-auth/package.json +++ b/examples/with-next-auth/package.json @@ -9,7 +9,8 @@ "lint": "next lint" }, "dependencies": { - "@farcaster/auth-kit": "^0.1.4", + "@farcaster/auth-kit": "*", + "ethers": "^6.12.0", "next": "14.0.4", "next-auth": "^4.24.5", "react": "^18.2.0", @@ -20,6 +21,7 @@ "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "eslint-config-next": "14.2.1", "typescript": "^5" } } diff --git a/examples/with-next-auth/pages/api/auth/[...nextauth].ts b/examples/with-next-auth/pages/api/auth/[...nextauth].ts index 20b94a3..0830d8c 100644 --- a/examples/with-next-auth/pages/api/auth/[...nextauth].ts +++ b/examples/with-next-auth/pages/api/auth/[...nextauth].ts @@ -2,6 +2,7 @@ import NextAuth from "next-auth"; import CredentialsProvider from "next-auth/providers/credentials"; import { createAppClient, viemConnector } from "@farcaster/auth-client"; import { NextApiRequest, NextApiResponse } from "next"; +import { JsonRpcProvider } from "ethers"; export default (req: NextApiRequest, res: NextApiResponse) => NextAuth(req, res, { diff --git a/examples/with-next-auth/pages/index.tsx b/examples/with-next-auth/pages/index.tsx index 435f6e9..bd3fa08 100644 --- a/examples/with-next-auth/pages/index.tsx +++ b/examples/with-next-auth/pages/index.tsx @@ -50,7 +50,7 @@ function Content() { redirect: false, }); }, - [signIn] + [] ); return ( @@ -60,7 +60,7 @@ function Content() { nonce={getNonce} onSuccess={handleSuccess} onError={() => setError(true)} - onSignOut={() => signOut() } + onSignOut={() => signOut()} /> {error &&
- Click the "Sign in with Farcaster" button above, then scan the QR code to + Click the "Sign in with Farcaster"e; button above, then scan the QR code to sign in.
); diff --git a/package.json b/package.json index eb765f4..5d5a47f 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "packageManager": "yarn@1.22.19", "workspaces": [ "apps/*", + "examples/*", "packages/*", "test/*" ], diff --git a/packages/auth-client/README.md b/packages/auth-client/README.md index fa3fc84..e3a6b79 100644 --- a/packages/auth-client/README.md +++ b/packages/auth-client/README.md @@ -24,6 +24,7 @@ You can use an app client to create a Farcaster Auth relay channel, generate a U ```ts import { createAppClient, viemConnector } from "@farcaster/auth-client"; +import { JsonRpcProvider } from "ethers"; const appClient = createAppClient({ relay: "https://relay.farcaster.xyz", diff --git a/packages/auth-client/package.json b/packages/auth-client/package.json index 4ae25d0..b97e18f 100644 --- a/packages/auth-client/package.json +++ b/packages/auth-client/package.json @@ -27,13 +27,14 @@ }, "dependencies": { "neverthrow": "^6.1.0", - "siwe": "^2.1.4", - "ethers": "^6.9.2" + "siwe": "^2.1.4" }, "peerDependencies": { + "ethers": "5.x || 6.x", "viem": "1.x || 2.x" }, "devDependencies": { + "ethers": "^6.12.0", "viem": "^1.19.11" } } diff --git a/packages/auth-client/src/actions/app/createChannel.ts b/packages/auth-client/src/actions/app/createChannel.ts index a422b2c..5f02626 100644 --- a/packages/auth-client/src/actions/app/createChannel.ts +++ b/packages/auth-client/src/actions/app/createChannel.ts @@ -12,6 +12,7 @@ interface CreateChannelRequest { notBefore?: string; expirationTime?: string; requestId?: string; + redirectUrl?: string; } export interface CreateChannelAPIResponse { diff --git a/packages/auth-client/src/actions/app/verifySignInMessage.test.ts b/packages/auth-client/src/actions/app/verifySignInMessage.test.ts index e8c73a9..9fbe8c2 100644 --- a/packages/auth-client/src/actions/app/verifySignInMessage.test.ts +++ b/packages/auth-client/src/actions/app/verifySignInMessage.test.ts @@ -3,11 +3,15 @@ import { createWalletClient } from "../../clients/createWalletClient"; import { viemConnector } from "../../clients/ethereum/viemConnector"; import { privateKeyToAccount, generatePrivateKey } from "viem/accounts"; import { AuthClientError } from "../../errors"; +import { JsonRpcProvider } from "ethers"; describe("verifySignInMessage", () => { - const client = createAppClient({ - ethereum: viemConnector(), - }); + const client = createAppClient( + { + ethereum: viemConnector(), + }, + new JsonRpcProvider("https://mainnet.optimism.io/", 10), + ); const walletClient = createWalletClient({ ethereum: viemConnector(), diff --git a/packages/auth-client/src/actions/app/verifySignInMessage.ts b/packages/auth-client/src/actions/app/verifySignInMessage.ts index bf57c99..165474c 100644 --- a/packages/auth-client/src/actions/app/verifySignInMessage.ts +++ b/packages/auth-client/src/actions/app/verifySignInMessage.ts @@ -2,6 +2,7 @@ import { SiweMessage } from "siwe"; import { Client } from "../../clients/createClient"; import { VerifyResponse, verify } from "../../messages/verify"; import { Unwrapped, unwrap } from "../../errors"; +import type { Provider } from "ethers"; export interface VerifySignInMessageArgs { nonce: string; @@ -15,10 +16,11 @@ export type VerifySignInMessageResponse = Promise