8a7ed57bc5
* fix: strict initialized checking at swapQuoteWithParams - removed checkIfAllTickArraysInitialized from swapQuoteWithParams - added check to ensure that all TickArrays are initialized at getSwapTx - In a TickArraySequence, uninitialized TickArrays are truncated. - fix sqrtPriceLimit range check - fix commitment issue in test code - remove test "swap with a manual quote with dev-fee of 200%" (the code does not throw the exception) * refactor: TickArraySequence - remove Non-null assertion operator(!) - use simple foreach loop and early break - avoid name ambiguity (tickArrays to sequence) - set constructor argument (tickArrays) to readonly passed all tests (integration & sdk) |
||
---|---|---|
docs | ||
migrations | ||
programs/whirlpool | ||
scripts | ||
sdk | ||
.gitignore | ||
Anchor.toml | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
package-lock.json | ||
package.json | ||
tsconfig.json | ||
yarn.lock |
README.md
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!