Unirep contract deployment
Import the deployment functions with:
import { deployUnirep } from '@unirep/contracts/deploy'
deployUnirep
Deploy Unirep.sol and its verifiers and connect libraries.
const deployUnirep = async (
deployer: ethers.Signer,
_settings: CircuitConfig = CircuitConfig.default,
prover?: Prover
): Promise<Unirep>
For example:
import { ethers } from 'ethers'
import { Unirep } from '@unirep/contracts'
import { deployUnirep } from '@unirep/contracts/deploy'
const privateKey = 'YOUR/PRIVATE/KEY'
const provider = 'YOUR/ETH/PROVIDER'
const deployer = new ethers.Wallet(privateKey, provider);
const unirepContract: Unirep = await deployUnirep(deployer)
caution
The default circuit configuration is set in CircuitConfig.ts.
Please make sure the CircuitConfig matches your prover.
If you don't compile circuits on your own, please don't change the _settings and prover.
See the current prover and settings of deployed contracts: 🤝 Testnet Deployment.
deployVerifier
Deploy a given circuit verifier. The verifier is with a certain interface: IVerifier.sol.
const deployVerifier = async (
deployer: ethers.Signer,
circuit: Circuit | string,
prover?: Prover
): Promise<ethers.Contract>
deployVerifiers
Deploy all known circuit verifiers.
const deployVerifiers = async (
deployer: ethers.Signer,
prover?: Prover
): Promise<{ [circuit: string]: Promise<string> }>
deployVerifierHelpers
Deploy all known circuit verifier helpers. A helper can help with decoding public signals. For example: EpochKeyVerifierHelper.sol
const deployVerifierHelpers = async (
deployer: ethers.Signer,
prover?: Prover
)
deployVerifierHelper
Deploy a given circuit verifier helper.
const deployVerifierHelper = async (
deployer: ethers.Signer,
circuit: Circuit,
prover?: Prover
): Promise<ethers.Contract>