npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@ferra-labs/dlmm

v1.0.8

Published

Discrete Liquidity Market Maker SDK

Downloads

560

Readme

A monorepo containing SDKs for CLMM (Concentrated Liquidity Market Maker), DLMM (Discrete Liquidity Market Maker) protocols, and DEX Aggregator.

Packages

Package Installation

# Install CLMM only
npm install @ferra-labs/clmm

# Install DLMM only
npm install @ferra-labs/dlmm

# Install Aggregator only
npm install @ferra-labs/aggregator

# Install all packages
npm install @ferra-labs/clmm @ferra-labs/dlmm @ferra-labs/aggregator

Quick Start

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Lint code
pnpm lint

Development

Prerequisites

  • Node.js >= 16
  • pnpm >= 8

Setup

git clone <repository-url>
cd ferra-sdks
pnpm install
pnpm prepare

Available Scripts

  • 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

Package-Specific Commands

# Build specific package
pnpm --filter @ferra-labs/clmm build
pnpm --filter @ferra-labs/dlmm build
pnpm --filter @ferra-labs/aggregator build

# Run tests for specific package
pnpm --filter @ferra-labs/clmm test
pnpm --filter @ferra-labs/dlmm test
pnpm --filter @ferra-labs/aggregator test

# Start development mode for specific package
pnpm --filter @ferra-labs/clmm dev
pnpm --filter @ferra-labs/dlmm dev
pnpm --filter @ferra-labs/aggregator dev

Publishing

This project uses Changesets for version management and publishing.

# 1. Create changeset
pnpm changeset

# 2. Version packages
pnpm version-packages

# 3. Publish
pnpm release

Contributing

  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

Monorepo Benefits

  • Shared configuration across packages
  • Unified development workflow
  • Cross-package dependency management
  • Consistent tooling and standards

Independent Publishing

  • Each package can be installed separately
  • Individual versioning with changesets
  • Selective updates for users
  • Modular architecture

Developer Experience

  • Fast builds with tsup
  • Hot reloading in development
  • Automated linting and formatting
  • Git hooks for quality control
  • TypeScript support throughout

Production Ready

  • Multiple output formats (CJS + ESM)
  • TypeScript declarations
  • Source maps for debugging
  • Tree shaking support
  • Minification for production

Maintenance

  • 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:

    mkdir ferra-sdks
    cd ferra-sdks
    git init
  2. Create the structure:

    # 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:

    pnpm install
    pnpm prepare
  4. Start developing:

    # 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:

    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

Publishing Workflow

# Create changeset
pnpm changeset

Version packages

pnpm version-packages

Publish to npm

pnpm release

Package Installation (After Publishing)

# Install CLMM only
npm install @ferra-labs/clmm

# Install DLMM only
npm install @ferra-labs/dlmm

# Install Aggregator only
npm install @ferra-labs/aggregator

# Install specific combination
npm install @ferra-labs/clmm @ferra-labs/aggregator

# Install all packages
npm install @ferra-labs/clmm @ferra-labs/dlmm @ferra-labs/aggregator

Pre-release Testing

# Publish beta version
pnpm changeset pre enter beta
pnpm version-packages
pnpm release

# Install beta versions
npm install @ferra-labs/clmm@beta
npm install @ferra-labs/dlmm@beta
npm install @ferra-labs/aggregator@beta

# Exit pre-release mode
pnpm changeset pre exit