Skip to main content
Version: v2.0_alpha

PCommand

Notice

Unencrypted data whose fields include the user's public key, vote etc. This represents a Vote command.

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new PCommand(stateIndex, newPubKey, voteOptionIndex, newVoteWeight, nonce, pollId, salt?): PCommand

Create a new PCommand

Parameters

NameTypeDescription
stateIndexbigintthe state index of the user
newPubKeyPubKeythe new public key of the user
voteOptionIndexbigintthe index of the vote option
newVoteWeightbigintthe new vote weight of the user
noncebigintthe nonce of the message
pollIdbigintthe poll ID
saltbigintthe salt of the message

Returns

PCommand

Defined in

commands/PCommand.ts:57

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[]

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.

Defined in

commands/PCommand.ts:103


asCircuitInputs

asCircuitInputs(): bigint[]

Returns

bigint[]

Defined in

commands/PCommand.ts:119


copy

copy<T>(): T

Create a deep clone of this PCommand

Type parameters

NameType
Textends PCommand

Returns

T

a copy of the PCommand

Defined in

commands/PCommand.ts:86


encrypt

encrypt(signature, sharedKey): Message

Parameters

NameType
signatureSignature<SnarkBigNumber>
sharedKeyEcdhSharedKey

Returns

Message

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

Defined in

commands/PCommand.ts:158


equals

equals(command): boolean

Parameters

NameType
commandPCommand

Returns

boolean

Defined in

commands/PCommand.ts:124


hash

hash(): bigint

Returns

bigint

Defined in

commands/PCommand.ts:133


sign

sign(privKey): Signature<SnarkBigNumber>

Parameters

NameType
privKeyPrivKey

Returns

Signature<SnarkBigNumber>

Notice

Signs this command and returns a Signature.

Defined in

commands/PCommand.ts:138


toJSON

toJSON(): IJsonPCommand

Serialize into a JSON object

Returns

IJsonPCommand

Defined in

commands/PCommand.ts:224


verifySignature

verifySignature(signature, pubKey): boolean

Parameters

NameType
signatureSignature<SnarkBigNumber>
pubKeyPubKey

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.

Defined in

commands/PCommand.ts:145


decrypt

decrypt(message, sharedKey, force?): IDecryptMessage

Decrypts a Message to produce a Command.

Parameters

NameTypeDefault valueDescription
messageMessageundefinedthe message to decrypt
sharedKeyEcdhSharedKeyundefinedthe shared key to use for decryption
forcebooleanfalsewhether 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.

Defined in

commands/PCommand.ts:178


fromJSON

fromJSON(json): PCommand

Deserialize into a PCommand instance

Parameters

NameType
jsonIJsonPCommand

Returns

PCommand

a PCommand instance

Defined in

commands/PCommand.ts:241