GovernanceModule

The Governance Module is a module that that enables participating in governance of component tokens held in the SetToken. Examples of intended protocols include Compound, Uniswap, and Maker governance.

Select Methods

delegate()

function delegate(ISetToken _setToken, string memory _governanceName, address _delegatee)

Manager only. Delegate voting power to an Ethereum address. Note: for some governance adapters, delegating to self is equivalent to registering and delegating to zero address is revoking right to vote.

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_governanceName

string

Human readable name of integration stored in the IntegrationRegistry

_delegatee

address

Address of delegatee

propose()

function propose(ISetToken _setToken, string memory _governanceName, bytes memory _proposalData)

Manager only. Create a new proposal for a specified governance protocol.

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_governanceName

string

Human readable name of integration stored in the IntegrationRegistry

_proposalData

bytes

Byte data of proposal to pass into governance adapter

vote()

function vote(ISetToken _setToken, string memory _governanceName, uint256 _proposalId, bool _support, bytes memory _data)

Manager only. Cast vote for a specific governance token held in the SetToken. Manager specifies whether to vote for or against a given proposal

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_governanceName

string

Human readable name of integration stored in the IntegrationRegistry

_proposalId

uint256

ID of the proposal to vote on

_support

bool

Boolean indicating whether to support proposal

_data

bytes

Arbitrary bytes to be used to construct vote call data

register()

function register(ISetToken _setToken, string memory _governanceName)

Manager only. Register for voting for the SetToken

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_governanceName

string

Human readable name of integration stored in the IntegrationRegistry

revoke()

function revoke(ISetToken _setToken, string memory _governanceName)

Manager only. Revoke voting for the SetToken

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_governanceName

string

Human readable name of integration stored in the IntegrationRegistry

initialize()

function initialize(ISetToken _setToken)

Manager only. Initializes this module to the SetToken.

Parameter Name

Type

Description

_setToken

ISetToken

Address of the SetToken