xmtp_plugin 1.0.4
xmtp_plugin: ^1.0.4 copied to clipboard
A Flutter plugin for XMTP decentralized messaging. Supports DMs, group chats, content codecs, consent management, and real-time streaming across Android, iOS, Windows, and Web.
1.0.4 #
- Added
staticGetInboxIdForAddress(address, environment)— Network lookup for the real XMTP inbox ID mapped to an Ethereum address. Handles linked accounts (keys added to another inbox viaaddAccount). Does NOT require an initialized client. Available on Android, iOS, and Windows. - Added
staticDeleteLocalDatabase(address, inboxId, environment)— Deletes the local XMTP database files for a given address/inboxId without requiring an initialized client. Enables recovery when the DB encryption key is lost but the local DB still exists. Available on Android, iOS, and Windows. - Removed
computeInboxId— Gave wrong results for addresses added to a different inbox viaaddAccount. UsestaticGetInboxIdForAddress(network lookup) instead.
1.0.3 #
- Web: Upgraded to XMTP Browser SDK v6. Complete rewrite of the JavaScript bridge (
web/xmtp_client_manager.js). All v6 API changes adopted:createDm/createGroup(renamed),sendText(replacessend),IdentifierKindenums,accountIdentifiers(replacesaddresses),fetchInboxState/inboxStatesplit,ConsentState/ConsentEntityTypeenums. - Web: Switched to Vite bundler for proper Web Worker and WASM handling. Includes
vite.config.jsand build instructions. - Web: Added viem for proper secp256k1 ECDSA message signing (replaces SHA-256 mock signer).
- Web: Fixed client.close() — previous versions leaked Web Workers on re-initialization, blocking OPFS database access for new clients.
- Web: Fixed InboxState field mapping —
accountIdentifiers(notidentifiers),recoveryIdentifier(notrecoveryIdentity),IdentifierKindenum conversion. - Web: Fixed listGroupMembers — updated from
m.addresses(v5) tom.accountIdentifiers(v6). - Cross-platform: Conditional export of
XmtpPluginWindowsusingdart.library.js_interopguard. Web gets a no-op stub, native platforms get the real FFI implementation. Fixes dart2js compilation failure when building for web. - Cross-platform: Defensive encodedContent type handling —
List<dynamic>(from JS interop) is now converted toUint8Listin both_processMessagesandsubscribeToAllMessages. No behavior change on native platforms. - Test app now runs on all platforms — Web, Windows, and Android from a single
test_app/. 22 integration tests covering key generation, client init, DMs, groups, sync, addAccount, and inbox state verification.
1.0.2 #
- Clarified Windows setup: DLL is not included in pub.dev package, clone repo + build + copy workflow documented
- Updated README and START_HERE with explicit per-platform instructions
1.0.1 #
- Removed untested macOS and Linux platform declarations
- Fixed lint warnings (unused imports, missing @override annotations, unnecessary type checks)
- Added .gitignore, removed generated files from tracking
1.0.0 #
- Initial release
- Client initialization with private key and encrypted local database
- Direct messages (DMs) and group conversations
- Real time message streaming via
subscribeToAllMessages() - Extensible codec system with built in support for text, attachments, remote attachments, reactions, replies, read receipts, actions, intents, group updates, delete messages, leave requests, and multi remote attachments
- Consent management per conversation and per inbox
- Group operations: create, update metadata, manage members and admin roles
- Inbox management: installations, account linking, recovery identity
- History sync across devices
- Platform support: Android (xmtp-android SDK), iOS (XMTP Swift SDK), Windows (Rust FFI via libxmtp), Web (XMTP Browser SDK v5)