Omniscia SaucerSwap Labs Audit
SafeHederaTokenService Code Style Findings
SafeHederaTokenService Code Style Findings
SHT-01C: Discrepant Implementation of Safe Disassociation
Type | Severity | Location |
---|---|---|
Code Style | SafeHederaTokenService.sol:L59-L65 |
Description:
The SafeHederaTokenService::safeDissociateToken
function is misspelled and does not follow the convention of the remaining safe
-prefixed functions that invoke the HederaTokenService
implementation and apply sanitization on the responseCode
.
Impact:
The current code style employed by the function is discrepant to the remaining codebase and uses value-literals instead of configurational variables.
Example:
59function safeDissociateToken(address token) internal {60 (bool success, bytes memory result) = address(0x167).call(61 abi.encodeWithSignature("dissociateToken(address,address)", address(this), token));62 require(success, "HTS Precompile: CALL_EXCEPTION");63 int32 responseCode = abi.decode(result, (int32));64 require(responseCode == 22, 'dissocate fail');65}
Recommendation:
We advise the SafeHederaTokenService::safeDissociateToken
function to invoke HederaTokenService::dissociateToken
and to sanitize its responseCode
as being equal to HederaResponseCodes.SUCCESS
, standardizing the contract's style.
Alleviation (a2c5a0b913a7ddc21ff96f97fa51f2820a5da7ec):
The code's style has been standardized as advised, invoking the HederaTokenService::dissociateToken
function directly and sanitizing the output as being HederaResponseCodes::SUCCESS
per our recommendation.
SHT-02C: Redundant Parenthesis Statements
Type | Severity | Location |
---|---|---|
Code Style | SafeHederaTokenService.sol:L35, L41, L47, L54 |
Description:
The referenced statements are redundantly wrapped in parenthesis' (()
).
Example:
35(responseCode) = HederaTokenService.associateTokens(account, tokens);
Recommendation:
We advise them to be safely omitted, increasing the legibility of the codebase.
Alleviation (a2c5a0b913a7ddc21ff96f97fa51f2820a5da7ec):
All referenced redundant parenthesis statements have been omitted safely.