Skip to content

Latest commit

 

History

History
53 lines (49 loc) · 2.8 KB

iearnDAI(yDAI).md

File metadata and controls

53 lines (49 loc) · 2.8 KB

iearn DAI(yDAI) 机枪池

主要方法

  • 存款方法deposit
    • 计算当前合约在(Compound合约,bZx合约,dydx合约,Aave合约,DAI合约)中的DAI余额
    • 从调用者账户向当前合约发送DAI
    • 计算存入数额对应的份额数量
    • 为调用者铸造份额
  • 投资方法invest
    • 计算当前合约在(Compound合约,bZx合约,dydx合约,Aave合约,DAI合约)中的DAI余额
    • 从调用者账户向当前合约发送DAI
    • 调用移仓方法
    • 计算存入数额对应的份额数量
    • 为调用者铸造份额
  • 取款方法withdraw
    • 获取用户的全部份额
    • 计算池子总量:当前合约在(Compound合约,bZx合约,dydx合约,Aave合约,DAI合约)中的DAI余额
    • 从池子中取出的数额 = 池子总量 * 取出的份额 / 总份额
    • 用户的余额 = 用户的余额 - 取出的份额
    • 总份额 = 总分额 - 取出的份额
    • 如果 当前合约在DAI合约中的余额 < 从池子中取出的数额
      • 从当前的投资策略中赎回资产,DAI数额为 从池子中取出的数额 - 当前合约在DAI合约中的余额(当前合约不足的部分)
    • 将DAI发送给用户数量为从池子中取出的数额
    • 重新计算池子总量
  • 赎回方法redeem
    • 获取用户的全部份额
    • 计算池子总量:当前合约在(Compound合约,bZx合约,dydx合约,Aave合约,DAI合约)中的DAI余额
    • 从池子中取出的数额 = 池子总量 * 取出的份额 / 总份额
    • 用户的余额 = 用户的余额 - 取出的份额
    • 总份额 = 总分额 - 取出的份额
    • 如果 当前合约在DAI合约中的余额 < 从池子中取出的数额
      • 如果 当前执行的策略不是推荐的策略
        • 提款全部
      • 否则
        • 从当前的投资策略中赎回资产,DAI数额为 从池子中取出的数额 - 当前合约在DAI合约中的余额(当前合约不足的部分)
    • 向用户发送数额为从池子中取出的数额的DAI
    • 如果 当前执行的策略不是推荐的策略
      • 内部移仓方法
    • 重新计算池子总量
  • 推荐策略方法recommend()
    • 根据调用apr合约找到最高apr的策略
    • 找到最大的apr值,并选择最高apr的策略名称
  • 移仓方法rebalance()
    • 根据调用apr合约找到最高apr的策略
    • 如果当前执行的策略不是推荐的策略
      • 提款全部DAI
      • 向推荐策略对应的项目存款