DeSpace Protocol is a new breath of the DeFi industry supporting multi-layer tokens and NFT cards, combining governance, redesigned Yield Farming and NFT Mining features in one protocol. The goal of the project is to create a stable, intuitive and secure system in the DeFi industry for every user, as well as to create value for our NFT cards in our ecosystem. NFTs without any ecosystem can be only used in resale on secondary markets.
DeSpace Protocol creates an ecosystem that values our NFT cards (you can increase your farming income with our NFTs, each NFT has different power, which means that every card will add more interest to your farming). The system works on the principle of layers analogous to layers of a solar system. Each new layer will complement the preceding layer, simultaneously revealing unknown and latent elements in the prior layers, thereby complementing each other. Each layer can be considered as a separate universe and functions independently of the other layers.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
TokenWrapped.isCan(address,address,uint256) (#113-147) uses a dangerous strict equality:
- start == 0 (#117)
TokenWrapped.isCan(address,address,uint256) (#113-147) uses a dangerous strict equality:
- start == 0 (#125)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
TokenWrapped.DELAY (#28) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Reentrancy in TokenWrapped.isCan(address,address,uint256) (#113-147):
External calls:
- _pair = getPairAddress(address(this),WBNB,tokenConverter.DEFAULT_FACTORY()) (#133)
State variables written after the call(s):
- periods[msg.sender] = block.timestamp (#142)
Reentrancy in TokenWrapped.transfer(address,uint256) (#92-100):
External calls:
- ! isCan(msg.sender,_to,_amount) (#93)
- _pair = getPairAddress(address(this),WBNB,tokenConverter.DEFAULT_FACTORY()) (#133)
State variables written after the call(s):
- balanceOf[msg.sender] -= _amount (#95)
- balanceOf[_to] += _amount (#96)
Reentrancy in TokenWrapped.transferFrom(address,address,uint256) (#102-111):
External calls:
- ! isCan(_from,_to,_amount) (#103)
- _pair = getPairAddress(address(this),WBNB,tokenConverter.DEFAULT_FACTORY()) (#133)
State variables written after the call(s):
- allowance[_from][msg.sender] -= _amount (#106)
- balanceOf[_from] -= _amount (#107)
- balanceOf[_to] += _amount (#108)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in TokenWrapped.transferFrom(address,address,uint256) (#102-111):
External calls:
- ! isCan(_from,_to,_amount) (#103)
- _pair = getPairAddress(address(this),WBNB,tokenConverter.DEFAULT_FACTORY()) (#133)
Event emitted after the call(s):
- Transfer(_from,_to,_amount) (#109)
Reentrancy in TokenWrapped.transfer(address,uint256) (#92-100):
External calls:
- ! isCan(msg.sender,_to,_amount) (#93)
- _pair = getPairAddress(address(this),WBNB,tokenConverter.DEFAULT_FACTORY()) (#133)
Event emitted after the call(s):
- Transfer(msg.sender,_to,_amount) (#97)
Apply the check-effects-interactions pattern.
Additional information: link
TokenWrapped.isCan(address,address,uint256) (#113-147) uses timestamp for comparisons
Dangerous comparisons:
- start == 0 (#117)
- start == 0 (#125)
- (block.timestamp - start) >= THRESHOLD (#126)
- (block.timestamp - periods[msg.sender]) < DELAY (#141)
Avoid relying on block.timestamp.
Additional information: link
Parameter TokenWrapped.approve(address,uint256)._amount (#85) is not in mixedCase
Variable TokenWrapped.THRESHOLD (#26) is not in mixedCase
Parameter TokenWrapped.transferOwnership(address)._newOwner (#154) is not in mixedCase
Variable TokenWrapped.DELAY (#28) is not in mixedCase
Parameter TokenWrapped.burn(uint256)._amount (#70) is not in mixedCase
Parameter TokenWrapped.setWhitelistRights(address,bool)._value (#165) is not in mixedCase
Parameter TokenWrapped.setIssuerRights(address,bool)._value (#160) is not in mixedCase
Parameter TokenWrapped.setIssuerRights(address,bool)._issuer (#160) is not in mixedCase
Parameter TokenWrapped.setWhitelistRights(address,bool)._user (#165) is not in mixedCase
Parameter TokenWrapped.isCan(address,address,uint256)._to (#113) is not in mixedCase
Function TokenConverter.DEFAULT_ROUTER() (#11) is not in mixedCase
Parameter TokenWrapped.transfer(address,uint256)._amount (#92) is not in mixedCase
Parameter TokenWrapped.transfer(address,uint256)._to (#92) is not in mixedCase
Parameter TokenWrapped.burnFrom(address,uint256)._from (#77) is not in mixedCase
Parameter TokenWrapped.mint(address,uint256)._to (#63) is not in mixedCase
Function TokenConverter.DEFAULT_FACTORY() (#12) is not in mixedCase
Parameter TokenWrapped.transferFrom(address,address,uint256)._amount (#102) is not in mixedCase
Parameter TokenWrapped.transferFrom(address,address,uint256)._to (#102) is not in mixedCase
Variable TokenWrapped.MAX_DOLLARS (#27) is not in mixedCase
Parameter TokenWrapped.transferFrom(address,address,uint256)._from (#102) is not in mixedCase
Parameter TokenWrapped.approve(address,uint256)._spender (#85) is not in mixedCase
Parameter TokenWrapped.mint(address,uint256)._amount (#63) is not in mixedCase
Parameter TokenWrapped.isCan(address,address,uint256)._from (#113) is not in mixedCase
Parameter TokenWrapped.burnFrom(address,uint256)._amount (#77) is not in mixedCase
Parameter TokenWrapped.isCan(address,address,uint256)._amount (#113) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Unable to find audit link on the website
Token is not listed at Mobula.Finance
Additional information: link
Unable to find whitepaper link on the website
Token has a considerable age, but social accounts / website are missing or have few users
Token has relatively low CoinGecko rank
Telegram account link seems to be invalid
Unable to find Youtube account