OpenDEX
🖥️ Web App📥 Desktop App🤙 Support🐦 Twitter
develop
develop
  • 👋-Hello!
  • Community
    • 🎥-Weekly Call & Videos
  • Docs
    • 📝-Intro
    • 🌊-Liquidity Providers
      • 🧑‍🏭 Standard Hardware Guide
      • 💪Pro Hardware Guide
    • 🔁-Swap Providers
    • 📈-Day Traders
    • 👨‍💻-Developers
    • 🤝-Code Contribution
    • ✋-Dockerless Setup
    • 🛑-How-to Close Shop
    • 💻-CLI Docs
    • 🎚️-Config Docs
    • 🤖-API Docs
  • BOLD
    • 📜-Intro
    • 1️⃣-Message Format
    • 2️⃣-Peer Protocol
    • 3️⃣-Trade Protocol
    • 4️⃣-Swap Protocol
  • MOAR
    • 👑-Bitcoin Whitepaper
Powered by GitBook
On this page
  • Contribution Guidelines
  • Recommended Development Environments
  • Visual Studio Code
  • opendexd Setup
  • Auto-restart opendexd on file change
  • Connect opendexd to testnet
  • References

Was this helpful?

  1. Docs

👨‍💻-Developers

Previous📈-Day TradersNext🤝-Code Contribution

Last updated 4 years ago

Was this helpful?

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 .

Contribution Guidelines

Be sure to read the before starting to work or opening a Pull Request.

Recommended Development Environments

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.

Visual Studio Code Plugins

Consider using the following plugins for working with opendexd.

  • (definitely optional)

Visual Studio Code Environment Config

Adding the two files from 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.

opendexd Setup

Auto-restart opendexd on file change

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

Connect opendexd to testnet

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.

  1. Once the environment is up and running, exit from the cli session by typing exit or open a second terminal.

  2. Stop the opendexd container with docker stop testnet_opendexd_1.

  3. 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 ~/
  4. Ensure that you own the copied folders:

    sudo chown -R <youruser> ~/lndbtc
    sudo chown -R <youruser> ~/lndltc
  5. Create/change opendex.conf in ~/.opendexd to contain the following:

    [lnd.BTC]
    cltvdelta = 40
    disable = false
    host = "localhost"
    nomacaroons = false
    port = 20009
    certpath = "/home/<youruser>/lndbtc/tls.cert"
    macaroonpath = "/home/<youruser>/lndbtc/data/chain/bitcoin/testnet/admin.macaroon"
    [lnd.LTC]
    cltvdelta = 576
    disable = false
    host = "localhost"
    nomacaroons = false
    port = 21009
    certpath = "/home/<youruser>/lndltc/tls.cert"
    macaroonpath = "/home/<youruser>/lndltc/data/chain/litecoin/testnet/admin.macaroon"
    [connext]
    disable = false
    host = "localhost"
    port = 18000
  6. 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.

References

Start testnet with default settings as described .

API Documentation
Contribution Guidelines
Visual Studio Code
TSLint
vscode-proto3
Bracket Pair Colorizer
this gist
here
Official TypeScript Documentation
Official Node.js Documentation
LND Developer Guide
Official gRPC Documentation