UNPKG

@hirosystems/clarinet-sdk

Version:

A SDK to interact with Clarity Smart Contracts in node.js

30 lines 1.22 kB
import { SDKOptions } from "@hirosystems/clarinet-sdk-wasm"; export { tx, } from "../../common/src/sdkProxyHelpers.js"; import { vfs } from "./vfs.js"; import { getSessionProxy } from "./sdkProxy.js"; const wasmModule = import("@hirosystems/clarinet-sdk-wasm"); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#use_within_json // @ts-ignore BigInt.prototype.toJSON = function () { return this.toString(); }; export async function getSDK(options) { const module = await wasmModule; let sdkOptions = new SDKOptions(!!options?.trackCosts, !!options?.trackCoverage, !!options?.trackPerformance); const simnet = new Proxy(new module.SDK(vfs, sdkOptions), getSessionProxy()); return simnet; } // load wasm only once and memoize it function memoizedInit() { let simnet = null; return async (manifestPath = "./Clarinet.toml", noCache = false, options) => { if (noCache || !simnet) { simnet = await getSDK(options); } // start a new simnet session await simnet.initSession(process.cwd(), manifestPath); return simnet; }; } export const initSimnet = memoizedInit(); //# sourceMappingURL=index.js.map