User Defaults Storage Adapter
Persistent storage adapter for smart account credentials and sessions using NSUserDefaults.
This adapter stores credential and session data in an isolated NSUserDefaults suite, persisting across application restarts. Data is serialized as JSON with ByteArray fields encoded as lowercase hex strings.
Since stored credentials contain public keys (not secret keys), NSUserDefaults provides adequate security for most use cases. For applications requiring stronger isolation, use KeychainStorageAdapter instead.
Thread safety is ensured by a Mutex, and all operations are suspend functions.
Key scheme:
cred_{credentialId}for individual credentialscredential_indexfor the credential ID indexsession_currentfor the active session
Example:
val storage = UserDefaultsStorageAdapter()
storage.save(credential)
val loaded = storage.get(credential.credentialId)Parameters
The NSUserDefaults suite name for isolation. Defaults to "com.soneso.stellar.smartaccount".
Functions
Clears the current session.
Retrieves a credential by its ID.
Retrieves all stored credentials.
Retrieves all credentials associated with a contract address.
Retrieves the current session.
Saves a credential to storage using upsert semantics.
Saves a session to storage.
Updates a credential with partial changes.