Scrooge Token - Smart Contract Audit Report

Summary

Scrooge Token Audit Report Scrooge Token ($SCRG) is a new BEP-20 token on the Binance Smart Chain that pays out static rewards to holders.

We reviewed the Scrooge contract that is deployed at 0xc6E6522FBAa102Ed962fD8bb5C1392ccE97eB89E on the Binance Smart Chain mainnet.

Notes on the Contract:
  • The total supply of the token is set to 1 billion $SCRG [1,000,000,000].
  • No minting or burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
  • There was no token allocation for our team to analyze as the initialize() function has yet to be called by the team. Once called, the owner will own 100% of the total supply.

  • The owner must manually enable trading in order for all trading to take place on the platform. Only accounts that have been excluded from fees can participate in transfers while trading is disabled. Once trading is enabled by the owner, it can never be disabled.
  • There is a fee on all transfers where neither the sender nor the recipient is excluded from fees.
  • The tokens collected from the transfer fee are removed from the circulating supply; This serves as a frictionless fee redistribution which automatically benefits all token holders at the time of each transaction.
  • The contract complies with the BEP-20 token standard.
  • As the contract is deployed with Solidity v0.8.11, it is protected from overflows.

  • Ownership Controls:
  • The owner can modify the transfer fee to any percentage up to 9% at any time.
  • The owner can exclude and include accounts from transfer fees and reward distribution.
  • The owner can withdraw any BNB or BEP-20 tokens from the contract address at any time.
Audit Findings Summary
  • No external threats were identified.
  • As with any presale, please ensure trust in the team prior to investing.
  • Date: December 28th, 2021
  • Updated: January 5th, 2022 to reflect the contract's mainnet address.

Audit Results

Vulnerability CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Centralization of ControlThe owner can set the transfer fee up to 9%.PASS
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

Function Graph

ERC20 Token Graph


Inheritance Chart

Multi-file Token


Functions Overview


 ($) = payable function
 # = non-constant function
 
 + [Int] IERC20 
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 +  Context 
    - [Int] _msgSender
    - [Int] _msgData

 + [Lib] Address 
    - [Int] isContract
    - [Int] sendValue #
    - [Int] functionCall #
    - [Int] functionCall #
    - [Int] functionCallWithValue #
    - [Int] functionCallWithValue #
    - [Int] functionStaticCall
    - [Int] functionStaticCall
    - [Int] functionDelegateCall #
    - [Int] functionDelegateCall #
    - [Int] verifyCallResult

 +  Ownable (Context)
    - [Pub]  #
    - [Pub] owner
    - [Pub] renounceOwnership #
       - modifiers: onlyOwner
    - [Pub] transferOwnership #
       - modifiers: onlyOwner
    - [Int] _transferOwnership #

 +  Scrooge (Context, IERC20, Ownable)
    - [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] reflectionFromToken
    - [Ext] startTrading #
       - modifiers: onlyOwner
    - [Pub] deliver #
    - [Pub] tokenFromReflection
    - [Pub] excludeFromReward #
       - modifiers: onlyOwner
    - [Ext] includeInReward #
       - modifiers: onlyOwner
    - [Pub] excludeFromFee #
       - modifiers: onlyOwner
    - [Pub] includeInFee #
       - modifiers: onlyOwner
    - [Pub] isExcludedFromFee
    - [Ext] setFeeRates #
       - modifiers: onlyOwner
    - [Prv] _reflectRfi #
    - [Prv] _getValues
    - [Prv] _getTValues
    - [Prv] _getRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _tokenTransfer #
    - [Ext] setAntibot #
       - modifiers: onlyOwner
    - [Pub] isBot
    - [Ext] rescueBNB #
       - modifiers: onlyOwner
    - [Ext] rescueBEP20Tokens #
       - modifiers: onlyOwner
    - [Ext]  ($)