diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..9271935 --- /dev/null +++ b/404.html @@ -0,0 +1,756 @@ + + + +
+ + + + + + + + + + + + + + + + +A Honeypot token refers to a malicious token smart contract designed to attract users to buy the token but prevent them from selling it. This is achieved through malicious code within the contract, which traps the user's assets, leading to potential financial loss.
+Mintable indicates that the token allows for potential malicious minting. The deployer can continuously mint new tokens, draining the liquidity pool for profit. This can trigger a massive sell-off, causing the coin price to plummet and leading to significant losses for other token holders.
+function mint(unit256 amount) external onlyowner {
+ _balances[_msgSender()] += amount;
+}
+
Ownership allows adjustments to contract parameters and status, such as minting, slippage modification, trading suspension, and blacklist settings. If the contract's owner cannot be retrieved, is a black hole address, or lacks an owner, these functions are usually disabled. However, these risky functions may be reactivated if ownership is reclaimed.
+function lock(uint256 time) public virtual onlyOwner {
+ _previousOwner = _owner;
+ _owner = address(0);
+}
+
+function unlock() public virtual {
+ require(_previousOwner == msg.sender, );
+ _owner = _previousOwner;
+}
+
Tokens with this feature allow the owner to modify anyone's balance, potentially setting it to 0 or enabling massive minting and sell-off. This function generally relies on ownership. If the contract's owner cannot be retrieved, is a black hole address, or lacks an owner, ownership-related functionality is usually disabled.
+function setBalance(address user, uint256 value) public onlyOwner returns (bool) {
+ _balances[user] = value
+ return true;
+}
+
Hidden ownership is used by developers to maintain ownership ability even after abandoning ownership, and is often an indicator of malicious intent. When a hidden owner exists, the ownership has not been abandoned.
+modifier superman() {
+ require(superman == _msgSender(), );
+}
+
When the self-destruct function is triggered, the contract is destroyed, making all its functions unavailable and erasing all related assets. This method can also be used to update the contract by replacing it with a new one.
+function close(address payable to) external onlyOwner {
+ selfdestruct(to);
+}
+
External calls make this contract's implementation dependent on other external contracts, which may introduce additional risks.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ _balances[recipient] += amount;
+ address1.transfer(amount);
+ emit Transfer(_msgSender(), recipient, amount);
+ return true;
+}
+
The contract owner can add any address to the blacklist, preventing those addresses from trading. Abuse of this function poses significant risks. For contracts without an owner, or if the owner is a black hole address, the blacklist cannot be updated, but the existing blacklist remains in effect.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ _balances[recipient] += amount;
+ require(black[from] != 1,);
+ emit Transfer(_msgSender(), recipient, amount);
+ return true;
+}
+
WhiteListFunction is used to allow specific addresses to make early transactions, tax-free, and unaffected by transaction suspensions. For contracts without an owner, or if the owner is a black hole address, the whitelist cannot be updated, but the existing whitelist remains in effect.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ uint256 fee = amount.mul(feeRate).div(100);
+ if (whitelist[msg.sender] == ture)
+ fee = 0;
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+
Tokens with modifiable tax allow the contract owner to change the buy or sell tax rates. This can cause losses, especially if the contract allows unlimited tax rate modifications, potentially making the token untradeable. This function generally relies on ownership. If the contract does not have an owner, or if the owner is a black hole address and cannot be retrieved, this function may be disabled.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ uint256 fee = amount.mul(feeRate).div(100);
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+
+function setFee(uint256 _fee) external onlyOwner{
+ fee = _fee;
+}
+
TransferPausable allows the contract owner to suspend trading at any time, preventing anyone from selling except those with special authority. This function generally relies on ownership. If the contract does not have an owner, or if the owner is a black hole address and cannot be retrieved, this function maybe be disabled.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount,);
+ require(tradeEnabled,);
+ _balances[_msgSender()] -= amount;
+ _balances[recipient] += amount;
+ emit Transfer(_msgSender(), recipient, amount);
+ return true;
+}
+
+function setTradeEnabled(bool _enabled) external onlyOwner {
+ tradeEnabled = _enabled;
+}
+
The contract owner can set an extremely high tax rate for a specific address to block it from trading. Abuse of this function poses significant risks. For contracts without an owner, or if the owner is a black hole address, this function cannot be used, but the existing tax rate remains in effect.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, "TT: transfer amount exceeds balance");
+ _balances[_msgSender()] -= amount;
+ if (addressFee[from] > 0) {
+ fee = addressFee[from];
+ }
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+
+function setFee(address _address, uint256 _fee) external onlyOwner{
+ addressFee[from] = _fee;
+}
+
SaleRestriction prevents users from selling all their tokens in a single sale. Users may be required to retain a certain percentage, such as 10%, or a fixed number of tokens, such as 10 tokens.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ require(_balances(from).sub(amount)>=1*10**18,);
+ _balances[_msgSender()] -= amount;
+ _balances[recipient] += amount;
+ emit Transfer(_msgSender(), recipient, amount);
+ return true;
+}
+
AntiWhale describes whether the contract limits the maximum transaction amount or the maximum token holding for a single address.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ require(amount <= maxAmount,);
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+
AntiWhaleModification describes whether the contract can modify the maximum transaction amount or the maximum token holding for a single address. For contracts without an owner, or if the owner is a black hole address, this risk may not happen.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ require(amount <= maxAmount,);
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+
+function setMaxAmount(uint256 _maxAmount) external onlyOwner {
+ maxAmount = _maxAmount;
+}
+
TradingCooldown describes whether the contract has a trading cooldown mechanism that limits the minimum time between two transactions.
+function _transfer(address from, address recipient, uint256 amount) internal virtual override returns (bool) {
+ require(_balances[_msgSender()] >= amount, );
+ _balances[_msgSender()] -= amount;
+ require(cooldownTimer[recipient] < block.timestamp, );
+ cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
+ _balances[recipient] += (amount-fee);
+ emit Transfer(_msgSender(), recipient, amount-fee);
+ return true;
+}
+