Skip to main content
Version: v1.3_alpha

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

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new PubKey(rawPubKey, allowInvalid?): PubKey

Create a new instance of a public key

Parameters

NameTypeDefault valueDescription
rawPubKeyPubKeyundefinedthe raw public key
allowInvalidbooleanfalsewhether 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

NameTypeDescription
pPubKeythe 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

deserialize(s): PubKey

Deserialize a serialized public key

Parameters

NameTypeDescription
sstringthe serialized public key

Returns

PubKey

the deserialized public key

Defined in

publicKey.ts:100


fromJSON

fromJSON(json): PubKey

Deserialize a JSON object into a PubKey instance

Parameters

NameTypeDescription
jsonIJsonPublicKeythe json object

Returns

PubKey

PubKey

Defined in

publicKey.ts:135


isValidSerializedPubKey

isValidSerializedPubKey(s): boolean

Check whether a serialized public key is serialized correctly

Parameters

NameTypeDescription
sstringthe serialized public key

Returns

boolean

whether the serialized public key is valid

Defined in

publicKey.ts:110