// DragonX Wallet - ImGui Edition // Copyright 2024-2026 The Hush Developers // Released under the GPLv3 #include "wallet_state.h" #include #include #include namespace dragonx { std::string TransactionInfo::getTimeString() const { if (timestamp == 0) return "Unknown"; std::time_t t = static_cast(timestamp); std::tm* tm = std::localtime(&t); std::stringstream ss; ss << std::put_time(tm, "%Y-%m-%d %H:%M"); return ss.str(); } std::string TransactionInfo::getTypeDisplay() const { if (type == "send") return "Sent"; if (type == "receive") return "Received"; if (type == "mined" || type == "generate" || type == "immature") return "Mined"; return type; } std::string PeerInfo::getConnectionTime() const { if (conntime == 0) return "Unknown"; int64_t now = std::time(nullptr); int64_t diff = now - conntime; if (diff < 60) return std::to_string(diff) + "s"; if (diff < 3600) return std::to_string(diff / 60) + "m"; if (diff < 86400) return std::to_string(diff / 3600) + "h"; return std::to_string(diff / 86400) + "d"; } std::string BannedPeer::getBannedUntilString() const { if (banned_until == 0) return "Never"; std::time_t t = static_cast(banned_until); std::tm* tm = std::localtime(&t); std::stringstream ss; ss << std::put_time(tm, "%Y-%m-%d %H:%M"); return ss.str(); } } // namespace dragonx