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?

Manage alerts

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

Quoted from Forex.com.bd-Editorial External question — Ethereum Stack Exchange Author: Rudrika Source score (net votes, not local likes): 0 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(); } }

Cancel quote

Checking account access…