SAHU - Smart Contract Audit Report

Summary

SAHU Audit Report Sakhalin Husky ($SAHU) is a DeFi project that automatically provides rewards to users who hold the token via frictionless fee redistribution. It is said that the original creator of $SAHU left the project and renounced ownership. The community members decided to form a leadership group and resurrect the project as a 'community-run' token.

SAHU is deployed at 0x2B1Fe2cea92436E8C34B7C215Af66Aaa2932a8b2 on the Ethereum Mainnet.


Notes on the Contract:
  • SAHU's code implements and builds upon the fee-redistribution features pioneered by Reflect Finance.
  • The total supply of the token is 1 quintillion.
  • No mint or burn functions exist, though the circulating supply can be decreased by sending tokens to burn address.
  • At the time of writing this report, 58.4% of the total supply have been sent to the burn address.
  • Currently, 2.35% of the token's supply is in Uniswap liquidity. 96% of that liquidity is burned, while the other 4% is unlocked.
  • There are three wallets hold 2.5% of the supply each, which poses a risk if these wallets were to sell all together.

  • There is a hard coded 4% fee that is charged on token transfers. That fee is redistributed to existing token holders instantly and automatically at the time of each transaction.
  • The Burn address participates as a regular user in terms of reward distribution to act as a deflationary mechanism, and in this case, will always account for a majority of the total supply (at 58.4% and growing).
  • The maximum number of tokens that can be sent on each transaction is 3% of the total supply.
  • Ownership has been renounced, so none of these above variables can be changed.
  • Some gas optimizations can be achieved through declaring functions external instead of public and some variables constant. As this contract is already deployed, this is merely informational.
  • There exists some unnecessary logic in the fee calculation, but this has no tangible impact on security or user functionality. As this contract is already deployed, this is also merely informational.
  • The team utilizes SafeMath to prevent overflows.

Audit Findings Summary
  • No external threats were identified.
  • Date: June 2nd, 2021

Audit 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

Function Graph

ERC20 Token Graph


Inheritence Chart

Multi-file Token


Functions Overview


 ($) = payable function
 # = non-constant function
 
 Int = Internal
 Ext = External
 Pub = Public
 
 +  Context 
    - [Int] _msgSender
    - [Int] _msgData

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

 + [Lib] SafeMath 
    - [Int] add
    - [Int] sub
    - [Int] sub
    - [Int] mul
    - [Int] div
    - [Int] div
    - [Int] mod
    - [Int] mod

 + [Lib] Address 
    - [Int] isContract
    - [Int] sendValue #
    - [Int] functionCall #
    - [Int] functionCall #
    - [Int] functionCallWithValue #
    - [Int] functionCallWithValue #
    - [Prv] _functionCallWithValue #

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

 +  SakhalinHusky (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] totalFees
    - [Ext] setMaxTxPercent #
       - modifiers: onlyOwner
    - [Pub] reflect #
    - [Pub] reflectionFromToken
    - [Pub] tokenFromReflection
    - [Ext] excludeAccount #
       - modifiers: onlyOwner
    - [Ext] includeAccount #
       - modifiers: onlyOwner
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _transferStandard #
    - [Prv] _transferToExcluded #
    - [Prv] _transferFromExcluded #
    - [Prv] _transferBothExcluded #
    - [Prv] _reflectFee #
    - [Prv] _getValues
    - [Prv] _getTValues
    - [Prv] _getRValues
    - [Prv] _getRate
    - [Prv] _getCurrentSupply