@decentralized-auth/iota-mam

1.0.6 • Public • Published

@decentralized-auth/iota

GitHub license

Wrapper class for the IOTA client that provides some convenience methods for use in the decentralized-auth project.

Usage

const generateSeed = require('@decentralized-auth/gen-seed');
const IotaClient = require('@decentralized-auth/iota');
const MamClient = require('@decentralized-auth/iota-mam');

// Instantiate a logger that has an info and error method
const consoleLogger = new (function () {
  this.info = console.log;
  this.error = console.log;
})();

const iota = new IotaClient({
  provider: 'http://node01.testnet.iotatoken.nl:16265',
  securityLevel: 2,
  depth: 5,
  minWeightMagnitude: 10,
}, consoleLogger);

const seed = await generateSeed();
const mode = 'restricted';
const sideKey = 'BANANA';
const mam = new MamClient(seed, iotaClient, mode, sideKey);

const message = 'HELLO';
const root = await mam.attach(message);

const res = await mam.fetch(root, 'restricted', sideKey);
console.log(res.messages[0]) // => 'HELLO'

Test

npm run test

Lint

npm run lint

Documentation

Documentation generated from docstrings with jsdoc2md.

iota-mam

Wrapper for the IOTA MAM client that provides some convenience methods.


iota-mam~MamClient

Kind: inner class of iota-mam


new MamClient(seed, iotaClient, mamMode, sideKey)

Constructor for a MamClient.

Param Type Description
seed string IOTA seed of the device client
iotaClient object Instantiated @decentralized-auth/iota-client with logger
mamMode string MAM mode, either 'public' or 'private' or 'restricted'
sideKey string Optional side key (when mode is 'restricted')

iota-mam~init(iota, seed, mode, sideKey)Object

Initialize MAM (mode private or mode restricted if sideKey is provided).

Kind: inner method of iota-mam
Returns: Object - MAM state

Param Type Description
iota Object Instance of iota.lib.js
seed string Seed to initialize MAM with
mode string Mode to initialize MAM with ('public', 'private' or restricted')
sideKey string Optional side key to initialize MAM with (restricted)

iota-mam~changeSideKey(sideKey)undefined

Sets or changes the MAM side key.

Kind: inner method of iota-mam

Param Type Description
sideKey string Side key

iota-mam~attach(packet)Promise

Attach MAM messages.

Kind: inner method of iota-mam
Returns: Promise - Containing the root

Param Type Description
packet JSON JSON packet to attach.

iota-mam~fetch(root, mode, sideKey)Promise

Fetch MAM messages. NOTE: Expects JSON messages only.

Kind: inner method of iota-mam
Returns: Promise - Contains the root and the messages

Param Type Description
root string Root from where to fetch
mode string Either 'public', 'private' or 'restricted'
sideKey string Optional side key

iota-mam~fetch(root, mode, sideKey)Promise

Fetch a single MAM message. NOTE: Expects JSON MAM message only.

Kind: inner method of iota-mam
Returns: Promise - Contains the root and the parsed message or null

Param Type Description
root string Root from where to fetch
mode string Either 'public' or 'private' or 'restricted'
sideKey string Optional side key (when mode is 'restricted')

Readme

Keywords

Package Sidebar

Install

npm i @decentralized-auth/iota-mam

Weekly Downloads

1

Version

1.0.6

License

Apache-2.0

Unpacked Size

20.3 kB

Total Files

7

Last publish

Collaborators

  • decentralized-auth