34 lines
955 B
Solidity
34 lines
955 B
Solidity
|
|
// SPDX-License-Identifier: MIT
|
||
|
|
pragma solidity ^0.8.20;
|
||
|
|
|
||
|
|
import "forge-std/Test.sol";
|
||
|
|
import "../../contracts/registry/UniversalAssetRegistry.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);
|
||
|
|
registry = new UniversalAssetRegistry();
|
||
|
|
registry.initialize(admin);
|
||
|
|
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();
|
||
|
|
}
|
||
|
|
}
|