use crate::RpcUtxosByAddressesEntry;
use kaspa_addresses::Prefix;
use kaspa_consensus_core::tx::UtxoEntry;
use kaspa_index_core::indexed_utxos::UtxoSetByScriptPublicKey;
use kaspa_txscript::extract_script_pub_key_address;
pub fn utxo_set_into_rpc(item: &UtxoSetByScriptPublicKey, prefix: Option<Prefix>) -> Vec<RpcUtxosByAddressesEntry> {
item.iter()
.flat_map(|(script_public_key, utxo_collection)| {
let address = prefix.and_then(|x| extract_script_pub_key_address(script_public_key, x).ok());
utxo_collection
.iter()
.map(|(outpoint, entry)| RpcUtxosByAddressesEntry {
address: address.clone(),
outpoint: *outpoint,
utxo_entry: UtxoEntry::new(entry.amount, script_public_key.clone(), entry.block_daa_score, entry.is_coinbase),
})
.collect::<Vec<_>>()
})
.collect::<Vec<_>>()
}