Skip to main content
Version: v2.x

Minimal Anti Collusion Infrastructure (MACI) / PubKey

Class: PubKey

Defined in: publicKey.ts:17

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

Defined in: publicKey.ts:30

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

Properties

rawPubKey

rawPubKey: PubKey

Defined in: publicKey.ts:18

Methods

asArray()

asArray(): bigint[]

Defined in: publicKey.ts:66

Return this public key as an array of bigints

Returns

bigint[]

the public key as an array of bigints


asCircuitInputs()

asCircuitInputs(): string[]

Defined in: publicKey.ts:60

Return this public key as circuit inputs

Returns

string[]

an array of strings


asContractParam()

asContractParam(): IG1ContractParams

Defined in: publicKey.ts:47

Return this public key as smart contract parameters

Returns

IG1ContractParams

the public key as smart contract parameters


copy()

copy(): PubKey

Defined in: publicKey.ts:41

Create a copy of the public key

Returns

PubKey

a copy of the public key


equals()

equals(p): boolean

Defined in: publicKey.ts:93

Check whether this public key equals to another public key

Parameters

p

PubKey

the public key to compare with

Returns

boolean

whether they match


hash()

hash(): bigint

Defined in: publicKey.ts:86

Hash the two baby jubjub coordinates

Returns

bigint

the hash of this public key


serialize()

serialize(): string

Defined in: publicKey.ts:72

Generate a serialized public key from this public key object

Returns

string

the string representation of a serialized public key


toJSON()

toJSON(): IJsonPublicKey

Defined in: publicKey.ts:124

Serialize this object

Returns

IJsonPublicKey


deserialize()

static deserialize(s): PubKey

Defined in: publicKey.ts:100

Deserialize a serialized public key

Parameters

s

string

the serialized public key

Returns

PubKey

the deserialized public key


fromJSON()

static fromJSON(json): PubKey

Defined in: publicKey.ts:135

Deserialize a JSON object into a PubKey instance

Parameters

json

IJsonPublicKey

the json object

Returns

PubKey

PubKey


genPadKey()

static genPadKey(): PubKey

Defined in: publicKey.ts:143

Generate a default pad key

Returns

PubKey

a default pad key


isValidSerializedPubKey()

static isValidSerializedPubKey(s): boolean

Defined in: publicKey.ts:110

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