npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@rpch/ethereum-provider

v0.3.4

Published

## Description The RPCh ethereum provider adaptor is an extension of the [`ethereum-provider`](https://github.com/floating/ethereum-provider). The goal of this adaptor is to provide a plug and play experience of for projects that currently use the ethereu

Downloads

2

Readme

RPCh ethereum provider adaptor

Description

The RPCh ethereum provider adaptor is an extension of the ethereum-provider. The goal of this adaptor is to provide a plug and play experience of for projects that currently use the ethereum provider.

How to use RPCh ethereum provider adaptor

You will need to have Node.js and npm/yarn installed on your computer. You can download them from their official website or use a package manager like Homebrew (for Mac) or Chocolatey (for Windows).

yarn add @rpch/crypto-for-nodejs @rpch/ethereum-provider

Get your rpch client by running

curl --request GET \
  --url https://staging.discovery.rpch.tech/api/v1/request/trial

or go to https://access.rpch.net/ and follow the docker guide

You can create an instance of this adaptor by passing in the required options and key-value store functions:

import * as RPChCrypto from "@rpch/crypto-for-nodejs";
import { RPChEthereumProvider } from "@rpch/ethereum-provider";

const PROVIDER_URL = 'https://primary.gnosis-chain.rpc.hoprtech.net';
const TIMEOUT = 10000;
const DISCOVERY_PLATFORM_API_ENDPOINT = 'https://staging.discovery.rpch.tech';

const provider = new RPChEthereumProvider(
  PROVIDER_URL,
  {
    crypto: RPChCrypto,
    client: "your_client_name",
    timeout: TIMEOUT,
    discoveryPlatformApiEndpoint: DISCOVERY_PLATFORM_API_ENDPOINT,
  },
 setKeyValFunction,
 getKeyValFunction
);
  • PROVIDER_URL: a string representing the URL of the provider we want to connect to.
  • HoprSdkOps: an object containing the options for the RPCh SDK instance. It includes:
    • crypto: The RPChCrypto module required for cryptographic operations. Learn more about what module to pass here
    • client: A string that identifies the client using the SDK. This is used for statistics and logging.
    • timeout: The timeout for requests in milliseconds.
    • discoveryPlatformApiEndpoint: The URL for the discovery platform API.
  • setKeyVal: a function that sets a key-value pair in storage.
  • getKeyVal: a function that retrieves the value corresponding to a key from storage.

The setKeyValFunction and getKeyValFunction functions are used to store and retrieve key-value pairs for the SDK. These are used to store counters for outgoing requests and responses.

// This is an example of a simple way to set these functions
async function setKeyVal(key: string, val: string): Promise<void> {
  localStorage.setItem(key, val);
}
async function getKeyVal(key: string): Promise<string | undefined> {
  return localStorage.getItem(key);
}

After creating the instance, you can use the provider just like you would use a regular Ethereum provider:

provider.send(
  {
    method: "eth_accounts",
    params: [],
    id: 1,
    jsonrpc: "2.0"
  },
  (error, response) => {
    if (error) {
      console.error(error);
    } else {
        // do whatever you want with the response
      return response
    }
  }
);

In addition, the adaptor emits the following events:

  • connect: Emitted when the provider is connected.
  • payload: Emitted when a payload is received from RPCh.
  • close: Emitted when the provider is closed.