# Findings

### **Issue 01**

| Type          | Severity      | Location    |
| ------------- | ------------- | ----------- |
| Logical Error | Informational | `_transfer` |

**Description**

There is no way to exclude a specific address from `_transfer` fees, therefore the fee will be applied when adding the initial liquidity.&#x20;

**Team's response**

The team has a way to set the fee to zero, they will ensure the fees are zero in order to prevent fees on initial liquidity.&#x20;

### **Issue 02**

| Type          | Severity      | Location    |
| ------------- | ------------- | ----------- |
| Logical Error | Informational | `_transfer` |

**Description**

The team should note that there is no way to differentiate between sell transaction and addLiquidity transaction and buy transaction and removeLiquidity transaction by just looking at the sender/recipient. Therefore, sell/buy fees will be applied for liquidity addition and liquidity removal transactions as well.&#x20;

```
uint256 transferFeeRate = recipient == uniswapV2Pair
        ? sellFeeRate
        : (sender == uniswapV2Pair ? buyFeeRate : 0);
```

### Issue 03

| Type             | Severity      | Location |
| ---------------- | ------------- | -------- |
| Gas Optimization | Informational |          |

&#x20;**Description**

Unused mapping `bots`

**Recommendation**

Our recommendation is to remove unnecessary variables in order to save on storage.&#x20;

### Issue 04

| Type          | Severity      | Location                                         |
| ------------- | ------------- | ------------------------------------------------ |
| Best Practice | Informational | `setTreasury`, `setSellFeeRate`, `setBuyFeeRate` |

&#x20;**Description**

These functions change the state of the contract, without emitting events.

**Recommendation**

Emit event when changing critical variables.

##
