Aggregator SDK
npm install @ferra-labs/aggregatorA monorepo containing SDKs for CLMM (Concentrated Liquidity Market Maker), DLMM (Discrete Liquidity Market Maker) protocols, and DEX Aggregator.
- @ferra-labs/clmm - Concentrated Liquidity Market Maker SDK
- @ferra-labs/dlmm - Discrete Liquidity Market Maker SDK
- @ferra-labs/aggregator - DEX Aggregator SDK
``bashInstall CLMM only
npm install @ferra-labs/clmm
Quick Start
`bash
Install dependencies
pnpm installBuild all packages
pnpm buildRun tests
pnpm testLint code
pnpm lint
`Development
$3
- Node.js >= 16
- pnpm >= 8
$3
`bash
git clone
cd ferra-sdks
pnpm install
pnpm prepare
`$3
-
pnpm build - Build all packages
- pnpm dev - Start development mode with watch
- pnpm lint - Lint all packages
- pnpm test - Run tests for all packages
- pnpm clean - Clean build outputs
- pnpm changeset - Create a changeset for releases$3
`bash
Build specific package
pnpm --filter @ferra-labs/clmm build
pnpm --filter @ferra-labs/dlmm build
pnpm --filter @ferra-labs/aggregator buildRun tests for specific package
pnpm --filter @ferra-labs/clmm test
pnpm --filter @ferra-labs/dlmm test
pnpm --filter @ferra-labs/aggregator testStart development mode for specific package
pnpm --filter @ferra-labs/clmm dev
pnpm --filter @ferra-labs/dlmm dev
pnpm --filter @ferra-labs/aggregator dev
`$3
This project uses Changesets for version management and publishing.
`bash
1. Create changeset
pnpm changeset2. Version packages
pnpm version-packages3. Publish
pnpm release
`$3
1. Fork the repository
2. Create your feature branch (
git checkout -b feature/amazing-feature)
3. Commit your changes (git commit -m 'feat: add amazing feature')
4. Push to the branch (git push origin feature/amazing-feature)
5. Open a Pull Request🎯 Key Features of This Setup
$3
- Shared configuration across packages
- Unified development workflow
- Cross-package dependency management
- Consistent tooling and standards$3
- Each package can be installed separately
- Individual versioning with changesets
- Selective updates for users
- Modular architecture$3
- Fast builds with tsup
- Hot reloading in development
- Automated linting and formatting
- Git hooks for quality control
- TypeScript support throughout$3
- Multiple output formats (CJS + ESM)
- TypeScript declarations
- Source maps for debugging
- Tree shaking support
- Minification for production$3
- Automated releases with changesets
- Consistent code style with prettier/eslint
- Commit message standards with commitlint
- Pre-commit hooks with husky---
🔧 Next Steps
1. Initialize the repository:
`bash
mkdir ferra-sdks
cd ferra-sdks
git init
`2. Create the structure:
`bash
# Create directories
mkdir -p packages/clmm/src packages/dlmm/src packages/aggregator/src shared .husky/_ .changeset # Copy all the configuration files above
`3. Setup and install:
`bash
pnpm install
pnpm prepare
`4. Start developing:
`bash
# Add your CLMM logic to packages/clmm/src/
# Add your DLMM logic to packages/dlmm/src/
# Add your Aggregator logic to packages/aggregator/src/
`5. Build and test:
`bash
pnpm build
pnpm test
`This setup provides a production-ready monorepo that allows users to install
@ferra-labs/clmm, @ferra-labs/dlmm, and @ferra-labs/aggregator independently!---
NPM Packages Management
$3
`bash
Create changeset
pnpm changeset
`$3
`bash
pnpm version-packages
`$3
`bash
pnpm release
`$3
`bash
Install CLMM only
npm install @ferra-labs/clmmInstall DLMM only
npm install @ferra-labs/dlmmInstall Aggregator only
npm install @ferra-labs/aggregatorInstall specific combination
npm install @ferra-labs/clmm @ferra-labs/aggregatorInstall all packages
npm install @ferra-labs/clmm @ferra-labs/dlmm @ferra-labs/aggregator
``