Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
CATAMA.addLiquidity(uint256,uint256) (#741-755) sends eth to arbitrary user
Dangerous calls:
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in CATAMA._transfer(address,address,uint256) (#636-693):
External calls:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _rOwned[to] = _rOwned[to] + rAmount (#613)
- _rOwned[sender] = _rOwned[sender] - rAmount (#798)
- _rOwned[recipient] = _rOwned[recipient] + rTransferAmount (#803)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _rTotal = _rTotal - rFee (#571)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _tOwned[to] = _tOwned[to] + tAmount (#615)
- _tOwned[sender] = _tOwned[sender] - tAmount (#800)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#805)
Apply the check-effects-interactions pattern.
Additional information: link
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
CATAMA.swapAndLiquify(uint256) (#695-721) performs a multiplication on the result of a division:
-bnbForTeam = newBalance / 10000 * _percentageOfLiquidityForTeam (#705)
CATAMA.swapAndLiquify(uint256) (#695-721) performs a multiplication on the result of a division:
-bnbForMarketing = newBalance / 10000 * _percentageOfLiquidityForMarketing (#706)
Consider ordering multiplication before division.
Additional information: link
CATAMA.addToBlacklist(address[]).i (#788) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
CATAMA.allowance(address,address).owner (#411) shadows:
- Ownable.owner() (#39-41) (function)
CATAMA._approve(address,address,uint256).owner (#628) shadows:
- Ownable.owner() (#39-41) (function)
Rename the local variables that shadow another component.
Additional information: link
CATAMA.setMaxTx(uint256) (#497-499) should emit an event for:
- _maxTxAmount = maxTx (#498)
CATAMA.setMinTokenBalance(uint256) (#501-503) should emit an event for:
- _minTokenBalance = minTokenBalance (#502)
CATAMA.setAntiWhaleThreshold(uint256) (#521-523) should emit an event for:
- _antiWhaleThreshold = antiWhaleThreshold (#522)
CATAMA.setFeesTransfer(uint256,uint256) (#525-528) should emit an event for:
- _taxFee = taxFee (#526)
- _liquidityFee = liquidityFee (#527)
CATAMA.setFeesBuy(uint256,uint256) (#530-533) should emit an event for:
- _taxFeeBuy = taxFee (#531)
- _liquidityFeeBuy = liquidityFee (#532)
CATAMA.setFeesSell(uint256,uint256) (#535-538) should emit an event for:
- _taxFeeSell = taxFee (#536)
- _liquidityFeeSell = liquidityFee (#537)
CATAMA.setLiquidityPercentages(uint256,uint256) (#545-548) should emit an event for:
- _percentageOfLiquidityForTeam = teamFee (#546)
- _percentageOfLiquidityForMarketing = marketingFee (#547)
Emit an event for critical parameter changes.
Additional information: link
CATAMA.setAddresses(address,address).teamWallet (#540) lacks a zero-check on :
- _teamWallet = teamWallet (#541)
CATAMA.setAddresses(address,address).marketingWallet (#540) lacks a zero-check on :
- _marketingWallet = marketingWallet (#542)
CATAMA.setUniswapPair(address).p (#562) lacks a zero-check on :
- uniswapV2Pair = p (#563)
Check that the address is not zero.
Additional information: link
Reentrancy in CATAMA._transfer(address,address,uint256) (#636-693):
External calls:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _liquidityFee = 0 (#766)
- _liquidityFee = _liquidityFeeBuy (#770)
- _liquidityFee = _liquidityFeeSell (#774)
- _liquidityFee = previousLiquidityFee (#781)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _tFeeTotal = _tFeeTotal + tFee (#572)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _taxFee = 0 (#765)
- _taxFee = _taxFeeBuy (#769)
- _taxFee = _taxFeeSell (#773)
- _taxFee = previousTaxFee (#780)
Reentrancy in CATAMA.constructor() (#353-380):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#361-362)
State variables written after the call(s):
- _isExcludedFromAntiWhale[owner()] = true (#372)
- _isExcludedFromAntiWhale[address(this)] = true (#373)
- _isExcludedFromAntiWhale[uniswapV2Pair] = true (#374)
- _isExcludedFromAntiWhale[address(uniswapV2Router)] = true (#375)
- _isExcludedFromAntiWhale[_burnAddress] = true (#376)
- _isExcludedFromAutoLiquidity[uniswapV2Pair] = true (#369)
- _isExcludedFromAutoLiquidity[address(uniswapV2Router)] = true (#370)
- _isExcludedFromFee[owner()] = true (#366)
- _isExcludedFromFee[address(this)] = true (#367)
- _isExcludedFromMaxTx[owner()] = true (#377)
- uniswapV2Router = _uniswapV2Router (#363)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- swapTokensForBnb(half) (#702)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
External calls sending eth:
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
State variables written after the call(s):
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- _allowances[owner][spender] = amount (#632)
Reentrancy in CATAMA.transferFrom(address,address,uint256) (#419-423):
External calls:
- _transfer(sender,recipient,amount) (#420)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- _transfer(sender,recipient,amount) (#420)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#421)
- _allowances[owner][spender] = amount (#632)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in CATAMA._transfer(address,address,uint256) (#636-693):
External calls:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
Event emitted after the call(s):
- Transfer(sender,to,tAmount) (#617)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- Transfer(sender,recipient,tTransferAmount) (#810)
- _tokenTransfer(from,to,amount,takeFee) (#684)
Reentrancy in CATAMA.constructor() (#353-380):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#361-362)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#379)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- swapTokensForBnb(half) (#702)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
Event emitted after the call(s):
- TeamSent(_teamWallet,bnbForTeam) (#710)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- swapTokensForBnb(half) (#702)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- address(_teamWallet).transfer(bnbForTeam) (#711)
Event emitted after the call(s):
- MarketingSent(_marketingWallet,bnbForMarketing) (#714)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- swapTokensForBnb(half) (#702)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
External calls sending eth:
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#633)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- SwapAndLiquify(half,bnbAdded,tokenAdded) (#720)
Reentrancy in CATAMA.transferFrom(address,address,uint256) (#419-423):
External calls:
- _transfer(sender,recipient,amount) (#420)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#732-738)
External calls sending eth:
- _transfer(sender,recipient,amount) (#420)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#633)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#421)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#70-75) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is still locked) (#72)
Avoid relying on block.timestamp.
Additional information: link
CATAMA.includeInReward(address) (#475-487) has costly operations inside a loop:
- _excluded.pop() (#483)
Use a local variable to hold the loop computation result.
Additional information: link
Context._msgData() (#9-12) is never used and should be removed
Remove unused functions.
Additional information: link
CATAMA._rTotal (#302) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
CATAMA._maxTxAmount (#324) is set pre-construction with a non-constant function or state variable:
- _tTotal * 25 / 10000
CATAMA._minTokenBalance (#325) is set pre-construction with a non-constant function or state variable:
- _tTotal / 200
CATAMA._antiWhaleThreshold (#342) is set pre-construction with a non-constant function or state variable:
- _tTotal * 100 / 10000
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#109) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#110) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#127) is not in mixedCase
Function IUniswapV2Router01.WETH() (#147) is not in mixedCase
Parameter CATAMA.setSwapAndLiquifyEnabled(bool)._enabled (#550) is not in mixedCase
Variable CATAMA._isExcludedFromAutoLiquidity (#288) is not in mixedCase
Variable CATAMA._isExcludedFromAntiWhale (#289) is not in mixedCase
Variable CATAMA._isExcludedFromBuy (#290) is not in mixedCase
Variable CATAMA._isBlacklisted (#291) is not in mixedCase
Variable CATAMA._isExcludedFromMaxTx (#292) is not in mixedCase
Constant CATAMA._burnAddress (#298) is not in UPPER_CASE_WITH_UNDERSCORES
Constant CATAMA._name (#305) is not in UPPER_CASE_WITH_UNDERSCORES
Constant CATAMA._symbol (#306) is not in UPPER_CASE_WITH_UNDERSCORES
Constant CATAMA._decimals (#307) is not in UPPER_CASE_WITH_UNDERSCORES
Variable CATAMA._taxFee (#313) is not in mixedCase
Variable CATAMA._liquidityFee (#314) is not in mixedCase
Variable CATAMA._taxFeeBuy (#317) is not in mixedCase
Variable CATAMA._liquidityFeeBuy (#318) is not in mixedCase
Variable CATAMA._taxFeeSell (#321) is not in mixedCase
Variable CATAMA._liquidityFeeSell (#322) is not in mixedCase
Variable CATAMA._maxTxAmount (#324) is not in mixedCase
Variable CATAMA._minTokenBalance (#325) is not in mixedCase
Variable CATAMA._isAntiWhaleEnabled (#341) is not in mixedCase
Variable CATAMA._antiWhaleThreshold (#342) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#10)" inContext (#4-13)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in CATAMA._transfer(address,address,uint256) (#636-693):
External calls:
- swapAndLiquify(contractTokenBalance) (#676)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#676)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _liquidityFee = 0 (#766)
- _liquidityFee = _liquidityFeeBuy (#770)
- _liquidityFee = _liquidityFeeSell (#774)
- _liquidityFee = previousLiquidityFee (#781)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _rOwned[to] = _rOwned[to] + rAmount (#613)
- _rOwned[sender] = _rOwned[sender] - rAmount (#798)
- _rOwned[recipient] = _rOwned[recipient] + rTransferAmount (#803)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _rTotal = _rTotal - rFee (#571)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _tFeeTotal = _tFeeTotal + tFee (#572)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _tOwned[to] = _tOwned[to] + tAmount (#615)
- _tOwned[sender] = _tOwned[sender] - tAmount (#800)
- _tOwned[recipient] = _tOwned[recipient] + tTransferAmount (#805)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- _taxFee = 0 (#765)
- _taxFee = _taxFeeBuy (#769)
- _taxFee = _taxFeeSell (#773)
- _taxFee = previousTaxFee (#780)
Event emitted after the call(s):
- Transfer(sender,to,tAmount) (#617)
- _tokenTransfer(from,to,amount,takeFee) (#684)
- Transfer(sender,recipient,tTransferAmount) (#810)
- _tokenTransfer(from,to,amount,takeFee) (#684)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- address(_teamWallet).transfer(bnbForTeam) (#711)
Event emitted after the call(s):
- MarketingSent(_marketingWallet,bnbForMarketing) (#714)
Reentrancy in CATAMA.swapAndLiquify(uint256) (#695-721):
External calls:
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
External calls sending eth:
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
State variables written after the call(s):
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- _allowances[owner][spender] = amount (#632)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#633)
- (tokenAdded,bnbAdded) = addLiquidity(otherHalf,bnbForLiquidity) (#718)
- SwapAndLiquify(half,bnbAdded,tokenAdded) (#720)
Reentrancy in CATAMA.transferFrom(address,address,uint256) (#419-423):
External calls:
- _transfer(sender,recipient,amount) (#420)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
External calls sending eth:
- _transfer(sender,recipient,amount) (#420)
- (amountToken,amountETH) = uniswapV2Router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#746-753)
- address(_teamWallet).transfer(bnbForTeam) (#711)
- address(_marketingWallet).transfer(bnbForMarketing) (#715)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#421)
- _allowances[owner][spender] = amount (#632)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#633)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#421)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#152) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#153)
Variable CATAMA.reflectionFromToken(uint256,bool).rTransferAmount (#453) is too similar to CATAMA._transferStandard(address,address,uint256).tTransferAmount (#794)
Variable CATAMA._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#587) is too similar to CATAMA._getTValues(uint256).tTransferAmount (#578)
Variable CATAMA.reflectionFromToken(uint256,bool).rTransferAmount (#453) is too similar to CATAMA._getTValues(uint256).tTransferAmount (#578)
Variable CATAMA._transferStandard(address,address,uint256).rTransferAmount (#796) is too similar to CATAMA._getTValues(uint256).tTransferAmount (#578)
Variable CATAMA._transferStandard(address,address,uint256).rTransferAmount (#796) is too similar to CATAMA._transferStandard(address,address,uint256).tTransferAmount (#794)
Variable CATAMA._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#587) is too similar to CATAMA._transferStandard(address,address,uint256).tTransferAmount (#794)
Prevent variables from having similar names.
Additional information: link
CATAMA.slitherConstructorVariables() (#282-814) uses literals with too many digits:
- _tTotal = 10000000 * 10 ** 9 (#301)
CATAMA.slitherConstructorConstantVariables() (#282-814) uses literals with too many digits:
- _burnAddress = 0x000000000000000000000000000000000000dEaD (#298)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
CATAMA._tTotal (#301) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#48-51)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#53-57)
getUnlockTime() should be declared external:
- Ownable.getUnlockTime() (#59-61)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#63-68)
unlock() should be declared external:
- Ownable.unlock() (#70-75)
name() should be declared external:
- CATAMA.name() (#382-384)
symbol() should be declared external:
- CATAMA.symbol() (#386-388)
decimals() should be declared external:
- CATAMA.decimals() (#390-392)
totalSupply() should be declared external:
- CATAMA.totalSupply() (#394-399)
transfer(address,uint256) should be declared external:
- CATAMA.transfer(address,uint256) (#406-409)
allowance(address,address) should be declared external:
- CATAMA.allowance(address,address) (#411-413)
approve(address,uint256) should be declared external:
- CATAMA.approve(address,uint256) (#415-418)
transferFrom(address,address,uint256) should be declared external:
- CATAMA.transferFrom(address,address,uint256) (#419-423)
increaseAllowance(address,uint256) should be declared external:
- CATAMA.increaseAllowance(address,uint256) (#425-428)
decreaseAllowance(address,uint256) should be declared external:
- CATAMA.decreaseAllowance(address,uint256) (#430-433)
isExcludedFromReward(address) should be declared external:
- CATAMA.isExcludedFromReward(address) (#435-437)
totalFees() should be declared external:
- CATAMA.totalFees() (#439-441)
reflectionFromToken(uint256,bool) should be declared external:
- CATAMA.reflectionFromToken(uint256,bool) (#443-456)
excludeFromReward(address) should be declared external:
- CATAMA.excludeFromReward(address) (#465-473)
setSwapAndLiquifyEnabled(bool) should be declared external:
- CATAMA.setSwapAndLiquifyEnabled(bool) (#550-553)
isExcludedFromFee(address) should be declared external:
- CATAMA.isExcludedFromFee(address) (#624-626)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts