# PoolAccountantStorage

This is an abstract contract. Every pool has one associated PoolAccountant that is an implementation of this contract. The each pool's associated PoolAccoutStorage contract is used to store values used by the Pool Accountant. The current version of the abstract class inherits from its predecessor, going back to PoolAccountantStorageV1.

## PoolAccountantStorageV1

### pool

```solidity
address pool
```

### totalDebtRatio

```solidity
uint256 totalDebtRatio
```

### totalDebt

```solidity
uint256 totalDebt
```

### strategies

```solidity
address[] strategies
```

### withdrawQueue

```solidity
address[] withdrawQueue
```

## PoolAccountantStorageV2

### StrategyConfig

```solidity
struct StrategyConfig {
  bool active;
  uint256 interestFee;
  uint256 debtRate;
  uint256 lastRebalance;
  uint256 totalDebt;
  uint256 totalLoss;
  uint256 totalProfit;
  uint256 debtRatio;
  uint256 externalDepositFee;
}
```

### strategy

```solidity
mapping(address => struct PoolAccountantStorageV2.StrategyConfig) strategy
```

### externalDepositFee

```solidity
uint256 externalDepositFee
```
