Skip to content
HTTP adapter for off-chain data that can be used in @windingtree/wt-js-libs.
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src
test
.babelrc
.eslintrc.js
.flowconfig
.gitignore
.npmignore
.nvmrc
.travis.yml
LICENSE
README.md
package-lock.json
package.json
rollup.config.js

README.md

Winding Tree Off Chain Data Adapter - HTTP(s).

Greenkeeper badge

HTTP adapter for off-chain data that can be used in Winding Tree wt-js-libs.

Installation

npm install @windingtree/off-chain-adapter-http
# or
git clone https://github.com/windingtree/off-chain-adapter-http
nvm install
npm install

Usage

In the most basic way, this adapter can be used purely for data retrieval:

import { WtJsLibs } from '@windingtree/wt-js-libs';
import HttpAdapter from '@windingtree/off-chain-adapter-http';

const libs = WtJsLibs.createInstance({
  onChainDataOptions: {
    provider: 'http://localhost:8545',
  },
  offChainDataOptions: {
    adapters: {
      'https': {
        options: {},
        create: (options) => {
          return new HttpAdapter(options);
        },
      },
    },
  },
});

In case we need to extend it with the upload or update capability, we need to provide the necessary functionality from outside:

import { WtJsLibs } from '@windingtree/wt-js-libs';
import HttpAdapter from '@windingtree/off-chain-adapter-http';

// As an example, we will create an uploader for AWS S3.
// (Update functionality could be implemented in a similar way.)
import AWS from 'aws-sdk';

function s3_uploader (data) {
  let s3 = new AWS.S3({apiVersion: '2006-03-01', region: 'eu-central-1'}),
      bucket = 'bucket',
      key = 'hotel.json',
      params = {
        Bucket: bucket,
        Key: key,
        Body: JSON.stringify(data)
      };

  return s3.putObject(params)
    .promise()
    .then(() => `https://${bucket}.s3.amazonaws.com/${key}`);
}

const libs = WtJsLibs.createInstance({
  onChainDataOptions: {
    provider: 'http://localhost:8545',
  },
  offChainDataOptions: {
    adapters: {
      'https': {
        options: {uploader: s3_uploader},
        create: (options) => {
          return new HttpAdapter(options);
        },
      },
    },
  },
});
You can’t perform that action at this time.