New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mem-sdk

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mem-sdk

JS SDK for MEM Serverless Functions

1.0.6
latest
Source
npm
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

@decentldotland/mem-sdk

JS SDK for MEM Serverless Functions

Build Locally

git clone https://github.com/decentldotland/mem-sdk.git

cd mem-sdk

npm install && npm run build
Build size
  • dist/index.cjs.js 3.46 kB │ gzip: 1.07 kB
  • dist/index.umd.js 3.66 kB │ gzip: 1.17 kB
  • dist/index.es.js 4.74 kB │ gzip: 1.18 kB

Install

npm install mem-sdk

Usage Guide

Import MEM SDK

React, and other frameworks (also check out React Version):
import Mem from "mem-sdk";

const mem : Mem = new Mem({
  network: "mainnet" || "testnet"
});
Node (TS)
const { Mem } = require("mem-sdk");
const mem: Mem = new Mem({
  network: "mainnet" || "testnet"
});
Node (ES6)
import { Mem } from "mem-sdk"
const mem = new Mem({
  network: "mainnet" || "testnet"
});

Retrieve a function state

const FUNCTION_ID = "...";
const state = await mem.read(FUNCTION_ID);

Send an interaction (only works on server-side)

const FUNCTION_ID = "...";
const inputs = { function: "test", inputA: "valueA" };

const txid = await mem.write(FUNCTION_ID, inputs);

Deploy a function

const SRC = `export async function handle(state, action) {
  const input = action.input;


if (input.function === "save") {
    const { username, bio } = input;

    ContractAssert(username.trim().length, "ERROR_INVALID_INPUT");
    ContractAssert(typeof username === "string" && typeof bio === "string");
    state.logs.push ({ username, bio });
    return { state }
  }
}`;

const INIT_STATE = '{"logs": []}';

const id = await mem.deploy(SRC, INIT_STATE);

Fork a function to mainnet or testnet

While the SDK should be initialized for mainnet using this method, the fork functionality allows forking mainnet deployed function to either mainnet or carbon testnet:

const MAINNET_FUNCTION_ID = "...";
const FORK_IT_TO = "mainnet" || "testnet";
const OVERWRITE_INIT_STATE = btoa('{"new": "state"}'); // optional

const id = await mem.fork(MAINNET_FUNCTION_ID, FORK_IT_TO, OVERWRITE_INIT_STATE?);

Get a function's KV object (only mainnet)

const MAINNET_FUNCTION_ID = "...";
const kv = await mem.kvGet(MAINNET_FUNCTION_ID);

Named functions resolving DX (only mainnet)

It is possible to assign a memorable name to a function ID using the function registry tool (e.g., ans.mem instead of Tih...I5M). These .mem names are resolvable with the MEM SDK the same way you would pass a function ID:

await mem.read("ans.mem");

License

This repository is licensed under the MIT License

Keywords

MEM

FAQs

Package last updated on 29 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts