TALARIA INU - Smart Contract Audit Report
TALARIA INU ($TALI) is a new ERC-20 token on the Ethereum blockchain that provides automatic liquidity adds.
Notes on the Contract:
Audit Findings Summary
- 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.
- 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.
- 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
|Arbitrary Storage Write||N/A||PASS|
|Centralization of Control||The owner can set total buy fees up to 20% and total sell fees up to 25%.||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||N/A||PASS|
|User Supplied Assertion||N/A||PASS|
|Critical Solidity Compiler||N/A||PASS|
|Overall Contract Safety||PASS|
($) = 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