Passer au contenu principal

AggregatorFeeSharingWithUniswapV3

An extra layer built on top of the FeeSharingSystem that sells WETH to LOOKS using the Uniswap V3 router. It is a yield aggregator that optimizes LOOKS staking.

Prime shares represent the number of shares in the FeeSharingSystem. When not specified, shares represent secondary shares in this contract.

Methods

MAXIMUM_HARVEST_BUFFER_BLOCKS

function MAXIMUM_HARVEST_BUFFER_BLOCKS() external view returns (uint256)

Returns

NameTypeDescription
MAXIMUM_HARVEST_BUFFER_BLOCKSuint256maximum number of blocks between two harvests

MINIMUM_DEPOSIT_LOOKS

function MINIMUM_DEPOSIT_LOOKS() external view returns (uint256)

Returns

NameTypeDescription
MINIMUM_DEPOSIT_LOOKSuint256minimum amount for a single deposit (in LOOKS)

calculateSharePriceInLOOKS

function calculateSharePriceInLOOKS() external view returns (uint256)

Calculate price of one share (in LOOKS token). Share price is expressed times 1e18

Returns

NameTypeDescription
-uint256price of a (secondary) share in LOOKS

calculateSharePriceInPrimeShare

function calculateSharePriceInPrimeShare() external view returns (uint256)

Calculate price of one (secondary) share (in prime share). Share price is expressed times 1e18

Returns

NameTypeDescription
-uint256price of a (secondary) share in prime share

calculateSharesValueInLOOKS

function calculateSharesValueInLOOKS(address user) external view returns (uint256)

Calculate shares value of a user (in LOOKS)

Parameters

NameTypeDescription
useraddressaddress of the user

Returns

NameTypeDescription
-uint256value (in LOOKS) of the total shares of a user

canHarvest

function canHarvest() external view returns (bool)

Returns

NameTypeDescription
-boolwhether harvests are triggered automatically at standard user action (i.e., deposits, withdraws)

checkAndAdjustLOOKSTokenAllowanceIfRequired

function checkAndAdjustLOOKSTokenAllowanceIfRequired() external nonpayable

Adjust allowance if necessary

Only callable by owner.

checkAndAdjustRewardTokenAllowanceIfRequired

function checkAndAdjustRewardTokenAllowanceIfRequired() external nonpayable

Adjust allowance if necessary

Only callable by owner.

deposit

function deposit(uint256 amount) external nonpayable

Deposit LOOKS tokens

There is a limit of 1 LOOKS per deposit to prevent potential manipulation of the shares

Parameters

NameTypeDescription
amountuint256amount to deposit (in LOOKS)

feeSharingSystem

function feeSharingSystem() external view returns (contract FeeSharingSystem)

Returns

NameTypeDescription
-contract FeeSharingSystemaddress of the FeeSharingSystem contract

harvestAndSellAndCompound

function harvestAndSellAndCompound() external nonpayable

Harvest pending WETH, sell them to LOOKS, and deposit LOOKS (if possible)

Only callable by owner. It is meant for emergency.

harvestBufferBlocks

function harvestBufferBlocks() external view returns (uint256)

Returns

NameTypeDescription
-uint256number of blocks between two consecutive harvests

lastHarvestBlock

function lastHarvestBlock() external view returns (uint256)

Returns

NameTypeDescription
lastHarvestBlockuint256block number of the last harvest

looksRareToken

function looksRareToken() external view returns (contract IERC20)

Returns

NameTypeDescription
-contract IERC20address of the LooksRareToken

maxPriceLOOKSInWETH

function maxPriceLOOKSInWETH() external view returns (uint256)

Returns

NameTypeDescription
maxPriceLOOKSInWETHuint256maximum price of 1 LOOKS (in WETH) times 1e18

owner

function owner() external view returns (address)

Returns the address of the current owner.

Returns

NameTypeDescription
owneraddressaddress of the current owner

pause

function pause() external nonpayable

Pause

Only callable by owner

paused

function paused() external view returns (bool)

Returns true if the contract is paused, and false otherwise.

Returns

NameTypeDescription
pausedboolwhether the contract is in pause status. If paused, new user deposits are suspended but withdrawals are available.

renounceOwnership

function renounceOwnership() external nonpayable

Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.

rewardToken

function rewardToken() external view returns (contract IERC20)

Returns

NameTypeDescription
-contract IERC20address of the rewardToken (i.e., WETH)

startHarvest

function startHarvest() external nonpayable

Start automatic harvest/selling transactions

Only callable by owner

stopHarvest

function stopHarvest() external nonpayable

Stop automatic harvest transactions

Only callable by owner

thresholdAmount

function thresholdAmount() external view returns (uint256)

Returns

NameTypeDescription
-uint256threshold amount (in rewardToken) to trigger a sale on Uniswap V3

totalShares

function totalShares() external view returns (uint256)

Returns

NameTypeDescription
totalSharesuint256number of total (secondary) shares

tradingFeeUniswapV3

function tradingFeeUniswapV3() external view returns (uint24)

Returns

NameTypeDescription
tradingFeeUniswapV3uint24trading fee for Uniswap v3 (e.g., 3000 --> 0.30%, 500 --> 0.05%)

transferOwnership

function transferOwnership(address newOwner) external nonpayable

Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.

Parameters

NameTypeDescription
newOwneraddressaddress of the new owner

uniswapRouter

function uniswapRouter() external view returns (contract ISwapRouter)

Returns

NameTypeDescription
-contract ISwapRouteraddress of the Uniswap V3 swap router

unpause

function unpause() external nonpayable

Unpause

Only callable by owner

updateHarvestBufferBlocks

function updateHarvestBufferBlocks(uint256 _newHarvestBufferBlocks) external nonpayable

Update harvest buffer block

Only callable by owner.

Parameters

NameTypeDescription
newHarvestBufferBlocksuint256buffer in blocks between two harvest operations

updateMaxPriceOfLOOKSInWETH

function updateMaxPriceOfLOOKSInWETH(uint256 _newMaxPriceLOOKSInWETH) external nonpayable

Update maximum price of LOOKS in WETH

Only callable by owner

Parameters

NameTypeDescription
newMaxPriceLOOKSInWETHuint256new maximum price of LOOKS in WETH times 1e18

updateThresholdAmount

function updateThresholdAmount(uint256 _newThresholdAmount) external nonpayable

Adjust threshold amount for periodic Uniswap v3 WETH to LOOKS conversion

Only callable by owner

Parameters

NameTypeDescription
newThresholdAmountuint256new threshold amount (in WETH)

updateTradingFeeUniswapV3

function updateTradingFeeUniswapV3(uint24 _newTradingFeeUniswapV3) external nonpayable

Adjust trading fee for Uniswap v3

Only callable by owner. Can only be 10,000 (1%), 3000 (0.3%), or 500 (0.05%).

Parameters

NameTypeDescription
newTradingFeeUniswapV3uint24new trading fee for Uniswap V3

userInfo

function userInfo(address) external view returns (uint256)

Parameters

NameTypeDescription
-addressaddress of the user

Returns

NameTypeDescription
-uint256number of shares of the user

withdraw

function withdraw(uint256 shares) external nonpayable

Redeem shares for LOOKS tokens

Parameters

NameTypeDescription
sharesuint256number of shares to redeem

withdrawAll

function withdrawAll() external nonpayable

Withdraw all shares of sender

Events

ConversionToLOOKS

event ConversionToLOOKS(uint256 amountSold, uint256 amountReceived)

Parameters

NameTypeDescription
amountSolduint256amount of tokens sold (in rewardToken)
amountReceiveduint256amount of LOOKS received

Deposit

event Deposit(address indexed user, uint256 amount)

Parameters

NameTypeDescription
user indexedaddressaddress of the user
amountuint256amount deposited in LOOKS

FailedConversion

event FailedConversion()

HarvestStart

event HarvestStart()

HarvestStop

event HarvestStop()

NewHarvestBufferBlocks

event NewHarvestBufferBlocks(uint256 harvestBufferBlocks)

Parameters

NameTypeDescription
harvestBufferBlocksuint256number of blocks between two consecutive harvests

NewMaximumPriceLOOKSInWETH

event NewMaximumPriceLOOKSInWETH(uint256 maxPriceLOOKSInWETH)

Parameters

NameTypeDescription
maxPriceLOOKSInWETHuint256maximum price of LOOKS in WETH times 1e18

NewThresholdAmount

event NewThresholdAmount(uint256 thresholdAmount)

Parameters

NameTypeDescription
thresholdAmountuint256threshold amount (in rewardToken) to trigger a sale on Uniswap V3

NewTradingFeeUniswapV3

event NewTradingFeeUniswapV3(uint24 tradingFeeUniswapV3)

Parameters

NameTypeDescription
tradingFeeUniswapV3uint24trading fee for Uniswap V3

OwnershipTransferred

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)

Parameters

NameTypeDescription
previousOwner indexedaddressaddress of the previous owner
newOwner indexedaddressaddress of the new owner

Paused

event Paused(address account)

Parameters

NameTypeDescription
accountaddress-

Unpaused

event Unpaused(address account)

Parameters

NameTypeDescription
accountaddress-

Withdraw

event Withdraw(address indexed user, uint256 amount)

Parameters

NameTypeDescription
user indexedaddressaddress of the user
amountuint256amount received (in LOOKS)