Skip to content

Commit

Permalink
test: add SwapExactSyForYtTest
Browse files Browse the repository at this point in the history
  • Loading branch information
clemlak committed Jun 11, 2024
1 parent 32dcea9 commit aad70e7
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion test/unit/SwapExactSyForYt.t.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
/// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import {ERC20} from "solmate/tokens/ERC20.sol";
import {PYIndexLib, IPYieldToken, PYIndex} from "pendle/core/StandardizedYield/PYIndex.sol";
import {SetUp} from "../SetUp.sol";

contract SwapExactSyForYtTest is SetUp {}
contract SwapExactSyForYtTest is SetUp {
using PYIndexLib for IPYieldToken;

function test_swapExactSyForYt_TransfersTokens() public initSYPool {
address to = address(0xbeef);

deal(address(SY), address(this), 1 ether);
uint256 preSYBalance = ERC20(address(SY)).balanceOf(address(this));
uint256 preYTBalance = ERC20(address(YT)).balanceOf(to);
uint256 preSYBalanceRMM = ERC20(address(SY)).balanceOf(address(rmm));

uint256 amountIn = 1 ether;

PYIndex index = YT.newIndex();
uint256 ytOut = rmm.computeSYToYT(index, 1 ether, block.timestamp, 500 ether);
(uint256 amountOut,) = rmm.swapExactSyForYt(ytOut, 0, address(to));

assertEq(ERC20(address(SY)).balanceOf(address(this)), preSYBalance - amountIn);
assertEq(ERC20(address(YT)).balanceOf(to), preYTBalance + amountOut);
assertEq(ERC20(address(SY)).balanceOf(address(rmm)), preSYBalanceRMM + amountIn);
}
}

0 comments on commit aad70e7

Please sign in to comment.