🌐 https://Godfather.app
✅ The Fastest Automatic Staking and Compounding in Your Wallet! a daily ROI (Return On Investment) of 2.26368%. 387,173.50%
Highest Fixed APY
✅ Auto burns 🔥
✅ Gamefi
✅ Interest Paid Every 5 Minutes - 288 Times Daily!
Godfather.swapBack() (#703-736) sends eth to arbitrary user
Dangerous calls:
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in Godfather._transferFrom(address,address,uint256) (#594-633):
External calls:
- rebase() (#607)
- pairContract.sync() (#559)
- addLiquidity() (#611)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#680-686)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
- swapBack() (#615)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#716-722)
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
External calls sending eth:
- addLiquidity() (#611)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
- swapBack() (#615)
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
State variables written after the call(s):
- _gonBalances[sender] = _gonBalances[sender].sub(gonAmount) (#619)
- _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived) (#623-625)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#620-622)
- _gonBalances[firePitAddress] = _gonBalances[firePitAddress].add(gonAmount.div(feeDenominator).mul(firePitFee)) (#650-652)
- _gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(insuranceFundFee))) (#653-655)
- _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee)) (#656-658)
- swapBack() (#615)
- inSwap = true (#486)
- inSwap = false (#488)
Apply the check-effects-interactions pattern.
Additional information: link
Godfather._name (#446) shadows:
- ERC20Detailed._name (#412)
Godfather._symbol (#447) shadows:
- ERC20Detailed._symbol (#413)
Godfather._decimals (#448) shadows:
- ERC20Detailed._decimals (#414)
Remove the state variable shadowing.
Additional information: link
Too many vulnerabilities (Unchecked transfer, Reentrancy vulnerability, etc.). High risk of a scam. DYOR & manual audit are advised.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Godfather.swapBack().success (#728) is written in both
(success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
(success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
Fix or remove the writes.
Additional information: link
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.
Godfather.rebase() (#534-562) performs a multiplication on the result of a division:
-times = deltaTime.div(rebaseCycle) (#540)
-epoch = times.mul(5) (#541)
Godfather.rebase() (#534-562) performs a multiplication on the result of a division:
-times = deltaTime.div(rebaseCycle) (#540)
-_lastRebasedTime = _lastRebasedTime.add(times.mul(rebaseCycle)) (#557)
Godfather.takeFee(address,address,uint256) (#635-662) performs a multiplication on the result of a division:
-feeAmount = gonAmount.div(feeDenominator).mul(_totalFee) (#648)
Godfather.takeFee(address,address,uint256) (#635-662) performs a multiplication on the result of a division:
-_gonBalances[firePitAddress] = _gonBalances[firePitAddress].add(gonAmount.div(feeDenominator).mul(firePitFee)) (#650-652)
Godfather.takeFee(address,address,uint256) (#635-662) performs a multiplication on the result of a division:
-_gonBalances[address(this)] = _gonBalances[address(this)].add(gonAmount.div(feeDenominator).mul(_treasuryFee.add(insuranceFundFee))) (#653-655)
Godfather.takeFee(address,address,uint256) (#635-662) performs a multiplication on the result of a division:
-_gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add(gonAmount.div(feeDenominator).mul(liquidityFee)) (#656-658)
Godfather.getLiquidityBacking(uint256) (#856-859) performs a multiplication on the result of a division:
-liquidityBalance = _gonBalances[pair].div(_gonsPerFragment) (#857)
-accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()) (#858)
Consider ordering multiplication before division.
Additional information: link
Godfather.rebase().rebaseRate (#537) 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
Godfather.addLiquidity() (#664-701) ignores return value by router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
Ensure that all the return values of the function calls are used.
Additional information: link
Godfather.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#845) lacks a zero-check on :
- autoLiquidityReceiver = _autoLiquidityReceiver (#850)
Godfather.setFeeReceivers(address,address,address,address)._treasuryReceiver (#846) lacks a zero-check on :
- treasuryReceiver = _treasuryReceiver (#851)
Godfather.setFeeReceivers(address,address,address,address)._insuranceFundReceiver (#847) lacks a zero-check on :
- insuranceFundReceiver = _insuranceFundReceiver (#852)
Godfather.setFeeReceivers(address,address,address,address)._firePitAddress (#848) lacks a zero-check on :
- firePitAddress = _firePitAddress (#853)
Godfather.setPairAddress(address)._pairAddress (#870) lacks a zero-check on :
- pairAddress = _pairAddress (#871)
Godfather.setAutoLiquidityReceiver(address).newAddress (#894) lacks a zero-check on :
- autoLiquidityReceiver = newAddress (#895)
Godfather.setTreasuryReceiver(address).newAddress (#898) lacks a zero-check on :
- treasuryReceiver = newAddress (#899)
Godfather.setInsuranceFundReceiver(address).newAddress (#902) lacks a zero-check on :
- insuranceFundReceiver = newAddress (#903)
Godfather.setFirePitAddress(address).newAddress (#906) lacks a zero-check on :
- firePitAddress = newAddress (#907)
Godfather.retrieveMainBalance(address).receiveAddress (#914) lacks a zero-check on :
- address(receiveAddress).transfer(address(this).balance) (#915)
Check that the address is not zero.
Additional information: link
Reentrancy in Godfather.addLiquidity() (#664-701):
External calls:
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#680-686)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
External calls sending eth:
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
State variables written after the call(s):
- _lastAddLiquidityTime = block.timestamp (#700)
Reentrancy in Godfather.constructor() (#506-532):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#509)
State variables written after the call(s):
- _allowedFragments[address(this)][address(router)] = uint256(- 1) (#516)
- _autoAddLiquidity = true (#526)
- _autoRebase = true (#525)
- _gonBalances[treasuryReceiver] = TOTAL_GONS (#521)
- _gonsPerFragment = TOTAL_GONS.div(_totalSupply) (#522)
- _initRebaseStartTime = block.timestamp (#523)
- _isFeeExempt[treasuryReceiver] = true (#527)
- _isFeeExempt[address(this)] = true (#528)
- _lastRebasedTime = block.timestamp (#524)
- _transferOwnership(treasuryReceiver) (#530)
- _owner = newOwner (#407)
- _totalSupply = INITIAL_FRAGMENTS_SUPPLY (#520)
- autoLiquidityReceiver = 0x9691e9691a54CF5CE391486015b9F6b67444bB0e (#511)
- firePitAddress = 0x12edbcb9f25E3F137B0b1Bd35D6865F8557103A8 (#514)
- insuranceFundReceiver = 0x993651c5B75B3dC47913c85af4209Ea50B088fb9 (#513)
- pairAddress = pair (#517)
- pairContract = IPancakeSwapPair(pair) (#518)
- treasuryReceiver = 0x7FB82B34F283e4ddD7D5F2Ec287D9A81Ed5dFa64 (#512)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Godfather._transferFrom(address,address,uint256) (#594-633):
External calls:
- rebase() (#607)
- pairContract.sync() (#559)
- addLiquidity() (#611)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#680-686)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
- swapBack() (#615)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(amountToSwap,0,path,address(this),block.timestamp) (#716-722)
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
External calls sending eth:
- addLiquidity() (#611)
- router.addLiquidityETH{value: amountETHLiquidity}(address(this),amountToLiquify,0,0,autoLiquidityReceiver,block.timestamp) (#691-698)
- swapBack() (#615)
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount.div(_gonsPerFragment)) (#660)
- gonAmountReceived = takeFee(sender,recipient,gonAmount) (#620-622)
- Transfer(sender,recipient,gonAmountReceived.div(_gonsPerFragment)) (#627-631)
Reentrancy in Godfather.constructor() (#506-532):
External calls:
- pair = IPancakeSwapFactory(router.factory()).createPair(router.WETH(),address(this)) (#509)
Event emitted after the call(s):
- OwnershipTransferred(_owner,newOwner) (#406)
- _transferOwnership(treasuryReceiver) (#530)
- Transfer(address(0x0),treasuryReceiver,_totalSupply) (#531)
Reentrancy in Godfather.rebase() (#534-562):
External calls:
- pairContract.sync() (#559)
Event emitted after the call(s):
- LogRebase(epoch,_totalSupply) (#561)
Apply the check-effects-interactions pattern.
Additional information: link
Godfather.rebase() (#534-562) uses timestamp for comparisons
Dangerous comparisons:
- deltaTimeFromInit >= (3 * 31536000) (#543)
- deltaTimeFromInit >= (2 * 31536000) (#545)
- deltaTimeFromInit >= (31536000) (#547)
- deltaTimeFromInit < (31536000) (#549)
- i < times (#553)
Godfather.shouldRebase() (#760-767) uses timestamp for comparisons
Dangerous comparisons:
- _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && ! inSwap && block.timestamp >= (_lastRebasedTime + rebaseCycle) (#761-766)
Godfather.shouldAddLiquidity() (#769-775) uses timestamp for comparisons
Dangerous comparisons:
- _autoAddLiquidity && ! inSwap && msg.sender != pair && block.timestamp >= (_lastAddLiquidityTime + 172800) (#770-774)
Godfather.getNextRebase() (#918-928) uses timestamp for comparisons
Dangerous comparisons:
- nextRebase > block.timestamp (#923)
Avoid relying on block.timestamp.
Additional information: link
Godfather.isContract(address) (#886-890) uses assembly
- INLINE ASM (#888)
Do not use evm assembly.
Additional information: link
SafeMath.mod(uint256,uint256) (#90-93) is never used and should be removed
SafeMathInt.abs(int256) (#35-38) is never used and should be removed
SafeMathInt.add(int256,int256) (#29-33) is never used and should be removed
SafeMathInt.div(int256,int256) (#17-21) is never used and should be removed
SafeMathInt.mul(int256,int256) (#9-15) is never used and should be removed
SafeMathInt.sub(int256,int256) (#23-27) is never used and should be removed
Remove unused functions.
Additional information: link
Godfather.totalFee (#469) is set pre-construction with a non-constant function or state variable:
- liquidityFee.add(treasuryFee).add(insuranceFundFee).add(firePitFee)
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.7.4 (#3) 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
Low level call in Godfather.swapBack() (#703-736):
- (success) = address(treasuryReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(treasuryFee).div(treasuryFee.add(insuranceFundFee))}() (#728-731)
- (success,None) = address(insuranceFundReceiver).call{gas: 30000,value: amountETHToTreasuryAndSIF.mul(insuranceFundFee).div(treasuryFee.add(insuranceFundFee))}() (#732-735)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IPancakeSwapPair.DOMAIN_SEPARATOR() (#147) is not in mixedCase
Function IPancakeSwapPair.PERMIT_TYPEHASH() (#149) is not in mixedCase
Function IPancakeSwapPair.MINIMUM_LIQUIDITY() (#167) is not in mixedCase
Function IPancakeSwapRouter.WETH() (#199) is not in mixedCase
Parameter Godfather.setAutoRebase(bool)._flag (#783) is not in mixedCase
Parameter Godfather.setAutoAddLiquidity(bool)._flag (#792) is not in mixedCase
Parameter Godfather.setFeeReceivers(address,address,address,address)._autoLiquidityReceiver (#845) is not in mixedCase
Parameter Godfather.setFeeReceivers(address,address,address,address)._treasuryReceiver (#846) is not in mixedCase
Parameter Godfather.setFeeReceivers(address,address,address,address)._insuranceFundReceiver (#847) is not in mixedCase
Parameter Godfather.setFeeReceivers(address,address,address,address)._firePitAddress (#848) is not in mixedCase
Parameter Godfather.setBotBlacklist(address,bool)._botAddress (#865) is not in mixedCase
Parameter Godfather.setBotBlacklist(address,bool)._flag (#865) is not in mixedCase
Parameter Godfather.setPairAddress(address)._pairAddress (#870) is not in mixedCase
Parameter Godfather.setLP(address)._address (#874) is not in mixedCase
Variable Godfather._name (#446) is not in mixedCase
Variable Godfather._symbol (#447) is not in mixedCase
Variable Godfather._decimals (#448) is not in mixedCase
Variable Godfather._isFeeExempt (#451) is not in mixedCase
Variable Godfather.DEAD (#473) is not in mixedCase
Variable Godfather.ZERO (#474) is not in mixedCase
Variable Godfather._autoRebase (#494) is not in mixedCase
Variable Godfather._autoAddLiquidity (#495) is not in mixedCase
Variable Godfather._initRebaseStartTime (#496) is not in mixedCase
Variable Godfather._lastRebasedTime (#497) is not in mixedCase
Variable Godfather._lastAddLiquidityTime (#498) is not in mixedCase
Variable Godfather._totalSupply (#499) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#204) is too similar to IPancakeSwapRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#205)
Prevent variables from having similar names.
Additional information: link
Godfather.slitherConstructorVariables() (#439-931) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#473)
Godfather.slitherConstructorVariables() (#439-931) uses literals with too many digits:
- ZERO = 0x0000000000000000000000000000000000000000 (#474)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#7) is never used in SafeMathInt (#5-39)
Remove unused state variables.
Additional information: link
Godfather.DEAD (#473) should be constant
Godfather.ZERO (#474) should be constant
Godfather._decimals (#448) should be constant
Godfather._name (#446) should be constant
Godfather._symbol (#447) should be constant
Godfather.feeDenominator (#470) should be constant
Godfather.firePitFee (#468) should be constant
Godfather.insuranceFundFee (#466) should be constant
Godfather.liquidityFee (#464) should be constant
Godfather.rebaseCycle (#471) should be constant
Godfather.sellFee (#467) should be constant
Godfather.swapEnabled (#481) should be constant
Godfather.treasuryFee (#465) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#382-384)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#395-398)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#400-402)
name() should be declared external:
- ERC20Detailed.name() (#426-428)
symbol() should be declared external:
- ERC20Detailed.symbol() (#430-432)
decimals() should be declared external:
- ERC20Detailed.decimals() (#434-436)
getLiquidityBacking(uint256) should be declared external:
- Godfather.getLiquidityBacking(uint256) (#856-859)
setPairAddress(address) should be declared external:
- Godfather.setPairAddress(address) (#870-872)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find token on CoinGecko
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
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Youtube account
Twitter account has few posts