# FeeOracle

### Functions

#### `init`

This function is the initializer of the contract and is only callable by the owner. It sets the address registry, the maximum fee, and the maximum bonus.

#### `setTargets`

This function sets the targets for each coin. It is only callable by the owner and requires that the weight array is normalized (total weight should be 100).

#### `getCoinWeights`

This function returns the current weight of each coin in the vault and the total value locked (TV in the vault and its target weight. The function requires a valid L) in USDC. The function requires a valid signature from the oracle signer, and the nonce provided in the function call should not have been activated before.

#### `getDepositFee`

This function returns the deposit fee for a specified coin based on the current weight of the coin in the vault and its target weight. The function requires a valid signature from the oracle signer, and the nonce provided in the function call should not have been activated before.


---

# 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.arbitrove.finance/technical-documentation/feeoracle.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.
