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)
77 lines
2.0 KiB
Markdown
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.
|