Skip to main content

Crate dig_wallet_backend

Crate dig_wallet_backend 

Source
Expand description

§dig-wallet-backend

The canonical, event-driven Chia wallet backend for the DIG Network. It exports two carefully-partitioned seams (see SPEC.md) plus the shared types layer they meet over:

  • engine — imported by dig-node-service. The single running wallet INSTANCE: state tracking, peer sync, unsigned-spend construction, event emission, and broadcast. It is identity-parameterized (fed public types::IdentityRef material + a engine::RemoteSigner callback) and NEVER holds a private key or signs.
  • client — used by dig-app. The event SUBSCRIBER, spend review/decode, the SIGNER that HOLDS the key, the identity provider, and the local address book.
  • types — the shared, I/O-free wire contract both seams import. Contains NO secret material.

§The key-isolation invariant (SPEC §1d)

The private key lives ONLY behind client::signer (compiled under the client feature). No engine-seam type is or transitively exposes a chia_bls::SecretKey, mnemonic, or seed. This is enforced two ways: the engine seam compiles standalone with no secret-key path (--no-default-features --features engine), and tests/key_isolation.rs asserts the engine source names no secret type.

§Features

  • types — always compiled (both seams depend on it).
  • engine — the engine-seam code + its async runtime.
  • client — the client-seam code (the only place secret material is compiled in).

Modules§

client
The client seam — used by dig-app (SPEC §4).
engine
The engine seam — imported by dig-node-service (SPEC §3).
types
The shared types layer — the wire contract both seams import (SPEC §2).