@nori-zk/proof-conversion
Version:
Verifying zkVM proofs inside o1js circuits, to generate Mina compatible proof
394 lines (393 loc) • 13 kB
TypeScript
import { Sp1PlonkProof } from './proof.js';
import { Sp1PlonkFiatShamir } from './fiat-shamir/index.js';
import { StateUntilPairing } from './state.js';
declare const Accumulator_base: (new (value: {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
}) => {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
}) & {
_isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
}, {
proof: {
l_com_x: bigint;
l_com_y: bigint;
r_com_x: bigint;
r_com_y: bigint;
o_com_x: bigint;
o_com_y: bigint;
h0_x: bigint;
h0_y: bigint;
h1_x: bigint;
h1_y: bigint;
h2_x: bigint;
h2_y: bigint;
l_at_zeta: bigint;
r_at_zeta: bigint;
o_at_zeta: bigint;
s1_at_zeta: bigint;
s2_at_zeta: bigint;
grand_product_x: bigint;
grand_product_y: bigint;
grand_product_at_omega_zeta: bigint;
batch_opening_at_zeta_x: bigint;
batch_opening_at_zeta_y: bigint;
batch_opening_at_zeta_omega_x: bigint;
batch_opening_at_zeta_omega_y: bigint;
qcp_0_at_zeta: bigint;
qcp_0_wire_x: bigint;
qcp_0_wire_y: bigint;
};
fs: {
gamma_digest: {
bytes: {
value: bigint;
}[];
};
gamma: bigint;
beta_digest: {
bytes: {
value: bigint;
}[];
};
beta: bigint;
alpha_digest: {
bytes: {
value: bigint;
}[];
};
alpha: bigint;
zeta_digest: {
bytes: {
value: bigint;
}[];
};
zeta: bigint;
gamma_kzg_digest: {
bytes: {
value: bigint;
}[];
};
gamma_kzg: bigint;
};
state: {
pi0: bigint;
pi1: bigint;
zeta_pow_n: bigint;
zh_eval: bigint;
alpha_2_l0: bigint;
hx: bigint;
hy: bigint;
pi: bigint;
linearized_opening: bigint;
lcm_x: bigint;
lcm_y: bigint;
cm_x: bigint;
cm_y: bigint;
cm_opening: bigint;
kzg_random: bigint;
kzg_cm_x: bigint;
kzg_cm_y: bigint;
neg_fq_x: bigint;
neg_fq_y: bigint;
H: bigint[];
};
}>, "fromFields"> & {
fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
};
} & {
fromValue: (value: {
proof: Sp1PlonkProof | {
l_com_x: bigint | import("o1js").CanonicalForeignField;
l_com_y: bigint | import("o1js").CanonicalForeignField;
r_com_x: bigint | import("o1js").CanonicalForeignField;
r_com_y: bigint | import("o1js").CanonicalForeignField;
o_com_x: bigint | import("o1js").CanonicalForeignField;
o_com_y: bigint | import("o1js").CanonicalForeignField;
h0_x: bigint | import("o1js").CanonicalForeignField;
h0_y: bigint | import("o1js").CanonicalForeignField;
h1_x: bigint | import("o1js").CanonicalForeignField;
h1_y: bigint | import("o1js").CanonicalForeignField;
h2_x: bigint | import("o1js").CanonicalForeignField;
h2_y: bigint | import("o1js").CanonicalForeignField;
l_at_zeta: bigint | import("o1js").CanonicalForeignField;
r_at_zeta: bigint | import("o1js").CanonicalForeignField;
o_at_zeta: bigint | import("o1js").CanonicalForeignField;
s1_at_zeta: bigint | import("o1js").CanonicalForeignField;
s2_at_zeta: bigint | import("o1js").CanonicalForeignField;
grand_product_x: bigint | import("o1js").CanonicalForeignField;
grand_product_y: bigint | import("o1js").CanonicalForeignField;
grand_product_at_omega_zeta: bigint | import("o1js").CanonicalForeignField;
batch_opening_at_zeta_x: bigint | import("o1js").CanonicalForeignField;
batch_opening_at_zeta_y: bigint | import("o1js").CanonicalForeignField;
batch_opening_at_zeta_omega_x: bigint | import("o1js").CanonicalForeignField;
batch_opening_at_zeta_omega_y: bigint | import("o1js").CanonicalForeignField;
qcp_0_at_zeta: bigint | import("o1js").CanonicalForeignField;
qcp_0_wire_x: bigint | import("o1js").CanonicalForeignField;
qcp_0_wire_y: bigint | import("o1js").CanonicalForeignField;
};
fs: Sp1PlonkFiatShamir | {
gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
bytes: {
value: bigint;
}[];
};
gamma: bigint | import("o1js").CanonicalForeignField;
beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
bytes: {
value: bigint;
}[];
};
beta: bigint | import("o1js").CanonicalForeignField;
alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
bytes: {
value: bigint;
}[];
};
alpha: bigint | import("o1js").CanonicalForeignField;
zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
bytes: {
value: bigint;
}[];
};
zeta: bigint | import("o1js").CanonicalForeignField;
gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
bytes: {
value: bigint;
}[];
};
gamma_kzg: bigint | import("o1js").CanonicalForeignField;
};
state: StateUntilPairing | {
pi0: bigint | import("o1js").CanonicalForeignField;
pi1: bigint | import("o1js").CanonicalForeignField;
zeta_pow_n: bigint | import("o1js").CanonicalForeignField;
zh_eval: bigint | import("o1js").CanonicalForeignField;
alpha_2_l0: bigint | import("o1js").CanonicalForeignField;
hx: bigint | import("o1js").CanonicalForeignField;
hy: bigint | import("o1js").CanonicalForeignField;
pi: bigint | import("o1js").CanonicalForeignField;
linearized_opening: bigint | import("o1js").CanonicalForeignField;
lcm_x: bigint | import("o1js").CanonicalForeignField;
lcm_y: bigint | import("o1js").CanonicalForeignField;
cm_x: bigint | import("o1js").CanonicalForeignField;
cm_y: bigint | import("o1js").CanonicalForeignField;
cm_opening: bigint | import("o1js").CanonicalForeignField;
kzg_random: bigint | import("o1js").CanonicalForeignField;
kzg_cm_x: bigint | import("o1js").CanonicalForeignField;
kzg_cm_y: bigint | import("o1js").CanonicalForeignField;
neg_fq_x: bigint | import("o1js").CanonicalForeignField;
neg_fq_y: bigint | import("o1js").CanonicalForeignField;
H: import("o1js").UInt32[] | bigint[];
};
}) => {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
};
toInput: (x: {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
}) => {
fields?: import("o1js").Field[] | undefined;
packed?: [import("o1js").Field, number][] | undefined;
};
toJSON: (x: {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
}) => {
proof: {
l_com_x: string;
l_com_y: string;
r_com_x: string;
r_com_y: string;
o_com_x: string;
o_com_y: string;
h0_x: string;
h0_y: string;
h1_x: string;
h1_y: string;
h2_x: string;
h2_y: string;
l_at_zeta: string;
r_at_zeta: string;
o_at_zeta: string;
s1_at_zeta: string;
s2_at_zeta: string;
grand_product_x: string;
grand_product_y: string;
grand_product_at_omega_zeta: string;
batch_opening_at_zeta_x: string;
batch_opening_at_zeta_y: string;
batch_opening_at_zeta_omega_x: string;
batch_opening_at_zeta_omega_y: string;
qcp_0_at_zeta: string;
qcp_0_wire_x: string;
qcp_0_wire_y: string;
};
fs: {
gamma_digest: {
bytes: {
value: string;
}[];
};
gamma: string;
beta_digest: {
bytes: {
value: string;
}[];
};
beta: string;
alpha_digest: {
bytes: {
value: string;
}[];
};
alpha: string;
zeta_digest: {
bytes: {
value: string;
}[];
};
zeta: string;
gamma_kzg_digest: {
bytes: {
value: string;
}[];
};
gamma_kzg: string;
};
state: {
pi0: string;
pi1: string;
zeta_pow_n: string;
zh_eval: string;
alpha_2_l0: string;
hx: string;
hy: string;
pi: string;
linearized_opening: string;
lcm_x: string;
lcm_y: string;
cm_x: string;
cm_y: string;
cm_opening: string;
kzg_random: string;
kzg_cm_x: string;
kzg_cm_y: string;
neg_fq_x: string;
neg_fq_y: string;
H: string[];
};
};
fromJSON: (x: {
proof: {
l_com_x: string;
l_com_y: string;
r_com_x: string;
r_com_y: string;
o_com_x: string;
o_com_y: string;
h0_x: string;
h0_y: string;
h1_x: string;
h1_y: string;
h2_x: string;
h2_y: string;
l_at_zeta: string;
r_at_zeta: string;
o_at_zeta: string;
s1_at_zeta: string;
s2_at_zeta: string;
grand_product_x: string;
grand_product_y: string;
grand_product_at_omega_zeta: string;
batch_opening_at_zeta_x: string;
batch_opening_at_zeta_y: string;
batch_opening_at_zeta_omega_x: string;
batch_opening_at_zeta_omega_y: string;
qcp_0_at_zeta: string;
qcp_0_wire_x: string;
qcp_0_wire_y: string;
};
fs: {
gamma_digest: {
bytes: {
value: string;
}[];
};
gamma: string;
beta_digest: {
bytes: {
value: string;
}[];
};
beta: string;
alpha_digest: {
bytes: {
value: string;
}[];
};
alpha: string;
zeta_digest: {
bytes: {
value: string;
}[];
};
zeta: string;
gamma_kzg_digest: {
bytes: {
value: string;
}[];
};
gamma_kzg: string;
};
state: {
pi0: string;
pi1: string;
zeta_pow_n: string;
zh_eval: string;
alpha_2_l0: string;
hx: string;
hy: string;
pi: string;
linearized_opening: string;
lcm_x: string;
lcm_y: string;
cm_x: string;
cm_y: string;
cm_opening: string;
kzg_random: string;
kzg_cm_x: string;
kzg_cm_y: string;
neg_fq_x: string;
neg_fq_y: string;
H: string[];
};
}) => {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
};
empty: () => {
proof: Sp1PlonkProof;
fs: Sp1PlonkFiatShamir;
state: StateUntilPairing;
};
};
declare class Accumulator extends Accumulator_base {
deepClone(): Accumulator;
}
export { Accumulator };