fix(wallet): redeem across all federations, unified ecash history, fmcd healthcheck
- reissue_into_any now tries the UNION of the local registry AND fmcd's live joined set (/v2/admin/info) before failing, so a valid Fedimint token isn't wrongly rejected when the registry has drifted. On all-fail it returns a friendly message: notes already redeemed into this wallet (funds safe) vs didn't match any connected federation. - Unified transaction history: a local Fedimint tx log (recorded on each successful redeem) is merged with the Cashu history in wallet.ecash-history, newest-first, each tagged kind=cashu|fedimint. Previously a Fedimint receive appeared nowhere. - fedimint-clientd healthcheck -> type:tcp. It was probing /health, which fmcd doesn't serve (only /v2/*), pinning the container in (starting) forever; the TCP probe is skipped by the Quadlet renderer (host-side lifecycle verifies), so it reports running. Cosmetic for ecash, which worked throughout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0f2e6f6aaf
commit
7831e68d13
@@ -161,9 +161,17 @@ impl RpcHandler {
|
||||
}
|
||||
|
||||
pub(super) async fn handle_wallet_ecash_history(&self) -> Result<serde_json::Value> {
|
||||
// Unified history: Cashu transactions (tagged kind="cashu") + the local
|
||||
// Fedimint transaction log (kind="fedimint"), newest first. Previously
|
||||
// only Cashu was returned, so a Fedimint receive showed up nowhere.
|
||||
let wallet = ecash::load_wallet(&self.config.data_dir).await?;
|
||||
let mut transactions = wallet.transactions;
|
||||
transactions.extend(fedimint_client::load_fedimint_txs(&self.config.data_dir).await);
|
||||
// Sort by RFC-3339 timestamp descending (string compare is valid for
|
||||
// same-offset RFC-3339), newest first.
|
||||
transactions.sort_by(|a, b| b.timestamp.cmp(&a.timestamp));
|
||||
Ok(serde_json::json!({
|
||||
"transactions": wallet.transactions,
|
||||
"transactions": transactions,
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user