Omniscia Kyo Finance Audit

TokenStreamEmitter Code Style Findings

TokenStreamEmitter Code Style Findings

TSE-01C: Illegible Value Literal Representation

Description:

The referenced pendingOutputAmountCacheSlot value is set to a value literal meant to correlate to the EIP-7201 representation of the "TokenStreamEmitter.pendingOutputAmountCacheSlot" string whose validation is hindered due to the usage of the said literal.

Example:

contracts/reward/TokenStreamEmitter.sol
17bytes32 private constant pendingOutputAmountCacheSlot = 0x9f1862abe01993f17760c1aaa1badf16579f4eccc1b84d72c709ceed3276aa00; // erc7201 "TokenStreamEmitter.pendingOutputAmountCached"

Recommendation:

We advise the assignment to be updated to the EIP-7201 expression as the variable can remain constant if it utilizes calculations known at compile time.

Alleviation (17c8d4e59f398021156f6f9657ff278aae0462ae):

The Kyo Finance team evaluated this exhibit but opted to acknowledge it in the current iteration of the codebase.

TSE-02C: Redundant Interim Variable

Description:

The referenced slot variable declaration is inefficient as its value is immediately utilized in the ensuing line.

Example:

contracts/reward/TokenStreamEmitter.sol
26function writeCache(address token, address account, uint128 value) private {
27 TransientSlot.Uint256Slot slot = pendingOutputAmountCacheSlot.deriveMapping(token).deriveMapping(account).asUint256();
28
29 slot.tstore(uint256(1 << 255) | value);
30}

Recommendation:

We advise it to be removed and its reference to be replaced by its expression, optimizing the code's syntax and potentially its gas cost.

Alleviation (17c8d4e59f398021156f6f9657ff278aae0462ae):

The Kyo Finance team evaluated this exhibit but opted to acknowledge it in the current iteration of the codebase.