Promodex - Smart Contract Audit Report
Promodex ($PROMO) is a new BEP-20 token on the Binance Smart Chain.
We reviewed the PROMODEX contract at 0x52FF7dda3FCDc8D3ca2bbf150FDcC7A5f42d989E on the Binance Smart Chain mainnet.
Please ensure trust in the team prior to investing as they currently own 100% of the total supply.
Date: February 21st, 2022.
Finding #1 - PROMODEX - InformationalDescription: Although the SafeMath library is utilized, the contract is deployed with Solidity v0.8.12 which has built-in overflow checks.
Recommendation: SafeMath could be safely removed to reduce contract size and deployment costs.
- The total supply of the token is set to 900 million $PROMO [900,000,000].
- No mint functions are present in the contract.
- Any user can burn their own tokens to reduce the total supply.
- Any user can burn tokens on another user's behalf if an allowance has been granted.
- At the time of writing this report, 100% of the total supply belongs to the deployer.
- Any user can call the multiTransfer() function to airdrop any amount of tokens to up to 500 addresses.
- There are no fees associated with transferring tokens.
- No ownership restricted functions are present.
- As the contract is deployed with Solidity v0.8.12 it is protected from overflows/underflows.
- The contract complies with the BEP-20 token standard.
External Threat Results
|Arbitrary Storage Write||N/A||PASS|
|Centralization of Control||The deployer currently owns 100% of the total supply.||PASS|
|Delegate Call to Untrusted Contract||N/A||PASS|
|Dependence on Predictable Variables||N/A||PASS|
|State Change External Calls||N/A||PASS|
|User Supplied Assertion||N/A||PASS|
|Critical Solidity Compiler||N/A||PASS|
|Overall Contract Safety||PASS|
($) = payable function # = non-constant function + [Int] IBEP20 - [Ext] name - [Ext] symbol - [Ext] decimals - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + Context - [Int] _msgSender - [Int] _msgData + Ownable (Context) - [Pub]
# - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner - [Int] _transferOwnership # + [Lib] SafeMath - [Int] tryAdd - [Int] trySub - [Int] tryMul - [Int] tryDiv - [Int] tryMod - [Int] add - [Int] sub - [Int] mul - [Int] div - [Int] mod - [Int] sub - [Int] div - [Int] mod + PROMODEX (IBEP20, Context, Ownable) - [Pub] # - [Ext] name - [Ext] symbol - [Ext] decimals - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] transferFrom # - [Ext] multiTransfer # - [Ext] allowance - [Ext] approve # - [Ext] increaseAllowance # - [Ext] decreaseAllowance # - [Ext] burn # - [Ext] burnFrom # - [Int] _approve # - [Int] _transfer # - [Int] _burn #