Skip to content

Commit

Permalink
feat: preview redeem tests
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyonline committed Oct 2, 2024
1 parent c0acfa0 commit 7323c90
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 1 deletion.
64 changes: 64 additions & 0 deletions test/integration/ynEIGEN/ynEigen.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,70 @@ contract ynEigenTest is ynEigenIntegrationBaseTest {
uint256 ethAmount = assetRegistry.convertToUnitOfAccount(asset, amount);
assertEq(ethAmount, expectedETHAmount, "convertToEth does not match expected value");
}

function testPreviewRedeemWSTETH(uint256 amount) public {
vm.assume(
amount < 10000 ether && amount >= 10 wei
);

IERC20 asset = IERC20(chainAddresses.lsd.WSTETH_ADDRESS);

uint256 wstethPrice = rateProvider.rate(chainAddresses.lsd.WSTETH_ADDRESS);

uint256 expectedRedeemPreview = amount * 1e18 / wstethPrice;
uint256 previewRedeem = ynEigenToken.previewRedeem(asset, amount);
assertEq(previewRedeem, expectedRedeemPreview, "testPreviewRedeemWSTETH: E0");
}

function testPreviewRedeemWOETH(uint256 amount) public {
vm.assume(
amount < 10000 ether && amount >= 10 wei
);

IERC20 asset = IERC20(chainAddresses.lsd.WOETH_ADDRESS);

uint256 woethPrice = rateProvider.rate(chainAddresses.lsd.WOETH_ADDRESS);

uint256 expectedRedeemPreview = amount * 1e18 / woethPrice;
uint256 previewRedeem = ynEigenToken.previewRedeem(asset, amount);
assertEq(previewRedeem, expectedRedeemPreview, "testPreviewRedeemWOETH: E0");
}

function testPreviewRedeemSFRXETH(uint256 amount) public {
vm.assume(
amount < 10000 ether && amount >= 10 wei
);

IERC20 asset = IERC20(chainAddresses.lsd.SFRXETH_ADDRESS);

uint256 sfrxETHPrice = rateProvider.rate(chainAddresses.lsd.SFRXETH_ADDRESS);

uint256 expectedRedeemPreview = amount * 1e18 / sfrxETHPrice;
uint256 previewRedeem = ynEigenToken.previewRedeem(asset, amount);
assertEq(previewRedeem, expectedRedeemPreview, "testPreviewRedeemSFRXETH: E0");
}

function testPreviewRedeemRETH(uint256 amount) public {
vm.assume(
amount < 10000 ether && amount >= 10 wei
);

IERC20 asset = IERC20(chainAddresses.lsd.RETH_ADDRESS);

uint256 rethPrice = rateProvider.rate(chainAddresses.lsd.RETH_ADDRESS);

uint256 expectedRedeemPreview = amount * 1e18 / rethPrice;
uint256 previewRedeem = ynEigenToken.previewRedeem(asset, amount);
assertEq(previewRedeem, expectedRedeemPreview, "testPreviewRedeemRETH: E0");
}

function testPreviewRedeemNoAssets(uint256 amount) public {
vm.assume(
amount < 10000 ether && amount >= 10 wei
);

assertEq(amount, ynEigenToken.previewRedeem(amount), "testPreviewRedeemNoAssets: E0");
}
}

contract ynTransferPauseTest is ynEigenIntegrationBaseTest {
Expand Down
2 changes: 1 addition & 1 deletion test/scenarios/ynEIGEN/ynLSDeWithdrawals.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ contract ynLSDeWithdrawalsTest is ynLSDeScenarioBaseTest {
// internal helpers
//

function _setupTokenStakingNode(uint256 _amount) private { // @todo - add totalAssets check
function _setupTokenStakingNode(uint256 _amount) private {
vm.assume(_amount > 10_000 && _amount < 100 ether);

vm.prank(actors.ops.STAKING_NODE_CREATOR);
Expand Down

0 comments on commit 7323c90

Please sign in to comment.