Frog Inu Token Logo

FGI [Frog Inu] Token

About FGI

Listings

Token 23 months
CoinGecko 22 months

Website

white paper

Frog Inu, May 30, 2022 is the funniest frog on BSC! A community-focused, decentralized cryptocurrency with instant rewards for holders.

It is a meme token that only rewards investors for holding, the number of rewards received will increase over time if investors hold them longer. We are the safest place for long- and short-term investors in the meme category.

Laser Scorebeta Last Audit: 5 July 2022

report
Token seems to be (relatively) fine. It still become a scam, but probability is moderate.

FrogInu.sendETHToFee(uint256) (#290-293) sends eth to arbitrary user
Dangerous calls:
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
Ensure that an arbitrary user cannot withdraw unauthorized funds.

Additional information: link

FrogInu.rescueForeignTokens(address,address,uint256) (#300-303) ignores return value by Token(_tokenAddr).transfer(_to,_amount) (#302)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.

Additional information: link

Reentrancy in FrogInu._transfer(address,address,uint256) (#237-274):
External calls:
- swapTokensForEth(contractTokenBalance) (#249)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#281-287)
External calls sending eth:
- sendETHToFee(address(this).balance) (#252)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#273)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#331)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#321)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#322)
- _tokenTransfer(from,to,amount) (#273)
- _rTotal = _rTotal.sub(rFee) (#335)
Apply the check-effects-interactions pattern.

Additional information: link


Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains


Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.


Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.


Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.

Reentrancy in FrogInu._transfer(address,address,uint256) (#237-274):
External calls:
- swapTokensForEth(contractTokenBalance) (#249)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#281-287)
External calls sending eth:
- sendETHToFee(address(this).balance) (#252)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
State variables written after the call(s):
- _redisFee = _redisFeeOnBuy (#257)
- _redisFee = _redisFeeOnSell (#262)
- _redisFee = 0 (#267)
- _tokenTransfer(from,to,amount) (#273)
- _tFeeTotal = _tFeeTotal.add(tFee) (#336)
- _taxFee = _taxFeeOnBuy (#258)
- _taxFee = _taxFeeOnSell (#263)
- _taxFee = 0 (#268)
Reentrancy in FrogInu.constructor() (#163-177):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#168-169)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#171)
- _isExcludedFromFee[address(this)] = true (#172)
- _isExcludedFromFee[_developmentAddress] = true (#173)
- _isExcludedFromFee[_marketingAddress] = true (#174)
Reentrancy in FrogInu.transferFrom(address,address,uint256) (#218-222):
External calls:
- _transfer(sender,recipient,amount) (#219)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#281-287)
External calls sending eth:
- _transfer(sender,recipient,amount) (#219)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#220)
- _allowances[owner][spender] = amount (#233)
Apply the check-effects-interactions pattern.

Additional information: link

Ownable._previousOwner (#93) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

FrogInu.constructor() (#163-177) uses literals with too many digits:
- Transfer(address(0x0000000000000000000000000000000000000000),_msgSender(),_tTotal) (#176)
FrogInu.slitherConstructorConstantVariables() (#123-408) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#132)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

Ownable._previousOwner (#93) is never used in FrogInu (#123-408)
FrogInu._tOwned (#127) is never used in FrogInu (#123-408)
Remove unused state variables.

Additional information: link

FrogInu.allowance(address,address).owner (#209) shadows:
- Ownable.owner() (#101-103) (function)
FrogInu._approve(address,address,uint256).owner (#230) shadows:
- Ownable.owner() (#101-103) (function)
Rename the local variables that shadow another component.

Additional information: link

Ownable.transferOwnership(address).newOwner (#116) lacks a zero-check on :
- _owner = newOwner (#118)
FrogInu.setNewDevAddress(address).dev (#306) lacks a zero-check on :
- _developmentAddress = dev (#308)
FrogInu.setNewMarketingAddress(address).markt (#313) lacks a zero-check on :
- _marketingAddress = markt (#315)
Check that the address is not zero.

Additional information: link

Function IUniswapV2Router02.WETH() (#34) is not in mixedCase
Event FrogInutokensRescued(address,address,uint256) (#299) is not in CapWords
Event FrogInudevAddressUpdated(address,address) (#305) is not in CapWords
Event FrogInumarketingAddressUpdated(address,address) (#312) is not in CapWords
Parameter FrogInu.rescueForeignTokens(address,address,uint256)._tokenAddr (#300) is not in mixedCase
Parameter FrogInu.rescueForeignTokens(address,address,uint256)._to (#300) is not in mixedCase
Parameter FrogInu.rescueForeignTokens(address,address,uint256)._amount (#300) is not in mixedCase
Parameter FrogInu.toggleSwap(bool)._swapEnabled (#398) is not in mixedCase
Constant FrogInu._tTotal (#132) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FrogInu._name (#145) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FrogInu._symbol (#146) is not in UPPER_CASE_WITH_UNDERSCORES
Constant FrogInu._decimals (#147) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.

Additional information: link

Reentrancy in FrogInu._transfer(address,address,uint256) (#237-274):
External calls:
- swapTokensForEth(contractTokenBalance) (#249)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#281-287)
External calls sending eth:
- sendETHToFee(address(this).balance) (#252)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#325)
- _tokenTransfer(from,to,amount) (#273)
Reentrancy in FrogInu.constructor() (#163-177):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#168-169)
Event emitted after the call(s):
- Transfer(address(0x0000000000000000000000000000000000000000),_msgSender(),_tTotal) (#176)
Reentrancy in FrogInu.transferFrom(address,address,uint256) (#218-222):
External calls:
- _transfer(sender,recipient,amount) (#219)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#281-287)
External calls sending eth:
- _transfer(sender,recipient,amount) (#219)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#234)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#220)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in FrogInu._transfer(address,address,uint256) (#237-274):
External calls:
- sendETHToFee(address(this).balance) (#252)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
State variables written after the call(s):
- _tokenTransfer(from,to,amount) (#273)
- _rOwned[address(this)] = _rOwned[address(this)].add(rTeam) (#331)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#321)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#322)
- _tokenTransfer(from,to,amount) (#273)
- _rTotal = _rTotal.sub(rFee) (#335)
- _redisFee = _redisFeeOnBuy (#257)
- _redisFee = _redisFeeOnSell (#262)
- _redisFee = 0 (#267)
- _tokenTransfer(from,to,amount) (#273)
- _tFeeTotal = _tFeeTotal.add(tFee) (#336)
- _taxFee = _taxFeeOnBuy (#258)
- _taxFee = _taxFeeOnSell (#263)
- _taxFee = 0 (#268)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#325)
- _tokenTransfer(from,to,amount) (#273)
Reentrancy in FrogInu.transferFrom(address,address,uint256) (#218-222):
External calls:
- _transfer(sender,recipient,amount) (#219)
- _developmentAddress.transfer(amount.div(2)) (#291)
- _marketingAddress.transfer(amount.div(2)) (#292)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#220)
- _allowances[owner][spender] = amount (#233)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#234)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#220)
Apply the check-effects-interactions pattern.

Additional information: link

Variable FrogInu._transferStandard(address,address,uint256).rTransferAmount (#320) is too similar to FrogInu._transferStandard(address,address,uint256).tTransferAmount (#320)
Variable FrogInu._getValues(uint256).rTransferAmount (#344) is too similar to FrogInu._transferStandard(address,address,uint256).tTransferAmount (#320)
Variable FrogInu._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#359) is too similar to FrogInu._transferStandard(address,address,uint256).tTransferAmount (#320)
Variable FrogInu._getValues(uint256).rTransferAmount (#344) is too similar to FrogInu._getTValues(uint256,uint256,uint256).tTransferAmount (#351)
Variable FrogInu._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#359) is too similar to FrogInu._getTValues(uint256,uint256,uint256).tTransferAmount (#351)
Variable FrogInu._transferStandard(address,address,uint256).rTransferAmount (#320) is too similar to FrogInu._getValues(uint256).tTransferAmount (#342)
Variable FrogInu._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#359) is too similar to FrogInu._getValues(uint256).tTransferAmount (#342)
Variable FrogInu._getValues(uint256).rTransferAmount (#344) is too similar to FrogInu._getValues(uint256).tTransferAmount (#342)
Variable FrogInu._transferStandard(address,address,uint256).rTransferAmount (#320) is too similar to FrogInu._getTValues(uint256,uint256,uint256).tTransferAmount (#351)
Prevent variables from having similar names.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#110-113)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#116-119)
name() should be declared external:
- FrogInu.name() (#184-186)
symbol() should be declared external:
- FrogInu.symbol() (#188-190)
decimals() should be declared external:
- FrogInu.decimals() (#192-194)
totalSupply() should be declared external:
- FrogInu.totalSupply() (#196-198)
transfer(address,uint256) should be declared external:
- FrogInu.transfer(address,uint256) (#204-207)
allowance(address,address) should be declared external:
- FrogInu.allowance(address,address) (#209-211)
approve(address,uint256) should be declared external:
- FrogInu.approve(address,uint256) (#213-216)
transferFrom(address,address,uint256) should be declared external:
- FrogInu.transferFrom(address,address,uint256) (#218-222)
rescueForeignTokens(address,address,uint256) should be declared external:
- FrogInu.rescueForeignTokens(address,address,uint256) (#300-303)
setNewDevAddress(address) should be declared external:
- FrogInu.setNewDevAddress(address) (#306-310)
setNewMarketingAddress(address) should be declared external:
- FrogInu.setNewMarketingAddress(address) (#313-317)
setFee(uint256,uint256,uint256,uint256) should be declared external:
- FrogInu.setFee(uint256,uint256,uint256,uint256) (#387-396)
toggleSwap(bool) should be declared external:
- FrogInu.toggleSwap(bool) (#398-400)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- FrogInu.excludeMultipleAccountsFromFees(address[],bool) (#402-406)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain

Contract has 10% buy tax and 9% sell tax.
Taxes are low and contract ownership is renounced.

No disclosed threats


Unable to find token on CoinMarketCap

Additional information: link


Token is not listed at Mobula.Finance

Additional information: link


Unable to find token on CoinHunt

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 CoinMarketCap listing / rank


Token has relatively low CoinGecko rank

Price for FGI

News for FGI