Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
PersianCat._getTValues(uint256) (#634-638) performs a multiplication on the result of a division:
-tFee = tAmount.div(100).mul(2) (#635)
Consider ordering multiplication before division.
Additional information: link
PersianCat.allowance(address,address).owner (#480) shadows:
- Ownable.owner() (#392-394) (function)
PersianCat._approve(address,address,uint256).owner (#561) shadows:
- Ownable.owner() (#392-394) (function)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (#258-267) uses assembly
- INLINE ASM (#265)
Address._functionCallWithValue(address,bytes,uint256,string) (#351-372) uses assembly
- INLINE ASM (#364-367)
Do not use evm assembly.
Additional information: link
PersianCat.includeAccount(address) (#548-559) has costly operations inside a loop:
- _excluded.pop() (#555)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#351-372) is never used and should be removed
Address.functionCall(address,bytes) (#311-313) is never used and should be removed
Address.functionCall(address,bytes,string) (#321-323) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#336-338) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#346-349) is never used and should be removed
Address.isContract(address) (#258-267) is never used and should be removed
Address.sendValue(address,uint256) (#285-291) is never used and should be removed
Context._msgData() (#20-23) is never used and should be removed
SafeMath.mod(uint256,uint256) (#218-220) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#234-237) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#285-291):
- (success) = recipient.call{value: amount}() (#289)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#351-372):
- (success,returndata) = target.call{value: weiValue}(data) (#355)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Constant PersianCat._tTotal (#441) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#21)" inContext (#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._transferStandard(address,address,uint256).rTransferAmount (#587) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._transferFromExcluded(address,address,uint256).tTransferAmount (#604)
Variable PersianCat._getRValues(uint256,uint256,uint256).rTransferAmount (#643) is too similar to PersianCat._getTValues(uint256).tTransferAmount (#636)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._transferFromExcluded(address,address,uint256).rTransferAmount (#604) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._getValues(uint256).rTransferAmount (#630) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._transferToExcluded(address,address,uint256).tTransferAmount (#595)
Variable PersianCat._transferToExcluded(address,address,uint256).rTransferAmount (#595) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._transferBothExcluded(address,address,uint256).tTransferAmount (#613)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._transferStandard(address,address,uint256).tTransferAmount (#587)
Variable PersianCat._transferBothExcluded(address,address,uint256).rTransferAmount (#613) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Variable PersianCat.reflectionFromToken(uint256,bool).rTransferAmount (#528) is too similar to PersianCat._getValues(uint256).tTransferAmount (#628)
Prevent variables from having similar names.
Additional information: link
PersianCat.slitherConstructorConstantVariables() (#429-664) uses literals with too many digits:
- _tTotal = 100000000 * 10 ** 6 (#441)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
PersianCat._decimals (#447) should be constant
PersianCat._name (#445) should be constant
PersianCat._symbol (#446) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#392-394)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#411-414)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#420-424)
name() should be declared external:
- PersianCat.name() (#454-456)
symbol() should be declared external:
- PersianCat.symbol() (#458-460)
decimals() should be declared external:
- PersianCat.decimals() (#462-464)
totalSupply() should be declared external:
- PersianCat.totalSupply() (#466-468)
balanceOf(address) should be declared external:
- PersianCat.balanceOf(address) (#470-473)
transfer(address,uint256) should be declared external:
- PersianCat.transfer(address,uint256) (#475-478)
allowance(address,address) should be declared external:
- PersianCat.allowance(address,address) (#480-482)
approve(address,uint256) should be declared external:
- PersianCat.approve(address,uint256) (#484-487)
transferFrom(address,address,uint256) should be declared external:
- PersianCat.transferFrom(address,address,uint256) (#489-493)
increaseAllowance(address,uint256) should be declared external:
- PersianCat.increaseAllowance(address,uint256) (#495-498)
decreaseAllowance(address,uint256) should be declared external:
- PersianCat.decreaseAllowance(address,uint256) (#500-503)
isExcluded(address) should be declared external:
- PersianCat.isExcluded(address) (#505-507)
totalFees() should be declared external:
- PersianCat.totalFees() (#509-511)
reflect(uint256) should be declared external:
- PersianCat.reflect(uint256) (#513-520)
reflectionFromToken(uint256,bool) should be declared external:
- PersianCat.reflectionFromToken(uint256,bool) (#522-531)
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