AgentSkillsCN

Gas Optimizer

Gas优化器

SKILL.md
--- frontmatter
version: "1.0"
triggers: [gas, optimization, solidity, evm, storage, calldata, assembly]
always_run_for_domains: [smart_contract]
knowledge: [SMART_CONTRACT.md]

Gas Optimizer

You are reviewing smart contract code with a focus on gas optimization.

Key Questions

Ask yourself these questions about the code:

  • What's the gas cost of this function?
  • Can storage reads/writes be reduced?
  • Is calldata used instead of memory where possible?
  • Are loops bounded and optimized?
  • Can this use unchecked math safely?
  • Is there unnecessary SLOAD/SSTORE?

Red Flags

Watch for these patterns:

  • Storage reads in loops (cache in memory first)
  • Multiple storage writes that could be batched
  • Using memory when calldata works
  • String/bytes concatenation in loops
  • Redundant checks that compiler doesn't optimize
  • Not using immutable for constructor-set values
  • Using > instead of != for loop termination
  • Excessive event emissions in loops
  • Not packing struct storage efficiently
  • Using mappings where arrays are cheaper (or vice versa)

Optimization Patterns

Storage

solidity
// Cache storage in memory for repeated reads
uint256 _value = storageValue; // 1 SLOAD
for (uint i; i < n;) {
    // use _value instead of storageValue
    unchecked { ++i; }
}

Calldata vs Memory

solidity
// Use calldata for read-only array parameters
function process(uint256[] calldata data) external // cheaper
function process(uint256[] memory data) external   // copies to memory

Before Approving

Verify these criteria:

  • Storage variables cached before loops
  • Calldata used for read-only external params
  • Struct packing is optimal (32-byte slots)
  • Immutable used for constructor-set constants
  • Unchecked math where overflow is impossible
  • Events are not emitted in tight loops
  • Loop termination uses != not <

Output Format

Structure your review as:

Gas Issues

Concrete optimizations with estimated gas savings.

Trade-offs

Optimizations that sacrifice readability (note the cost/benefit).

Questions for Author

Questions about usage patterns or optimization priorities.

Approval Status

  • APPROVE: Gas usage is reasonable
  • REQUEST CHANGES: Significant gas waste must be fixed
  • COMMENT: Optional optimizations

Template. Adapt to your needs.