haveno/docs/developer-guide.md
2021-10-31 08:46:41 -04:00

2.9 KiB

Developer Guide

This document is a guide for Haveno development.

Installing Haveno

In order to develop for Haveno, first install and run a local Haveno test network.

Running the UI proof of concept

Follow instructions to run Haveno's UI proof of concept in a browser.

This proof of concept demonstrates using Haveno's gRPC server with a web frontend (react and typescript) instead of Bisq's JFX application.

Importing Haveno into development environment

Follow instructions to import Haveno into a development environment.

Running end-to-end API tests

Follow instructions to run end-to-end API tests in the UI project.

Adding new API functions and tests

  1. Follow instructions to run Haveno's existing API tests successfully.
  2. Define the new service or message in Haveno's protobuf definition.
  3. Clean and build Haveno after modifying the protobuf definition: make clean && make
  4. Implement the new service in Haveno's backend, following existing patterns.
    For example, the gRPC function to get offers is implemented by GrpcServer > GrpcOffersService.getOffers(...) > CoreApi.getOffers(...) > CoreOffersService.getOffers(...) > OfferBookService.getOffers().
  5. Build Haveno: make
  6. Follow instructions to update the protobuf client in haveno-ui-poc.
  7. Add the corresponding typescript method(s) to HavenoDaemon.tsx with clear and concise documentation.
  8. Add clean and comprehensive tests to HavenoDaemon.test.tsx, following existing patterns.
  9. Verify the tests with npm run test -- -t 'my test' to run tests by name and npm test to run all tests together.
  10. Open a pull request for review.

Trade Protocol

For documentation of the trade protocol, see trade protocol.