From b2ede22058107d21ace04fec66727a932ac5a5d3 Mon Sep 17 00:00:00 2001 From: mouseless <97399882+mouseless-eth@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:39:15 +0100 Subject: [PATCH 1/3] feat(simple): add 7702 factory for entrypoint v0.8 - Return factory address 0x7702 when using EntryPoint v0.8 - Enables EIP-7702 native account abstraction support --- .../permissionless/accounts/simple/toSimpleSmartAccount.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts b/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts index cef2de08..862b4948 100644 --- a/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts +++ b/packages/permissionless/accounts/simple/toSimpleSmartAccount.ts @@ -240,6 +240,12 @@ export async function toSimpleSmartAccount< return { accountAddress: localOwner.address, getFactoryArgs: async () => { + if (entryPoint.version === "0.8") { + return { + factory: "0x7702" as Hex, + factoryData: undefined + } + } return { factory: undefined, factoryData: undefined From 5a9a2707c4b6ccefebc57df89e5610d6f7e4e1ea Mon Sep 17 00:00:00 2001 From: mouseless <97399882+mouseless-eth@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:54:16 +0100 Subject: [PATCH 2/3] fix(simple): add 0x7702 marker in factoryData for simple smart account --- .changeset/strong-tires-like.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/strong-tires-like.md diff --git a/.changeset/strong-tires-like.md b/.changeset/strong-tires-like.md new file mode 100644 index 00000000..0b1a77dd --- /dev/null +++ b/.changeset/strong-tires-like.md @@ -0,0 +1,5 @@ +--- +"permissionless": patch +--- + +Fixed to7702SimpleSmartAccount by adding 0x7702 marker in factoryData From a82bc4a09996997ff8d454c04c4a602c00c30157 Mon Sep 17 00:00:00 2001 From: mouseless <97399882+mouseless-eth@users.noreply.github.com> Date: Thu, 13 Nov 2025 11:27:32 +0000 Subject: [PATCH 3/3] feat(mock-paymaster): support 0x7702 marker in factory field - Updated userOperationSchemaPaymasterV7 to accept 0x7702 literal - Updated eip7677UserOperationSchemaV7 to accept 0x7702 literal - Changed factory field to use union type for address or 0x7702 marker --- packages/mock-paymaster/helpers/schema.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/mock-paymaster/helpers/schema.ts b/packages/mock-paymaster/helpers/schema.ts index a488cacf..8837f77e 100644 --- a/packages/mock-paymaster/helpers/schema.ts +++ b/packages/mock-paymaster/helpers/schema.ts @@ -113,7 +113,11 @@ const userOperationSchemaPaymasterV7 = z .object({ sender: addressSchema, nonce: hexNumberSchema, - factory: addressSchema.optional().transform((val) => val ?? undefined), + factory: z + .union([addressSchema, z.literal("0x7702")]) + .nullable() + .optional() + .transform((val) => val ?? null), factoryData: hexDataSchema .optional() .transform((val) => val ?? undefined), @@ -208,7 +212,8 @@ const eip7677UserOperationSchemaV7 = z .object({ sender: addressSchema, nonce: hexNumberSchema, - factory: addressSchema + factory: z + .union([addressSchema, z.literal("0x7702")]) .nullable() .optional() .transform((val) => val ?? null),