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

77 lines
2.0 KiB
Markdown

# 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:
```bash
git clone https://git.hush.is/<your-username>/ObsidianDragon.git
cd ObsidianDragon
git checkout -b my-feature
```
3. Install dependencies:
```bash
./scripts/setup.sh
```
4. Build:
```bash
./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
```bash
# 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](https://git.hush.is/dragonx/ObsidianDragon/issues)
- 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.