forge_lint/sol/high/
mod.rs1use 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);