UNPKG

minauth-erc721-timelock-plugin

Version:

This package contains an implementation of a MinAuth plugin that combines zero-knowledge Merkle "membership" proofs with the ability to register into to a Merkle tree with locking an Ethereum NFT.

152 lines (151 loc) 6.17 kB
export declare const TREE_HEIGHT = 10; declare const TreeWitness_base: typeof import("o1js/dist/node/lib/merkle_tree").BaseMerkleWitness; export declare class TreeWitness extends TreeWitness_base { } declare const PrivateInput_base: (new (value: { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }) => { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }) & { _isStruct: true; } & import("o1js/dist/node/snarky").ProvablePure<{ witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }> & { toInput: (x: { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }) => { fields?: import("o1js/dist/node/lib/field").Field[] | undefined; packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined; }; toJSON: (x: { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }) => { witness: any; secret: string; }; fromJSON: (x: { witness: any; secret: string; }) => { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }; empty: () => { witness: TreeWitness; secret: import("o1js/dist/node/lib/field").Field; }; }; export declare class PrivateInput extends PrivateInput_base { } declare const PublicInput_base: (new (value: { merkleRoot: import("o1js/dist/node/lib/field").Field; }) => { merkleRoot: import("o1js/dist/node/lib/field").Field; }) & { _isStruct: true; } & import("o1js/dist/node/snarky").ProvablePure<{ merkleRoot: import("o1js/dist/node/lib/field").Field; }> & { toInput: (x: { merkleRoot: import("o1js/dist/node/lib/field").Field; }) => { fields?: import("o1js/dist/node/lib/field").Field[] | undefined; packed?: [import("o1js/dist/node/lib/field").Field, number][] | undefined; }; toJSON: (x: { merkleRoot: import("o1js/dist/node/lib/field").Field; }) => { merkleRoot: string; }; fromJSON: (x: { merkleRoot: string; }) => { merkleRoot: import("o1js/dist/node/lib/field").Field; }; empty: () => { merkleRoot: import("o1js/dist/node/lib/field").Field; }; }; export declare class PublicInput extends PublicInput_base { } /** Prove knowledge of a preimage of a hash in a merkle tree. * The proof reveals nothing, but the merkle root. */ export declare const MerkleMembershipProgram: { name: string; compile: (options?: { cache?: import("o1js/dist/node/lib/proof-system/cache").Cache | undefined; forceRecompile?: boolean | undefined; } | undefined) => Promise<{ verificationKey: { data: string; hash: import("o1js/dist/node/lib/field").Field; }; }>; verify: (proof: import("o1js/dist/node/lib/proof_system").Proof<PublicInput, void>) => Promise<boolean>; digest: () => string; analyzeMethods: () => { proveMembership: { rows: number; digest: string; result: unknown; gates: import("o1js/dist/node/snarky").Gate[]; publicInputSize: number; print(): void; summary(): Partial<Record<import("o1js/dist/node/snarky").GateType | "Total rows", number>>; }; }; publicInputType: typeof PublicInput; publicOutputType: import("o1js/dist/node/lib/circuit_value").ProvablePureExtended<void, null>; privateInputTypes: { proveMembership: [typeof PrivateInput]; }; rawMethods: { proveMembership: (publicInput: PublicInput, ...args: [PrivateInput] & any[]) => void; }; } & { proveMembership: (publicInput: PublicInput, ...args: [PrivateInput] & any[]) => Promise<import("o1js/dist/node/lib/proof_system").Proof<PublicInput, void>>; }; export declare const MerkleMembershipProof: { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: PublicInput; publicOutput: void; maxProofsVerified: 0 | 2 | 1; }): { publicInput: PublicInput; publicOutput: void; proof: unknown; maxProofsVerified: 0 | 2 | 1; shouldVerify: import("o1js/dist/node/lib/bool").Bool; verify(): void; verifyIf(condition: import("o1js/dist/node/lib/bool").Bool): void; toJSON(): import("o1js/dist/node/lib/proof_system").JsonProof; }; publicInputType: typeof PublicInput; publicOutputType: import("o1js/dist/node/lib/circuit_value").ProvablePureExtended<void, null>; tag: () => { name: string; publicInputType: typeof PublicInput; publicOutputType: import("o1js/dist/node/lib/circuit_value").ProvablePureExtended<void, null>; }; fromJSON<S extends (new (...args: any) => import("o1js/dist/node/lib/proof_system").Proof<unknown, unknown>) & { prototype: import("o1js/dist/node/lib/proof_system").Proof<any, any>; publicInputType: import("o1js/dist/node/lib/circuit_value").FlexibleProvablePure<any>; publicOutputType: import("o1js/dist/node/lib/circuit_value").FlexibleProvablePure<any>; tag: () => { name: string; }; fromJSON: typeof import("o1js/dist/node/lib/proof_system").Proof.fromJSON; dummy: typeof import("o1js/dist/node/lib/proof_system").Proof.dummy; } & { prototype: import("o1js/dist/node/lib/proof_system").Proof<unknown, unknown>; }>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js/dist/node/lib/proof_system").JsonProof): import("o1js/dist/node/lib/proof_system").Proof<import("o1js/dist/node/bindings/lib/provable-snarky").InferProvable<S["publicInputType"]>, import("o1js/dist/node/bindings/lib/provable-snarky").InferProvable<S["publicOutputType"]>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number | undefined): Promise<import("o1js/dist/node/lib/proof_system").Proof<Input, OutPut>>; }; export {};