UNPKG

zk-expo

Version:

Expo Module to create Zero-Knowledge Proofs for Groth16 & Noir on iOS and Android.

51 lines 1.88 kB
import ZkExpoModule from "./ZkExpoModule"; /** * Strips the `file://` scheme and URL-decodes the path so Rust's std::fs * can open it. expo-asset returns URIs like * `file:///var/mobile/Containers/.../Application%20Support/...` * which the OS rejects if passed verbatim to fopen. */ function normalizePath(uri) { return decodeURIComponent(uri.replace(/^file:\/\//, "")); } export async function groth16ProveV2(graph_path, zkey_path, inputs) { try { const res = await ZkExpoModule.groth16ProveV2(normalizePath(graph_path), normalizePath(zkey_path), inputs); const { proof, public_signals } = JSON.parse(res); return { proof, publicSignals: public_signals }; } catch (e) { console.error("ZkExpoModule Error", e); throw new Error(`ZkExpoModule Error: ${e}`, { cause: e }); } } export async function groth16ProveV2Base64(graph_b64, zkey_b64, inputs) { try { const res = await ZkExpoModule.groth16ProveV2Base64(graph_b64, zkey_b64, inputs); const { proof, public_signals } = JSON.parse(res); return { proof, publicSignals: public_signals }; } catch (e) { console.error("ZkExpoModule Error", e); throw new Error(`ZkExpoModule Error: ${e}`, { cause: e }); } } export async function addToCache(functionName = "groth16_prove_v2", path1, path2) { try { await ZkExpoModule.addToCache(functionName, normalizePath(path1), normalizePath(path2)); } catch (e) { console.error("ZkExpoModule Error", e); throw new Error(`ZkExpoModule Error: ${e}`, { cause: e }); } } export async function clearCache() { try { await ZkExpoModule.clearCache(); } catch (e) { console.error("ZkExpoModule Error", e); throw new Error(`ZkExpoModule Error: ${e}`, { cause: e }); } } //# sourceMappingURL=index.js.map