UNPKG

mina-attestations

Version:
384 lines (383 loc) 21.9 kB
import { PublicKey, Bool, Unconstrained, Bytes, Field } from 'o1js'; export { ZkPass, type ZkPassResponseItem }; /** * Utilities to help process zkpass responses. */ declare const ZkPass: { importCredentialPartial: typeof importCredentialPartial; verifyPublicInput: typeof verifyPublicInput; encodeParameters: typeof encodeParameters; genPublicFieldHash: typeof genPublicFieldHash; CredentialPartial(): Promise<{ create(inputs: { publicInput: { schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; allocatorSignature: { r: bigint | [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field] | import("node_modules/o1js/dist/node/lib/provable/gadgets/foreign-field.js").Field3; s: bigint | [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field] | import("node_modules/o1js/dist/node/lib/provable/gadgets/foreign-field.js").Field3; }; allocatorParityBit: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }; privateInput: { uHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; validatorSignature: import("o1js").EcdsaSignature | { r: bigint; s: bigint; }; validatorParityBit: boolean | Unconstrained<boolean>; }; owner: PublicKey; }): Promise<import("../credential-imported.ts").Imported<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, { schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }>>; spec: import("../credential.ts").CredentialSpec<import("../credential-imported.ts").ImportedWitness<{ schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }>, { nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>; program: { publicInputType: import("o1js").Provable<{ schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }, { schema: { bytes: { value: bigint; }[]; }; taskId: { bytes: { value: bigint; }[]; }; validatorAddress: { bytes: { value: bigint; }[]; }; allocatorAddress: { bytes: { value: bigint; }[]; }; allocatorSignature: { r: bigint; s: bigint; }; allocatorParityBit: boolean; }>; publicOutputType: import("../o1js-missing.ts").ProvableType<import("../credential.ts").Credential<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>; analyzeMethods(): Promise<Record<string, any>>; maxProofsVerified(): Promise<0 | 1 | 2>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; }) => Promise<{ verificationKey: import("o1js").VerificationKey; }>; run(...inputs: any): Promise<{ proof: import("o1js").Proof<{ schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }, import("../credential.ts").Credential<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>; auxiliaryOutput: undefined; }>; }; fromProof: (proof: import("o1js").Proof<{ schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }, import("../credential.ts").Credential<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>, vk: import("o1js").VerificationKey) => Promise<import("../credential-imported.ts").Imported<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, { schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }>>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; } | undefined) => Promise<import("o1js").VerificationKey>; dummy: ({ owner, data, }: import("../credential.ts").Credential<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; } | { nullifier: { bytes: { value: bigint; }[]; }; publicFieldsHash: { bytes: { value: bigint; }[]; }; }>) => Promise<import("../credential-imported.ts").Imported<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, { schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }>>; }>; compileDependenciesPartial({ proofsEnabled }?: { proofsEnabled?: boolean | undefined; }): Promise<void>; CredentialFull(): Promise<{ create(inputs: { publicInput: { allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; }; privateInput: { allocatorMessage: Uint8Array<ArrayBufferLike> | import("../dynamic.ts").DynamicBytesBase; allocatorSignature: import("o1js").EcdsaSignature | { r: bigint; s: bigint; }; allocatorParityBit: boolean | Unconstrained<boolean>; validatorMessage: Uint8Array<ArrayBufferLike> | import("../dynamic.ts").DynamicBytesBase; validatorSignature: import("o1js").EcdsaSignature | { r: bigint; s: bigint; }; validatorParityBit: boolean | Unconstrained<boolean>; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | { bytes: { value: bigint; }[]; }; }; owner: PublicKey; }): Promise<import("../credential-imported.ts").Imported<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }, { allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>; spec: import("../credential.ts").CredentialSpec<import("../credential-imported.ts").ImportedWitness<{ allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>, { allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }>; program: { publicInputType: import("o1js").Provable<{ allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, { allocatorAddress: { bytes: { value: bigint; }[]; }; }>; publicOutputType: import("../o1js-missing.ts").ProvableType<import("../credential.ts").Credential<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }>>; analyzeMethods(): Promise<Record<string, any>>; maxProofsVerified(): Promise<0 | 1 | 2>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; }) => Promise<{ verificationKey: import("o1js").VerificationKey; }>; run(...inputs: any): Promise<{ proof: import("o1js").Proof<{ allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, import("../credential.ts").Credential<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }>>; auxiliaryOutput: undefined; }>; }; fromProof: (proof: import("o1js").Proof<{ allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, import("../credential.ts").Credential<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }>>, vk: import("o1js").VerificationKey) => Promise<import("../credential-imported.ts").Imported<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }, { allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; } | undefined) => Promise<import("o1js").VerificationKey>; dummy: ({ owner, data, }: import("../credential.ts").Credential<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; } | { allocatorMessage: Uint8Array<ArrayBufferLike>; validatorMessage: Uint8Array<ArrayBufferLike>; }>) => Promise<import("../credential-imported.ts").Imported<{ allocatorMessage: import("../dynamic.ts").DynamicBytesBase; validatorMessage: import("../dynamic.ts").DynamicBytesBase; }, { allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }>>; }>; compileDependenciesFull({ proofsEnabled }?: { proofsEnabled?: boolean | undefined; }): Promise<void>; }; type Type = 'bytes32' | 'address'; type PublicField = string | ({ [key: string]: PublicField; } & { str?: string; }); type ZkPassResponseItem = { taskId: string; publicFields: PublicField[]; allocatorAddress: string; publicFieldsHash: string; allocatorSignature: string; uHash: string; validatorAddress: string; validatorSignature: string; }; declare function importCredentialPartial(owner: PublicKey, schema: string, response: ZkPassResponseItem, log?: (msg: string) => void, { proofsEnabled }?: { proofsEnabled?: boolean | undefined; }): Promise<import("../credential-imported.ts").Imported<{ nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; }, { schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes; allocatorSignature: { r: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; s: [import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field]; }; allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool; }>>; type Field3 = [Field, Field, Field]; /** * Verify the public input of a partial zkpass credential. * * Returns the allocator address and schema id for further verification against * expected values. * * This is a verification step that can be done in the clear, and is * outsourced from the proof to the verifier. */ declare function verifyPublicInput(publicInput: { schema: Bytes; taskId: Bytes; validatorAddress: Bytes; allocatorAddress: Bytes; allocatorSignature: { r: Field3; s: Field3; }; allocatorParityBit: Bool; }): { allocatorAddress: string; schema: string; }; declare function encodeParameters(types: Type[], values: Uint8Array[]): Uint8Array<ArrayBufferLike>; declare function genPublicFieldHash(publicFields: PublicField[]): import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;