// SPDX-License-Identifier: MIT pragma solidity 0.8.19; import "@openzeppelin/contracts/access/Ownable.sol"; import "../interfaces/IBlast.sol"; import "../interfaces/IWETH.sol"; contract TestWETHRebasing is Ownable { IBlast public constant blast = IBlast(0x4300000000000000000000000000000000000002); IWETH public constant WETH = IWETH(0x4200000000000000000000000000000000000023); constructor() { blast.configureClaimableGas(); WETH.configure(YieldMode.CLAIMABLE); } function withdrawETH(address to, uint256 amount) external onlyOwner { WETH.transfer(to, amount); } function claimAllYield(address to) external onlyOwner { uint256 amount = WETH.getClaimableAmount(address(this)); WETH.claim(to, amount); } function claimAllGas(address to) external onlyOwner { blast.claimAllGas(address(this), to); } function getClaimable() external view returns(uint256) { return WETH.getClaimableAmount(address(this)); } function deposit(uint256 amount) external { WETH.transferFrom(msg.sender, address(this), amount); } }