LEO Token - Smart Contract Audit Report

Summary

LEOTOKEN Audit Report LEO Token ($LEOTOKEN) is a new token contract on the Binance Smart Chain that contains the functionality of frictionless fee redistribution, liquidity adds, BNB rewards, and a charity wallet.

We audited LEO Token's contract at 0x99980ca036287F44f27cBE5071eD3fbfAe0AcdbD on the Binance Smart Chain mainnet.

Overview of the Contract:
  • The total supply of the token is initially set to one quadrillion [1,000,000,000,000,000] $LEOTOKEN.
  • There are not any mint or burn functions present; though the circulating supply can be reduced by transferring tokens to the burn address, if desired. The team intends to send 16% of the total supply to the burn address upon launch; and allow the burn address to remain included in rewards. Therefore it will receive reflections from tokens as to act as a deflationary mechanism.
  • At the time of writing this report, 100% of the total supply is in possession of the owner as the project was recently deployed.

  • There is a 'tax fee', 'liquidity fee', and "charity fee" on all transactions for any "non-excluded" address that participates in a transfer. The owner has the ability to modify these fees to any percentage at any time.
  • The team can update the charity address at any time.
  • Users who hold tokens will automatically benefit from the frictionless fee redistribution at the time of each transaction as the tokens collected through taxes are removed from the circulating supply.
  • The liquidity fee charged on transactions is stored in the contract and, once a threshold value is met, used to fund Pancakeswap liqudity. This functionality can be enabled/disabled by the owner.
  • Liquidity-adds are funded by selling a portion of the tokens collected as fees (after the threshhold as determined by the owner is met), then pairing the received BNB with the token, and adding it as liquidity to the BNB pair.
  • The recipient of the newly created LP tokens is the Owner of the contract.
  • There is a 'whale fee' of 5% on transactions that exceed 1% of the circulating supply. The owner has the ability to modify these fees to any percentage at any time. The $LEOTOKEN accumulated through this fee will be send to the "whale fee" address.

  • The owner of the contract can exclude and include accounts from transfer fees and reward distribution.
  • The owner has the ability to set and update a maximum transaction percent at any time, which will impose a limit to the number of tokens that can be transferred during any given transaction.
  • The owner has the ability to exclude and include addresses from this maximum transaction amount.
  • The owner has the ability to use the "lock" function in order to temporarily set ownership to address(0). Ownership is restored after the duration of time determined by the owner has passed and they use the 'unlock' function. Ownership can additionally be restored (even if ownership was previously renounced), by using the unlock function a second time.
  • Ownership has not been renounced.
  • The randomness function, to an extent, relies on predictable environment variables. This is common, albiet not best practice; but the probability of miners maliciously changing these variables is extremley low.
  • Some functions could have been declared external instead of public to save some gas.
  • BNB claiming logic is properly structured to prevent reentrancy attacks.
  • The contract utilizes SafeMath libraries to prevent overflows along with following the BEP20 standard.

Audit Findings Summary
  • No security threats were identified.
  • We strongly recommend that the team renounces ownership after a successful launch.
  • As with any presale, please ensure trust in the team prior to investing as they have substantial control within the ecosystem.
  • Date: July 4th, 2021

Vulnerability CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Delegate Call to Untrusted ContractN/APASS
Dependence on Predictable VariablesN/APASS
Deprecated OpcodesN/APASS
Ether ThiefN/APASS
ExceptionsN/APASS
External CallsN/APASS
Flash LoansN/APASS
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
OraclesN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

BEP20 Token Graph

Multi-file Token

												
($) = payable function
 # = non-constant function
 
 
 + [Lib] Utils 
    - [Prv] random
    - [Pub] calculateBNBReward
    - [Pub] calculateTopUpClaim
    - [Pub] swapTokensForEth #
    - [Pub] swapETHForTokens #
    - [Pub] addLiquidity # +  ReentrancyGuard 
    - [Pub]  # +  LEO (Context, IBEP20, Ownable, ReentrancyGuard)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Pub] isExcludedFromReward
    - [Pub] totalFees
    - [Pub] deliver #
    - [Pub] reflectionFromToken
    - [Pub] tokenFromReflection
    - [Pub] excludeFromReward #
       - modifiers: onlyOwner
    - [Ext] includeInReward #
       - modifiers: onlyOwner
    - [Prv] _transferBothExcluded #
    - [Pub] excludeFromFee #
       - modifiers: onlyOwner
    - [Pub] includeInFee #
       - modifiers: onlyOwner
    - [Ext] setTaxFeePercent #
       - modifiers: onlyOwner
    - [Ext] setLiquidityFeePercent #
       - modifiers: onlyOwner
    - [Pub] setSwapAndLiquifyEnabled #
       - modifiers: onlyOwner
    - [Ext]  ($)
    - [Prv] _reflectFee #
    - [Prv] _reflectWhaleFee #
    - [Pub] getLiquidityMap
    - [Prv] _getValues
    - [Prv] _getFeeRValues
    - [Prv] _getTValues
    - [Prv] _getFeeRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Prv] _takeLiquidity #
    - [Prv] calculateTaxFee
    - [Prv] calculateWhaleFee
    - [Prv] calculateLiquidityFee
    - [Prv] removeAllFee #
    - [Prv] restoreAllFee #
    - [Prv] removeWhaleFee #
    - [Prv] restoreWhaleFee #
    - [Pub] isExcludedFromFee
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _tokenTransfer #
    - [Prv] _transferStandard #
    - [Prv] _transferToExcluded #
    - [Prv] _transferFromExcluded #
    - [Pub] setMaxTxPercent #
       - modifiers: onlyOwner
    - [Pub] getMaxTxAmount
    - [Pub] setExcludeFromMaxTx #
       - modifiers: onlyOwner
    - [Pub] getWhaleFeeTotal
    - [Pub] calculateBNBReward
    - [Pub] getRewardCycleBlock
    - [Pub] claimBNBReward #
       - modifiers: isHuman,nonReentrant
    - [Prv] topUpClaimCycleAfterTransfer #
    - [Prv] shouldTakeWhaleFee
    - [Pub] disruptiveTransfer ($)
    - [Prv] swapAndLiquify #
    - [Pub] activateTestNet #
       - modifiers: onlyOwner
    - [Pub] activateContract #
       - modifiers: onlyOwner
    - [Prv] _activateLiquidity #
    - [Pub] changerewardCycleBlock #
       - modifiers: onlyOwner
    - [Pub] changeCharityAddress #
       - modifiers: onlyOwner
    - [Pub] reflectionfeestartstop #
       - modifiers: onlyOwner
    - [Pub] migrateToken #
       - modifiers: onlyOwner
    - [Pub] migrateBnb #
       - modifiers: onlyOwner
    - [Pub] changethreshHoldTopUpRate #
       - modifiers: onlyOwner