Skip to content

[kotlin-sdk] Encrypted-document create/update for the wallet txMetadata contract #4086

Description

@bfoss765

Priority: P0 — hard blocker with NO app-side workaround; the single longest pole in retiring the legacy org.dashj.platform stack from dash-wallet. Implementation will be driven by @bfoss765 — this issue tracks design agreement.

The Android wallet's TxMetadata pipeline (tax categories, memos, gift-card and exchange-rate records) publishes per-identity ECDH-encrypted documents to the wallet contract, today via the legacy BlockchainIdentity.publishTxMetaData(...). The Kotlin SDK's only document write, documents/DocumentTransactions.create(walletHandle, ownerId, contractId, documentType, propertiesJson, signerHandle), accepts plaintext propertiesJson only — there is no encryption-key parameter and no encrypted-document surface anywhere in the SDK.

Ask: an encrypted-document create/update where the SDK derives/uses the identity encryption key (semantics equivalent to the legacy publishTxMetaData), usable for the wallet/txMetadata contract. Without it the TxMetadata loop runs on the legacy library for every user unconditionally, and the legacy dependency can never be removed.

Read-path counterpart filed separately (decrypt-on-fetch). Context: dash-wallet migration plan Phase 3h step 3 (dashpay/dash-wallet#1507). cc @QuantumExplorer

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions