@alchemy/smart-accounts 0.0.0-alpha.5 → 0.0.0-alpha.7
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.
- package/dist/esm/light-account/accounts/account.d.ts +2 -2
- package/dist/esm/light-account/accounts/account.js +4 -4
- package/dist/esm/light-account/accounts/account.js.map +1 -1
- package/dist/esm/light-account/accounts/base.d.ts +3 -3
- package/dist/esm/light-account/accounts/base.js.map +1 -1
- package/dist/esm/light-account/accounts/multi-owner-account.d.ts +2 -2
- package/dist/esm/light-account/accounts/multi-owner-account.js +3 -3
- package/dist/esm/light-account/accounts/multi-owner-account.js.map +1 -1
- package/dist/esm/ma-v1/accounts/base.d.ts +3 -3
- package/dist/esm/ma-v1/accounts/base.js.map +1 -1
- package/dist/esm/ma-v1/accounts/multi-owner-account.d.ts +2 -2
- package/dist/esm/ma-v1/accounts/multi-owner-account.js +3 -3
- package/dist/esm/ma-v1/accounts/multi-owner-account.js.map +1 -1
- package/dist/esm/ma-v2/accounts/account.d.ts +3 -3
- package/dist/esm/ma-v2/accounts/account.js +2 -2
- package/dist/esm/ma-v2/accounts/account.js.map +1 -1
- package/dist/esm/ma-v2/accounts/base.d.ts +3 -3
- package/dist/esm/ma-v2/accounts/base.js +6 -1
- package/dist/esm/ma-v2/accounts/base.js.map +1 -1
- package/dist/esm/types.d.ts +8 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/types/light-account/accounts/account.d.ts +2 -2
- package/dist/types/light-account/accounts/account.d.ts.map +1 -1
- package/dist/types/light-account/accounts/base.d.ts +3 -3
- package/dist/types/light-account/accounts/base.d.ts.map +1 -1
- package/dist/types/light-account/accounts/multi-owner-account.d.ts +2 -2
- package/dist/types/light-account/accounts/multi-owner-account.d.ts.map +1 -1
- package/dist/types/ma-v1/accounts/base.d.ts +3 -3
- package/dist/types/ma-v1/accounts/base.d.ts.map +1 -1
- package/dist/types/ma-v1/accounts/multi-owner-account.d.ts +2 -2
- package/dist/types/ma-v1/accounts/multi-owner-account.d.ts.map +1 -1
- package/dist/types/ma-v2/accounts/account.d.ts +3 -3
- package/dist/types/ma-v2/accounts/account.d.ts.map +1 -1
- package/dist/types/ma-v2/accounts/base.d.ts +3 -3
- package/dist/types/ma-v2/accounts/base.d.ts.map +1 -1
- package/dist/types/types.d.ts +8 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/light-account/accounts/account.ts +5 -7
- package/src/light-account/accounts/base.ts +2 -2
- package/src/light-account/accounts/multi-owner-account.ts +4 -4
- package/src/ma-v1/accounts/base.ts +6 -3
- package/src/ma-v1/accounts/multi-owner-account.ts +4 -4
- package/src/ma-v2/accounts/account.ts +4 -4
- package/src/ma-v2/accounts/base.ts +12 -4
- package/src/types.ts +15 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/base.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Address,\n type Hex,\n type Chain,\n type Client,\n type JsonRpcAccount,\n type LocalAccount,\n type Transport,\n concat,\n concatHex,\n encodeFunctionData,\n hashMessage,\n hashTypedData,\n type TypedDataDefinition,\n maxUint32,\n maxUint152,\n zeroAddress,\n} from \"viem\";\nimport {\n entryPoint07Abi,\n type SmartAccountImplementation,\n type SmartAccount,\n entryPoint07Address,\n getUserOperationHash,\n toSmartAccount,\n type WebAuthnAccount,\n type ToSmartAccountParameters,\n estimateUserOperationGas,\n type UserOperation,\n} from \"viem/account-abstraction\";\nimport {\n getCode,\n readContract,\n signMessage,\n signTypedData,\n} from \"viem/actions\";\nimport { assertNever, BaseError } from \"@alchemy/common\";\nimport {\n SignaturePrefix,\n type ExecutionDataView,\n type SignerEntity,\n type ValidationDataView,\n} from \"../types.js\";\nimport { modularAccountAbi } from \"../abis/modularAccountAbi.js\";\nimport type { SignatureRequest } from \"../../types.js\";\nimport {\n decodeFunctionData,\n getAction,\n isAddressEqual,\n sliceHex,\n} from \"viem/utils\";\nimport {\n DEFAULT_OWNER_ENTITY_ID,\n DefaultModuleAddress,\n EXECUTE_USER_OP_SELECTOR,\n serializeModuleEntity,\n} from \"../utils/account.js\";\nimport { parseDeferredAction } from \"../utils/deferredActions.js\";\nimport {\n pack1271Signature,\n toWebAuthnSignature,\n toReplaySafeTypedData,\n packUOSignature,\n WEBAUTHN_DUMMY_SIGNATURE,\n} from \"../utils/signature.js\";\nimport { chainHas7212 } from \"../../utils.js\";\nimport { InvalidDeferredActionNonceError } from \"../../errors/InvalidDeferredActionNonceError.js\";\nimport { InvalidNonceKeyError } from \"../../errors/InvalidNonceKeyError.js\";\nimport { InvalidEntityIdError } from \"../../errors/InvalidEntityIdError.js\";\n\nexport type ValidationDataParams =\n | {\n validationModuleAddress: Address;\n entityId?: never;\n }\n | {\n validationModuleAddress?: never;\n entityId: number;\n };\n\nexport type BaseModularAccountV2Implementation = SmartAccountImplementation<\n typeof entryPoint07Abi,\n \"0.7\",\n {\n smartAccountType: \"ModularAccountV2\";\n signerEntity: SignerEntity;\n encodeCallData: (callData: Hex) => Promise<Hex>;\n getExecutionData: (selector: Hex) => Promise<ExecutionDataView>;\n getValidationData: (\n args: ValidationDataParams,\n ) => Promise<ValidationDataView>;\n prepareSignature: (request: SignatureRequest) => Promise<SignatureRequest>;\n formatSignature: (signature: Hex) => Promise<Hex>;\n },\n boolean\n>;\n\nexport type ModularAccountV2Base =\n SmartAccount<BaseModularAccountV2Implementation>;\n\nexport type ToModularAccountV2BaseParams<\n TTransport extends Transport = Transport,\n> = {\n client: Client<TTransport, Chain, JsonRpcAccount | LocalAccount | undefined>;\n owner: JsonRpcAccount | LocalAccount | WebAuthnAccount;\n accountAddress: Address;\n getFactoryArgs: () => Promise<{\n factory?: Address | undefined;\n factoryData?: Hex | undefined;\n }>;\n signerEntity?: SignerEntity;\n deferredAction?: Hex;\n authorization?: ToSmartAccountParameters[\"authorization\"];\n};\n\n/**\n * Creates a ModularAccountV2Base instance.\n *\n * @param {ToModularAccountV2BaseParams<TTransport>} params - The parameters for creating a ModularAccountV2Base instance.\n * @returns {Promise<ModularAccountV2Base>} A promise that resolves to a ModularAccountV2Base instance.\n */\nexport async function toModularAccountV2Base<\n TTransport extends Transport = Transport,\n>({\n client,\n owner,\n accountAddress,\n getFactoryArgs,\n signerEntity = {\n isGlobalValidation: true,\n entityId: DEFAULT_OWNER_ENTITY_ID,\n },\n deferredAction,\n authorization,\n}: ToModularAccountV2BaseParams<TTransport>): Promise<ModularAccountV2Base> {\n let { isGlobalValidation, entityId } = signerEntity;\n\n const entryPoint = {\n abi: entryPoint07Abi,\n address: entryPoint07Address as Address,\n version: \"0.7\" as const,\n };\n\n if (entityId > Number(maxUint32)) {\n throw new InvalidEntityIdError(entityId);\n }\n\n const isAccountDeployed: () => Promise<boolean> = async () => {\n const action = getAction(client, getCode, \"getCode\");\n const code = await action({ address: accountAddress });\n return code != null && code !== \"0x\";\n };\n\n // These default values signal that we should not use the set deferred action nonce\n let nonce: bigint | undefined;\n let deferredActionData: Hex | undefined;\n let hasAssociatedExecHooks: boolean = false;\n\n if (deferredAction) {\n let deferredActionNonce = 0n;\n // We always update entity id and isGlobalValidation to the deferred action value since the client could be used to send multiple calls\n ({\n entityId,\n isGlobalValidation,\n nonce: deferredActionNonce,\n } = parseDeferredAction(deferredAction));\n\n const readContractAction = getAction(client, readContract, \"readContract\");\n\n // Set these values if the deferred action has not been consumed. We check this with the EP.\n const nextNonceForDeferredAction: bigint = await readContractAction({\n ...entryPoint,\n functionName: \"getNonce\",\n args: [accountAddress, deferredActionNonce >> 64n],\n });\n\n if (deferredActionNonce === nextNonceForDeferredAction) {\n ({ nonce, deferredActionData, hasAssociatedExecHooks } =\n parseDeferredAction(deferredAction));\n } else if (deferredActionNonce > nextNonceForDeferredAction) {\n // if nonce is greater than the next nonce, its invalid, so we throw\n throw new InvalidDeferredActionNonceError();\n }\n }\n\n const getNonce = async (\n params?: { key?: bigint | undefined } | undefined,\n ): Promise<bigint> => {\n if (nonce) {\n const tempNonce = nonce;\n nonce = undefined; // set to falsy value once used\n return tempNonce;\n }\n\n const nonceKey = params?.key ?? 0n;\n\n if (nonceKey > maxUint152) {\n throw new InvalidNonceKeyError(nonceKey);\n }\n\n const fullNonceKey =\n (nonceKey << 40n) +\n (BigInt(entityId) << 8n) +\n (isGlobalValidation ? 1n : 0n);\n\n const readContractAction = getAction(client, readContract, \"readContract\");\n\n return readContractAction({\n ...entryPoint,\n functionName: \"getNonce\",\n args: [accountAddress, fullNonceKey],\n });\n };\n\n const accountContract = {\n address: accountAddress,\n abi: modularAccountAbi,\n };\n\n const getExecutionData = async (selector: Hex) => {\n if (!(await isAccountDeployed())) {\n return {\n module: zeroAddress,\n skipRuntimeValidation: false,\n allowGlobalValidation: false,\n executionHooks: [],\n };\n }\n\n return readContract(client, {\n ...accountContract,\n functionName: \"getExecutionData\",\n args: [selector],\n });\n };\n\n const getValidationData = async (args: ValidationDataParams) => {\n if (!(await isAccountDeployed())) {\n return {\n validationHooks: [],\n executionHooks: [],\n selectors: [],\n validationFlags: 0,\n };\n }\n\n const { validationModuleAddress, entityId } = args;\n const readContractAction = getAction(client, readContract, \"readContract\");\n return readContractAction({\n ...accountContract,\n functionName: \"getValidationData\",\n args: [\n serializeModuleEntity({\n moduleAddress: validationModuleAddress ?? zeroAddress,\n entityId: entityId ?? Number(maxUint32),\n }),\n ],\n });\n };\n\n const encodeCallData = async (callData: Hex): Promise<Hex> => {\n const validationData = await getValidationData({\n entityId: Number(entityId),\n });\n if (hasAssociatedExecHooks) {\n return concatHex([EXECUTE_USER_OP_SELECTOR, callData]);\n }\n if (validationData.executionHooks.length) {\n return concatHex([EXECUTE_USER_OP_SELECTOR, callData]);\n }\n return callData;\n };\n\n const prepareSignature = async (\n request: SignatureRequest,\n ): Promise<Extract<SignatureRequest, { type: \"eth_signTypedData_v4\" }>> => {\n const isDeferredAction =\n request.type === \"eth_signTypedData_v4\" &&\n request.data?.primaryType === \"DeferredAction\" &&\n request.data?.domain?.verifyingContract === accountAddress;\n\n if (isDeferredAction && entityId === DEFAULT_OWNER_ENTITY_ID) {\n return request;\n }\n\n const hash =\n request.type === \"personal_sign\"\n ? hashMessage(request.data)\n : request.type === \"eth_signTypedData_v4\"\n ? hashTypedData(request.data)\n : assertNever(request, \"Unexpected signature request type\");\n\n return {\n type: \"eth_signTypedData_v4\",\n data: toReplaySafeTypedData({\n chainId: client.chain.id,\n hash,\n ...(owner.type === \"webAuthn\"\n ? {\n address: DefaultModuleAddress.WEBAUTHN_VALIDATION,\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n }\n : entityId === DEFAULT_OWNER_ENTITY_ID\n ? { address: accountAddress }\n : {\n address: DefaultModuleAddress.SINGLE_SIGNER_VALIDATION,\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n }),\n }),\n };\n };\n\n const formatSignature = async (signature: Hex): Promise<Hex> => {\n return pack1271Signature({\n entityId,\n validationSignaturePrefix:\n owner.type === \"webAuthn\" ? null : SignaturePrefix.EOA,\n validationSignature: signature,\n });\n };\n\n return await toSmartAccount({\n getFactoryArgs,\n client,\n entryPoint,\n getNonce,\n authorization,\n\n async getAddress() {\n return accountAddress;\n },\n\n async encodeCalls(calls) {\n if (calls.length === 1) {\n const call = calls[0];\n\n if (isAddressEqual(call.to, accountAddress)) {\n // If the call is to the account itself, we need to avoid wrapping it in an `execute` call.\n\n if (call.data === undefined) {\n throw new BaseError(\"Data is required for an account self-call.\");\n }\n\n return encodeCallData(call.data);\n }\n\n return encodeCallData(\n encodeFunctionData({\n abi: modularAccountAbi,\n functionName: \"execute\",\n args: [call.to, call.value ?? 0n, call.data ?? \"0x\"],\n }),\n );\n }\n\n return encodeCallData(\n encodeFunctionData({\n abi: modularAccountAbi,\n functionName: \"executeBatch\",\n args: [\n calls.map((call) => ({\n target: call.to,\n data: call.data ?? \"0x\",\n value: call.value ?? 0n,\n })),\n ],\n }),\n );\n },\n\n async decodeCalls(data) {\n // Inverse of `encodeCalls`.\n // Trim the EXECUTE_USER_OP_SELECTOR if it is present.\n const trimmedData = data\n .toLowerCase()\n .startsWith(EXECUTE_USER_OP_SELECTOR.toLowerCase())\n ? sliceHex(data, 4)\n : data;\n\n const decoded = decodeFunctionData({\n abi: modularAccountAbi,\n data: trimmedData,\n });\n\n if (decoded.functionName === \"execute\") {\n return [\n {\n to: decoded.args[0],\n value: decoded.args[1],\n data: decoded.args[2],\n },\n ];\n }\n\n if (decoded.functionName === \"executeBatch\") {\n return decoded.args[0].map((call) => ({\n to: call.target,\n value: call.value,\n data: call.data,\n }));\n }\n\n // If the data is not for an `execute` or `executeBatch` call, we treat it as a single call to the account itself.\n return [\n {\n to: accountAddress,\n data,\n },\n ];\n },\n\n async getStubSignature() {\n if (owner.type === \"webAuthn\") {\n return WEBAUTHN_DUMMY_SIGNATURE;\n }\n\n const sig = packUOSignature({\n validationSignature:\n \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\",\n });\n return deferredActionData ? concatHex([deferredActionData, sig]) : sig;\n },\n\n async signMessage({ message }) {\n const { data } = await prepareSignature({\n type: \"personal_sign\",\n data: message,\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({ hash: hashTypedData(data) }),\n );\n return formatSignature(validationSignature);\n }\n\n const action = getAction(client, signTypedData, \"signTypedData\");\n\n const signature = await action({\n ...data,\n account: owner,\n });\n\n return formatSignature(signature);\n },\n\n async signTypedData(td) {\n const isDeferredAction =\n td.primaryType === \"DeferredAction\" &&\n td.domain &&\n typeof td.domain === \"object\" &&\n \"verifyingContract\" in td.domain &&\n td.domain.verifyingContract === accountAddress;\n\n const { data } = await prepareSignature({\n type: \"eth_signTypedData_v4\",\n data: td as TypedDataDefinition, // TODO(v5): Try harder to satisfy this w/o casting.\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({ hash: hashTypedData(data) }),\n );\n return isDeferredAction\n ? validationSignature\n : formatSignature(validationSignature);\n }\n\n const action = getAction(client, signTypedData, \"signTypedData\");\n\n const signature = await action({\n ...data,\n account: owner,\n });\n\n return isDeferredAction\n ? concat([SignaturePrefix.EOA, signature])\n : formatSignature(signature);\n },\n\n async signUserOperation(uo) {\n const hash = getUserOperationHash({\n chainId: uo.chainId ?? client.chain.id,\n entryPointAddress: entryPoint.address,\n entryPointVersion: entryPoint.version,\n userOperation: {\n ...uo,\n sender: accountAddress,\n },\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({\n hash: hashMessage({ raw: hash }),\n }),\n );\n\n const signature = deferredActionData\n ? concatHex([deferredActionData, validationSignature])\n : validationSignature;\n deferredActionData = undefined; // clear once used\n hasAssociatedExecHooks = false; // set to falsy value once used\n return concatHex([\"0xff\", signature]);\n }\n\n const signMessageAction = getAction(client, signMessage, \"signMessage\");\n\n const validationSignature = await signMessageAction({\n account: owner,\n message: { raw: hash },\n });\n\n const packedSignature = packUOSignature({\n validationSignature,\n });\n\n const signature = deferredActionData\n ? concatHex([deferredActionData, packedSignature])\n : packedSignature;\n\n deferredActionData = undefined; // clear once used\n hasAssociatedExecHooks = false; // set to falsy value once used\n\n return signature;\n },\n\n userOperation: {\n estimateGas: async (uo) => {\n if (owner.type !== \"webAuthn\") {\n // Uses the default gas estimator.\n // Note that we get 7702 support automatically from Viem.\n return undefined;\n }\n\n const estimateGasAction = getAction(\n client,\n estimateUserOperationGas,\n \"estimateUserOperationGas\",\n );\n\n const estimate = await estimateGasAction({\n ...(uo as UserOperation<typeof entryPoint.version>),\n entryPointAddress: entryPoint.address,\n });\n\n const buffer = (await chainHas7212(client)) ? 10000n : 300000n;\n\n // TODO(v4): iterate numbers. Aim to have ~1000 gas buffer to account for longer authenticatorDatas and clientDataJSONs.\n return {\n ...estimate,\n verificationGasLimit: estimate.verificationGasLimit + buffer,\n };\n },\n },\n\n extend: {\n smartAccountType: \"ModularAccountV2\" as const,\n signerEntity: {\n entityId,\n isGlobalValidation,\n },\n encodeCallData,\n getExecutionData,\n getValidationData,\n prepareSignature,\n formatSignature,\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/base.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Address,\n type Hex,\n type Chain,\n type Client,\n type JsonRpcAccount,\n type LocalAccount,\n type Transport,\n concat,\n concatHex,\n encodeFunctionData,\n hashMessage,\n hashTypedData,\n type TypedDataDefinition,\n maxUint32,\n maxUint152,\n zeroAddress,\n} from \"viem\";\nimport {\n entryPoint07Abi,\n type SmartAccountImplementation,\n entryPoint07Address,\n getUserOperationHash,\n toSmartAccount,\n type WebAuthnAccount,\n type ToSmartAccountParameters,\n estimateUserOperationGas,\n type UserOperation,\n} from \"viem/account-abstraction\";\nimport {\n getCode,\n readContract,\n signMessage,\n signTypedData,\n} from \"viem/actions\";\nimport { assertNever, BaseError } from \"@alchemy/common\";\nimport {\n SignaturePrefix,\n type ExecutionDataView,\n type SignerEntity,\n type ValidationDataView,\n} from \"../types.js\";\nimport { modularAccountAbi } from \"../abis/modularAccountAbi.js\";\nimport type {\n SignatureRequest,\n SmartAccountWithDecodeCalls,\n} from \"../../types.js\";\nimport {\n decodeFunctionData,\n getAction,\n isAddressEqual,\n sliceHex,\n} from \"viem/utils\";\nimport {\n DEFAULT_OWNER_ENTITY_ID,\n DefaultModuleAddress,\n EXECUTE_USER_OP_SELECTOR,\n serializeModuleEntity,\n} from \"../utils/account.js\";\nimport { parseDeferredAction } from \"../utils/deferredActions.js\";\nimport {\n pack1271Signature,\n toWebAuthnSignature,\n toReplaySafeTypedData,\n packUOSignature,\n WEBAUTHN_DUMMY_SIGNATURE,\n} from \"../utils/signature.js\";\nimport { chainHas7212 } from \"../../utils.js\";\nimport { InvalidDeferredActionNonceError } from \"../../errors/InvalidDeferredActionNonceError.js\";\nimport { InvalidNonceKeyError } from \"../../errors/InvalidNonceKeyError.js\";\nimport { InvalidEntityIdError } from \"../../errors/InvalidEntityIdError.js\";\n\nexport type ValidationDataParams =\n | {\n validationModuleAddress: Address;\n entityId?: never;\n }\n | {\n validationModuleAddress?: never;\n entityId: number;\n };\n\nexport type BaseModularAccountV2Implementation = SmartAccountImplementation<\n typeof entryPoint07Abi,\n \"0.7\",\n {\n smartAccountType: \"ModularAccountV2\";\n signerEntity: SignerEntity;\n encodeCallData: (callData: Hex) => Promise<Hex>;\n getExecutionData: (selector: Hex) => Promise<ExecutionDataView>;\n getValidationData: (\n args: ValidationDataParams,\n ) => Promise<ValidationDataView>;\n prepareSignature: (request: SignatureRequest) => Promise<SignatureRequest>;\n formatSignature: (signature: Hex) => Promise<Hex>;\n },\n boolean\n>;\n\nexport type ModularAccountV2Base =\n SmartAccountWithDecodeCalls<BaseModularAccountV2Implementation>;\n\nexport type ToModularAccountV2BaseParams<\n TTransport extends Transport = Transport,\n> = {\n client: Client<TTransport, Chain, JsonRpcAccount | LocalAccount | undefined>;\n owner: JsonRpcAccount | LocalAccount | WebAuthnAccount;\n accountAddress: Address;\n getFactoryArgs: () => Promise<{\n factory?: Address | undefined;\n factoryData?: Hex | undefined;\n }>;\n signerEntity?: SignerEntity;\n deferredAction?: Hex;\n authorization?: ToSmartAccountParameters[\"authorization\"];\n};\n\n/**\n * Creates a ModularAccountV2Base instance.\n *\n * @param {ToModularAccountV2BaseParams<TTransport>} params - The parameters for creating a ModularAccountV2Base instance.\n * @returns {Promise<ModularAccountV2Base>} A promise that resolves to a ModularAccountV2Base instance.\n */\nexport async function toModularAccountV2Base<\n TTransport extends Transport = Transport,\n>({\n client,\n owner,\n accountAddress,\n getFactoryArgs,\n signerEntity = {\n isGlobalValidation: true,\n entityId: DEFAULT_OWNER_ENTITY_ID,\n },\n deferredAction,\n authorization,\n}: ToModularAccountV2BaseParams<TTransport>): Promise<ModularAccountV2Base> {\n let { isGlobalValidation, entityId } = signerEntity;\n\n const entryPoint = {\n abi: entryPoint07Abi,\n address: entryPoint07Address as Address,\n version: \"0.7\" as const,\n };\n\n if (entityId > Number(maxUint32)) {\n throw new InvalidEntityIdError(entityId);\n }\n\n let isDeployed = false;\n\n const isAccountDeployed: () => Promise<boolean> = async () => {\n if (isDeployed) {\n return true;\n }\n const action = getAction(client, getCode, \"getCode\");\n const code = await action({ address: accountAddress });\n isDeployed = !!code;\n return isDeployed;\n };\n\n // These default values signal that we should not use the set deferred action nonce\n let nonce: bigint | undefined;\n let deferredActionData: Hex | undefined;\n let hasAssociatedExecHooks: boolean = false;\n\n if (deferredAction) {\n let deferredActionNonce = 0n;\n // We always update entity id and isGlobalValidation to the deferred action value since the client could be used to send multiple calls\n ({\n entityId,\n isGlobalValidation,\n nonce: deferredActionNonce,\n } = parseDeferredAction(deferredAction));\n\n const readContractAction = getAction(client, readContract, \"readContract\");\n\n // Set these values if the deferred action has not been consumed. We check this with the EP.\n const nextNonceForDeferredAction: bigint = await readContractAction({\n ...entryPoint,\n functionName: \"getNonce\",\n args: [accountAddress, deferredActionNonce >> 64n],\n });\n\n if (deferredActionNonce === nextNonceForDeferredAction) {\n ({ nonce, deferredActionData, hasAssociatedExecHooks } =\n parseDeferredAction(deferredAction));\n } else if (deferredActionNonce > nextNonceForDeferredAction) {\n // if nonce is greater than the next nonce, its invalid, so we throw\n throw new InvalidDeferredActionNonceError();\n }\n }\n\n const getNonce = async (\n params?: { key?: bigint | undefined } | undefined,\n ): Promise<bigint> => {\n if (nonce) {\n const tempNonce = nonce;\n nonce = undefined; // set to falsy value once used\n return tempNonce;\n }\n\n const nonceKey = params?.key ?? 0n;\n\n if (nonceKey > maxUint152) {\n throw new InvalidNonceKeyError(nonceKey);\n }\n\n const fullNonceKey =\n (nonceKey << 40n) +\n (BigInt(entityId) << 8n) +\n (isGlobalValidation ? 1n : 0n);\n\n const readContractAction = getAction(client, readContract, \"readContract\");\n\n return readContractAction({\n ...entryPoint,\n functionName: \"getNonce\",\n args: [accountAddress, fullNonceKey],\n });\n };\n\n const accountContract = {\n address: accountAddress,\n abi: modularAccountAbi,\n };\n\n const getExecutionData = async (selector: Hex) => {\n if (!(await isAccountDeployed())) {\n return {\n module: zeroAddress,\n skipRuntimeValidation: false,\n allowGlobalValidation: false,\n executionHooks: [],\n };\n }\n\n return readContract(client, {\n ...accountContract,\n functionName: \"getExecutionData\",\n args: [selector],\n });\n };\n\n const getValidationData = async (args: ValidationDataParams) => {\n if (!(await isAccountDeployed())) {\n return {\n validationHooks: [],\n executionHooks: [],\n selectors: [],\n validationFlags: 0,\n };\n }\n\n const { validationModuleAddress, entityId } = args;\n const readContractAction = getAction(client, readContract, \"readContract\");\n return readContractAction({\n ...accountContract,\n functionName: \"getValidationData\",\n args: [\n serializeModuleEntity({\n moduleAddress: validationModuleAddress ?? zeroAddress,\n entityId: entityId ?? Number(maxUint32),\n }),\n ],\n });\n };\n\n const encodeCallData = async (callData: Hex): Promise<Hex> => {\n const validationData = await getValidationData({\n entityId: Number(entityId),\n });\n if (hasAssociatedExecHooks) {\n return concatHex([EXECUTE_USER_OP_SELECTOR, callData]);\n }\n if (validationData.executionHooks.length) {\n return concatHex([EXECUTE_USER_OP_SELECTOR, callData]);\n }\n return callData;\n };\n\n const prepareSignature = async (\n request: SignatureRequest,\n ): Promise<Extract<SignatureRequest, { type: \"eth_signTypedData_v4\" }>> => {\n const isDeferredAction =\n request.type === \"eth_signTypedData_v4\" &&\n request.data?.primaryType === \"DeferredAction\" &&\n request.data?.domain?.verifyingContract === accountAddress;\n\n if (isDeferredAction && entityId === DEFAULT_OWNER_ENTITY_ID) {\n return request;\n }\n\n const hash =\n request.type === \"personal_sign\"\n ? hashMessage(request.data)\n : request.type === \"eth_signTypedData_v4\"\n ? hashTypedData(request.data)\n : assertNever(request, \"Unexpected signature request type\");\n\n return {\n type: \"eth_signTypedData_v4\",\n data: toReplaySafeTypedData({\n chainId: client.chain.id,\n hash,\n ...(owner.type === \"webAuthn\"\n ? {\n address: DefaultModuleAddress.WEBAUTHN_VALIDATION,\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n }\n : entityId === DEFAULT_OWNER_ENTITY_ID\n ? { address: accountAddress }\n : {\n address: DefaultModuleAddress.SINGLE_SIGNER_VALIDATION,\n salt: concatHex([`0x${\"00\".repeat(12)}`, accountAddress]),\n }),\n }),\n };\n };\n\n const formatSignature = async (signature: Hex): Promise<Hex> => {\n return pack1271Signature({\n entityId,\n validationSignaturePrefix:\n owner.type === \"webAuthn\" ? null : SignaturePrefix.EOA,\n validationSignature: signature,\n });\n };\n\n return await toSmartAccount({\n getFactoryArgs,\n client,\n entryPoint,\n getNonce,\n authorization,\n\n async getAddress() {\n return accountAddress;\n },\n\n async encodeCalls(calls) {\n if (calls.length === 1) {\n const call = calls[0];\n\n if (isAddressEqual(call.to, accountAddress)) {\n // If the call is to the account itself, we need to avoid wrapping it in an `execute` call.\n\n if (call.data === undefined) {\n throw new BaseError(\"Data is required for an account self-call.\");\n }\n\n return encodeCallData(call.data);\n }\n\n return encodeCallData(\n encodeFunctionData({\n abi: modularAccountAbi,\n functionName: \"execute\",\n args: [call.to, call.value ?? 0n, call.data ?? \"0x\"],\n }),\n );\n }\n\n return encodeCallData(\n encodeFunctionData({\n abi: modularAccountAbi,\n functionName: \"executeBatch\",\n args: [\n calls.map((call) => ({\n target: call.to,\n data: call.data ?? \"0x\",\n value: call.value ?? 0n,\n })),\n ],\n }),\n );\n },\n\n async decodeCalls(data) {\n // Inverse of `encodeCalls`.\n // Trim the EXECUTE_USER_OP_SELECTOR if it is present.\n const trimmedData = data\n .toLowerCase()\n .startsWith(EXECUTE_USER_OP_SELECTOR.toLowerCase())\n ? sliceHex(data, 4)\n : data;\n\n const decoded = decodeFunctionData({\n abi: modularAccountAbi,\n data: trimmedData,\n });\n\n if (decoded.functionName === \"execute\") {\n return [\n {\n to: decoded.args[0],\n value: decoded.args[1],\n data: decoded.args[2],\n },\n ];\n }\n\n if (decoded.functionName === \"executeBatch\") {\n return decoded.args[0].map((call) => ({\n to: call.target,\n value: call.value,\n data: call.data,\n }));\n }\n\n // If the data is not for an `execute` or `executeBatch` call, we treat it as a single call to the account itself.\n return [\n {\n to: accountAddress,\n data,\n },\n ];\n },\n\n async getStubSignature() {\n if (owner.type === \"webAuthn\") {\n return WEBAUTHN_DUMMY_SIGNATURE;\n }\n\n const sig = packUOSignature({\n validationSignature:\n \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\",\n });\n return deferredActionData ? concatHex([deferredActionData, sig]) : sig;\n },\n\n async signMessage({ message }) {\n const { data } = await prepareSignature({\n type: \"personal_sign\",\n data: message,\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({ hash: hashTypedData(data) }),\n );\n return formatSignature(validationSignature);\n }\n\n const action = getAction(client, signTypedData, \"signTypedData\");\n\n const signature = await action({\n ...data,\n account: owner,\n });\n\n return formatSignature(signature);\n },\n\n async signTypedData(td) {\n const isDeferredAction =\n td.primaryType === \"DeferredAction\" &&\n td.domain &&\n typeof td.domain === \"object\" &&\n \"verifyingContract\" in td.domain &&\n td.domain.verifyingContract === accountAddress;\n\n const { data } = await prepareSignature({\n type: \"eth_signTypedData_v4\",\n data: td as TypedDataDefinition, // TODO(v5): Try harder to satisfy this w/o casting.\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({ hash: hashTypedData(data) }),\n );\n return isDeferredAction\n ? validationSignature\n : formatSignature(validationSignature);\n }\n\n const action = getAction(client, signTypedData, \"signTypedData\");\n\n const signature = await action({\n ...data,\n account: owner,\n });\n\n return isDeferredAction\n ? concat([SignaturePrefix.EOA, signature])\n : formatSignature(signature);\n },\n\n async signUserOperation(uo) {\n const hash = getUserOperationHash({\n chainId: uo.chainId ?? client.chain.id,\n entryPointAddress: entryPoint.address,\n entryPointVersion: entryPoint.version,\n userOperation: {\n ...uo,\n sender: accountAddress,\n },\n });\n\n if (owner.type === \"webAuthn\") {\n const validationSignature = toWebAuthnSignature(\n await owner.sign({\n hash: hashMessage({ raw: hash }),\n }),\n );\n\n const signature = deferredActionData\n ? concatHex([deferredActionData, validationSignature])\n : validationSignature;\n deferredActionData = undefined; // clear once used\n hasAssociatedExecHooks = false; // set to falsy value once used\n return concatHex([\"0xff\", signature]);\n }\n\n const signMessageAction = getAction(client, signMessage, \"signMessage\");\n\n const validationSignature = await signMessageAction({\n account: owner,\n message: { raw: hash },\n });\n\n const packedSignature = packUOSignature({\n validationSignature,\n });\n\n const signature = deferredActionData\n ? concatHex([deferredActionData, packedSignature])\n : packedSignature;\n\n deferredActionData = undefined; // clear once used\n hasAssociatedExecHooks = false; // set to falsy value once used\n\n return signature;\n },\n\n userOperation: {\n estimateGas: async (uo) => {\n if (owner.type !== \"webAuthn\") {\n // Uses the default gas estimator.\n // Note that we get 7702 support automatically from Viem.\n return undefined;\n }\n\n const estimateGasAction = getAction(\n client,\n estimateUserOperationGas,\n \"estimateUserOperationGas\",\n );\n\n const estimate = await estimateGasAction({\n ...(uo as UserOperation<typeof entryPoint.version>),\n entryPointAddress: entryPoint.address,\n });\n\n const buffer = (await chainHas7212(client)) ? 10000n : 300000n;\n\n // TODO(v4): iterate numbers. Aim to have ~1000 gas buffer to account for longer authenticatorDatas and clientDataJSONs.\n return {\n ...estimate,\n verificationGasLimit: estimate.verificationGasLimit + buffer,\n };\n },\n },\n\n extend: {\n smartAccountType: \"ModularAccountV2\" as const,\n signerEntity: {\n entityId,\n isGlobalValidation,\n },\n encodeCallData,\n getExecutionData,\n getValidationData,\n prepareSignature,\n formatSignature,\n },\n });\n}\n"]}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { Abi, Address, Hex, IsUndefined, SignableMessage, TypedDataDefinition } from "viem";
|
|
2
|
-
import type { EntryPointVersion, SmartAccount } from "viem/account-abstraction";
|
|
2
|
+
import type { EntryPointVersion, SmartAccount, SmartAccountImplementation } from "viem/account-abstraction";
|
|
3
3
|
export type GetAccountParameter<TAccount extends SmartAccount | undefined = SmartAccount | undefined, TAccountOverride extends SmartAccount = SmartAccount> = IsUndefined<TAccount> extends true ? {
|
|
4
4
|
account: TAccountOverride;
|
|
5
5
|
} : {
|
|
6
6
|
account?: TAccountOverride;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Helper type that converts a SmartAccount type to have a required `decodeCalls` function.
|
|
10
|
+
* This is useful for account implementations that always provide the `decodeCalls` functionality.
|
|
11
|
+
*/
|
|
12
|
+
export type SmartAccountWithDecodeCalls<TImplementation extends SmartAccountImplementation> = SmartAccount<TImplementation> & {
|
|
13
|
+
decodeCalls: NonNullable<SmartAccount<TImplementation>["decodeCalls"]>;
|
|
14
|
+
};
|
|
8
15
|
export type SignatureRequest = {
|
|
9
16
|
type: "personal_sign";
|
|
10
17
|
data: SignableMessage;
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Abi,\n Address,\n Hex,\n IsUndefined,\n SignableMessage,\n TypedDataDefinition,\n} from \"viem\";\nimport type {
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n Abi,\n Address,\n Hex,\n IsUndefined,\n SignableMessage,\n TypedDataDefinition,\n} from \"viem\";\nimport type {\n EntryPointVersion,\n SmartAccount,\n SmartAccountImplementation,\n} from \"viem/account-abstraction\";\n\nexport type GetAccountParameter<\n TAccount extends SmartAccount | undefined = SmartAccount | undefined,\n TAccountOverride extends SmartAccount = SmartAccount,\n> =\n IsUndefined<TAccount> extends true\n ? { account: TAccountOverride }\n : { account?: TAccountOverride };\n\n/**\n * Helper type that converts a SmartAccount type to have a required `decodeCalls` function.\n * This is useful for account implementations that always provide the `decodeCalls` functionality.\n */\nexport type SmartAccountWithDecodeCalls<\n TImplementation extends SmartAccountImplementation,\n> = SmartAccount<TImplementation> & {\n decodeCalls: NonNullable<SmartAccount<TImplementation>[\"decodeCalls\"]>;\n};\n\nexport type SignatureRequest =\n | {\n type: \"personal_sign\";\n data: SignableMessage;\n }\n | {\n type: \"eth_signTypedData_v4\";\n data: TypedDataDefinition;\n };\n\nexport type StaticSmartAccountImplementation<\n eip7702 extends boolean = boolean,\n entryPointVersion extends EntryPointVersion = EntryPointVersion,\n factoryArgs extends {} = {},\n entryPointAbi extends Abi | readonly unknown[] = Abi,\n accountAbi extends Abi | readonly unknown[] = Abi,\n factoryAbi extends Abi | readonly unknown[] = Abi,\n> = {\n readonly entryPoint: {\n readonly abi: entryPointAbi;\n readonly address: Address;\n readonly version: entryPointVersion;\n };\n readonly accountAbi: accountAbi;\n} & (eip7702 extends false\n ? {\n // Smart contract account specific fields\n readonly accountImplementation: Address;\n readonly getFactoryData: (factoryArgs: factoryArgs) => Hex;\n readonly predictAccountAddress: (factoryArgs: factoryArgs) => Address;\n readonly factoryAddress: Address;\n readonly factoryAbi: factoryAbi;\n }\n : {}) &\n (eip7702 extends true\n ? {\n // EIP-7702 account specific fields\n readonly delegationAddress: Address;\n }\n : {});\n"]}
|
|
@@ -10,7 +10,7 @@ export type ToLightAccountParams<TLightAccountVersion extends LightAccountVersio
|
|
|
10
10
|
owner: JsonRpcAccount | LocalAccount;
|
|
11
11
|
salt?: bigint;
|
|
12
12
|
accountAddress?: Address;
|
|
13
|
-
|
|
13
|
+
factory?: Address;
|
|
14
14
|
factoryData?: Hex;
|
|
15
15
|
version?: TLightAccountVersion;
|
|
16
16
|
};
|
|
@@ -20,5 +20,5 @@ export type ToLightAccountParams<TLightAccountVersion extends LightAccountVersio
|
|
|
20
20
|
* @param {ToLightAccountParams} param0 - The parameters for creating a light account.
|
|
21
21
|
* @returns {Promise<LightAccount<TSigner, TLightAccountVersion>>} A light account.
|
|
22
22
|
*/
|
|
23
|
-
export declare function toLightAccount<TLightAccountVersion extends LightAccountVersion<"LightAccount"> = LightAccountVersion<"LightAccount">>({ client, owner, salt: salt_, accountAddress: accountAddress_, version,
|
|
23
|
+
export declare function toLightAccount<TLightAccountVersion extends LightAccountVersion<"LightAccount"> = LightAccountVersion<"LightAccount">>({ client, owner, salt: salt_, accountAddress: accountAddress_, version, factory, factoryData: factoryData_, }: ToLightAccountParams<TLightAccountVersion>): Promise<LightAccount<TLightAccountVersion>>;
|
|
24
24
|
//# sourceMappingURL=account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AAOd,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,MAAM,YAAY,CACtB,oBAAoB,SAClB,mBAAmB,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,IACzE,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,GAAG;IAC3D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,GAAG,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,oBAAoB,SAClB,mBAAmB,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,IACzE;IACF,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,KAAK,EAAE,cAAc,GAAG,YAAY,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AAOd,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,MAAM,YAAY,CACtB,oBAAoB,SAClB,mBAAmB,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,IACzE,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,GAAG;IAC3D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,GAAG,CAAC;IACpD,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,oBAAoB,SAClB,mBAAmB,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,IACzE;IACF,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,KAAK,EAAE,cAAc,GAAG,YAAY,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,oBAAoB,SAClB,mBAAmB,CAAC,cAAc,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,EAC3E,EACA,MAAM,EACN,KAAK,EACL,IAAI,EAAE,KAAU,EAChB,cAAc,EAAE,eAAe,EAC/B,OAA8D,EAC9D,OAAqE,EACrE,WAAW,EAAE,YAAY,GAC1B,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,OAAO,CACrD,YAAY,CAAC,oBAAoB,CAAC,CACnC,CAsFA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Abi, type Address, type Chain, type Client, type Hex, type JsonRpcAccount, type LocalAccount, type Transport } from "viem";
|
|
2
|
-
import { type
|
|
2
|
+
import { type SmartAccountImplementation } from "viem/account-abstraction";
|
|
3
3
|
import type { EntryPointFromAccountRegistry, LightAccountType, LightAccountVersion } from "../registry.js";
|
|
4
|
-
import type { SignatureRequest } from "../../types.js";
|
|
4
|
+
import type { SignatureRequest, SmartAccountWithDecodeCalls } from "../../types.js";
|
|
5
5
|
export type BaseLightAccountImplementation<TLightAccountType extends LightAccountType = LightAccountType, TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>> = SmartAccountImplementation<EntryPointFromAccountRegistry<TLightAccountType, TLightAccountVersion>["abi"], EntryPointFromAccountRegistry<TLightAccountType, TLightAccountVersion>["version"], {
|
|
6
6
|
getLightAccountVersion: () => TLightAccountVersion;
|
|
7
7
|
smartAccountType: TLightAccountType;
|
|
@@ -12,7 +12,7 @@ export type BaseLightAccountImplementation<TLightAccountType extends LightAccoun
|
|
|
12
12
|
prepareSignature: (request: SignatureRequest) => Promise<SignatureRequest>;
|
|
13
13
|
formatSignature: (signature: Hex) => Promise<Hex>;
|
|
14
14
|
}, false>;
|
|
15
|
-
export type LightAccountBase<TLightAccountType extends LightAccountType = LightAccountType, TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>> =
|
|
15
|
+
export type LightAccountBase<TLightAccountType extends LightAccountType = LightAccountType, TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>> = SmartAccountWithDecodeCalls<BaseLightAccountImplementation<TLightAccountType, TLightAccountVersion>>;
|
|
16
16
|
export type ToLightAccountBaseParams<TLightAccountType extends LightAccountType, TLightAccountVersion extends LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>, TTransport extends Transport = Transport> = {
|
|
17
17
|
client: Client<TTransport, Chain, JsonRpcAccount | LocalAccount | undefined>;
|
|
18
18
|
abi: Abi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EAEf,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export type ToMultiOwnerLightAccountParams = {
|
|
|
11
11
|
}[]];
|
|
12
12
|
salt?: bigint;
|
|
13
13
|
accountAddress?: Address;
|
|
14
|
-
|
|
14
|
+
factory?: Address;
|
|
15
15
|
factoryData?: Hex;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
@@ -20,5 +20,5 @@ export type ToMultiOwnerLightAccountParams = {
|
|
|
20
20
|
* @param {ToMultiOwnerLightAccountParams} param0 - The parameters for creating a multi-owner light account.
|
|
21
21
|
* @returns {Promise<MultiOwnerLightAccount<TSigner>>} A multi-owner light account.
|
|
22
22
|
*/
|
|
23
|
-
export declare function toMultiOwnerLightAccount({ client, salt, owners, accountAddress: accountAddress_,
|
|
23
|
+
export declare function toMultiOwnerLightAccount({ client, salt, owners, accountAddress: accountAddress_, factory, factoryData: factoryData_, }: ToMultiOwnerLightAccountParams): Promise<MultiOwnerLightAccount>;
|
|
24
24
|
//# sourceMappingURL=multi-owner-account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-owner-account.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/multi-owner-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AAKd,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD,wBAAwB,EACxB,QAAQ,CACT,GAAG;IACF,kBAAkB,EAAE,CAClB,WAAW,EAAE,OAAO,EAAE,EACtB,cAAc,EAAE,OAAO,EAAE,KACtB,GAAG,CAAC;IACT,iBAAiB,EAAE,MAAM,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"multi-owner-account.d.ts","sourceRoot":"","sources":["../../../../src/light-account/accounts/multi-owner-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AAKd,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtE,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD,wBAAwB,EACxB,QAAQ,CACT,GAAG;IACF,kBAAkB,EAAE,CAClB,WAAW,EAAE,OAAO,EAAE,EACtB,cAAc,EAAE,OAAO,EAAE,KACtB,GAAG,CAAC;IACT,iBAAiB,EAAE,MAAM,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,MAAM,EACN,IAAS,EACT,MAAM,EACN,cAAc,EAAE,eAAe,EAC/B,OACiB,EACjB,WAAW,EAAE,YAAY,GAC1B,EAAE,8BAA8B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsFlE"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type Address, type Chain, type Client, type Hex, type JsonRpcAccount, type LocalAccount, type Transport, type Hash, type TypedDataDefinition } from "viem";
|
|
2
|
-
import { entryPoint06Abi, type
|
|
3
|
-
import type { SignatureRequest } from "../../types.js";
|
|
2
|
+
import { entryPoint06Abi, type SmartAccountImplementation } from "viem/account-abstraction";
|
|
3
|
+
import type { SignatureRequest, SmartAccountWithDecodeCalls } from "../../types.js";
|
|
4
4
|
type MaV1AccountType = "MultiOwnerModularAccountV1";
|
|
5
5
|
export type BaseMaV1AccountImplementation = SmartAccountImplementation<typeof entryPoint06Abi, "0.6", {
|
|
6
6
|
smartAccountType: MaV1AccountType;
|
|
7
7
|
prepareSignature: (request: SignatureRequest) => Promise<SignatureRequest>;
|
|
8
8
|
formatSignature: (signature: Hex) => Promise<Hex>;
|
|
9
9
|
}, false>;
|
|
10
|
-
export type ModularAccountV1Base =
|
|
10
|
+
export type ModularAccountV1Base = SmartAccountWithDecodeCalls<BaseMaV1AccountImplementation>;
|
|
11
11
|
export type ToModularAccountV1BaseParams<TTransport extends Transport = Transport> = {
|
|
12
12
|
client: Client<TTransport, Chain, JsonRpcAccount | LocalAccount | undefined>;
|
|
13
13
|
accountAddress: Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/ma-v1/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,mBAAmB,EAEzB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,eAAe,EAEf,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/ma-v1/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,mBAAmB,EAEzB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,eAAe,EAEf,KAAK,0BAA0B,EAGhC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAYxB,KAAK,eAAe,GAAG,4BAA4B,CAAC;AAEpD,MAAM,MAAM,6BAA6B,GAAG,0BAA0B,CACpE,OAAO,eAAe,EACtB,KAAK,EACL;IACE,gBAAgB,EAAE,eAAe,CAAC;IAClC,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3E,eAAe,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACnD,EACD,KAAK,CACN,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC9B,2BAA2B,CAAC,6BAA6B,CAAC,CAAC;AAE7D,MAAM,MAAM,4BAA4B,CACtC,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC;IACF,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC7E,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,cAAc,GAAG,YAAY,CAAC;IACrC,cAAc,EAAE,MAAM,OAAO,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,WAAW,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;KAC/B,CAAC,CAAC;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,EACA,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,IAAI,GACL,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAwK1E"}
|
|
@@ -11,7 +11,7 @@ export type ToMultiOwnerModularAccountV1Params = {
|
|
|
11
11
|
}[]];
|
|
12
12
|
salt?: bigint;
|
|
13
13
|
accountAddress?: Address;
|
|
14
|
-
|
|
14
|
+
factory?: Address;
|
|
15
15
|
factoryData?: Hex;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
@@ -20,5 +20,5 @@ export type ToMultiOwnerModularAccountV1Params = {
|
|
|
20
20
|
* @param {ToMultiOwnerModularAccountV1Params} param0 - The parameters for creating a multi-owner MAv1 account.
|
|
21
21
|
* @returns {Promise<MultiOwnerModularAccountV1<TSigner>>} A multi-owner MAv1 account.
|
|
22
22
|
*/
|
|
23
|
-
export declare function toMultiOwnerModularAccountV1({ client, salt, owners, accountAddress: accountAddress_,
|
|
23
|
+
export declare function toMultiOwnerModularAccountV1({ client, salt, owners, accountAddress: accountAddress_, factory, factoryData: factoryData_, }: ToMultiOwnerModularAccountV1Params): Promise<MultiOwnerModularAccountV1>;
|
|
24
24
|
//# sourceMappingURL=multi-owner-account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-owner-account.d.ts","sourceRoot":"","sources":["../../../../src/ma-v1/accounts/multi-owner-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EAIf,MAAM,MAAM,CAAC;AACd,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAU9E,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG;IAC9D,kBAAkB,EAAE,CAClB,WAAW,EAAE,OAAO,EAAE,EACtB,cAAc,EAAE,OAAO,EAAE,KACtB,GAAG,CAAC;IACT,iBAAiB,EAAE,MAAM,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"multi-owner-account.d.ts","sourceRoot":"","sources":["../../../../src/ma-v1/accounts/multi-owner-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EAIf,MAAM,MAAM,CAAC;AACd,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAU9E,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG;IAC9D,kBAAkB,EAAE,CAClB,WAAW,EAAE,OAAO,EAAE,EACtB,cAAc,EAAE,OAAO,EAAE,KACtB,GAAG,CAAC;IACT,iBAAiB,EAAE,MAAM,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,MAAM,EACN,IAAS,EACT,MAAM,EACN,cAAc,EAAE,eAAe,EAC/B,OAAqD,EACrD,WAAW,EAAE,YAAY,GAC1B,EAAE,kCAAkC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+G1E"}
|
|
@@ -13,12 +13,12 @@ export type ToModularAccountV2Params<TMode extends Mode | undefined = Mode | und
|
|
|
13
13
|
mode?: TMode;
|
|
14
14
|
} & (TMode extends "7702" ? {
|
|
15
15
|
salt?: never;
|
|
16
|
-
|
|
16
|
+
factory?: never;
|
|
17
17
|
factoryData?: never;
|
|
18
18
|
implementationAddress?: never;
|
|
19
19
|
} : {
|
|
20
20
|
salt?: bigint;
|
|
21
|
-
|
|
21
|
+
factory?: Address;
|
|
22
22
|
factoryData?: Hex;
|
|
23
23
|
implementationAddress?: Address;
|
|
24
24
|
});
|
|
@@ -28,6 +28,6 @@ export type ToModularAccountV2Params<TMode extends Mode | undefined = Mode | und
|
|
|
28
28
|
* @param {ToModularAccountV2Params} param0 - The parameters for creating a MAv2 account.
|
|
29
29
|
* @returns {Promise<ModularAccountV2>} A MAv2 account.
|
|
30
30
|
*/
|
|
31
|
-
export declare function toModularAccountV2<TMode extends Mode = Mode>({ client, owner, deferredAction, signerEntity, accountAddress: accountAddress_, salt,
|
|
31
|
+
export declare function toModularAccountV2<TMode extends Mode = Mode>({ client, owner, deferredAction, signerEntity, accountAddress: accountAddress_, salt, factory, factoryData: factoryData_, implementationAddress: implementationAddress_, mode, }: ToModularAccountV2Params<TMode>): Promise<ModularAccountV2>;
|
|
32
32
|
export {};
|
|
33
33
|
//# sourceMappingURL=account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUhD,KAAK,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAG/B,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,EAAE,CAAC;AAEzD,MAAM,MAAM,wBAAwB,CAClC,KAAK,SAAS,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,IAC/C;IACF,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,eAAe,CAAC;IACvD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GAAG,CAAC,KAAK,SAAS,MAAM,GACrB;IACE,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUhD,KAAK,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAG/B,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,EAAE,CAAC;AAEzD,MAAM,MAAM,wBAAwB,CAClC,KAAK,SAAS,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,IAC/C;IACF,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC5E,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,eAAe,CAAC;IACvD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GAAG,CAAC,KAAK,SAAS,MAAM,GACrB;IACE,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,qBAAqB,CAAC,EAAE,KAAK,CAAC;CAC/B,GACD;IACE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC,CAAC;AAEP;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,SAAS,IAAI,GAAG,IAAI,EAAE,EAClE,MAAM,EACN,KAAK,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EAAE,eAAe,EAC/B,IAAS,EACT,OAAO,EACP,WAAW,EAAE,YAAY,EACzB,qBAAqB,EAAE,sBAAsB,EAC7C,IAAI,GACL,EAAE,wBAAwB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2I7D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Address, type Hex, type Chain, type Client, type JsonRpcAccount, type LocalAccount, type Transport } from "viem";
|
|
2
|
-
import { entryPoint07Abi, type SmartAccountImplementation, type
|
|
2
|
+
import { entryPoint07Abi, type SmartAccountImplementation, type WebAuthnAccount, type ToSmartAccountParameters } from "viem/account-abstraction";
|
|
3
3
|
import { type ExecutionDataView, type SignerEntity, type ValidationDataView } from "../types.js";
|
|
4
|
-
import type { SignatureRequest } from "../../types.js";
|
|
4
|
+
import type { SignatureRequest, SmartAccountWithDecodeCalls } from "../../types.js";
|
|
5
5
|
export type ValidationDataParams = {
|
|
6
6
|
validationModuleAddress: Address;
|
|
7
7
|
entityId?: never;
|
|
@@ -18,7 +18,7 @@ export type BaseModularAccountV2Implementation = SmartAccountImplementation<type
|
|
|
18
18
|
prepareSignature: (request: SignatureRequest) => Promise<SignatureRequest>;
|
|
19
19
|
formatSignature: (signature: Hex) => Promise<Hex>;
|
|
20
20
|
}, boolean>;
|
|
21
|
-
export type ModularAccountV2Base =
|
|
21
|
+
export type ModularAccountV2Base = SmartAccountWithDecodeCalls<BaseModularAccountV2Implementation>;
|
|
22
22
|
export type ToModularAccountV2BaseParams<TTransport extends Transport = Transport> = {
|
|
23
23
|
client: Client<TTransport, Chain, JsonRpcAccount | LocalAccount | undefined>;
|
|
24
24
|
owner: JsonRpcAccount | LocalAccount | WebAuthnAccount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EAUf,MAAM,MAAM,CAAC;AACd,OAAO,EACL,eAAe,EACf,KAAK,0BAA0B,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/accounts/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EAUf,MAAM,MAAM,CAAC;AACd,OAAO,EACL,eAAe,EACf,KAAK,0BAA0B,EAI/B,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAG9B,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AA0BxB,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,kCAAkC,GAAG,0BAA0B,CACzE,OAAO,eAAe,EACtB,KAAK,EACL;IACE,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,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,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3E,eAAe,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACnD,EACD,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC9B,2BAA2B,CAAC,kCAAkC,CAAC,CAAC;AAElE,MAAM,MAAM,4BAA4B,CACtC,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC;IACF,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;IAC7E,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,eAAe,CAAC;IACvD,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,OAAO,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,WAAW,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;KAC/B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,aAAa,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;CAC3D,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,EACA,MAAM,EACN,KAAK,EACL,cAAc,EACd,cAAc,EACd,YAGC,EACD,cAAc,EACd,aAAa,GACd,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyb1E"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { Abi, Address, Hex, IsUndefined, SignableMessage, TypedDataDefinition } from "viem";
|
|
2
|
-
import type { EntryPointVersion, SmartAccount } from "viem/account-abstraction";
|
|
2
|
+
import type { EntryPointVersion, SmartAccount, SmartAccountImplementation } from "viem/account-abstraction";
|
|
3
3
|
export type GetAccountParameter<TAccount extends SmartAccount | undefined = SmartAccount | undefined, TAccountOverride extends SmartAccount = SmartAccount> = IsUndefined<TAccount> extends true ? {
|
|
4
4
|
account: TAccountOverride;
|
|
5
5
|
} : {
|
|
6
6
|
account?: TAccountOverride;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Helper type that converts a SmartAccount type to have a required `decodeCalls` function.
|
|
10
|
+
* This is useful for account implementations that always provide the `decodeCalls` functionality.
|
|
11
|
+
*/
|
|
12
|
+
export type SmartAccountWithDecodeCalls<TImplementation extends SmartAccountImplementation> = SmartAccount<TImplementation> & {
|
|
13
|
+
decodeCalls: NonNullable<SmartAccount<TImplementation>["decodeCalls"]>;
|
|
14
|
+
};
|
|
8
15
|
export type SignatureRequest = {
|
|
9
16
|
type: "personal_sign";
|
|
10
17
|
data: SignableMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,GAAG,EACH,WAAW,EACX,eAAe,EACf,mBAAmB,EACpB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,OAAO,EACP,GAAG,EACH,WAAW,EACX,eAAe,EACf,mBAAmB,EACpB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,mBAAmB,CAC7B,QAAQ,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EACpE,gBAAgB,SAAS,YAAY,GAAG,YAAY,IAEpD,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC9B;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC7B;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CACrC,eAAe,SAAS,0BAA0B,IAChD,YAAY,CAAC,eAAe,CAAC,GAAG;IAClC,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,gCAAgC,CAC1C,OAAO,SAAS,OAAO,GAAG,OAAO,EACjC,iBAAiB,SAAS,iBAAiB,GAAG,iBAAiB,EAC/D,WAAW,SAAS,EAAE,GAAG,EAAE,EAC3B,aAAa,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,EACpD,UAAU,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,EACjD,UAAU,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IAC/C;IACF,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;QAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GAAG,CAAC,OAAO,SAAS,KAAK,GACtB;IAEE,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,GAAG,CAAC;IAC3D,QAAQ,CAAC,qBAAqB,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GACD,EAAE,CAAC,GACL,CAAC,OAAO,SAAS,IAAI,GACjB;IAEE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC,GACD,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alchemy/smart-accounts",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.7",
|
|
4
4
|
"description": "This package contains all of the viem interfaces for Alchemy's Smart Contract Accounts",
|
|
5
5
|
"author": "Alchemy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,13 +39,14 @@
|
|
|
39
39
|
"test:run": "vitest run"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@alchemy/aa-infra": "0.0.0-alpha.
|
|
42
|
+
"@alchemy/aa-infra": "0.0.0-alpha.7",
|
|
43
43
|
"typescript-template": "*"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@alchemy/common": "0.0.0-alpha.
|
|
46
|
+
"@alchemy/common": "0.0.0-alpha.7",
|
|
47
47
|
"ox": "^0.9.6",
|
|
48
|
-
"viem": "^2.32.0"
|
|
48
|
+
"viem": "^2.32.0",
|
|
49
|
+
"webauthn-p256": "^0.0.10"
|
|
49
50
|
},
|
|
50
51
|
"publishConfig": {
|
|
51
52
|
"access": "public",
|
|
@@ -59,5 +60,5 @@
|
|
|
59
60
|
"url": "https://github.com/alchemyplatform/aa-sdk/issues"
|
|
60
61
|
},
|
|
61
62
|
"homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
|
|
62
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "0c3ba9574625caa8349cc7e17ee43bbbd8f25d42"
|
|
63
64
|
}
|
|
@@ -43,7 +43,7 @@ export type ToLightAccountParams<
|
|
|
43
43
|
owner: JsonRpcAccount | LocalAccount;
|
|
44
44
|
salt?: bigint;
|
|
45
45
|
accountAddress?: Address;
|
|
46
|
-
|
|
46
|
+
factory?: Address;
|
|
47
47
|
factoryData?: Hex;
|
|
48
48
|
version?: TLightAccountVersion;
|
|
49
49
|
};
|
|
@@ -63,7 +63,7 @@ export async function toLightAccount<
|
|
|
63
63
|
salt: salt_ = 0n,
|
|
64
64
|
accountAddress: accountAddress_,
|
|
65
65
|
version = defaultLightAccountVersion() as TLightAccountVersion,
|
|
66
|
-
|
|
66
|
+
factory = AccountVersionRegistry.LightAccount[version].factoryAddress,
|
|
67
67
|
factoryData: factoryData_,
|
|
68
68
|
}: ToLightAccountParams<TLightAccountVersion>): Promise<
|
|
69
69
|
LightAccount<TLightAccountVersion>
|
|
@@ -80,16 +80,14 @@ export async function toLightAccount<
|
|
|
80
80
|
? LightAccountFactoryAbi_v2
|
|
81
81
|
: LightAccountFactoryAbi_v1;
|
|
82
82
|
|
|
83
|
-
const salt = LightAccountUnsupported1271Factories.has(
|
|
84
|
-
lowerAddress(factoryAddress),
|
|
85
|
-
)
|
|
83
|
+
const salt = LightAccountUnsupported1271Factories.has(lowerAddress(factory))
|
|
86
84
|
? 0n
|
|
87
85
|
: salt_;
|
|
88
86
|
|
|
89
87
|
const accountAddress =
|
|
90
88
|
accountAddress_ ??
|
|
91
89
|
predictLightAccountAddress({
|
|
92
|
-
factoryAddress,
|
|
90
|
+
factoryAddress: factory,
|
|
93
91
|
salt,
|
|
94
92
|
ownerAddress: owner.address,
|
|
95
93
|
version,
|
|
@@ -107,7 +105,7 @@ export async function toLightAccount<
|
|
|
107
105
|
});
|
|
108
106
|
|
|
109
107
|
return {
|
|
110
|
-
factory
|
|
108
|
+
factory,
|
|
111
109
|
factoryData,
|
|
112
110
|
};
|
|
113
111
|
};
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
getUserOperationHash,
|
|
21
21
|
toSmartAccount,
|
|
22
|
-
type SmartAccount,
|
|
23
22
|
type SmartAccountImplementation,
|
|
24
23
|
} from "viem/account-abstraction";
|
|
25
24
|
import { getStorageAt, signMessage, signTypedData } from "viem/actions";
|
|
@@ -38,6 +37,7 @@ import { BaseError, lowerAddress } from "@alchemy/common";
|
|
|
38
37
|
import type {
|
|
39
38
|
SignatureRequest,
|
|
40
39
|
StaticSmartAccountImplementation,
|
|
40
|
+
SmartAccountWithDecodeCalls,
|
|
41
41
|
} from "../../types.js";
|
|
42
42
|
import { getAction } from "viem/utils";
|
|
43
43
|
|
|
@@ -74,7 +74,7 @@ export type LightAccountBase<
|
|
|
74
74
|
TLightAccountType extends LightAccountType = LightAccountType,
|
|
75
75
|
TLightAccountVersion extends
|
|
76
76
|
LightAccountVersion<TLightAccountType> = LightAccountVersion<TLightAccountType>,
|
|
77
|
-
> =
|
|
77
|
+
> = SmartAccountWithDecodeCalls<
|
|
78
78
|
BaseLightAccountImplementation<TLightAccountType, TLightAccountVersion>
|
|
79
79
|
>;
|
|
80
80
|
|
|
@@ -35,7 +35,7 @@ export type ToMultiOwnerLightAccountParams = {
|
|
|
35
35
|
owners: [OneOf<JsonRpcAccount | LocalAccount>, ...{ address: Address }[]];
|
|
36
36
|
salt?: bigint;
|
|
37
37
|
accountAddress?: Address;
|
|
38
|
-
|
|
38
|
+
factory?: Address;
|
|
39
39
|
factoryData?: Hex;
|
|
40
40
|
};
|
|
41
41
|
|
|
@@ -50,7 +50,7 @@ export async function toMultiOwnerLightAccount({
|
|
|
50
50
|
salt = 0n,
|
|
51
51
|
owners,
|
|
52
52
|
accountAddress: accountAddress_,
|
|
53
|
-
|
|
53
|
+
factory = AccountVersionRegistry.MultiOwnerLightAccount["v2.0.0"]
|
|
54
54
|
.factoryAddress,
|
|
55
55
|
factoryData: factoryData_,
|
|
56
56
|
}: ToMultiOwnerLightAccountParams): Promise<MultiOwnerLightAccount> {
|
|
@@ -69,7 +69,7 @@ export async function toMultiOwnerLightAccount({
|
|
|
69
69
|
const accountAddress =
|
|
70
70
|
accountAddress_ ??
|
|
71
71
|
predictMultiOwnerLightAccountAddress({
|
|
72
|
-
factoryAddress,
|
|
72
|
+
factoryAddress: factory,
|
|
73
73
|
salt,
|
|
74
74
|
ownerAddresses: sortedOwners,
|
|
75
75
|
});
|
|
@@ -84,7 +84,7 @@ export async function toMultiOwnerLightAccount({
|
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
return {
|
|
87
|
-
factory
|
|
87
|
+
factory,
|
|
88
88
|
factoryData,
|
|
89
89
|
};
|
|
90
90
|
};
|
|
@@ -13,12 +13,14 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
entryPoint06Abi,
|
|
15
15
|
toSmartAccount,
|
|
16
|
-
type SmartAccount,
|
|
17
16
|
type SmartAccountImplementation,
|
|
18
17
|
entryPoint06Address,
|
|
19
18
|
getUserOperationHash,
|
|
20
19
|
} from "viem/account-abstraction";
|
|
21
|
-
import type {
|
|
20
|
+
import type {
|
|
21
|
+
SignatureRequest,
|
|
22
|
+
SmartAccountWithDecodeCalls,
|
|
23
|
+
} from "../../types.js";
|
|
22
24
|
import { IStandardExecutorAbi } from "../abis/IStandardExecutor.js";
|
|
23
25
|
import { signMessage, signTypedData } from "viem/actions";
|
|
24
26
|
import {
|
|
@@ -43,7 +45,8 @@ export type BaseMaV1AccountImplementation = SmartAccountImplementation<
|
|
|
43
45
|
false
|
|
44
46
|
>;
|
|
45
47
|
|
|
46
|
-
export type ModularAccountV1Base =
|
|
48
|
+
export type ModularAccountV1Base =
|
|
49
|
+
SmartAccountWithDecodeCalls<BaseMaV1AccountImplementation>;
|
|
47
50
|
|
|
48
51
|
export type ToModularAccountV1BaseParams<
|
|
49
52
|
TTransport extends Transport = Transport,
|