diff --git a/core/archipelago/src/api/rpc/wallet.rs b/core/archipelago/src/api/rpc/wallet.rs index a994081e..16b813fc 100644 --- a/core/archipelago/src/api/rpc/wallet.rs +++ b/core/archipelago/src/api/rpc/wallet.rs @@ -206,10 +206,17 @@ impl RpcHandler { // (redeemed at the mint) or Fedimint notes (reissued via the fmcd // sidecar). Detect by prefix and route accordingly. if is_cashu_token(token) { + // Which mint issued it, for the success screen. Ecash leaves no + // public trace once redeemed, so the mint URL is the only thing a + // person can quote later if the payment is ever disputed. + let mint_url = crate::wallet::cashu::CashuToken::deserialize(token) + .ok() + .and_then(|t| t.mint_urls().first().map(|m| m.to_string())); let amount = ecash::receive_token(&self.config.data_dir, token).await?; return Ok(serde_json::json!({ "received_sats": amount, "kind": "cashu", + "mint_url": mint_url, })); } diff --git a/neode-ui/src/components/PaymentSuccessPane.vue b/neode-ui/src/components/PaymentSuccessPane.vue new file mode 100644 index 00000000..8dca76a9 --- /dev/null +++ b/neode-ui/src/components/PaymentSuccessPane.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/neode-ui/src/components/WalletSettingsModal.vue b/neode-ui/src/components/WalletSettingsModal.vue index 592f3444..2e41fd22 100644 --- a/neode-ui/src/components/WalletSettingsModal.vue +++ b/neode-ui/src/components/WalletSettingsModal.vue @@ -36,16 +36,26 @@ : 'Real, spendable sats.' }}

-