zkverifyjs
Version:
Submit proofs to zkVerify and query proof state with ease using our npm package.
43 lines • 2.23 kB
JavaScript
;
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