/** * Interface for storage backends used by the Gemini wallet SDK */ export interface IStorage { /** * Store a serializable object in storage * @param key Storage key * @param item Object to store */ storeObject(key: string, item: T): Promise; /** * Load a serializable object from storage * @param key Storage key * @param fallback Default value if key doesn't exist * @returns The stored object or fallback */ loadObject(key: string, fallback: T): Promise; /** * Store a string value in storage * @param key Storage key * @param value String value to store */ setItem(key: string, value: string): Promise; /** * Retrieve a string value from storage * @param key Storage key * @returns The stored string or null if not found */ getItem(key: string): Promise; /** * Remove an item from storage * @param key Storage key */ removeItem(key: string): Promise; /** * Remove multiple items from storage * @param keys Array of storage keys to remove */ removeItems(keys: string[]): Promise; } // Export storage keys export const STORAGE_ETH_ACCOUNTS_KEY = "eth-accounts"; export const STORAGE_ETH_ACTIVE_CHAIN_KEY = "eth-active-chain"; export const STORAGE_PASSKEY_CREDENTIAL_KEY = "passkey-credential"; export const STORAGE_PRESERVED_PASSKEY_CREDENTIALS_KEY = "preserved-passkey-credentials"; export const STORAGE_SMART_ACCOUNT_KEY = "smart-account"; export const STORAGE_SETTINGS_KEY = "settings"; export const STORAGE_WC_REQUESTS_KEY = "wc-requests"; export const STORAGE_CALL_BATCHES_KEY = "call-batches";