Token
3 years

CoinGecko
3 years

CoinMarketCap
3 years

white paper

NMX is the utility token of Nominex exchange that allows for utilitarian staking.

Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

RecoverableByOwner.recoverEth(uint256,address) (contracts/RecoverableByOwner.sol#41-44) sends eth to arbitrary user

Dangerous calls:

- toPayable.transfer(amount) (contracts/RecoverableByOwner.sol#43)

Ensure that an arbitrary user cannot withdraw unauthorized funds.

Additional information: link

Nmx.constructor(address) (contracts/Nmx.sol#32-68) uses assembly

- INLINE ASM (contracts/Nmx.sol#34-36)

Do not use evm assembly.

Additional information: link

ABDKMath64x64.abs(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#274-277) is never used and should be removed

ABDKMath64x64.add(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#105-109) is never used and should be removed

ABDKMath64x64.avg(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#300-302) is never used and should be removed

ABDKMath64x64.div(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#205-210) is never used and should be removed

ABDKMath64x64.divi(int256,int256) (abdk-libraries-solidity/ABDKMath64x64.sol#220-240) is never used and should be removed

ABDKMath64x64.exp(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#559-566) is never used and should be removed

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) is never used and should be removed

ABDKMath64x64.from128x128(int256) (abdk-libraries-solidity/ABDKMath64x64.sol#81-85) is never used and should be removed

ABDKMath64x64.fromInt(int256) (abdk-libraries-solidity/ABDKMath64x64.sol#34-37) is never used and should be removed

ABDKMath64x64.fromUInt(uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#57-60) is never used and should be removed

ABDKMath64x64.gavg(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#312-318) is never used and should be removed

ABDKMath64x64.inv(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#286-291) is never used and should be removed

ABDKMath64x64.ln(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#398-403) is never used and should be removed

ABDKMath64x64.log_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#367-390) is never used and should be removed

ABDKMath64x64.mul(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#131-135) is never used and should be removed

ABDKMath64x64.muli(int128,int256) (abdk-libraries-solidity/ABDKMath64x64.sol#145-171) is never used and should be removed

ABDKMath64x64.neg(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#263-266) is never used and should be removed

ABDKMath64x64.pow(int128,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#328-348) is never used and should be removed

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) is never used and should be removed

ABDKMath64x64.sqrt(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#356-359) is never used and should be removed

ABDKMath64x64.sqrtu(uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#687-709) is never used and should be removed

ABDKMath64x64.sub(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#118-122) is never used and should be removed

ABDKMath64x64.to128x128(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#94-96) is never used and should be removed

ABDKMath64x64.toInt(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#46-48) is never used and should be removed

ABDKMath64x64.toUInt(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#69-72) is never used and should be removed

Context._msgData() (@openzeppelin/contracts/GSN/Context.sol#20-23) is never used and should be removed

ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#249-257) is never used and should be removed

ERC20._setupDecimals(uint8) (@openzeppelin/contracts/token/ERC20/ERC20.sol#287-289) is never used and should be removed

SafeMath.div(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#103-105) is never used and should be removed

SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#119-125) is never used and should be removed

SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#139-141) is never used and should be removed

SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/math/SafeMath.sol#155-158) is never used and should be removed

SafeMath.mul(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#77-89) is never used and should be removed

SafeMath.sub(uint256,uint256) (@openzeppelin/contracts/math/SafeMath.sol#46-48) is never used and should be removed

Remove unused functions.

Additional information: link

Nmx.permit(address,address,uint256,uint256,uint8,bytes32,bytes32).owner (contracts/Nmx.sol#78) shadows:

- Ownable.owner() (@openzeppelin/contracts/access/Ownable.sol#35-37) (function)

Rename the local variables that shadow another component.

Additional information: link

Contract ownership is semi-renounced (passed to a contract)

ABDKMath64x64.divuu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#576-615) performs a multiplication on the result of a division:

-result = (x << 255 - msb) / ((y - 1 >> msb - 191) + 1) (abdk-libraries-solidity/ABDKMath64x64.sol#593)

-hi = result * (y >> 128) (abdk-libraries-solidity/ABDKMath64x64.sol#596)

ABDKMath64x64.divuu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#576-615) performs a multiplication on the result of a division:

-result = (x << 255 - msb) / ((y - 1 >> msb - 191) + 1) (abdk-libraries-solidity/ABDKMath64x64.sol#593)

-lo = result * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) (abdk-libraries-solidity/ABDKMath64x64.sol#597)

Consider ordering multiplication before division.

Additional information: link

Nmx.constructor(address)._mintSchedule (contracts/Nmx.sol#32) lacks a zero-check on :

- mintSchedule = _mintSchedule (contracts/Nmx.sol#49)

Check that the address is not zero.

Additional information: link

Nmx.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/Nmx.sol#77-110) uses timestamp for comparisons

Dangerous comparisons:

- require(bool,string)(deadline >= block.timestamp,NMX: deadline expired) (contracts/Nmx.sol#86)

Nmx.supplyNmx(uint40) (contracts/Nmx.sol#137-151) uses timestamp for comparisons

Dangerous comparisons:

- maxTime > uint40(block.timestamp) (contracts/Nmx.sol#138)

Avoid relying on block.timestamp.

Additional information: link

Different versions of Solidity is used:

- Version used: ['>=0.6.0<0.8.0', '>=0.7.0<0.8.0', '^0.5.0||^0.6.0||^0.7.0']

- >=0.6.0<0.8.0 (@openzeppelin/contracts/GSN/Context.sol#3)

- >=0.6.0<0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3)

- >=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3)

- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)

- >=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)

- ^0.5.0||^0.6.0||^0.7.0 (abdk-libraries-solidity/ABDKMath64x64.sol#6)

- >=0.7.0<0.8.0 (contracts/Lib.sol#2)

- >=0.7.0<0.8.0 (contracts/MintSchedule.sol#2)

- ABIEncoderV2 (contracts/MintSchedule.sol#3)

- >=0.7.0<0.8.0 (contracts/Nmx.sol#2)

- ABIEncoderV2 (contracts/Nmx.sol#3)

- >=0.7.0<0.8.0 (contracts/NmxSupplier.sol#3)

- >=0.7.0<0.8.0 (contracts/RecoverableByOwner.sol#3)

Use one Solidity version.

Additional information: link

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/GSN/Context.sol#3) is too complex

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) is too complex

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/math/SafeMath.sol#3) is too complex

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) is too complex

Pragma version>=0.6.0<0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) is too complex

Pragma version^0.5.0||^0.6.0||^0.7.0 (abdk-libraries-solidity/ABDKMath64x64.sol#6) is too complex

Pragma version>=0.7.0<0.8.0 (contracts/Lib.sol#2) is too complex

Pragma version>=0.7.0<0.8.0 (contracts/MintSchedule.sol#2) is too complex

Pragma version>=0.7.0<0.8.0 (contracts/Nmx.sol#2) is too complex

Pragma version>=0.7.0<0.8.0 (contracts/NmxSupplier.sol#3) is too complex

Pragma version>=0.7.0<0.8.0 (contracts/RecoverableByOwner.sol#3) is too complex

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 RecoverableByOwner.recoverErc20(address,uint256,address) (contracts/RecoverableByOwner.sol#46-54):

- (success,data) = tokenAddress.call(abi.encodeWithSelector(0xa9059cbb,to,amount)) (contracts/RecoverableByOwner.sol#52)

Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Function ABDKMath64x64.log_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#367-390) is not in mixedCase

Function ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) is not in mixedCase

Constant ABDKMath64x64.MIN_64x64 (abdk-libraries-solidity/ABDKMath64x64.sol#20) is not in UPPER_CASE_WITH_UNDERSCORES

Constant ABDKMath64x64.MAX_64x64 (abdk-libraries-solidity/ABDKMath64x64.sol#25) is not in UPPER_CASE_WITH_UNDERSCORES

Parameter Nmx.changeSchedule(address)._mintSchedule (contracts/Nmx.sol#70) is not in mixedCase

Variable Nmx.DOMAIN_SEPARATOR (contracts/Nmx.sol#11) is not in mixedCase

Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (@openzeppelin/contracts/GSN/Context.sol#21)" inContext (@openzeppelin/contracts/GSN/Context.sol#15-24)

Remove redundant statements if they congest code but offer no value.

Additional information: link

ABDKMath64x64.fromInt(int256) (abdk-libraries-solidity/ABDKMath64x64.sol#34-37) uses literals with too many digits:

- require(bool)(x >= - 0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF) (abdk-libraries-solidity/ABDKMath64x64.sol#35)

ABDKMath64x64.muli(int128,int256) (abdk-libraries-solidity/ABDKMath64x64.sol#145-171) uses literals with too many digits:

- require(bool)(y >= - 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF && y <= 0x1000000000000000000000000000000000000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#147-148)

ABDKMath64x64.muli(int128,int256) (abdk-libraries-solidity/ABDKMath64x64.sol#145-171) uses literals with too many digits:

- require(bool)(absoluteResult <= 0x8000000000000000000000000000000000000000000000000000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#162-163)

ABDKMath64x64.divi(int256,int256) (abdk-libraries-solidity/ABDKMath64x64.sol#220-240) uses literals with too many digits:

- require(bool)(absoluteResult <= 0x80000000000000000000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#234)

ABDKMath64x64.inv(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#286-291) uses literals with too many digits:

- result = int256(0x100000000000000000000000000000000) / x (abdk-libraries-solidity/ABDKMath64x64.sol#288)

ABDKMath64x64.gavg(int128,int128) (abdk-libraries-solidity/ABDKMath64x64.sol#312-318) uses literals with too many digits:

- require(bool)(m < 0x4000000000000000000000000000000000000000000000000000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#315-316)

ABDKMath64x64.pow(int128,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#328-348) uses literals with too many digits:

- require(bool)(absoluteResult <= 0x80000000000000000000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#342)

ABDKMath64x64.log_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#367-390) uses literals with too many digits:

- xc >= 0x10000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#372)

ABDKMath64x64.log_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#367-390) uses literals with too many digits:

- xc >= 0x100000000 (abdk-libraries-solidity/ABDKMath64x64.sol#373)

ABDKMath64x64.log_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#367-390) uses literals with too many digits:

- bit = 0x8000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#382)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- require(bool)(x < 0x400000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#412)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x < - 0x400000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#414)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = 0x80000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#416)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x8000000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#418)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x4000000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#420)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x2000000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#422)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x1000000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#424)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x800000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#426)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x400000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#428)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x200000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#430)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x100000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#432)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x80000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#434)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x40000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#436)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x20000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#438)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x10000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#440)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x8000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#442)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x4000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#444)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x2000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#446)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x1000000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#448)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x800000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#450)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x400000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#452)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x200000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#454)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x100000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#456)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000B1721BCFC99D9F890EA06911763 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#457)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x80000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#458)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#459)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x40000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#460)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#461)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x20000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#462)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000162E430E5A18F6119E3C02282A5 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#463)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x10000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#464)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000B1721835514B86E6D96EFD1BFE >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#465)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x8000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#466)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#467)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x4000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#468)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000002C5C8601CC6B9E94213C72737A >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#469)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x2000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#470)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000162E42FFF037DF38AA2B219F06 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#471)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x1000000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#472)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000B17217FBA9C739AA5819F44F9 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#473)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x800000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#474)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#475)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x400000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#476)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#477)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x200000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#478)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000162E42FF0999CE3541B9FFFCF >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#479)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x100000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#480)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000B17217F80F4EF5AADDA45554 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#481)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x80000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#482)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000058B90BFBF8479BD5A81B51AD >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#483)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x40000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#484)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#485)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x20000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#486)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000162E42FEFB2FED257559BDAA >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#487)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x10000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#488)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#489)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x8000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#490)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#491)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x4000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#492)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#493)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x2000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#494)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000162E42FEFA494F1478FDE05 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#495)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x1000000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#496)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000B17217F7D20CF927C8E94C >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#497)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x800000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#498)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#499)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x400000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#500)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000002C5C85FDF477B662B26945 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#501)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x200000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#502)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000162E42FEFA3AE53369388C >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#503)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- x & 0x100000 > 0 (abdk-libraries-solidity/ABDKMath64x64.sol#504)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000B17217F7D1D351A389D40 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#505)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#507)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000002C5C85FDF4741BEA6E77E >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#509)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000162E42FEFA39FE95583C2 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#511)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000B17217F7D1CFB72B45E1 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#513)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#515)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000002C5C85FDF473E242EA38 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#517)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000162E42FEFA39F02B772C >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#519)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000000B17217F7D1CF7D83C1A >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#521)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#523)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000002C5C85FDF473DEA871F >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#525)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000000162E42FEFA39EF44D91 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#527)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000000B17217F7D1CF79E949 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#529)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000000058B90BFBE8E7BCE544 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#531)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000002C5C85FDF473DE6ECA >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#533)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000000162E42FEFA39EF366F >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#535)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000000B17217F7D1CF79AFA >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#537)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x100000000000000058B90BFBE8E7BCD6D >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#539)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000000002C5C85FDF473DE6B2 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#541)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x1000000000000000162E42FEFA39EF358 >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#543)

ABDKMath64x64.exp_2(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#411-551) uses literals with too many digits:

- result = result * 0x10000000000000000B17217F7D1CF79AB >> 128 (abdk-libraries-solidity/ABDKMath64x64.sol#545)

ABDKMath64x64.exp(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#559-566) uses literals with too many digits:

- require(bool)(x < 0x400000000000000000) (abdk-libraries-solidity/ABDKMath64x64.sol#560)

ABDKMath64x64.exp(int128) (abdk-libraries-solidity/ABDKMath64x64.sol#559-566) uses literals with too many digits:

- x < - 0x400000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#562)

ABDKMath64x64.divuu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#576-615) uses literals with too many digits:

- xc >= 0x100000000 (abdk-libraries-solidity/ABDKMath64x64.sol#586)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- 0x80000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#626)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- xc >= 0x100000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#631)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- xc >= 0x10000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#632)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- xc >= 0x100000000 (abdk-libraries-solidity/ABDKMath64x64.sol#633)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- result = 0x80000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#644)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- result >= 0x8000000000000000000000000000000000000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#652-653)

ABDKMath64x64.powu(uint256,uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#625-678) uses literals with too many digits:

- x >= 0x8000000000000000000000000000000000000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#663-664)

ABDKMath64x64.sqrtu(uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#687-709) uses literals with too many digits:

- xx >= 0x100000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#692)

ABDKMath64x64.sqrtu(uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#687-709) uses literals with too many digits:

- xx >= 0x10000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#693)

ABDKMath64x64.sqrtu(uint256) (abdk-libraries-solidity/ABDKMath64x64.sol#687-709) uses literals with too many digits:

- xx >= 0x100000000 (abdk-libraries-solidity/ABDKMath64x64.sol#694)

ABDKMath64x64.slitherConstructorConstantVariables() (abdk-libraries-solidity/ABDKMath64x64.sol#16-710) uses literals with too many digits:

- MIN_64x64 = - 0x80000000000000000000000000000000 (abdk-libraries-solidity/ABDKMath64x64.sol#20)

MintSchedule.constructor() (contracts/MintSchedule.sol#27-183) uses literals with too many digits:

- item.weekCompletenessMultiplier = ABDKMath64x64.divu(99995,100000) (contracts/MintSchedule.sol#181)

Nmx.constructor(address) (contracts/Nmx.sol#32-68) uses literals with too many digits:

- additionalAmount = 20000000 (contracts/Nmx.sol#66)

Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

renounceOwnership() should be declared external:

- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#54-57)

transferOwnership(address) should be declared external:

- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#63-67)

symbol() should be declared external:

- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#72-74)

decimals() should be declared external:

- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#89-91)

totalSupply() should be declared external:

- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#96-98)

balanceOf(address) should be declared external:

- ERC20.balanceOf(address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#103-105)

transfer(address,uint256) should be declared external:

- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#115-118)

allowance(address,address) should be declared external:

- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#123-125)

approve(address,uint256) should be declared external:

- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#134-137)

transferFrom(address,address,uint256) should be declared external:

- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#152-156)

increaseAllowance(address,uint256) should be declared external:

- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#170-173)

decreaseAllowance(address,uint256) should be declared external:

- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#189-192)

Use the external attribute for functions never called from the contract.

Additional information: link

Token is not listed at Mobula.Finance

Additional information: link

Unable to find audit link on the website

No disclosed threats

Unable to find Blog account (Reddit or Medium)

Unable to find Youtube account

Unable to find Discord account