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 Integer Over/Underflow N/A PASS Multiple Sends 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
RemeX - Smart Contract Audit Report
RemeX is a new token by the AGAFOS team with a reward system for fee redistribution and a presale.
We reviewed AGAFOS' RemeX token contract using code provided to us by the project team.
Features of the Contract:
Audit Findings Summary:
- The total supply of the token is set to one quadrillion and is in possession of the owner.
- No mint functions are present, although a user can burn any amount of their own tokens at any time.
- The Private Sale will start 30 days after deployment, and the Public Sale will start 30 days after the Private Sale.
- Fees are collected by the project team on each transfer and are sent to the development wallet, the fundraising wallet, the liquidity pool wallet, and the reward balance.
- There is a fee multiplier applied to the fee percentages that varies from 1-4x based on the time of the transaction since the Public Sale started.
- The development, fundraising, and liquidity wallets are initially the owner's address and are controlled by the team.
- Users who hold tokens will automatically receive a portion of the fees from the tokens collected as rewards.
- The owner can use the transfer function during the Private Sale to transfer amounts to recipients and mark them as presale members.
- All other users may only transfer their tokens after the Public Sale has started.
- Only 25% of tokens purchased during the Private Sale are immediately available while the rest are frozen and are released in equal parts every 90 days over the course of 270 days.
- The owner can set the addresses for the development wallet, the fundraising wallet, and the liquidity pool wallet to any address at any time.
- The owner can set the reward fee, the development fee, the fundraising fee, and liquidity fee to any value at any time, as long as the sum of them does not exceed 10% and the development fee does not exceed 5%.
- The owner can exclude or include any address from fees and rewards at any time.
- The owner can push back both the Private and Public Sale start times as long as they have not started yet.
- The team worked with us to optimize this contract for gas efficiency.
- The contract utilizes SafeMath libraries to prevent overflows along with following the ERC20 standard.
- No security issues from outside attackers were identified.
- As with any presale, ensure trust in the team prior to investing.
- Ensure trust in the team as they have substantial control in the ecosystem.
- Date: July 17th, 2021.
($) = payable function # = non-constant function Int = Internal Ext = External Pub = Public + [Int] IERC20 - [Ext] totalSupply - [Ext] decimals - [Ext] symbol - [Ext] name - [Ext] getOwner - [Ext] balanceOf - [Ext] transfer # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # + Context - [Pub]
# - [Int] _msgSender - [Int] _msgData + [Lib] SafeMath - [Int] add - [Int] sub - [Int] sub - [Int] mul - [Int] div - [Int] div - [Int] mod - [Int] mod + Ownable (Context) - [Pub] # - [Pub] owner - [Pub] renounceOwnership # - modifiers: onlyOwner - [Pub] transferOwnership # - modifiers: onlyOwner - [Int] _transferOwnership # + RemeX (Context, IERC20, Ownable) - [Pub] # - [Ext] getOwner - [Ext] decimals - [Ext] symbol - [Ext] name - [Ext] totalSupply - [Ext] balanceOf - [Ext] transfer # - [Ext] burn # - [Ext] allowance - [Ext] approve # - [Ext] transferFrom # - [Ext] increaseAllowance # - [Ext] decreaseAllowance # - [Prv] totalFeeMultiplierForSender - [Prv] checkIfBalanceNotFrozen - [Int] _transfer # - [Int] _approve # - [Int] _burn # - [Prv] _deductDevelopmentFund # - [Prv] _deductFundRaising # - [Prv] _deductLiquidityPool # - [Prv] _deductReward # - [Prv] _incReward - [Prv] _excReward - [Prv] _getBalanceIncReward - [Prv] _deductBalanceIncReward # - [Prv] _addBalanceExcReward # - [Ext] setDevelopmentFundsAddress # - modifiers: onlyOwner - [Ext] setFundRaisingAddress # - modifiers: onlyOwner - [Ext] setLiquidityPoolAddress # - modifiers: onlyOwner - [Prv] checkFeeThreshold - [Ext] setRewardMilipercent # - modifiers: onlyOwner - [Ext] setDevelopmentMilipercent # - modifiers: onlyOwner - [Ext] setFundRaisingMilipercent # - modifiers: onlyOwner - [Ext] setLiquidityMilipercent # - modifiers: onlyOwner - [Ext] setRewardCumulationTime # - modifiers: onlyOwner - [Ext] excludeIncludeFeeFrom # - modifiers: onlyOwner - [Ext] excludeIncludeFeeTo # - modifiers: onlyOwner - [Ext] excludeFromReward # - modifiers: onlyOwner - [Ext] setPrivateSaleHours # - modifiers: onlyOwner - [Ext] setPreSaleHours # - modifiers: onlyOwner