TypeScript library for using Haveno
Go to file
woodser 7b447022e6 test arbitration protocol refactor
test all (online) trade combinations with disputes
test added dispute states
print trade context and index on failure
improve caching to reduce calls to getBalances()
local test network uses daemon at 48081 by default
various cleanup
2022-11-07 08:26:57 -05:00
.github add workflow: label.yml 2022-06-06 09:12:00 -04:00
config support auto starting and stopping arbitrator, alice, and bob 2021-12-19 11:49:43 -05:00
dist update dist 2022-09-21 10:42:28 -04:00
docs Create CNAME 2022-09-27 10:44:12 +02:00
scripts Export protobuf types (#100) 2022-05-10 09:55:41 -04:00
src test arbitration protocol refactor 2022-11-07 08:26:57 -05:00
_config.yml add _config.yml for github pages documentation 2022-05-02 16:43:42 -04:00
.editorconfig enable and apply eslint rules 2022-05-02 15:21:48 -04:00
.eslintignore enable and apply eslint rules 2022-05-02 15:21:48 -04:00
.eslintrc.json support local, stagenet, and mainnet xmr network configurations (#122) 2022-07-07 09:11:50 -04:00
.gitignore support strict null checks and ignore .vscode 2022-10-27 08:06:39 -04:00
.project rename haveno-ui-poc project to haveno-ts 2022-05-03 08:06:56 -04:00
babel.config.js convert to typescript library 2022-05-05 22:25:08 -04:00
LICENSE change license to apache 2.0 (#6) 2021-09-10 06:43:06 -04:00
package-lock.json bump version to v0.0.7 2022-09-24 08:49:00 -04:00
package.json bump version to v0.0.7 2022-09-24 08:49:00 -04:00
README.md rename alice, bob, charlie to user1, user2, user3 (#123) 2022-07-15 10:09:56 -04:00
tsconfig.json change module to commonjs 2022-05-12 17:32:05 -04:00

Haveno TypeScript Library

TypeScript library for using Haveno.

Install

  1. Start a Haveno daemon (see installing.md).
  2. Install haveno-ts in your project: npm install haveno-ts

Sample code

import { HavenoClient } from "haveno-ts";

// create client connected to Haveno daemon
const alice = new HavenoClient("http://localhost:8080", "apitest");

// use Haveno daemon
const balances = await alice.getBalances();
const paymentAccounts = await alice.getPaymentAccounts();
const myOffers = await alice.getMyOffers("ETH");
const offers = await alice.getOffers("ETH", "BUY");
const trade = await alice.takeOffer(offers[0].getId(), paymentAccounts[0].getId());

// disconnect client
await alice.disconnect();

TypeDocs

See typedocs.

Run tests

Running the API tests is the best way to develop and test Haveno end-to-end.

HavenoClient.ts provides the client interface to Haveno's backend daemon.

  1. Run a local Haveno test network and then shut down the arbitrator, user1, and user2 or run them as daemons, e.g. make user1-daemon-local. You may omit the arbitrator registration steps since it's done automatically in the tests.
  2. Clone this project to the same parent directory as the haveno project: git clone https://github.com/haveno-dex/haveno-ts
  3. In a new terminal, start envoy with the config in haveno-ts/config/envoy.test.yaml (change absolute path for your system): docker run --rm --add-host host.docker.internal:host-gateway -it -v ~/git/haveno-ts/config/envoy.test.yaml:/envoy.test.yaml -p 8079:8079 -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -p 8086:8086 envoyproxy/envoy-dev:8a2143613d43d17d1eb35a24b4a4a4c432215606 -c /envoy.test.yaml
  4. In a new terminal, start the funding wallet. This wallet will be funded automatically in order to fund the tests.
    For example: cd ~/git/haveno && make funding-wallet-local.
  5. Install protobuf compiler v3.19.1 or later for your system:
    mac: brew install protobuf
    linux: apt install protobuf-compiler NOTE: You may need to upgrade to v3.19.1 manually if your package manager installs an older version.
  6. Download protoc-gen-grpc-web plugin and make executable as shown here.
  7. cd haveno-ts
  8. npm install
  9. npm run test -- --baseCurrencyNetwork=XMR_LOCAL to run all tests or npm run test -- --baseCurrencyNetwork=XMR_LOCAL -t "my test" to run tests by name.