UNPKG

@nori-zk/proof-conversion

Version:

Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof

53 lines 1.98 kB
import { G2Line } from '../../lines/index.js'; import { ATE_LOOP_COUNT } from '../../towers/consts.js'; import { createRequire } from 'module'; const require = createRequire(import.meta.url); const g2_lines_required = require('../mm_loop/g2_lines.json'); const tau_lines_required = require('../mm_loop/tau_lines.json'); //import g2_lines_required from '../mm_loop/g2_lines.json'; //import tau_lines_required from '../mm_loop/tau_lines.json' const g2_lines_path = JSON.stringify(g2_lines_required); //fs.readFileSync(`./src/plonk/mm_loop/g2_lines.json`, 'utf8'); const tau_lines_path = JSON.stringify(tau_lines_required); //fs.readFileSync(`./src/plonk/mm_loop/tau_lines.json`, 'utf8'); function ateCntSlice(from, to) { let line_cnt = 0; for (let i = from; i < to; i++) { if (ATE_LOOP_COUNT[i] == 0) { line_cnt += 1; } else { line_cnt += 2; } } return line_cnt; } class LineParser { constructor(g2_lines, tau_lines) { this.g2_lines = g2_lines; this.tau_lines = tau_lines; } static init() { let parsed_g2_lines = JSON.parse(g2_lines_path); let g2_lines = parsed_g2_lines.map((g) => G2Line.fromJSON(g)); let parsed_tau_lines = JSON.parse(tau_lines_path); let tau_lines = parsed_tau_lines.map((tau) => G2Line.fromJSON(tau)); return new LineParser(g2_lines, tau_lines); } parse_g2(from, to) { let start = ateCntSlice(1, from); let toSlice = ateCntSlice(from, to); return this.g2_lines.slice(start, start + toSlice); } parse_tau(from, to) { let start = ateCntSlice(1, from); let toSlice = ateCntSlice(from, to); return this.tau_lines.slice(start, start + toSlice); } frobenius_g2_lines() { return this.g2_lines.slice(-2); } frobenius_tau_lines() { return this.tau_lines.slice(-2); } } export { LineParser }; //# sourceMappingURL=line_parser.js.map