# Administrable

*Alluvial Finance Inc.*

> Administrable

This contract handles the administration of the contracts

## Methods

### acceptAdmin

```solidity
function acceptAdmin() external nonpayable
```

Accept the transfer of ownership

*Only callable by the pending admin. Resets the pending admin if successful.*

### getAdmin

```solidity
function getAdmin() external view returns (address)
```

Retrieves the current admin address

#### Returns

| Name | Type    | Description       |
| ---- | ------- | ----------------- |
| \_0  | address | The admin address |

### getPendingAdmin

```solidity
function getPendingAdmin() external view returns (address)
```

Retrieve the current pending admin address

#### Returns

| Name | Type    | Description               |
| ---- | ------- | ------------------------- |
| \_0  | address | The pending admin address |

### proposeAdmin

```solidity
function proposeAdmin(address _newAdmin) external nonpayable
```

Proposes a new address as admin

*This security prevents setting an invalid address as an admin. The pending admin has to claim its ownership of the contract, and prove that the new address is able to perform regular transactions.*

#### Parameters

| Name       | Type    | Description       |
| ---------- | ------- | ----------------- |
| \_newAdmin | address | New admin address |

## Events

### SetAdmin

```solidity
event SetAdmin(address indexed admin)
```

The admin address changed

#### Parameters

| Name            | Type    | Description       |
| --------------- | ------- | ----------------- |
| admin `indexed` | address | New admin address |

### SetPendingAdmin

```solidity
event SetPendingAdmin(address indexed pendingAdmin)
```

The pending admin address changed

#### Parameters

| Name                   | Type    | Description               |
| ---------------------- | ------- | ------------------------- |
| pendingAdmin `indexed` | address | New pending admin address |

## Errors

### InvalidZeroAddress

```solidity
error InvalidZeroAddress()
```

The address is zero

### Unauthorized

```solidity
error Unauthorized(address caller)
```

The operator is unauthorized for the caller

#### Parameters

| Name   | Type    | Description                 |
| ------ | ------- | --------------------------- |
| caller | address | Address performing the call |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.liquidcollective.io/eth/technical-reference/smart-contracts/administrable.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
