Caketools Token - Smart Contract Audit Report

Summary

Caketools Audit Report Caketools Token ($CKT) is a new BEP20 token.

We audited Caketool's token contract at 0x3837e18b901629fcb200e0ad9c2f2441804bd6c8 on the Binance Smart Chain mainnet.

Notes of the contract:
  • The total supply of the token is set to 150 million $CKT [150,000,000].
  • As the token was recently deployed to the mainnet, 100% of the total supply is in possession of the owner.
  • Any user can burn their own tokens to decrease the total supply.
  • The circulating supply can be decreased if a user elects to transfer their tokens to the 0x..dead address instead of using the burn function.
  • The total supply is not updated when holders transfer their tokens to the 0x..dead address.
  • Ownership has not been renounced.
  • The token uses SafeMath to prevent any overflows.
  • The contract complies with the BEP20 standard.
Audit Findings Summary
  • No external threats were identified.
  • Date: September 14th, 2021
  • Updated: October 13th, 2021 to reflect the mainnet deployment.
Resolved Issues
  • Updated: October 14th, 2021
  • The team redeployed to resolve a finding from our team. Previously, the quantity of $CKT tokens that are displayed on BscScan would be inaccurate for holders if they participated in more than one transfer. This is due to the transfer event emitting incorrect information regarding the amount of tokens that were sent during a transfer. Instead, the contract was incorrectly displaying that the recipient's entire balance had been transferred instead of the actual intended token amount for the transfer.

External Threat Results

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
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
SuicideN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

ERC20 Token Graph

Multi-file Token


 ($) = payable function
 # = non-constant function
 
 +  Context 
    - [Int] _msgSender
    - [Int] _msgData

 + [Int] IERC20 
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 + [Lib] SafeMath 
    - [Int] tryAdd
    - [Int] trySub
    - [Int] tryMul
    - [Int] tryDiv
    - [Int] tryMod
    - [Int] add
    - [Int] sub
    - [Int] mul
    - [Int] div
    - [Int] mod
    - [Int] sub
    - [Int] div
    - [Int] mod

 +  Ownable (Context)
    - [Pub]  #
    - [Pub] owner
    - [Pub] renouncedOwnership #
       - modifiers: onlyOwner
    - [Pub] TransferOwner #

 +  Caketools (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] burn #
    - [Int] _transfer #
    - [Int] _burn #
    - [Int] _approve #
    - [Int] _setupDecimals #
    - [Int] _beforeTokenTransfer #