2
2
pragma solidity ^ 0.8.20 ;
3
3
4
4
import {IAdvancedChecker, Check, CheckStatus} from "./interfaces/IAdvancedChecker.sol " ;
5
+ import {Checker} from "./Checker.sol " ;
5
6
6
7
/// @title AdvancedChecker.
7
8
/// @notice Multi-phase validation checker with pre, main, and post checks.
8
9
/// @dev Base contract for implementing complex validation logic with configurable check phases.
9
- abstract contract AdvancedChecker is IAdvancedChecker {
10
+ abstract contract AdvancedChecker is IAdvancedChecker , Checker {
11
+ constructor (address [] memory _verifiers ) Checker (_verifiers) {}
12
+
10
13
/// @notice Entry point for validation checks.
11
14
/// @param subject Address to validate.
12
15
/// @param evidence Validation data.
13
16
/// @param checkType Type of check (PRE, MAIN, POST).
14
17
/// @return checked Validation result.
15
18
function check (
16
19
address subject ,
17
- bytes memory evidence ,
20
+ bytes [] calldata evidence ,
18
21
Check checkType
19
22
) external view override returns (bool checked ) {
20
23
return _check (subject, evidence, checkType);
@@ -26,7 +29,7 @@ abstract contract AdvancedChecker is IAdvancedChecker {
26
29
/// @param evidence Validation data.
27
30
/// @param checkType Check type to perform.
28
31
/// @return checked Validation result.
29
- function _check (address subject , bytes memory evidence , Check checkType ) internal view returns (bool checked ) {
32
+ function _check (address subject , bytes [] calldata evidence , Check checkType ) internal view returns (bool checked ) {
30
33
if (checkType == Check.PRE) {
31
34
return _checkPre (subject, evidence);
32
35
}
@@ -43,19 +46,19 @@ abstract contract AdvancedChecker is IAdvancedChecker {
43
46
/// @param subject Address to validate.
44
47
/// @param evidence Validation data.
45
48
/// @return checked Validation result.
46
- function _checkPre (address subject , bytes memory evidence ) internal view virtual returns (bool checked ) {}
49
+ function _checkPre (address subject , bytes [] calldata evidence ) internal view virtual returns (bool checked ) {}
47
50
48
51
/// @notice Main validation implementation.
49
52
/// @dev Override to implement main check logic.
50
53
/// @param subject Address to validate.
51
54
/// @param evidence Validation data.
52
55
/// @return checked Validation result.
53
- function _checkMain (address subject , bytes memory evidence ) internal view virtual returns (bool checked ) {}
56
+ function _checkMain (address subject , bytes [] calldata evidence ) internal view virtual returns (bool checked ) {}
54
57
55
58
/// @notice Post-condition validation implementation.
56
59
/// @dev Override to implement post-check logic.
57
60
/// @param subject Address to validate.
58
61
/// @param evidence Validation data.
59
62
/// @return checked Validation result.
60
- function _checkPost (address subject , bytes memory evidence ) internal view virtual returns (bool checked ) {}
63
+ function _checkPost (address subject , bytes [] calldata evidence ) internal view virtual returns (bool checked ) {}
61
64
}
0 commit comments