Strong Inu - Smart Contract Audit Report

Summary

Strong Inu Audit Report Strong Inu is a new ERC20 token with strong anti-whale behavior and automated liquidity adds.

For this audit, we reviewed the StrongInu Contract provided to us by the team.

Notes on the StrongInu Contract:
  • Strong Inu is ERC-20 compliant, all standard functionality is present.
  • The initial supply of 1 billion SINU is minted to the owner upon deployment.
  • No minting or burn functions are present beyond deployment, though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.

  • There is a marketing fee, a liquidity fee, a buyback fee, and a dev fee taken on buys and sells.
  • The fees for buying and selling are independent and may vary. The total fees for buying and selling may not exceed 20% each.
  • Users on the fees whitelist will be excluded from fees.
  • Users on the transaction whitelist will be excluded from the max transaction limit.
  • The owner, this contract, and the 0x..dead address are added to both of the whitelists on deployment.
  • When trading is not enabled, the owner may airdrop any amount of tokens to at most 200 addresses at a time.
  • While airdrop limits are enabled, there is a daily airdrop transfer limit of 10% of the total tokens airdropped to the user.
  • Additionally, while airdrop limits are enabled, airdropped tokens may only be traded starting 1 day after the contract is deployed.
  • There is a regular transfer limit that is enabled on deployment. While the regular transfer limit is enabled:
    • Users may trade while trading is not enabled, if they are on the fees whitelist.
    • A transaction may not exceed the gas limit of 561 gwei, if it is enabled.
    • If transfer delay is enabled, and the transaction is not a buy or sell, users may only trade once per block.
    • If the transaction is a buy or sell and the user is not on the transfer whitelist, the transaction may not exceed the transfer limit of 0.5% of the total supply.
    • A user is limited to holding at most 2% of the total supply in any one address. This does not include the Uniswap liquidity pool.
  • During transfers, if the contract's balance has met a threshold, the transfer is not a purchase, swapping functionality is enabled, and neither the sender or receiver is excluded from fees, a "swapback" will be performed.
  • A liquidity-add is funded by selling the contract's token balance, minus half of the tokens collected as liquidity fees, for ETH.
  • The marketing, dev, and buyback fees are removed from the received ETH where subsequently the marketing fee is sent to the marketing address and the dev fee is sent to the dev address.
  • The tokens collected as liquidity fees are paired with the remaining ETH after fees, and added as liquidity to the ETH pair. The LP tokens received are sent to the 0x..dead address.
  • If buyback fees are 0, and the contract's token balance is greater than 1 ETH, the contract's ETH balance is sent to the marketing address.
  • The owner may trigger buyback functionality; this will buy a specified number of tokens from the Uniswap liquidity pool and send them to the 0x..dead address.
  • The team has limited the buyback amount to 2 ETH to disincentivize flash loan attacks.

  • The owner may force a swapback at any time.
  • The owner may update the dev and marketing wallet at any time.
  • The owner may add and remove additional Uniswap pairs at any time.
  • The owner may exclude any address from fees and the max transaction limit at any time.
  • The owner may adjust the max transaction limit and the buy/sell fees at any time.
  • The owner may toggle swapback functionality and the token threshold to swapback at any time.
  • Regular trading is disabled on deployment, the owner may enable regular trading at any time but may not disable it once enabled.
  • Regular transfer limits are enabled on deployment, the owner may remove these limits at any time but may not enable them on disabled.
  • Utilization of SafeMath to prevent overflows.
  • The team worked with us to implement changes related to gas optimization.
Audit Findings Summary
  • No external threats were identified.
  • Ensure trust in the team as they have considerable control within the ecosystem.
  • As with any presale, ensure trust in the team prior to investing.
  • Date: November 17th, 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

Radium Farm Graph

Radium Farm


 ($) = payable function
 # = non-constant function

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

 + [Int] IUniswapV2Pair 
    - [Ext] name
    - [Ext] symbol
    - [Ext] decimals
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transfer #
    - [Ext] transferFrom #
    - [Ext] DOMAIN_SEPARATOR
    - [Ext] PERMIT_TYPEHASH
    - [Ext] nonces
    - [Ext] permit #
    - [Ext] MINIMUM_LIQUIDITY
    - [Ext] factory
    - [Ext] token0
    - [Ext] token1
    - [Ext] getReserves
    - [Ext] price0CumulativeLast
    - [Ext] price1CumulativeLast
    - [Ext] kLast
    - [Ext] mint #
    - [Ext] burn #
    - [Ext] swap #
    - [Ext] skim #
    - [Ext] sync #
    - [Ext] initialize #

 + [Int] IUniswapV2Factory 
    - [Ext] feeTo
    - [Ext] feeToSetter
    - [Ext] getPair
    - [Ext] allPairs
    - [Ext] allPairsLength
    - [Ext] createPair #
    - [Ext] setFeeTo #
    - [Ext] setFeeToSetter #

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

 + [Int] IERC20Metadata (IERC20)
    - [Ext] name
    - [Ext] symbol
    - [Ext] decimals

 +  ERC20 (Context, IERC20, IERC20Metadata)
    - [Pub] Constructor #
    - [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 #

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

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

 + [Lib] SafeMathInt 
    - [Int] mul
    - [Int] div
    - [Int] sub
    - [Int] add
    - [Int] abs
    - [Int] toUint256Safe

 + [Lib] SafeMathUint 
    - [Int] toInt256Safe

 + [Int] IUniswapV2Router01 
    - [Ext] factory
    - [Ext] WETH
    - [Ext] addLiquidity #
    - [Ext] addLiquidityETH ($)
    - [Ext] removeLiquidity #
    - [Ext] removeLiquidityETH #
    - [Ext] removeLiquidityWithPermit #
    - [Ext] removeLiquidityETHWithPermit #
    - [Ext] swapExactTokensForTokens #
    - [Ext] swapTokensForExactTokens #
    - [Ext] swapExactETHForTokens ($)
    - [Ext] swapTokensForExactETH #
    - [Ext] swapExactTokensForETH #
    - [Ext] swapETHForExactTokens ($)
    - [Ext] quote
    - [Ext] getAmountOut
    - [Ext] getAmountIn
    - [Ext] getAmountsOut
    - [Ext] getAmountsIn

 + [Int] IUniswapV2Router02 (IUniswapV2Router01)
    - [Ext] removeLiquidityETHSupportingFeeOnTransferTokens #
    - [Ext] removeLiquidityETHWithPermitSupportingFeeOnTransferTokens #
    - [Ext] swapExactTokensForTokensSupportingFeeOnTransferTokens #
    - [Ext] swapExactETHForTokensSupportingFeeOnTransferTokens ($)
    - [Ext] swapExactTokensForETHSupportingFeeOnTransferTokens #

 +  StrongInu (ERC20, Ownable)
    - [Pub] Constructor #
       - modifiers: ERC20
    - [Ext] Fallback ($)
    - [Ext] enableTrading #
       - modifiers: onlyOwner
    - [Ext] removeLimits #
       - modifiers: onlyOwner
    - [Ext] disableTransferDelay #
       - modifiers: onlyOwner
    - [Ext] airdropToWallets #
       - modifiers: onlyOwner
    - [Ext] updateSwapTokensAtAmount #
       - modifiers: onlyOwner
    - [Ext] updateMaxAmount #
       - modifiers: onlyOwner
    - [Pub] excludeFromMaxTransaction #
       - modifiers: onlyOwner
    - [Ext] updateSwapEnabled #
       - modifiers: onlyOwner
    - [Ext] updateBuyFees #
       - modifiers: onlyOwner
    - [Ext] updateSellFees #
       - modifiers: onlyOwner
    - [Pub] excludeFromFees #
       - modifiers: onlyOwner
    - [Pub] setAutomatedMarketMakerPair #
       - modifiers: onlyOwner
    - [Pub] getWalletMaxAirdropSell
    - [Prv] _setAutomatedMarketMakerPair #
    - [Ext] updateMarketingWallet #
       - modifiers: onlyOwner
    - [Ext] updateDevWallet #
       - modifiers: onlyOwner
    - [Pub] isExcludedFromFees
    - [Int] _transfer #
    - [Prv] swapTokensForEth #
    - [Prv] addLiquidity #
    - [Prv] swapBack #
    - [Ext] forceSwapBack #
       - modifiers: onlyOwner
    - [Ext] buyBackTokens #
       - modifiers: onlyOwner