Skip to content

Latest commit

 

History

History
128 lines (89 loc) · 4.03 KB

File metadata and controls

128 lines (89 loc) · 4.03 KB

Contributing to CCA Token Launcher Protocol

Thank you for your interest in contributing. This project is a monorepo containing smart contracts, a blockchain indexer, a frontend application, and a TypeScript SDK. Contributions of all kinds are welcome — bug reports, feature proposals, documentation improvements, and code changes.

Code of Conduct

Please read and follow the Code of Conduct in all interactions within this project.

Ways to Contribute

  • Bug reports — Open a GitHub Issue with a clear description, reproduction steps, and expected vs. actual behavior.
  • Feature requests — Open a GitHub Issue describing the use case and proposed behavior before writing code.
  • Documentation — Fix typos, improve clarity, or add missing content in docs/ or package-level READMEs.
  • Security vulnerabilities — Do NOT open a public issue. Follow the process described in SECURITY.md.

Development Setup

Prerequisites

  • Node.js 20+
  • pnpm (or Yarn — the repo uses Yarn workspaces)
  • Foundry (forge, cast, anvil)

Fork and Clone

# Fork the repo on GitHub, then clone your fork
git clone https://github.com/<your-username>/CCA-Token-Launcher-Protocol.git
cd CCA-Token-Launcher-Protocol

# Add upstream remote
git remote add upstream https://github.com/dennisonbertram/CCA-Token-Launcher-Protocol.git

Install Dependencies

pnpm install

For contract dependencies:

cd packages/contracts
forge install

Branching Strategy

Work from a feature or fix branch off main. Do not commit directly to main.

Branch pattern Purpose
main Production — always deployable
feat/<description> New features
fix/<description> Bug fixes
docs/<description> Documentation-only changes
chore/<description> Dependency bumps, tooling, CI changes
git checkout main
git pull upstream main
git checkout -b feat/my-feature

Commit Conventions

This project follows Conventional Commits.

Type Use for Example
feat New feature or behavior feat(contracts): add fee recipient validation
fix Bug fix fix(indexer): handle null totalSupply checkpoint
docs Documentation only docs: add token launch flow diagram
test Adding or updating tests test(contracts): cover zero-address revert in CCAFactory
chore Tooling, deps, CI chore: bump ponder to 0.8.0
refactor Code change with no behavior change refactor(frontend): extract useAuctionTiming hook

Keep the subject line under 72 characters. Add a body paragraph when the change needs context or describes a non-obvious decision.

Pull Request Process

  1. Ensure all tests pass locally before opening a PR (see Testing below).
  2. Write a clear PR description: what changed, why, and how to test it.
  3. Link any related GitHub Issues using Closes #<number> or Relates to #<number>.
  4. Keep PRs focused — one logical change per PR makes review faster.
  5. Allow maintainer edits so minor fixes can be applied without round-trips.
  6. Expect an initial review response within a few business days. Address feedback promptly; PRs idle for more than 30 days may be closed.

Testing

All tests must pass before a PR will be merged.

Contracts

cd packages/contracts
forge test

Indexer

yarn workspace @cca-launcher/indexer test

Frontend

yarn workspace @cca-launcher/frontend test

SDK

yarn workspace @cca-launcher/sdk test

Running Everything

yarn test

Getting Help

  • Open a GitHub Discussion for questions about how the protocol works or for design feedback before writing code.
  • Open a GitHub Issue for bugs and feature requests.