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

# Governable

[Git Source](https://github.com/isle-labs/isle-contract/blob/main/contracts/abstracts/Governable.sol)

**Inherits:** [IGovernable](/contract-documentation/interfaces/igovernable.md)

See the documentation in {IGovernable}.

## State Variables

### governor

The address of the governor account or contract.

```solidity
address public override governor;
```

### pendingGovernor

The address of the pending governor account or contract.

```solidity
address public override pendingGovernor;
```

### \_\_\_\_\_\_gap

```solidity
uint256[50] private ______gap;
```

## Functions

### onlyGovernor

Reverts if called by any account other than the governor.

```solidity
modifier onlyGovernor() virtual;
```

### nominateGovernor

Configure the pendingGovernor to newGovnernor parameter.

```solidity
function nominateGovernor(address newGovernor_) external virtual override onlyGovernor;
```

**Parameters**

| Name           | Type      | Description       |
| -------------- | --------- | ----------------- |
| `newGovernor_` | `address` | The new governor. |

### acceptGovernor

The pending governor should accept and become the governor.

*Only the pendingGovernor can trigger this function.*

```solidity
function acceptGovernor() external virtual override;
```

### cancelPendingGovenor

Cancel the nominated pending governor.

*Only the governor can trigger this function*

```solidity
function cancelPendingGovenor() external virtual override onlyGovernor;
```
