PR: #45 (feat/20-multi-liq-batcher)
Files: contracts/src/CharonLiquidator.sol line 3, contracts/test/CharonLiquidator.t.sol line 3
Both files use pragma solidity ^0.8.24;. The caret allows the compiler to select any 0.8.x release at or above 0.8.24. A future solc patch that changes codegen or ABI encoding could silently alter the behavior of batchExecute and executeOperation without any change to the source. The solc_version = "0.8.24" pin in foundry.toml does not substitute for a locked pragma — a downstream consumer that compiles the file with a different toolchain is unprotected.
Same defect as PR #36 (#113/#119) and PR #37, unresolved across all subsequent Solidity PRs.
Impact: Non-reproducible compilation. ABI or codegen change in a future solc patch can introduce silent behavioral regressions.
Fix: Change both files to pragma solidity 0.8.24; (exact, no caret).
Refs #45
PR: #45 (feat/20-multi-liq-batcher)
Files: contracts/src/CharonLiquidator.sol line 3, contracts/test/CharonLiquidator.t.sol line 3
Both files use
pragma solidity ^0.8.24;. The caret allows the compiler to select any 0.8.x release at or above 0.8.24. A future solc patch that changes codegen or ABI encoding could silently alter the behavior ofbatchExecuteandexecuteOperationwithout any change to the source. Thesolc_version = "0.8.24"pin in foundry.toml does not substitute for a locked pragma — a downstream consumer that compiles the file with a different toolchain is unprotected.Same defect as PR #36 (#113/#119) and PR #37, unresolved across all subsequent Solidity PRs.
Impact: Non-reproducible compilation. ABI or codegen change in a future solc patch can introduce silent behavioral regressions.
Fix: Change both files to
pragma solidity 0.8.24;(exact, no caret).Refs #45