CertiK reviewed INRx (INRx - Audit) on 9 Nov 2022: 6 findings, 0 critical; 5 marked fixed, 1 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 1 | 0 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 0 | 0 | 5 |
One or more internal functions are not used. ```solidity=104 function reset(Counter storage counter) internal { ``` --- ```solidity=243 function _disableInitializers() internal virtual { ``` --- ```solidity=252 function _getInitializedVersion() internal view returns (uint8) { ``` --- ```solidity=257 function _isInitializing() internal view returns (bool) { ``` --- ```solidity=373 function toHexString(uint256 value) internal pure returns (string memory) { ``` --- ```solidity=387 function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { ``` --- ```solidity=400 function toHexString(address addr) internal pure returns (string memory) { ``` --- ```solidity=446 function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { ``` --- ```solidity=479 function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { ``` --- ```solidity=492 function tryRecover( ``` --- ```solidity=507 function recover( ``` --- ```solidity=574 function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { ``` --- ```solidity=588 function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { ```
A minter may double-spending his/her allowance being authorized by the owner. Example: - The owner, Alice, configures the minter, Bob, 100 allowances to mint tokens. - One day, Alice decides to decrease the allowance to Bob from 100 to 50. - Before Alice decreases the allowance, Bob spends the 100 allowances by front-running. - Alice continues to configure the minter, Bob, 50 allowances to mint tokens. - Bob spends another 50 allowances to mint tokens. From the above example, we noticed that Bob spends a total of 150 allowances, instead of 50 allowances, even though Alice changed her mind to only give Bob 50 allowances.
The `SafeMath` library is used unnecessarily. With Solidity compiler versions 0.8.0 or newer, arithmetic operations will automatically revert in case of integer overflow or underflow. ```solidity=5 library SafeMath { ``` - An implementation of `SafeMath` library is found. --- ```solidity=671 using SafeMath for uint256; ``` - `SafeMath` library is used for `uint256` type in `INRxToken` contract. ```solidity=720 totalSupply_ = totalSupply_.add(_amount); ``` - `SafeMath.add` is called in `mint` function of `INRxToken` contract. *Note: Only a sample of 2 `SafeMath` library usage in this contract (out of 11) are shown above.*
```solidity=290 event PauserChanged(address indexed newAddress); ``` - `PauserChanged` is declared in `Pausable` but never emitted. --- ```solidity=319 event BlacklisterChanged(address indexed newBlacklister); ``` - `BlacklisterChanged` is declared in `Blacklistable` but never emitted.
One or more state variables are never used in the codebase. Variable `_PERMIT_TYPEHASH_DEPRECATED_SLOT` in `INRxToken` is never used in `INRxToken`. ```solidity=688 bytes32 private _PERMIT_TYPEHASH_DEPRECATED_SLOT; ``` ```solidity=670 contract INRxToken is Ownable, Pausable, Blacklistable,Initializable, IERC20Permit, EIP712 { ```
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (1)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us