import { CircuitConfig } from './CircuitConfig'; import { SnarkProof } from '@unirep/utils'; import { EpochKeyControl, Field, ReputationControl, SignupControl, UserStateTransitionControl } from './type'; /** * Format snark proof for verifier smart contract * @param proof The proof of `SnarkProof` type * @returns An one dimensional array of stringified proof data */ export declare const formatProofForVerifierContract: (proof: SnarkProof) => string[]; /** * Format an one dimensional array for `snarkjs` verification * @param proof The string array of the proof * @returns The `SnarkProof` type proof data */ export declare const formatProofForSnarkjsVerification: (proof: Field[]) => SnarkProof; /** * Shift `shiftBits` bits and compute the **AND** operation in `variableBits` bits `data`. * For example, Get `data` from LSB `20` to `30` bits. * Then use `shiftBits(data, 20, 10)` to get the `10` bits data. * @param data The raw data in `bigint` type. * @param shiftBits The shifted bits. * @param variableBits The output data bits. */ export declare const shiftBits: (data: bigint, shiftBits: bigint, variableBits: bigint) => bigint; /** * Decode the raw control field to desired data. * @param control The raw control field generated by `genProofAndPublicSignals` * @param config The circuit config. Default: `CircuitConfig.default` * @returns \{ `nonce`, `epoch`, `attesterId`, `revealNonce`, `chainId` \} */ export declare const decodeEpochKeyControl: (control: bigint, config?: CircuitConfig) => EpochKeyControl; /** * Decode the raw control field to desired data. * @param control The raw control field generated by `genProofAndPublicSignals` * @param config The circuit config. Default: `CircuitConfig.default` * @returns \{ `minRep`, `maxRep`, `proveMinRep`, `proveMaxRep`, `proveZeroRep`, `proveGraffiti` \} */ export declare const decodeReputationControl: (control: bigint, config?: CircuitConfig) => { minRep: bigint; maxRep: bigint; proveMinRep: bigint; proveMaxRep: bigint; proveZeroRep: bigint; proveGraffiti: bigint; }; /** * Decode the raw control field to desired data. * @param control The raw control field generated by `genProofAndPublicSignals` * @param config The circuit config. Default: `CircuitConfig.default` * @returns \{ `attesterId`, `toEpoch` \} */ export declare const decodeUserStateTransitionControl: (control: bigint, config?: CircuitConfig) => UserStateTransitionControl; /** * Decode the raw control field to desired data. * @param control The raw control field generated by `genProofAndPublicSignals` * @param config The circuit config. Default: `CircuitConfig.default` * @returns \{ `attesterId`, `epoch`, `chainId` \} */ export declare const decodeSignupControl: (control: bigint, config?: CircuitConfig) => SignupControl; /** * Encode data to a 253 bits variable. * @param params The data is going to be encoded. \{ `nonce`, `epoch`, `attesterId`, `revealNonce`, `chainId` \} * @param config The circuit config. Default: `CircuitConfig.default` * @returns a 253 bits control. */ export declare const buildEpochKeyControl: (params: EpochKeyControl, config?: CircuitConfig) => bigint; /** * Encode data to a 253 bits variable. * @param params The data is going to be encoded. \{ `minRep`, `maxRep`, `proveMinRep`, `proveMaxRep`, `proveZeroRep`, `proveGraffiti` \} * @param config The circuit config. Default: `CircuitConfig.default` * @returns a 253 bits control. */ export declare const buildReputationControl: (params: ReputationControl, config?: CircuitConfig) => bigint; /** * Encode data to a 253 bits variable. * @param params The data is going to be encoded. \{ `attesterId`, `toEpoch` \} * @param config The circuit config. Default: `CircuitConfig.default` * @returns a 253 bits control. */ export declare const buildUserStateTransitionControl: (params: UserStateTransitionControl, config?: CircuitConfig) => bigint; /** * Encode data to a 253 bits variable. * @param params The data is going to be encoded. \{ `attesterId`, `epoch`, `chainId` \} * @param config The circuit config. Default: `CircuitConfig.default` * @returns a 253 bits control. */ export declare const buildSignupControl: (params: SignupControl, config?: CircuitConfig) => bigint;