input-output-hk / cardano-launcher

Shelley cardano-node and cardano-wallet launcher for NodeJS applications

Home Page:https://input-output-hk.github.io/cardano-launcher/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cardano-launcher Shelley

cardano-launcher CI

cardano-launcher is a Node.js module for starting cardano-wallet and the Shelley cardano-node.

Its primary user is Daedalus; however it could be used by any Javascript application. Tagged versions are published to the npm Registry as cardano-launcher.

Documentation

See the generated API docs at https://input-output-hk.github.io/cardano-launcher/latest/modules.html.

See docs/example.js for example code.

Component diagram

Component diagram

Message sequence diagram - launch

Component diagram

Local Development

nix-shell

This runs a bash shell with project development dependencies (e.g. npm, cardano-wallet) in the PATH. See nix.md for information on how to set up Nix.

Build the code

Transpile TypeScript to Javascript in the dist directory, checking for errors:

npm run build

Do the compile as above, but automatically rebuild when a file changes

npm run build -- --watch

Run the tests

Runs all tests:

npm test

To run only unit tests matching idempotent (for example):

npm test unit -- -t idempotent

Run the test watcher (Jest) and prompt for usage:

npm test -- --watch

See the Jest command-line reference for all the options.

Note that the cli tests require the code to already have been built with npm run build.

Linting and formatting the code

To check linter rules defined in .eslintrc.json:

npm run lint

To automatically fix lint and formatting errors, where possible:

npm run lint -- --fix

JavaScript Standard Style

Generate API Documentation

Generates API documentation to the site folder.

npm run typedoc

Updating cardano-wallet version

To modify the cardano-wallet version, use niv update.

nix-shell --run "niv update cardano-wallet -a rev={GIT_TAG}"

or, to use the latest master branch revsion:

nix-shell --run "niv update cardano-wallet --branch master"

The version of cardano-node is defined by cardano-wallet because it has specific version requirements for its backends.

Overriding node backend versions

To use your own build of cardano-node, export your PATH environment variable so that your build is ahead of those set by the nix-shell.

Design docs

Demo CLI

This is a very basic executable that lets you test the compiled library code from your shell.

# Build the javascript first.
npm run build

# cardano-node mainnet
./bin/cardano-launcher shelley mainnet $CARDANO_NODE_CONFIGS/mainnet ./state-mainnet

# cardano-node testnet
./bin/cardano-launcher shelley testnet $CARDANO_NODE_CONFIGS/testnet ./state-testnet

About

Shelley cardano-node and cardano-wallet launcher for NodeJS applications

https://input-output-hk.github.io/cardano-launcher/

License:Apache License 2.0


Languages

Language:TypeScript 92.3%Language:Shell 4.1%Language:JavaScript 2.0%Language:Nix 1.7%