🚀🚀🚀🚀🚀Pug Doge 是一个基于BSC链功能强大的 meme 令牌。Pug Doge的诞生解决了目前市场上meme代币存在的问题和缺陷。将成为最完美的meme代币,我们将和CHH唤起大众对于动物的爱心救助,每笔交易保留1%,将自动分配给爱动物基金。八哥犬个性温和。是优秀的家庭犬,我们也将是一级市场里最优质项目。开盘限购,徐公子联盟带队!!!拉盘资金已准备,话不多说,小池子就是当个钻石手🚀
Pug Doge未来会开发自己的PD NFT每个NFT都有自己的功能和功能🚀
PD NFT 的多样性和功能将建立在 Pug Doge 生态系统之上🚀
✅ 两名KOL代表我们缴纳押金
✅ 神秘大佬坐镇拉盘
✅ 放弃合同所有权
✅ avedex横幅(已预定)
✅ cntoken横幅热搜(已预定)
✅ 低税营销(买3卖3)
✅ 百大社区同步营销
✅ Ave营销
PugDoge._addLiquidity(uint256,uint256,address) (PugDoge.sol#365-381) sends eth to arbitrary user
Dangerous calls:
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in PugDoge._transfer(address,address,uint256) (PugDoge.sol#197-278):
External calls:
- _swapFees() (PugDoge.sol#272)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
External calls sending eth:
- _swapFees() (PugDoge.sol#272)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
State variables written after the call(s):
- _simpleTransfer(sender,recipient,amount) (PugDoge.sol#277)
- _balances[sender] = _balances[sender] - amount (PugDoge.sol#298)
- _balances[recipient] = _balances[recipient] + amount (PugDoge.sol#299)
Apply the check-effects-interactions pattern.
Additional information: link
PugDoge._owner (PugDoge.sol#30) shadows:
- Ownable._owner (Ownable.sol#20)
Remove the state variable shadowing.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
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.
Contract ownership is not renounced (belongs to a wallet)
PugDoge._addLiquidity(uint256,uint256,address) (PugDoge.sol#365-381) ignores return value by _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
Ensure that all the return values of the function calls are used.
Additional information: link
PugDoge.allowance(address,address).owner (PugDoge.sol#133) shadows:
- Ownable.owner() (Ownable.sol#39-41) (function)
PugDoge._approve(address,address,uint256).owner (PugDoge.sol#407) shadows:
- Ownable.owner() (Ownable.sol#39-41) (function)
Rename the local variables that shadow another component.
Additional information: link
PugDoge.setVars(uint256,uint256,uint256) (PugDoge.sol#383-391) should emit an event for:
- _a = a (PugDoge.sol#388)
- _b = b (PugDoge.sol#389)
- _c = c (PugDoge.sol#390)
PugDoge.setFee(uint256,uint256,uint256) (PugDoge.sol#418-431) should emit an event for:
- _buyMarketingFee = buyMarketingFee (PugDoge.sol#428)
- _sellMarketingFee = sellMarketingFee (PugDoge.sol#429)
- _liquidityFee = liquidityFee (PugDoge.sol#430)
PugDoge.setAutoSwap(bool,uint256) (PugDoge.sol#464-467) should emit an event for:
- _liquiditySwapThreshold = threshold * 10 ** _decimals (PugDoge.sol#466)
Emit an event for critical parameter changes.
Additional information: link
PugDoge.setMarketingAddress(address).addr (PugDoge.sol#433) lacks a zero-check on :
- _marketingAddress = addr (PugDoge.sol#435)
Check that the address is not zero.
Additional information: link
Reentrancy in PugDoge._swapFees() (PugDoge.sol#303-329):
External calls:
- swapped = _swapTokensForBNBs(tokens_to_swap,address(this)) (PugDoge.sol#316)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
External calls sending eth:
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
State variables written after the call(s):
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
- _allowances[owner][spender] = amount (PugDoge.sol#414)
- swapLock = false (PugDoge.sol#327)
Reentrancy in PugDoge.constructor(address) (PugDoge.sol#44-68):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (PugDoge.sol#62-63)
State variables written after the call(s):
- _liquidityAutoSwap = false (PugDoge.sol#67)
- _owner = msg.sender (PugDoge.sol#66)
- automatedMarketMakerPairs[_uniswapV2Pair] = true (PugDoge.sol#64)
Reentrancy in PugDoge.transferFrom(address,address,uint256) (PugDoge.sol#165-181):
External calls:
- _transfer(sender,recipient,amount) (PugDoge.sol#170)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
External calls sending eth:
- _transfer(sender,recipient,amount) (PugDoge.sol#170)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (PugDoge.sol#175-179)
- _allowances[owner][spender] = amount (PugDoge.sol#414)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in PugDoge._swapFees() (PugDoge.sol#303-329):
External calls:
- swapped = _swapTokensForBNBs(tokens_to_swap,address(this)) (PugDoge.sol#316)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
External calls sending eth:
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
Event emitted after the call(s):
- Approval(owner,spender,amount) (PugDoge.sol#415)
- _addLiquidity(liquidity_token,liquidity_bnb,_liquidityTokenWallet) (PugDoge.sol#320-324)
Reentrancy in PugDoge._transfer(address,address,uint256) (PugDoge.sol#197-278):
External calls:
- _swapFees() (PugDoge.sol#272)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
External calls sending eth:
- _swapFees() (PugDoge.sol#272)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (PugDoge.sol#300)
- _simpleTransfer(sender,recipient,amount) (PugDoge.sol#277)
Reentrancy in PugDoge.transferFrom(address,address,uint256) (PugDoge.sol#165-181):
External calls:
- _transfer(sender,recipient,amount) (PugDoge.sol#170)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
- _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount,0,path,to,block.timestamp) (PugDoge.sol#350-358)
External calls sending eth:
- _transfer(sender,recipient,amount) (PugDoge.sol#170)
- _uniswapV2Router.addLiquidityETH{value: bnb_amount}(address(this),token_amount,0,0,to,block.timestamp) (PugDoge.sol#371-380)
Event emitted after the call(s):
- Approval(owner,spender,amount) (PugDoge.sol#415)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (PugDoge.sol#175-179)
Apply the check-effects-interactions pattern.
Additional information: link
PugDoge._transfer(address,address,uint256) (PugDoge.sol#197-278) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_launchTime > 0,PugDoge: transfer not enabled) (PugDoge.sol#217)
- _launchTime == 0 (PugDoge.sol#224)
- block.timestamp - _launchTime < _b (PugDoge.sol#234)
- block.timestamp - _launchTime < _c && tx.gasprice > _a * 1000000000 (PugDoge.sol#242-243)
Avoid relying on block.timestamp.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.6.2', '^0.8.0']
- ^0.8.0 (Context.sol#3)
- ^0.8.0 (IERC20.sol#3)
- >=0.6.2 (IUniswapV2Factory.sol#3)
- >=0.6.2 (IUniswapV2Router.sol#3)
- ^0.8.0 (Ownable.sol#3)
- ^0.8.0 (PugDoge.sol#3)
Use one Solidity version.
Additional information: link
Context._msgData() (Context.sol#20-23) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (Context.sol#3) allows old versions
Pragma version^0.8.0 (IERC20.sol#3) allows old versions
Pragma version>=0.6.2 (IUniswapV2Factory.sol#3) allows old versions
Pragma version>=0.6.2 (IUniswapV2Router.sol#3) allows old versions
Pragma version^0.8.0 (Ownable.sol#3) allows old versions
Pragma version^0.8.0 (PugDoge.sol#3) allows old versions
solc-0.8.16 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
Function IUniswapV2Router01.WETH() (IUniswapV2Router.sol#7) is not in mixedCase
Variable PugDoge._marketingAddress (PugDoge.sol#19) is not in mixedCase
Variable PugDoge._buyMarketingFee (PugDoge.sol#20) is not in mixedCase
Variable PugDoge._sellMarketingFee (PugDoge.sol#21) is not in mixedCase
Variable PugDoge._liquidityFee (PugDoge.sol#23) is not in mixedCase
Variable PugDoge._liquidityTokenWallet (PugDoge.sol#24-25) is not in mixedCase
Variable PugDoge._uniswapV2Router (PugDoge.sol#33) is not in mixedCase
Variable PugDoge._uniswapV2Pair (PugDoge.sol#34) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (Context.sol#21)" inContext (Context.sol#15-25)
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 (IUniswapV2Router.sol#12) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (IUniswapV2Router.sol#13)
Prevent variables from having similar names.
Additional information: link
PugDoge.constructor(address) (PugDoge.sol#44-68) uses literals with too many digits:
- _totalSupply = 1000000000 * 10 ** _decimals (PugDoge.sol#48)
PugDoge._transfer(address,address,uint256) (PugDoge.sol#197-278) uses literals with too many digits:
- block.timestamp - _launchTime < _c && tx.gasprice > _a * 1000000000 (PugDoge.sol#242-243)
PugDoge.slitherConstructorVariables() (PugDoge.sol#11-476) uses literals with too many digits:
- _liquidityTokenWallet = 0x000000000000000000000000000000000000dEaD (PugDoge.sol#24-25)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
PugDoge._liquidityTokenWallet (PugDoge.sol#24-25) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#58-62)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#68-71)
swapFees() should be declared external:
- PugDoge.swapFees() (PugDoge.sol#331-333)
setVars(uint256,uint256,uint256) should be declared external:
- PugDoge.setVars(uint256,uint256,uint256) (PugDoge.sol#383-391)
setFee(uint256,uint256,uint256) should be declared external:
- PugDoge.setFee(uint256,uint256,uint256) (PugDoge.sol#418-431)
setMarketingAddress(address) should be declared external:
- PugDoge.setMarketingAddress(address) (PugDoge.sol#433-437)
setFeeWhitelist(address,bool) should be declared external:
- PugDoge.setFeeWhitelist(address,bool) (PugDoge.sol#439-441)
setBan(address,bool) should be declared external:
- PugDoge.setBan(address,bool) (PugDoge.sol#443-445)
isBanned(address) should be declared external:
- PugDoge.isBanned(address) (PugDoge.sol#447-449)
bulkSetFeeWhitelist(address[],bool) should be declared external:
- PugDoge.bulkSetFeeWhitelist(address[],bool) (PugDoge.sol#451-458)
setAutoSwap(bool,uint256) should be declared external:
- PugDoge.setAutoSwap(bool,uint256) (PugDoge.sol#464-467)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- PugDoge.setAutomatedMarketMakerPair(address,bool) (PugDoge.sol#469-475)
Use the external attribute for functions never called from the contract.
Additional information: link
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
Unable to find Twitter account
Telegram account has relatively few subscribers
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account