UNPKG

o1js

Version:

TypeScript framework for zk-SNARKs and zkApps

181 lines (180 loc) 4.67 kB
import { GenericProvableExtended, GenericSignableField } from '../../../bindings/lib/generic.js'; export { createEvents, dataAsHash }; type Poseidon<Field> = { update(state: Field[], input: Field[]): Field[]; }; declare function createEvents<Field>({ Field, Poseidon, }: { Field: GenericSignableField<Field>; Poseidon: Poseidon<Field>; }): { Events: { toFields: (x: { data: Field[][]; hash: Field; }) => Field[]; toAuxiliary: (x?: { data: Field[][]; hash: Field; } | undefined) => any[]; fromFields: (x: Field[], aux: any[]) => { data: Field[][]; hash: Field; }; sizeInFields(): number; check: (x: { data: Field[][]; hash: Field; }) => void; toValue: (x: { data: Field[][]; hash: Field; }) => { data: bigint[][]; hash: bigint; }; fromValue: (x: { data: Field[][]; hash: Field; } | { data: bigint[][]; hash: bigint; }) => { data: Field[][]; hash: Field; }; toCanonical?: ((x: { data: Field[][]; hash: Field; }) => { data: Field[][]; hash: Field; }) | undefined; toInput: (x: { data: Field[][]; hash: Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { data: Field[][]; hash: Field; }) => string[][]; fromJSON: (x: string[][]) => { data: Field[][]; hash: Field; }; empty: () => { data: Field[][]; hash: Field; }; pushEvent(events: { hash: Field; data: Field[][]; }, event: Field[]): { hash: Field; data: Field[][]; }; fromList(events: Field[][]): { hash: Field; data: Field[][]; }; hash(events: Field[][]): Field; }; Actions: { toFields: (x: { data: Field[][]; hash: Field; }) => Field[]; toAuxiliary: (x?: { data: Field[][]; hash: Field; } | undefined) => any[]; fromFields: (x: Field[], aux: any[]) => { data: Field[][]; hash: Field; }; sizeInFields(): number; check: (x: { data: Field[][]; hash: Field; }) => void; toValue: (x: { data: Field[][]; hash: Field; }) => { data: bigint[][]; hash: bigint; }; fromValue: (x: { data: Field[][]; hash: Field; } | { data: bigint[][]; hash: bigint; }) => { data: Field[][]; hash: Field; }; toCanonical?: ((x: { data: Field[][]; hash: Field; }) => { data: Field[][]; hash: Field; }) | undefined; toInput: (x: { data: Field[][]; hash: Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { data: Field[][]; hash: Field; }) => string[][]; fromJSON: (x: string[][]) => { data: Field[][]; hash: Field; }; empty: () => { data: Field[][]; hash: Field; }; pushEvent(actions: { hash: Field; data: Field[][]; }, event: Field[]): { hash: Field; data: Field[][]; }; fromList(events: Field[][]): { hash: Field; data: Field[][]; }; hash(events: Field[][]): Field; emptyActionState(): Field; updateSequenceState(state: Field, sequenceEventsHash: Field): Field; }; }; declare function dataAsHash<T, V, J, Field>({ empty, toValue, fromValue, toJSON, fromJSON, Field, }: { empty: () => { data: T; hash: Field; }; toValue: (value: T) => V; fromValue: (value: V | T) => T; toJSON: (value: T) => J; fromJSON: (json: J) => { data: T; hash: Field; }; Field: GenericSignableField<Field>; }): GenericProvableExtended<{ data: T; hash: Field; }, { data: V; hash: bigint; }, J, Field>;