fix: zero-amount invoices, identity.verify DID extraction, tor service permissions

- Allow zero-amount Lightning invoices (BOLT11 "any amount") by changing
  validation from amount_sats < 1 to amount_sats < 0
- identity.verify now extracts pubkey directly from did:key format instead
  of requiring the DID to belong to a local identity
- tor.create-service writes config to data_dir/tor-config/ instead of
  /var/lib/archipelago/tor/ (owned by debian-tor, not archipelago user)
- Add E2E test script (scripts/run-e2e-tests.sh) covering 47 RPC endpoints
- Add testing plan with results (loop/testing.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-09 09:53:36 +00:00
co-authored by Claude Opus 4.6
parent e3aa95a103
commit 0cf71c4115
5 changed files with 862 additions and 25 deletions
+2 -2
View File
@@ -387,8 +387,8 @@ impl RpcHandler {
.and_then(|v| v.as_str())
.unwrap_or("");
if amount_sats < 1 {
return Err(anyhow::anyhow!("Amount must be at least 1 sat"));
if amount_sats < 0 {
return Err(anyhow::anyhow!("Amount must be non-negative"));
}
info!(amount_sats = amount_sats, "Creating Lightning invoice");