Files
ObsidianDragon/CONTRIBUTING.md
dan_s c809666624 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

2.0 KiB

Contributing to ObsidianDragon

Thank you for your interest in contributing! This guide will help you get started.

Getting Started

  1. Fork the repository
  2. Clone your fork and create a branch:
    git clone https://git.hush.is/<your-username>/ObsidianDragon.git
    cd ObsidianDragon
    git checkout -b my-feature
    
  3. Install dependencies:
    ./scripts/setup.sh
    
  4. Build:
    ./build.sh --linux-release   # or --win-release, --mac-release
    

Development Workflow

Code Style

  • C++17 standard
  • Use the Material Design icon font (ICON_MD_* defines) — never raw Unicode symbols
  • UI layout values go in res/themes/ui.toml, read via schema::UI() — never hardcode pixel sizes
  • Use the RPCWorker for all RPC calls — never block the main thread with synchronous curl

See .github/copilot-instructions.md for detailed coding standards.

Building

# Linux debug build (fastest iteration)
cd build && make -j$(nproc)

# Full release builds
./build.sh --linux-release
./build.sh --win-release
./build.sh --mac-release

Testing

Run the wallet and verify:

  • Daemon connection and sync
  • Lock screen / PIN unlock
  • Send and receive transactions
  • All tabs render correctly

Submitting Changes

  1. Commit with clear, descriptive messages
  2. Push to your fork
  3. Open a Pull Request against main
  4. Describe what changed and why

Pull Request Guidelines

  • Keep PRs focused — one feature or fix per PR
  • Ensure the project builds on Linux (make -j$(nproc))
  • Test cross-compilation if touching platform-specific code (./build.sh --win-release)
  • Update res/themes/ui.toml if adding new UI layout values

Reporting Issues

  • Use the issue tracker
  • Include: OS, wallet version, steps to reproduce, expected vs actual behaviour
  • For crashes: include any terminal output

License

By contributing, you agree that your contributions will be licensed under the GPLv3.