import { EddsaPublicKey } from '@sismo-core/crypto'; export * from '@sismo-core/crypto'; import { KVMerkleTree } from '@sismo-core/kv-merkle-tree'; export * from '@sismo-core/kv-merkle-tree'; import { BigNumber, BigNumberish } from 'ethers'; declare type ProofGroth16 = { pi_a: [BigNumber, BigNumber]; pi_b: [[BigNumber, BigNumber], [BigNumber, BigNumber]]; pi_c: [BigNumber, BigNumber]; }; declare class SnarkProof { input: BigNumber[]; a: [BigNumber, BigNumber]; b: [[BigNumber, BigNumber], [BigNumber, BigNumber]]; c: [BigNumber, BigNumber]; constructor(input: BigNumber[], proof: ProofGroth16); toBytes(): string; } declare type PrivateInputs = { sourceIdentifier: BigInt; sourceSecret: BigInt; sourceVaultNamespace: BigInt; vaultSecret: BigInt; sourceCommitmentReceipt: BigInt[]; destinationVaultNamespace: BigInt; destinationSecret: BigInt; destinationCommitmentReceipt: BigInt[]; accountMerklePathElements: BigInt[]; accountMerklePathIndices: number[]; accountsTreeRoot: BigInt; registryMerklePathElements: BigInt[]; registryMerklePathIndices: number[]; sourceValue: BigInt; }; declare type PublicInputs = { vaultIdentifier: BigInt; vaultNamespace: BigInt; commitmentMapperPubKey: BigInt[]; registryTreeRoot: BigInt; requestIdentifier: BigInt; proofIdentifier: BigInt; destinationIdentifier: BigInt; claimValue: BigInt; accountsTreeValue: BigInt; claimComparator: BigInt; sourceVerificationEnabled: BigInt; destinationVerificationEnabled: BigInt; extraData: BigInt; }; declare type Inputs = { privateInputs: PrivateInputs; publicInputs: PublicInputs; }; declare type CircuitPath = { wasmPath: string; zkeyPath: string; } | null; declare type HydraS3Account = { identifier: BigNumberish; secret: BigNumberish; commitmentReceipt: [BigNumberish, BigNumberish, BigNumberish]; }; declare type VaultAccount = { identifier: BigNumberish; secret: BigNumberish; namespace: BigNumberish; }; declare type SourceInput = (HydraS3Account | VaultAccount) & { verificationEnabled: boolean; }; declare type VaultInput = { secret: BigNumberish; namespace?: BigNumberish; }; declare type ClaimInput = { value?: BigNumberish; comparator?: number; registryTree: KVMerkleTree; accountsTree: KVMerkleTree; }; declare type DestinationInput = (HydraS3Account | VaultAccount) & { verificationEnabled: boolean; }; declare type UserParams = { vault?: VaultInput; source?: SourceInput; destination?: DestinationInput; claim?: ClaimInput; requestIdentifier?: BigNumberish; extraData?: BigNumberish; }; declare type formattedUserParams = { vaultSecret: BigInt; vaultNamespace: BigInt; vaultIdentifier: BigInt; sourceVaultNamespace: BigInt; sourceIdentifier: BigInt; sourceSecret: BigInt; sourceCommitmentReceipt: BigInt[]; destinationVaultNamespace: BigInt; destinationIdentifier: BigInt; destinationSecret: BigInt; destinationCommitmentReceipt: BigInt[]; claimValue: BigInt; requestIdentifier: BigInt; proofIdentifier: BigInt; claimComparator: BigInt; sourceVerificationEnabled: BigInt; destinationVerificationEnabled: BigInt; extraData: BigInt; }; declare class HydraS3Prover { private commitmentMapperPubKey; private esmOverrideCircuitPath; constructor(commitmentMapperPubKey: EddsaPublicKey, esmOverrideCircuitPath?: CircuitPath); format({ vault, source, destination, claim, requestIdentifier: requestIdentifierInput, extraData: extraDataInput, }: UserParams): Promise; generateInputs({ vault, source, destination, claim, requestIdentifier: requestIdentifierParam, extraData: extraDataInput, }: UserParams): Promise; userParamsValidation({ vault, source, destination, claim, requestIdentifier: requestIdentifierParam, }: UserParams): Promise; generateSnarkProof({ vault, source, destination, claim, requestIdentifier, extraData, }: UserParams): Promise; } declare const ACCOUNTS_TREE_HEIGHT = 20; declare const REGISTRY_TREE_HEIGHT = 20; declare const zkeyPath: string | null; declare const wasmPath: string | null; declare class HydraS3Verifier { static verifyProof(a: BigNumberish[], b: BigNumberish[][], c: BigNumberish[], input: BigNumberish[]): Promise; } export { ACCOUNTS_TREE_HEIGHT, CircuitPath, ClaimInput, DestinationInput, HydraS3Account, HydraS3Prover, HydraS3Verifier, Inputs, PrivateInputs, PublicInputs, REGISTRY_TREE_HEIGHT, SnarkProof, SourceInput, UserParams, VaultAccount, VaultInput, formattedUserParams, wasmPath, zkeyPath };