FeeOracle

This contract implements a fee oracle that provides deposit and withdrawal fees to be used by the Vault contract. The fees are based on the current weight of a coin in the vault compared to its target

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.

Last updated