Skip to main content
Version: v1.2

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

NameTypeDescription
_stateLeafstruct DomainObjs.StateLeafthe state leaf to be hashed

Return Values

NameTypeDescription
ciphertextuint256The 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

NameTypeDescription
dataToPaduint256[2]the data to be padded
msgTypeuint256the type of the message

Return Values

NameTypeDescription
messagestruct DomainObjs.MessageThe padded message
padKeystruct DomainObjs.PubKeyThe padding public key
msgHashuint256The 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

NameTypeDescription
_messagestruct DomainObjs.Messagethe message to be hashed
_encPubKeystruct DomainObjs.PubKeythe encryption public key to be hashed

Return Values

NameTypeDescription
msgHashuint256The hash of the message and the encryption public key