Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Delegate Call to Untrusted Contract | N/A | PASS |
Dependence on Predictable Variables | N/A | PASS |
Deprecated Opcodes | N/A | PASS |
Ether Thief | N/A | PASS |
Exceptions | N/A | PASS |
External Calls | N/A | PASS |
Flash Loans | N/A | PASS |
Integer Over/Underflow | N/A | PASS |
Multiple Sends | N/A | PASS |
Oracles | N/A | PASS |
Suicide | N/A | PASS |
State Change External Calls | N/A | PASS |
Unchecked Retval | N/A | PASS |
User Supplied Assertion | N/A | PASS |
Critical Solidity Compiler | N/A | PASS |
Overall Contract Safety | PASS |
Weentar Token - Smart Contract Audit Report
Summary
Weentar intends to build a social media platform based on blockchain.
For this audit we reviewed the project's token contract, deployed at 0x93f63d9455685621abd73e63cc04f7e454270a66 on the Binance Smart Chain mainnet. We also reviewed the project's presale contract, which has yet to be deployed.
Please note we have not reviewed the project's social media platform.
Notes of the Token Contract:Notes of the Presale Contract:
- The total supply of the token is 3 billion.
- No minting or burning functions are accessible after deployment; though the circulating supply can be decreased by sending tokens to the burn address.
- Currently, the team holds 98% of the supply and has sent 2% of the supply to another address.
- While the Ownable library in imported, no ownership-protected functions relating to the token are present.
- The contract utilizes Solidity 0.8.1 which has built-in overflow checks, removing the need for SafeMath.
Audit Findings Summary
- This contract allows users to purchase tokens at a pre-determined price.
- Users who purchase tokens will pay in BNB and immediately recieve tokens upon payment.
- The team will set the amount of tokens available for each phase of the presale.
- The team can update the token's purchase price and withdraw unpurchased tokens from the contract any time time.
- The function to purchase tokens and all onlyOwner functions can be marked external to save a small amount of execution cost on each call.
- The contract utilizes Solidity 0.8.1 which has built-in overflow checks, removing the need for SafeMath.
- ReentrancyGuard is also used when purchasing tokens to prevent reentrancy attacks.
- No issues from external attackers were identified.
- As with any presale, ensure trust in the team prior to investing.
- Date: April 12th, 2021.
Details: Token Contract
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ [Int] IERC20
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ ERC20 (Context, IERC20)
- [Pub] #
- [Pub] name
- [Pub] symbol
- [Pub] decimals
- [Pub] totalSupply
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Int] _transfer #
- [Int] _mint #
- [Int] _burn #
- [Int] _approve #
- [Int] _beforeTokenTransfer #
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
+ WeentarToken (ERC20, Ownable)
- [Pub] #
- modifiers: ERC20
- [Pub] getOwner
Details: Presale Contract
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
+ [Int] IBEP20
- [Ext] totalSupply
- [Ext] decimals
- [Ext] symbol
- [Ext] name
- [Ext] getOwner
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ ReentrancyGuard
- [Pub] #
+ WeentarPresale (Context, Ownable, ReentrancyGuard)
- [Pub] #
- [Pub] tokenPrice
- [Pub] phaseSupplyLeft
- [Pub] phaseSupplyTotal
- [Pub] phaseStartTimestamp
- [Pub] phaseEndTimestamp
- [Pub] phaseIsActive
- [Pub] currentPhase
- [Pub] weiRaised
- [Pub] presaleWallet
- [Pub] purchaseToken ($)
- modifiers: nonReentrant
- [Pub] setTokenPrice #
- modifiers: onlyOwner
- [Pub] withdrawToken #
- modifiers: onlyOwner
- [Pub] setCurrentPhase #
- modifiers: onlyOwner