Weentar Token - Smart Contract Audit Report

Summary

Weentar Token Audit Report Weentar intends to build a social media platform based on blockchain.

For this audit we reviewed the project's token contract, deployed at 0x93f63d9455685621abd73e63cc04f7e454270a66 on the Binance Smart Chain mainnet. We also reviewed the project's presale contract, which has yet to be deployed.
Please note we have not reviewed the project's social media platform.

Notes of the Token Contract:
  • The total supply of the token is 3 billion.
  • No minting or burning functions are accessible after deployment; though the circulating supply can be decreased by sending tokens to the burn address.
  • Currently, the team holds 98% of the supply and has sent 2% of the supply to another address.
  • While the Ownable library in imported, no ownership-protected functions relating to the token are present.
  • The contract utilizes Solidity 0.8.1 which has built-in overflow checks, removing the need for SafeMath.
Notes of the Presale Contract:
  • This contract allows users to purchase tokens at a pre-determined price.
  • Users who purchase tokens will pay in BNB and immediately recieve tokens upon payment.
  • The team will set the amount of tokens available for each phase of the presale.
  • The team can update the token's purchase price and withdraw unpurchased tokens from the contract any time time.
  • The function to purchase tokens and all onlyOwner functions can be marked external to save a small amount of execution cost on each call.
  • The contract utilizes Solidity 0.8.1 which has built-in overflow checks, removing the need for SafeMath.
  • ReentrancyGuard is also used when purchasing tokens to prevent reentrancy attacks.
Audit Findings Summary
  • No issues from external attackers were identified.
  • As with any presale, ensure trust in the team prior to investing.
  • Date: April 12th, 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

Details: Token Contract

ERC20 Token Graph

Multi-file Token


 ($) = payable function
 # = non-constant function
 
 Int = Internal
 Ext = External
 Pub = Public

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

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

 +  ERC20 (Context, IERC20)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Int] _transfer #
    - [Int] _mint #
    - [Int] _burn #
    - [Int] _approve #
    - [Int] _beforeTokenTransfer #

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

 +  WeentarToken (ERC20, Ownable)
    - [Pub]  #
       - modifiers: ERC20
    - [Pub] getOwner
							


Details: Presale Contract

ERC20 Token Graph

Multi-file Token


 ($) = payable function
 # = non-constant function
 
 Int = Internal
 Ext = External
 Pub = Public

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

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

 + [Int] IBEP20 
    - [Ext] totalSupply
    - [Ext] decimals
    - [Ext] symbol
    - [Ext] name
    - [Ext] getOwner
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 +  ReentrancyGuard 
    - [Pub]  #

 +  WeentarPresale (Context, Ownable, ReentrancyGuard)
    - [Pub]  #
    - [Pub] tokenPrice
    - [Pub] phaseSupplyLeft
    - [Pub] phaseSupplyTotal
    - [Pub] phaseStartTimestamp
    - [Pub] phaseEndTimestamp
    - [Pub] phaseIsActive
    - [Pub] currentPhase
    - [Pub] weiRaised
    - [Pub] presaleWallet
    - [Pub] purchaseToken ($)
       - modifiers: nonReentrant
    - [Pub] setTokenPrice #
       - modifiers: onlyOwner
    - [Pub] withdrawToken #
       - modifiers: onlyOwner
    - [Pub] setCurrentPhase #
       - modifiers: onlyOwner