UNPKG

mina-attestations

Version:
79 lines (78 loc) 3.98 kB
/** * JSON serialization of provable types and values. */ import { NestedProvable } from './nested.ts'; import { ProvableType } from './o1js-missing.ts'; import { Field, UInt8, UInt32, UInt64, PublicKey, Signature, VerificationKey, Int64 } from 'o1js'; import { type SerializedFactory } from './provable-factory.ts'; import type { Json } from './types.ts'; export { type SerializedType, type SerializedValue, type SerializedNestedType, serializeProvableType, serializeProvableValue, serializeProvableField, serializeProvablePublicKey, serializeNestedProvableType, serializeNestedProvableValue, serializeSimplyNestedProvableValue, deserializeProvableType, deserializeProvableValue, deserializeNestedProvable, deserializeNestedProvableValue, replaceNull, replaceUndefined, }; declare const supportedTypes: { Field: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field); Bool: typeof import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool & ((x: boolean | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool) => import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool); UInt8: typeof UInt8; UInt32: typeof UInt32; UInt64: typeof UInt64; Int64: typeof Int64; PublicKey: typeof PublicKey; Signature: typeof Signature; Undefined: import("node_modules/o1js/dist/node/lib/provable/types/struct.js").ProvablePureExtended<undefined, undefined, null>; VerificationKey: typeof VerificationKey; }; type O1jsTypeName = keyof typeof supportedTypes; type SerializedType = { _type: O1jsTypeName; } | { _type: 'Struct'; properties: SerializedNestedType; } | { _type: 'Array'; inner: SerializedType; size: number; } | { _type: 'Constant'; value: Json; } | { _type: 'Bytes'; size: number; } | { _type: 'Proof'; proof: Record<string, any>; } | { _type: 'String'; } | SerializedFactory; type SerializedNestedType = SerializedType | { [key: string]: SerializedNestedType; }; declare function serializeProvableType(type: ProvableType<any>): SerializedType; type SerializedValue = SerializedType & { value: Json; }; type SerializedValueAny = SerializedType & { value: any; }; type SerializedNestedValue = SerializedValue | string | number | boolean | { [key: string]: SerializedNestedValue; }; declare function serializeProvableValue(value: any): SerializedValue; declare function serializeProvableField(value: Field): { _type: "Field"; value: string; }; declare function serializeProvablePublicKey(value: PublicKey): { _type: "PublicKey"; value: any; }; declare function serializeNestedProvableType(type: NestedProvable): SerializedNestedType; declare function serializeNestedProvableValue(value: any): SerializedNestedValue; declare function serializeSimplyNestedProvableValue(value: Record<string, any>): Record<string, SerializedValue>; declare function deserializeProvableType(type: SerializedType): ProvableType<any>; declare function deserializeProvableValue(json: SerializedValueAny): any; declare function deserializeNestedProvable(type: SerializedNestedType): NestedProvable; declare function deserializeNestedProvableValue(value: SerializedNestedValue): any; declare function replaceNull<Input extends Record<string, Json>>(obj: Input): { [K in keyof Input]: Input[K] extends infer T | null ? T | undefined : Input[K]; }; declare function replaceUndefined<Input extends Record<string, Json | undefined>>(obj: Input): { [K in keyof Input]: Input[K] extends infer T | undefined ? T | null : Input[K]; };