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
Name | Type | Description |
---|---|---|
stateIndex | bigint | the state index of the user |
newPubKey | PubKey | 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
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
Name | Type |
---|---|
T | extends PCommand |
Returns
T
a copy of the PCommand
Defined in
commands/PCommand.ts:86
encrypt
▸ encrypt(signature
, sharedKey
): Message
Parameters
Name | Type |
---|---|
signature | Signature <SnarkBigNumber > |
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
Defined in
commands/PCommand.ts:158
equals
▸ equals(command
): boolean
Parameters
Name | Type |
---|---|
command | PCommand |
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
Name | Type |
---|---|
privKey | PrivKey |
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
Defined in
commands/PCommand.ts:224
verifySignature
▸ verifySignature(signature
, pubKey
): boolean
Parameters
Name | Type |
---|---|
signature | Signature <SnarkBigNumber > |
pubKey | 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.
Defined in
commands/PCommand.ts:145
decrypt
▸ decrypt(message
, sharedKey
, force?
): IDecryptMessage
Decrypts a Message to produce a Command.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
message | Message | undefined | the message to decrypt |
sharedKey | EcdhSharedKey | undefined | 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.
Defined in
commands/PCommand.ts:178
fromJSON
▸ fromJSON(json
): PCommand
Deserialize into a PCommand instance
Parameters
Name | Type |
---|---|
json | IJsonPCommand |
Returns
a PCommand instance
Defined in
commands/PCommand.ts:241