Files
smom-dbis-138/test/treasury/ReceiverExecutorMainnet.t.sol
2026-03-02 12:14:09 -08:00

53 lines
1.8 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Test} from "forge-std/Test.sol";
import {ReceiverExecutorMainnet} from "../../contracts/treasury/ReceiverExecutorMainnet.sol";
contract ReceiverExecutorMainnetTest is Test {
ReceiverExecutorMainnet public receiver;
address public admin;
address public keeper;
address public bridge;
function setUp() public {
admin = address(1);
keeper = address(2);
bridge = address(0x99);
receiver = new ReceiverExecutorMainnet(admin);
vm.startPrank(admin);
receiver.grantRole(receiver.KEEPER_ROLE(), keeper);
vm.stopPrank();
}
function test_expectedWeth9Source_defaultZero() public view {
assertEq(receiver.getExpectedWeth9Source(), address(0));
assertEq(receiver.expectedWeth9Source(), address(0));
}
function test_setExpectedWeth9Source_success() public {
vm.prank(admin);
receiver.setExpectedWeth9Source(bridge);
assertEq(receiver.getExpectedWeth9Source(), bridge);
assertEq(receiver.expectedWeth9Source(), bridge);
}
function test_setExpectedWeth9Source_revert_notAdmin() public {
vm.prank(keeper);
vm.expectRevert();
receiver.setExpectedWeth9Source(bridge);
}
function test_receive_acceptsEth() public {
(bool sent,) = address(receiver).call{value: 1 ether}("");
assertTrue(sent);
assertEq(address(receiver).balance, 1 ether);
}
function test_constants_matchMainnet() public view {
assertEq(receiver.WETH9_MAINNET(), 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
assertEq(receiver.USDC_MAINNET(), 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
assertEq(receiver.USDT_MAINNET(), 0xdAC17F958D2ee523a2206206994597C13D831ec7);
}
}