/clientlib

Typescript/Javascript library of the trustlines network protocol

Primary LanguageTypeScriptMIT LicenseMIT

Trustlines Clientlib

npm CircleCI branch Codecov branch

A TypeScript/JavaScript library for interacting with the Trustlines Network Protocol.

Installation

Install via package manager

We publish the trustlines-clientlib to npm as a ES6 module.

Using npm

$ npm i trustlines-clientlib

Using yarn

$ yarn add trustlines-clientlib

Build from source

If you want to build the library from source run

git clone git@github.com:trustlines-protocol/clientlib.git
cd clientlib
yarn && yarn build

This will create three different builds:

  • ES6 module in ./lib-esm
  • CommonJS module in ./lib
  • Bundled JS injectable into browser in ./_bundles

Get started

We assume the usage of the trustlines-clientlib ES6 module in the following.

Configuration

To start using the trustlines-clientlib you first have to configure the relay server you want to connect to. You can either connect to a local develop relay server or use publicly available ones.

import { TLNetwork } from 'trustlines-clientlib'

// Instance using a relay connected to the Laika Testnet
const laika = new TLNetwork({
  protocol: 'https',
  wsProtocol: 'wss',
  host: 'relay0.testnet.trustlines.network',
  path: '/api/v1'
  // ...
})

// Instance using a relay connected to the TLBC
const tlbc = new TLNetwork({
  protocol: 'https',
  wsProtocol: 'wss',
  host: '<url>', // TODO There is no public TLBC relay yet
  path: '/api/v1'
  // ...
})

Example usage

This library is a promise-based library. So every asynchronous call will return a native JavaScript promise. If an error occurs the library will throw it. The caller has to handle it appropriately.

try {
  const networks = await laika.currencyNetwork.getAll()
} catch (error) {
  console.log('Caught error:', error)
}

Read our documentation for more

Run Tests

# All tests
yarn test

# Unit tests
yarn test:unit

# Integration tests
yarn test:integration

# end2end tests
yarn test:e2e

Note on end2end tests

You have to have all components of the trustlines protocol running. A convenient way to achieve this is by using our end2end setup.

Documentation

You can find the documentation for the trustlines-clientlib here. The underlying markdown files of the documentation can be found in this repository under the ./docs directory. To generate the typedoc API reference documentation for this library run yarn doc.

Running injected web3 example

To run the example make sure to have MetaMask installed and connected to a JSON RPC.

yarn serve

This serves the injected web3 example app on http://127.0.0.1:8080. You can find the app under ./examples/injected-web3.

Change log

See CHANGELOG