UNPKG

zkverifyjs

Version:

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

43 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verify = void 0; const index_js_1 = require("../../utils/transactions/index.js"); const enums_js_1 = require("../../enums.js"); const index_js_2 = require("../format/index.js"); const index_js_3 = require("../extrinsic/index.js"); const index_js_4 = require("../../utils/helpers/index.js"); const verify = async (connection, options, emitter, input) => { const { api } = connection; try { const selectedAccount = (0, index_js_4.getKeyringAccountIfAvailable)(connection, options.accountAddress); const effectiveOptions = input.domainId != null ? { ...options, domainId: input.domainId } : options; const transaction = (() => { if ('proofData' in input && input.proofData) { const { proof, publicSignals, vk } = input.proofData; const formatted = (0, index_js_2.format)(options.proofOptions, proof, publicSignals, vk, options.registeredVk); return (0, index_js_3.createSubmitProofExtrinsic)(api, options.proofOptions.proofType, formatted, input.domainId); } if ('extrinsic' in input && input.extrinsic) { return (0, index_js_4.toSubmittableExtrinsic)(input.extrinsic, api); } throw new Error('Invalid input: Either proofData or extrinsic must be provided.'); })(); const result = selectedAccount ? await (0, index_js_1.handleTransaction)(api, transaction, selectedAccount, undefined, emitter, effectiveOptions, enums_js_1.TransactionType.Verify) : 'injector' in connection ? await (0, index_js_1.handleTransaction)(api, transaction, connection.accountAddress, connection.injector.signer, emitter, effectiveOptions, enums_js_1.TransactionType.Verify) : (() => { throw new Error('Unsupported connection type.'); })(); return result; } catch (error) { emitter.emit(enums_js_1.ZkVerifyEvents.ErrorEvent, error); emitter.removeAllListeners(); throw error; } }; exports.verify = verify; //# sourceMappingURL=index.js.map