GoRide is a Web3 fitness and lifestyle app with SocialFi, GameFi and Metaverse elements. Created by Riders, for Riders! ✅ Audited by InterFi! ✅ KYC by PinkSale! ✅ Tax: 0% on Buys and 5% on Sells! ✅ NFT Bikes ✅ Stake To Earn ✅ Marketplace ✅ Get Riding, Get Earning!
Reentrancy in GoRide._transfer(address,address,uint256) (#316-340):
External calls:
- swapTokens(swapTokensAtAmount) (#336)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#383-389)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
External calls sending eth:
- swapTokens(swapTokensAtAmount) (#336)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
State variables written after the call(s):
- super._transfer(from,to,amount) (#339)
- _balances[sender] = _balances[sender] - amount (#165)
- _balances[recipient] = _balances[recipient] + amount (#166)
Apply the check-effects-interactions pattern.
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)
GoRide.clearStuckBalance(uint256) (#256-269) uses a dangerous strict equality:
- success == true (#263)
GoRide.swapTokens(uint256) (#350-372) uses a dangerous strict equality:
- temp == false (#364)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
GoRide.modifyTaxes(uint256,uint256) (#279-292) contains a tautology or contradiction:
- require(bool,string)(0 <= _liquidityFee && _liquidityFee <= 10,Requested liquidity fee not within acceptable range, [0,10] .) (#280-281)
GoRide.modifyTaxes(uint256,uint256) (#279-292) contains a tautology or contradiction:
- require(bool,string)(0 <= _marketingDevRewardsFee && _marketingDevRewardsFee <= 10,Requested marketing/dev./rewards fee percentage not within acceptable range, [0,10].) (#282-283)
Fix the incorrect comparison by changing the value type or the comparison.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#64-67)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#69-73)
name() should be declared external:
- ERC20.name() (#93-95)
symbol() should be declared external:
- ERC20.symbol() (#97-99)
decimals() should be declared external:
- ERC20.decimals() (#101-103)
totalSupply() should be declared external:
- ERC20.totalSupply() (#105-107)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#113-116)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#138-140)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#142-145)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#147-151)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#153-156)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#158-161)
Use the external attribute for functions never called from the contract.
Additional information: link
GoRide.swapTokens(uint256) (#350-372) performs a multiplication on the result of a division:
-halfLPTokens = LPtokens / 2 (#352)
-BNBForLP = newBalance * halfLPTokens / swapAmount (#360)
GoRide.swapTokens(uint256) (#350-372) performs a multiplication on the result of a division:
-marketingDevRewardsTokens = tokens * marketingDevRewardsFee / totalFees (#353)
-BNBForMarketingDevRewards = newBalance * marketingDevRewardsTokens / swapAmount (#361)
Consider ordering multiplication before division.
Additional information: link
GoRide.addLiquidity(uint256,uint256) (#392-405) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
Ensure that all the return values of the function calls are used.
Additional information: link
GoRide.changeFeeReceivers(address,address)._marketingDevRewardsReceiver (#294) lacks a zero-check on :
- marketingDevRewardsReceiver = _marketingDevRewardsReceiver (#295)
GoRide.changeFeeReceivers(address,address)._autoLiquidityReceiver (#294) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (#296)
Check that the address is not zero.
Additional information: link
Reentrancy in GoRide.constructor() (#220-240):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#224-225)
State variables written after the call(s):
- _mint(owner(),TOTAL_SUPPLY) (#239)
- _balances[account] = _balances[account] + amount (#123)
- _mint(owner(),TOTAL_SUPPLY) (#239)
- _totalSupply = _totalSupply + amount (#122)
- excludeFromFees(deadAddress,true) (#231)
- isExcludedFromFees[account] = excluded (#274)
- excludeFromFees(address(this),true) (#232)
- isExcludedFromFees[account] = excluded (#274)
- excludeFromFees(owner(),true) (#233)
- isExcludedFromFees[account] = excluded (#274)
- isPair[_uniswapV2Pair] = true (#229)
- uniswapV2Pair = _uniswapV2Pair (#227)
- uniswapV2Router = _uniswapV2Router (#226)
Reentrancy in GoRide.swapTokens(uint256) (#350-372):
External calls:
- swapTokensForEth(swapAmount) (#357)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#383-389)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
External calls sending eth:
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
State variables written after the call(s):
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- _allowances[owner][spender] = amount (#175)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in GoRide._transfer(address,address,uint256) (#316-340):
External calls:
- swapTokens(swapTokensAtAmount) (#336)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#383-389)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
External calls sending eth:
- swapTokens(swapTokensAtAmount) (#336)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#168)
- super._transfer(from,to,amount) (#339)
Reentrancy in GoRide.clearStuckBalance(uint256) (#256-269):
External calls:
- (success) = address(marketingDevRewardsReceiver).call{gas: 30000,value: amountBNB}() (#261)
Event emitted after the call(s):
- ClearBalanceFailure(marketingDevRewardsReceiver,amountBNB) (#267)
- ClearedStuckBalance(marketingDevRewardsReceiver,amountBNB) (#264)
Reentrancy in GoRide.constructor() (#220-240):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#224-225)
Event emitted after the call(s):
- ExcludeFromFees(account,excluded) (#276)
- excludeFromFees(deadAddress,true) (#231)
- ExcludeFromFees(account,excluded) (#276)
- excludeFromFees(owner(),true) (#233)
- ExcludeFromFees(account,excluded) (#276)
- excludeFromFees(address(this),true) (#232)
- Transfer(address(0),account,amount) (#125)
- _mint(owner(),TOTAL_SUPPLY) (#239)
Reentrancy in GoRide.swapTokens(uint256) (#350-372):
External calls:
- swapTokensForEth(swapAmount) (#357)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#383-389)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
External calls sending eth:
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
Event emitted after the call(s):
- FeeDistributionFailure(marketingDevRewardsReceiver,BNBForMarketingDevRewards) (#365)
Reentrancy in GoRide.swapTokens(uint256) (#350-372):
External calls:
- swapTokensForEth(swapAmount) (#357)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#383-389)
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
External calls sending eth:
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,autoLiquidityReceiver,block.timestamp) (#397-404)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#177)
- addLiquidity(halfLPTokens,BNBForLP) (#369)
- SwapAndLiquify(halfLPTokens,BNBForLP) (#370)
Apply the check-effects-interactions pattern.
Additional information: link
GoRide.clearStuckBalance(uint256) (#256-269) compares to a boolean constant:
-success == true (#263)
GoRide.swapTokens(uint256) (#350-372) compares to a boolean constant:
-temp == false (#364)
Remove the equality to the boolean constant.
Additional information: link
ERC20._burn(address,uint256) (#128-136) is never used and should be removed
Remove unused functions.
Additional information: link
GoRide.totalFees (#203) is set pre-construction with a non-constant function or state variable:
- marketingDevRewardsFee + liquidityFee
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Pragma version=0.8.13 (#3) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.13 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
Low level call in GoRide.clearStuckBalance(uint256) (#256-269):
- (success) = address(marketingDevRewardsReceiver).call{gas: 30000,value: amountBNB}() (#261)
Low level call in GoRide.swapTokens(uint256) (#350-372):
- (temp) = address(marketingDevRewardsReceiver).call{gas: 30000,value: BNBForMarketingDevRewards}() (#363)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Router.WETH() (#20) is not in mixedCase
Parameter GoRide.modifyTaxes(uint256,uint256)._marketingDevRewardsFee (#279) is not in mixedCase
Parameter GoRide.modifyTaxes(uint256,uint256)._liquidityFee (#279) is not in mixedCase
Parameter GoRide.changeFeeReceivers(address,address)._marketingDevRewardsReceiver (#294) is not in mixedCase
Parameter GoRide.changeFeeReceivers(address,address)._autoLiquidityReceiver (#294) is not in mixedCase
Parameter GoRide.setSwapTokensAtAmount(uint256)._swapTokensAtAmount (#301) is not in mixedCase
Constant GoRide.deadAddress (#190) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Variable GoRide.TOTAL_SUPPLY (#197) is too similar to ERC20._totalSupply (#81)
Prevent variables from having similar names.
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Unable to find Youtube account
Unable to find Discord account