UNPKG

@nori-zk/ethprocessor

Version:

zkApp for verifying SP1 Helios Nori proof and storing latest execution state root on Mina

110 lines (109 loc) 3.87 kB
import { Field } from 'o1js'; import { EthVerifier } from './EthVerifier'; export type Constructor<T = any> = new (...args: any) => T; export interface Proof { Plonk: { encoded_proof: string; plonk_vkey_hash: number[]; public_inputs: string[]; raw_proof: string; }; } export interface PublicValues { buffer: { data: number[]; }; } export interface PlonkProof { proof: Proof; public_values: PublicValues; sp1_version: string; } export interface ConvertedProofProofData { maxProofsVerified: 0 | 1 | 2; proof: string; publicInput: string[]; publicOutput: string[]; } export interface ConvertedProofVkData { data: string; hash: string; } export interface ConvertedProof { vkData: ConvertedProofVkData; proofData: ConvertedProofProofData; } export interface CreateProofArgument { sp1PlonkProof: PlonkProof; conversionOutputProof: ConvertedProof; } export type EthVerifierComputeOutput = Awaited<ReturnType<typeof EthVerifier.compute>>; export type VerificationKey = { data: string; hash: Field; }; declare const Bytes32_base: typeof import("o1js/dist/node/lib/provable/bytes").Bytes; export declare class Bytes32 extends Bytes32_base { static get zero(): Bytes32; } declare const Bytes20_base: typeof import("o1js/dist/node/lib/provable/bytes").Bytes; export declare class Bytes20 extends Bytes20_base { static get zero(): Bytes20; } declare const Bytes32FieldPair_base: (new (value: { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }) => { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{ highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }, { highByteField: bigint; lowerBytesField: bigint; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }; } & { fromValue: (value: { highByteField: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field; }) => { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }; toInput: (x: { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }) => { highByteField: string; lowerBytesField: string; }; fromJSON: (x: { highByteField: string; lowerBytesField: string; }) => { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }; empty: () => { highByteField: import("o1js/dist/node/lib/provable/field").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field").Field; }; }; export declare class Bytes32FieldPair extends Bytes32FieldPair_base { static fromBytes32(bytes32: Bytes32): Bytes32FieldPair; } export {};