# LootReserve

Contract holding all PAL & extra rewards allocated to the Loot system. The tokens are then sent to users when claiming Loot rewards.

#### pal

```solidity
contract IERC20 pal
```

PAL token contract

#### extraToken

```solidity
contract IERC20 extraToken
```

Extra token contract

#### loot

```solidity
address loot
```

Address of the Loot contract

#### Init

```solidity
event Init(address loot)
```

Event emitted when the contract is initialized

#### MaxAllowanceSet

```solidity
event MaxAllowanceSet(address token, address spender)
```

Event emitted when the Max allowance is set for the Loot contract

#### CancelReserve

```solidity
event CancelReserve(uint256 retrievedPalAmount, uint256 retrievedExtraAmount)
```

Event emitted when the Reserve is canceled and token claimed back

**Parameters**

| Name   | Type    | Description                  |
| ------ | ------- | ---------------------------- |
| \_loot | address | Address of the Loot contract |

#### getBalances

```solidity
function getBalances() external view returns (uint256 palBalance, uint256 extraBalance)
```

Get this contract balances

**Return Values**

| Name         | Type    | Description                     |
| ------------ | ------- | ------------------------------- |
| palBalance   | uint256 | (uint256) : PAL token balance   |
| extraBalance | uint256 | (uint256) : extra token balance |

#### getRemainingAllowances

```solidity
function getRemainingAllowances() external view returns (uint256 palAllowance, uint256 extraAllowance)
```

Get this contract remaining allowances for the Loot contract

**Return Values**

| Name           | Type    | Description                           |
| -------------- | ------- | ------------------------------------- |
| palAllowance   | uint256 | (uint256) : PAL remaining allowance   |
| extraAllowance | uint256 | (uint256) : extra remaining allowance |

#### resetMaxAllowance

```solidity
function resetMaxAllowance() external
```

Resets the allowances for the Loot contract


---

# 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.paladin.vote/vote-flywheel/smart-contracts/lootreserve.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.
