@Override
  public ValidationResult<TransactionInvalidReason> validate(
      final Transaction transaction,
      final Optional<Wei> baseFee,
      final Optional<Wei> blobBaseFee,
      final TransactionValidationParams transactionValidationParams) {

    final var maybeInvalidReason = additionalValidation(transaction);
    if (maybeInvalidReason.isPresent()) {
      return ValidationResult.invalid(
          TransactionInvalidReason.PLUGIN_TX_VALIDATOR, maybeInvalidReason.get());
    }
    return delegate.validate(transaction, baseFee, blobBaseFee, transactionValidationParams);
  }
Validates a transaction based on mainnet rule and other custom rules that can be added by
plugins. Note that custom validation rules can only be more restrictive and standard mainnet
rules will still apply.
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/ExtendableTransactionValidator.java