Winter Olympics Token Logo

WO [Winter Olympics] Token

ALERT: unclassified scam

About WO

Listings

Not Found
Token 2 years

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 5 February 2022

report
Token seems to be a scam (type: unclassified scam).


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Reentrancy in WO._transfer(address,address,uint256) (#1140-1183):
External calls:
- swapAndLiquifyV1(swapTokensAtAmount) (#1156)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1204-1210)
External calls sending eth:
- swapAndLiquifyV1(swapTokensAtAmount) (#1156)
- _receive.transfer(balance) (#1188)
State variables written after the call(s):
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,address(this),amount.div(100)) (#1177)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,to,amount) (#1181)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- swapping = false (#1158)
Apply the check-effects-interactions pattern.

Additional information: link

WO._transfer(address,address,uint256) (#1140-1183) performs a multiplication on the result of a division:
-super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
WO._transfer(address,address,uint256) (#1140-1183) performs a multiplication on the result of a division:
-amount = amount.div(50).mul(47) (#1179)
Consider ordering multiplication before division.

Additional information: link

ERC20.allowance(address,address).owner (#415) shadows:
- Ownable.owner() (#278-280) (function)
ERC20._approve(address,address,uint256).owner (#645) shadows:
- Ownable.owner() (#278-280) (function)
Rename the local variables that shadow another component.

Additional information: link

Ownable.constructor().msgSender (#270) lacks a zero-check on :
- _owner = msgSender (#271)
WO.constructor(address,address).root (#1075) lacks a zero-check on :
- _root = root (#1094)
Check that the address is not zero.

Additional information: link

Reentrancy in WO.constructor(address,address) (#1075-1096):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1080-1081)
State variables written after the call(s):
- _approve(address(this),address(0x10ED43C718714eb63d5aA57B78B54704E256024E),10 ** 26) (#1082)
- _allowances[owner][spender] = amount (#652)
- _mint(tokenOwner,total) (#1095)
- _balances[account] = _balances[account].add(amount) (#601)
- excludeFromFees(tokenOwner,true) (#1089)
- _isExcludedFromFees[account] = excluded (#1108)
- excludeFromFees(address(this),true) (#1090)
- _isExcludedFromFees[account] = excluded (#1108)
- _root = root (#1094)
- _mint(tokenOwner,total) (#1095)
- _totalSupply = _totalSupply.add(amount) (#600)
- _setAutomatedMarketMakerPair(_uniswapV2Pair,true) (#1086)
- automatedMarketMakerPairs[pair] = value (#1133)
- swapTokensAtAmount = total.div(100000) (#1093)
- uniswapV2Pair = _uniswapV2Pair (#1084)
- uniswapV2Router = _uniswapV2Router (#1083)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in WO._transfer(address,address,uint256) (#1140-1183):
External calls:
- swapAndLiquifyV1(swapTokensAtAmount) (#1156)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1204-1210)
External calls sending eth:
- swapAndLiquifyV1(swapTokensAtAmount) (#1156)
- _receive.transfer(balance) (#1188)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,to,amount) (#1181)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,address(this),amount.div(100)) (#1177)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,to,amount) (#1181)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,address(this),amount.div(100)) (#1177)
Reentrancy in WO.constructor(address,address) (#1075-1096):
External calls:
- _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1080-1081)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#653)
- _approve(address(this),address(0x10ED43C718714eb63d5aA57B78B54704E256024E),10 ** 26) (#1082)
- ExcludeFromFees(account,excluded) (#1109)
- excludeFromFees(address(this),true) (#1090)
- ExcludeFromFees(account,excluded) (#1109)
- excludeFromFees(tokenOwner,true) (#1089)
- Transfer(address(0),account,amount) (#602)
- _mint(tokenOwner,total) (#1095)
Apply the check-effects-interactions pattern.

Additional information: link

Context._msgData() (#9-13) is never used and should be removed
ERC20._burn(address,uint256) (#616-627) is never used and should be removed
SafeMath.mod(uint256,uint256) (#807-809) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#823-830) is never used and should be removed
SafeMath.sub(uint256,uint256) (#706-708) is never used and should be removed
Remove unused functions.

Additional information: link

Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#49) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#51) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#82) is not in mixedCase
Variable Ownable._root (#259) is not in mixedCase
Function IUniswapV2Router01.WETH() (#836) is not in mixedCase
Parameter WO.setSwapAndLiquifyEnabled(bool)._enabled (#1128) is not in mixedCase
Constant WO.blackHole (#1049) is not in UPPER_CASE_WITH_UNDERSCORES
Variable WO._receive (#1051) is not in mixedCase
Variable WO._fundAddress (#1052) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#10)" inContext (#4-14)
Remove redundant statements if they congest code but offer no value.

Additional information: link

Reentrancy in WO._transfer(address,address,uint256) (#1140-1183):
External calls:
- swapAndLiquifyV1(swapTokensAtAmount) (#1156)
- _receive.transfer(balance) (#1188)
State variables written after the call(s):
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,address(this),amount.div(100)) (#1177)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- super._transfer(from,to,amount) (#1181)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#563-566)
- _balances[recipient] = _balances[recipient].add(amount) (#567)
- _balances[sender] = senderAmount.sub(amount,ERC20: transfer amount exceeds balance) (#578-581)
- _balances[recipient] = recipientAmount.add(amount) (#582)
- swapping = false (#1158)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,to,amount) (#1181)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,address(this),amount.div(100)) (#1177)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- Transfer(sender,recipient,amount) (#568)
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,to,amount) (#1181)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,_fundAddress,amount.div(50)) (#1175)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,blackHole,amount.div(100).mul(3)) (#1173)
- Transfer(sender,recipient,amount) (#583)
- super._transfer(from,address(this),amount.div(100)) (#1177)
Apply the check-effects-interactions pattern.

Additional information: link

Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#841) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#842)
Prevent variables from having similar names.

Additional information: link

WO.constructor(address,address) (#1075-1096) uses literals with too many digits:
- swapTokensAtAmount = total.div(100000) (#1093)
WO.slitherConstructorConstantVariables() (#1039-1223) uses literals with too many digits:
- blackHole = address(0x000000000000000000000000000000000000dEaD) (#1049)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

WO._fundAddress (#1052) should be constant
WO._receive (#1051) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

owner() should be declared external:
- Ownable.owner() (#278-280)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#297-300)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#306-313)
name() should be declared external:
- ERC20.name() (#345-347)
symbol() should be declared external:
- ERC20.symbol() (#353-355)
decimals() should be declared external:
- ERC20.decimals() (#370-372)
totalSupply() should be declared external:
- ERC20.totalSupply() (#377-379)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#402-410)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#415-423)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#432-440)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#455-470)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#484-495)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#511-525)
updateUniswapV2Router(address) should be declared external:
- WO.updateUniswapV2Router(address) (#1102-1105)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- WO.excludeMultipleAccountsFromFees(address[],bool) (#1112-1118)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- WO.setAutomatedMarketMakerPair(address,bool) (#1120-1122)
isAutomatedMarketMakerPair(address) should be declared external:
- WO.isAutomatedMarketMakerPair(address) (#1124-1126)
setSwapAndLiquifyEnabled(bool) should be declared external:
- WO.setSwapAndLiquifyEnabled(bool) (#1128-1130)
isExcludedFromFees(address) should be declared external:
- WO.isExcludedFromFees(address) (#1136-1138)
swapAndLiquifyV2() should be declared external:
- WO.swapAndLiquifyV2() (#1191-1195)
rescueToken(address,uint256) should be declared external:
- WO.rescueToken(address,uint256) (#1214-1220)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token seems to be untradeable: there is no PancakeSwap trading pair and no trading volumes. Ignore for presale.


Unable to find Telegram and Twitter accounts


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

Price for WO