UNPKG

@nori-zk/mina-token-bridge

Version:

A Mina zk-program contract allowing users to mint tokens on Nori Bridge.

431 lines (430 loc) 25.3 kB
import { Field, PrivateKey, Provable } from 'o1js'; declare const EthDepositProgramInput_base: (new (value: { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }, { credentialAttestationHash: bigint; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { credentialAttestationHash: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; }) => { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { credentialAttestationHash: string; }; fromJSON: (x: { credentialAttestationHash: string; }) => { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { credentialAttestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; }; export declare class EthDepositProgramInput extends EthDepositProgramInput_base { } declare const EthDepositProgramOutput_base: (new (value: { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) & { _isStruct: true; } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{ totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }, { totalLocked: bigint; storageDepositRoot: bigint; attestationHash: bigint; }>, "fromFields"> & { fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; } & { fromValue: (value: { totalLocked: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; }) => { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; toInput: (x: { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }) => { totalLocked: string; storageDepositRoot: string; attestationHash: string; }; fromJSON: (x: { totalLocked: string; storageDepositRoot: string; attestationHash: string; }) => { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; empty: () => { totalLocked: import("o1js/dist/node/lib/provable/field.js").Field; storageDepositRoot: import("o1js/dist/node/lib/provable/field.js").Field; attestationHash: import("o1js/dist/node/lib/provable/field.js").Field; }; }; export declare class EthDepositProgramOutput extends EthDepositProgramOutput_base { } export declare const EthDepositProgram: { name: string; maxProofsVerified(): Promise<0 | 1 | 2>; compile: (options?: { cache?: import("o1js").Cache; forceRecompile?: boolean; proofsEnabled?: boolean; }) => Promise<{ verificationKey: { data: string; hash: Field; }; }>; verify: (proof: import("o1js").Proof<EthDepositProgramInput, EthDepositProgramOutput>) => Promise<boolean>; digest: () => Promise<string>; analyzeMethods: () => Promise<{ compute: { proofs: import("o1js/dist/node/lib/proof-system/proof.js").ProofClass[]; rows: number; digest: string; gates: import("o1js/dist/node/snarky.js").Gate[]; publicInputSize: number; print(): void; summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>; }; }>; publicInputType: typeof EthDepositProgramInput; publicOutputType: typeof EthDepositProgramOutput; privateInputTypes: { compute: [{ new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: import("@nori-zk/o1js-zk-utils").EthInput; publicOutput: import("o1js/dist/node/lib/provable/field.js").Field; maxProofsVerified: 0 | 2 | 1; }): import("o1js").Proof<import("@nori-zk/o1js-zk-utils").EthInput, import("o1js/dist/node/lib/provable/field.js").Field>; fromJSON<S extends import("o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; readonly provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>; fromValue: (x: import("o1js").Proof<any, any> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>; toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined; }; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase<any, any>): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; } & { provable: Provable<import("o1js").Proof<import("@nori-zk/o1js-zk-utils").EthInput, import("o1js/dist/node/lib/provable/field.js").Field>, import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<{ inputSlot: bigint; inputStoreHash: { bytes: { value: bigint; }[]; }; outputSlot: bigint; outputStoreHash: { bytes: { value: bigint; }[]; }; executionStateRoot: { bytes: { value: bigint; }[]; }; verifiedContractDepositsRoot: { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: { bytes: { value: bigint; }[]; }; }, bigint>>; }, { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: { rootHash: import("o1js/dist/node/lib/provable/field.js").Field; path: import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; index: import("o1js").UInt64; value: {}; }; publicOutput: import("o1js/dist/node/lib/provable/field.js").Field; maxProofsVerified: 0 | 2 | 1; }): { publicInput: { rootHash: Field; path: InstanceType<{ new (array: import("o1js/dist/node/lib/provable/field.js").Field[], length: Field): import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; readonly maxLength: number; } & Omit<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayClass<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, "provable"> & { provable: Omit<import("o1js").ProvableHashable<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, bigint[]>, "fromValue"> & { fromValue: (value: import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint> | (bigint | import("o1js/dist/node/lib/provable/field.js").Field)[]) => import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; } & Omit<import("o1js").ProvablePure<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, bigint[]>, "fromValue">; }>; index: import("o1js").UInt64; value: import("@nori-zk/o1js-zk-utils").ContractDeposit; }; publicOutput: Field; verify(): void; verifyIf(condition: import("o1js").Bool): void; proof: import("o1js/dist/node/snarky.js").Pickles.Proof; maxProofsVerified: 0 | 1 | 2; shouldVerify: import("o1js/dist/node/lib/provable/bool.js").Bool; declare(): boolean; toJSON(): import("o1js").JsonProof; publicFields(): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; }; fromJSON<S extends import("o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>; fromValue: (x: import("o1js").Proof<any, any> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>; toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined; } & Provable<import("o1js").Proof<{ rootHash: import("o1js/dist/node/lib/provable/field.js").Field; path: import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; index: import("o1js").UInt64; value: {}; }, import("o1js/dist/node/lib/provable/field.js").Field>, import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<{ rootHash: bigint; path: bigint[]; index: bigint; value: {}; }, bigint>>; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase<any, any>): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; }]; }; auxiliaryOutputTypes: { compute: undefined; }; rawMethods: { compute: (publicInput: EthDepositProgramInput, args_0: import("o1js").Proof<import("@nori-zk/o1js-zk-utils").EthInput, import("o1js/dist/node/lib/provable/field.js").Field>, args_1: { publicInput: { rootHash: Field; path: InstanceType<{ new (array: import("o1js/dist/node/lib/provable/field.js").Field[], length: Field): import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; readonly maxLength: number; } & Omit<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayClass<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, "provable"> & { provable: Omit<import("o1js").ProvableHashable<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, bigint[]>, "fromValue"> & { fromValue: (value: import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint> | (bigint | import("o1js/dist/node/lib/provable/field.js").Field)[]) => import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; } & Omit<import("o1js").ProvablePure<import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>, bigint[]>, "fromValue">; }>; index: import("o1js").UInt64; value: import("@nori-zk/o1js-zk-utils").ContractDeposit; }; publicOutput: Field; verify(): void; verifyIf(condition: import("o1js").Bool): void; proof: import("o1js/dist/node/snarky.js").Pickles.Proof; maxProofsVerified: 0 | 1 | 2; shouldVerify: import("o1js/dist/node/lib/provable/bool.js").Bool; declare(): boolean; toJSON(): import("o1js").JsonProof; publicFields(): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; }) => Promise<{ publicOutput: EthDepositProgramOutput; }>; }; Proof: { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: import("o1js/dist/node/snarky.js").Pickles.Proof; publicInput: EthDepositProgramInput; publicOutput: EthDepositProgramOutput; maxProofsVerified: 0 | 1 | 2; }): import("o1js").Proof<EthDepositProgramInput, EthDepositProgramOutput>; fromJSON<S extends import("o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 1 | 2, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; readonly provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any>) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>; fromValue: (x: import("o1js").Proof<any, any> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>; toCanonical?: (x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>; }; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: import("o1js/dist/node/snarky.js").Base64ProofString, maxProofsVerified: 0 | 1 | 2): unknown; _proofToBase64(proof: import("o1js/dist/node/snarky.js").Pickles.Proof, maxProofsVerified: 0 | 1 | 2): string; }; proofsEnabled: boolean; setProofsEnabled(proofsEnabled: boolean): void; } & { compute: (publicInput: EthDepositProgramInput | { credentialAttestationHash: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field; }, args_0: import("o1js").Proof<import("@nori-zk/o1js-zk-utils").EthInput, import("o1js/dist/node/lib/provable/field.js").Field> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<{ inputSlot: bigint; inputStoreHash: { bytes: { value: bigint; }[]; }; outputSlot: bigint; outputStoreHash: { bytes: { value: bigint; }[]; }; executionStateRoot: { bytes: { value: bigint; }[]; }; verifiedContractDepositsRoot: { bytes: { value: bigint; }[]; }; nextSyncCommitteeHash: { bytes: { value: bigint; }[]; }; }, bigint>, args_1: import("o1js").Proof<{ rootHash: import("o1js/dist/node/lib/provable/field.js").Field; path: import("mina-attestations/build/src/dynamic/dynamic-array.js").DynamicArrayBase<import("o1js/dist/node/lib/provable/field.js").Field, bigint>; index: import("o1js").UInt64; value: {}; }, import("o1js/dist/node/lib/provable/field.js").Field> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<{ rootHash: bigint; path: bigint[]; index: bigint; value: {}; }, bigint>) => Promise<{ proof: import("o1js").Proof<EthDepositProgramInput, EthDepositProgramOutput>; auxiliaryOutput: undefined; }>; }; export declare const EthDepositProgramProof: { new ({ proof, publicInput, publicOutput, maxProofsVerified, }: { proof: unknown; publicInput: EthDepositProgramInput; publicOutput: EthDepositProgramOutput; maxProofsVerified: 0 | 2 | 1; }): import("o1js").Proof<EthDepositProgramInput, EthDepositProgramOutput>; fromJSON<S extends import("o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>; dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>; readonly provable: { toFields: (value: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/provable/field.js").Field[]; toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[]; fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>; sizeInFields(): number; check: (value: import("o1js").Proof<any, any>) => void; toValue: (x: import("o1js").Proof<any, any>) => import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>; fromValue: (x: import("o1js").Proof<any, any> | import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>; toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined; }; publicInputType: import("o1js").FlexibleProvable<any>; publicOutputType: import("o1js").FlexibleProvable<any>; tag: () => { name: string; }; publicFields(value: import("o1js").ProofBase<any, any>): { input: import("o1js/dist/node/lib/provable/field.js").Field[]; output: import("o1js/dist/node/lib/provable/field.js").Field[]; }; _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown; _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string; } & { provable: Provable<import("o1js").Proof<EthDepositProgramInput, EthDepositProgramOutput>, import("o1js/dist/node/lib/proof-system/proof.js").ProofValue<{ credentialAttestationHash: bigint; }, { totalLocked: bigint; storageDepositRoot: bigint; attestationHash: bigint; }>>; }; export declare class EthDepositProgramProofType extends EthDepositProgramProof { } export declare function compilePreRequisites(): Promise<void>; export declare function deployAndVerifyEcdsaSigPresentationVerifier(zkAppPrivateKey: PrivateKey, senderPrivateKey: PrivateKey, presentationJSON: string): Promise<void>; export {};