-
合约地址: https://etherscan.io/address/0x16de59092dAE5CcF4A1E6439D611fd0653f0Bd01#code
-
iearn DAI(yDAI) 机枪池在dydx, Compound, Aave, bZx四个项目中寻找最高的apr年化收益,当发现更优的年化收益时,将会动态移仓,将所有DAI资产转移到更高收益的项目中
- 存款方法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
- 向推荐策略对应的项目存款