0.5.5 • Published 6 years ago

@radarrelay/subproviders v0.5.5

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

subproviders

A collection of useful subproviders.

Subproviders are like normal web3 providers, but only handle a subset of RPC methods. They can be used to route, or otherwise handle, RPC calls before returning a result to the caller.

Installation

npm

npm install @0xproject/subproviders

Yarn

yarn add @0xproject/subproviders

Usage

Simply import the subprovider you are interested in using:

import {
    ledgerEthereumBrowserClientFactoryAsync as ledgerEthereumClientFactoryAsync,
    LedgerSubprovider,
} from '@0xproject/subproviders';

const ledgerSubprovider = new LedgerSubprovider({
    networkId,
    ledgerEthereumClientFactoryAsync,
});

const accounts = await ledgerSubprovider.getAccountsAsync();

Subproviders

Eth Lightwallet subprovider

A subprovider that enables your dApp to send signing requests to eth-lightwallet. These can be requests to sign transactions or messages.

Pass-Through subprovider

A subprovider that enables your dApp to pass account and signing calls to another class instance for additional processing before returning a result to the subprovider.

Nonce Tracker subprovider

A subprovider that enables your dApp to pass account and signing calls to another class instance for additional processing before returning a result to the subprovider.

Ledger Nano S subprovider

A subprovider that caches the nonce when a request to getTransactionCount is made and increments the pending nonce after successful transactions.

Redundant RPC subprovider

A subprovider which attempts to send an RPC call to a list of RPC endpoints sequentially, until one of them returns a successful response.

Injected Web3 subprovider

A subprovider that relays all signing related requests to a particular provider (in our case the provider injected onto the web page), while sending all other requests to a different provider (perhaps your own backing Ethereum node or Infura).

Additional Information

Install Dependencies

If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:

yarn config set workspaces-experimental true
yarn install

Build

yarn build

or

yarn build:watch

Clean

yarn clean

Lint

yarn lint

Run tests

Unit tests

yarn run test:unit

Integration tests

In order to run the integration tests, make sure you have a Ledger Nano S available.

  • Plug it into your computer
  • Unlock the device
  • Open the on-device Ethereum app
  • Make sure "browser support" is disabled

Then run:

yarn test:integration

All tests

yarn run test:all