F-2025-0018·code-quality

Consider using named mappings for improved code readability

Acknowledgedstakingnft-boostrewards
TL;DR

Mappings use traditional syntax instead of the named-mapping form (Solidity 0.8.18+), reducing self-documentation and reader clarity.

Severity
INFO
Impact
LOW
Likelihood
LOW
Method
MManual review
CAT.
Complexity
LOW
Exploitability
LOW
02Section · Description

Description

The contract uses traditional mapping syntax instead of the more readable named mapping syntax introduced in Solidity 0.8.18:

solidity
// Current implementation
mapping(uint => Position) public positions;
mapping(address => uint[]) public positionIdsByAddress;
mapping(uint => uint) public tiers;

Named mappings make the code more self-documenting by explicitly stating what the keys and values represent.

03Section · Recommendation

Recommendation

Update to latest stable Solidity version and use named mappings:

solidity
// More readable implementation
mapping(uint positionId => Position position) public positions;
mapping(address user => uint[] positionIds) public positionIdsByAddress;
mapping(uint daysLocked => uint basisPoints) public tiers;

This improves code readability, self-documentation, maintenance and auditing, and function-parameter consistency (names can match mapping key/value names).

F-2025-0018

oog
zealynx

Smart Contract Security Digest

Monthly exploit breakdowns, audit checklists, and DeFi security research — straight to your inbox

© 2026 Zealynx