chore: sync submodule state (parent ref update)
Made-with: Cursor
This commit is contained in:
64
test/compliance/CompliantWrappedTokenTest.t.sol
Normal file
64
test/compliance/CompliantWrappedTokenTest.t.sol
Normal file
@@ -0,0 +1,64 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
import {Test} from "forge-std/Test.sol";
|
||||
import {CompliantWrappedToken} from "../../contracts/tokens/CompliantWrappedToken.sol";
|
||||
|
||||
contract CompliantWrappedTokenTest is Test {
|
||||
CompliantWrappedToken public token;
|
||||
address public admin;
|
||||
address public bridge;
|
||||
address public user1;
|
||||
|
||||
bytes32 constant MINTER_ROLE = keccak256("MINTER_ROLE");
|
||||
bytes32 constant BURNER_ROLE = keccak256("BURNER_ROLE");
|
||||
|
||||
function setUp() public {
|
||||
admin = address(this);
|
||||
bridge = address(0xb);
|
||||
user1 = address(0x1);
|
||||
token = new CompliantWrappedToken("Wrapped cUSDT", "cWUSDT", 6, admin);
|
||||
token.grantRole(MINTER_ROLE, bridge);
|
||||
token.grantRole(BURNER_ROLE, bridge);
|
||||
}
|
||||
|
||||
function testDecimals() public view {
|
||||
assertEq(token.decimals(), 6);
|
||||
}
|
||||
|
||||
function testMint() public {
|
||||
vm.prank(bridge);
|
||||
token.mint(user1, 1000e6);
|
||||
assertEq(token.balanceOf(user1), 1000e6);
|
||||
}
|
||||
|
||||
function testMintRevertsNonMinter() public {
|
||||
vm.prank(user1);
|
||||
vm.expectRevert();
|
||||
token.mint(user1, 1000e6);
|
||||
}
|
||||
|
||||
function testBurn() public {
|
||||
vm.prank(bridge);
|
||||
token.mint(user1, 1000e6);
|
||||
vm.prank(bridge);
|
||||
token.burn(user1, 400e6);
|
||||
assertEq(token.balanceOf(user1), 600e6);
|
||||
}
|
||||
|
||||
function testBurnFrom() public {
|
||||
vm.prank(bridge);
|
||||
token.mint(user1, 1000e6);
|
||||
vm.prank(bridge);
|
||||
token.burnFrom(user1, 400e6);
|
||||
assertEq(token.balanceOf(user1), 600e6);
|
||||
}
|
||||
|
||||
function testBurnFromRevertsNonBurner() public {
|
||||
vm.prank(bridge);
|
||||
token.mint(user1, 1000e6);
|
||||
vm.prank(user1);
|
||||
vm.expectRevert();
|
||||
token.burnFrom(user1, 400e6);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user