feat: Wrap and unwrap ETH
--- don't change below this line --- ENG-4041 Took 2 hours 28 minutes Took 14 seconds Took 11 seconds Took 2 minutes Took 1 minute Took 7 minutes
This commit is contained in:
@@ -189,4 +189,28 @@ contract TychoRouterTest is TychoRouterTestSetup {
|
||||
tychoRouter.pause();
|
||||
vm.stopPrank();
|
||||
}
|
||||
|
||||
function testWrapETH() public {
|
||||
uint256 amount = 1 ether;
|
||||
vm.deal(BOB, amount);
|
||||
|
||||
vm.startPrank(BOB);
|
||||
tychoRouter.wrapETH{value: amount}(amount);
|
||||
vm.stopPrank();
|
||||
|
||||
assertEq(address(tychoRouter).balance, 0);
|
||||
assertEq(IERC20(WETH_ADDR).balanceOf(address(tychoRouter)), amount);
|
||||
}
|
||||
|
||||
function testUnwrapETH() public {
|
||||
uint256 amount = 1 ether;
|
||||
deal(WETH_ADDR, address(tychoRouter), amount);
|
||||
|
||||
vm.startPrank(BOB);
|
||||
tychoRouter.unwrapETH(amount);
|
||||
vm.stopPrank();
|
||||
|
||||
assertEq(address(tychoRouter).balance, amount);
|
||||
assertEq(IERC20(WETH_ADDR).balanceOf(address(tychoRouter)), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,16 +4,32 @@ pragma solidity ^0.8.13;
|
||||
import "@src/TychoRouter.sol";
|
||||
import "./Constants.sol";
|
||||
import "./mock/MockERC20.sol";
|
||||
import {WETH} from "../lib/permit2/lib/solmate/src/tokens/WETH.sol";
|
||||
|
||||
contract TychoRouterExposed is TychoRouter {
|
||||
constructor(address _permit2, address weth) TychoRouter(_permit2, weth) {}
|
||||
|
||||
function wrapETH(uint256 amount) external payable {
|
||||
return _wrapETH(amount);
|
||||
}
|
||||
|
||||
function unwrapETH(uint256 amount) external {
|
||||
return _unwrapETH(amount);
|
||||
}
|
||||
}
|
||||
|
||||
contract TychoRouterTestSetup is Test, Constants {
|
||||
TychoRouter tychoRouter;
|
||||
TychoRouterExposed tychoRouter;
|
||||
address executorSetter;
|
||||
address permit2Address = address(0x000000000022D473030F116dDEE9F6B43aC78BA3);
|
||||
MockERC20[] tokens;
|
||||
|
||||
function setUp() public {
|
||||
uint256 forkBlock = 21000000;
|
||||
vm.createSelectFork(vm.rpcUrl("mainnet"), forkBlock);
|
||||
|
||||
vm.startPrank(ADMIN);
|
||||
tychoRouter = new TychoRouter(permit2Address);
|
||||
tychoRouter = new TychoRouterExposed(permit2Address, WETH_ADDR);
|
||||
tychoRouter.grantRole(keccak256("EXECUTOR_SETTER_ROLE"), BOB);
|
||||
tychoRouter.grantRole(keccak256("FUND_RESCUER_ROLE"), FUND_RESCUER);
|
||||
tychoRouter.grantRole(keccak256("FEE_SETTER_ROLE"), FEE_SETTER);
|
||||
|
||||
Reference in New Issue
Block a user