A central-limit order-book program based on Mango V4 and the previous OpenBook program (which was a fork of Serum).
See the LICENSE file.
The majority of this repo is MIT-licensed, but some parts needed for compiling the Solana program are under GPL.
All GPL code is gated behind the enable-gpl feature. If you use the openbook-v2
crate as a dependency with the client or cpi features, you use only MIT
parts of it.
The intention is for you to be able to depend on the openbook-v2 crate for
building closed-source tools and integrations, including other Solana programs
that call into the Openbook program.
But deriving a Solana program with similar functionality to the Openbook program from this codebase would require the changes and improvements to stay publicly available under GPL.
| tag | network | program ID |
|---|---|---|
| v1.1 | mainnet | opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb |
| v1.1 | devnet | opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb |
| v1.1 | testnet | opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb |
Before you can build the program, you will first need to install the following:
To install the repo, run:
git clone https://github.com/openbook-dex/openbook-v2.git --recursiveThe recursive flag ensures that you receive all of the submodules. If you have already cloned without passing in this flag, you can run:
git submodule init
git submodule updateTo ensure that you always have the latest submodules, you can configure your git like so:
git config --global submodule.recurse trueTo build, run:
just buildTo generate the progam & typescript IDLs, run:
just idlTo see whether all of the tests are passing, run:
just test-allTo drill down on a specific test (e.g., test_expired_order), run:
just test test_expired_orderIf you want to have tests that automatically re-run when you edit a file, install entr and run:
just test-devyarn build