Emergency Governance Contract
Maintaining Stability Amidst Turmoil
The Emergency Governance Contract underpins Maven Finance's dedication to a secure and stable ecosystem.
Designed to handle unexpected or disruptive circumstances, this contract provides a framework for crisis management in the realm of decentralized governance.
During an emergency, this contract allows for the immediate enactment of contingency plans, bypassing the standard, lengthier voting procedures.
From mitigating threats and hacks to responding swiftly to market volatility, the Emergency Governance Contract ensures Maven Finance can quickly adapt to any given situation.
Emergency Governance Entrypoints
triggerEmergencyControl
function triggerEmergencyControl(string title, string description)
Creates an emergency control action which other community members may vote for.
Any community member may call this entrypoint provided they have sufficient staked MVN balance and pay a small fee.
title
string
The title of the emergency control
description
string
Explain the reasons for the emergency
voteForEmergencyControl
function voteForEmergencyControl()
Vote for an active emergency control.
Housekeeping Entrypoints
setAdmin
function setAdmin(address newAdminAddress)
Sets a new admin address for the contract
newAdminAddress
address
The address of the new admin
setGovernance
function setGovernance(address newGovernanceAddress)
Sets a new governance contract address
newGovernanceAddress
address
The address of the new governance contract
updateMetadata
function updateMetadata(string key, bytes hash)
Replace the hash of the contract metadata based on the provided key
key
string
The key in the metadata bigmap to be updated
hash
bytes
The hash of the metadata key
updateConfig
function updateConfig(nat newConfigValue, emergencyGovernanceConfigActionType emergencyGovernanceConfigAction)
Updates the config variables on the Emergency Governance Contract
newConfigValue
nat
The new value of the config parameter
emergencyGovernanceConfigAction
emergencyGovernanceConfigActionType: | unit ConfigVoteExpiryDays | unit ConfigRequiredFeeMutez | unit ConfigStakedMvnPercentRequired | unit ConfigMinStakedMvnForVoting | unit ConfigMinStakedMvnToTrigger | unit ConfigProposalTitleMaxLength | unit ConfigProposalDescMaxLength
The variant config variable to be updated
updateWhitelistContracts
function updateWhitelistContracts(address whitelistContractAddress, updateType update)
Add, update or remove a whitelist contract in the whitelistContracts map in the storage
whitelistContractAddress
address
The contract address to be updated in the whitelist contracts bigmap
updateType
updateType: | unit Update | unit Remove
Specifies whether the whitelistContractAddress should be updated or removed from the whitelist contracts bigmap
updateGeneralContracts
function updateGeneralContracts(string generalContractName, address generalContractAddress, updateType update)
Add, update or remove a general contract in the generalContracts map in the storage
generalContractName
string
The identifier key to be set in the general contracts bigmap which will be the general contract name in camelcase
generalContractAddress
address
The contract address to be updated in the general contracts bigmap
updateType
updateType: | unit Update | unit Remove
Specifies whether the generalContractAddress should be updated or removed from the general contracts bigmap
mistakenTransfer
function mistakenTransfer(transferActionType transferList)
Transfers any mav or token that may have mistakenly been sent to this contract
transferList
transferActionType:
list(address to_, nat tokenAmount, token tokenType)
A list of transfers of tokens to recipients
to_
address
The recipient of the mistaken transfer
tokenAmount
nat
The amount of tokens to be transferred
token
tokenType: | unit Mav | (address tokenContractAddress) Fa12 | (address tokenContractAddress, nat tokenId) MRC-20
The token type of the token to be transferred, corresponding to either Tez, Mav, MRC-10 OR MRC-20
setLambda
function setLambda(string lambdaName, bytes func_bytes)
Sets a lambda in the contract with the given bytes and name
lambdaName
string
The name of the lambda to be set
func_bytes
bytes
The data of the lambda in Michelson bytes format
View Methods
getAdmin
function getAdmin()
Returns the contract admin
getGovernanceAddress
function getGovernanceAddress()
Returns the contract governance address
getConfig
function getConfig()
Returns the contract configuration parameters
getWhitelistContractOpt
function getWhitelistContractOpt(address contractAddress)
Returns unit if contract address is whitelisted, else returns none
getGeneralContractOpt
function getGeneralContractOpt(string contractName)
Returns the contract address if the contract name is found, else returns none
getEmergencyGovernanceOpt
function getEmergencyGovernanceOpt(nat emergencyGovernanceId)
Returns the record of an emergency governance, else returns none
getEmergencyGovernanceVoterOpt
function getDelegateOpt(nat emergencyGovernanceId * address userAddress)
Returns the user's vote amount (in staked MVN) and timestamp of the vote for a given emergency governance, else returns none
getCurrentEmergencyGovernanceId
function getCurrentEmergencyGovernanceId()
Returns the current emergency governance id
getNextEmergencyGovernanceId
function getNextEmergencyGovernanceId()
Returns the next emergency governance id
getLambdaOpt
function getLambdaOpt(string lambdaName)
Returns a lambda in the contract for the given lambda name, else returns none
Last updated