farcasterxyz / contracts

Implementation of the Farcaster contracts
https://www.farcaster.xyz/
MIT License
340 stars 122 forks source link

perf(Bundler): reduce gas usage w/ unchecked increments in batch fn loops and cached user value #305

Closed horsefacts closed 1 year ago

horsefacts commented 1 year ago

Motivation

Remove checks for lists to save gas usage because we know the index can't be incremented greater than an array's length.

Change Summary

Merge Checklist

Choose all relevant options below by adding an x now or at any time before submitting for review


PR-Codex overview

Focus of the PR:

This PR focuses on optimizing gas usage in the BundleRegistryGasUsageTest and Bundler contracts.

Detailed summary:

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

github-actions[bot] commented 1 year ago

Coverage after merging fiveoutofnine/perf-1 into main will be

98.71%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   Bundler.sol100%100%100%100%
   FnameResolver.sol100%100%100%100%
   IdRegistry.sol100%100%100%100%
   KeyRegistry.sol100%100%100%100%
   StorageRegistry.sol100%100%100%100%
src/lib
   Signatures.sol100%100%100%100%
   TransferHelper.sol0%0%0%0%15, 15, 15, 25–26, 26, 26
   TrustedCaller.sol100%100%100%100%