Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

fluree-cryptography

fluree20ISC1.6.8

Helper cryptography functions for Fluree

cryptography, fluree, blockchain, database

readme

Fluree Cryptography

A collection of Javascript cryptography functions for Fluree

npm install fluree-cryptography 

API

Generate Keys

Returns a hex string of a public and private key pair.

import { generateKeyPair } from 'fluree-cryptography';

const { publicKey, privateKey }  = generateKeyPair();

Get Auth ID from Public Key

Returns the _auth/id that accompanies a given public key.

import { generateKeyPair, getSinFromPublicKey } from 'fluree-cryptography';

const { publicKey }  = generateKeyPair();
const authId = getSinFromPublicKey(publicKey);

Sign Transaction

signTransaction returns an object with the keys: sig, cmd, which should then be sent in the body of a request to the /command endpoint.

import { generateKeyPair, getSinFromPublicKey, signTransaction } from 'fluree-cryptography';

const { publicKey, privateKey }  = generateKeyPair();
const authId = getSinFromPublicKey(publicKey);

const db = "test/one";
const expire = Date.now() + 1000;
const fuel = 100000;
const nonce = 1; 
// Deps is an optional parameter - it is a array of _tx/ids that must have succeeded
// for the current transaction to be accepted.
const deps = null; 

const tx = JSON.stringifiy([{
    "_id": "_tag",
    "id": "tag/test" }])

const command = signTransaction(authId, db, expire, fuel, nonce, privateKey, tx, deps)

const fetchOpts = {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(body)
  };

const fullURI = `https://localhost:8090/fdb/${db}/command`;

fetch(fullURI, fetchOpts)

Sign Query

signQuery returns an object with the keys: header, method, body, which should then be sent to any of the query endpoints (/query, /multi-query, history, block).

import { generateLeyPair, getSinFromPublicKey, signQuery } from 'fluree-cryptography';

const { privateKey }  = generateKeyPair();
const authId = getSinFromPublicKey(publicKey);

const param = JSON.stringify({select: ["*"], from: "_collection"});
const db = "test/one";
const host = "localhost";
const queryType = "query";


const fetchOpts = signQuery(privateKey, param, queryType, host, db)

const fullURI = `https://localhost:8090/fdb/${db}/query`;

fetch(fullURI, fetchOpts)