UNPKG

zkverifyjs

Version:

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

43 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerVk = registerVk; const events_1 = require("events"); const index_js_1 = require("../../utils/transactions/index.js"); const index_js_2 = require("../../utils/helpers/index.js"); const enums_js_1 = require("../../enums.js"); async function registerVk(connection, options, verificationKey) { const { api } = connection; const emitter = new events_1.EventEmitter(); const transactionResult = new Promise((resolve, reject) => { (async () => { try { const processor = await (0, index_js_2.getProofProcessor)(options.proofOptions.proofType); if (!processor) { throw new Error(`Unsupported proof type: ${options.proofOptions.proofType}`); } if (!verificationKey || verificationKey === '') { throw new Error('verificationKey cannot be null, undefined, or an empty string'); } const formattedVk = processor.formatVk(verificationKey, options.proofOptions); const pallet = (0, index_js_2.getProofPallet)(options.proofOptions.proofType); if (!pallet) { throw new Error(`Unsupported proof type: ${options.proofOptions.proofType}`); } const selectedAccount = (0, index_js_2.getSelectedAccount)(connection, options.accountAddress); const extrinsic = api.tx[pallet].registerVk(formattedVk); emitter.once(enums_js_1.ZkVerifyEvents.ErrorEvent, (err) => { reject(new Error((0, index_js_2.extractErrorMessage)(err))); }); const result = await (0, index_js_1.handleTransaction)(api, extrinsic, selectedAccount, undefined, emitter, options, enums_js_1.TransactionType.VKRegistration); emitter.removeAllListeners(); resolve(result); } catch (err) { emitter.removeAllListeners(); reject(new Error((0, index_js_2.extractErrorMessage)(err))); } })(); }); return { events: emitter, transactionResult }; } //# sourceMappingURL=index.js.map