This guide is intended to help developers who want to contribute to opendexd
. Developers who want to build services on top of opendexd
, should check out the node's API Documentation.
Be sure to read the Contribution Guidelines before starting to work or opening a Pull Request.
The following development environments are known to be compatible with opendexd
and are recommended for developers that are unsure what tools to use.
Visual Studio Code is a cross-platform code editor that's compatible with most popular programming languages and extensible via a large collection of plug-ins.
Consider using the following plugins for working with opendexd
.
TSLint
Bracket Pair Colorizer (definitely optional)
Adding the two files from this gist into a .vscode
folder within the folder where you've cloned opendexd
will automatically provide debug configurations and general settings that are helpful when developing opendexd
.
Auto restart on every file change under dist
folder with nodemon
:
nodemon --watch dist -e js bin/opendexd
With some sample args disabling lndbtc/lndltc:
nodemon --watch dist -e js bin/opendexd --lndbtc.disable=true --lndltc.disable=true
We recommend to connect the opendexd
instance you are developing on to testnet. Combined with above restarting mechanism, this lets you instantly see how your changes behave in a real-world trading environment.
Start testnet with default settings as described here.
Once the environment is up and running, exit from the cli session by typing exit
or open a second terminal.
Stop the opendexd container with docker stop testnet_opendexd_1
.
Copy the testnet lndbtc & lndltc folders into some path that you can easily access. E.g. into your home directory:
sudo cp -R ~/.opendex-docker/testnet/data/lndbtc ~/sudo cp -R ~/.opendex-docker/testnet/data/lndltc ~/
Ensure that you own the copied folders:
sudo chown -R <youruser> ~/lndbtcsudo chown -R <youruser> ~/lndltc
Create/change opendex.conf
in ~/.opendexd
to contain the following:
[lnd.BTC]cltvdelta = 40disable = falsehost = "localhost"nomacaroons = falseport = 20009certpath = "/home/<youruser>/lndbtc/tls.cert"macaroonpath = "/home/<youruser>/lndbtc/data/chain/bitcoin/testnet/admin.macaroon"[lnd.LTC]cltvdelta = 576disable = falsehost = "localhost"nomacaroons = falseport = 21009certpath = "/home/<youruser>/lndltc/tls.cert"macaroonpath = "/home/<youruser>/lndltc/data/chain/litecoin/testnet/admin.macaroon"[connext]disable = falsehost = "localhost"port = 18000
Now you can start your local opendexd
instance and it should connect to the running testnet docker environment. You can check that everything works with ~/opendexd/bin$ ./opendex-cli -p 18886 getinfo
.