@account-kit/smart-contracts 4.38.0 → 4.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/esm/src/light-account/accounts/base.js +49 -31
  2. package/dist/esm/src/light-account/accounts/base.js.map +1 -1
  3. package/dist/esm/src/ma-v2/account/common/modularAccountV2Base.d.ts +1 -1
  4. package/dist/esm/src/ma-v2/account/common/modularAccountV2Base.js.map +1 -1
  5. package/dist/esm/src/ma-v2/account/nativeSMASigner.d.ts +3 -1
  6. package/dist/esm/src/ma-v2/account/nativeSMASigner.js +64 -38
  7. package/dist/esm/src/ma-v2/account/nativeSMASigner.js.map +1 -1
  8. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.d.ts +3 -1
  9. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js +58 -39
  10. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js.map +1 -1
  11. package/dist/esm/src/ma-v2/utils.d.ts +1 -0
  12. package/dist/esm/src/ma-v2/utils.js +3 -0
  13. package/dist/esm/src/ma-v2/utils.js.map +1 -1
  14. package/dist/esm/src/msca/plugins/multi-owner/signer.d.ts +3 -1
  15. package/dist/esm/src/msca/plugins/multi-owner/signer.js +33 -7
  16. package/dist/esm/src/msca/plugins/multi-owner/signer.js.map +1 -1
  17. package/dist/esm/src/msca/plugins/multisig/signer.d.ts +3 -1
  18. package/dist/esm/src/msca/plugins/multisig/signer.js +33 -7
  19. package/dist/esm/src/msca/plugins/multisig/signer.js.map +1 -1
  20. package/dist/types/src/light-account/accounts/base.d.ts.map +1 -1
  21. package/dist/types/src/ma-v2/account/common/modularAccountV2Base.d.ts +1 -1
  22. package/dist/types/src/ma-v2/account/common/modularAccountV2Base.d.ts.map +1 -1
  23. package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts +3 -1
  24. package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts.map +1 -1
  25. package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts +3 -1
  26. package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts.map +1 -1
  27. package/dist/types/src/ma-v2/utils.d.ts +1 -0
  28. package/dist/types/src/ma-v2/utils.d.ts.map +1 -1
  29. package/dist/types/src/msca/plugins/multi-owner/signer.d.ts +3 -1
  30. package/dist/types/src/msca/plugins/multi-owner/signer.d.ts.map +1 -1
  31. package/dist/types/src/msca/plugins/multisig/signer.d.ts +3 -1
  32. package/dist/types/src/msca/plugins/multisig/signer.d.ts.map +1 -1
  33. package/package.json +5 -5
  34. package/src/light-account/accounts/base.ts +73 -44
  35. package/src/ma-v2/account/common/modularAccountV2Base.ts +2 -0
  36. package/src/ma-v2/account/nativeSMASigner.ts +87 -43
  37. package/src/ma-v2/modules/single-signer-validation/signer.ts +81 -44
  38. package/src/ma-v2/utils.ts +4 -0
  39. package/src/msca/plugins/multi-owner/signer.ts +47 -8
  40. package/src/msca/plugins/multisig/signer.ts +47 -8
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SmartAccountSigner } from \"@aa-sdk/core\";\nimport {\n type Address,\n type Chain,\n concat,\n concatHex,\n hashMessage,\n hashTypedData,\n type Hex,\n type SignableMessage,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport {\n getDefaultSingleSignerValidationModuleAddress,\n SignatureType,\n} from \"../utils.js\";\n\nimport { pack1271Signature, packUOSignature } from \"../../utils.js\";\n/**\n * Creates an object with methods for generating a dummy signature, signing user operation hashes, signing messages, and signing typed data.\n *\n * @example \n \n * ```ts\n * import { singleSignerMessageSigner } from \"@account-kit/smart-contracts\";\n * import { LocalAccountSigner } from \"@aa-sdk/core\";\n *\n * const MNEMONIC = \"...\":\n * \n * const account = createModularAccountV2({ config });\n *\n * const signer = LocalAccountSigner.mnemonicToAccountSigner(MNEMONIC);\n *\n * const messageSigner = singleSignerMessageSigner(signer, chain, account.address, account.signerEntity.entityId);\n * ```\n *\n * @param {SmartAccountSigner} signer Signer to use for signing operations\n * @param {Chain} chain Chain object for the signer\n * @param {Address} accountAddress address of the smart account using this signer\n * @param {number} entityId the entity id of the signing validation\n * @param {Hex} deferredActionData optional deferred action data to prepend to the uo signatures\n * @returns {object} an object with methods for signing operations and managing signatures\n */\nexport const singleSignerMessageSigner = (\n signer: SmartAccountSigner,\n chain: Chain,\n accountAddress: Address,\n entityId: number,\n deferredActionData?: Hex,\n) => {\n return {\n getDummySignature: (): Hex => {\n const sig = packUOSignature({\n // orderedHookData: [],\n validationSignature:\n \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\",\n });\n\n return deferredActionData ? concatHex([deferredActionData, sig]) : sig;\n },\n\n signUserOperationHash: async (uoHash: Hex): Promise<Hex> => {\n let sig = await signer\n .signMessage({ raw: uoHash })\n .then((signature: Hex) =>\n packUOSignature({\n // orderedHookData: [],\n validationSignature: signature,\n }),\n );\n\n if (deferredActionData) {\n sig = concatHex([deferredActionData, sig]);\n deferredActionData = undefined;\n }\n\n return sig;\n },\n\n // we apply the expected 1271 packing here since the account contract will expect it\n async signMessage({ message }: { message: SignableMessage }): Promise<Hex> {\n const hash = await hashMessage(message);\n\n return pack1271Signature({\n validationSignature: await signer.signTypedData({\n domain: {\n chainId: Number(chain.id),\n verifyingContract:\n getDefaultSingleSignerValidationModuleAddress(chain),\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n },\n types: {\n ReplaySafeHash: [{ name: \"hash\", type: \"bytes32\" }],\n },\n message: {\n hash,\n },\n primaryType: \"ReplaySafeHash\",\n }),\n entityId,\n });\n },\n\n // TODO: maybe move \"sign deferred actions\" to a separate function?\n // we don't apply the expected 1271 packing since deferred sigs use typed data sigs and don't expect the 1271 packing\n signTypedData: async <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n // the accounts domain already gives replay protection across accounts for deferred actions, so we don't need to apply another wrapping\n const isDeferredAction =\n typedDataDefinition.primaryType === \"DeferredAction\" &&\n typedDataDefinition.domain != null &&\n // @ts-expect-error the domain type I think changed in viem, so this is not working correctly (TODO: fix this)\n \"verifyingContract\" in typedDataDefinition.domain &&\n typedDataDefinition.domain.verifyingContract === accountAddress;\n\n const validationSignature = await signer.signTypedData({\n domain: {\n chainId: Number(chain.id),\n verifyingContract:\n getDefaultSingleSignerValidationModuleAddress(chain),\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n },\n types: {\n ReplaySafeHash: [{ name: \"hash\", type: \"bytes32\" }],\n },\n message: {\n hash: hashTypedData(typedDataDefinition),\n },\n primaryType: \"ReplaySafeHash\",\n });\n\n // TODO: Handle non-EOA signer case\n return isDeferredAction\n ? concat([SignatureType.EOA, validationSignature])\n : pack1271Signature({\n validationSignature,\n entityId,\n });\n },\n };\n};\n"]}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n SmartAccountSigner,\n SigningMethods,\n SignatureRequest,\n} from \"@aa-sdk/core\";\nimport {\n type Address,\n type Chain,\n concat,\n concatHex,\n hashMessage,\n hashTypedData,\n type Hex,\n type SignableMessage,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport {\n getDefaultSingleSignerValidationModuleAddress,\n SignatureType,\n} from \"../utils.js\";\nimport {\n packUOSignature,\n pack1271Signature,\n assertNeverSignatureRequestType,\n} from \"../../utils.js\";\n\n/**\n * Creates an object with methods for generating a dummy signature, signing user operation hashes, signing messages, and signing typed data.\n *\n * @example \n \n * ```ts\n * import { singleSignerMessageSigner } from \"@account-kit/smart-contracts\";\n * import { LocalAccountSigner } from \"@aa-sdk/core\";\n *\n * const MNEMONIC = \"...\":\n * \n * const account = createModularAccountV2({ config });\n *\n * const signer = LocalAccountSigner.mnemonicToAccountSigner(MNEMONIC);\n *\n * const messageSigner = singleSignerMessageSigner(signer, chain, account.address, account.signerEntity.entityId);\n * ```\n *\n * @param {SmartAccountSigner} signer Signer to use for signing operations\n * @param {Chain} chain Chain object for the signer\n * @param {Address} accountAddress address of the smart account using this signer\n * @param {number} entityId the entity id of the signing validation\n * @param {Hex} deferredActionData optional deferred action data to prepend to the uo signatures\n * @returns {object} an object with methods for signing operations and managing signatures\n */\nexport const singleSignerMessageSigner = (\n signer: SmartAccountSigner,\n chain: Chain,\n accountAddress: Address,\n entityId: number,\n deferredActionData?: Hex,\n) => {\n const signingMethods: SigningMethods = {\n prepareSign: async (\n request: SignatureRequest,\n ): Promise<SignatureRequest> => {\n let hash;\n\n switch (request.type) {\n case \"personal_sign\":\n hash = hashMessage(request.data);\n break;\n\n case \"eth_signTypedData_v4\":\n hash = await hashTypedData(request.data);\n break;\n\n default:\n assertNeverSignatureRequestType();\n }\n\n return {\n type: \"eth_signTypedData_v4\",\n data: {\n domain: {\n chainId: Number(chain.id),\n verifyingContract:\n getDefaultSingleSignerValidationModuleAddress(chain),\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n },\n types: {\n ReplaySafeHash: [{ name: \"hash\", type: \"bytes32\" }],\n },\n message: {\n hash,\n },\n primaryType: \"ReplaySafeHash\",\n },\n };\n },\n formatSign: async (signature: Hex) => {\n return pack1271Signature({\n validationSignature: signature,\n entityId,\n });\n },\n };\n\n return {\n ...signingMethods,\n getDummySignature: (): Hex => {\n const sig = packUOSignature({\n // orderedHookData: [],\n validationSignature:\n \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\",\n });\n\n return deferredActionData ? concatHex([deferredActionData, sig]) : sig;\n },\n\n signUserOperationHash: async (uoHash: Hex): Promise<Hex> => {\n let sig = await signer\n .signMessage({ raw: uoHash })\n .then((signature: Hex) =>\n packUOSignature({\n // orderedHookData: [],\n validationSignature: signature,\n }),\n );\n\n if (deferredActionData) {\n sig = concatHex([deferredActionData, sig]);\n deferredActionData = undefined;\n }\n\n return sig;\n },\n\n // we apply the expected 1271 packing here since the account contract will expect it\n async signMessage({ message }: { message: SignableMessage }): Promise<Hex> {\n const { type, data } = await signingMethods.prepareSign({\n type: \"personal_sign\",\n data: message,\n });\n\n if (type !== \"eth_signTypedData_v4\") {\n throw new Error(\"Invalid signature request type\");\n }\n\n const sig = await signer.signTypedData(data);\n\n return signingMethods.formatSign(sig);\n },\n\n // TODO: maybe move \"sign deferred actions\" to a separate function?\n // we don't apply the expected 1271 packing since deferred sigs use typed data sigs and don't expect the 1271 packing\n signTypedData: async <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n const { type, data } = await signingMethods.prepareSign({\n type: \"eth_signTypedData_v4\",\n data: typedDataDefinition as TypedDataDefinition,\n });\n\n if (type !== \"eth_signTypedData_v4\") {\n throw new Error(\"Invalid signature request type\");\n }\n\n const sig = await signer.signTypedData(data);\n\n const isDeferredAction =\n typedDataDefinition.primaryType === \"DeferredAction\" &&\n typedDataDefinition.domain != null &&\n // @ts-expect-error the domain type I think changed in viem, so this is not working correctly (TODO: fix this)\n \"verifyingContract\" in typedDataDefinition.domain &&\n typedDataDefinition.domain.verifyingContract === accountAddress;\n\n return isDeferredAction\n ? concat([SignatureType.EOA, sig])\n : signingMethods.formatSign(sig);\n },\n };\n};\n"]}
@@ -104,3 +104,4 @@ export type BuildDeferredActionDigestParams = {
104
104
  * @returns {Hex} The encoded digest to be prepended to the userOp signature
105
105
  */
106
106
  export declare const buildDeferredActionDigest: ({ fullPreSignatureDeferredActionDigest, sig, }: BuildDeferredActionDigestParams) => Hex;
107
+ export declare const assertNeverSignatureRequestType: () => never;
@@ -191,4 +191,7 @@ export const buildDeferredActionDigest = ({ fullPreSignatureDeferredActionDigest
191
191
  ]);
192
192
  return encodedData;
193
193
  };
194
+ export const assertNeverSignatureRequestType = () => {
195
+ throw new Error("Invalid signature request type ");
196
+ };
194
197
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n concat,\n toHex,\n custom,\n encodeFunctionData,\n type Hex,\n type Chain,\n type Address,\n type Transport,\n parseAbi,\n size,\n concatHex,\n hexToNumber,\n} from \"viem\";\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n} from \"@account-kit/infra\";\nimport { createModularAccountV2 } from \"./account/modularAccountV2.js\";\nimport { type ModularAccountV2 } from \"./account/common/modularAccountV2Base.js\";\nimport { semiModularAccountStorageAbi } from \"./abis/semiModularAccountStorageAbi.js\";\nimport {\n AccountNotFoundError,\n ChainNotFoundError,\n type GetAccountParameter,\n type SmartAccountClient,\n type SmartAccountSigner,\n type SmartContractAccountWithSigner,\n type UpgradeToData,\n} from \"@aa-sdk/core\";\n\nexport const DEFAULT_OWNER_ENTITY_ID = 0;\n\nexport type PackUOSignatureParams = {\n // orderedHookData: HookData[];\n validationSignature: Hex;\n};\n\n// TODO: direct call validation 1271\nexport type Pack1271SignatureParams = {\n validationSignature: Hex;\n entityId: number;\n};\n\n// Signature packing utility for user operations\nexport const packUOSignature = ({\n // orderedHookData, TODO: integrate in next iteration of MAv2 sdk\n validationSignature,\n}: PackUOSignatureParams): Hex => {\n return concat([\"0xFF\", \"0x00\", validationSignature]);\n};\n\n// Signature packing utility for 1271 signatures\nexport const pack1271Signature = ({\n validationSignature,\n entityId,\n}: Pack1271SignatureParams): Hex => {\n return concat([\n \"0x00\",\n toHex(entityId, { size: 4 }),\n \"0xFF\",\n \"0x00\", // EOA type signature\n validationSignature,\n ]);\n};\n\nexport const getDefaultMAV2FactoryAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000017c61b5bEe81050EC8eFc9c6fecd\";\n }\n};\n\nexport const getDefaultSMAV2BytecodeAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x000000000000c5A9089039570Dd36455b5C07383\";\n }\n};\n\nexport const getDefaultSMAV2StorageAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x0000000000006E2f9d80CaEc0Da6500f005EB25A\";\n }\n};\n\nexport const getDefaultSMAV27702Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x69007702764179f14F51cdce752f4f775d74E139\";\n }\n};\n\nexport const getDefaultMAV2Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000002377B26b1EdA7b0BC371C60DD4f\";\n }\n};\n\nexport type GetMAV2UpgradeToData<\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined,\n> = GetAccountParameter<TAccount>;\n\n/**\n * Retrieves the data necessary to upgrade to a Modular Account V2 (MA v2).\n * Note that the upgrade will be to the Semi Modular Account Storage variant\n *\n * @example\n * ```ts\n * import { createLightAccountClient, getMAV2UpgradeToData } from \"@account-kit/smart-contracts\";\n *\n * const client = createLightAccountClient({});\n * const upgradeData = await getMAV2UpgradeToData(client, {});\n * ```\n *\n * @param {SmartAccountClient<TTransport, TChain, TAccount>} client The smart account client\n * @param {GetMAV2UpgradeToData<TSigner, TAccount>} args The arguments required for the upgrade\n * @returns {Promise<UpgradeToData & { createModularAccountV2FromExisting: () => Promise<ModularAccountV2<TSigner>>}>} A promise that resolves to upgrade data augmented with a function to create a Modular Account V2\n */\nexport async function getMAV2UpgradeToData<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined,\n>(\n client: SmartAccountClient<TTransport, TChain, TAccount>,\n args: GetMAV2UpgradeToData<TSigner, TAccount>,\n): Promise<\n UpgradeToData & {\n createModularAccountV2FromExisting: () => Promise<\n ModularAccountV2<TSigner>\n >;\n }\n> {\n const { account: account_ = client.account } = args;\n\n if (!account_) {\n throw new AccountNotFoundError();\n }\n const account = account_ as SmartContractAccountWithSigner<string, TSigner>;\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const initData = encodeFunctionData({\n abi: semiModularAccountStorageAbi,\n functionName: \"initialize\",\n args: [await account.getSigner().getAddress()],\n });\n\n return {\n implAddress: getDefaultSMAV2StorageAddress(chain),\n initializationData: initData,\n createModularAccountV2FromExisting: async () =>\n createModularAccountV2({\n transport: custom(client.transport),\n chain: chain as Chain,\n signer: account.getSigner(),\n accountAddress: account.address,\n }),\n };\n}\n\nexport const entityIdAndNonceReaderBytecode =\n \"0x608060405234801561001057600080fd5b506040516104f13803806104f183398101604081905261002f916101e5565b60006008826001600160c01b0316901c90506000808263ffffffff1611610057576001610059565b815b90506001600160a01b0385163b15610133575b60006001600160a01b03861663d31b575b6bffffffff0000000000000000604085901b166040516001600160e01b031960e084901b1681526001600160401b03199091166004820152602401600060405180830381865afa1580156100d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100fd91908101906103c6565b805190915060ff161580156101155750606081015151155b156101205750610133565b8161012a816104a4565b9250505061006c565b604051631aab3f0d60e11b81526001600160a01b03868116600483015264ffffffff01600160c01b038516600884901b64ffffffff0016176024830152600091908616906335567e1a90604401602060405180830381865afa15801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c191906104d7565b90508060005260206000f35b6001600160a01b03811681146101e257600080fd5b50565b6000806000606084860312156101fa57600080fd5b8351610205816101cd565b6020850151909350610216816101cd565b60408501519092506001600160c01b038116811461023357600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156102765761027661023e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102a4576102a461023e565b604052919050565b60006001600160401b038211156102c5576102c561023e565b5060051b60200190565b600082601f8301126102e057600080fd5b81516102f36102ee826102ac565b61027c565b8082825260208201915060208360051b86010192508583111561031557600080fd5b602085015b8381101561034857805166ffffffffffffff198116811461033a57600080fd5b83526020928301920161031a565b5095945050505050565b600082601f83011261036357600080fd5b81516103716102ee826102ac565b8082825260208201915060208360051b86010192508583111561039357600080fd5b602085015b838110156103485780516001600160e01b0319811681146103b857600080fd5b835260209283019201610398565b6000602082840312156103d857600080fd5b81516001600160401b038111156103ee57600080fd5b82016080818503121561040057600080fd5b610408610254565b815160ff8116811461041957600080fd5b815260208201516001600160401b0381111561043457600080fd5b610440868285016102cf565b60208301525060408201516001600160401b0381111561045f57600080fd5b61046b868285016102cf565b60408301525060608201516001600160401b0381111561048a57600080fd5b61049686828501610352565b606083015250949350505050565b600063ffffffff821663ffffffff81036104ce57634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000602082840312156104e957600080fd5b505191905056fe\";\n\nexport const mintableERC20Bytecode =\n \"0x608060405234801561000f575f80fd5b506040518060400160405280600d81526020016c26b4b73a30b13632aa37b5b2b760991b81525060405180604001604052806002815260200161135560f21b8152508160039081610060919061010d565b50600461006d828261010d565b5050506101c7565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009d57607f821691505b6020821081036100bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010857805f5260205f20601f840160051c810160208510156100e65750805b601f840160051c820191505b81811015610105575f81556001016100f2565b50505b505050565b81516001600160401b0381111561012657610126610075565b61013a816101348454610089565b846100c1565b6020601f82116001811461016c575f83156101555750848201515b5f19600385901b1c1916600184901b178455610105565b5f84815260208120601f198516915b8281101561019b578785015182556020948501946001909201910161017b565b50848210156101b857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610737806101d45f395ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c806306fdde0314610090578063095ea7b3146100ae57806318160ddd146100d157806323b872dd146100e3578063313ce567146100f657806340c10f191461010557806370a082311461011a57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d575b5f80fd5b610098610170565b6040516100a59190610572565b60405180910390f35b6100c16100bc3660046105c2565b610200565b60405190151581526020016100a5565b6002545b6040519081526020016100a5565b6100c16100f13660046105ea565b610219565b604051601281526020016100a5565b6101186101133660046105c2565b61023c565b005b6100d5610128366004610624565b6001600160a01b03165f9081526020819052604090205490565b61009861024a565b6100c16101583660046105c2565b610259565b6100d561016b366004610644565b610266565b60606003805461017f90610675565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab90610675565b80156101f65780601f106101cd576101008083540402835291602001916101f6565b820191905f5260205f20905b8154815290600101906020018083116101d957829003601f168201915b5050505050905090565b5f3361020d818585610290565b60019150505b92915050565b5f336102268582856102a2565b6102318585856102fc565b506001949350505050565b6102468282610359565b5050565b60606004805461017f90610675565b5f3361020d8185856102fc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61029d838383600161038d565b505050565b5f6102ad8484610266565b90505f198110156102f657818110156102e857828183604051637dc7a0d960e11b81526004016102df939291906106ad565b60405180910390fd5b6102f684848484035f61038d565b50505050565b6001600160a01b038316610325575f604051634b637e8f60e11b81526004016102df91906106ce565b6001600160a01b03821661034e575f60405163ec442f0560e01b81526004016102df91906106ce565b61029d83838361045f565b6001600160a01b038216610382575f60405163ec442f0560e01b81526004016102df91906106ce565b6102465f838361045f565b6001600160a01b0384166103b6575f60405163e602df0560e01b81526004016102df91906106ce565b6001600160a01b0383166103df575f604051634a1406b160e11b81526004016102df91906106ce565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102f657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161045191815260200190565b60405180910390a350505050565b6001600160a01b038316610489578060025f82825461047e91906106e2565b909155506104e69050565b6001600160a01b0383165f90815260208190526040902054818110156104c85783818360405163391434e360e21b81526004016102df939291906106ad565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661050257600280548290039055610520565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161056591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105bd575f80fd5b919050565b5f80604083850312156105d3575f80fd5b6105dc836105a7565b946020939093013593505050565b5f805f606084860312156105fc575f80fd5b610605846105a7565b9250610613602085016105a7565b929592945050506040919091013590565b5f60208284031215610634575f80fd5b61063d826105a7565b9392505050565b5f8060408385031215610655575f80fd5b61065e836105a7565b915061066c602084016105a7565b90509250929050565b600181811c9082168061068957607f821691505b6020821081036106a757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b8082018082111561021357634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f9ae46a2e15270bfb77fe3d4d0ee0e45b749e3dde93805ee2cf795cb800244e664736f6c634300081a0033\";\n\nexport const mintableERC20Abi = parseAbi([\n \"function transfer(address to, uint256 amount) external\",\n \"function mint(address to, uint256 amount) external\",\n \"function balanceOf(address target) external returns (uint256)\",\n]);\n\nexport type BuildNonceParams = {\n nonceKey?: bigint;\n entityId?: number;\n isGlobalValidation?: boolean;\n isDeferredAction?: boolean;\n isDirectCallValidation?: boolean;\n};\n\nexport const buildFullNonceKey = ({\n nonceKey = 0n,\n entityId = 0,\n isGlobalValidation = true,\n isDeferredAction = false,\n}: BuildNonceParams): bigint => {\n return (\n (nonceKey << 40n) +\n BigInt(entityId << 8) +\n (isDeferredAction ? 2n : 0n) +\n (isGlobalValidation ? 1n : 0n)\n );\n};\n\n// Parses out the 3 components from a deferred action\nexport const parseDeferredAction = (\n deferredAction: Hex,\n): {\n entityId: number;\n isGlobalValidation: boolean;\n nonce: bigint;\n deferredActionData: Hex;\n hasAssociatedExecHooks: boolean;\n} => {\n // 2 for 0x, 2 for 00/01, 38 for parallel nonce, 8 for entity id, 2 for options byte, 16 for parallel nonce\n return {\n entityId: hexToNumber(`0x${deferredAction.slice(42, 50)}`),\n isGlobalValidation:\n hexToNumber(`0x${deferredAction.slice(50, 52)}`) % 2 === 1,\n nonce: BigInt(`0x${deferredAction.slice(4, 68)}`),\n deferredActionData: `0x${deferredAction.slice(68)}` as `0x${string}`,\n hasAssociatedExecHooks: deferredAction[3] === \"1\",\n };\n};\nexport type BuildDeferredActionDigestParams = {\n fullPreSignatureDeferredActionDigest: Hex;\n sig: Hex;\n};\n\n/**\n * Creates the digest which must be prepended to the userOp signature.\n *\n * Assumption: The client this extends is used to sign the typed data.\n *\n * @param {object} args The argument object containing the following:\n * @param {Hex} args.fullPreSignatureDeferredActionDigest The The data to append the signature and length to\n * @param {Hex} args.sig The signature to include in the digest\n * @returns {Hex} The encoded digest to be prepended to the userOp signature\n */\nexport const buildDeferredActionDigest = ({\n fullPreSignatureDeferredActionDigest,\n sig,\n}: BuildDeferredActionDigestParams): Hex => {\n const sigLength = size(sig);\n\n const encodedData = concatHex([\n fullPreSignatureDeferredActionDigest,\n toHex(sigLength, { size: 4 }),\n sig,\n ]);\n return encodedData;\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n concat,\n toHex,\n custom,\n encodeFunctionData,\n type Hex,\n type Chain,\n type Address,\n type Transport,\n parseAbi,\n size,\n concatHex,\n hexToNumber,\n} from \"viem\";\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n} from \"@account-kit/infra\";\nimport { createModularAccountV2 } from \"./account/modularAccountV2.js\";\nimport { type ModularAccountV2 } from \"./account/common/modularAccountV2Base.js\";\nimport { semiModularAccountStorageAbi } from \"./abis/semiModularAccountStorageAbi.js\";\nimport {\n AccountNotFoundError,\n ChainNotFoundError,\n type GetAccountParameter,\n type SmartAccountClient,\n type SmartAccountSigner,\n type SmartContractAccountWithSigner,\n type UpgradeToData,\n} from \"@aa-sdk/core\";\n\nexport const DEFAULT_OWNER_ENTITY_ID = 0;\n\nexport type PackUOSignatureParams = {\n // orderedHookData: HookData[];\n validationSignature: Hex;\n};\n\n// TODO: direct call validation 1271\nexport type Pack1271SignatureParams = {\n validationSignature: Hex;\n entityId: number;\n};\n\n// Signature packing utility for user operations\nexport const packUOSignature = ({\n // orderedHookData, TODO: integrate in next iteration of MAv2 sdk\n validationSignature,\n}: PackUOSignatureParams): Hex => {\n return concat([\"0xFF\", \"0x00\", validationSignature]);\n};\n\n// Signature packing utility for 1271 signatures\nexport const pack1271Signature = ({\n validationSignature,\n entityId,\n}: Pack1271SignatureParams): Hex => {\n return concat([\n \"0x00\",\n toHex(entityId, { size: 4 }),\n \"0xFF\",\n \"0x00\", // EOA type signature\n validationSignature,\n ]);\n};\n\nexport const getDefaultMAV2FactoryAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000017c61b5bEe81050EC8eFc9c6fecd\";\n }\n};\n\nexport const getDefaultSMAV2BytecodeAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x000000000000c5A9089039570Dd36455b5C07383\";\n }\n};\n\nexport const getDefaultSMAV2StorageAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x0000000000006E2f9d80CaEc0Da6500f005EB25A\";\n }\n};\n\nexport const getDefaultSMAV27702Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x69007702764179f14F51cdce752f4f775d74E139\";\n }\n};\n\nexport const getDefaultMAV2Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000002377B26b1EdA7b0BC371C60DD4f\";\n }\n};\n\nexport type GetMAV2UpgradeToData<\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined,\n> = GetAccountParameter<TAccount>;\n\n/**\n * Retrieves the data necessary to upgrade to a Modular Account V2 (MA v2).\n * Note that the upgrade will be to the Semi Modular Account Storage variant\n *\n * @example\n * ```ts\n * import { createLightAccountClient, getMAV2UpgradeToData } from \"@account-kit/smart-contracts\";\n *\n * const client = createLightAccountClient({});\n * const upgradeData = await getMAV2UpgradeToData(client, {});\n * ```\n *\n * @param {SmartAccountClient<TTransport, TChain, TAccount>} client The smart account client\n * @param {GetMAV2UpgradeToData<TSigner, TAccount>} args The arguments required for the upgrade\n * @returns {Promise<UpgradeToData & { createModularAccountV2FromExisting: () => Promise<ModularAccountV2<TSigner>>}>} A promise that resolves to upgrade data augmented with a function to create a Modular Account V2\n */\nexport async function getMAV2UpgradeToData<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined,\n>(\n client: SmartAccountClient<TTransport, TChain, TAccount>,\n args: GetMAV2UpgradeToData<TSigner, TAccount>,\n): Promise<\n UpgradeToData & {\n createModularAccountV2FromExisting: () => Promise<\n ModularAccountV2<TSigner>\n >;\n }\n> {\n const { account: account_ = client.account } = args;\n\n if (!account_) {\n throw new AccountNotFoundError();\n }\n const account = account_ as SmartContractAccountWithSigner<string, TSigner>;\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const initData = encodeFunctionData({\n abi: semiModularAccountStorageAbi,\n functionName: \"initialize\",\n args: [await account.getSigner().getAddress()],\n });\n\n return {\n implAddress: getDefaultSMAV2StorageAddress(chain),\n initializationData: initData,\n createModularAccountV2FromExisting: async () =>\n createModularAccountV2({\n transport: custom(client.transport),\n chain: chain as Chain,\n signer: account.getSigner(),\n accountAddress: account.address,\n }),\n };\n}\n\nexport const entityIdAndNonceReaderBytecode =\n \"0x608060405234801561001057600080fd5b506040516104f13803806104f183398101604081905261002f916101e5565b60006008826001600160c01b0316901c90506000808263ffffffff1611610057576001610059565b815b90506001600160a01b0385163b15610133575b60006001600160a01b03861663d31b575b6bffffffff0000000000000000604085901b166040516001600160e01b031960e084901b1681526001600160401b03199091166004820152602401600060405180830381865afa1580156100d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100fd91908101906103c6565b805190915060ff161580156101155750606081015151155b156101205750610133565b8161012a816104a4565b9250505061006c565b604051631aab3f0d60e11b81526001600160a01b03868116600483015264ffffffff01600160c01b038516600884901b64ffffffff0016176024830152600091908616906335567e1a90604401602060405180830381865afa15801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c191906104d7565b90508060005260206000f35b6001600160a01b03811681146101e257600080fd5b50565b6000806000606084860312156101fa57600080fd5b8351610205816101cd565b6020850151909350610216816101cd565b60408501519092506001600160c01b038116811461023357600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156102765761027661023e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102a4576102a461023e565b604052919050565b60006001600160401b038211156102c5576102c561023e565b5060051b60200190565b600082601f8301126102e057600080fd5b81516102f36102ee826102ac565b61027c565b8082825260208201915060208360051b86010192508583111561031557600080fd5b602085015b8381101561034857805166ffffffffffffff198116811461033a57600080fd5b83526020928301920161031a565b5095945050505050565b600082601f83011261036357600080fd5b81516103716102ee826102ac565b8082825260208201915060208360051b86010192508583111561039357600080fd5b602085015b838110156103485780516001600160e01b0319811681146103b857600080fd5b835260209283019201610398565b6000602082840312156103d857600080fd5b81516001600160401b038111156103ee57600080fd5b82016080818503121561040057600080fd5b610408610254565b815160ff8116811461041957600080fd5b815260208201516001600160401b0381111561043457600080fd5b610440868285016102cf565b60208301525060408201516001600160401b0381111561045f57600080fd5b61046b868285016102cf565b60408301525060608201516001600160401b0381111561048a57600080fd5b61049686828501610352565b606083015250949350505050565b600063ffffffff821663ffffffff81036104ce57634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000602082840312156104e957600080fd5b505191905056fe\";\n\nexport const mintableERC20Bytecode =\n \"0x608060405234801561000f575f80fd5b506040518060400160405280600d81526020016c26b4b73a30b13632aa37b5b2b760991b81525060405180604001604052806002815260200161135560f21b8152508160039081610060919061010d565b50600461006d828261010d565b5050506101c7565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009d57607f821691505b6020821081036100bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010857805f5260205f20601f840160051c810160208510156100e65750805b601f840160051c820191505b81811015610105575f81556001016100f2565b50505b505050565b81516001600160401b0381111561012657610126610075565b61013a816101348454610089565b846100c1565b6020601f82116001811461016c575f83156101555750848201515b5f19600385901b1c1916600184901b178455610105565b5f84815260208120601f198516915b8281101561019b578785015182556020948501946001909201910161017b565b50848210156101b857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610737806101d45f395ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c806306fdde0314610090578063095ea7b3146100ae57806318160ddd146100d157806323b872dd146100e3578063313ce567146100f657806340c10f191461010557806370a082311461011a57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d575b5f80fd5b610098610170565b6040516100a59190610572565b60405180910390f35b6100c16100bc3660046105c2565b610200565b60405190151581526020016100a5565b6002545b6040519081526020016100a5565b6100c16100f13660046105ea565b610219565b604051601281526020016100a5565b6101186101133660046105c2565b61023c565b005b6100d5610128366004610624565b6001600160a01b03165f9081526020819052604090205490565b61009861024a565b6100c16101583660046105c2565b610259565b6100d561016b366004610644565b610266565b60606003805461017f90610675565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab90610675565b80156101f65780601f106101cd576101008083540402835291602001916101f6565b820191905f5260205f20905b8154815290600101906020018083116101d957829003601f168201915b5050505050905090565b5f3361020d818585610290565b60019150505b92915050565b5f336102268582856102a2565b6102318585856102fc565b506001949350505050565b6102468282610359565b5050565b60606004805461017f90610675565b5f3361020d8185856102fc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61029d838383600161038d565b505050565b5f6102ad8484610266565b90505f198110156102f657818110156102e857828183604051637dc7a0d960e11b81526004016102df939291906106ad565b60405180910390fd5b6102f684848484035f61038d565b50505050565b6001600160a01b038316610325575f604051634b637e8f60e11b81526004016102df91906106ce565b6001600160a01b03821661034e575f60405163ec442f0560e01b81526004016102df91906106ce565b61029d83838361045f565b6001600160a01b038216610382575f60405163ec442f0560e01b81526004016102df91906106ce565b6102465f838361045f565b6001600160a01b0384166103b6575f60405163e602df0560e01b81526004016102df91906106ce565b6001600160a01b0383166103df575f604051634a1406b160e11b81526004016102df91906106ce565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102f657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161045191815260200190565b60405180910390a350505050565b6001600160a01b038316610489578060025f82825461047e91906106e2565b909155506104e69050565b6001600160a01b0383165f90815260208190526040902054818110156104c85783818360405163391434e360e21b81526004016102df939291906106ad565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661050257600280548290039055610520565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161056591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105bd575f80fd5b919050565b5f80604083850312156105d3575f80fd5b6105dc836105a7565b946020939093013593505050565b5f805f606084860312156105fc575f80fd5b610605846105a7565b9250610613602085016105a7565b929592945050506040919091013590565b5f60208284031215610634575f80fd5b61063d826105a7565b9392505050565b5f8060408385031215610655575f80fd5b61065e836105a7565b915061066c602084016105a7565b90509250929050565b600181811c9082168061068957607f821691505b6020821081036106a757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b8082018082111561021357634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f9ae46a2e15270bfb77fe3d4d0ee0e45b749e3dde93805ee2cf795cb800244e664736f6c634300081a0033\";\n\nexport const mintableERC20Abi = parseAbi([\n \"function transfer(address to, uint256 amount) external\",\n \"function mint(address to, uint256 amount) external\",\n \"function balanceOf(address target) external returns (uint256)\",\n]);\n\nexport type BuildNonceParams = {\n nonceKey?: bigint;\n entityId?: number;\n isGlobalValidation?: boolean;\n isDeferredAction?: boolean;\n isDirectCallValidation?: boolean;\n};\n\nexport const buildFullNonceKey = ({\n nonceKey = 0n,\n entityId = 0,\n isGlobalValidation = true,\n isDeferredAction = false,\n}: BuildNonceParams): bigint => {\n return (\n (nonceKey << 40n) +\n BigInt(entityId << 8) +\n (isDeferredAction ? 2n : 0n) +\n (isGlobalValidation ? 1n : 0n)\n );\n};\n\n// Parses out the 3 components from a deferred action\nexport const parseDeferredAction = (\n deferredAction: Hex,\n): {\n entityId: number;\n isGlobalValidation: boolean;\n nonce: bigint;\n deferredActionData: Hex;\n hasAssociatedExecHooks: boolean;\n} => {\n // 2 for 0x, 2 for 00/01, 38 for parallel nonce, 8 for entity id, 2 for options byte, 16 for parallel nonce\n return {\n entityId: hexToNumber(`0x${deferredAction.slice(42, 50)}`),\n isGlobalValidation:\n hexToNumber(`0x${deferredAction.slice(50, 52)}`) % 2 === 1,\n nonce: BigInt(`0x${deferredAction.slice(4, 68)}`),\n deferredActionData: `0x${deferredAction.slice(68)}` as `0x${string}`,\n hasAssociatedExecHooks: deferredAction[3] === \"1\",\n };\n};\nexport type BuildDeferredActionDigestParams = {\n fullPreSignatureDeferredActionDigest: Hex;\n sig: Hex;\n};\n\n/**\n * Creates the digest which must be prepended to the userOp signature.\n *\n * Assumption: The client this extends is used to sign the typed data.\n *\n * @param {object} args The argument object containing the following:\n * @param {Hex} args.fullPreSignatureDeferredActionDigest The The data to append the signature and length to\n * @param {Hex} args.sig The signature to include in the digest\n * @returns {Hex} The encoded digest to be prepended to the userOp signature\n */\nexport const buildDeferredActionDigest = ({\n fullPreSignatureDeferredActionDigest,\n sig,\n}: BuildDeferredActionDigestParams): Hex => {\n const sigLength = size(sig);\n\n const encodedData = concatHex([\n fullPreSignatureDeferredActionDigest,\n toHex(sigLength, { size: 4 }),\n sig,\n ]);\n return encodedData;\n};\n\nexport const assertNeverSignatureRequestType = (): never => {\n throw new Error(\"Invalid signature request type \");\n};\n"]}
@@ -1,6 +1,8 @@
1
- import type { Address, BundlerClient, SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { Address, BundlerClient, SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Hex, type SignableMessage, type Transport, type TypedData, type TypedDataDefinition } from "viem";
3
3
  export declare const multiOwnerMessageSigner: <TTransport extends Transport, TSigner extends SmartAccountSigner>(client: BundlerClient<TTransport>, accountAddress: Address, signer: () => TSigner, pluginAddress?: Address) => {
4
+ prepareSign: (params: SignatureRequest) => Promise<SignatureRequest>;
5
+ formatSign: (signature: `0x${string}`) => Promise<`0x${string}`>;
4
6
  getDummySignature: () => Hex;
5
7
  signUserOperationHash: (uoHash: `0x${string}`) => Promise<`0x${string}`>;
6
8
  signMessage({ message, }: {
@@ -1,14 +1,14 @@
1
1
  import { hashMessage, hashTypedData, } from "viem";
2
2
  import { MultiOwnerPlugin, MultiOwnerPluginAbi } from "./plugin.js";
3
3
  export const multiOwnerMessageSigner = (client, accountAddress, signer, pluginAddress = MultiOwnerPlugin.meta.addresses[client.chain.id]) => {
4
- const signWith712Wrapper = async (msg) => {
4
+ const get712Wrapper = async (msg) => {
5
5
  const [, name, version, chainId, verifyingContract, salt] = await client.readContract({
6
6
  abi: MultiOwnerPluginAbi,
7
7
  address: pluginAddress,
8
8
  functionName: "eip712Domain",
9
9
  account: accountAddress,
10
10
  });
11
- return signer().signTypedData({
11
+ return {
12
12
  domain: {
13
13
  chainId: Number(chainId),
14
14
  name,
@@ -23,20 +23,46 @@ export const multiOwnerMessageSigner = (client, accountAddress, signer, pluginAd
23
23
  message: msg,
24
24
  },
25
25
  primaryType: "AlchemyModularAccountMessage",
26
- });
26
+ };
27
+ };
28
+ const prepareSign = async (params) => {
29
+ const data = await get712Wrapper(params.type === "personal_sign"
30
+ ? hashMessage(params.data)
31
+ : hashTypedData(params.data));
32
+ return {
33
+ type: "eth_signTypedData_v4",
34
+ data,
35
+ };
36
+ };
37
+ const formatSign = async (signature) => {
38
+ return signature;
27
39
  };
28
40
  return {
41
+ prepareSign,
42
+ formatSign,
29
43
  getDummySignature: () => {
30
44
  return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
31
45
  },
32
46
  signUserOperationHash: (uoHash) => {
33
47
  return signer().signMessage({ raw: uoHash });
34
48
  },
35
- signMessage({ message, }) {
36
- return signWith712Wrapper(hashMessage(message));
49
+ async signMessage({ message, }) {
50
+ const { type, data } = await prepareSign({
51
+ type: "personal_sign",
52
+ data: message,
53
+ });
54
+ return type === "personal_sign"
55
+ ? signer().signMessage(data)
56
+ : signer().signTypedData(data);
37
57
  },
38
- signTypedData: (typedDataDefinition) => {
39
- return signWith712Wrapper(hashTypedData(typedDataDefinition));
58
+ signTypedData: async (typedDataDefinition) => {
59
+ const { type, data } = await prepareSign({
60
+ type: "eth_signTypedData_v4",
61
+ data: typedDataDefinition,
62
+ });
63
+ return type === "personal_sign"
64
+ ? signer().signMessage(data)
65
+ : signer().signTypedData(data);
40
66
  },
41
67
  };
42
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/signer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,GAOd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAIrC,MAAiC,EACjC,cAAuB,EACvB,MAAqB,EACrB,gBAAyB,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EACzE,EAAE;IACF,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAS,EAA0B,EAAE;QACrE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,GACvD,MAAM,MAAM,CAAC,YAAY,CAAC;YACxB,GAAG,EAAE,mBAAmB;YACxB,OAAO,EAAE,aAAa;YACtB,YAAY,EAAE,cAAc;YAC5B,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEL,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC;YAC5B,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBACxB,IAAI;gBACJ,IAAI;gBACJ,iBAAiB;gBACjB,OAAO;aACR;YACD,KAAK,EAAE;gBACL,4BAA4B,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACnE;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,GAAG;aACb;YACD,WAAW,EAAE,8BAA8B;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,GAAQ,EAAE;YAC3B,OAAO,sIAAsI,CAAC;QAChJ,CAAC;QAED,qBAAqB,EAAE,CAAC,MAAqB,EAA0B,EAAE;YACvE,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,WAAW,CAAC,EACV,OAAO,GAGR;YACC,OAAO,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,aAAa,EAAE,CAIb,mBAAgE,EAClD,EAAE;YAChB,OAAO,kBAAkB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { Address, BundlerClient, SmartAccountSigner } from \"@aa-sdk/core\";\nimport {\n hashMessage,\n hashTypedData,\n type Hash,\n type Hex,\n type SignableMessage,\n type Transport,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport { MultiOwnerPlugin, MultiOwnerPluginAbi } from \"./plugin.js\";\n\nexport const multiOwnerMessageSigner = <\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n>(\n client: BundlerClient<TTransport>,\n accountAddress: Address,\n signer: () => TSigner,\n pluginAddress: Address = MultiOwnerPlugin.meta.addresses[client.chain.id],\n) => {\n const signWith712Wrapper = async (msg: Hash): Promise<`0x${string}`> => {\n const [, name, version, chainId, verifyingContract, salt] =\n await client.readContract({\n abi: MultiOwnerPluginAbi,\n address: pluginAddress,\n functionName: \"eip712Domain\",\n account: accountAddress,\n });\n\n return signer().signTypedData({\n domain: {\n chainId: Number(chainId),\n name,\n salt,\n verifyingContract,\n version,\n },\n types: {\n AlchemyModularAccountMessage: [{ name: \"message\", type: \"bytes\" }],\n },\n message: {\n message: msg,\n },\n primaryType: \"AlchemyModularAccountMessage\",\n });\n };\n\n return {\n getDummySignature: (): Hex => {\n return \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\";\n },\n\n signUserOperationHash: (uoHash: `0x${string}`): Promise<`0x${string}`> => {\n return signer().signMessage({ raw: uoHash });\n },\n\n signMessage({\n message,\n }: {\n message: SignableMessage;\n }): Promise<`0x${string}`> {\n return signWith712Wrapper(hashMessage(message));\n },\n\n signTypedData: <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n return signWith712Wrapper(hashTypedData(typedDataDefinition));\n },\n };\n};\n"]}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/signer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n Address,\n BundlerClient,\n SmartAccountSigner,\n SignatureRequest,\n} from \"@aa-sdk/core\";\nimport {\n hashMessage,\n hashTypedData,\n type Hash,\n type Hex,\n type SignableMessage,\n type Transport,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport { MultiOwnerPlugin, MultiOwnerPluginAbi } from \"./plugin.js\";\n\nexport const multiOwnerMessageSigner = <\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n>(\n client: BundlerClient<TTransport>,\n accountAddress: Address,\n signer: () => TSigner,\n pluginAddress: Address = MultiOwnerPlugin.meta.addresses[client.chain.id],\n) => {\n const get712Wrapper = async (msg: Hash): Promise<TypedDataDefinition> => {\n const [, name, version, chainId, verifyingContract, salt] =\n await client.readContract({\n abi: MultiOwnerPluginAbi,\n address: pluginAddress,\n functionName: \"eip712Domain\",\n account: accountAddress,\n });\n\n return {\n domain: {\n chainId: Number(chainId),\n name,\n salt,\n verifyingContract,\n version,\n },\n types: {\n AlchemyModularAccountMessage: [{ name: \"message\", type: \"bytes\" }],\n },\n message: {\n message: msg,\n },\n primaryType: \"AlchemyModularAccountMessage\",\n };\n };\n\n const prepareSign = async (\n params: SignatureRequest,\n ): Promise<SignatureRequest> => {\n const data = await get712Wrapper(\n params.type === \"personal_sign\"\n ? hashMessage(params.data)\n : hashTypedData(params.data),\n );\n return {\n type: \"eth_signTypedData_v4\",\n data,\n };\n };\n\n const formatSign = async (\n signature: `0x${string}`,\n ): Promise<`0x${string}`> => {\n return signature;\n };\n\n return {\n prepareSign,\n formatSign,\n getDummySignature: (): Hex => {\n return \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\";\n },\n\n signUserOperationHash: (uoHash: `0x${string}`): Promise<`0x${string}`> => {\n return signer().signMessage({ raw: uoHash });\n },\n\n async signMessage({\n message,\n }: {\n message: SignableMessage;\n }): Promise<`0x${string}`> {\n const { type, data } = await prepareSign({\n type: \"personal_sign\",\n data: message,\n });\n return type === \"personal_sign\"\n ? signer().signMessage(data)\n : signer().signTypedData(data);\n },\n\n signTypedData: async <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n const { type, data } = await prepareSign({\n type: \"eth_signTypedData_v4\",\n data: typedDataDefinition as TypedDataDefinition,\n });\n return type === \"personal_sign\"\n ? signer().signMessage(data)\n : signer().signTypedData(data);\n },\n };\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { Address, BundlerClient, SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { Address, BundlerClient, SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Hex, type SignableMessage, type Transport, type TypedData, type TypedDataDefinition } from "viem";
3
3
  type MultisigSignMethodsParams<TTransport extends Transport, TSigner extends SmartAccountSigner> = {
4
4
  client: BundlerClient<TTransport>;
@@ -8,6 +8,8 @@ type MultisigSignMethodsParams<TTransport extends Transport, TSigner extends Sma
8
8
  pluginAddress?: Address;
9
9
  };
10
10
  export declare const multisigSignMethods: <TTransport extends Transport, TSigner extends SmartAccountSigner>({ client, accountAddress, signer, threshold, pluginAddress, }: MultisigSignMethodsParams<TTransport, TSigner>) => {
11
+ prepareSign: (params: SignatureRequest) => Promise<SignatureRequest>;
12
+ formatSign: (signature: `0x${string}`) => Promise<`0x${string}`>;
11
13
  getDummySignature: () => Promise<`0x${string}`>;
12
14
  signUserOperationHash: (uoHash: Hex) => Promise<Hex>;
13
15
  signMessage({ message }: {
@@ -1,14 +1,14 @@
1
1
  import { hashMessage, hashTypedData, } from "viem";
2
2
  import { MultisigPlugin, MultisigPluginAbi } from "./plugin.js";
3
3
  export const multisigSignMethods = ({ client, accountAddress, signer, threshold, pluginAddress = MultisigPlugin.meta.addresses[client.chain.id], }) => {
4
- const signWith712Wrapper = async (msg) => {
4
+ const get712Wrapper = async (msg) => {
5
5
  const [, name, version, chainId, verifyingContract, salt] = await client.readContract({
6
6
  abi: MultisigPluginAbi,
7
7
  address: pluginAddress,
8
8
  functionName: "eip712Domain",
9
9
  account: accountAddress,
10
10
  });
11
- return signer().signTypedData({
11
+ return {
12
12
  domain: {
13
13
  chainId: Number(chainId),
14
14
  name,
@@ -23,9 +23,23 @@ export const multisigSignMethods = ({ client, accountAddress, signer, threshold,
23
23
  message: msg,
24
24
  },
25
25
  primaryType: "AlchemyMultisigMessage",
26
- });
26
+ };
27
+ };
28
+ const prepareSign = async (params) => {
29
+ const messageHash = params.type === "personal_sign"
30
+ ? hashMessage(params.data)
31
+ : hashTypedData(params.data);
32
+ return {
33
+ type: "eth_signTypedData_v4",
34
+ data: await get712Wrapper(messageHash),
35
+ };
36
+ };
37
+ const formatSign = async (signature) => {
38
+ return signature;
27
39
  };
28
40
  return {
41
+ prepareSign,
42
+ formatSign,
29
43
  getDummySignature: async () => {
30
44
  const [, thresholdRead] = await client.readContract({
31
45
  abi: MultisigPluginAbi,
@@ -44,11 +58,23 @@ export const multisigSignMethods = ({ client, accountAddress, signer, threshold,
44
58
  signUserOperationHash: (uoHash) => {
45
59
  return signer().signMessage({ raw: uoHash });
46
60
  },
47
- signMessage({ message }) {
48
- return signWith712Wrapper(hashMessage(message));
61
+ async signMessage({ message }) {
62
+ const { type, data } = await prepareSign({
63
+ type: "personal_sign",
64
+ data: message,
65
+ });
66
+ return type === "personal_sign"
67
+ ? signer().signMessage(data)
68
+ : signer().signTypedData(data);
49
69
  },
50
- signTypedData: (typedDataDefinition) => {
51
- return signWith712Wrapper(hashTypedData(typedDataDefinition));
70
+ signTypedData: async (typedDataDefinition) => {
71
+ const { type, data } = await prepareSign({
72
+ type: "eth_signTypedData_v4",
73
+ data: typedDataDefinition,
74
+ });
75
+ return type === "personal_sign"
76
+ ? signer().signMessage(data)
77
+ : signer().signTypedData(data);
52
78
  },
53
79
  };
54
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multisig/signer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,GAOd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAGjC,EACA,MAAM,EACN,cAAc,EACd,MAAM,EACN,SAAS,EACT,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GACf,EAAE,EAAE;IACnD,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAS,EAA0B,EAAE;QACrE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,GACvD,MAAM,MAAM,CAAC,YAAY,CAAC;YACxB,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,aAAa;YACtB,YAAY,EAAE,cAAc;YAC5B,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEL,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC;YAC5B,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBACxB,IAAI;gBACJ,IAAI;gBACJ,iBAAiB;gBACjB,OAAO;aACR;YACD,KAAK,EAAE;gBACL,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAC7D;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,GAAG;aACb;YACD,WAAW,EAAE,wBAAwB;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,KAAK,IAA4B,EAAE;YACpD,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBAClD,GAAG,EAAE,iBAAiB;gBACtB,OAAO,EAAE,aAAa;gBACtB,YAAY,EAAE,iBAAiB;gBAC/B,IAAI,EAAE,CAAC,cAAc,CAAC;aACvB,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAEzE,wGAAwG;YACxG,gDAAgD;YAChD,OAAO,CAAC,IAAI;gBACV,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnB,oIAAoI;gBACpI,oIAAoI,CAAC,MAAM,CACzI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAC5B,CAAQ,CAAC;QACd,CAAC;QAED,qBAAqB,EAAE,CAAC,MAAW,EAAgB,EAAE;YACnD,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,WAAW,CAAC,EAAE,OAAO,EAAgC;YACnD,OAAO,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,aAAa,EAAE,CAIb,mBAAgE,EAClD,EAAE;YAChB,OAAO,kBAAkB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { Address, BundlerClient, SmartAccountSigner } from \"@aa-sdk/core\";\nimport {\n hashMessage,\n hashTypedData,\n type Hash,\n type Hex,\n type SignableMessage,\n type Transport,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport { MultisigPlugin, MultisigPluginAbi } from \"./plugin.js\";\n\ntype MultisigSignMethodsParams<\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n> = {\n client: BundlerClient<TTransport>;\n accountAddress: Address;\n signer: () => TSigner;\n threshold: bigint;\n pluginAddress?: Address;\n};\n\nexport const multisigSignMethods = <\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n>({\n client,\n accountAddress,\n signer,\n threshold,\n pluginAddress = MultisigPlugin.meta.addresses[client.chain.id],\n}: MultisigSignMethodsParams<TTransport, TSigner>) => {\n const signWith712Wrapper = async (msg: Hash): Promise<`0x${string}`> => {\n const [, name, version, chainId, verifyingContract, salt] =\n await client.readContract({\n abi: MultisigPluginAbi,\n address: pluginAddress,\n functionName: \"eip712Domain\",\n account: accountAddress,\n });\n\n return signer().signTypedData({\n domain: {\n chainId: Number(chainId),\n name,\n salt,\n verifyingContract,\n version,\n },\n types: {\n AlchemyMultisigMessage: [{ name: \"message\", type: \"bytes\" }],\n },\n message: {\n message: msg,\n },\n primaryType: \"AlchemyMultisigMessage\",\n });\n };\n\n return {\n getDummySignature: async (): Promise<`0x${string}`> => {\n const [, thresholdRead] = await client.readContract({\n abi: MultisigPluginAbi,\n address: pluginAddress,\n functionName: \"ownershipInfoOf\",\n args: [accountAddress],\n });\n\n const actualThreshold = thresholdRead === 0n ? threshold : thresholdRead;\n\n // (uint upperLimitPreVerificationGas, uint upperLimitMaxFeePerGas, uint upperLimitMaxPriorityFeePerGas)\n // the first sig will be on \"actual\" with v = 32\n return (\"0x\" +\n \"FF\".repeat(32 * 3) +\n \"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3c\" +\n \"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\".repeat(\n Number(actualThreshold) - 1,\n )) as Hex;\n },\n\n signUserOperationHash: (uoHash: Hex): Promise<Hex> => {\n return signer().signMessage({ raw: uoHash });\n },\n\n signMessage({ message }: { message: SignableMessage }): Promise<Hex> {\n return signWith712Wrapper(hashMessage(message));\n },\n\n signTypedData: <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n return signWith712Wrapper(hashTypedData(typedDataDefinition));\n },\n };\n};\n"]}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multisig/signer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n Address,\n BundlerClient,\n SmartAccountSigner,\n SignatureRequest,\n} from \"@aa-sdk/core\";\nimport {\n hashMessage,\n hashTypedData,\n type Hash,\n type Hex,\n type SignableMessage,\n type Transport,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport { MultisigPlugin, MultisigPluginAbi } from \"./plugin.js\";\n\ntype MultisigSignMethodsParams<\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n> = {\n client: BundlerClient<TTransport>;\n accountAddress: Address;\n signer: () => TSigner;\n threshold: bigint;\n pluginAddress?: Address;\n};\n\nexport const multisigSignMethods = <\n TTransport extends Transport,\n TSigner extends SmartAccountSigner,\n>({\n client,\n accountAddress,\n signer,\n threshold,\n pluginAddress = MultisigPlugin.meta.addresses[client.chain.id],\n}: MultisigSignMethodsParams<TTransport, TSigner>) => {\n const get712Wrapper = async (msg: Hash): Promise<TypedDataDefinition> => {\n const [, name, version, chainId, verifyingContract, salt] =\n await client.readContract({\n abi: MultisigPluginAbi,\n address: pluginAddress,\n functionName: \"eip712Domain\",\n account: accountAddress,\n });\n\n return {\n domain: {\n chainId: Number(chainId),\n name,\n salt,\n verifyingContract,\n version,\n },\n types: {\n AlchemyMultisigMessage: [{ name: \"message\", type: \"bytes\" }],\n },\n message: {\n message: msg,\n },\n primaryType: \"AlchemyMultisigMessage\",\n };\n };\n\n const prepareSign = async (\n params: SignatureRequest,\n ): Promise<SignatureRequest> => {\n const messageHash =\n params.type === \"personal_sign\"\n ? hashMessage(params.data)\n : hashTypedData(params.data);\n\n return {\n type: \"eth_signTypedData_v4\",\n data: await get712Wrapper(messageHash),\n };\n };\n\n const formatSign = async (\n signature: `0x${string}`,\n ): Promise<`0x${string}`> => {\n return signature;\n };\n\n return {\n prepareSign,\n formatSign,\n getDummySignature: async (): Promise<`0x${string}`> => {\n const [, thresholdRead] = await client.readContract({\n abi: MultisigPluginAbi,\n address: pluginAddress,\n functionName: \"ownershipInfoOf\",\n args: [accountAddress],\n });\n\n const actualThreshold = thresholdRead === 0n ? threshold : thresholdRead;\n\n // (uint upperLimitPreVerificationGas, uint upperLimitMaxFeePerGas, uint upperLimitMaxPriorityFeePerGas)\n // the first sig will be on \"actual\" with v = 32\n return (\"0x\" +\n \"FF\".repeat(32 * 3) +\n \"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3c\" +\n \"fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\".repeat(\n Number(actualThreshold) - 1,\n )) as Hex;\n },\n\n signUserOperationHash: (uoHash: Hex): Promise<Hex> => {\n return signer().signMessage({ raw: uoHash });\n },\n\n async signMessage({ message }: { message: SignableMessage }): Promise<Hex> {\n const { type, data } = await prepareSign({\n type: \"personal_sign\",\n data: message,\n });\n return type === \"personal_sign\"\n ? signer().signMessage(data)\n : signer().signTypedData(data);\n },\n\n signTypedData: async <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData,\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>,\n ): Promise<Hex> => {\n const { type, data } = await prepareSign({\n type: \"eth_signTypedData_v4\",\n data: typedDataDefinition as TypedDataDefinition,\n });\n return type === \"personal_sign\"\n ? signer().signMessage(data)\n : signer().signTypedData(data);\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/light-account/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAElC,MAAM,cAAc,CAAC;AACtB,OAAO,EAOL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AASrB,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,iBAAiB,SAAS,gBAAgB,GAAG,gBAAgB,EAC7D,oBAAoB,SAClB,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,IAC/E,8BAA8B,CAChC,iBAAiB,EACjB,OAAO,EACP,6BAA6B,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CACvE,GAAG;IACF,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;CACpD,CAAC;AAGF,MAAM,MAAM,4BAA4B,CACtC,iBAAiB,SAAS,gBAAgB,EAC1C,oBAAoB,SAClB,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,EACjF,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,IAAI,CACN,4BAA4B,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,CAAC,EAClE,WAAW,GAAG,OAAO,GAAG,oBAAoB,CAC7C,GAAG;IACF,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,aAAa,CACvB,6BAA6B,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EACtE,KAAK,CACN,CAAC;CACH,CAAC;AAGF,wBAAsB,sBAAsB,CAC1C,iBAAiB,SAAS,gBAAgB,EAC1C,oBAAoB,SAAS,mBAAmB,CAAC,iBAAiB,CAAC,EACnE,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,EACA,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,IAAI,EACJ,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,EAAE,4BAA4B,CAC7B,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,OAAO,CACR,GAAG,OAAO,CACT,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CACnE,CAkLA"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/light-account/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAElC,MAAM,cAAc,CAAC;AACtB,OAAO,EAOL,KAAK,OAAO,EACZ,KAAK,KAAK,EAEV,KAAK,SAAS,EAGf,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAUrB,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,iBAAiB,SAAS,gBAAgB,GAAG,gBAAgB,EAC7D,oBAAoB,SAClB,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,IAC/E,8BAA8B,CAChC,iBAAiB,EACjB,OAAO,EACP,6BAA6B,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CACvE,GAAG;IACF,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;CACpD,CAAC;AAGF,MAAM,MAAM,4BAA4B,CACtC,iBAAiB,SAAS,gBAAgB,EAC1C,oBAAoB,SAClB,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,EACjF,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,IAAI,CACN,4BAA4B,CAAC,iBAAiB,EAAE,UAAU,EAAE,KAAK,CAAC,EAClE,WAAW,GAAG,OAAO,GAAG,oBAAoB,CAC7C,GAAG;IACF,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,aAAa,CACvB,6BAA6B,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,EACtE,KAAK,CACN,CAAC;CACH,CAAC;AAGF,wBAAsB,sBAAsB,CAC1C,iBAAiB,SAAS,gBAAgB,EAC1C,oBAAoB,SAAS,mBAAmB,CAAC,iBAAiB,CAAC,EACnE,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,EACA,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,IAAI,EACJ,UAAU,EACV,cAAc,EACd,kBAAkB,GACnB,EAAE,4BAA4B,CAC7B,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,OAAO,CACR,GAAG,OAAO,CACT,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CACnE,CA6MA"}
@@ -30,7 +30,7 @@ export type ModularAccountV2<TSigner extends SmartAccountSigner = SmartAccountSi
30
30
  getValidationData: (args: ValidationDataParams) => Promise<ValidationDataView>;
31
31
  encodeCallData: (callData: Hex) => Promise<Hex>;
32
32
  };
33
- export type CreateMAV2BaseParams<TSigner extends SmartAccountSigner = SmartAccountSigner, TTransport extends Transport = Transport> = Omit<ToSmartContractAccountParams<"ModularAccountV2", TTransport, Chain, "0.7.0">, "encodeExecute" | "encodeBatchExecute" | "getNonce" | "signMessage" | "signTypedData" | "getDummySignature"> & {
33
+ export type CreateMAV2BaseParams<TSigner extends SmartAccountSigner = SmartAccountSigner, TTransport extends Transport = Transport> = Omit<ToSmartContractAccountParams<"ModularAccountV2", TTransport, Chain, "0.7.0">, "encodeExecute" | "encodeBatchExecute" | "getNonce" | "signMessage" | "signTypedData" | "getDummySignature" | "prepareSign" | "formatSign"> & {
34
34
  signer: TSigner;
35
35
  signerEntity?: SignerEntity;
36
36
  accountAddress: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"modularAccountV2Base.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/account/common/modularAccountV2Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EAOf,MAAM,MAAM,CAAC;AAMd,eAAO,MAAM,qBAAqB,EAAE,GAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,SAAS,GAAG,EAAE,CAAC;IAChC,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,uBAAuB,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,8BAA8B,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;IACzE,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,iBAAiB,EAAE,CACjB,IAAI,EAAE,oBAAoB,KACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC,IAAI,CACN,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,EAE1E,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB,GAAG;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC,wBAAsB,cAAc,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAqM1E"}
1
+ {"version":3,"file":"modularAccountV2Base.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/account/common/modularAccountV2Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EAOf,MAAM,MAAM,CAAC;AAMd,eAAO,MAAM,qBAAqB,EAAE,GAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,SAAS,GAAG,EAAE,CAAC;IAChC,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,uBAAuB,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,8BAA8B,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;IACzE,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,iBAAiB,EAAE,CACjB,IAAI,EAAE,oBAAoB,KACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC,IAAI,CACN,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,EAE1E,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,aAAa,GACb,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,YAAY,CACf,GAAG;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC,wBAAsB,cAAc,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAqM1E"}
@@ -1,4 +1,4 @@
1
- import type { SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Address, type Chain, type Hex, type SignableMessage, type TypedData, type TypedDataDefinition } from "viem";
3
3
  /**
4
4
  * Creates an object with methods for generating a dummy signature, signing user operation hashes, signing messages, and signing typed data.
@@ -30,5 +30,7 @@ export declare const nativeSMASigner: (signer: SmartAccountSigner, chain: Chain,
30
30
  message: SignableMessage;
31
31
  }): Promise<Hex>;
32
32
  signTypedData: <const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(typedDataDefinition: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
33
+ prepareSign: (request: SignatureRequest) => Promise<SignatureRequest>;
34
+ formatSign: (signature: Hex) => Promise<Hex>;
33
35
  };
34
36
  //# sourceMappingURL=nativeSMASigner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeSMASigner.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/account/nativeSMASigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAQd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAC1B,OAAO,KAAK,EACZ,gBAAgB,OAAO,EACvB,qBAAqB,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAmBzB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BAwBlE,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAgClB,CAAC"}
1
+ {"version":3,"file":"nativeSMASigner.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/account/nativeSMASigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AASd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAC1B,OAAO,KAAK,EACZ,gBAAgB,OAAO,EACvB,qBAAqB,GAAG;6BAwDC,GAAG;oCAUY,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAmBzB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BAkBlE,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;;;CAwBlB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Address, type Chain, type Hex, type SignableMessage, type TypedData, type TypedDataDefinition } from "viem";
3
3
  /**
4
4
  * Creates an object with methods for generating a dummy signature, signing user operation hashes, signing messages, and signing typed data.
@@ -32,5 +32,7 @@ export declare const singleSignerMessageSigner: (signer: SmartAccountSigner, cha
32
32
  message: SignableMessage;
33
33
  }): Promise<Hex>;
34
34
  signTypedData: <const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(typedDataDefinition: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
35
+ prepareSign: (request: SignatureRequest) => Promise<SignatureRequest>;
36
+ formatSign: (signature: Hex) => Promise<Hex>;
35
37
  };
36
38
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAOd;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,kBAAkB,EAC1B,OAAO,KAAK,EACZ,gBAAgB,OAAO,EACvB,UAAU,MAAM,EAChB,qBAAqB,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAmBzB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BA0BlE,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAkClB,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAWd;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,kBAAkB,EAC1B,OAAO,KAAK,EACZ,gBAAgB,OAAO,EACvB,UAAU,MAAM,EAChB,qBAAqB,GAAG;6BAkDC,GAAG;oCAUY,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAmBzB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BAkBlE,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;;;CAwBlB,CAAC"}
@@ -104,4 +104,5 @@ export type BuildDeferredActionDigestParams = {
104
104
  * @returns {Hex} The encoded digest to be prepended to the userOp signature
105
105
  */
106
106
  export declare const buildDeferredActionDigest: ({ fullPreSignatureDeferredActionDigest, sig, }: BuildDeferredActionDigestParams) => Hex;
107
+ export declare const assertNeverSignatureRequestType: () => never;
107
108
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import type { Address, BundlerClient, SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { Address, BundlerClient, SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Hex, type SignableMessage, type Transport, type TypedData, type TypedDataDefinition } from "viem";
3
3
  export declare const multiOwnerMessageSigner: <TTransport extends Transport, TSigner extends SmartAccountSigner>(client: BundlerClient<TTransport>, accountAddress: Address, signer: () => TSigner, pluginAddress?: Address) => {
4
+ prepareSign: (params: SignatureRequest) => Promise<SignatureRequest>;
5
+ formatSign: (signature: `0x${string}`) => Promise<`0x${string}`>;
4
6
  getDummySignature: () => Hex;
5
7
  signUserOperationHash: (uoHash: `0x${string}`) => Promise<`0x${string}`>;
6
8
  signMessage({ message, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAGd,eAAO,MAAM,uBAAuB,GAClC,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,EAElC,QAAQ,aAAa,CAAC,UAAU,CAAC,EACjC,gBAAgB,OAAO,EACvB,QAAQ,MAAM,OAAO,EACrB,gBAAe,OAA0D;6BA8BhD,GAAG;oCAIM,KAAK,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;8BAMnE;QACD,OAAO,EAAE,eAAe,CAAC;KAC1B,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;0BAKlB,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAIlB,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multi-owner/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAGd,eAAO,MAAM,uBAAuB,GAClC,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,EAElC,QAAQ,aAAa,CAAC,UAAU,CAAC,EACjC,gBAAgB,OAAO,EACvB,QAAQ,MAAM,OAAO,EACrB,gBAAe,OAA0D;0BA8B/D,gBAAgB,KACvB,OAAO,CAAC,gBAAgB,CAAC;4BAaf,KAAK,MAAM,EAAE,KACvB,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;6BAOA,GAAG;oCAIM,KAAK,MAAM,EAAE,KAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;8BAMnE;QACD,OAAO,EAAE,eAAe,CAAC;KAC1B,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;0BAWlB,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAUlB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Address, BundlerClient, SmartAccountSigner } from "@aa-sdk/core";
1
+ import type { Address, BundlerClient, SmartAccountSigner, SignatureRequest } from "@aa-sdk/core";
2
2
  import { type Hex, type SignableMessage, type Transport, type TypedData, type TypedDataDefinition } from "viem";
3
3
  type MultisigSignMethodsParams<TTransport extends Transport, TSigner extends SmartAccountSigner> = {
4
4
  client: BundlerClient<TTransport>;
@@ -8,6 +8,8 @@ type MultisigSignMethodsParams<TTransport extends Transport, TSigner extends Sma
8
8
  pluginAddress?: Address;
9
9
  };
10
10
  export declare const multisigSignMethods: <TTransport extends Transport, TSigner extends SmartAccountSigner>({ client, accountAddress, signer, threshold, pluginAddress, }: MultisigSignMethodsParams<TTransport, TSigner>) => {
11
+ prepareSign: (params: SignatureRequest) => Promise<SignatureRequest>;
12
+ formatSign: (signature: `0x${string}`) => Promise<`0x${string}`>;
11
13
  getDummySignature: () => Promise<`0x${string}`>;
12
14
  signUserOperationHash: (uoHash: Hex) => Promise<Hex>;
13
15
  signMessage({ message }: {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multisig/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAGd,KAAK,yBAAyB,CAC5B,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,IAChC;IACF,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,EAClC,+DAMC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC;6BA6BhB,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;oCAoBnB,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAIzB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BAK5D,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAIlB,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/msca/plugins/multisig/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAGd,KAAK,yBAAyB,CAC5B,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,IAChC;IACF,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAU,SAAS,SAAS,EAC5B,OAAO,SAAS,kBAAkB,EAClC,+DAMC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC;0BA6BrC,gBAAgB,KACvB,OAAO,CAAC,gBAAgB,CAAC;4BAaf,KAAK,MAAM,EAAE,KACvB,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;6BAOM,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;oCAoBnB,GAAG,KAAG,OAAO,CAAC,GAAG,CAAC;6BAInB;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;0BAWlE,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,yCAE/B,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC;CAUlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@account-kit/smart-contracts",
3
- "version": "4.38.0",
3
+ "version": "4.40.0",
4
4
  "description": "aa-sdk compatible interfaces for Alchemy Smart Accounts",
5
5
  "author": "Alchemy",
6
6
  "license": "MIT",
@@ -52,7 +52,7 @@
52
52
  "test:run": "vitest run"
53
53
  },
54
54
  "devDependencies": {
55
- "@account-kit/plugingen": "^4.38.0",
55
+ "@account-kit/plugingen": "^4.40.0",
56
56
  "change-case": "^5.1.2",
57
57
  "dedent": "^1.5.1",
58
58
  "dotenv": "^16.3.1",
@@ -70,10 +70,10 @@
70
70
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
71
71
  },
72
72
  "homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
73
- "gitHead": "1efa2bd289a23b74cd333579b32f8bb9b5cae0bb",
73
+ "gitHead": "7e5c6761001fcd23905830d8d1537f8a9a79b491",
74
74
  "dependencies": {
75
- "@aa-sdk/core": "^4.38.0",
76
- "@account-kit/infra": "^4.38.0"
75
+ "@aa-sdk/core": "^4.40.0",
76
+ "@account-kit/infra": "^4.40.0"
77
77
  },
78
78
  "peerDependencies": {
79
79
  "viem": "2.29.2"