Skip to main content

forge_lint/sol/high/
mod.rs

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