Skip to content

[PR #36] Floating pragma ^0.8.24 on all Solidity files — pin to exact version #113

@obchain

Description

@obchain

PR: #36 feat(contracts): Foundry workspace + CharonLiquidator skeleton

Problem: Every Solidity file uses pragma solidity ^0.8.24; (caret). Affected files:

  • contracts/src/CharonLiquidator.sol line 1
  • contracts/src/interfaces/IAaveV3Pool.sol line 1
  • contracts/src/interfaces/IERC20.sol line 1
  • contracts/src/interfaces/IFlashLoanSimpleReceiver.sol line 1
  • contracts/src/interfaces/IVToken.sol line 1

Caret allows any compiler >= 0.8.24 < 0.9.0. Future solc 0.8.25+ could introduce codegen changes, new opcodes, or ABI-encoding edge cases never caught in local CI because foundry.toml pins solc_version = "0.8.24" while pragma permits drift.

Impact: Non-reproducible builds if solc_version bumped without updating pragmas. Audit reports flag as informational; some audit firms reject caret pragmas in production outright.

Fix: Change every file pragma to exact version:

pragma solidity 0.8.24;

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions