Files
ObsidianDragon/src/rpc/types.h
DanS 3aee55b49c ObsidianDragon - DragonX ImGui Wallet
Full-node GUI wallet for DragonX cryptocurrency.
Built with Dear ImGui, SDL3, and OpenGL3/DX11.

Features:
- Send/receive shielded and transparent transactions
- Autoshield with merged transaction display
- Built-in CPU mining (xmrig)
- Peer management and network monitoring
- Wallet encryption with PIN lock
- QR code generation for receive addresses
- Transaction history with pagination
- Console for direct RPC commands
- Cross-platform (Linux, Windows)
2026-02-27 00:26:01 -06:00

96 lines
1.8 KiB
C++

// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3
#pragma once
#include <string>
#include <vector>
#include <cstdint>
namespace dragonx {
namespace rpc {
// Transaction types
enum class TxType {
Sent,
Received,
Mined,
Unknown
};
// Transaction info
struct Transaction {
std::string txid;
TxType type = TxType::Unknown;
int64_t timestamp = 0;
std::string address;
double amount = 0.0;
int confirmations = 0;
std::string memo;
std::string from_address;
};
// Peer info
struct Peer {
int64_t id = 0;
std::string address;
std::string tls_cipher;
bool tls_verified = false;
int64_t conntime = 0;
int banscore = 0;
int protocol_version = 0;
std::string subver;
int64_t bytes_sent = 0;
int64_t bytes_received = 0;
double pingtime = 0.0;
};
// Banned peer info
struct BannedPeer {
std::string address;
std::string subnet;
int64_t banned_until = 0;
int64_t asn = 0;
};
// Unspent output (UTXO)
struct UnspentOutput {
std::string address;
std::string txid;
int vout = 0;
double amount = 0.0;
int confirmations = 0;
bool spendable = true;
};
// Address balance
struct AddressBalance {
std::string address;
double balance = 0.0;
bool is_shielded = false;
};
// Blockchain info
struct BlockchainInfo {
int blocks = 0;
int headers = 0;
std::string bestblockhash;
double difficulty = 0.0;
double verificationprogress = 0.0;
bool syncing = false;
};
// Mining info
struct MiningInfo {
int blocks = 0;
double difficulty = 0.0;
double networkhashps = 0.0;
double localhashps = 0.0;
int genproclimit = 0;
bool generate = false;
};
} // namespace rpc
} // namespace dragonx