
Zuki Token - Smart Contract Audit Report
Summary
Zuki intends to build a platform that combines social media and gaming that is fueled by the blockchain through their native $ZUKI Token.
We audited Zuki's token contract at 0x93267BD1CaEf6aA1D96ff5eb1e0E57B6B2be8a1c on the Ethereum Rinkeby Testnet.
Notes of the contract:
- The total supply of the token is specified upon deployment of the contract and minted to the deployer's address.
- The total supply of the Testnet token is set to 7.8 trillion $ZUKI [7,800,000,000,000].
- No minting functions are accessible beyond deployment.
- The circulating supply can be decreased if a holder elects to transfer their tokens to the 0x..Dead address.
- The owner has the ability to use the burn function to remove tokens from their own balance and automatically reduce the total supply.
- There are no fees applied on $ZUKI token transfers other than the gas costs to execute the transaction.
- The contract includes "pausable" functionality. Transfers will be prevented when either the sender/recipient address is paused, or if the contract itself is paused.
- Holders (that have the approval and allowance to do so) may transfer tokens from another holder's wallet to any recipient.
- The contract is deployed with Solidity version 0.8.8 which will prevent overflow/underflow issues.
- The contract includes a thorough emmission of events to indicate when the owner takes any actions related to ownership-restricted functions.
Ownership Controls:- Ownership of the contract can be transferred to another address, or it can be renounced by setting the owner as the zero address.
- Ownership has not been renounced.
- The owner has the ability to pause and unpause the Token Contract at any time.
- The owner has the ability to pause and unpause any address at any time.
- The owner has the ability to recover any ERC20 tokens that were sent to the contract address.
- The owner has the ability to recover any ETH that was sent to the contract address.
Audit Findings Summary
- No issues from external attackers were identified.
- Date: October 13th, 2021.
Audit Results
| 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 |


($) = 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 #
+ [Int] IERC20Metadata (IERC20)
- [Ext] name
- [Ext] symbol
- [Ext] decimals
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
- [Int] _transferOwnership #
+ Pausable (Context)
- [Pub] #
- [Pub] paused
- [Int] _pause #
- modifiers: whenNotPaused
- [Int] _unpause #
- modifiers: whenPaused
+ Zuki (Context, IERC20, IERC20Metadata, Ownable, Pausable)
- [Pub] #
- [Pub] name
- [Pub] symbol
- [Pub] decimals
- [Pub] totalSupply
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Ext] burn #
- modifiers: onlyOwner
- [Ext] pauseContract #
- modifiers: onlyOwner
- [Ext] unPauseContract #
- modifiers: onlyOwner
- [Ext] pauseAddress #
- modifiers: onlyOwner
- [Ext] unPauseAddress #
- modifiers: onlyOwner
- [Ext] isAddressPaused
- [Ext] withdrawToken #
- modifiers: onlyOwner
- [Pub] getBalance
- [Pub] withdrawEthFromContract #
- modifiers: onlyOwner
- [Int] _transfer #
- [Int] _mint #
- [Int] _burn #
- [Int] _approve #
- [Int] _beforeTokenTransfer #