Skip to main content

forge_lint/sol/high/
mod.rs

1use crate::sol::{EarlyLintPass, LateLintPass, SolLint};
2
3mod arbitrary_send_erc20;
4mod arbitrary_send_eth;
5mod controlled_delegatecall;
6mod encode_packed_collision;
7mod incorrect_shift;
8mod reentrancy;
9mod rtlo;
10mod unchecked_calls;
11mod unprotected_initializer;
12
13use arbitrary_send_erc20::{ARBITRARY_SEND_ERC20, ARBITRARY_SEND_ERC20_PERMIT};
14use arbitrary_send_eth::ARBITRARY_SEND_ETH;
15use controlled_delegatecall::CONTROLLED_DELEGATECALL;
16use encode_packed_collision::ENCODE_PACKED_COLLISION;
17use incorrect_shift::INCORRECT_SHIFT;
18use reentrancy::{REENTRANCY_ETH, REENTRANCY_NO_ETH};
19use rtlo::RTLO;
20use unchecked_calls::{ERC20_UNCHECKED_TRANSFER, UNCHECKED_CALL};
21use unprotected_initializer::UNPROTECTED_INITIALIZER;
22
23register_lints!(
24    (ArbitrarySendErc20, late, (ARBITRARY_SEND_ERC20, ARBITRARY_SEND_ERC20_PERMIT)),
25    (ArbitrarySendEth, late, (ARBITRARY_SEND_ETH)),
26    (ControlledDelegatecall, late, (CONTROLLED_DELEGATECALL)),
27    (EncodedPackedCollision, late, (ENCODE_PACKED_COLLISION)),
28    (IncorrectShift, early, (INCORRECT_SHIFT)),
29    (ReentrancyEth, late, (REENTRANCY_ETH, REENTRANCY_NO_ETH)),
30    (UncheckedCall, early, (UNCHECKED_CALL)),
31    (UncheckedTransferERC20, late, (ERC20_UNCHECKED_TRANSFER)),
32    (UnprotectedInitializer, late, (UNPROTECTED_INITIALIZER)),
33    (Rtlo, early, (RTLO))
34);