@nori-zk/o1js-zk-utils
Version:
o1js-zk-utils supporting Nori Bridge
130 lines (129 loc) • 4.6 kB
TypeScript
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 {};