TALARIA INU - Smart Contract Audit Report

Summary

TALARIA INU Audit Report TALARIA INU ($TALI) is a new ERC-20 token on the Ethereum blockchain that provides automatic liquidity adds.

For this audit, we reviewed the TALARIA INU contract at 0x6765Fdd028bE3d7874bc2Bb3D7d5CA01c1Bf14b2 on the Ethereum mainnet.

Notes on the Contract:
  • The total supply of the token is set to 1 trillion $TALI [1,000,000,000,000].
  • No minting or burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
  • At the time of writing this report, 27.42% of the total supply is in Uniswap liquidity.
  • Of that liquidity, 52.69% of the LP tokens have been sent to the 0x..dead address.
  • 48.83% of the LP tokens belong to a Unicrypt token locking contract and will vest to the team on December 19th, 2022.
  • 13.4% of the total supply has been sent to the 0x..dead address.
  • The next five holders own a cumulative 7.32% of the total supply.

  • There is a liquidity fee, marketing fee, and dev fee on all transfers via Uniswap where neither the sender nor the recipient are excluded from fees. A separate fee structure can be set by the team to apply different fee amounts depending on whether the user is buying or selling during the transfer.
  • The fees charged during transfers with Uniswap are stored in the contract address balance. Once a threshold number of tokens (determined by the owner) is met, the tokens are swapped for ETH and sent back to the contract address.
  • A portion of the ETH is used to automatically provide liquidity. Liquidity-adds are automatically done by selling the tokens collected as fees, pairing the received ETH with the token, and adding it as liquidity to the pair.
  • The LP tokens received through this process are sent to the 0x..dead address.
  • The remaining ETH is split between the team's Marketing wallet and Dev wallet respectively.
  • A percentage of tokens (determined by the owner) in the Uniswap pair address will automatically be sent to the 0x..dead address on all sell transfers via Uniswap, as long as the amount of time (also determined by the owner) has passed since this functionality has previously occured.
  • Although logic for a maximum transfer amount, maximum wallet amount, and transfer delay exists in the contract, these features are disabled and cannot be utilized.
  • Although the Safemath library is utilized, the contract is deployed with Solidity v0.8.9 which has built-in overflow checks. Safemath could be safely removed to reduce contract size and increase gas savings.

  • Ownership Controls:
  • The owner can modify the liquidity fee, marketing fee, and dev fee for both the buy and sell fee structures. The total fee percentages combined must not exceed 20% for the buy fees and 25% for the sell fees.
  • The owner can exclude and include accounts from transfer fees.
  • The owner can enable/disable the automatic swapping functionality at any time.
  • The owner can update the threshold number of tokens needed to trigger the automatic swapping functionality to any value between 10 million and 5 billion tokens.
  • The owner can update the percentage of tokens that are automatically sent to the 0x..dead address from the Uniswap Pair address on sells via Uniswap to any percentage between 0% and 10%. The owner can also update the amount of time that must pass between this functionality can reoccur to any time greater than 10 minutes. The owner can also manually trigger this functionality at any time.
  • The owner can update the team's Marketing wallet and Dev wallet to any addresses at any time.
  • The owner can update the Automated Market Maker Pair contract address at any time.
Audit Findings Summary
  • No external threats were identified.
  • Please ensure trust in the team as they have notable control in the ecosystem.
  • The team has successfully completed KYC procedures with KYC Capital.
  • Date: December 27th, 2021

Audit Results

Vulnerability CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Centralization of ControlThe owner can set total buy fees up to 20% and total sell fees up to 25%.PASS
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
Unbounded LoopN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

Function Graph

ERC20 Token Graph


Inheritance Chart

Multi-file Token


Functions Overview


 ($) = 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]  #
    - [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]  #
    - [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 #

 +  TalariaInu (ERC20, Ownable)
    - [Pub]  #
       - modifiers: ERC20
    - [Ext]  ($)
    - [Ext] enableTrading #
       - modifiers: onlyOwner
    - [Ext] removeLimits #
       - modifiers: onlyOwner
    - [Ext] disableTransferDelay #
       - modifiers: onlyOwner
    - [Ext] updateSwapTokensAtAmount #
       - modifiers: onlyOwner
    - [Ext] updateMaxTxnAmount #
       - modifiers: onlyOwner
    - [Ext] updateMaxWalletAmount #
       - 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
    - [Prv] _setAutomatedMarketMakerPair #
    - [Ext] updateMarketingWallet #
       - modifiers: onlyOwner
    - [Ext] updateDevWallet #
       - modifiers: onlyOwner
    - [Pub] isExcludedFromFees
    - [Int] _transfer #
    - [Prv] swapTokensForEth #
    - [Prv] addLiquidity #
    - [Prv] swapBack #
    - [Ext] setAutoLPBurnSettings #
       - modifiers: onlyOwner
    - [Int] autoBurnLiquidityPairTokens #
    - [Ext] manualBurnLiquidityPairTokens #
       - modifiers: onlyOwner