Skip to content

Commit

Permalink
fix: update passkey (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
jstinhw authored Jun 6, 2024
1 parent ab00302 commit 89f42f3
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 28 deletions.
Binary file modified bun.lockb
Binary file not shown.
28 changes: 15 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@zerodev/waas",
"version": "0.2.1",
"version": "0.2.2-alpha.0",
"description": "",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
Expand All @@ -16,14 +16,14 @@
"author": "ZeroDev",
"license": "MIT",
"dependencies": {
"@walletconnect/core": "^2.11.3",
"@walletconnect/encoding": "^1.0.2",
"@walletconnect/web3wallet": "^1.10.3",
"@zerodev/ecdsa-validator": "^5.2.3",
"@zerodev/passkey-validator": "^5.2.3",
"@zerodev/permissions": "^5.2.2",
"@zerodev/sdk": "^5.2.10",
"@zerodev/session-key": "^5.2.2",
"@walletconnect/core": "2.11.3",
"@walletconnect/encoding": "1.0.2",
"@walletconnect/web3wallet": "1.10.3",
"@zerodev/ecdsa-validator": "5.2.3",
"@zerodev/passkey-validator": "5.2.8",
"@zerodev/permissions": "5.2.6",
"@zerodev/sdk": "5.2.10",
"@zerodev/session-key": "5.2.2",
"@zerodev/social-validator": "5.0.1",
"events": "^3.3.0",
"lodash": "^4.17.21",
Expand All @@ -40,17 +40,19 @@
"react-dom": ">=18",
"simple-git-hooks": "^2.11.1",
"tsup": "^8.0.2",
"typescript": "^5.4.3",
"viem": "2.9.18"
"typescript": "^5.4.3"
},
"peerDependencies": {
"@tanstack/react-query": "^5.28.14",
"@wagmi/core": ">=2.5.0",
"@tanstack/react-query": "^5.28.14",
"react": ">=18.2.0",
"typescript": ">=5.4.3",
"viem": ">=2.5.0",
"viem": "2.9.16",
"wagmi": ">=2.5.0"
},
"resolutions": {
"viem": "2.9.16"
},
"exports": {
".": {
"types": "./dist/esm/index.d.ts",
Expand Down
28 changes: 16 additions & 12 deletions src/actions/createKernelClientPasskey.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import type { Evaluate } from "@wagmi/core/internal"
import {
createPasskeyValidator,
getPasskeyValidator
WebAuthnMode,
toPasskeyValidator,
toWebAuthnKey
} from "@zerodev/passkey-validator"
import {
type KernelSmartAccount,
type KernelValidator,
createKernelAccount
} from "@zerodev/sdk"
import type { EntryPoint } from "permissionless/types"
import { http, createPublicClient } from "viem"
import type { Config } from "../createConfig"
import {
PasskeyRegisterNoUsernameError,
Expand All @@ -19,7 +19,6 @@ import {
} from "../errors"
import type { KernelVersionType } from "../types"
import { ZERODEV_PASSKEY_URL } from "../utils/constants"
import { ZERODEV_BUNDLER_URL } from "../utils/constants"
import { getEntryPointFromVersion } from "../utils/entryPoint"
import { getWeb3AuthNValidatorFromVersion } from "../utils/webauthn"

Expand All @@ -44,7 +43,7 @@ export async function createKernelClientPasskey(
config: Config,
version: KernelVersionType,
parameters: CreateKernelClientPasskeyParameters
) {
): Promise<CreateKernelClientPasskeyReturnType> {
const { type, username } = parameters

const chainId = config.state.chainId
Expand All @@ -53,27 +52,32 @@ export async function createKernelClientPasskey(
const projectId = config.projectIds[chainId]
const client = config.getClient({ chainId })

let passkeyValidator: KernelValidator<EntryPoint>
let webAuthnKey: any
const entryPoint = getEntryPointFromVersion(version)
const webauthnValidator = getWeb3AuthNValidatorFromVersion(entryPoint)

if (type === "register") {
if (!username) {
throw new PasskeyRegisterNoUsernameError()
}
passkeyValidator = await createPasskeyValidator(client, {
webAuthnKey = await toWebAuthnKey({
passkeyName: username,
passkeyServerUrl: `${ZERODEV_PASSKEY_URL}/${projectId}`,
entryPoint: entryPoint,
validatorAddress: webauthnValidator
mode: WebAuthnMode.Register
})
} else {
passkeyValidator = await getPasskeyValidator(client, {
webAuthnKey = await toWebAuthnKey({
passkeyName: "",
passkeyServerUrl: `${ZERODEV_PASSKEY_URL}/${projectId}`,
entryPoint: entryPoint,
validatorAddress: webauthnValidator
mode: WebAuthnMode.Login
})
}
const passkeyValidator = await toPasskeyValidator(client, {
webAuthnKey,
passkeyServerUrl: `${ZERODEV_PASSKEY_URL}/${projectId}`,
entryPoint,
validatorAddress: webauthnValidator
})

const kernelAccount = await createKernelAccount(client, {
entryPoint: entryPoint,
Expand Down
14 changes: 11 additions & 3 deletions src/actions/switchChain.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { getWalletClient, switchChain as wagmi_switchChain } from "@wagmi/core"
import { signerToEcdsaValidator } from "@zerodev/ecdsa-validator"
import {
WebAuthnMode,
deserializePasskeyValidator,
getPasskeyValidator
toPasskeyValidator,
toWebAuthnKey
} from "@zerodev/passkey-validator"
import {
type KernelSmartAccount,
Expand Down Expand Up @@ -120,9 +122,15 @@ export async function switchChain<
} else {
const webauthnValidator =
getWeb3AuthNValidatorFromVersion(entryPoint)
passkeyValidator = await getPasskeyValidator(client, {
const webAuthnKey = await toWebAuthnKey({
passkeyName: "",
passkeyServerUrl: `${ZERODEV_PASSKEY_URL}/${projectId}`,
entryPoint: entryPoint,
mode: WebAuthnMode.Login
})
passkeyValidator = await toPasskeyValidator(client, {
webAuthnKey,
passkeyServerUrl: `${ZERODEV_PASSKEY_URL}/${projectId}`,
entryPoint,
validatorAddress: webauthnValidator
})
validator = passkeyValidator
Expand Down

0 comments on commit 89f42f3

Please sign in to comment.