2024-04-29 18:55:15 +03:00
|
|
|
import type { Element } from '@tornado/fixed-merkle-tree';
|
|
|
|
import type { AddressLike, BytesLike, BigNumberish } from 'ethers';
|
|
|
|
export type snarkInputs = {
|
|
|
|
root: Element;
|
|
|
|
nullifierHex: string;
|
|
|
|
recipient: AddressLike;
|
|
|
|
relayer: AddressLike;
|
|
|
|
fee: bigint;
|
|
|
|
refund: bigint;
|
|
|
|
nullifier: bigint;
|
|
|
|
secret: bigint;
|
|
|
|
pathElements: Element[];
|
|
|
|
pathIndices: Element[];
|
|
|
|
};
|
|
|
|
export type snarkArgs = [
|
|
|
|
_root: BytesLike,
|
|
|
|
_nullifierHash: BytesLike,
|
|
|
|
_recipient: AddressLike,
|
|
|
|
_relayer: AddressLike,
|
|
|
|
_fee: BigNumberish,
|
|
|
|
_refund: BigNumberish
|
|
|
|
];
|
|
|
|
export type snarkProofs = {
|
|
|
|
proof: BytesLike;
|
|
|
|
args: snarkArgs;
|
|
|
|
};
|
2024-04-30 19:55:51 +03:00
|
|
|
export declare function initGroth16(): Promise<void>;
|
2024-04-29 18:55:15 +03:00
|
|
|
export declare function calculateSnarkProof(input: snarkInputs, circuit: object, provingKey: ArrayBuffer): Promise<snarkProofs>;
|