织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

DeFi YAM,一行代码如何蒸发数亿美元?(4)

时间:2020-08-14 08:40来源:未知 作者:admin 点击:
通过对代码分析,buyReserveAndTransfer 首先会计算在 Uniswap 中用于兑换 yCRV 的 YAM 的数量,如果该数量少于 YAM 的铸币数量,则会将多余的增发的 YAM 币给 res

通过对代码分析,buyReserveAndTransfer 首先会计算在 Uniswap 中用于兑换 yCRV 的 YAM 的数量,如果该数量少于 YAM 的铸币数量,则会将多余的增发的 YAM 币给 reserves 合约,这一步是通过 Uniswap 合约调用 rebase 合约的 uniswapV2Call 函数实现的,具体的代码如下:

function uniswapV2Call(    address sender,    uint256 amount0,    uint256 amount1,    bytes memory data   )    public   {    // enforce that it is coming from uniswap    require(msg.sender == uniswap_pair, "bad msg.sender");    // enforce that this contract called uniswap    require(sender == address(this), "bad origin");     (UniVars memory uniVars) = abi.decode(data, (UniVars));    YAMTokenInterface yam = YAMTokenInterface(yamAddress);    if (uniVars.amountFromReserves > 0) {      // transfer from reserves and mint to uniswap      yam.transferFrom(reservesContract, uniswap_pair, uniVars.amountFromReserves);      if (uniVars.amountFromReserves < uniVars.yamsToUni) {        // if the amount from reserves > yamsToUni, we have fully paid for the yCRV tokens        // thus this number would be 0 so no need to mint        yam.mint(uniswap_pair, uniVars.yamsToUni.sub(uniVars.amountFromReserves));       }     } else {      // mint to uniswap      yam.mint(uniswap_pair, uniVars.yamsToUni);     }    // mint unsold to mintAmount    //SlowMist// 将多余的 YAM 代币分发给 reserves 合约    if (uniVars.mintToReserves > 0) {      yam.mint(reservesContract, uniVars.mintToReserves);     }    // transfer reserve token to reserves    if (isToken0) {      SafeERC20.safeTransfer(IERC20(reserveToken), reservesContract, amount1);      emit TreasuryIncreased(amount1, uniVars.yamsToUni, uniVars.amountFromReserves, uniVars.mintToReserves);     } else {      SafeERC20.safeTransfer(IERC20(reserveToken), reservesContract, amount0);      emit TreasuryIncreased(amount0, uniVars.yamsToUni, uniVars.amountFromReserves, uniVars.mintToReserves);     }   } (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容