Leonicorn Swap is a decentralized exchange (DEX) built and running on the Binance Smart Chain (BSC). The decentralized exchange introduces to the cryptocurrency industry new and advanced features that let Leonicorn Swap users earn and win tokens. Among the notable features include operating based on the Automated Market Makers (AMM) model and a non-fungible token (NFT) marketplace. This has helped project team build one of the most innovative platforms to allow users to trade digital assets and give them full control over their money and investment decisions. Leonicorn Swap is truly decentralized with the most user-friendly, efficient, and secure cryptocurrency solutions leveraging blockchain technology.
Founder and CEO of Leonicorn Swap is Mofassair Hossain. Mofassair is one of the top 10 Blockchain Start-up Marketing Advisers of 2018. He raised 600M USD over 5 years for more than 60 Projects. Besides he is a Member of Global Blockchain advisory professionals. In his profession, he is a Chartered Management Account (CIMA).
Contract ownership is not renounced (belongs to a wallet)
LeonicornSwap.includeAccount(address) (#586-597) has costly operations inside a loop:
- _excluded.pop() (#593)
Use a local variable to hold the loop computation result.
Additional information: link
LeonicornSwap.allowance(address,address).owner (#513) shadows:
- Ownable.owner() (#422-424) (function)
LeonicornSwap._approve(address,address,uint256).owner (#599) shadows:
- Ownable.owner() (#422-424) (function)
Rename the local variables that shadow another component.
Additional information: link
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#369-390):
- (success,returndata) = target.call{value: weiValue}(data) (#373)
Low level call in Address.sendValue(address,uint256) (#303-309):
- (success) = recipient.call{value: amount}() (#307)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
LeonicornSwap.slitherConstructorVariables() (#457-734) uses literals with too many digits:
- _tTotal = 210000000 * 10 ** uint256(_decimals) (#470)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
LeonicornSwap._setBurnFee(uint256) (#728-731) should emit an event for:
- _burnFee = burnFee (#730)
LeonicornSwap.deliver(uint256) (#550-557) should emit an event for:
- _tFeeTotal = _tFeeTotal.add(tAmount) (#556)
LeonicornSwap._setTaxFee(uint256) (#723-726) should emit an event for:
- _taxFee = taxFee (#725)
Emit an event for critical parameter changes.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#369-390) uses assembly
- INLINE ASM (#382-385)
Address.isContract(address) (#276-285) uses assembly
- INLINE ASM (#283)
Do not use evm assembly.
Additional information: link
Address.sendValue(address,uint256) (#303-309) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#354-356) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#249-252) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#364-367) is never used and should be removed
Context._msgData() (#15-18) is never used and should be removed
SafeMath.mod(uint256,uint256) (#233-235) is never used and should be removed
Address._functionCallWithValue(address,bytes,uint256,string) (#369-390) is never used and should be removed
Address.isContract(address) (#276-285) is never used and should be removed
Address.functionCall(address,bytes,string) (#339-341) is never used and should be removed
Address.functionCall(address,bytes) (#329-331) is never used and should be removed
Remove unused functions.
Additional information: link
LeonicornSwap._rTotal (#471) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
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 LeonicornSwap._setBurnFee(uint256) (#728-731) is not in mixedCase
Constant LeonicornSwap._name (#475) is not in UPPER_CASE_WITH_UNDERSCORES
Constant LeonicornSwap._decimals (#468) is not in UPPER_CASE_WITH_UNDERSCORES
Function LeonicornSwap._getTaxFee() (#714-716) is not in mixedCase
Function LeonicornSwap._getBurnFee() (#718-720) is not in mixedCase
Constant LeonicornSwap._symbol (#476) is not in UPPER_CASE_WITH_UNDERSCORES
Function LeonicornSwap._setTaxFee(uint256) (#723-726) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#16)" inContext (#10-19)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._getValues(uint256).rTransferAmount (#678) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._transferFromExcluded(address,address,uint256).tTransferAmount (#647)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._transferBothExcluded(address,address,uint256).rTransferAmount (#658) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Variable LeonicornSwap._transferStandard(address,address,uint256).rTransferAmount (#626) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._transferStandard(address,address,uint256).tTransferAmount (#626)
Variable LeonicornSwap._transferToExcluded(address,address,uint256).rTransferAmount (#636) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._transferToExcluded(address,address,uint256).tTransferAmount (#636)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap.reflectionFromToken(uint256,bool).rTransferAmount (#565) is too similar to LeonicornSwap._getTValues(uint256,uint256,uint256).tTransferAmount (#685)
Variable LeonicornSwap._transferFromExcluded(address,address,uint256).rTransferAmount (#647) is too similar to LeonicornSwap._transferBothExcluded(address,address,uint256).tTransferAmount (#658)
Variable LeonicornSwap._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#693) is too similar to LeonicornSwap._getValues(uint256).tTransferAmount (#676)
Prevent variables from having similar names.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#441-444)
totalFees() should be declared external:
- LeonicornSwap.totalFees() (#542-544)
_getBurnFee() should be declared external:
- LeonicornSwap._getBurnFee() (#718-720)
symbol() should be declared external:
- LeonicornSwap.symbol() (#491-493)
totalBurn() should be declared external:
- LeonicornSwap.totalBurn() (#546-548)
transfer(address,uint256) should be declared external:
- LeonicornSwap.transfer(address,uint256) (#508-511)
reflectionFromToken(uint256,bool) should be declared external:
- LeonicornSwap.reflectionFromToken(uint256,bool) (#559-568)
owner() should be declared external:
- Ownable.owner() (#422-424)
approve(address,uint256) should be declared external:
- LeonicornSwap.approve(address,uint256) (#517-520)
_getTaxFee() should be declared external:
- LeonicornSwap._getTaxFee() (#714-716)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#450-454)
decreaseAllowance(address,uint256) should be declared external:
- LeonicornSwap.decreaseAllowance(address,uint256) (#533-536)
totalSupply() should be declared external:
- LeonicornSwap.totalSupply() (#499-501)
name() should be declared external:
- LeonicornSwap.name() (#487-489)
deliver(uint256) should be declared external:
- LeonicornSwap.deliver(uint256) (#550-557)
decimals() should be declared external:
- LeonicornSwap.decimals() (#495-497)
allowance(address,address) should be declared external:
- LeonicornSwap.allowance(address,address) (#513-515)
transferFrom(address,address,uint256) should be declared external:
- LeonicornSwap.transferFrom(address,address,uint256) (#522-526)
increaseAllowance(address,uint256) should be declared external:
- LeonicornSwap.increaseAllowance(address,uint256) (#528-531)
isExcluded(address) should be declared external:
- LeonicornSwap.isExcluded(address) (#538-540)
balanceOf(address) should be declared external:
- LeonicornSwap.balanceOf(address) (#503-506)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find token on CoinHunt
Additional information: link