UNPKG

@alchemy/aa-core

Version:

viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts

29 lines (26 loc) 947 B
import type { Chain, Client, Hex, SignableMessage, Transport } from "viem"; import type { GetAccountParameter, SmartContractAccount, } from "../../account/smartContractAccount"; import { AccountNotFoundError } from "../../errors/account.js"; export type SignMessageParameters< TAccount extends SmartContractAccount | undefined = | SmartContractAccount | undefined > = { message: SignableMessage } & GetAccountParameter<TAccount>; export const signMessage: < TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartContractAccount | undefined = | SmartContractAccount | undefined >( client: Client<TTransport, TChain, TAccount>, args: SignMessageParameters<TAccount> ) => Promise<Hex> = async (client, { account = client.account, message }) => { if (!account) { throw new AccountNotFoundError(); } return account.signMessage({ message }); };