Treward Token - Smart Contract Audit Report

Summary

Treward Finance Audit Report Treward is a new token where every transaction has a fee that is instantly redistributed among all token holders.

We reviewed Treward's token contract at commit 68fdec05eb1a3b96645ed2f85a849ff130a4a8b4 on GitHub. The contract has been deployed at 0xa5d8fc45f474c26cb9c3736b56e5be54d77a44aa on the Binance Smart Chain. The only notable post-audit change was lowering the total supply from 35,000 to 20,000.

Notes on the contract:
  • The total supply of the token is 20,000, delivered to the team upon deployment.
  • No minting functions are present in the code.
  • The Treward token includes a transfer fee. These fees are partially burned, and partially distributed among token holders.
  • Users who hold tokens will automatically receive a proportional amount of the redistributed fees from the transaction tax.
  • The owner sets the transfer fees and can change them at any time.
  • The owner also has the ability to exclude and include users from transfer fees and rewards. Decentralized exchanges are intended to be excluded.

  • The contract utilizes the SafeMath library to prevent overflows.
  • Some gas optimizations can be achieved through marking functions external.

Audit Findings Summary
  • No security issues were detected in the analysis.
  • As with any presale, ensure trust in the team prior to investing. The team will have the ability to update tax rates.
  • Date: March 9th, 2021
  • Update Date: March 12th, 2021 - Add deployed address; update total supply

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
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

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

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

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

 +  RWD (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] isExcluded
    - [Pub] isDexAccount
    - [Pub] totalFees
    - [Pub] totalBurn
    - [Pub] treasure
    - [Pub] totalReward
    - [Pub] reflect #
    - [Pub] reflectionFromToken
    - [Pub] tokenFromReflection
    - [Ext] excludeAccount #
       - modifiers: onlyOwner
    - [Ext] includeAccount #
       - modifiers: onlyOwner
    - [Ext] addDexAccount #
       - modifiers: onlyOwner
    - [Ext] removeDexAccount #
       - modifiers: onlyOwner
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _transferStandard #
    - [Prv] _transferToExcluded #
    - [Prv] _transferFromExcluded #
    - [Prv] _transferBothExcluded #
    - [Prv] _reflectFee #
    - [Prv] _reflectReward #
    - [Prv] _getValues
    - [Prv] _getTValues
    - [Prv] _getRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Ext] _setTaxFee #
       - modifiers: onlyOwner
    - [Pub] _getTaxFee
    - [Ext] _setBurnFee #
       - modifiers: onlyOwner
    - [Pub] _getBurnFee
    - [Ext] _setReward #
       - modifiers: onlyOwner
    - [Pub] _getReward