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)
2.0 KiB
2.0 KiB
Contributing to ObsidianDragon
Thank you for your interest in contributing! This guide will help you get started.
Getting Started
- Fork the repository
- Clone your fork and create a branch:
git clone https://git.hush.is/<your-username>/ObsidianDragon.git cd ObsidianDragon git checkout -b my-feature - Install dependencies:
./scripts/setup.sh - 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 viaschema::UI()— never hardcode pixel sizes - Use the
RPCWorkerfor 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
- Commit with clear, descriptive messages
- Push to your fork
- Open a Pull Request against
main - 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.tomlif 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.