Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 12 additions & 34 deletions packages/komodo_defi_local_auth/lib/src/auth/auth_state.dart
Original file line number Diff line number Diff line change
@@ -1,46 +1,24 @@
import 'package:equatable/equatable.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:komodo_defi_types/komodo_defi_types.dart';

part 'auth_state.freezed.dart';

/// Represents the current state of an authentication process
class AuthenticationState extends Equatable {
const AuthenticationState({
required this.status,
this.message,
this.taskId,
this.error,
this.user,
});
@freezed
abstract class AuthenticationState with _$AuthenticationState {
const factory AuthenticationState({
required AuthenticationStatus status,
String? message,
int? taskId,
String? error,
KdfUser? user,
}) = _AuthenticationState;

factory AuthenticationState.completed(KdfUser user) =>
AuthenticationState(status: AuthenticationStatus.completed, user: user);

factory AuthenticationState.error(String error) =>
AuthenticationState(status: AuthenticationStatus.error, error: error);

final AuthenticationStatus status;
final String? message;
final int? taskId;
final String? error;
final KdfUser? user;

AuthenticationState copyWith({
AuthenticationStatus? status,
String? message,
int? taskId,
String? error,
KdfUser? user,
}) {
return AuthenticationState(
status: status ?? this.status,
message: message ?? this.message,
taskId: taskId ?? this.taskId,
error: error ?? this.error,
user: user ?? this.user,
);
}

@override
List<Object?> get props => [status, message, taskId, error, user];
}

/// General authentication status that can be used for any wallet type
Expand Down
154 changes: 154 additions & 0 deletions packages/komodo_defi_local_auth/lib/src/auth/auth_state.freezed.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:komodo_defi_local_auth/komodo_defi_local_auth.dart';
import 'package:komodo_defi_rpc_methods/komodo_defi_rpc_methods.dart';

part 'trezor_initialization_state.freezed.dart';

/// Represents the current state of Trezor initialization
class TrezorInitializationState {
/// Creates a new initialization state
const TrezorInitializationState({
required this.status,
this.message,
this.deviceInfo,
this.error,
this.taskId,
});
@freezed
abstract class TrezorInitializationState with _$TrezorInitializationState {
const factory TrezorInitializationState({
required AuthenticationStatus status,
String? message,
TrezorDeviceInfo? deviceInfo,
String? error,
int? taskId,
}) = _TrezorInitializationState;

const TrezorInitializationState._();

/// Factory constructor that maps API status response to domain state
/// Maps API status response to domain state
factory TrezorInitializationState.fromStatusResponse(
TrezorStatusResponse response,
int taskId,
Expand All @@ -34,29 +39,25 @@ class TrezorInitializationState {
taskId: taskId,
);
}

case 'Error':
final errorInfo = response.errorInfo;
return TrezorInitializationState(
status: AuthenticationStatus.error,
error: errorInfo?.error ?? 'Unknown error occurred',
taskId: taskId,
);

case 'InProgress':
final description = response.progressDescription;
return TrezorInitializationState.fromInProgressDescription(
description,
taskId,
);

case 'UserActionRequired':
final description = response.progressDescription;
return TrezorInitializationState.fromUserActionRequired(
description,
taskId,
);

default:
return TrezorInitializationState(
status: AuthenticationStatus.error,
Expand All @@ -66,8 +67,7 @@ class TrezorInitializationState {
}
}

/// Factory constructor that maps in-progress descriptions
/// to appropriate states
/// Maps in-progress descriptions to appropriate states
factory TrezorInitializationState.fromInProgressDescription(
String? description,
int taskId,
Expand Down Expand Up @@ -107,8 +107,7 @@ class TrezorInitializationState {
);
}

/// Factory constructor that maps user action requirements
/// to appropriate states
/// Maps user action requirements to appropriate states
factory TrezorInitializationState.fromUserActionRequired(
String? description,
int taskId,
Expand Down Expand Up @@ -144,38 +143,6 @@ class TrezorInitializationState {
);
}

/// Current status of the initialization process
final AuthenticationStatus status;

/// Human-readable message describing current state
final String? message;

/// Device information (available when initialization is complete)
final TrezorDeviceInfo? deviceInfo;

/// Error information (available when status is error)
final String? error;

/// Task ID for the current initialization process
final int? taskId;

/// Creates a copy of this state with optional parameter updates
TrezorInitializationState copyWith({
AuthenticationStatus? status,
String? message,
TrezorDeviceInfo? deviceInfo,
String? error,
int? taskId,
}) {
return TrezorInitializationState(
status: status ?? this.status,
message: message ?? this.message,
deviceInfo: deviceInfo ?? this.deviceInfo,
error: error ?? this.error,
taskId: taskId ?? this.taskId,
);
}

AuthenticationState toAuthenticationState() {
return AuthenticationState(
status: status,
Expand All @@ -184,14 +151,4 @@ class TrezorInitializationState {
error: error,
);
}

@override
String toString() {
return 'TrezorInitializationState('
'status: $status, '
'message: $message, '
'deviceInfo: ${deviceInfo?.deviceName}, '
'error: $error, '
'taskId: $taskId)';
}
}
Loading
Loading