Skip to content

Commit ec487ae

Browse files
Filipp MakarovFilipp Makarov
authored andcommitted
chore: solhint lint
1 parent 3c1d832 commit ec487ae

8 files changed

Lines changed: 31 additions & 18 deletions

File tree

.husky/pre-commit

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,23 @@ for file in $STAGED_FILES; do
1717
fi
1818
done
1919

20-
# Run Solhint and only output Errors, not warnings via awk
21-
ERROR_OUTPUT=$(./node_modules/.bin/solhint 'contracts/**/*.sol' 2>&1 | awk '
20+
# Run Solhint to a temp file (pipes/subshells truncate large output)
21+
SOLHINT_TMP=$(mktemp)
22+
./node_modules/.bin/solhint 'contracts/**/*.sol' > "$SOLHINT_TMP" 2>&1 || true
23+
24+
# Extract only error lines (not warnings) with their file context
25+
ERROR_OUTPUT=$(awk '
2226
/\.sol$/ { current_file = $0 }
23-
/error/ && !/problems.*error/ {
27+
/ error / && !/problems.*error/ {
2428
if (current_file && !file_printed[current_file]) {
2529
print current_file
2630
file_printed[current_file] = 1
2731
}
2832
print $0
2933
}
30-
')
34+
' "$SOLHINT_TMP")
35+
36+
rm -f "$SOLHINT_TMP"
3137

3238
# If there are error lines, show them and exit
3339
if [ -n "$ERROR_OUTPUT" ]; then

.solhintignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
node_modules/
2-
scripts/
2+
scripts/
3+
contracts/validators/stx-validator/submodules/p256/P256Verifier.sol
4+
contracts/validators/stx-validator/ERC7739Validator.sol

contracts/validators/stx-validator/ConfigManager.sol

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ pragma solidity ^0.8.27;
44

55
import { EnumerableSet } from "EnumerableSet4337/EnumerableSet4337.sol";
66
import { FlatBytesLib } from "flatbytes/BytesLib.sol";
7-
import { IStatelessValidator } from "contracts/interfaces/standard/erc-7780/IStatelessValidator.sol";
87
import {
98
SIG_TYPE_MEE_FLOW,
109
SIG_TYPE_SIMPLE,
@@ -89,6 +88,7 @@ contract ConfigManager {
8988
* @param smartAccount The smart account that requested the validation
9089
* @param sigData The signature data to get the submodules for
9190
*/
91+
// solhint-disable code-complexity
9292
function _getSubmodules(
9393
address smartAccount,
9494
bytes calldata sigData
@@ -149,6 +149,8 @@ contract ConfigManager {
149149
}
150150
}
151151

152+
// solhint-enable code-complexity
153+
152154
/**
153155
* @dev Internal function to get the ownership data for the given stateless validator address
154156
* @param smartAccount The smart account that requested the validation

contracts/validators/stx-validator/StxValidator.sol

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,6 @@ contract StxValidator is IValidator, IStatelessValidator, ERC7739Validator, IERC
461461
*/
462462

463463
function deleteConfig(bytes32 configId) external {
464-
address statelessValidatorAddress = customConfigs[configId][msg.sender].statelessValidatorAddress;
465464
_deleteConfigForAccount(msg.sender, configId);
466465
emit ConfigDeleted(configId, msg.sender);
467466
}
@@ -625,7 +624,6 @@ contract StxValidator is IValidator, IStatelessValidator, ERC7739Validator, IERC
625624
override
626625
returns (bool isValidSig)
627626
{
628-
address stxModeVerifierAddress = address(bytes20(signature[0:20]));
629627
address statelessValidatorAddress = address(bytes20(signature[20:40]));
630628
bytes memory _ownershipData = _getOwnershipData(account, statelessValidatorAddress);
631629
isValidSig = _validateSignatureViaErc7780(statelessValidatorAddress, _ownershipData, hash, signature[40:]);

contracts/validators/stx-validator/submodules/EOAStatelessValidator.sol

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,13 @@ contract EOAStatelessValidator is IStatelessValidator {
6767
// do nothing
6868
}
6969

70-
function isInitialized(address smartAccount) external view returns (bool) {
70+
function isInitialized(
71+
address /* smartAccount */
72+
)
73+
external
74+
view
75+
returns (bool)
76+
{
7177
// stateless validator is always initialized
7278
return true;
7379
}

contracts/validators/stx-validator/submodules/NoStxModeVerifier.sol

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
// SPDX-License-Identifier: MIT
22
pragma solidity ^0.8.27;
33

4-
import { MerkleProofLib } from "solady/utils/MerkleProofLib.sol";
5-
import { EcdsaHelperLib } from "../../../lib/util/EcdsaHelperLib.sol";
6-
import { MeeUserOpHashLib } from "../../../lib/stx-validator/MeeUserOpHashLib.sol";
7-
import { ERC20 } from "solady/tokens/ERC20.sol";
84
import { IStxModeVerifier } from "contracts/interfaces/stx-validator/IStxModeVerifier.sol";
9-
import { EfficientHashLib } from "solady/utils/EfficientHashLib.sol";
105
import { IERC7739Multiplexer } from "contracts/interfaces/stx-validator/IERC7739Multiplexer.sol";
11-
import { HashLib } from "contracts/lib/stx-validator/HashLib.sol";
126

137
/**
148
* @dev Fallback submodule for the no stx mode.

contracts/validators/stx-validator/submodules/PermitSubmodule.sol

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { MeeUserOpHashLib } from "../../../lib/stx-validator/MeeUserOpHashLib.so
77
import { ERC20 } from "solady/tokens/ERC20.sol";
88
import { IStxModeVerifier } from "contracts/interfaces/stx-validator/IStxModeVerifier.sol";
99
import { EfficientHashLib } from "solady/utils/EfficientHashLib.sol";
10-
import { IERC7739Multiplexer } from "contracts/interfaces/stx-validator/IERC7739Multiplexer.sol";
1110
import { HashLib } from "contracts/lib/stx-validator/HashLib.sol";
1211

1312
/**

contracts/validators/stx-validator/submodules/p256/P256StatelessValidator.sol

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ contract P256StatelessValidator is IStatelessValidator, P256Verifier {
2222
/// See https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md.
2323
address private constant _VERIFIER = address(0x100);
2424

25-
uint256 constant P256_N_DIV_2 =
25+
uint256 internal constant P256_N_DIV_2 =
2626
57_896_044_605_178_124_381_348_723_474_703_786_764_998_477_612_067_880_171_211_129_530_534_256_022_184;
2727

2828
error InvalidP256SignatureLength();
@@ -93,7 +93,13 @@ contract P256StatelessValidator is IStatelessValidator, P256Verifier {
9393
// do nothing
9494
}
9595

96-
function isInitialized(address smartAccount) external view returns (bool) {
96+
function isInitialized(
97+
address /* smartAccount */
98+
)
99+
external
100+
view
101+
returns (bool)
102+
{
97103
// stateless validator is always initialized
98104
return true;
99105
}

0 commit comments

Comments
 (0)