diff --git a/.changeset/hungry-maps-punch.md b/.changeset/hungry-maps-punch.md new file mode 100644 index 00000000..b30c4a45 --- /dev/null +++ b/.changeset/hungry-maps-punch.md @@ -0,0 +1,5 @@ +--- +"@zerodev/permissions": patch +--- + +fix typing of serializePermissionAccount diff --git a/plugins/permission/serializeMultiChainPermissionAccounts.ts b/plugins/permission/serializeMultiChainPermissionAccounts.ts index 2eb0538b..61f6173e 100644 --- a/plugins/permission/serializeMultiChainPermissionAccounts.ts +++ b/plugins/permission/serializeMultiChainPermissionAccounts.ts @@ -9,20 +9,24 @@ import { hashTypedData, keccak256 } from "viem" -import type { SmartAccount } from "viem/account-abstraction" +import type { EntryPointVersion, SmartAccount } from "viem/account-abstraction" import type { PermissionPlugin } from "./types.js" import { isPermissionValidatorPlugin, serializePermissionAccountParams } from "./utils.js" -export type MultiChainPermissionAccountsParams = { - account: SmartAccount +export type MultiChainPermissionAccountsParams< + entryPointVersion extends EntryPointVersion +> = { + account: SmartAccount> privateKey?: Hex } -export const serializeMultiChainPermissionAccounts = async ( - params: MultiChainPermissionAccountsParams[] +export const serializeMultiChainPermissionAccounts = async < + entryPointVersion extends EntryPointVersion +>( + params: MultiChainPermissionAccountsParams[] ): Promise => { if (params.length === 0) return [] diff --git a/plugins/permission/serializePermissionAccount.ts b/plugins/permission/serializePermissionAccount.ts index a5c99b94..bb268fbb 100644 --- a/plugins/permission/serializePermissionAccount.ts +++ b/plugins/permission/serializePermissionAccount.ts @@ -1,13 +1,15 @@ import type { KernelSmartAccountImplementation } from "@zerodev/sdk" import type { Hex } from "viem" -import type { SmartAccount } from "viem/account-abstraction" +import type { EntryPointVersion, SmartAccount } from "viem/account-abstraction" import { isPermissionValidatorPlugin, serializePermissionAccountParams } from "./utils.js" -export const serializePermissionAccount = async ( - account: SmartAccount, +export const serializePermissionAccount = async < + entryPointVersion extends EntryPointVersion +>( + account: SmartAccount>, privateKey?: Hex, enableSignature?: Hex ): Promise => {