#include "balance_recent_tx.h"
#include "../../config/version.h"
#include "../../util/text_format.h"

#include <cmath>
#include <cstdio>
#include <ctime>

namespace dragonx {
namespace ui {

namespace {
std::string formatRecentAmount(const std::string& type, double amount)
{
    char buffer[32];
    snprintf(buffer, sizeof(buffer), "%s%.4f %s",
             type == "send" ? "-" : "+",
             std::abs(amount), DRAGONX_TICKER);
    return std::string(buffer);
}

std::string recentTimeAgo(int64_t timestamp)
{
    return util::formatTimeAgoShort(timestamp);
}
}

RecentTxDisplay buildRecentTxDisplay(const TransactionInfo& tx, int addressMaxLen)
{
    return {
        tx.getTypeDisplay(),
        util::truncateMiddle(tx.address, addressMaxLen),
        formatRecentAmount(tx.type, tx.amount),
        recentTimeAgo(tx.timestamp)
    };
}

} // namespace ui
} // namespace dragonx
