Promodex - Smart Contract Audit Report
Audit Summary
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.
Audit Findings
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 - Informational
Description: 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.
Contract Overview
- 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
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | 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 |
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 |
Logical Issues | 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 |
Function Graph
Inheritance Chart
Functions Overview
($) = 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 #