What is BlackList and why it is used in Tether Token Smart Contract? And what is the use of Pause and Unpause in Tether?
What is BlackList and why it is used in Tether Token Smart Contract? And what is the use of Pause and Unpause in Tether?
Loading saved threads...
Rudrika · External communityPost link
External question — Ethereum Stack Exchange
Author: Rudrika
Original post: https://ethereum.stackexchange.com/questions/64295
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
contract BlackList is Ownable, BasicToken {
function getBlackListStatus(address _maker) external constant returns (bool) {
return isBlackListed[_maker];
}
function getOwner() external constant returns (address) {
return owner;
}
mapping (address => bool) public isBlackListed;
function addBlackList (address _evilUser) public onlyOwner {
isBlackListed[_evilUser] = true;
emit AddedBlackList(_evilUser); //event emmiting
}
function removeBlackList (address _clearedUser) public onlyOwner {
isBlackListed[_clearedUser] = false;
emit RemovedBlackList(_clearedUser);
}
function destroyBlackFunds (address _blackListedUser) public onlyOwner {
require(isBlackListed[_blackListedUser]);
uint dirtyFunds = balanceOf(_blackListedUser);
balances[_blackListedUser] = 0;
_totalSupply -= dirtyFunds;
emit DestroyedBlackFunds(_blackListedUser, dirtyFunds);
}
event DestroyedBlackFunds(address _blackListedUser, uint _balance);
event AddedBlackList(address _user);
event RemovedBlackList(address _user);
}
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
modifier whenNotPaused() {
require(!paused);
_;
}
modifier whenPaused() {
require(paused);
_;
}
function pause() onlyOwner whenNotPaused public {
paused = true;
emit Pause();
}
function unpause() onlyOwner whenPaused public {
paused = false;
emit Unpause();
}
}
Quote
Report
Mr. Y · External communityPost link
External answer — Ethereum Stack Exchange
Author: Mr. Y
Original post: https://ethereum.stackexchange.com/a/64302
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
The use of BlackLiast is to provide functionality to block users to prevent unusual activities over contract. For pause or unpause i can't see any function regarding in your given code please provide full code so it can get easy to answer.
Quote
Report
Mehdi Rezaei · External communityPost link
External answer — Ethereum Stack Exchange
Author: Mehdi Rezaei
Original post: https://ethereum.stackexchange.com/a/172432
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
isBlackListed
is an address -> bool mapping used as an issuer-controlled transfer restriction. In the code shown, the public mapping generates an
isBlackListed(address)
getter, while
getBlackListStatus(address)
is just an explicit wrapper around the same mapping.
AddedBlackList
and
RemovedBlackList
are logs for changes; they do not themselves enforce anything unless the transfer logic checks the mapping.
The important part is the checks in
transfer
/
transferFrom
(often in a base token contract), for example rejecting a blacklisted sender or recipient before changing balances. If a check reverts, having a valid ETH private key, more gas, or a different wallet UI cannot override it: the restriction is executed by the token contract.
destroyBlackFunds
in this example is stronger still—it lets the owner burn the listed address’s balance, so it is an irreversible issuer action rather than a normal transfer freeze.
pause
/
unpause
is a separate global circuit breaker. A
whenNotPaused
modifier can stop all functions that use it while
paused
is true; it is not an address blacklist. Only the owner (or whatever role the deployed contract actually uses) can toggle it, and the verified deployed source should be checked because implementations differ. USDC uses the same general model—issuer-controlled blacklist and pause controls—but function names and events can differ, so verify the specific chain’s official contract.
For a practical check, query the verified contract’s read-only blacklist getter and inspect
AddedBlackList
/
RemovedBlackList
plus the failed transfer’s revert reason. I maintain FreezeRadar; a free multi-chain view is available at
https://freezeradar.com/scan
as a second check, not an unfreezing service.
Quote
Report
Post Reply
Checking account access…