Maven Finance Docs
  • Introduction
    • Getting Started
  • Maven Finance
    • Staking
      • Benefits and Fees of Staking
      • How To Stake and Unstake
    • Satellites & Oracles
      • Delegating To Satellites
      • Satellite Registration
      • Oracle Nodes
    • Earn & Borrow
      • Lending & mTokens
      • Multi-Collateral Vaults
        • Liquidation
      • Interest Rate Model
    • Yield Farms
      • Maven Finance's Yield Farms
      • Yield Farming Dashboard
    • Governance
      • Governance Rounds
        • Proposal Round
        • Voting Round
        • Timelock Round
      • Emergency Governance
      • Financial Governance
      • Satellite Governance
    • Council
      • Management of Finances
      • Management of Vestees
    • Treasury
  • Smart Contracts
    • Smart Contracts Overview
      • Doorman Contract
      • Delegation Contract
      • Aggregator Contract
      • Aggregator Factory Contract
      • Farm Contract
      • Farm Factory Contract
      • Governance Contract
      • Governance Financial Contract
      • Governance Satellite Contract
      • Governance Proxy Contract
      • Council Contract
      • Treasury Contract
      • Treasury Factory Contract
      • Break Glass Contract
      • Emergency Governance Contract
      • Lending Controller Contract
      • Vault Contract
      • Vault Factory Contract
      • MVN Token Contract
      • mToken Contract
      • Vesting Contract
  • Glossary
    • Glossary of Terms
Powered by GitBook
On this page
  • Satellite Governance Entrypoints
  • Satellite Oracle Governance Entrypoints
  • Aggregator Governance Entrypoints
  • Mistaken Transfer Governance Entrypoints
  • Governance Vote Entrypoints
  • Housekeeping Entrypoints
  • View Methods
  1. Smart Contracts
  2. Smart Contracts Overview

Governance Satellite Contract

Governance Satellite Contract: Steering Maven Finance's Satellite Fleet.

As the core of Maven Finance's satellite management system, this contract regulates the operations and actions of the platform's Satellites.

The Satellite Governance contract oversees the registration of new Satellites, tracks their performance, manages their MVN staking, and ensures adherence to governance rules.

It plays a vital role in maintaining the effective functioning of the Satellites, thereby upholding Maven Finance's vision of a transparent, democratic, and effective DeFi platform.

Satellite Governance Entrypoints

suspendSatellite

function suspendSatellite(address satelliteAddress, string purpose)

Creates a new governance action to suspend the specified satellite

Can be called only by an Active Satellite

Param Name
Type
Description

satelliteAddress

address

The address of the satellite to be suspended

purpose

string

The reason for why the satellite should be suspended

banSatellite

function banSatellite(address satelliteAddress, string purpose)

Creates a new governance action to ban the specified satellite

Can be called only by an Active Satellite

Param Name
Type
Description

satelliteAddress

address

The address of the satellite to be banned

purpose

string

The reason for why the satellite should be banned

restoreSatellite

function restoreSatellite(address satelliteAddress, string purpose)

Creates a new governance action to restore the specified satellite

Can be called only by an Active Satellite

Param Name
Type
Description

satelliteAddress

address

The address of the satellite to be restored

purpose

string

The reason for why the satellite should be restored

Satellite Oracle Governance Entrypoints

removeAllSatelliteOracles

function removeAllSatelliteOracles(address satelliteAddress, string purpose)

Creates a new governance action to remove all oracles linked to the specified satellite address across all aggregator contracts

Can be called only by an Active Satellite

Param Name
Type
Description

satelliteAddress

address

The address of the satellite which will have all oracles removed

purpose

string

The reason for why the all oracles linked to this satellite should be removed

addOracleToAggregator

function addOracleToAggregator(address oracleAddress, address aggregatorAddress, string purpose)

Creates a new governance action to add a given oracle (satellite) address to the specified aggregator contract

Can be called only by an Active Satellite

Param Name
Type
Description

oracleAddress

address

The address of the oracle (satellite) which will be added to the specified aggregator contract

aggregatorAddress

address

The address of the aggregator contract where the oracle (satellite) will be added

purpose

string

The reason for why the oracle should be added to the aggregator contract

removeOracleInAggregator

function removeOracleInAggregator(address oracleAddress, address aggregatorAddress, string purpose)

Creates a new governance action to remove a given oracle (satellite) address from the specified aggregator contract

Can be called only by an Active Satellite

Param Name
Type
Description

oracleAddress

address

The address of the oracle (satellite) which will be removed from the aggregator contract

aggregatorAddress

address

The address of the aggregator contract where the oracle (satellite) will be removed from

purpose

string

The reason for why the oracle (satellite) should be removed from the aggregator contract

Aggregator Governance Entrypoints

setAggregatorReference

function setAggregatorReference(address aggregatorAddress, string oldName, string newName)

Creates a new governance action to set a new reference name for the specified aggregator contract

Can be called only by the admin, whitelisted contracts, or the aggregator contract itself

Param Name
Type
Description

aggregatorAddress

address

The address of the aggregator which will have its reference updated

oldName

string

The old reference name of the aggregator

newName

string

The new reference name of the aggregator

togglePauseAggregator

function togglePauseAggregator(address aggregatorAddress, string purpose, togglePauseVariantType status)

Creates a new governance action to toggle pausing of a specified aggregator contract

Can be called only by an Active Satellite

Param Name
Type
Description

aggregatorAddress

address

The address of the aggregator which will have its pause status updated

purpose

string

The reason for why the aggregator contract will have its pause status updated

status

togglePauseVariantType: | unit PauseAll | unit UnpauseAll

The new pause status of the aggregator contract; specify if all entrypoints should be paused or unpaused

Mistaken Transfer Governance Entrypoints

fixMistakenTransfer

function fixMistakenTransfer(address targetContractAddress, string purpose, transferActionType transferList)

Creates a new governance action to fix mistaken transfers from users. A transfer operation will created from the target contract address to the user for the token specified.

Can be called only by an Active Satellite

Param Name
Type
Description

targetContractAddress

address

The address of the contract where mistaken transfer will be fixed

purpose

string

The reason for the mistaken transfer fix

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) MRC-20 | (address tokenContractAddress, nat tokenId) MRC-20

The token type of the token to be transferred, corresponding to either Mav, MRC-10 OR MRC-20

Governance Vote Entrypoints

voteForAction

function voteForAction(nat actionId, voteType vote)

Vote for a governance action by a satellite

Can be called only by an Active Satellite

Param Name
Type
Description

actionId

nat

ID of the governance action to be voted on

vote

voteType: | unit Yay | unit Nay | unit Pass

Vote choices that a satellite may choose when voting on the governance action

dropAction

function dropAction(nat actionId)

Drops a governance action

Can be called only by the initiator of the governance action

Param Name
Type
Description

actionId

nat

ID of the governance action to be dropped

Housekeeping Entrypoints

setAdmin

function setAdmin(address newAdminAddress)

Sets a new admin address for the contract

Can be called only by the admin or the governance contract address

Param Name
Type
Description

newAdminAddress

address

The address of the new admin

setGovernance

function setGovernance(address newGovernanceAddress)

Sets a new governance contract address

Can be called only by the admin or the governance contract address

Param Name
Type
Description

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

Can be called only by the admin (i.e. the governance proxy contract)

Param Name
Type
Description

key

string

The key in the metadata bigmap to be updated

hash

bytes

The hash of the metadata key

updateConfig

function updateConfig(nat newConfigValue, governanceSatelliteConfigActionType governanceSatelliteConfigAction)

Updates the config variables on the Governance Satellite Contract

Can be called only by the admin (i.e. the governance proxy contract)

Param Name
Type
Description

newConfigValue

nat

The new value of the config parameter

governanceSatelliteConfigAction

governanceSatelliteConfigActionType: | unit ConfigApprovalPercentage | unit ConfigActionReqDurationDays | unit ConfigPurposeMaxLength | unit ConfigMaxActionsPerSatellite

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

Can be called only by the admin (i.e. the governance proxy contract)

Param Name
Type
Description

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

Can be called only by the admin (i.e. the governance proxy contract)

Param Name
Type
Description

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

Can be called only by the admin or the governance satellite contract

Param Name
Type
Description

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) Fa2

The token type of the token to be transferred, corresponding to either MRC-20

setLambda

function setLambda(string lambdaName, bytes func_bytes)

Sets a lambda in the contract with the given bytes and name

Can be called only by the admin (i.e. the governance proxy contract)

Param Name
Type
Description

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

getGovernanceSatelliteCounter

function getGovernanceSatelliteCounter()

Returns the latest governance satellite action counter

getGovernanceSatelliteVoterOpt

function getGovernanceSatelliteVoterOpt(nat actionId * address satelliteAddress)

Returns a vote record based on the provided governance satellite action id and satellite address, else returns none

getSatelliteActionsOpt

function getSatelliteActionsOpt(nat governanceCycleId * address satelliteAddress)

Returns a list of governance actions created by the satellite during the specified governance cycle, else returns none

getAggregatorOpt

function getAggregatorOpt(string aggregatorName)

Returns an aggregator address based on the given aggregator name, else returns none

getSatelliteOracleRecordOpt

function getSatelliteOracleRecordOpt(address satelliteAddress)

Returns a satellite oracle record based on the given satellite address, else returns none

getLambdaOpt

function getLambdaOpt(string lambdaName)

Returns a lambda in the contract for the given lambda name, else returns none

PreviousGovernance Financial ContractNextGovernance Proxy Contract

Last updated 6 months ago