JSPM

  • Created
  • Published
  • Downloads 46
  • Score
    100M100P100Q66720F
  • License Apache-2.0

ILP virtual ledger plugin for directly transacting connectors

Package Exports

  • ilp-plugin-virtual

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ilp-plugin-virtual) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ilp-plugin-virtual npm circle codecov

ILP virtual ledger plugin for directly transacting connectors

NOTE:

The current version of ilp-plugin-virtual is designed to be used in ILP Kit. An HTTP server is required in order to pass RPC calls to the plugin, and to perform authorization on RPC calls.

Installation

npm install --save ilp-plugin-virtual

Usage

You can test out the ledger plugin by running npm test on your machine. To include debug information during the test, run DEBUG=ilp* npm test.

When instantiating the plugin, make sure to pass in an object with the right fields:

{
  "maxBalance": "highest balance allowed",
  "prefix": "prefix for ilp address",
  "secret": "your secret. your peer must know the corresponding public key.",
  "peerPublicKey": "base64url encoded public key of your peer",
  "rpcUri": "https://example.com/rpc", // this is used to communicate with your peer (see below)
  "_store": { /* this object will be created by the connector */ },
  "info": { /* the object to be returned by getInfo */ }
}

Receiving RPC calls

In order to use plugin virtual, you need an HTTP endpoint that passes calls to the plugin. The url must take one query parameter (method), as well as a JSON body. The method parameter and parsed body must be passed to the plugin like so:

plugin.receive(method, body)

Generate a trustline prefix

If you want to generate a trustline prefix from a secret key, peer's public key, and currency, you can access the method through the token class:

const Token = require('ilp-plugin-virtual/src/util/token')
const prefix = Token.prefix({
  secretKey: 'o9Lt0oZFek1ArM_A0HUAq8M8edRuoSeLjX8i10sVUiY',
  peerPublicKey: 'KRixgcBCBdyQln7IBYiopjuNO78QSFtXgOwP1sbsCSk',
  currency: 'USD'
})