o1js
Version:
TypeScript framework for zk-SNARKs and zkApps
181 lines (180 loc) • 4.67 kB
TypeScript
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>;