5.0.0 • Published 5 years ago

@windingtree/off-chain-adapter-swarm v5.0.0

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
5 years ago

Winding Tree Off Chain Data Adapter - Ethereum Swarm

Greenkeeper badge

Swarm-based storage that can be used in Winding Tree wt-js-libs.

Installation

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

Usage

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

const libs = WtJsLibs.createInstance({
  onChainDataOptions: {
    provider: 'http://localhost:8545',
  },
  offChainDataOptions: {
    adapters: {
      'bzz-raw': {
        options: {
          swarmProviderUrl: 'http://localhost:8500',
        },
        create: (options) => {
          return new SwarmAdapter(options);
        },
      },
    },
  },
});

Optionally, you can provide a caching backend for the adapter to avoid repeated requests. (Note: in this example, cache expiration is not specified as bzz-raw resources are immutable.)

import bluebird from 'bluebird';
import redis from 'redis';
bluebird.promisifyAll(redis.RedisClient.prototype);

const redisClient = redis.createClient();

const libs = WtJsLibs.createInstance({
  onChainDataOptions: {
    provider: 'http://localhost:8545',
  },
  offChainDataOptions: {
    adapters: {
      'bzz-raw': {
        options: {
          swarmProviderUrl: 'http://localhost:8500',
          cache: {
            set: (hash, dataJson) => redisClient.setAsync(hash, dataJson);
            get: (hash) => redisClient.getAsync(hash);
          }
        }
        create: (options) => {
          return new SwarmAdapter(options);
        },
      },
    },
  },
});

You can also optionally specify a timeout in milliseconds for communication with Swarm gateway:

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

const libs = WtJsLibs.createInstance({
  onChainDataOptions: {
    provider: 'http://localhost:8545',
  },
  offChainDataOptions: {
    adapters: {
      'bzz-raw': {
        options: {
          swarmProviderUrl: 'http://localhost:8500',
          timeout: 2000,
        }
        create: (options) => {
          return new SwarmAdapter(options);
        },
      },
    },
  },
});
5.0.0

5 years ago

4.1.0

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.3.0

6 years ago

3.2.1

6 years ago

3.2.0

6 years ago

3.1.0

6 years ago

3.0.0

6 years ago

2.0.0

6 years ago