Skip to content

fix(custody)!: a second node-side USER custody + signing surface survives in dig-wallet's self-origin UI #327

Description

@MichaelTaylor3d

Task

A SECOND node-side USER custody + signing surface survives in crates/dig-wallet/src/lib.rs — the
self-origin wallet UI (SPEC §16.3). It is a rival implementation of exactly the capability removed by
#325, and it was never covered by the #1701 freeze.

Evidence

  • lib.rs:369 POST /api/import — validates a mnemonic, seed_store::encrypt_seed(&m, &req.password),
    writes it to seed_path(), opens a signing session.
  • lib.rs:409 POST /api/unlockseed_store::decrypt_seed(&bytes, &req.password) → session.
  • lib.rs:510 POST /api/send — builds and BLS-signs a standard XCH payment; broadcast:true pushes
    it to mainnet.
  • lib.rs:1049 onward — the CHIP-0002 dapp signer: chip0002_signMessage, chip0002_signCoinSpends,
    chia_signMessageByAddress.

The freeze commit 2ce8002c touched sage/auth.rs, sage/custody.rs, sage/rpc.rs, seed_store.rs,
wallet_authz.rs and meta.rs — none of this.

Why it was NOT removed alongside the Sage plane

The zero-population measurement does not cover it. Step 2 of dig_ecosystem#1701 counted custody
manifest blobs (<config_dir>/wallets/), not seed_path(). Deleting this surface without its own count
carries the exact funds-loss risk the parent ticket's freeze-then-count sequence exists to prevent.

Deliverable

  1. COUNT first, over seed_path(), on the same machines. Report the number.
  2. If zero, remove the surface and its CHIP-0002 signer, mirroring dig-node#325.
  3. If non-zero, an offline export path before removal, per the parent ticket's step 3.

Either way §908 — the node signs NOTHING on the user's behalf — is not whole until this closes.
SPEC.md §18.20 currently names this gap explicitly rather than claiming §908 is satisfied.

Parent

https://github.com/DIG-Network/dig_ecosystem/issues/1701

Sibling

#325

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