ProximaX is an advanced extension of the Blockchain and Distributed Ledger Technology (DLT) with utility-rich services and protocols. Businesses, enterprises, and innovators can avoid costly and failure prone centralized architecture by utilizing an all-in-one sustainable platform which provides augmented secured services, content delivery, storage, and media streaming.
The ProximaX protocol aims to offer DApp developers cost-efficient fault tolerant, multilayer, P2P cloud services including, but not limited to, blockchain-powered P2P storage and bandwidth. A fault-tolerant system is designed to ensure a system remains fully functional even when part of it is ‘down’ or unavailable. ProximaX will build a P2P cloud storage architecture with fault tolerance and a distributed database by removing the central entity and connecting all the servers (or nodes) in a mesh configuration. Failure of any single component of the mesh will have minimal effect upon the overall performance of the system. ProximaX protocol will ensure confidentiality and integrity of the data passing through a myriad of nodes. The use of distributed databases (DHT) ensures consistency and integrity throughout the network.
ProximaX distributed file management system (DFMS) interfaces with NEM blockchain and works in four scenarios:
1. ProximaX Public DFMS with NEM Public chain
2. ProximaX Private DFMS with NEM Public Chain
3. ProximaX Public DFMS with NEM Private Chain
4. ProximaX Private DFMS with NEM Private Chain
ProximaX will provide DApp developers with an easy-to-use SDK that abstracts the ProximaX protocol layer into a dynamic second layer on top of the NEM blockchain layer that can carry different unique DApp protocols. This will ensure that the DApp developers can build great P2P applications with the best possible security protocols without relying on points of central authority. It will empower developers to build apps and monetise in the ways they want without any unnecessary compliance pressure.
This solution makes use of the NEM blockchain for value and hash transaction and the NEM cryptography framework to gain access to the ProximaX DFMS and work in a tightly integrated environment based on the above four scenarios.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
BEP20.constructor(string,string).name (contracts/token/XPX.sol#34) shadows:
- BEP20.name() (contracts/token/XPX.sol#43-45) (function)
- IBEP20.name() (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#24) (function)
BEP20.constructor(string,string).symbol (contracts/token/XPX.sol#34) shadows:
- BEP20.symbol() (contracts/token/XPX.sol#57-59) (function)
- IBEP20.symbol() (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#19) (function)
XPX.constructor(string,string,uint256,address,address,address).name (contracts/token/XPX.sol#282) shadows:
- BEP20.name() (contracts/token/XPX.sol#43-45) (function)
- IBEP20.name() (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#24) (function)
XPX.constructor(string,string,uint256,address,address,address).symbol (contracts/token/XPX.sol#282) shadows:
- BEP20.symbol() (contracts/token/XPX.sol#57-59) (function)
- IBEP20.symbol() (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#19) (function)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-35) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#33)
Address._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#171-188) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#180-183)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.4.0', '>=0.6.0<0.8.0', '>=0.6.2<0.8.0']
- >=0.6.0<0.8.0 (@openzeppelin/contracts/access/AccessControl.sol#3)
- >=0.6.2<0.8.0 (@openzeppelin/contracts/utils/Address.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/utils/EnumerableSet.sol#3)
- >=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Pausable.sol#3)
- >=0.4.0 (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#3)
- >=0.4.0 (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#3)
- 0.6.12 (contracts/token/XPX.sol#3)
Use one Solidity version.
Additional information: link
AccessControl._setRoleAdmin(bytes32,bytes32) (@openzeppelin/contracts/access/AccessControl.sol#201-204) is never used and should be removed
Address._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#171-188) is never used and should be removed
Address.functionCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#79-81) is never used and should be removed
Address.functionCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#89-91) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (@openzeppelin/contracts/utils/Address.sol#104-106) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121) is never used and should be removed
Address.functionDelegateCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#153-155) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#163-169) is never used and should be removed
Address.functionStaticCall(address,bytes) (@openzeppelin/contracts/utils/Address.sol#129-131) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145) is never used and should be removed
Address.isContract(address) (@openzeppelin/contracts/utils/Address.sol#26-35) is never used and should be removed
Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-23) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/EnumerableSet.sol#147-149) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/EnumerableSet.sol#256-258) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (@openzeppelin/contracts/utils/EnumerableSet.sol#185-187) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/EnumerableSet.sol#294-296) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/EnumerableSet.sol#164-166) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/EnumerableSet.sol#273-275) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (@openzeppelin/contracts/utils/EnumerableSet.sol#171-173) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/EnumerableSet.sol#280-282) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (@openzeppelin/contracts/utils/EnumerableSet.sol#157-159) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (@openzeppelin/contracts/utils/EnumerableSet.sol#266-268) is never used and should be removed
SafeMath.div(uint256,uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#107-109) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#123-133) is never used and should be removed
SafeMath.min(uint256,uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#172-174) is never used and should be removed
SafeMath.mod(uint256,uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#147-149) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#163-170) is never used and should be removed
SafeMath.mul(uint256,uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#81-93) is never used and should be removed
SafeMath.sqrt(uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#177-188) is never used and should be removed
SafeMath.sub(uint256,uint256) (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#46-48) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/access/AccessControl.sol#3) is too complex
Pragma version>=0.6.2<0.8.0 (@openzeppelin/contracts/utils/Address.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/utils/EnumerableSet.sol#3) is too complex
Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/utils/Pausable.sol#3) is too complex
Pragma version>=0.4.0 (@pancakeswap/pancake-swap-lib/contracts/math/SafeMath.sol#3) allows old versions
Pragma version>=0.4.0 (@pancakeswap/pancake-swap-lib/contracts/token/BEP20/IBEP20.sol#3) allows old versions
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#53-59):
- (success) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#57)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#114-121):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#119)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#139-145):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#143)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#163-169):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#167)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Redundant expression "this (@openzeppelin/contracts/utils/Context.sol#21)" inContext (@openzeppelin/contracts/utils/Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
getRoleMemberCount(bytes32) should be declared external:
- AccessControl.getRoleMemberCount(bytes32) (@openzeppelin/contracts/access/AccessControl.sol#95-97)
getRoleAdmin(bytes32) should be declared external:
- AccessControl.getRoleAdmin(bytes32) (@openzeppelin/contracts/access/AccessControl.sol#121-123)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#135-139)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#150-154)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (@openzeppelin/contracts/access/AccessControl.sol#170-174)
name() should be declared external:
- BEP20.name() (contracts/token/XPX.sol#43-45)
decimals() should be declared external:
- BEP20.decimals() (contracts/token/XPX.sol#50-52)
symbol() should be declared external:
- BEP20.symbol() (contracts/token/XPX.sol#57-59)
balanceOf(address) should be declared external:
- BEP20.balanceOf(address) (contracts/token/XPX.sol#71-73)
transfer(address,uint256) should be declared external:
- BEP20.transfer(address,uint256) (contracts/token/XPX.sol#85-88)
allowance(address,address) should be declared external:
- BEP20.allowance(address,address) (contracts/token/XPX.sol#93-95)
approve(address,uint256) should be declared external:
- BEP20.approve(address,uint256) (contracts/token/XPX.sol#104-107)
transferFrom(address,address,uint256) should be declared external:
- BEP20.transferFrom(address,address,uint256) (contracts/token/XPX.sol#121-133)
increaseAllowance(address,uint256) should be declared external:
- BEP20.increaseAllowance(address,uint256) (contracts/token/XPX.sol#147-150)
decreaseAllowance(address,uint256) should be declared external:
- BEP20.decreaseAllowance(address,uint256) (contracts/token/XPX.sol#166-173)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find token contract audit
Unable to find audit link on the website
Unable to find Telegram link on the website
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Last post in Twitter was more than 30 days ago
Unable to find Discord account