@biconomy-devx/modules
Version:
This package provides different validation modules/plugins for ERC4337 compatible modular account
32 lines (31 loc) • 1.28 kB
TypeScript
import { Hex } from "viem";
import { SmartAccountSigner } from "@alchemy/aa-core";
import { SignerData } from "../utils/Types";
export type SessionStatus = "PENDING" | "ACTIVE" | "INACTIVE" | "EXPIRED";
export type SessionLeafNode = {
validUntil: number;
validAfter: number;
sessionValidationModule: Hex;
sessionKeyData: Hex;
sessionPublicKey: Hex;
sessionID?: string;
status: SessionStatus;
};
export type SessionSearchParam = {
sessionID?: string;
sessionPublicKey?: Hex;
sessionValidationModule?: Hex;
status?: SessionStatus;
};
export interface ISessionStorage {
addSessionData(_leaf: SessionLeafNode): Promise<void>;
getSessionData(_param: SessionSearchParam): Promise<SessionLeafNode>;
updateSessionStatus(_param: SessionSearchParam, _status: SessionStatus): Promise<void>;
clearPendingSessions(): Promise<void>;
addSigner(_signer?: SignerData): Promise<SmartAccountSigner>;
getSignerByKey(_signerPublicKey: string): Promise<SmartAccountSigner>;
getSignerBySession(_param: SessionSearchParam): Promise<SmartAccountSigner>;
getAllSessionData(_param?: SessionSearchParam): Promise<SessionLeafNode[]>;
getMerkleRoot(): Promise<string>;
setMerkleRoot(_merkleRoot: string): Promise<void>;
}