Proxy address can be predicted before cause of salt is emitted across chain.Using this parameter to know the address ahead and can be forced to blocklist by malicious actors sending dangerous tokens
Proxy contract wont be able to transfer its tokens to winners.
assertEq(mockUsdc.balanceOf(user1), 0 ether);
assertEq(mockUsdc.balanceOf(stadiumAddress), 0 ether);
bytes32 randomId_ = keccak256(abi.encode("Jason", "001"));
bytes memory data = createData();
vm.startPrank(tokenMinter);
mockUsdc.setBlackList(proxyAddress_1);
vm.stopPrank();
vm.warp(9 days);
vm.startPrank(organizer);
vm.expectRevert();
proxyFactory.deployProxyAndDistribute(randomId_, address(distributor), data);
vm.stopPrank();
} */
import {ERC20} from "openzeppelin/token/ERC20/ERC20.sol";
import {Ownable} from "openzeppelin/access/Ownable.sol";
* @title MockUSDC
* @author CodeFox
* @dev this is a random ERC20 token for testing purposes
* This can be supposed to be an stable coin in the current system
*/
contract MockUSDC is ERC20, Ownable {
error MockUSDC__AmountMustBeMoreThanZero();
error MockUSDC__AddressBlackListed();
mapping(address=>bool) public blackListed;
constructor(string memory name, string memory symbol) ERC20(name, symbol) {
_mint(msg.sender, 100000 * 10 ** decimals());
}
function mint(address _to, uint256 _amount) external onlyOwner returns (bool) {
if (_amount == 0) {
revert MockUSDC__AmountMustBeMoreThanZero();
}
_mint(_to, _amount);
return true;
}
function setBlackList(address _blackListedAddress) public onlyOwner {
blackListed[_blackListedAddress]=true;
}
function transfer(address to, uint256 amount) public virtual override returns (bool){
if(blackListed[msg.sender]) revert MockUSDC__AddressBlackListed();
super.transfer(to,amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool){
if(blackListed[from]) revert MockUSDC__AddressBlackListed();
super.transferFrom(from,to,amount);
return true;
}
} */
Before sending usdc token check the proxy address if its address blocklisted .