import { Prover } from './type'; import { SnarkProof } from '@unirep/utils'; import { BaseProof } from './BaseProof'; /** * A class representing a [signup proof](https://developer.unirep.io/docs/circuits-api/classes/src.SignupProof). Each of the following properties are public signals for the proof. */ export declare class SignupProof extends BaseProof { /** * The index of the data in the public signals */ readonly idx: { identityCommitment: number; stateTreeLeaf: number; control: number; }; /** * The [identity commitment](https://semaphore.pse.dev/docs/glossary#identity-commitment) for the user signing up. */ identityCommitment: bigint; /** * The new state tree leaf for the user. This leaf will contain values for [data](https://developer.unirep.io/docs/protocol/data.md). */ stateTreeLeaf: bigint; /** * The control field used for the proof. This field contains many signals binary encoded into a single 253 bit value. This value is automatically decoded into the other properties on this class. */ control: bigint; /** * The attester id for the proof. */ attesterId: bigint; /** * The epoch the proof was made within. */ epoch: bigint; /** * The chain id for the proof. */ chainId: bigint; /** * @param publicSignals The public signals of the user sign up proof that can be verified by the prover * @param proof The proof that can be verified by the prover * @param prover The prover that can verify the public signals and the proof * @example * ```ts * import { SignupProof } from '@unirep/circuits' * const data = new SignupProof(publicSignals, proof) * ``` */ constructor(publicSignals: (bigint | string)[], proof: SnarkProof, prover?: Prover); /** * Pack several variables into one `bigint` variable. * @param config The variables that will be packed. * @returns The control * @example * ```ts * SignupProof.buildControl({ * epoch, * attesterId, * chainId * }) * ``` */ static buildControl({ attesterId, epoch, chainId }: any): bigint; }