UNPKG

zkverifyjs

Version:

Submit proofs to zkVerify and query proof state with ease using our npm package.

60 lines (59 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.format = format; const helpers_1 = require("../../utils/helpers"); function format(options, proof, publicSignals, vk, version, registeredVk) { const processor = (0, helpers_1.getProofProcessor)(options.proofType); if (!processor) { throw new Error(`Unsupported proof type: ${options.proofType}`); } if (proof === null || proof === undefined || proof === '') { throw new Error(`${options.proofType}: Proof is required and cannot be null, undefined, or an empty string.`); } if (publicSignals === null || publicSignals === undefined || publicSignals === '') { throw new Error(`${options.proofType}: Public signals are required and cannot be null, undefined, or an empty string.`); } if (vk === null || vk === undefined || vk === '') { throw new Error(`${options.proofType}: Verification Key must be provided.`); } let formattedProof, formattedPubs, formattedVk; try { formattedProof = processor.formatProof(proof, options, version); } catch (error) { const proofSnippet = typeof proof === 'string' ? proof.slice(0, 50) : JSON.stringify(proof).slice(0, 50); throw new Error(`Failed to format ${options.proofType} proof: ${error instanceof Error ? error.message : 'Unknown error'}. Proof snippet: "${proofSnippet}..."`); } try { formattedPubs = processor.formatPubs(publicSignals, options); } catch (error) { const pubsSnippet = Array.isArray(publicSignals) ? JSON.stringify(publicSignals).slice(0, 50) : publicSignals?.toString().slice(0, 50); throw new Error(`Failed to format ${options.proofType} public signals: ${error instanceof Error ? error.message : 'Unknown error'}. Public signals snippet: "${pubsSnippet}..."`); } try { if (registeredVk) { formattedVk = { Hash: vk }; } else { formattedVk = { Vk: processor.formatVk(vk, options) }; } } catch (error) { const vkSnippet = typeof vk === 'string' ? vk.slice(0, 50) : JSON.stringify(vk).slice(0, 50); throw new Error(`Failed to format ${options.proofType} verification key: ${error instanceof Error ? error.message : 'Unknown error'}. Verification key snippet: "${vkSnippet}..."`); } return { formattedProof, formattedPubs, formattedVk, }; }