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
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
the public key as smart contract parameters
copy()
copy():
PubKey
Defined in: publicKey.ts:41
Create a copy of the public key
Returns
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
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
deserialize()
static
deserialize(s
):PubKey
Defined in: publicKey.ts:100
Deserialize a serialized public key
Parameters
s
string
the serialized public key
Returns
the deserialized public key
fromJSON()
static
fromJSON(json
):PubKey
Defined in: publicKey.ts:135
Deserialize a JSON object into a PubKey instance
Parameters
json
the json object
Returns
PubKey
genPadKey()
static
genPadKey():PubKey
Defined in: publicKey.ts:143
Generate a default pad key
Returns
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