Please note these describe functions in the original Votium contract. This page will be updated for v2 soon.
Votium contract methods with special permissions fall under two categories:
Multisig Admin functions
Single-sign team only functions
All methods that control user funds fall under the Multisig Admin category.
These methods include:
VotiumBribe.sol
- setWhitelistRequired(bool)
Sets requirement for erc20 bribes to be whitelisted first
Default: true (whitelist required)
Emits event `WhitelistRequirement(bool _requireWhitelist)`
- updateFeeAddress(address)
Changes the address in which maintenance fees are sent
- updateFeeAmount(uint256)
Allows the maintenance fee to be adjusted between 0% and 4%
There is a hard limit of 4% that cannot be exceeded
Emits event `UpdatedFee(uint256 _feeAmount)`
- modifyTeam(address, bool)
Grants or removes permission for single-sign team address roles
This method triggers the event `ModifiedTeam(address _member, bool _approval)`
- updateDistributor(address, address)
Updates individual erc20 distribution contract address
Emits event `UpdatedDistributor(address indexed _token, address _distributor)`
MerkleDistributor.sol
- freeze()
Pause claims while merkle root is being updated
- unfreeze()
Resume claims after merkle root update
- updateMerkleRoot(bytes32)
Updates merkle root for claims and increments the update index
Emits event
`MerkleRootUpdated(bytes32 indexed merkleRoot, uint256 indexed update)`
VotiumVeCRV.sol
- unlistToken(address)
Disallows a token from being deposited in the future
- updateFeeAddress(address)
Changes the address in which maintenance fees are sent
- updateFeeAmount(uint256)
Allows the maintenance fee to be adjusted between 0% and 4%
There is a hard limit of 4% that cannot be exceeded
Emits event `UpdatedFee(uint256 _feeAmount)`
- modifyTeam(address, bool)
Grants or removes permission for single-sign team address roles
This method triggers the event `ModifiedTeam(address _member, bool _approval)`
- updateDistributor(address, address)
Updates distribution contract address
Emits event `UpdatedDistributor(address _distributor)`
- updateGaugeController(address)
Updates Curve gauge controller (Used only for gauge address verification)
Single-sign team methods are limited to functions which do not pose a risk to user funds:
VotiumBribe.sol
- initiateProposal(bytes32, uint256, uint256)
Registers a new proposal id, deadline, and max choice index.
Requires that the same id has not been previously registered,
and that the bribing deadline is in the future
Emits event `Initiated(bytes32 _proposal)`
- approveDelegationVote(bytes32)
Approves a msg hash for EIP1271 vote casting
- transferToDistributor(address)
If there is an existent token balance and a distributor address set by
multisig, the balance is forwarded to the distributor address
- whitelistToken(address) / whitelistTokens(address[])
Add an individual token or multiple tokens to the whitelist registry
Emits `event Whitelisted(address _token)`
VotiumVeCRV.sol
- listToken(address)
- listTokens(address[])
Allows a token or tokens to be accepted for future deposits