1 unstable release

0.1.0 Jun 4, 2024

#2 in #anchor-gen

GPL-3.0-or-later

42KB
127 lines

OpenBook V2

⚠️ Disclaimer: This code is currently under active development and should not be used in production environments.

A central-limit order-book program based on Mango V4 and the previous OpenBook program (which was a fork of Serum).

License

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.

Building & testing

Pre-requisites

Before you can build the program, you will first need to install the following:

Installing

To install the repo, run:

git clone https://github.com/openbook-dex/openbook-v2.git --recursive

The 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 update

To ensure that you always have the latest submodules, you can configure your git like so:

git config --global submodule.recurse true

Building

To build, run:

just build

IDL

To generate the progam & typescript IDLs, run:

just idl

Testing

To see whether all of the tests are passing, run:

just test-all

To drill down on a specific test (e.g., test_expired_order), run:

just test test_expired_order

Dependencies

~21–30MB
~516K SLoC