> For the complete documentation index, see [llms.txt](https://docs.union.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.union.finance/developers/governance/igovernor.md).

# Governor

Governor is the governance module of the protocol. It allows addresses with more than 1% of the current supply of Union token to propose changes to the protocol. Addresses that hold voting weight, at the start of the proposal, invoked through the `getPriorVotes()` function, can submit their votes during a 3-day voting period. If quorum is met, and the majority of votes are cast for the proposal, the proposal succeeds. It is then queued in the Timelock and can be implemented after 2 days.

## Functions

### `proposalCount() → uint256` <a href="#igovernor-proposalcount" id="igovernor-proposalcount"></a>

No description

### `propose(address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, string description) → uint256` <a href="#igovernor-propose-address-uint256-string-bytes-string" id="igovernor-propose-address-uint256-string-bytes-string"></a>

No description

### `queue(uint256 proposalId)` <a href="#igovernor-queue-uint256" id="igovernor-queue-uint256"></a>

No description

### `execute(uint256 proposalId)` <a href="#igovernor-execute-uint256" id="igovernor-execute-uint256"></a>

No description

### `cancel(uint256 proposalId)` <a href="#igovernor-cancel-uint256" id="igovernor-cancel-uint256"></a>

No description

### `getActions(uint256 proposalId) → address[], uint256[], string[], bytes[]` <a href="#igovernor-getactions-uint256" id="igovernor-getactions-uint256"></a>

No description

### `getReceipt(uint256 proposalId, address voter) → struct IGovernor.Receipt` <a href="#igovernor-getreceipt-uint256-address" id="igovernor-getreceipt-uint256-address"></a>

No description

### `state(uint256 proposalId) → enum IGovernor.ProposalState` <a href="#igovernor-state-uint256" id="igovernor-state-uint256"></a>

No description

### `castVote(uint256 proposalId, uint8 support)` <a href="#igovernor-castvote-uint256-uint8" id="igovernor-castvote-uint256-uint8"></a>

No description

### `castVoteWithReason(uint256 proposalId, uint8 support, string reason)` <a href="#igovernor-castvotewithreason-uint256-uint8-string" id="igovernor-castvotewithreason-uint256-uint8-string"></a>

No description

### `castVoteBySig(uint256 proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s)` <a href="#igovernor-castvotebysig-uint256-uint8-uint8-bytes32-bytes32" id="igovernor-castvotebysig-uint256-uint8-uint8-bytes32-bytes32"></a>

No description

## Events

### `ProposalCreated(uint256 id, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description)` <a href="#igovernor-proposalcreated-uint256-address-address-uint256-string-bytes-uint256-uint256-string" id="igovernor-proposalcreated-uint256-address-address-uint256-string-bytes-uint256-uint256-string"></a>

No description

### `UnionTokenSet(address oldUnionToken, address newUnionToken)` <a href="#igovernor-uniontokenset-address-address" id="igovernor-uniontokenset-address-address"></a>

No description

### `TimelockSet(address oldTimelock, address newTimelock)` <a href="#igovernor-timelockset-address-address" id="igovernor-timelockset-address-address"></a>

No description

### `VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay)` <a href="#igovernor-votingdelayset-uint256-uint256" id="igovernor-votingdelayset-uint256-uint256"></a>

No description

### `VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod)` <a href="#igovernor-votingperiodset-uint256-uint256" id="igovernor-votingperiodset-uint256-uint256"></a>

No description

### `ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold)` <a href="#igovernor-proposalthresholdset-uint256-uint256" id="igovernor-proposalthresholdset-uint256-uint256"></a>

No description

### `VoteCast(address voter, uint256 proposalId, uint8 support, uint256 votes, string reason)` <a href="#igovernor-votecast-address-uint256-uint8-uint256-string" id="igovernor-votecast-address-uint256-uint8-uint256-string"></a>

No description

### `ProposalCanceled(uint256 id)` <a href="#igovernor-proposalcanceled-uint256" id="igovernor-proposalcanceled-uint256"></a>

No description

### `ProposalQueued(uint256 id, uint256 eta)` <a href="#igovernor-proposalqueued-uint256-uint256" id="igovernor-proposalqueued-uint256-uint256"></a>

No description

### `ProposalExecuted(uint256 id)` <a href="#igovernor-proposalexecuted-uint256" id="igovernor-proposalexecuted-uint256"></a>

No description

### `NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin)` <a href="#igovernor-newpendingadmin-address-address" id="igovernor-newpendingadmin-address-address"></a>

No description

### `NewAdmin(address oldAdmin, address newAdmin)` <a href="#igovernor-newadmin-address-address" id="igovernor-newadmin-address-address"></a>

No description
