Thank you for your interest in contributing to the Aztec Staking Dashboard! This document provides guidelines and information for contributors.
By participating in this project, you agree to abide by our code of conduct: be respectful, inclusive, and constructive in all interactions.
If you find a bug, please open an issue with:
- Clear title describing the bug
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (browser, OS, Node version)
- Screenshots if applicable
If your report relates to a security vulnerability or security-sensitive issue, please do not open a public issue and instead follow the private disclosure process described in SECURITY.md.
For feature requests, open an issue with:
- Clear description of the proposed feature
- Use case - why is this feature needed?
- Proposed implementation (optional)
- Alternatives considered (optional)
- Fork the repository and create your branch from
main - Make your changes following the code style guidelines below
- Test your changes locally
- Update documentation if needed
- Submit a pull request with a clear description
# Clone your fork
git clone https://github.com/YOUR_USERNAME/staking-dashboard.git
cd staking-dashboard
# Add upstream remote
git remote add upstream https://github.com/AztecProtocol/staking-dashboard.git
# Create a feature branch
git checkout -b feature/your-feature-name- Use TypeScript for all new code
- Follow existing code patterns in the repository
- Use meaningful variable and function names
- Add JSDoc comments for public functions
We use Prettier and ESLint for code formatting:
# Frontend
cd staking-dashboard
yarn lint # Check for issues
yarn lint --fix # Auto-fix issues
# Run Prettier
yarn prettier --write .Follow conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(staking): add unstake confirmation modal
fix(governance): correct vote count calculation
docs(readme): update installation instructions
- Code compiles without errors
- All existing tests pass
- New code has appropriate test coverage
- Documentation is updated if needed
- Commit messages follow conventions
Include:
- What changes were made
- Why these changes were necessary
- How to test the changes
- Screenshots for UI changes
- PRs require at least one approval from a maintainer
- All CI checks must pass
- Address review feedback promptly
- Squash commits before merging (if requested)
cd staking-dashboard
# Type checking
yarn tsc --noEmit
# Linting
yarn lint
# Build test
yarn buildcd atp-indexer
# Generate types
yarn codegen
# Run tests (if available)
yarn testUnderstanding the codebase:
staking-dashboard/ # Frontend
├── src/
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Page-level components
│ ├── contracts/ # Contract ABIs and types
│ ├── lib/ # Utilities and helpers
│ └── App.tsx # Main application entry
atp-indexer/ # Backend
├── src/
│ ├── handlers/ # Blockchain event handlers
│ └── api/ # REST API endpoints
├── ponder.config.ts # Indexer configuration
└── ponder.schema.ts # Database schema
- Discord: Join the Aztec Discord for community support
- Issues: Open a GitHub issue for bugs or feature requests
- Discussions: Use GitHub Discussions for questions
By contributing, you agree that your contributions will be licensed under the MIT License.