diff --git a/api/src/indexer/mod.rs b/api/src/indexer/mod.rs index 9cc98ec..dba64b4 100644 --- a/api/src/indexer/mod.rs +++ b/api/src/indexer/mod.rs @@ -540,6 +540,14 @@ fn address_to_string(a: &xdr::ScAddress) -> Result { xdr::ScAddress::Contract(xdr::ContractId(xdr::Hash(bytes))) => { Ok(stellar_strkey::Contract(*bytes).to_string()) } + // Muxed accounts and any future address variants are not expected from + // these contracts, but returning an error here would abort the entire + // refresh cycle via `?`. Emit a recognisable placeholder so callers + // can still process the rest of the response. + other => { + tracing::warn!("address_to_string: unsupported address variant, using placeholder: {other:?}"); + Ok(format!("unknown:{other:?}")) + } other => Err(IndexError::Unsupported(format!( "unsupported address: {other:?}" ))),