@nori-zk/proof-conversion
Version:
Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof
101 lines • 3.18 kB
JavaScript
import { compute_and_serialize_aux_witness_js as wasmComputeAuxWitness, make_alpha_beta_js as wasmMakeAlphaBeta, } from '@nori-zk/proof-conversion-pairing-utils';
export function computeAuxWitness(f12) {
return wasmComputeAuxWitness(f12);
}
export function makeAlphaBeta(raw_vk, input) {
// this is not complete
// cargo run --bin alphabeta -- $RAW_VK_PATH $VK_PATH &
// make_alpha_beta this function takes json_path for the $RAW_VK_PATH env var and uses this as "v"... it then
// extends v by overriding the alpha_beta Field12 fields
const serialized_alpha_beta = wasmMakeAlphaBeta(input);
const v = {
delta: {
x_c0: raw_vk.delta.x_c0,
x_c1: raw_vk.delta.x_c1,
y_c0: raw_vk.delta.y_c0,
y_c1: raw_vk.delta.y_c1,
},
gamma: {
x_c0: raw_vk.gamma.x_c0,
x_c1: raw_vk.gamma.x_c1,
y_c0: raw_vk.gamma.y_c0,
y_c1: raw_vk.gamma.y_c1,
},
alpha: {
x: raw_vk.alpha.x,
y: raw_vk.alpha.y,
},
beta: {
x_c0: raw_vk.beta.x_c0,
x_c1: raw_vk.beta.x_c1,
y_c0: raw_vk.beta.y_c0,
y_c1: raw_vk.beta.y_c1,
},
ic0: {
x: raw_vk.ic0.x,
y: raw_vk.ic0.y,
},
ic1: {
x: raw_vk.ic1.x,
y: raw_vk.ic1.y,
},
ic2: {
x: raw_vk.ic2.x,
y: raw_vk.ic2.y,
},
ic3: {
x: raw_vk.ic3.x,
y: raw_vk.ic3.y,
},
ic4: {
x: raw_vk.ic4.x,
y: raw_vk.ic4.y,
},
ic5: {
x: raw_vk.ic5.x,
y: raw_vk.ic5.y,
},
w27: {
g00: raw_vk.w27.g00,
g01: raw_vk.w27.g01,
g10: raw_vk.w27.g10,
g11: raw_vk.w27.g11,
g20: raw_vk.w27.g20,
g21: raw_vk.w27.g21,
h00: raw_vk.w27.h00,
h01: raw_vk.w27.h01,
h10: raw_vk.w27.h10,
h11: raw_vk.w27.h11,
h20: raw_vk.w27.h20,
h21: raw_vk.w27.h21,
},
alpha_beta: {
g00: '',
g01: '',
g10: '',
g11: '',
g20: '',
g21: '',
h00: '',
h01: '',
h10: '',
h11: '',
h20: '',
h21: '',
},
};
v['alpha_beta']['g00'] = serialized_alpha_beta.g00;
v['alpha_beta']['g01'] = serialized_alpha_beta.g01;
v['alpha_beta']['g10'] = serialized_alpha_beta.g10;
v['alpha_beta']['g11'] = serialized_alpha_beta.g11;
v['alpha_beta']['g20'] = serialized_alpha_beta.g20;
v['alpha_beta']['g21'] = serialized_alpha_beta.g21;
v['alpha_beta']['h00'] = serialized_alpha_beta.h00;
v['alpha_beta']['h01'] = serialized_alpha_beta.h01;
v['alpha_beta']['h10'] = serialized_alpha_beta.h10;
v['alpha_beta']['h11'] = serialized_alpha_beta.h11;
v['alpha_beta']['h20'] = serialized_alpha_beta.h20;
v['alpha_beta']['h21'] = serialized_alpha_beta.h21;
return v;
}
//# sourceMappingURL=index.js.map