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)
This commit is contained in:
76
CONTRIBUTING.md
Normal file
76
CONTRIBUTING.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user