Vesting Contract
Aligning Interests, Ensuring Longevity
At the core of Maven Finance's commitment to fostering a sustainable, engaged community of stakeholders, lies the Vesting Contract.
This smart contract manages the release of MVN tokens to team members, advisors, investors, and other vested parties, in a manner that aligns long-term incentives and bolsters platform stability.
The Vesting Contract details a clear and predetermined schedule for the release of tokens, ensuring that the beneficiaries remain committed to the project's success over an extended period.
This crucial element of the Maven Finance ecosystem underpins the platform's trustworthiness, security, and integrity.
Internal Vestee Control Entrypoints
addVestee
function addVestee(address vesteeAddress, nat totalAllocatedAmount, nat cliffInMonths, nat vestingInMonths)
Adds a new vestee to the Vesting Contract with the given parameters
vesteeAddress
address
The user address of the new vestee
totalAllocatedAmount
nat
The total allocated amount that will be given to the vestee over the vesting duration
cliffInMonths
nat
The number of months before a vestee may start to vest his tokens. Cannot be greater than vestingInMonths.
vestingInMonths
nat
The total duration in months for the vesting period. Has to be greater than 0.
removeVestee
function removeVestee(address vesteeAddress)
Removes an existing vestee from the Vesting Contract
vesteeAddress
address
The user address of the vestee to be removed
updateVestee
function updateVestee(address vesteeAddress, nat newTotalAllocatedAmount, nat newCliffInMonths, nat newVestingInMonths)
Updates the record of an existing vestee
vesteeAddress
address
The user address of the vestee to be updated
newTotalAllocatedAmount
nat
The new total allocated amount that will be given to the vestee over the vesting duration
newCliffInMonths
nat
The new number of months before a vestee may start to vest his tokens. Cannot be greater than newVestingInMonths.
newVestingInMonths
nat
The new total duration in months for the vesting period. Has to be greater than 0.
toggleVesteeLock
function toggleVesteeLock(address vesteeAddress)
Toggles a lock on an existing vestee. If lock is enabled, the vestee will not be able to vest or claim his tokens.
vesteeAddress
address
The user address of the vestee where lock status is to be toggled
Vestee Entrypoints
claim
function claim()
Can be called by any vestee to claim any vested tokens
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
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
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
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
getTotalVestedAmount
function getTotalVestedAmount()
Returns the total amount that has been vested thus far
getVesteeBalanceOpt
function getVesteeBalanceOpt(address vesteeAddress)
Returns the total vesting remainder for the vestee if found
getVesteeOpt
function getVesteeOpt(address vesteeAddress)
Returns the vestee record of the given vesteeAddress if found, else returns none
getLambdaOpt
function getLambdaOpt(string lambdaName)
Returns a lambda in the contract for the given lambda name, else returns none
Last updated