durt2 1.3.0
durt2: ^1.3.0 copied to clipboard
Dart library for interacting with Duniter v2s blockchains. Provides wallet management, transaction signing, Squid GraphQL requests, and more
1.3.0 #
- Identity-name lookup over the on-chain
IdentitiesNamesmap:DuniterStorageService.getIdentityIndexByName(name)for an exact match, andgetIdentityIndexByNameMulti(names)for a batched one (singlemultiIdentitiesNamesRPC, order preserved, result padded to the request length). Both returnnullfor a free name and degrade tonullon a WebSocket drop rather than throwing. Lets a client treat the on-chain identity name as authoritative over a self-declared profile name.MockDuniterStorageServicegainssetReservedNameand anameMultiLookupCountcounter so batching can be asserted in tests. DuniterStorageService.accountSurvivesAtZero(address): whether an account keeps existing once emptied. True whensufficients > 0, which on Duniter v2s means the account backs an identity (pallet_identity::create_identitycallsinc_sufficientson the owner key). Such an account may go below the existential deposit without being reaped, so a client can offer the full balance instead of refusing the amount or burning the change.DuniterService.paytakes akeepAliveflag (defaulttrue, unchanged behaviour for Ğ1 amounts).falseselects the chain'sExpendablepreservation:transferAllowDeathinstead oftransferKeepAlive, andtransferUdinstead oftransferUdKeepAlive. This also aligns the two units: UD amounts previously always usedtransferUd(Expendable) while Ğ1 amounts usedtransferKeepAlive(Preserve), so the existential-deposit rule silently depended on the display unit.
1.2.1 #
- Fix macOS biometrics:
BiometricServicenow stores the encrypted PIN in the platform-aware secure storage (file-based on macOS, where the Keychain is not reliably available via Flutter plugins) instead of the raw Keychain plugin. Readable legacy Keychain enrollments are migrated on first use; broken ones simply require re-enrolling. New public API:CryptoUtils.secureRead/secureWrite/secureDelete/secureContainsKey/secureReadAll.
1.2.0 #
- Contacts sync foundation (Cesium+ pods): CRDT model
ContactsSyncState/ContactSyncEntry(per-field last-write-wins, commutative merge, non- destructive removal viaisContact, dead-entry GC, forward-compatible unknown fields) and encrypted-blob pod I/OgetContacts/saveContacts(cross-preserves the co-hosted certification queue).
0.6.0 #
- Bulk storage support
- Improved network scan
- Connection orchestrator improvements
0.3.0 #
- Implement all Gecko v2s requirements
0.1.0 #
- Migrate files from Ğazelle to split responsabilities