/whirlpools

Open source concentrated liquidity AMM contract on Solana

Primary LanguageTypeScriptOtherNOASSERTION

Whirlpools

Whirpools is an open-source concentrated liquidity AMM contract on the Solana blockchain. This repository contains the Rust smart contract as well as the Typescript SDK (@orca-so/whirlpools-sdk) to interact with a deployed program.

The contract has been audited by Kudelski and Neodyme.

Requirements

  • Anchor 0.20.1
  • Solana 1.9.3
  • Rust 1.59.0

Setup

Install Anchor using instructions found here.

Set up a valid Solana keypair at the path specified in the wallet in Anchor.toml to do local testing with anchor test flows.

$NODE_PATH must be set to the node_modules directory of your global installs. For example, using Node 16.10.0 installed through nvm, the $NODE_PATH is the following:

$ echo $NODE_PATH
/Users/<home_dir>/.nvm/versions/node/v16.10.0/lib/node_modules

Usage

Instructions on how to interact with the Whirlpools contract is documented in the Orca Developer Portal.

Tests

  • Run "cargo test --lib" to run Rust unit tests

Whirlpool SDK

Use the SDK to interact with a deployed Whirlpools program via Typescript.

Installation

In your package, run:

yarn add `@orca-so/whirlpools-sdk`
yarn add "@project-serum/anchor"
yarn add "decimal.js"

Usage

Read instructions on how to use the SDK on the Orca Developer Portal.

Run Typescript tests via local validator

In the whirlpools/sdk folder, run:

anchor test

Generate TypeDoc

In the sdk folder, run yarn run docs


Support

Integration Questions

Have problems integrating with the SDK? Pop by over to the Orca Discord #integrations channel and chat with one of our engineers.

Feedback

Got ideas on how to improve the system? Open up an issue on github with the prefix [FEEDBACK] and let's brainstorm more about it together!

License

Apache 2.0