@nymproject/sdk-full-fat
TypeScript icon, indicating that this package has built-in type declarations

1.2.4-rc.1 • Public • Published

Nym SDK (Typescript) - 🥛🥛🥛 Full Fat

⚠ WARNING: ESM with inline blobs ⚠

Please note: this is an ESM package targeting ES6. Use this when you have bundling issues. It includes inline blobs that will interfere with CSPs that disallow them.

Find the right package for you

Browsers:

  • ESM 🥛 - @nymproject/sdk, not bundled, use import syntax, you will need to bundle it
  • ESM 🥛🥛🥛 - @nymproject/sdk-full-fat, use import syntax, pre-bundled with inlined workers and WASM bundles
  • CJS 🥛 - @nymproject/sdk, targets ES5, not bundled, you will need to bundle it
  • CJS 🥛🥛🥛 - @nymproject/sdk-full-fat, targets ES5, pre-bundled with inlined workers and WASM bundles

NodeJS:

Why have all these variations? Each project is different, so hopefully we have something for you!

Choose a package depending on how your project is transpiled and packaged:

  • ESM: use import syntax and have your bundler copy the WASM bundles into your output distribution
  • CJS: you have an older project that needs ES5 Javascript
  • nodejs: you want to write your project server-side or locally without the browser on NodeJS

And then, to use *-full-fat or not, how do I choose? We have *-full-fat packages that are pre-bundled by including all web-workers and WASM as inline Base64.

Use the *-full-fat packages when you have trouble changing your bundler settings, or you can use an open CSP.


TL;DR

Include the SDK in your project:

npm install @nymproject/sdk

Open a connection to a Gateway on the Nym Mixnet:

import { createNymMixnetClient } from '@nymproject/sdk';

const main = async () => {
  const nym = await createNymMixnetClient();

  const nymApiUrl = 'https://validator.nymtech.net/api';

  // show message payload content when received 
  nym.events.subscribeToTextMessageReceivedEvent((e) => {
    console.log('Got a message: ', e.args.payload);
  });

  // start the client and connect to a gateway
  await nym.client.start({
    clientId: 'My awesome client',
    nymApiUrl,
  });

  // send a message to yourself
  const payload = 'Hello mixnet';
  const recipient = nym.client.selfAddress();
  nym.client.send({ payload, recipient });
  
};

This will start the WASM client on a worker thread, so that your code can stay nice and snappy.

Send a message to another user (you will need to know their address at a Gateway):

  const payload = 'Hello mixnet';
  const recipient = '<< RECIPIENT ADDRESS GOES HERE >>';
  await nym.client.send({ payload, recipient });

Readme

Keywords

none

Package Sidebar

Install

npm i @nymproject/sdk-full-fat

Weekly Downloads

1

Version

1.2.4-rc.1

License

Apache-2.0

Unpacked Size

4.56 MB

Total Files

11

Last publish

Collaborators

  • nymbot
  • mmsinclair
  • nymtech
  • jstuczyn