Skip to content
Alchemy Logo

installValidationActions

function installValidationActions<TTransport, TChain, TAccount>(
  client,
): InstallValidationActions<
  IsUndefined<TAccount> extends true ? undefined : ModularAccountV2
>;

Defined in: packages/smart-accounts/src/ma-v2/decorators/installValidation.ts:95

Provides validation installation and uninstallation encoding functionalities for a MA v2 client.

import { installValidationActions, SingleSignerValidationModule } from "@alchemy/smart-accounts";
import { Address } from "viem";
 
const client = (await createModularAccountV2Client({ ... })).extend(installValidationActions);
const sessionKeyAddress: Address = "0x1234";
const sessionKeyEntityId: number = 1;
 
const callData = await client.encodeInstallValidation({
  validationConfig: {
    moduleAddress: getDefaultSingleSignerValidationModuleAddress(client.chain),
    entityId: sessionKeyEntityId,
    isGlobal: true,
    isSignatureValidation: false,
    isUserOpValidation: true,
  },
  selectors: [],
  installData: SingleSignerValidationModule.encodeOnInstallData({
    entityId: sessionKeyEntityId,
    signer: sessionKeyAddress,
  }),
  hooks: [],
});
 
await client.sendUserOperation({ callData, account });

Type ParameterDefault type

TTransport extends Transport

Transport

TChain extends undefined | Chain

undefined | Chain

TAccount extends undefined | SmartAccount

undefined | SmartAccount

ParameterTypeDescription

client

Client<TTransport, TChain, TAccount>

The client instance which provides account functionality.

InstallValidationActions<IsUndefined<TAccount> extends true ? undefined : ModularAccountV2>

  • An object containing encodeInstallValidation and encodeUninstallValidation.
Was this page helpful?