XODEX - A zero fee blockchain & No-KYC cryptocurrency exchange! ---- Xodex is developing a high speed zero fee blockchain with DeFi protocols, NFT projects, and dApps that will facilitate the creator’s economy. -----Xodex is also developing a highly secure no-KYC cryptocurrency exchange with BUSD rewards for users who stake their coins to support the network.
XODEX.swapAndSendToFee(address,uint256) (#1200-1207) ignores return value by IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Contract locking ether found:
Contract XODEX (#936-1228) has payable functions:
- XODEX.receive() (#1012-1014)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Pragma version^0.6.2 (#3) allows old versions
solc-0.6.2 is not recommended for deployment
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
Redundant expression "this (#165)" inContext (#159-168)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#647) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#648)
Prevent variables from having similar names.
Additional information: link
XODEX.slitherConstructorVariables() (#936-1228) uses literals with too many digits:
- maxTransactionAmount = 100000000 * (10 ** 18) (#955)
XODEX.slitherConstructorVariables() (#936-1228) uses literals with too many digits:
- swapTokensAtAmount = 200000 * (10 ** 18) (#946)
XODEX.constructor() (#979-1010) uses literals with too many digits:
- _mint(owner(),10000000000 * (10 ** 18)) (#1009)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#866) is never used in SafeMathInt (#864-922)
Remove unused state variables.
Additional information: link
XODEX.setSwapTokenLimit(uint256) (#1086-1088) should emit an event for:
- swapTokensAtAmount = value * (10 ** 18) (#1087)
XODEX.setCharityFee(uint256) (#1068-1072) should emit an event for:
- charityFee = value (#1069)
XODEX.setMarketingFee(uint256) (#1056-1060) should emit an event for:
- marketingFee = value (#1057)
XODEX.setStakingRewardFee(uint256) (#1074-1078) should emit an event for:
- stakingRewardFee = value (#1075)
XODEX.setMaxTransactionAmount(uint256) (#1090-1093) should emit an event for:
- maxTransactionAmount = value * (10 ** 18) (#1092)
XODEX.setBuyBackAndBurnFee(uint256) (#1062-1066) should emit an event for:
- buyBackAndBurnFee = value (#1063)
XODEX.updateDelayedBlocks(uint256) (#1116-1118) should emit an event for:
- delayedBlocks = _blocks (#1117)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
State variables written after the call(s):
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- _allowances[owner][spender] = amount (#547)
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_stakingRewardWallet,stakingRewardTokens) (#1184)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
State variables written after the call(s):
- swapAndSendToFee(_stakingRewardWallet,stakingRewardTokens) (#1184)
- _allowances[owner][spender] = amount (#547)
Reentrancy in XODEX.updateUniswapV2Router(address) (#1016-1023):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1020-1021)
State variables written after the call(s):
- uniswapV2Pair = _uniswapV2Pair (#1022)
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
State variables written after the call(s):
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- _allowances[owner][spender] = amount (#547)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_stakingRewardWallet,stakingRewardTokens) (#1184)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#548)
- swapAndSendToFee(_stakingRewardWallet,stakingRewardTokens) (#1184)
- Transfer(sender,recipient,amount) (#483)
- super._transfer(from,address(this),fees_scope_0) (#1194)
- Transfer(sender,recipient,amount) (#483)
- super._transfer(from,to,amount) (#1197)
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#548)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#548)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in XODEX._transfer(address,address,uint256) (#1120-1198):
External calls:
- swapAndSendToFee(_marketingWallet,marketingTokens) (#1175)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_buyBackAndBurnWallet,buyBackAndBurnTokens) (#1178)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_charityWallet,charityTokens) (#1181)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
- swapAndSendToFee(_stakingRewardWallet,stakingRewardTokens) (#1184)
- IERC20(BUSD).transfer(_wallet,newBalance) (#1206)
- uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp.add(30)) (#1219-1225)
State variables written after the call(s):
- super._transfer(from,address(this),fees_scope_0) (#1194)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#481)
- _balances[recipient] = _balances[recipient].add(amount) (#482)
- super._transfer(from,to,amount) (#1197)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#481)
- _balances[recipient] = _balances[recipient].add(amount) (#482)
- swapping = false (#1186)
Apply the check-effects-interactions pattern.
Additional information: link
SafeMathInt.div(int256,int256) (#883-889) is never used and should be removed
SafeMathInt.abs(int256) (#912-915) is never used and should be removed
SafeMathUint.toInt256Safe(uint256) (#929-933) is never used and should be removed
SafeMathInt.mul(int256,int256) (#871-878) is never used and should be removed
ERC20._burn(address,uint256) (#516-524) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#143-146) is never used and should be removed
SafeMathInt.toUint256Safe(int256) (#918-921) is never used and should be removed
SafeMathInt.sub(int256,int256) (#894-898) is never used and should be removed
Context._msgData() (#164-167) is never used and should be removed
SafeMath.mod(uint256,uint256) (#127-129) is never used and should be removed
SafeMathInt.add(int256,int256) (#903-907) is never used and should be removed
Remove unused functions.
Additional information: link
Variable XODEX.BUSD (#944) is not in mixedCase
Variable XODEX._isBot (#949) is not in mixedCase
Parameter XODEX.swapAndSendToFee(address,uint256)._wallet (#1200) is not in mixedCase
Variable XODEX._charityWallet (#965) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#604) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#621) is not in mixedCase
Variable XODEX._marketingWallet (#963) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#603) is not in mixedCase
Variable XODEX._isBlacklisted (#948) is not in mixedCase
Parameter XODEX.updateDelayedBlocks(uint256)._blocks (#1116) is not in mixedCase
Variable XODEX._stakingRewardWallet (#966) is not in mixedCase
Function IUniswapV2Router01.WETH() (#642) is not in mixedCase
Variable XODEX._buyBackAndBurnWallet (#964) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#411-419)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- XODEX.excludeMultipleAccountsFromFees(address[],bool) (#1032-1038)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#815-818)
isExcludedFromFees(address) should be declared external:
- XODEX.isExcludedFromFees(address) (#1112-1114)
decimals() should be declared external:
- ERC20.decimals() (#348-350)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#452-455)
symbol() should be declared external:
- ERC20.symbol() (#331-333)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#374-377)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#433-436)
updateUniswapV2Router(address) should be declared external:
- XODEX.updateUniswapV2Router(address) (#1016-1023)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#824-828)
name() should be declared external:
- ERC20.name() (#323-325)
updateDelayedBlocks(uint256) should be declared external:
- XODEX.updateDelayedBlocks(uint256) (#1116-1118)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#393-396)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- XODEX.setAutomatedMarketMakerPair(address,bool) (#1095-1099)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#382-384)
Use the external attribute for functions never called from the contract.
Additional information: link
XODEX.setBuyBackAndBurnWallet(address).wallet (#1044) lacks a zero-check on :
- _buyBackAndBurnWallet = wallet (#1045)
XODEX.setCharityWallet(address).wallet (#1048) lacks a zero-check on :
- _charityWallet = wallet (#1049)
XODEX.updateUniswapV2Router(address)._uniswapV2Pair (#1020-1021) lacks a zero-check on :
- uniswapV2Pair = _uniswapV2Pair (#1022)
XODEX.setStakingRewardWallet(address).wallet (#1052) lacks a zero-check on :
- _stakingRewardWallet = wallet (#1053)
XODEX.setMarketingWallet(address).wallet (#1040) lacks a zero-check on :
- _marketingWallet = wallet (#1041)
Check that the address is not zero.
Additional information: link
XODEX.antiSniperBot (#952) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Token has a considerable age, but social accounts / website are missing or have few users
Token has relatively low CoinGecko rank
Twitter account link seems to be invalid
Unable to find Youtube account
Unable to find Discord account