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

@polkadot/wasm-schnorrkel

v0.7.1

Published

A fork of [@parity/schnorrkel-js](https://github.com/polkadot-js/schnorrkel-js/tree/b1a1bf25be7397d3c21bba5ddde14286a58b269c) that allows proper operation against all the environments that the `@polkadot/api` supports. Changes from the base repo -

Downloads

58

Readme

@polkadot/wasm-schnorrkel

A fork of @parity/schnorrkel-js that allows proper operation against all the environments that the @polkadot/api supports. Changes from the base repo -

  • WASM initialisation is done async, via Promise (this allows for clear operation in webpack environments without additional workers)
  • WASM outputs are optimised via wasm-opt from the binaryen project
  • Output bundle is wrapped with camelCase names (not including the __*** internal functions)
  • Full named function definitions for TypeScript
  • Requires for crypto is wrapped, removing the "on-demand-require" warnings in webpack-based environments
  • WASM output is done via a base-64 encoded string, supporting both Node.js and browser environments
  • Code cleanups and addition of functions required for all sr25519 operations
  • Extended tests to cover Rust, wasm (via Node) and wasm (via jest), removed the (here unused) www test interfaces
  • TextDecoder is polyfilled by using the version from @polkadot/util (consistent support, also on React Native)
  • Polyfill for crypto functions that are not available in some environments (e.g. Jest & React Native)

Usage

Install the package (also requires @polkadot/util for TextEncoder polyfills - not included here as a dependency to keep the tree lean)

yarn add @polkadot/wasm-schnorrkel @polkadot/util

Use it -

const { u8aToHex } = require('@polkadot/util');
const { waitReady, keypairFromSeed } = require('@polkadot/wasm-schnorrkel');

async function main () {
  // first wait until the WASM has been loaded (async init)
  await waitReady();

  // generate keypair via all-0 seed
  const pair = keypairFromSeed(new Uint8Array(32));

  // extract the parts
  const secretKey = pair.subarray(0, 64);
  const publicKey = pair.subarray(64, 96);

  // display
  console.log('publicKey:', u8aToHex(publicKey));
  console.log('secretKey:', u8aToHex(secretKey));
}

future work

Support asm.js for environments (like React Native) that doesn't have WASM support. Initial attempts made at this, but not active.