@lit-protocol/vincent-scaffold-sdk
Version:
Shared build configuration and utilities for Vincent abilities and policies
68 lines • 2.02 kB
TypeScript
/**
* LitActionsSmartSigner for EIP-7702 delegated transactions
*
* This signer implements the Alchemy SmartAccountSigner interface to support
* EIP-7702 delegation with the Lit Protocol PKP. It enables gasless transactions
* through integration with Alchemy's gas sponsorship.
*
* @example
* ```typescript
* const signer = new LitActionsSmartSigner({
* pkpPublicKey,
* chainId,
* });
*
* // Use with Alchemy's Smart Account Client, and pass as the signer.
* ```
*/
export interface LitActionsSmartSignerConfig {
pkpPublicKey: string;
chainId: number;
}
type Address = `0x${string}`;
type Hex = `0x${string}`;
type SignableMessage = string | {
raw: Hex | Uint8Array;
};
type TypedDataDefinition = {
domain?: any;
types?: any;
primaryType?: string;
message?: any;
};
type AuthorizationRequest = {
address?: Address;
contractAddress?: Address;
chainId: number;
nonce: number;
};
type SignedAuthorization = {
address: Address;
chainId: number;
nonce: number;
r: Hex;
s: Hex;
v?: bigint;
yParity: number;
};
interface SmartAccountSigner<Inner = any> {
signerType: string;
inner: Inner;
getAddress: () => Promise<Address>;
signMessage: (message: SignableMessage) => Promise<Hex>;
signTypedData: (params: TypedDataDefinition) => Promise<Hex>;
signAuthorization?: (unsignedAuthorization: AuthorizationRequest) => Promise<SignedAuthorization>;
}
export declare class LitActionsSmartSigner implements SmartAccountSigner {
readonly signerType = "lit-actions";
readonly inner: any;
private pkpPublicKey;
private signerAddress;
constructor(config: LitActionsSmartSignerConfig);
getAddress(): Promise<Address>;
signMessage(message: SignableMessage): Promise<Hex>;
signTypedData(params: TypedDataDefinition): Promise<Hex>;
signAuthorization(unsignedAuthorization: AuthorizationRequest): Promise<SignedAuthorization>;
}
export {};
//# sourceMappingURL=litActionSmartSigner.d.ts.map