Minimal Anti Collusion Infrastructure (MACI) / PCommand
Class: PCommand
Defined in: commands/PCommand.ts:32
Notice
Unencrypted data whose fields include the user's public key, vote etc. This represents a Vote command.
Constructors
new PCommand()
new PCommand(
stateIndex
,newPubKey
,voteOptionIndex
,newVoteWeight
,nonce
,pollId
,salt
):PCommand
Defined in: commands/PCommand.ts:57
Create a new PCommand
Parameters
stateIndex
bigint
the state index of the user
newPubKey
the new public key of the user
voteOptionIndex
bigint
the index of the vote option
newVoteWeight
bigint
the new vote weight of the user
nonce
bigint
the nonce of the message
pollId
bigint
the poll ID
salt
bigint
= ...
the salt of the message
Returns
Properties
newPubKey
newPubKey:
PubKey
Defined in: commands/PCommand.ts:35
newVoteWeight
newVoteWeight:
bigint
Defined in: commands/PCommand.ts:39
nonce
nonce:
bigint
Defined in: commands/PCommand.ts:41
pollId
pollId:
bigint
Defined in: commands/PCommand.ts:43
salt
salt:
bigint
Defined in: commands/PCommand.ts:45
stateIndex
stateIndex:
bigint
Defined in: commands/PCommand.ts:33
voteOptionIndex
voteOptionIndex:
bigint
Defined in: commands/PCommand.ts:37
Methods
asArray()
asArray():
bigint
[]
Defined in: commands/PCommand.ts:103
Returns
bigint
[]
bigint[] - the command as an array
Notice
Returns this Command as an array. Note that 5 of the Command's fields are packed into a single 250-bit value. This allows Messages to be smaller and thereby save gas when the user publishes a message.
asCircuitInputs()
asCircuitInputs():
bigint
[]
Defined in: commands/PCommand.ts:119
Returns
bigint
[]
copy()
copy<
T
>():T
Defined in: commands/PCommand.ts:86
Create a deep clone of this PCommand
Type Parameters
• T extends PCommand
Returns
T
a copy of the PCommand
encrypt()
encrypt(
signature
,sharedKey
):Message
Defined in: commands/PCommand.ts:158
Parameters
signature
Signature
sharedKey
EcdhSharedKey
Returns
Notice
Encrypts this command along with a signature to produce a Message. To save gas, we can constrain the following values to 50 bits and pack them into a 250-bit value: 0. state index 3. vote option index 4. new vote weight 5. nonce 6. poll ID
equals()
equals(
command
):boolean
Defined in: commands/PCommand.ts:124
Parameters
command
Returns
boolean
hash()
hash():
bigint
Defined in: commands/PCommand.ts:133
Returns
bigint
sign()
sign(
privKey
):Signature
Defined in: commands/PCommand.ts:138
Parameters
privKey
Returns
Signature
Notice
Signs this command and returns a Signature.
toJSON()
toJSON():
IJsonPCommand
Defined in: commands/PCommand.ts:224
Serialize into a JSON object
Returns
verifySignature()
verifySignature(
signature
,pubKey
):boolean
Defined in: commands/PCommand.ts:145
Parameters
signature
Signature
pubKey
Returns
boolean
Notice
Returns true if the given signature is a correct signature of this command and signed by the private key associated with the given public key.
decrypt()
static
decrypt(message
,sharedKey
,force
):IDecryptMessage
Defined in: commands/PCommand.ts:178
Decrypts a Message to produce a Command.
Parameters
message
the message to decrypt
sharedKey
EcdhSharedKey
the shared key to use for decryption
force
boolean
= false
whether to force decryption or not
Returns
IDecryptMessage
Dev
You can force decrypt the message by setting force
to true.
This is useful in case you don't want an invalid message to throw an error.
fromJSON()
static
fromJSON(json
):PCommand
Defined in: commands/PCommand.ts:241
Deserialize into a PCommand instance
Parameters
json
Returns
a PCommand instance