UNPKG

@nori-zk/ethprocessor

Version:

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

413 lines (412 loc) 17.2 kB
import { Provable, UInt64, Field } from 'o1js'; import { NodeProofLeft } from '@nori-zk/proof-conversion'; declare const Bytes32_base: typeof import("o1js/dist/node/lib/provable/bytes").Bytes; declare class Bytes32 extends Bytes32_base { } declare const EthInput_base: (new (value: { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }) => { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{ executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }, { executionStateRoot: { bytes: { value: bigint; }[]; }; newHeader: { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: { bytes: { value: bigint; }[]; }; newHead: bigint; prevHeader: { bytes: { value: bigint; }[]; }; prevHead: bigint; syncCommitteeHash: { bytes: { value: bigint; }[]; }; startSyncComitteHash: { bytes: { value: bigint; }[]; }; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }; } & { fromValue: (value: { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; newHead: number | bigint | UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; prevHead: number | bigint | UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; }) => { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }; toInput: (x: { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }) => { executionStateRoot: { bytes: { value: string; }[]; }; newHeader: { bytes: { value: string; }[]; }; nextSyncCommitteeHash: { bytes: { value: string; }[]; }; newHead: string; prevHeader: { bytes: { value: string; }[]; }; prevHead: string; syncCommitteeHash: { bytes: { value: string; }[]; }; startSyncComitteHash: { bytes: { value: string; }[]; }; }; fromJSON: (x: { executionStateRoot: { bytes: { value: string; }[]; }; newHeader: { bytes: { value: string; }[]; }; nextSyncCommitteeHash: { bytes: { value: string; }[]; }; newHead: string; prevHeader: { bytes: { value: string; }[]; }; prevHead: string; syncCommitteeHash: { bytes: { value: string; }[]; }; startSyncComitteHash: { bytes: { value: string; }[]; }; }) => { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }; empty: () => { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; newHead: UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes; prevHead: UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes; }; }; declare class EthInput extends EthInput_base { } declare const EthVerifier: { name: string; maxProofsVerified(): Promise<0 | 1 | 2>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; }) => Promise<{ verificationKey: { data: string; hash: Field; }; }>; verify: (proof: import("o1js").Proof<EthInput, import("o1js/dist/node/lib/provable/field").Field>) => Promise<boolean>; digest: () => Promise<string>; analyzeMethods: () => Promise<{ compute: { proofs: import("o1js/dist/node/lib/proof-system/proof").ProofClass[]; rows: number; digest: string; gates: import("o1js/dist/node/snarky").Gate[]; publicInputSize: number; print(): void; summary(): Partial<Record<import("o1js/dist/node/snarky").GateType | "Total rows", number>>; }; }>; publicInputType: typeof EthInput; publicOutputType: typeof import("o1js/dist/node/lib/provable/field").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar").FieldVar | import("o1js/dist/node/lib/provable/field").Field) => import("o1js/dist/node/lib/provable/field").Field); privateInputTypes: { compute: [typeof NodeProofLeft]; }; auxiliaryOutputTypes: { compute: undefined; }; rawMethods: { compute: (publicInput: EthInput, args_0: NodeProofLeft) => Promise<{ publicOutput: import("o1js/dist/node/lib/provable/field").Field; }>; }; Proof: { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: import("o1js/dist/node/snarky").Pickles.Proof; publicInput: EthInput; publicOutput: import("o1js/dist/node/lib/provable/field").Field; maxProofsVerified: 0 | 1 | 2; }): import("o1js").Proof<EthInput, import("o1js/dist/node/lib/provable/field").Field>; fromJSON<S extends import("o1js/dist/node/lib/util/types").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 1 | 2, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; readonly provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof").ProofValue<any, any>; fromValue: (x: import("o1js/dist/node/lib/proof-system/proof").ProofValue<any, any> | import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>; toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined; }; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase): { input: import("o1js/dist/node/lib/provable/field").Field[]; output: import("o1js/dist/node/lib/provable/field").Field[]; }; _proofFromBase64(proofString: import("o1js/dist/node/snarky").Base64ProofString, maxProofsVerified: 0 | 1 | 2): unknown; _proofToBase64(proof: import("o1js/dist/node/snarky").Pickles.Proof, maxProofsVerified: 0 | 1 | 2): string; }; proofsEnabled: boolean; setProofsEnabled(proofsEnabled: boolean): void; } & { compute: (publicInput: EthInput | { executionStateRoot: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; newHeader: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; newHead: number | bigint | UInt64; prevHeader: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; prevHead: number | bigint | UInt64; syncCommitteeHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; startSyncComitteHash: import("o1js/dist/node/lib/provable/bytes").Bytes | { bytes: { value: bigint; }[]; }; }, args_0: import("o1js").DynamicProof<any, any> | import("o1js/dist/node/lib/proof-system/proof").ProofValue<any, any>) => Promise<{ proof: import("o1js").Proof<EthInput, import("o1js/dist/node/lib/provable/field").Field>; auxiliaryOutput: undefined; }>; }; declare const EthProof: { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: EthInput; publicOutput: import("o1js/dist/node/lib/provable/field").Field; maxProofsVerified: 0 | 2 | 1; }): import("o1js").Proof<EthInput, import("o1js/dist/node/lib/provable/field").Field>; fromJSON<S extends import("o1js/dist/node/lib/util/types").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; readonly provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof").ProofValue<any, any>; fromValue: (x: import("o1js").Proof<any, any> | import("o1js/dist/node/lib/proof-system/proof").ProofValue<any, any>) => import("o1js").Proof<any, any>; toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined; }; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase<any, any>): { input: import("o1js/dist/node/lib/provable/field").Field[]; output: import("o1js/dist/node/lib/provable/field").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; } & { provable: Provable<import("o1js").Proof<EthInput, import("o1js/dist/node/lib/provable/field").Field>, import("o1js/dist/node/lib/proof-system/proof").ProofValue<{ executionStateRoot: { bytes: { value: bigint; }[]; }; newHeader: { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: { bytes: { value: bigint; }[]; }; newHead: bigint; prevHeader: { bytes: { value: bigint; }[]; }; prevHead: bigint; syncCommitteeHash: { bytes: { value: bigint; }[]; }; startSyncComitteHash: { bytes: { value: bigint; }[]; }; }, bigint>>; }; export { EthVerifier, EthProof, EthInput, Bytes32 };