Files
caravel/backend/spec/wallet.md
T
Jon Staab b4af2f3866
Docker / build-and-push-image (backend, backend, coracle/caravel-backend) (push) Failing after 0s
Docker / build-and-push-image (frontend, frontend, coracle/caravel-frontend) (push) Failing after 0s
Update spec and readme
2026-05-22 10:15:52 -07:00

994 B

pub struct Wallet

A handle to a single Nostr Wallet Connect (NWC) wallet. Billing holds one as its system wallet (receives — issues and looks up invoices); tenant wallets (pay invoices) are constructed ad-hoc from the decrypted tenant.nwc_url at the call site. Each operation opens a fresh NWC connection and shuts it down afterwards.

Member:

  • url: NostrWalletConnectURI — the parsed nostr+walletconnect://… URI

pub fn from_url(url: &str) -> Result<Self>

Parses an nostr+walletconnect:// URI.

pub async fn make_invoice(&self, amount_msats: u64, description: &str, expiry_secs: u64) -> Result<String>

Issues a bolt11 invoice for amount_msats with the given description and expiry, and returns the bolt11 string.

pub async fn pay_invoice(&self, bolt11: String) -> Result<()>

Pays a bolt11 invoice.

pub async fn is_settled(&self, bolt11: &str) -> Result<bool>

Returns whether a bolt11 invoice (previously issued by this wallet) has settled.