Skip to main content
Version: v2.x

Minimal Anti Collusion Infrastructure (MACI) v2.5.0 / PubKey

Class: PubKey

Notice

A class representing a public key This is a MACI public key, which is not to be confused with an Ethereum public key. A serialized MACI public key is prefixed by 'macipk.' A raw MACI public key can be thought as a pair of BigIntegers (x, y) representing a point on the baby jubjub curve

Constructors

new PubKey()

new PubKey(rawPubKey, allowInvalid): PubKey

Create a new instance of a public key

Parameters

rawPubKey: PubKey

the raw public key

allowInvalid: boolean = false

whether to allow invalid public keys

Returns

PubKey

Dev

You might want to allow an invalid raw key, as when decrypting invalid messages, the public key data will be random, and likely not be a point on the curve. However we need to match keys to the circuit which does not perform such checks

Defined in

publicKey.ts:30

Properties

rawPubKey

rawPubKey: PubKey

Defined in

publicKey.ts:18

Methods

asArray()

asArray(): bigint[]

Return this public key as an array of bigints

Returns

bigint[]

the public key as an array of bigints

Defined in

publicKey.ts:66


asCircuitInputs()

asCircuitInputs(): string[]

Return this public key as circuit inputs

Returns

string[]

an array of strings

Defined in

publicKey.ts:60


asContractParam()

asContractParam(): IG1ContractParams

Return this public key as smart contract parameters

Returns

IG1ContractParams

the public key as smart contract parameters

Defined in

publicKey.ts:47


copy()

copy(): PubKey

Create a copy of the public key

Returns

PubKey

a copy of the public key

Defined in

publicKey.ts:41


equals()

equals(p): boolean

Check whether this public key equals to another public key

Parameters

p: PubKey

the public key to compare with

Returns

boolean

whether they match

Defined in

publicKey.ts:93


hash()

hash(): bigint

Hash the two baby jubjub coordinates

Returns

bigint

the hash of this public key

Defined in

publicKey.ts:86


serialize()

serialize(): string

Generate a serialized public key from this public key object

Returns

string

the string representation of a serialized public key

Defined in

publicKey.ts:72


toJSON()

toJSON(): IJsonPublicKey

Serialize this object

Returns

IJsonPublicKey

Defined in

publicKey.ts:124


deserialize()

static deserialize(s): PubKey

Deserialize a serialized public key

Parameters

s: string

the serialized public key

Returns

PubKey

the deserialized public key

Defined in

publicKey.ts:100


fromJSON()

static fromJSON(json): PubKey

Deserialize a JSON object into a PubKey instance

Parameters

json: IJsonPublicKey

the json object

Returns

PubKey

PubKey

Defined in

publicKey.ts:135


genPadKey()

static genPadKey(): PubKey

Generate a default pad key

Returns

PubKey

a default pad key

Defined in

publicKey.ts:143


isValidSerializedPubKey()

static isValidSerializedPubKey(s): boolean

Check whether a serialized public key is serialized correctly

Parameters

s: string

the serialized public key

Returns

boolean

whether the serialized public key is valid

Defined in

publicKey.ts:110