0.1.4 • Published 10 months ago

@spartan-hc/mere-memory-sdk v0.1.4

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

npm.io

Mere Memory SDK

A Javascript SDK for the Mere Memory Zome (Holochain).

npm.io npm.io npm.io

Overview

Install

npm i @spartan-hc/mere-memory-sdk

Usage

Import

import { MereMemoryClient } from '@spartan-hc/mere-memory-sdk';

Simplest

const client = new MereMemoryClient( app_port, cell_agent_hash, "storage", dna_hash );

client.setSigningHandler( async zome_call_request => {
    zome_call_request.signature = someSigningFunction( zome_call_request );
    return zome_call_request;
});

const memory_addr = await client.save( bytes );
const memory = await client.remember( memory_addr );

expect( memory ).to.deep.equal( bytes );

Use Existing WebSocket

import nacl from 'tweetnacl';

const socket = new WebSocket(`ws://127.0.0.1:${app_port}`);
socket.binaryType = "arraybuffer";

// Assuming CapGrant was already created with these credentials
const CAP_SECRET = "super_secret_password";
const key_pair = nacl.sign.keyPair();

const client = new MereMemoryClient( socket, cell_agent_hash, "storage", dna_hash );

client.setCapabilityAgent(
    cap_agent,
    async zome_call_request => {
        const zome_call_hash = await hashZomeCall( zome_call_request );

        zome_call_request.signature= nacl.sign( zome_call_hash, key_pair.secretKey )
            .subarray( 0, nacl.sign.signatureLength );

        return zome_call_request;
    },
    CAP_SECRET,
);

const memory_addr = await client.save( bytes );
const memory = await client.remember( memory_addr );

expect( memory ).to.deep.equal( bytes );

API Reference

See docs/API.md

Contributing

See CONTRIBUTING.md