- Deposit Boo, get xBoo using enter(uint256 _amount) public on BooMirrorWorld
- Give approval, deposit xBoo using deposit(uint256 _pid, uint256 _amount) external on Acelab
- Call pendingReward(uint256 _pid, address _user) on Acelab
- Use the returned value to call withdraw(uint256 _pid, uint256 _amount) on Acelab for the amount parameter This will transfer all the available reward tokens and 0 xBoo (leaving it for more rewards)
- Swap reward token -> Boo
- Repeat steps 1 and 2 of depositing
Optional: -When depositing in Acelab first pick the highest yield asset and use that pid to deposit
Naive algorithm:
- Loop through poolInfo
- Get the RewardPerSecond value
- Find the $ or Boo value of the token
- Convert to rewards in that value, pick highest
This would likely not work since the vault TVL could be > than most of the pools
Better algorithm:
- Loop through poolInfo
- Get the RewardPerSecond value
- Find the $ or Boo value of the token
- Convert to rewards in that value, sort the list by APY
- Allocate to pool nr 1 but only some % based on maxPoolAllocation variable (set by strategists)
- If the strategy has remaining TVL to allocate move to pool 2 and so on
Not a requirement but would be nice to check prices for pool allocation and selling of reward tokens
Look in to: https://twitter.com/FantomFDN/status/1471480699542818817