TelegramX Token Logo

TX [TelegramX] Token

About TX

Listings

Not Found
Token 21 months

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 4 August 2022

report
Token seems to be anonymous. As long as we are unable to find website score is limited.

TelegramX.difidendToLPHolders() (#445-468) ignores return value by IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
TelegramX.claimLeftUSDT() (#469-472) ignores return value by IBEP20(usdt).transferFrom(address(_usdtReceiver),wallet1,left) (#471)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.

Additional information: link


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

TelegramX.difidendToLPHolders() (#445-468) uses a dangerous strict equality:
- reward == 0 (#463)
Don't use strict equality to determine if an account has enough Ether or tokens.

Additional information: link

Variable IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#91) is too similar to IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#92)
Variable TelegramX.buyFeeToWallet1 (#229) is too similar to TelegramX.buyFeeToWallet2 (#230)
Variable TelegramX.feeToWallet1 (#237) is too similar to TelegramX.feeToWallet2 (#238)
Variable TelegramX.sellFeeToWallet1 (#233) is too similar to TelegramX.sellFeeToWallet2 (#234)
Prevent variables from having similar names.

Additional information: link

TelegramX.constructor() (#269-287) uses literals with too many digits:
- _totalSupply = 8000000000 * (1e18) (#273)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

TelegramX.pancakeRouterAddr (#246) should be constant
TelegramX.usdt (#247) should be constant
usdtReceiver.usdt (#216) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-amount > _balances[sender].div(100).mul(99) (#330)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-amount = _balances[sender].div(100).mul(99) (#331)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeWallet1 = amount.div(100).mul(buyFeeToWallet1) (#356)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeWallet1_scope_0 = amount.div(100).mul(sellFeeToWallet1) (#378)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeWallet2 = amount.div(100).mul(buyFeeToWallet2) (#363)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeWallet2_scope_1 = amount.div(100).mul(sellFeeToWallet2) (#385)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeLPDifidend = amount.div(100).mul(buyFeeToLpDifidend) (#370)
TelegramX._transfer(address,address,uint256) (#327-415) performs a multiplication on the result of a division:
-feeLPDifidend_scope_2 = amount.div(100).mul(sellFeeToLpDifidend) (#392)
Consider ordering multiplication before division.

Additional information: link

Reentrancy in TelegramX._transfer(address,address,uint256) (#327-415):
External calls:
- swapUSDTForWallet(wallet1) (#344)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- swapUSDTForWallet(wallet2) (#347)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
State variables written after the call(s):
- swapUSDTForWallet(wallet2) (#347)
- feeToWallet1 = 0 (#440)
- swapUSDTForWallet(wallet2) (#347)
- feeToWallet2 = 0 (#442)
- swapUSDTForWallet(wallet2) (#347)
- unlocked = 0 (#265)
- unlocked = 1 (#267)
Reentrancy in TelegramX._transfer(address,address,uint256) (#327-415):
External calls:
- swapUSDTForWallet(wallet1) (#344)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- swapUSDTForWallet(wallet2) (#347)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- difidendToLPHolders() (#350)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
- IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
State variables written after the call(s):
- _balances[address(this)] = _balances[address(this)].add(feeWallet1) (#358)
- _balances[address(this)] = _balances[address(this)].add(feeWallet2) (#365)
- _balances[address(this)] = _balances[address(this)].add(feeLPDifidend) (#372)
- _balances[address(this)] = _balances[address(this)].add(feeWallet1_scope_0) (#380)
- _balances[address(this)] = _balances[address(this)].add(feeWallet2_scope_1) (#387)
- _balances[address(this)] = _balances[address(this)].add(feeLPDifidend_scope_2) (#394)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#400)
- _balances[recipient] = _balances[recipient].add(finalAmount) (#402)
- feeToLpDifidend = feeToLpDifidend.add(feeLPDifidend) (#373)
- feeToLpDifidend = feeToLpDifidend.add(feeLPDifidend_scope_2) (#395)
- feeToWallet1 = feeToWallet1.add(feeWallet1) (#359)
- feeToWallet1 = feeToWallet1.add(feeWallet1_scope_0) (#381)
- feeToWallet2 = feeToWallet2.add(feeWallet2) (#366)
- feeToWallet2 = feeToWallet2.add(feeWallet2_scope_1) (#388)
- lpHolders.push(lastPotentialLPHolder) (#408)
- difidendToLPHolders() (#350)
- unlocked = 0 (#265)
- unlocked = 1 (#267)
Reentrancy in TelegramX.difidendToLPHolders() (#445-468):
External calls:
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
State variables written after the call(s):
- feeToLpDifidend = 0 (#456)
Reentrancy in TelegramX.swapUSDTForWallet(address) (#422-444):
External calls:
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
State variables written after the call(s):
- feeToWallet1 = 0 (#440)
- feeToWallet2 = 0 (#442)
Apply the check-effects-interactions pattern.

Additional information: link

TelegramX._transfer(address,address,uint256).fee (#352) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.

Additional information: link

usdtReceiver.constructor() (#217-219) ignores return value by IBEP20(usdt).approve(msg.sender,~ uint256(0)) (#218)
Ensure that all the return values of the function calls are used.

Additional information: link

TelegramX.setMinAmountToSwapForWallet(uint256) (#476-478) should emit an event for:
- minAmountToSwapForWallet = value (#477)
TelegramX.setMinLPAmountForDifidend(uint256) (#479-481) should emit an event for:
- minLPAmountForDifidend = value (#480)
TelegramX.setMinAmountToLpDifidend(uint256) (#482-484) should emit an event for:
- minAmountToLpDifidend = value (#483)
TelegramX.setBuyFeeToWallet1(uint256) (#494-496) should emit an event for:
- buyFeeToWallet1 = value (#495)
TelegramX.setBuyFeeToWallet2(uint256) (#497-499) should emit an event for:
- buyFeeToWallet2 = value (#498)
TelegramX.setSellFeeToWallet1(uint256) (#500-502) should emit an event for:
- sellFeeToWallet1 = value (#501)
TelegramX.setSellFeeToWallet2(uint256) (#503-505) should emit an event for:
- sellFeeToWallet2 = value (#504)
TelegramX.setBuyFeeToLpDifidend(uint256) (#506-508) should emit an event for:
- buyFeeToLpDifidend = value (#507)
TelegramX.setSellFeeToLpDifidend(uint256) (#509-511) should emit an event for:
- sellFeeToLpDifidend = value (#510)
Emit an event for critical parameter changes.

Additional information: link

TelegramX.setNewWallet1(address).account (#488) lacks a zero-check on :
- wallet1 = account (#489)
TelegramX.setNewWallet2(address).account (#491) lacks a zero-check on :
- wallet2 = account (#492)
Check that the address is not zero.

Additional information: link

Reentrancy in TelegramX._transfer(address,address,uint256) (#327-415):
External calls:
- swapUSDTForWallet(wallet1) (#344)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- swapUSDTForWallet(wallet2) (#347)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- difidendToLPHolders() (#350)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
- IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
State variables written after the call(s):
- _isLPHolderExist[lastPotentialLPHolder] = true (#409)
- lastPotentialLPHolder = sender (#413)
Reentrancy in TelegramX.constructor() (#269-287):
External calls:
- pair = IPancakeFactory(_router.factory()).createPair(address(usdt),address(this)) (#280-283)
- _usdtReceiver = new usdtReceiver() (#284)
State variables written after the call(s):
- _approve(address(this),address(pancakeRouterAddr),~ uint256(0)) (#285)
- _allowances[owner][spender] = amount (#317)
- _usdtReceiver = new usdtReceiver() (#284)
Reentrancy in TelegramX.transferFrom(address,address,uint256) (#320-326):
External calls:
- _transfer(sender,recipient,amount) (#321)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
State variables written after the call(s):
- _approve(sender,msg.sender,currentAllowance.sub(amount,BEP20: transfer amount exceeds allowance)) (#324)
- _allowances[owner][spender] = amount (#317)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in TelegramX._transfer(address,address,uint256) (#327-415):
External calls:
- swapUSDTForWallet(wallet1) (#344)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- swapUSDTForWallet(wallet2) (#347)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- difidendToLPHolders() (#350)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
- IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
Event emitted after the call(s):
- Transfer(sender,address(this),feeWallet1) (#360)
- Transfer(sender,address(this),feeWallet2) (#367)
- Transfer(sender,address(this),feeLPDifidend) (#374)
- Transfer(sender,address(this),feeWallet1_scope_0) (#382)
- Transfer(sender,address(this),feeWallet2_scope_1) (#389)
- Transfer(sender,address(this),feeLPDifidend_scope_2) (#396)
- Transfer(sender,recipient,finalAmount) (#403)
Reentrancy in TelegramX.constructor() (#269-287):
External calls:
- pair = IPancakeFactory(_router.factory()).createPair(address(usdt),address(this)) (#280-283)
- _usdtReceiver = new usdtReceiver() (#284)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#318)
- _approve(address(this),address(pancakeRouterAddr),~ uint256(0)) (#285)
- Transfer(address(0),_owner,_totalSupply) (#286)
Reentrancy in TelegramX.transferFrom(address,address,uint256) (#320-326):
External calls:
- _transfer(sender,recipient,amount) (#321)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(feeToLpDifidend,0,path,address(_usdtReceiver),block.timestamp) (#449-455)
- _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,wallet,block.timestamp) (#432-438)
- IBEP20(usdt).transferFrom(address(_usdtReceiver),lpHolders[i],reward) (#465)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#318)
- _approve(sender,msg.sender,currentAllowance.sub(amount,BEP20: transfer amount exceeds allowance)) (#324)
Apply the check-effects-interactions pattern.

Additional information: link

Address.isContract(address) (#45-50) uses assembly
- INLINE ASM (#48)
Do not use evm assembly.

Additional information: link

Pragma version>=0.8.0 (#2) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.

Additional information: link

Variable Ownable._owner (#53) is not in mixedCase
Function IPancakeFactory.INIT_CODE_PAIR_HASH() (#83) is not in mixedCase
Function IPancakeRouter01.WETH() (#87) is not in mixedCase
Contract usdtReceiver (#215-220) is not in CapWords
Variable TelegramX._isLPHolderExist (#257) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#63-66)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#67-71)
name() should be declared external:
- TelegramX.name() (#288-290)
symbol() should be declared external:
- TelegramX.symbol() (#291-293)
decimals() should be declared external:
- TelegramX.decimals() (#294-296)
totalSupply() should be declared external:
- TelegramX.totalSupply() (#297-299)
balanceOf(address) should be declared external:
- TelegramX.balanceOf(address) (#300-302)
transfer(address,uint256) should be declared external:
- TelegramX.transfer(address,uint256) (#303-306)
allowance(address,address) should be declared external:
- TelegramX.allowance(address,address) (#307-309)
approve(address,uint256) should be declared external:
- TelegramX.approve(address,uint256) (#310-313)
transferFrom(address,address,uint256) should be declared external:
- TelegramX.transferFrom(address,address,uint256) (#320-326)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain


Unable to find Telegram and Twitter accounts


Unable to find website, listings and other project-related information


Young tokens have high risks of scam / price dump / death


Token has no active CoinGecko listing / rank


Token has no active CoinMarketCap listing / rank

Price for TX