refactor(vault): remove irpc actor dispatch — direct method calls on VaultServiceHandle (ADR-025)

Drop the irpc-based actor dispatch path from alknet-vault and convert to
direct method calls on VaultServiceHandle (drift item #4, ADR-025).

Removed:
- VaultProtocol enum with #[rpc_requests] derive from protocol.rs
- VaultServiceActor (mpsc + oneshot dispatch loop) from service.rs
- VaultService wrapper struct (only the handle is needed)
- Client<VaultProtocol> usage
- irpc, irpc-derive, tokio from [dependencies]
- postcard from [dev-dependencies]
- VaultMessage/VaultProtocol/VaultServiceActor re-exports from lib.rs
- Serialize/Deserialize derives from VaultServiceError
- postcard round-trip tests from protocol.rs
- actor tokio::test tests from service.rs

The vault now has zero async runtime dependency and zero RPC framework
dependency — it is local-only by construction. VaultServiceHandle is the
sole API: Arc<std::sync::RwLock<VaultServiceInner>> with synchronous
methods. lib.rs re-exports match the vault README Public API section.

Also fixes pre-existing clippy field_reassign_with_default warnings in
cache.rs tests so cargo clippy -- -D warnings passes.
This commit is contained in:
2026-06-23 13:20:28 +00:00
parent 098fd8b9b9
commit 9028fca302
6 changed files with 66 additions and 2066 deletions

View File

@@ -25,11 +25,7 @@ zeroize = { version = "1", features = ["derive"] }
hmac = "0.12"
rand = "0.8"
base64 = "0.22"
irpc = { workspace = true }
irpc-derive = { workspace = true }
tokio = { version = "1", features = ["sync", "rt", "macros"] }
secp256k1 = { version = "0.29", optional = true }
[dev-dependencies]
hex = "0.4"
postcard = { version = "1", features = ["alloc"] }
hex = "0.4"