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

37 lines
1.2 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "forge-std/Test.sol";
import "../../contracts/registry/UniversalAssetRegistry.sol";
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
contract AccessControlSecurityTest is Test {
UniversalAssetRegistry public registry;
address public admin;
address public attacker;
function setUp() public {
admin = makeAddr("admin");
attacker = makeAddr("attacker");
vm.startPrank(admin);
UniversalAssetRegistry impl = new UniversalAssetRegistry();
bytes memory initData = abi.encodeWithSelector(UniversalAssetRegistry.initialize.selector, admin);
ERC1967Proxy proxy = new ERC1967Proxy(address(impl), initData);
registry = UniversalAssetRegistry(address(proxy));
vm.stopPrank();
}
function testCannotProposeWithoutRole() public {
vm.startPrank(attacker);
vm.expectRevert();
registry.proposeAsset(
makeAddr("token"),
UniversalAssetRegistry.AssetType.ERC20Standard,
UniversalAssetRegistry.ComplianceLevel.Public,
"Test", "TST", 18, "US", 50, 1e15, 1000000e18
);
vm.stopPrank();
}
}