Class: ScopeNullifierProof
src.ScopeNullifierProof
A class representing a scope nullifier proof. Each of the following properties are public signals for the proof.
Hierarchy
↳
ScopeNullifierProof
Constructors
constructor
• new ScopeNullifierProof(publicSignals
, proof
, prover?
)
Parameters
Name | Type | Description |
---|---|---|
publicSignals | (string | bigint )[] | The public signals of the prevent double action proof that can be verified by the prover |
proof | Groth16Proof | The proof that can be verified by the prover |
prover? | Prover | The prover that can verify the public signals and the proof |
Example
import { ScopeNullifierProof } from '@unirep/circuits'
const data = new ScopeNullifierProof(publicSignals, proof)
Overrides
Defined in
circuits/src/ScopeNullifierProof.ts:79
Properties
_snarkProof
• Readonly
_snarkProof: Groth16Proof
The proof data in Groth16Proof
format. Use this when manually verifying with snarkjs
.
Inherited from
Defined in
attesterId
• attesterId: bigint
The attester id for the proof.
Defined in
circuits/src/ScopeNullifierProof.ts:59
chainId
• chainId: bigint
The chain id for the proof.
Defined in
circuits/src/ScopeNullifierProof.ts:67
circuit
• Protected
Optional
circuit: Circuit
The string name of the type of circuit this proof came from. For the BaseProof
class this is undefined.
Inherited from
Defined in
control
• control: 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.
Defined in
circuits/src/ScopeNullifierProof.ts:34
epoch
• epoch: bigint
The epoch the proof was made within.
Defined in
circuits/src/ScopeNullifierProof.ts:55
epochKey
• epochKey: bigint
The epoch key being proved.
Defined in
circuits/src/ScopeNullifierProof.ts:25
idx
• Readonly
idx: Object
The index of the data in the public signals
Type declaration
Name | Type |
---|---|
control | number |
epochKey | number |
nullifier | number |
scope | number |
sigData | number |
stateTreeRoot | number |
Defined in
circuits/src/ScopeNullifierProof.ts:13
nonce
• nonce: bigint
The nonce used to generate the epoch key. To determine if this value is set check that revealNonce == 1
.
Defined in
circuits/src/ScopeNullifierProof.ts:51
nullifier
• nullifier: bigint
The nullifier for the proof, which is computed by hash(scope, identitySecret)
in circuit
Defined in
circuits/src/ScopeNullifierProof.ts:38
proof
• proof: bigint
[]
The proof data formatted as string[]
. Use this property when interacting with smart contracts.
Inherited from
Defined in
prover
• Optional
prover: Prover
The Prover
object.
Inherited from
Defined in
publicSignals
• Readonly
publicSignals: bigint
[]
The raw array of public signals for the proof.
Inherited from
Defined in
revealNonce
• revealNonce: bigint
A number indicating whether the epoch key nonce was revealed in the proof. This value will be either 1
or 0
.
Defined in
circuits/src/ScopeNullifierProof.ts:63
scope
• scope: bigint
The scope for the proof, which indicates the user will take action on which event/scope.
Defined in
circuits/src/ScopeNullifierProof.ts:46
sigData
• sigData: bigint
The 32 byte data endorsed by the proof.
Defined in
circuits/src/ScopeNullifierProof.ts:42
stateTreeRoot
• stateTreeRoot: bigint
The state tree root the proof was made against. This should be verified to exist onchain when verifying the proof.
Defined in
circuits/src/ScopeNullifierProof.ts:30
Methods
verify
▸ verify(): Promise
<boolean
>
A function to verify the proof with the supplied Prover
.
The prover
property must be set either in the constructor or manually, otherwise this will throw.
Returns
Promise
<boolean
>
True if the proof is valid, false otherwise
Example
const isValid: boolean = await proof.verify()
Inherited from
Defined in
buildControl
▸ Static
buildControl(config
): bigint
Pack several variables into one bigint
variable.
Parameters
Name | Type | Description |
---|---|---|
config | EpochKeyControl | The variables that will be packed. |
Returns
bigint
The control
Example
ScopeNullifierProof.buildControl({
epoch,
nonce,
attesterId,
revealNonce,
chainId
})