Utilities
An utility contract that can be used to:
- hash a state leaf
- pad and hash a MACI message
- hash a MACI message and an encryption public key
InvalidMessage
error InvalidMessage()
custom errors
hashStateLeaf
function hashStateLeaf(struct DomainObjs.StateLeaf _stateLeaf) public pure returns (uint256 ciphertext)
An utility function used to hash a state leaf
Parameters
| Name | Type | Description |
|---|---|---|
| _stateLeaf | struct DomainObjs.StateLeaf | the state leaf to be hashed |
Return Values
| Name | Type | Description |
|---|---|---|
| ciphertext | uint256 | The hash of the state leaf |
padAndHashMessage
function padAndHashMessage(uint256[2] dataToPad, uint256 msgType) public pure returns (struct DomainObjs.Message message, struct DomainObjs.PubKey padKey, uint256 msgHash)
An utility function used to pad and hash a MACI message
Parameters
| Name | Type | Description |
|---|---|---|
| dataToPad | uint256[2] | the data to be padded |
| msgType | uint256 | the type of the message |
Return Values
| Name | Type | Description |
|---|---|---|
| message | struct DomainObjs.Message | The padded message |
| padKey | struct DomainObjs.PubKey | The padding public key |
| msgHash | uint256 | The hash of the padded message and encryption key |
hashMessageAndEncPubKey
function hashMessageAndEncPubKey(struct DomainObjs.Message _message, struct DomainObjs.PubKey _encPubKey) public pure returns (uint256 msgHash)
An utility function used to hash a MACI message and an encryption public key
Parameters
| Name | Type | Description |
|---|---|---|
| _message | struct DomainObjs.Message | the message to be hashed |
| _encPubKey | struct DomainObjs.PubKey | the encryption public key to be hashed |
Return Values
| Name | Type | Description |
|---|---|---|
| msgHash | uint256 | The hash of the message and the encryption public key |