Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
Pilot.setFees(uint256,uint256,uint256,uint256)._burn (contracts/Pilot.sol#66) shadows:
- ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#249-257) (function)
Rename the local variables that shadow another component.
Additional information: link
Pilot.setFees(uint256,uint256,uint256,uint256) (contracts/Pilot.sol#66-72) should emit an event for:
- lpBonusFee = _lpBonus (contracts/Pilot.sol#68)
- marketFee = _market (contracts/Pilot.sol#69)
- burnFee = _burn (contracts/Pilot.sol#70)
- fundFee = _fund (contracts/Pilot.sol#71)
Emit an event for critical parameter changes.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.6.0<0.8.0', '^0.7.0']
- >=0.6.0<0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20Burnable.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.7.0 (contracts/Pilot.sol#2)
Use one Solidity version.
Additional information: link
ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#249-257) has costly operations inside a loop:
- _totalSupply = _totalSupply.sub(amount) (@openzeppelin/contracts/token/ERC20/ERC20.sol#255)
Use a local variable to hold the loop computation result.
Additional information: link
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-23) is never used and should be removed
ERC20._setupDecimals(uint8) (@openzeppelin/contracts/token/ERC20/ERC20.sol#287-289) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#190-193) is never used and should be removed
SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#152-155) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#210-213) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#24-28) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#60-63) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#70-73) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#45-53) is never used and should be removed
SafeMath.trySub(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#35-38) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20Burnable.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) is too complex
Pragma version^0.7.0 (contracts/Pilot.sol#2) allows old versions
solc-0.7.0 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._opAddr (contracts/Pilot.sol#32) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._airdropAddr (contracts/Pilot.sol#33) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._liquidityAddr (contracts/Pilot.sol#34) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._chairAddr (contracts/Pilot.sol#35) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._vendingMachineAddr (contracts/Pilot.sol#36) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._powerBankAddr (contracts/Pilot.sol#37) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._TreadmillAddr (contracts/Pilot.sol#38) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._maskAddr (contracts/Pilot.sol#39) is not in mixedCase
Parameter Pilot.initSupply(address,address,address,address,address,address,address,address,address)._otherToolAddr (contracts/Pilot.sol#40) is not in mixedCase
Parameter Pilot.setFeeAddrs(address,address,address)._lpBonusAddr (contracts/Pilot.sol#55) is not in mixedCase
Parameter Pilot.setFeeAddrs(address,address,address)._marketAddr (contracts/Pilot.sol#55) is not in mixedCase
Parameter Pilot.setFeeAddrs(address,address,address)._fundAddr (contracts/Pilot.sol#55) is not in mixedCase
Parameter Pilot.setFees(uint256,uint256,uint256,uint256)._lpBonus (contracts/Pilot.sol#66) is not in mixedCase
Parameter Pilot.setFees(uint256,uint256,uint256,uint256)._market (contracts/Pilot.sol#66) is not in mixedCase
Parameter Pilot.setFees(uint256,uint256,uint256,uint256)._burn (contracts/Pilot.sol#66) is not in mixedCase
Parameter Pilot.setFees(uint256,uint256,uint256,uint256)._fund (contracts/Pilot.sol#66) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (@openzeppelin/contracts/utils/Context.sol#21)" inContext (@openzeppelin/contracts/utils/Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#54-57)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#63-67)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#64-66)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#72-74)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#89-91)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#134-137)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#152-156)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#170-173)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#189-192)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (@openzeppelin/contracts/token/ERC20/ERC20Burnable.sol#21-23)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20Burnable.sol#36-41)
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