diff --git a/lib/src/core/di/locator.dart b/lib/src/core/di/locator.dart index 49f6a743..3d673792 100644 --- a/lib/src/core/di/locator.dart +++ b/lib/src/core/di/locator.dart @@ -1,11 +1,17 @@ import 'package:get_it/get_it.dart'; import 'package:grpc/grpc.dart'; import 'package:pactus_gui/src/data/models/node_details.dart'; -import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/data_sources/blockchain_remote_data_source.dart'; -import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/repositories/blockchain_repository_impl.dart'; -import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/services/blockchain_service.dart'; -import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/domain/repositories/blockchain_repository.dart'; -import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/domain/use_cases/get_blockchain_info_use_case.dart'; +import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/data_sources/blockchain_remote_data_source.dart' show BlockchainRemoteDataSource, BlockchainRemoteDataSourceImpl; +import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/repositories/blockchain_repository_impl.dart' show BlockchainRepositoryImpl; +import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/data/services/blockchain_service.dart' + show BlockchainService; +import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/domain/repositories/blockchain_repository.dart' show BlockchainRepository; +import 'package:pactus_gui/src/features/dashboard/sub_modules/blockchain_get_info/domain/use_cases/get_blockchain_info_use_case.dart' show GetBlockchainInfoUseCase; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/data_sources/transfer_transaction_remote_data_source.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/repositories/transfer_transaction_repository_impl.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/services/transfer_transaction_service.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/use_cases/get_transfer_transaction_use_case.dart'; import 'package:shared_preferences/shared_preferences.dart'; final getIt = GetIt.instance; @@ -22,7 +28,6 @@ Future setupSharedPreferences({SharedPreferences? param}) async { Future setupDependencies() async { // Register `ClientChannel` as factory - getIt ..registerFactory(() { final nodeDetails = getIt(); @@ -37,14 +42,26 @@ Future setupDependencies() async { }) // Register `services` ..registerSingleton(BlockchainService()) + ..registerSingleton( + TransferTransactionService(), + ) // Register `DataSources` ..registerSingleton( BlockchainRemoteDataSourceImpl(getIt()), ) + ..registerSingleton( + TransferTransactionRemoteDataSourceImpl(getIt()), + ) // Register `Repositories` ..registerSingleton(BlockchainRepositoryImpl(getIt())) + ..registerSingleton( + TransferTransactionRepositoryImpl(getIt()), + ) // Register `UseCases` ..registerSingleton( GetBlockchainInfoUseCase(getIt()), + ) + ..registerSingleton( + GetTransferTransactionUseCase(getIt()), ); } diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/data_sources/transfer_transaction_remote_data_source.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/data_sources/transfer_transaction_remote_data_source.dart new file mode 100644 index 00000000..c17f0b8c --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/data_sources/transfer_transaction_remote_data_source.dart @@ -0,0 +1,25 @@ +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/mappers/transfer_transaction_mapper.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/models/transfer_transaction_model.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/services/transfer_transaction_service.dart'; + +abstract class TransferTransactionRemoteDataSource { + Future getRawTransferTransaction( + TransferTransactionParams params, + ); +} + +class TransferTransactionRemoteDataSourceImpl + implements TransferTransactionRemoteDataSource { + TransferTransactionRemoteDataSourceImpl(this._service); + + final TransferTransactionService _service; + + @override + Future getRawTransferTransaction( + TransferTransactionParams params, + ) async { + final response = await _service.getRawTransferTransaction(params); + return TransferTransactionMapper().fromResponse(response); + } +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/mappers/transfer_transaction_mapper.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/mappers/transfer_transaction_mapper.dart new file mode 100644 index 00000000..93065ee2 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/mappers/transfer_transaction_mapper.dart @@ -0,0 +1,26 @@ +import 'package:pactus_gui/src/data/models/generated/transaction.pb.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart'; +import '../models/transfer_transaction_model.dart'; + +class TransferTransactionMapper { + TransferTransactionEntity toEntity(TransferTransactionModel model) { + return TransferTransactionEntity( + rawTransaction: model.rawTransaction, + id: model.id, + ); + } + + TransferTransactionModel fromResponse(GetRawTransactionResponse response) { + return TransferTransactionModel( + rawTransaction: response.rawTransaction, + id: response.id, + ); + } + + GetRawTransactionResponse toResponse(TransferTransactionModel model) { + return GetRawTransactionResponse( + rawTransaction: model.rawTransaction, + id: model.id, + ); + } +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/models/transfer_transaction_model.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/models/transfer_transaction_model.dart new file mode 100644 index 00000000..825ae343 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/models/transfer_transaction_model.dart @@ -0,0 +1,9 @@ +class TransferTransactionModel { + TransferTransactionModel({ + required this.rawTransaction, + required this.id, + }); + + final String rawTransaction; + final String id; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart new file mode 100644 index 00000000..d48b1c8a --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart @@ -0,0 +1,18 @@ +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.dart'; + +class TransferTransactionParams { + TransferTransactionParams({ + this.lockTime, + required this.sender, + required this.receiver, + required this.amount, + this.fee, + required this.memo, + }); + final int? lockTime; + final String sender; + final String receiver; + final int amount; + final int? fee; + final String memo; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/repositories/transfer_transaction_repository_impl.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/repositories/transfer_transaction_repository_impl.dart new file mode 100644 index 00000000..3ea6be46 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/repositories/transfer_transaction_repository_impl.dart @@ -0,0 +1,28 @@ +import 'package:dartz/dartz.dart'; +import 'package:pactus_gui/src/data/data_sources/remote_data_state.dart'; +import 'package:pactus_gui/src/data/models/error_response_model.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/data_sources/transfer_transaction_remote_data_source.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/mappers/transfer_transaction_mapper.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart'; + +class TransferTransactionRepositoryImpl with TransferTransactionRepository { + TransferTransactionRepositoryImpl(this._dataSource); + + final TransferTransactionRemoteDataSource _dataSource; + + @override + Future< + Either, + RemoteDataState>> + getRawTransferTransaction(TransferTransactionParams params) async { + try { + final model = await _dataSource.getRawTransferTransaction(params); + final entity = TransferTransactionMapper().toEntity(model); + return Right(RemoteDataState.success(remoteData: entity)); + } on Exception catch (e) { + return Left(RemoteDataState.failed(error: e.toString())); + } + } +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/services/transfer_transaction_service.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/services/transfer_transaction_service.dart new file mode 100644 index 00000000..3c997ed8 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/services/transfer_transaction_service.dart @@ -0,0 +1,24 @@ +import 'dart:async'; +import 'package:fixnum/fixnum.dart'; +import 'package:get_it/get_it.dart'; +import 'package:grpc/grpc.dart'; +import 'package:pactus_gui/src/data/models/generated/transaction.pbgrpc.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; + +class TransferTransactionService { + Future getRawTransferTransaction( + TransferTransactionParams params, + ) async { + final request = GetRawTransferTransactionRequest( + lockTime: params.lockTime, + sender: params.sender, + receiver: params.receiver, + amount: Int64(params.amount), + fee: params.fee != null ? Int64(params.fee!) : null, + memo: params.memo, + ); + return TransactionClient( + GetIt.I(), + ).getRawTransferTransaction(request); + } +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart new file mode 100644 index 00000000..e49f299d --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart @@ -0,0 +1,9 @@ +class TransferTransactionEntity { + TransferTransactionEntity({ + required this.rawTransaction, + required this.id, + }); + + final String rawTransaction; + final String id; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart new file mode 100644 index 00000000..51964563 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart @@ -0,0 +1,12 @@ +import 'package:dartz/dartz.dart'; +import 'package:pactus_gui/src/data/data_sources/remote_data_state.dart'; +import 'package:pactus_gui/src/data/models/error_response_model.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart'; + +mixin TransferTransactionRepository { + Future< + Either, + RemoteDataState>> + getRawTransferTransaction(TransferTransactionParams params); +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/use_cases/get_transfer_transaction_use_case.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/use_cases/get_transfer_transaction_use_case.dart new file mode 100644 index 00000000..37451945 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/use_cases/get_transfer_transaction_use_case.dart @@ -0,0 +1,26 @@ +import 'package:dartz/dartz.dart'; +import 'package:pactus_gui/src/data/data_sources/remote_data_state.dart'; +import 'package:pactus_gui/src/data/models/error_response_model.dart'; +import 'package:pactus_gui/src/data/use_cases/use_case.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/repositories/transfer_transaction_repository.dart'; + +class GetTransferTransactionUseCase + implements + FutureUseCase< + Either, + RemoteDataState>, + TransferTransactionParams> { + GetTransferTransactionUseCase(this._repository); + final TransferTransactionRepository _repository; + + @override + Future< + Either, + RemoteDataState>> call({ + TransferTransactionParams? params, + }) async { + return _repository.getRawTransferTransaction(params!); + } +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.dart new file mode 100644 index 00000000..f6d75a49 --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.dart @@ -0,0 +1,40 @@ +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/data/params/transfer_transaction_params.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/entities/transfer_transaction_entity.dart'; +import 'package:pactus_gui/src/features/transaction/sub_modules/get_raw_transfer_transaction/domain/use_cases/get_transfer_transaction_use_case.dart'; + +part 'get_transfer_bloc.freezed.dart'; +part 'get_transfer_event.dart'; +part 'get_transfer_state.dart'; + +class GetTransferBloc extends Bloc { + GetTransferBloc(this._getTransferUseCase) + : super(const GetTransferState.initial()) { + on((event, emit) async { + await event.when( + getResponse: (params) async { + emit(const GetTransferState.loading()); + + final result = await _getTransferUseCase(params: params); + + result.fold( + (errorState) => emit( + GetTransferState.error( + errorState.remoteData?.msg ?? '', + ), + ), + (successState) => emit( + GetTransferState.loaded( + successState.remoteData!, + ), + ), + ); + }, + resetBloc: () async => emit(const GetTransferState.initial()), + ); + }); + } + + final GetTransferTransactionUseCase _getTransferUseCase; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.freezed.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.freezed.dart new file mode 100644 index 00000000..461262dc --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_bloc.freezed.dart @@ -0,0 +1,937 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'get_transfer_bloc.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); + +/// @nodoc +mixin _$GetTransferEvent { + @optionalTypeArgs + TResult when({ + required TResult Function(TransferTransactionParams params) getResponse, + required TResult Function() resetBloc, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(TransferTransactionParams params)? getResponse, + TResult? Function()? resetBloc, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(TransferTransactionParams params)? getResponse, + TResult Function()? resetBloc, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(_GetResponse value) getResponse, + required TResult Function(_ResetBloc value) resetBloc, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_GetResponse value)? getResponse, + TResult? Function(_ResetBloc value)? resetBloc, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_GetResponse value)? getResponse, + TResult Function(_ResetBloc value)? resetBloc, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $GetTransferEventCopyWith<$Res> { + factory $GetTransferEventCopyWith( + GetTransferEvent value, $Res Function(GetTransferEvent) then) = + _$GetTransferEventCopyWithImpl<$Res, GetTransferEvent>; +} + +/// @nodoc +class _$GetTransferEventCopyWithImpl<$Res, $Val extends GetTransferEvent> + implements $GetTransferEventCopyWith<$Res> { + _$GetTransferEventCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + /// Create a copy of GetTransferEvent + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc +abstract class _$$GetResponseImplCopyWith<$Res> { + factory _$$GetResponseImplCopyWith( + _$GetResponseImpl value, $Res Function(_$GetResponseImpl) then) = + __$$GetResponseImplCopyWithImpl<$Res>; + @useResult + $Res call({TransferTransactionParams params}); +} + +/// @nodoc +class __$$GetResponseImplCopyWithImpl<$Res> + extends _$GetTransferEventCopyWithImpl<$Res, _$GetResponseImpl> + implements _$$GetResponseImplCopyWith<$Res> { + __$$GetResponseImplCopyWithImpl( + _$GetResponseImpl _value, $Res Function(_$GetResponseImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferEvent + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? params = null, + }) { + return _then(_$GetResponseImpl( + params: null == params + ? _value.params + : params // ignore: cast_nullable_to_non_nullable + as TransferTransactionParams, + )); + } +} + +/// @nodoc + +class _$GetResponseImpl implements _GetResponse { + const _$GetResponseImpl({required this.params}); + + @override + final TransferTransactionParams params; + + @override + String toString() { + return 'GetTransferEvent.getResponse(params: $params)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$GetResponseImpl && + (identical(other.params, params) || other.params == params)); + } + + @override + int get hashCode => Object.hash(runtimeType, params); + + /// Create a copy of GetTransferEvent + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$GetResponseImplCopyWith<_$GetResponseImpl> get copyWith => + __$$GetResponseImplCopyWithImpl<_$GetResponseImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(TransferTransactionParams params) getResponse, + required TResult Function() resetBloc, + }) { + return getResponse(params); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(TransferTransactionParams params)? getResponse, + TResult? Function()? resetBloc, + }) { + return getResponse?.call(params); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(TransferTransactionParams params)? getResponse, + TResult Function()? resetBloc, + required TResult orElse(), + }) { + if (getResponse != null) { + return getResponse(params); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_GetResponse value) getResponse, + required TResult Function(_ResetBloc value) resetBloc, + }) { + return getResponse(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_GetResponse value)? getResponse, + TResult? Function(_ResetBloc value)? resetBloc, + }) { + return getResponse?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_GetResponse value)? getResponse, + TResult Function(_ResetBloc value)? resetBloc, + required TResult orElse(), + }) { + if (getResponse != null) { + return getResponse(this); + } + return orElse(); + } +} + +abstract class _GetResponse implements GetTransferEvent { + const factory _GetResponse( + {required final TransferTransactionParams params}) = _$GetResponseImpl; + + TransferTransactionParams get params; + + /// Create a copy of GetTransferEvent + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$GetResponseImplCopyWith<_$GetResponseImpl> get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$ResetBlocImplCopyWith<$Res> { + factory _$$ResetBlocImplCopyWith( + _$ResetBlocImpl value, $Res Function(_$ResetBlocImpl) then) = + __$$ResetBlocImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$ResetBlocImplCopyWithImpl<$Res> + extends _$GetTransferEventCopyWithImpl<$Res, _$ResetBlocImpl> + implements _$$ResetBlocImplCopyWith<$Res> { + __$$ResetBlocImplCopyWithImpl( + _$ResetBlocImpl _value, $Res Function(_$ResetBlocImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferEvent + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc + +class _$ResetBlocImpl implements _ResetBloc { + const _$ResetBlocImpl(); + + @override + String toString() { + return 'GetTransferEvent.resetBloc()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$ResetBlocImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(TransferTransactionParams params) getResponse, + required TResult Function() resetBloc, + }) { + return resetBloc(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(TransferTransactionParams params)? getResponse, + TResult? Function()? resetBloc, + }) { + return resetBloc?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(TransferTransactionParams params)? getResponse, + TResult Function()? resetBloc, + required TResult orElse(), + }) { + if (resetBloc != null) { + return resetBloc(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_GetResponse value) getResponse, + required TResult Function(_ResetBloc value) resetBloc, + }) { + return resetBloc(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_GetResponse value)? getResponse, + TResult? Function(_ResetBloc value)? resetBloc, + }) { + return resetBloc?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_GetResponse value)? getResponse, + TResult Function(_ResetBloc value)? resetBloc, + required TResult orElse(), + }) { + if (resetBloc != null) { + return resetBloc(this); + } + return orElse(); + } +} + +abstract class _ResetBloc implements GetTransferEvent { + const factory _ResetBloc() = _$ResetBlocImpl; +} + +/// @nodoc +mixin _$GetTransferState { + @optionalTypeArgs + TResult when({ + required TResult Function() initial, + required TResult Function() loading, + required TResult Function(TransferTransactionEntity data) loaded, + required TResult Function(String message) error, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? initial, + TResult? Function()? loading, + TResult? Function(TransferTransactionEntity data)? loaded, + TResult? Function(String message)? error, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? initial, + TResult Function()? loading, + TResult Function(TransferTransactionEntity data)? loaded, + TResult Function(String message)? error, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(_Initial value) initial, + required TResult Function(_Loading value) loading, + required TResult Function(_Loaded value) loaded, + required TResult Function(_Error value) error, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_Initial value)? initial, + TResult? Function(_Loading value)? loading, + TResult? Function(_Loaded value)? loaded, + TResult? Function(_Error value)? error, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_Initial value)? initial, + TResult Function(_Loading value)? loading, + TResult Function(_Loaded value)? loaded, + TResult Function(_Error value)? error, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $GetTransferStateCopyWith<$Res> { + factory $GetTransferStateCopyWith( + GetTransferState value, $Res Function(GetTransferState) then) = + _$GetTransferStateCopyWithImpl<$Res, GetTransferState>; +} + +/// @nodoc +class _$GetTransferStateCopyWithImpl<$Res, $Val extends GetTransferState> + implements $GetTransferStateCopyWith<$Res> { + _$GetTransferStateCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc +abstract class _$$InitialImplCopyWith<$Res> { + factory _$$InitialImplCopyWith( + _$InitialImpl value, $Res Function(_$InitialImpl) then) = + __$$InitialImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$InitialImplCopyWithImpl<$Res> + extends _$GetTransferStateCopyWithImpl<$Res, _$InitialImpl> + implements _$$InitialImplCopyWith<$Res> { + __$$InitialImplCopyWithImpl( + _$InitialImpl _value, $Res Function(_$InitialImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc + +class _$InitialImpl implements _Initial { + const _$InitialImpl(); + + @override + String toString() { + return 'GetTransferState.initial()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$InitialImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() initial, + required TResult Function() loading, + required TResult Function(TransferTransactionEntity data) loaded, + required TResult Function(String message) error, + }) { + return initial(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? initial, + TResult? Function()? loading, + TResult? Function(TransferTransactionEntity data)? loaded, + TResult? Function(String message)? error, + }) { + return initial?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? initial, + TResult Function()? loading, + TResult Function(TransferTransactionEntity data)? loaded, + TResult Function(String message)? error, + required TResult orElse(), + }) { + if (initial != null) { + return initial(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_Initial value) initial, + required TResult Function(_Loading value) loading, + required TResult Function(_Loaded value) loaded, + required TResult Function(_Error value) error, + }) { + return initial(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_Initial value)? initial, + TResult? Function(_Loading value)? loading, + TResult? Function(_Loaded value)? loaded, + TResult? Function(_Error value)? error, + }) { + return initial?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_Initial value)? initial, + TResult Function(_Loading value)? loading, + TResult Function(_Loaded value)? loaded, + TResult Function(_Error value)? error, + required TResult orElse(), + }) { + if (initial != null) { + return initial(this); + } + return orElse(); + } +} + +abstract class _Initial implements GetTransferState { + const factory _Initial() = _$InitialImpl; +} + +/// @nodoc +abstract class _$$LoadingImplCopyWith<$Res> { + factory _$$LoadingImplCopyWith( + _$LoadingImpl value, $Res Function(_$LoadingImpl) then) = + __$$LoadingImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$LoadingImplCopyWithImpl<$Res> + extends _$GetTransferStateCopyWithImpl<$Res, _$LoadingImpl> + implements _$$LoadingImplCopyWith<$Res> { + __$$LoadingImplCopyWithImpl( + _$LoadingImpl _value, $Res Function(_$LoadingImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc + +class _$LoadingImpl implements _Loading { + const _$LoadingImpl(); + + @override + String toString() { + return 'GetTransferState.loading()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && other is _$LoadingImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() initial, + required TResult Function() loading, + required TResult Function(TransferTransactionEntity data) loaded, + required TResult Function(String message) error, + }) { + return loading(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? initial, + TResult? Function()? loading, + TResult? Function(TransferTransactionEntity data)? loaded, + TResult? Function(String message)? error, + }) { + return loading?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? initial, + TResult Function()? loading, + TResult Function(TransferTransactionEntity data)? loaded, + TResult Function(String message)? error, + required TResult orElse(), + }) { + if (loading != null) { + return loading(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_Initial value) initial, + required TResult Function(_Loading value) loading, + required TResult Function(_Loaded value) loaded, + required TResult Function(_Error value) error, + }) { + return loading(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_Initial value)? initial, + TResult? Function(_Loading value)? loading, + TResult? Function(_Loaded value)? loaded, + TResult? Function(_Error value)? error, + }) { + return loading?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_Initial value)? initial, + TResult Function(_Loading value)? loading, + TResult Function(_Loaded value)? loaded, + TResult Function(_Error value)? error, + required TResult orElse(), + }) { + if (loading != null) { + return loading(this); + } + return orElse(); + } +} + +abstract class _Loading implements GetTransferState { + const factory _Loading() = _$LoadingImpl; +} + +/// @nodoc +abstract class _$$LoadedImplCopyWith<$Res> { + factory _$$LoadedImplCopyWith( + _$LoadedImpl value, $Res Function(_$LoadedImpl) then) = + __$$LoadedImplCopyWithImpl<$Res>; + @useResult + $Res call({TransferTransactionEntity data}); +} + +/// @nodoc +class __$$LoadedImplCopyWithImpl<$Res> + extends _$GetTransferStateCopyWithImpl<$Res, _$LoadedImpl> + implements _$$LoadedImplCopyWith<$Res> { + __$$LoadedImplCopyWithImpl( + _$LoadedImpl _value, $Res Function(_$LoadedImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? data = null, + }) { + return _then(_$LoadedImpl( + null == data + ? _value.data + : data // ignore: cast_nullable_to_non_nullable + as TransferTransactionEntity, + )); + } +} + +/// @nodoc + +class _$LoadedImpl implements _Loaded { + const _$LoadedImpl(this.data); + + @override + final TransferTransactionEntity data; + + @override + String toString() { + return 'GetTransferState.loaded(data: $data)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$LoadedImpl && + (identical(other.data, data) || other.data == data)); + } + + @override + int get hashCode => Object.hash(runtimeType, data); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$LoadedImplCopyWith<_$LoadedImpl> get copyWith => + __$$LoadedImplCopyWithImpl<_$LoadedImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() initial, + required TResult Function() loading, + required TResult Function(TransferTransactionEntity data) loaded, + required TResult Function(String message) error, + }) { + return loaded(data); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? initial, + TResult? Function()? loading, + TResult? Function(TransferTransactionEntity data)? loaded, + TResult? Function(String message)? error, + }) { + return loaded?.call(data); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? initial, + TResult Function()? loading, + TResult Function(TransferTransactionEntity data)? loaded, + TResult Function(String message)? error, + required TResult orElse(), + }) { + if (loaded != null) { + return loaded(data); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_Initial value) initial, + required TResult Function(_Loading value) loading, + required TResult Function(_Loaded value) loaded, + required TResult Function(_Error value) error, + }) { + return loaded(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_Initial value)? initial, + TResult? Function(_Loading value)? loading, + TResult? Function(_Loaded value)? loaded, + TResult? Function(_Error value)? error, + }) { + return loaded?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_Initial value)? initial, + TResult Function(_Loading value)? loading, + TResult Function(_Loaded value)? loaded, + TResult Function(_Error value)? error, + required TResult orElse(), + }) { + if (loaded != null) { + return loaded(this); + } + return orElse(); + } +} + +abstract class _Loaded implements GetTransferState { + const factory _Loaded(final TransferTransactionEntity data) = _$LoadedImpl; + + TransferTransactionEntity get data; + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$LoadedImplCopyWith<_$LoadedImpl> get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$ErrorImplCopyWith<$Res> { + factory _$$ErrorImplCopyWith( + _$ErrorImpl value, $Res Function(_$ErrorImpl) then) = + __$$ErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String message}); +} + +/// @nodoc +class __$$ErrorImplCopyWithImpl<$Res> + extends _$GetTransferStateCopyWithImpl<$Res, _$ErrorImpl> + implements _$$ErrorImplCopyWith<$Res> { + __$$ErrorImplCopyWithImpl( + _$ErrorImpl _value, $Res Function(_$ErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? message = null, + }) { + return _then(_$ErrorImpl( + null == message + ? _value.message + : message // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$ErrorImpl implements _Error { + const _$ErrorImpl(this.message); + + @override + final String message; + + @override + String toString() { + return 'GetTransferState.error(message: $message)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$ErrorImpl && + (identical(other.message, message) || other.message == message)); + } + + @override + int get hashCode => Object.hash(runtimeType, message); + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$ErrorImplCopyWith<_$ErrorImpl> get copyWith => + __$$ErrorImplCopyWithImpl<_$ErrorImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function() initial, + required TResult Function() loading, + required TResult Function(TransferTransactionEntity data) loaded, + required TResult Function(String message) error, + }) { + return error(message); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function()? initial, + TResult? Function()? loading, + TResult? Function(TransferTransactionEntity data)? loaded, + TResult? Function(String message)? error, + }) { + return error?.call(message); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function()? initial, + TResult Function()? loading, + TResult Function(TransferTransactionEntity data)? loaded, + TResult Function(String message)? error, + required TResult orElse(), + }) { + if (error != null) { + return error(message); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(_Initial value) initial, + required TResult Function(_Loading value) loading, + required TResult Function(_Loaded value) loaded, + required TResult Function(_Error value) error, + }) { + return error(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(_Initial value)? initial, + TResult? Function(_Loading value)? loading, + TResult? Function(_Loaded value)? loaded, + TResult? Function(_Error value)? error, + }) { + return error?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(_Initial value)? initial, + TResult Function(_Loading value)? loading, + TResult Function(_Loaded value)? loaded, + TResult Function(_Error value)? error, + required TResult orElse(), + }) { + if (error != null) { + return error(this); + } + return orElse(); + } +} + +abstract class _Error implements GetTransferState { + const factory _Error(final String message) = _$ErrorImpl; + + String get message; + + /// Create a copy of GetTransferState + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$ErrorImplCopyWith<_$ErrorImpl> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_event.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_event.dart new file mode 100644 index 00000000..db789f3b --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_event.dart @@ -0,0 +1,10 @@ +part of 'get_transfer_bloc.dart'; + +@freezed +class GetTransferEvent with _$GetTransferEvent { + const factory GetTransferEvent.getResponse({ + required TransferTransactionParams params, + }) = _GetResponse; + + const factory GetTransferEvent.resetBloc() = _ResetBloc; +} diff --git a/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_state.dart b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_state.dart new file mode 100644 index 00000000..cd6c8c9e --- /dev/null +++ b/lib/src/features/transaction/sub_modules/get_raw_transfer_transaction/presentation/bloc/get_transfer_state.dart @@ -0,0 +1,10 @@ +part of 'get_transfer_bloc.dart'; + +@freezed +class GetTransferState with _$GetTransferState { + const factory GetTransferState.initial() = _Initial; + const factory GetTransferState.loading() = _Loading; + const factory GetTransferState.loaded(TransferTransactionEntity data) = + _Loaded; + const factory GetTransferState.error(String message) = _Error; +} diff --git a/pubspec.lock b/pubspec.lock index 10d83374..b4aa0d18 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: accessibility_tools - sha256: "3a36d23e8566f0618730c89b304f4faa5bc843255e26a47ee0ff15df0c30b15d" + sha256: aaa782bf794d823f371f45d232efe8605cffe081c34a1d83fe4db491ddbba0c7 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.6.0" analyzer: dependency: "direct dev" description: @@ -1255,10 +1255,10 @@ packages: dependency: transitive description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: @@ -1469,4 +1469,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.8.0 <4.0.0" - flutter: ">=3.27.0" + flutter: ">=3.32.0"