UNPKG

@nori-zk/o1js-zk-utils

Version:

o1js-zk-utils supporting Nori Bridge

130 lines (129 loc) 4.6 kB
import { Field, ProvableType } from 'o1js'; import { EthVerifier } from './ethVerifier.js'; import { Tuple } from 'o1js/dist/node/lib/util/types.js'; import { PrivateInput, ZkProgram as ZkProgramFunc } from 'o1js/dist/node/lib/proof-system/zkprogram.js'; export type Constructor<T = any> = new (...args: any) => T; export type ZkProgram<Config extends { publicInput?: ProvableType; publicOutput?: ProvableType; methods: { [I in string]: { privateInputs: Tuple<PrivateInput>; auxiliaryOutput?: ProvableType; }; }; }> = ReturnType<typeof ZkProgramFunc<Config>>; export type CompilableZkProgram = { compile: (options?: any) => Promise<{ verificationKey: { data: string; hash: Field; }; }>; }; 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.js").Bytes; export declare class Bytes32 extends Bytes32_base { static get zero(): Bytes32; } declare const Bytes20_base: typeof import("o1js/dist/node/lib/provable/bytes.js").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.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }) => { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }, { highByteField: bigint; lowerBytesField: bigint; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { highByteField: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; }) => { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }) => { highByteField: string; lowerBytesField: string; }; fromJSON: (x: { highByteField: string; lowerBytesField: string; }) => { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { highByteField: import("o1js/dist/node/lib/provable/field.js").Field; lowerBytesField: import("o1js/dist/node/lib/provable/field.js").Field; }; }; export declare class Bytes32FieldPair extends Bytes32FieldPair_base { static fromBytes32(bytes32: Bytes32): Bytes32FieldPair; } export {};