import type { Account, Chain, Client, Hex, RpcSchema, Transport } from 'viem'; import type { Prettify } from '../../utils/prettify'; import type { AudiusWalletActions } from './decorators/audiusWallet'; /** * The AudiusAccount is like the LocalAccount from Viem, except it * has raw signing and sharedSecret capabilities for encryption purposes, * used for communications with comms to keep chats/DMs e2ee. */ export type AudiusAccount = Account & { /** * Get a shared secret, used for Chats */ getSharedSecret: (publicKey: string | Uint8Array) => Promise; /** * Signs the keccak hash of some data, used for Chats * @deprecated use signMessage instead */ signRaw: (data: Hex) => Promise<[Uint8Array, number]>; }; /** * AudiusWalletClient is the combination of a subset of WalletClient from Viem * and some additional actions, `getSharedSecret` and `sign`. */ export type AudiusWalletClient = Prettify>>;