diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index bdd0968a8a..4e5b5e3ac2 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -794,6 +794,26 @@ QString formatAssetAmount(const CAsset& asset, const CAmount& amount, const int return str; } +QString formatMultiAssetAmount(const CAmountMap& amountmap, const int bitcoin_unit, BitcoinUnits::SeparatorStyle separators, QString line_separator) +{ + QStringList ret; + if (amountmap.count(Params().GetConsensus().pegged_asset) && amountmap.at(Params().GetConsensus().pegged_asset)) { + ret << formatAssetAmount(Params().GetConsensus().pegged_asset, amountmap.at(Params().GetConsensus().pegged_asset), bitcoin_unit, separators); + } + for (const auto& assetamount : amountmap) { + if (assetamount.first == Params().GetConsensus().pegged_asset) { + // Already handled first + continue; + } + if (!assetamount.second) { + // Don't include zero-amount assets + continue; + } + ret << formatAssetAmount(assetamount.first, assetamount.second, bitcoin_unit, separators); + } + return ret.join(line_separator); +} + QString formatDurationStr(int secs) { QStringList strList; diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index f22a85b136..d11e3ca6dd 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -192,6 +192,9 @@ namespace GUIUtil /* Format an amount of assets in a user-friendly style */ QString formatAssetAmount(const CAsset&, const CAmount&, int bitcoin_unit, BitcoinUnits::SeparatorStyle); + /* Format one or more asset+amounts in a user-friendly style */ + QString formatMultiAssetAmount(const CAmountMap&, int bitcoin_unit, BitcoinUnits::SeparatorStyle, QString line_separator); + /* Convert seconds into a QString with days, hours, mins, secs */ QString formatDurationStr(int secs);