@@ -41,8 +41,10 @@ contract InboxBucketsTest is Test {
4141 return leaf;
4242 }
4343
44- // Sends a message and returns the gas consumed by the external `sendL2Message` call alone. The
45- // recipient/content/secretHash are built before the measurement window so only the call is timed.
44+ // Sends a message and returns the gas consumed by the external `sendL2Message` call. The
45+ // recipient/content/secretHash are built before the measurement window so only the call is timed. The
46+ // figure is warm execution gas including the CALL overhead; it excludes the 21k intrinsic tx cost, calldata
47+ // gas, and the cold-access surcharge a standalone EOA transaction pays on its first touch of each slot.
4648 function _measureSend (InboxHarness _inbox , uint256 _salt ) internal returns (uint256 gasUsed ) {
4749 DataStructures.L2Actor memory recipient =
4850 DataStructures.L2Actor ({actor: bytes32 (uint256 (0x1000 + _salt)), version: version});
@@ -269,8 +271,9 @@ contract InboxBucketsTest is Test {
269271 assertEq (inbox.getCurrentBucketSeq (), 2 , "rollover opened bucket 2 " );
270272 }
271273
272- // Gas cost of the first-ever message against a freshly deployed Inbox: every touched slot is cold,
273- // including the state struct and bucket 1, so this is the worst-case single insert.
274+ // Gas cost of the first-ever message against a freshly deployed Inbox: the state struct, bucket 1, and the
275+ // first frontier-tree slots are all written cold. This is the cold-storage case, not the global worst-case
276+ // insert — later frontier indices with more levels to hash can cost more.
274277 function testGasSendFirstEverMessage () public {
275278 assertEq (inbox.getCurrentBucketSeq (), 0 , "no message sent yet " );
276279
0 commit comments