Minimal Anti Collusion Infrastructure (MACI) v2.0.0-alpha / Poll
Class: Poll
A representation of the Poll contract.
Implements
IPoll
Constructors
new Poll()
new Poll(
pollEndTimestamp
,coordinatorKeypair
,treeDepths
,batchSizes
,maxValues
,maciStateRef
):Poll
Constructs a new Poll object.
Parameters
• pollEndTimestamp: bigint
The Unix timestamp at which the poll ends.
• coordinatorKeypair: Keypair
The keypair of the coordinator.
• treeDepths: TreeDepths
The depths of the trees used in the poll.
• batchSizes: BatchSizes
The sizes of the batches used in the poll.
• maxValues: MaxValues
The maximum values the MACI circuits can accept.
• maciStateRef: MaciState
The reference to the MACI state.
Returns
Defined in
Poll.ts:132
Properties
actualStateTreeDepth
actualStateTreeDepth:
number
Defined in
Poll.ts:66
ballotTree?
optional
ballotTree:IncrementalQuinTree
Defined in
Poll.ts:72
ballots
ballots:
Ballot
[] =[]
Defined in
Poll.ts:70
batchSizes
batchSizes:
BatchSizes
Defined in
Poll.ts:58
commands
commands:
PCommand
[] =[]
Defined in
Poll.ts:78
coordinatorKeypair
coordinatorKeypair:
Keypair
Defined in
Poll.ts:54
currentMessageBatchIndex?
optional
currentMessageBatchIndex:number
Defined in
Poll.ts:91
emptyBallot
emptyBallot:
Ballot
Defined in
Poll.ts:116
emptyBallotHash?
optional
emptyBallotHash:bigint
Defined in
Poll.ts:118
encPubKeys
encPubKeys:
PubKey
[] =[]
Defined in
Poll.ts:80
maciStateRef
maciStateRef:
MaciState
Defined in
Poll.ts:93
maxValues
maxValues:
MaxValues
Defined in
Poll.ts:60
messageTree
messageTree:
IncrementalQuinTree
Defined in
Poll.ts:76
messages
messages:
Message
[] =[]
Defined in
Poll.ts:74
numBatchesProcessed
numBatchesProcessed:
number
=0
Defined in
Poll.ts:89
numBatchesTallied
numBatchesTallied:
number
=0
Defined in
Poll.ts:110
perVOSpentVoiceCredits
perVOSpentVoiceCredits:
bigint
[] =[]
Defined in
Poll.ts:108
pollEndTimestamp
pollEndTimestamp:
bigint
Defined in
Poll.ts:68
pollId
pollId:
bigint
Defined in
Poll.ts:95
preVOSpentVoiceCreditsRootSalts
preVOSpentVoiceCreditsRootSalts:
Record
<string
|number
,bigint
> ={}
Defined in
Poll.ts:101
resultRootSalts
resultRootSalts:
Record
<string
|number
,bigint
> ={}
Defined in
Poll.ts:99
sbSalts
sbSalts:
Record
<string
|number
,bigint
> ={}
Defined in
Poll.ts:97
spentVoiceCreditSubtotalSalts
spentVoiceCreditSubtotalSalts:
Record
<string
|number
,bigint
> ={}
Defined in
Poll.ts:103
stateCopied
stateCopied:
boolean
=false
Defined in
Poll.ts:82
stateLeaves
stateLeaves:
StateLeaf
[]
Defined in
Poll.ts:84
stateTree?
optional
stateTree:IncrementalQuinTree
Defined in
Poll.ts:86
stateTreeDepth
stateTreeDepth:
number
Defined in
Poll.ts:63
tallyResult
tallyResult:
bigint
[] =[]
Defined in
Poll.ts:106
totalSpentVoiceCredits
totalSpentVoiceCredits:
bigint
Defined in
Poll.ts:112
treeDepths
treeDepths:
TreeDepths
Defined in
Poll.ts:56
Methods
copy()
copy():
Poll
Create a deep copy of the Poll object.
Returns
A new instance of the Poll object with the same properties.
Implementation of
IPoll.copy
Defined in
Poll.ts:1182
equals()
equals(
p
):boolean
Check if the Poll object is equal to another Poll object.
Parameters
• p: Poll
The Poll object to compare.
Returns
boolean
True if the two Poll objects are equal, false otherwise.
Implementation of
IPoll.equals
Defined in
Poll.ts:1256
getNumSignups()
getNumSignups():
bigint
Get the number of signups
Returns
bigint
The number of signups
Defined in
Poll.ts:1367
hasUnprocessedMessages()
hasUnprocessedMessages():
boolean
This method checks if there are any unprocessed messages in the Poll instance.
Returns
boolean
Returns true if the number of processed batches is less than the total number of batches, false otherwise.
Implementation of
IPoll.hasUnprocessedMessages
Defined in
Poll.ts:370
hasUntalliedBallots()
hasUntalliedBallots():
boolean
Checks whether there are any untallied ballots.
Returns
boolean
Whether there are any untallied ballots
Implementation of
IPoll.hasUntalliedBallots
Defined in
Poll.ts:801
processAllMessages()
processAllMessages():
object
Process all messages. This function does not update the ballots or state leaves; rather, it copies and then updates them. This makes it possible to test the result of multiple processMessage() invocations.
Returns
object
The state leaves and ballots of the poll
ballots
ballots:
Ballot
[]
stateLeaves
stateLeaves:
StateLeaf
[]
Implementation of
IPoll.processAllMessages
Defined in
Poll.ts:785
processMessage()
processMessage(
message
,encPubKey
,qv
):IProcessMessagesOutput
Process one message.
Parameters
• message: Message
The message to process.
• encPubKey: PubKey
The public key associated with the encryption private key.
• qv: boolean
= true
Returns
IProcessMessagesOutput
A number of variables which will be used in the zk-SNARK circuit.
Defined in
Poll.ts:213
processMessages()
processMessages(
pollId
,qv
,quiet
):IProcessMessagesCircuitInputs
Process _batchSize messages starting from the saved index. This function will process messages even if the number of messages is not an exact multiple of _batchSize. e.g. if there are 10 messages, index is 8, and _batchSize is 4, this function will only process the last two messages in this.messages, and finally update the zeroth state leaf. Note that this function will only process as many state leaves as there are ballots to prevent accidental inclusion of a new user after this poll has concluded.
Parameters
• pollId: bigint
The ID of the poll associated with the messages to process
• qv: boolean
= true
• quiet: boolean
= true
Whether to log errors or not
Returns
stringified circuit inputs
Implementation of
IPoll.processMessages
Defined in
Poll.ts:396
publishMessage()
publishMessage(
message
,encPubKey
):void
Inserts a Message and the corresponding public key used to generate the ECDH shared key which was used to encrypt said message.
Parameters
• message: Message
The message to insert
• encPubKey: PubKey
The public key used to encrypt the message
Returns
void
Implementation of
IPoll.publishMessage
Defined in
Poll.ts:332
setCoordinatorKeypair()
setCoordinatorKeypair(
serializedPrivateKey
):void
Set the coordinator's keypair
Parameters
• serializedPrivateKey: string
the serialized private key
Returns
void
Implementation of
IPoll.setCoordinatorKeypair
Defined in
Poll.ts:1351
setNumSignups()
setNumSignups(
numSignups
):void
Set the number of signups to match the ones from the contract
Parameters
• numSignups: bigint
the number of signups
Returns
void
Defined in
Poll.ts:1359
tallyVotes()
tallyVotes():
ITallyCircuitInputs
This method tallies a ballots and updates the tally results.
Returns
the circuit inputs for the TallyVotes circuit.
Implementation of
IPoll.tallyVotes
Defined in
Poll.ts:807
tallyVotesNonQv()
tallyVotesNonQv():
ITallyCircuitInputs
Returns
Defined in
Poll.ts:982
toJSON()
toJSON():
IJsonPoll
Serialize the Poll object to a JSON object
Returns
IJsonPoll
a JSON object
Implementation of
IPoll.toJSON
Defined in
Poll.ts:1292
updatePoll()
updatePoll(
numSignups
):void
Update a Poll with data from MaciState. This is the step where we copy the state from the MaciState instance, and set the number of signups we have so far.
Parameters
• numSignups: bigint
Returns
void
Defined in
Poll.ts:170
fromJSON()
static
fromJSON(json
,maciState
):Poll
Deserialize a json object into a Poll instance
Parameters
• json: IJsonPoll
the json object to deserialize
• maciState: MaciState
the reference to the MaciState Class
Returns
a new Poll instance
Defined in
Poll.ts:1316