From a552fc6b2430353b05c0c2ef3c17567704012a90 Mon Sep 17 00:00:00 2001 From: Emanuel Muroni Date: Tue, 10 Oct 2023 11:14:37 +0200 Subject: [PATCH] SDK improvements (#332) * parallelization and execution time tracking in debug mode * fixed bug with new version of encrypt library * removed caching of DB * closing database after a transaction * profiles storing * profiles did connections storing * hotfix bug with sembast [2] codec signature error * Removed the possibility of exposing sensitive data if stacktrace is enabled * Moved stacktrace and error to dedicated class * fix errorHandling dependency injection, get the method sync instead of async --- .../integration_test/app_real_data_test.dart | 1 + example/ios/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../src/presentation/navigations/routes.dart | 2 +- .../src/presentation/ui/home/home_bloc.dart | 1 + .../widgets/barcode_detector_painter.dart | 2 + .../qrcode_scanner/widgets/camera_view.dart | 2 + .../widgets/coordinates_translator.dart | 2 + .../widgets/qrcode_scanner.dart | 239 ++- example/pubspec.yaml | 5 +- lib/common/domain/entities/env_entity.dart | 9 +- .../stacktrace_stream_manager.dart | 26 +- .../polygonidcore/native_polygonidcore.dart | 68 +- lib/common/utils/encrypt_codec.dart | 96 + lib/constants.dart | 8 +- .../add_did_profile_info_use_case.dart | 33 + .../domain/use_cases/get_claims_use_case.dart | 6 +- .../get_did_profile_info_list_use_case.dart | 34 + .../get_did_profile_info_use_case.dart | 33 + .../remove_did_profile_info_use_case.dart | 32 + .../iden3_message_data_source.dart | 28 +- .../remote_iden3comm_data_source.dart | 5 +- ..._storage_did_profile_info_data_source.dart | 133 ++ ...dProfileInfoInteractedDidFilterMapper.dart | 9 + .../did_profile_info_repository_impl.dart | 86 + .../did_profile_info_repository.dart | 33 + .../use_cases/authenticate_use_case.dart | 2 +- .../generate_iden3comm_proof_use_case.dart | 6 +- .../use_cases/get_auth_inputs_use_case.dart | 2 +- .../use_cases/get_auth_token_use_case.dart | 48 +- .../get_iden3comm_proofs_use_case.dart | 4 +- .../domain/use_cases/get_jwz_use_case.dart | 42 +- .../encryption_db_data_source.dart | 3 +- .../secure_storage_profiles_data_source.dart | 91 + .../storage_identity_data_source.dart | 9 +- .../identity_repository_impl.dart | 26 + .../repositories/identity_repository.dart | 11 + .../identity/restore_identity_use_case.dart | 21 +- .../identity/update_identity_use_case.dart | 7 + .../profile/restore_profiles_use_case.dart | 36 + .../smt/create_identity_state_use_case.dart | 44 +- .../repositories/proof_repository_impl.dart | 48 +- .../use_cases/load_circuit_use_case.dart | 16 +- .../domain/use_cases/prove_use_case.dart | 27 +- .../witnesscalc/auth_v2/witness_auth.dart | 89 +- lib/sdk/di/injector.config.dart | 1812 +++++++++-------- lib/sdk/di/injector.dart | 15 + lib/sdk/error_handling.dart | 52 + lib/sdk/iden3comm.dart | 118 +- lib/sdk/identity.dart | 16 +- lib/sdk/polygon_id_sdk.dart | 17 +- lib/sdk/polygonid_flutter_channel.dart | 50 + pubspec.yaml | 8 +- .../use_cases/get_claims_use_case_test.dart | 1 - .../encryption_db_data_source_test.dart | 2 +- .../identity_repository_impl_test.dart | 5 + 56 files changed, 2406 insertions(+), 1119 deletions(-) create mode 100644 lib/common/utils/encrypt_codec.dart create mode 100644 lib/credential/domain/use_cases/add_did_profile_info_use_case.dart create mode 100644 lib/credential/domain/use_cases/get_did_profile_info_list_use_case.dart create mode 100644 lib/credential/domain/use_cases/get_did_profile_info_use_case.dart create mode 100644 lib/credential/domain/use_cases/remove_did_profile_info_use_case.dart create mode 100644 lib/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart create mode 100644 lib/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart create mode 100644 lib/iden3comm/data/repositories/did_profile_info_repository_impl.dart create mode 100644 lib/iden3comm/domain/repositories/did_profile_info_repository.dart create mode 100644 lib/identity/data/data_sources/secure_storage_profiles_data_source.dart create mode 100644 lib/identity/domain/use_cases/profile/restore_profiles_use_case.dart create mode 100644 lib/sdk/error_handling.dart diff --git a/example/integration_test/app_real_data_test.dart b/example/integration_test/app_real_data_test.dart index e43bae43..fcc508f3 100644 --- a/example/integration_test/app_real_data_test.dart +++ b/example/integration_test/app_real_data_test.dart @@ -105,6 +105,7 @@ void main() { await widgetTester .tap(find.byKey(CustomWidgetsKeys.authScreenButtonConnect)); await widgetTester.pumpAndSettle(); + key.currentState?.pop(iden3Message); await widgetTester.pumpAndSettle(); diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 58430c21..41c64016 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -214,7 +214,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 95738dc2..632810e6 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ const QRCodeScannerPage(); + return (BuildContext context) => const QRViewExample(); } /// diff --git a/example/lib/src/presentation/ui/home/home_bloc.dart b/example/lib/src/presentation/ui/home/home_bloc.dart index 8f6a8b4c..fb0b6d89 100644 --- a/example/lib/src/presentation/ui/home/home_bloc.dart +++ b/example/lib/src/presentation/ui/home/home_bloc.dart @@ -50,6 +50,7 @@ class HomeBloc extends Bloc { try { PrivateIdentityEntity identity = await _polygonIdSdk.identity.addIdentity(); + print("identity: ${identity.privateKey}"); await SecureStorage.write( key: SecureStorageKeys.privateKey, value: identity.privateKey); emit(HomeState.loaded(identifier: identity.did)); diff --git a/example/lib/src/presentation/ui/qrcode_scanner/widgets/barcode_detector_painter.dart b/example/lib/src/presentation/ui/qrcode_scanner/widgets/barcode_detector_painter.dart index 17e709c6..cf560ac9 100644 --- a/example/lib/src/presentation/ui/qrcode_scanner/widgets/barcode_detector_painter.dart +++ b/example/lib/src/presentation/ui/qrcode_scanner/widgets/barcode_detector_painter.dart @@ -1,3 +1,4 @@ +/* import 'dart:math'; import 'dart:ui'; import 'dart:ui' as ui; @@ -96,3 +97,4 @@ class BarcodeDetectorPainter extends CustomPainter { oldDelegate.barcodes != barcodes; } } +*/ diff --git a/example/lib/src/presentation/ui/qrcode_scanner/widgets/camera_view.dart b/example/lib/src/presentation/ui/qrcode_scanner/widgets/camera_view.dart index 1ff31618..6a332325 100644 --- a/example/lib/src/presentation/ui/qrcode_scanner/widgets/camera_view.dart +++ b/example/lib/src/presentation/ui/qrcode_scanner/widgets/camera_view.dart @@ -1,3 +1,4 @@ +/* import 'dart:io'; import 'package:camera/camera.dart'; @@ -460,3 +461,4 @@ class _CameraViewState extends State { }); } } +*/ diff --git a/example/lib/src/presentation/ui/qrcode_scanner/widgets/coordinates_translator.dart b/example/lib/src/presentation/ui/qrcode_scanner/widgets/coordinates_translator.dart index a1fabf78..6d2c90c4 100644 --- a/example/lib/src/presentation/ui/qrcode_scanner/widgets/coordinates_translator.dart +++ b/example/lib/src/presentation/ui/qrcode_scanner/widgets/coordinates_translator.dart @@ -1,3 +1,4 @@ +/* import 'dart:io'; import 'dart:ui'; @@ -34,3 +35,4 @@ double translateY( return y * size.height / absoluteImageSize.height; } } +*/ diff --git a/example/lib/src/presentation/ui/qrcode_scanner/widgets/qrcode_scanner.dart b/example/lib/src/presentation/ui/qrcode_scanner/widgets/qrcode_scanner.dart index 3376ec3e..477b8d3a 100644 --- a/example/lib/src/presentation/ui/qrcode_scanner/widgets/qrcode_scanner.dart +++ b/example/lib/src/presentation/ui/qrcode_scanner/widgets/qrcode_scanner.dart @@ -1,99 +1,192 @@ -import 'package:camera/camera.dart'; +import 'dart:developer'; +import 'dart:io'; + +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:google_mlkit_barcode_scanning/google_mlkit_barcode_scanning.dart'; -import 'package:polygonid_flutter_sdk_example/src/presentation/ui/qrcode_scanner/widgets/barcode_detector_painter.dart'; -import 'package:polygonid_flutter_sdk_example/src/presentation/ui/qrcode_scanner/widgets/camera_view.dart'; -import 'package:polygonid_flutter_sdk_example/src/presentation/ui/qrcode_scanner/widgets/qrcode_scanner_overlay_shape.dart'; -import 'package:polygonid_flutter_sdk_example/utils/custom_button_style.dart'; -import 'package:polygonid_flutter_sdk_example/utils/custom_colors.dart'; +import 'package:qr_code_scanner/qr_code_scanner.dart'; + +void main() => runApp(const MaterialApp(home: MyHome())); -class QRCodeScannerPage extends StatefulWidget { - const QRCodeScannerPage({Key? key}) : super(key: key); +class MyHome extends StatelessWidget { + const MyHome({Key? key}) : super(key: key); @override - State createState() => _QRCodeScannerPageState(); + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Flutter Demo Home Page')), + body: Center( + child: ElevatedButton( + onPressed: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const QRViewExample(), + )); + }, + child: const Text('qrView'), + ), + ), + ); + } } -class _QRCodeScannerPageState extends State { - final BarcodeScanner _barcodeScanner = - BarcodeScanner(formats: [BarcodeFormat.qrCode]); +class QRViewExample extends StatefulWidget { + const QRViewExample({Key? key}) : super(key: key); - bool _canProcess = true; - bool _isBusy = false; - bool _resultFound = false; - CustomPaint? _customPaint; + @override + State createState() => _QRViewExampleState(); +} + +class _QRViewExampleState extends State { + Barcode? result; + QRViewController? controller; + final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); + // In order to get hot reload to work we need to pause the camera if the platform + // is android, or resume the camera if the platform is iOS. @override - void dispose() { - _barcodeScanner.close(); - super.dispose(); + void reassemble() { + super.reassemble(); + if (Platform.isAndroid) { + controller!.pauseCamera(); + } + controller!.resumeCamera(); } @override Widget build(BuildContext context) { return Scaffold( - body: _buildBody(), + body: Column( + children: [ + Expanded(flex: 4, child: _buildQrView(context)), + Expanded( + flex: 1, + child: FittedBox( + fit: BoxFit.contain, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + if (result != null) + Text( + 'Barcode Type: ${describeEnum(result!.format)} Data: ${result!.code}') + else + const Text('Scan a code'), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsets.all(8), + child: ElevatedButton( + onPressed: () async { + await controller?.toggleFlash(); + setState(() {}); + }, + child: FutureBuilder( + future: controller?.getFlashStatus(), + builder: (context, snapshot) { + return Text('Flash: ${snapshot.data}'); + }, + )), + ), + Container( + margin: const EdgeInsets.all(8), + child: ElevatedButton( + onPressed: () async { + await controller?.flipCamera(); + setState(() {}); + }, + child: FutureBuilder( + future: controller?.getCameraInfo(), + builder: (context, snapshot) { + if (snapshot.data != null) { + return Text( + 'Camera facing ${describeEnum(snapshot.data!)}'); + } else { + return const Text('loading'); + } + }, + )), + ) + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsets.all(8), + child: ElevatedButton( + onPressed: () async { + await controller?.pauseCamera(); + }, + child: const Text('pause', + style: TextStyle(fontSize: 20)), + ), + ), + Container( + margin: const EdgeInsets.all(8), + child: ElevatedButton( + onPressed: () async { + await controller?.resumeCamera(); + }, + child: const Text('resume', + style: TextStyle(fontSize: 20)), + ), + ) + ], + ), + ], + ), + ), + ) + ], + ), ); } - /// - Widget _buildBody() { - return FutureBuilder( - future: availableCameras(), - builder: ( - context, - AsyncSnapshot> snapshot, - ) { - if (snapshot.hasData) { - snapshot.data; - return CameraView( - cameras: snapshot.data!, - onImage: (inputImage) { - processImage(inputImage); - }, - onQrCodeScanned: (code) { - _resultCallback(code); - }, - ); - } else { - return const Center( - child: CircularProgressIndicator(), - ); - } - }, + Widget _buildQrView(BuildContext context) { + // For this example we check how width or tall the device is and change the scanArea and overlay accordingly. + var scanArea = (MediaQuery.of(context).size.width < 400 || + MediaQuery.of(context).size.height < 400) + ? 150.0 + : 300.0; + // To ensure the Scanner view is properly sizes after rotation + // we need to listen for Flutter SizeChanged notification and update controller + return QRView( + key: qrKey, + onQRViewCreated: _onQRViewCreated, + overlay: QrScannerOverlayShape( + borderColor: Colors.red, + borderRadius: 10, + borderLength: 30, + borderWidth: 10, + cutOutSize: scanArea), + onPermissionSet: (ctrl, p) => _onPermissionSet(context, ctrl, p), ); } - /// - void _resultCallback(String? rawValue) { - _resultFound = true; - _barcodeScanner.close(); - Navigator.pop(context, rawValue); + void _onQRViewCreated(QRViewController controller) { + setState(() { + this.controller = controller; + }); + controller.scannedDataStream.listen((scanData) { + setState(() { + result = scanData; + }); + }); } - /// - Future processImage(InputImage inputImage) async { - if (!_canProcess) return; - if (_isBusy) return; - _isBusy = true; - - final barcodes = await _barcodeScanner.processImage(inputImage); - - if (barcodes.isEmpty) { - _isBusy = false; - return; - } - - // To avoid multiple scans of the same barcode - if (_resultFound) { - return; - } - - _isBusy = false; - if (mounted) { - setState(() {}); + void _onPermissionSet(BuildContext context, QRViewController ctrl, bool p) { + log('${DateTime.now().toIso8601String()}_onPermissionSet $p'); + if (!p) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('no Permission')), + ); } + } - _resultCallback(barcodes.first.rawValue); + @override + void dispose() { + controller?.dispose(); + super.dispose(); } } diff --git a/example/pubspec.yaml b/example/pubspec.yaml index f73268d6..f350993d 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -42,8 +42,9 @@ dependencies: http: ^0.13.5 flutter_secure_storage: ^8.0.0 logger: ^2.0.1 - google_mlkit_barcode_scanning: ^0.7.0 - camera: ^0.10.3+2 + #google_mlkit_barcode_scanning: ^0.7.0 + #camera: ^0.10.3+2 + qr_code_scanner: ^1.0.1 image_picker: ^1.0.0 envied: ^0.3.0+3 scan: ^1.6.0 diff --git a/lib/common/domain/entities/env_entity.dart b/lib/common/domain/entities/env_entity.dart index 95f25c18..f0c5ba0a 100644 --- a/lib/common/domain/entities/env_entity.dart +++ b/lib/common/domain/entities/env_entity.dart @@ -7,6 +7,7 @@ class EnvEntity { final String idStateContract; final String pushUrl; final String ipfsUrl; + final String? stacktraceEncryptionKey; EnvEntity({ required this.blockchain, @@ -17,6 +18,7 @@ class EnvEntity { required this.idStateContract, required this.pushUrl, required this.ipfsUrl, + this.stacktraceEncryptionKey, }); factory EnvEntity.fromJson(Map json) { @@ -29,6 +31,7 @@ class EnvEntity { idStateContract: json['idStateContract'], pushUrl: json['pushUrl'], ipfsUrl: json['ipfsUrl'], + stacktraceEncryptionKey: json['stacktraceEncryptionKey'], ); } @@ -42,11 +45,12 @@ class EnvEntity { 'idStateContract': idStateContract, 'pushUrl': pushUrl, 'ipfsUrl': ipfsUrl, + 'stacktraceEncryptionKey': stacktraceEncryptionKey, }; @override String toString() => - "[EnvEntity] {blockchain: $blockchain, network: $network, web3Url: $web3Url, web3RdpUrl: $web3RdpUrl, web3ApiKey: $web3ApiKey, idStateContract: $idStateContract, pushUrl: $pushUrl, ipfsUrl: $ipfsUrl}"; + "[EnvEntity] {blockchain: $blockchain, network: $network, web3Url: $web3Url, web3RdpUrl: $web3RdpUrl, web3ApiKey: $web3ApiKey, idStateContract: $idStateContract, pushUrl: $pushUrl, ipfsUrl: $ipfsUrl, stacktraceEncryptionKey: $stacktraceEncryptionKey}"; @override bool operator ==(Object other) => @@ -59,7 +63,8 @@ class EnvEntity { web3ApiKey == other.web3ApiKey && idStateContract == other.idStateContract && pushUrl == other.pushUrl && - ipfsUrl == other.ipfsUrl; + ipfsUrl == other.ipfsUrl && + stacktraceEncryptionKey == other.stacktraceEncryptionKey; @override int get hashCode => runtimeType.hashCode; diff --git a/lib/common/infrastructure/stacktrace_stream_manager.dart b/lib/common/infrastructure/stacktrace_stream_manager.dart index f9a61f66..fdaa5761 100644 --- a/lib/common/infrastructure/stacktrace_stream_manager.dart +++ b/lib/common/infrastructure/stacktrace_stream_manager.dart @@ -6,7 +6,7 @@ import 'package:injectable/injectable.dart'; @lazySingleton class StacktraceManager { bool isEnabled = false; - var box = Hive.box('stacktrace'); + static const String stacktraceBoxName = 'stacktrace'; String _errorTrace = ''; StreamController _stacktraceStreamController = StreamController.broadcast(); @@ -30,10 +30,17 @@ class StacktraceManager { /// we clear the stacktrace void clear() { - box.clear(); _errorTrace = ''; _stacktraceStreamController.add(''); _errorStreamController.add(_errorTrace); + if (!isEnabled) { + return; + } + + if (_isBoxOpen()) { + var box = Hive.box(stacktraceBoxName); + box.clear(); + } } /// we close the stream @@ -44,12 +51,14 @@ class StacktraceManager { /// we add a new trace to the stacktrace stream void addTrace(String stepDescription) { - if (!isEnabled) return; + if (!isEnabled || !_isBoxOpen()) return; //write string in an external txt file - String _stacktrace = box.get('stacktrace') ?? ''; + var box = Hive.box(stacktraceBoxName); + + String _stacktrace = box.get(stacktraceBoxName) ?? ''; _stacktrace += stepDescription + '\n***\n***'; - box.put('stacktrace', _stacktrace); + box.put(stacktraceBoxName, _stacktrace); _stacktraceStreamController.add(stepDescription); } @@ -60,10 +69,15 @@ class StacktraceManager { /// get the stacktrace String get stacktrace { - String _stacktrace = box.get('stacktrace') ?? ''; + if (!_isBoxOpen()) return ''; + var box = Hive.box(stacktraceBoxName); + String _stacktrace = box.get(stacktraceBoxName) ?? ''; return _stacktrace; } /// get the error trace String get errorTrace => _errorTrace; + + /// + bool _isBoxOpen() => Hive.isBoxOpen(stacktraceBoxName); } diff --git a/lib/common/libs/polygonidcore/native_polygonidcore.dart b/lib/common/libs/polygonidcore/native_polygonidcore.dart index d6f8c2b4..6d85ae8b 100644 --- a/lib/common/libs/polygonidcore/native_polygonidcore.dart +++ b/lib/common/libs/polygonidcore/native_polygonidcore.dart @@ -294,8 +294,9 @@ class NativePolygonIdCoreLib { } late final _callocPtr = _lookup< - ffi.NativeFunction< - ffi.Pointer Function(ffi.Size, ffi.Size)>>('calloc'); + ffi + .NativeFunction Function(ffi.Size, ffi.Size)>>( + 'calloc'); late final _calloc = _callocPtr.asFunction Function(int, int)>(); @@ -355,8 +356,9 @@ class NativePolygonIdCoreLib { } late final _aligned_allocPtr = _lookup< - ffi.NativeFunction< - ffi.Pointer Function(ffi.Size, ffi.Size)>>('aligned_alloc'); + ffi + .NativeFunction Function(ffi.Size, ffi.Size)>>( + 'aligned_alloc'); late final _aligned_alloc = _aligned_allocPtr.asFunction Function(int, int)>(); @@ -613,8 +615,9 @@ class NativePolygonIdCoreLib { } late final _mblenPtr = _lookup< - ffi.NativeFunction< - ffi.Int Function(ffi.Pointer, ffi.Size)>>('mblen'); + ffi + .NativeFunction, ffi.Size)>>( + 'mblen'); late final _mblen = _mblenPtr.asFunction, int)>(); @@ -872,8 +875,9 @@ class NativePolygonIdCoreLib { } late final _wctombPtr = _lookup< - ffi.NativeFunction< - ffi.Int Function(ffi.Pointer, ffi.WChar)>>('wctomb'); + ffi + .NativeFunction, ffi.WChar)>>( + 'wctomb'); late final _wctomb = _wctombPtr.asFunction, int)>(); @@ -941,8 +945,9 @@ class NativePolygonIdCoreLib { } late final _erand48Ptr = _lookup< - ffi.NativeFunction< - ffi.Double Function(ffi.Pointer)>>('erand48'); + ffi + .NativeFunction)>>( + 'erand48'); late final _erand48 = _erand48Ptr.asFunction)>(); @@ -1051,8 +1056,9 @@ class NativePolygonIdCoreLib { } late final _jrand48Ptr = _lookup< - ffi.NativeFunction< - ffi.Long Function(ffi.Pointer)>>('jrand48'); + ffi + .NativeFunction)>>( + 'jrand48'); late final _jrand48 = _jrand48Ptr.asFunction)>(); @@ -1078,8 +1084,9 @@ class NativePolygonIdCoreLib { } late final _lcong48Ptr = _lookup< - ffi.NativeFunction< - ffi.Void Function(ffi.Pointer)>>('lcong48'); + ffi + .NativeFunction)>>( + 'lcong48'); late final _lcong48 = _lcong48Ptr.asFunction)>(); @@ -1136,8 +1143,9 @@ class NativePolygonIdCoreLib { } late final _nrand48Ptr = _lookup< - ffi.NativeFunction< - ffi.Long Function(ffi.Pointer)>>('nrand48'); + ffi + .NativeFunction)>>( + 'nrand48'); late final _nrand48 = _nrand48Ptr.asFunction)>(); @@ -1390,9 +1398,9 @@ class NativePolygonIdCoreLib { } late final _arc4random_bufPtr = _lookup< - ffi.NativeFunction< - ffi.Void Function( - ffi.Pointer, ffi.Size)>>('arc4random_buf'); + ffi + .NativeFunction, ffi.Size)>>( + 'arc4random_buf'); late final _arc4random_buf = _arc4random_bufPtr .asFunction, int)>(); @@ -1676,8 +1684,9 @@ class NativePolygonIdCoreLib { } late final _getloadavgPtr = _lookup< - ffi.NativeFunction< - ffi.Int Function(ffi.Pointer, ffi.Int)>>('getloadavg'); + ffi + .NativeFunction, ffi.Int)>>( + 'getloadavg'); late final _getloadavg = _getloadavgPtr.asFunction, int)>(); @@ -2602,8 +2611,9 @@ class NativePolygonIdCoreLib { } late final _strnlenPtr = _lookup< - ffi.NativeFunction< - ffi.Size Function(ffi.Pointer, ffi.Size)>>('strnlen'); + ffi + .NativeFunction, ffi.Size)>>( + 'strnlen'); late final _strnlen = _strnlenPtr.asFunction, int)>(); @@ -2808,8 +2818,9 @@ class NativePolygonIdCoreLib { } late final _strmodePtr = _lookup< - ffi.NativeFunction< - ffi.Void Function(ffi.Int, ffi.Pointer)>>('strmode'); + ffi + .NativeFunction)>>( + 'strmode'); late final _strmode = _strmodePtr.asFunction)>(); @@ -2937,8 +2948,9 @@ class NativePolygonIdCoreLib { } late final _bzeroPtr = _lookup< - ffi.NativeFunction< - ffi.Void Function(ffi.Pointer, ffi.Size)>>('bzero'); + ffi + .NativeFunction, ffi.Size)>>( + 'bzero'); late final _bzero = _bzeroPtr.asFunction, int)>(); @@ -3408,7 +3420,7 @@ class __mbstate_t extends ffi.Union { class __darwin_pthread_handler_rec extends ffi.Struct { external ffi - .Pointer)>> + .Pointer)>> __routine; external ffi.Pointer __arg; diff --git a/lib/common/utils/encrypt_codec.dart b/lib/common/utils/encrypt_codec.dart new file mode 100644 index 00000000..7cab0c97 --- /dev/null +++ b/lib/common/utils/encrypt_codec.dart @@ -0,0 +1,96 @@ +/* +import 'dart:convert'; +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:crypto/crypto.dart'; +import 'package:encrypt/encrypt.dart'; +import 'package:sembast/sembast.dart'; + +/// Salsa20 based encoder +class _EncryptEncoder extends Converter { + final Salsa20 salsa20; + + _EncryptEncoder(this.salsa20); + + var _random = Random.secure(); + + /// Random bytes generator + Uint8List _randBytes(int length) { + return Uint8List.fromList( + List.generate(length, (i) => _random.nextInt(256))); + } + + @override + String convert(dynamic input) { + // Generate random initial value + final iv = _randBytes(8); + final ivEncoded = base64.encode(iv); + assert(ivEncoded.length == 12); + + // Encode the input value + final encoded = + Encrypter(salsa20).encrypt(json.encode(input), iv: IV(iv)).base64; + + // Prepend the initial value + return '$ivEncoded$encoded'; + } + + +} + +/// Salsa20 based decoder +class _EncryptDecoder extends Converter { + final Salsa20 salsa20; + + _EncryptDecoder(this.salsa20); + + @override + dynamic convert(String input) { + // Read the initial value that was prepended + assert(input.length >= 12); + final iv = base64.decode(input.substring(0, 12)); + + // Extract the real input + input = input.substring(12); + + // Decode the input + var decoded = json.decode(Encrypter(salsa20).decrypt64(input, iv: IV(iv))); + if (decoded is Map) { + return decoded.cast(); + } + return decoded; + } +} + +/// Salsa20 based Codec +class _EncryptCodec extends Codec { + late _EncryptEncoder _encoder; + late _EncryptDecoder _decoder; + + _EncryptCodec(Uint8List passwordBytes) { + var salsa20 = Salsa20(Key(passwordBytes)); + _encoder = _EncryptEncoder(salsa20); + _decoder = _EncryptDecoder(salsa20); + } + + @override + Converter get decoder => _decoder; + + @override + Converter get encoder => _encoder; +} + +const _encryptCodecSignature = 'EncryptType.salsa20'; + +SembastCodec getEncryptSembastCodec({required String password}) => SembastCodec( + signature: _encryptCodecSignature, + codec: _EncryptCodec(_generateEncryptPassword(password))); + +Uint8List _generateEncryptPassword(String password) { + var blob = Uint8List.fromList(md5.convert(utf8.encode(password)).bytes); + assert(blob.length == 16); + return blob; +} + +*/ diff --git a/lib/constants.dart b/lib/constants.dart index 89dfc05e..4a890f3b 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -4,7 +4,7 @@ const CHANNEL_NAME = 'technology.polygon.polygonid_flutter_sdk'; /// Database const databaseName = "polygonIdSdk.db"; -const sembastCodecName = "sembastCodec"; +//const sembastCodecName = "sembastCodec"; /// Key value Database const keyValueStoreName = "keyValueStore"; @@ -28,6 +28,12 @@ const claimStoreName = "claimStore"; /// Iden3comm const interactionStoreName = "interactionStore"; +/// DID profile info +const didProfileInfoStoreName = "didProfileInfoStore"; + +/// profiles store +const profilesStoreName = "profilesStore"; + /// State const stateAbiJson = ''' { diff --git a/lib/credential/domain/use_cases/add_did_profile_info_use_case.dart b/lib/credential/domain/use_cases/add_did_profile_info_use_case.dart new file mode 100644 index 00000000..e11072b5 --- /dev/null +++ b/lib/credential/domain/use_cases/add_did_profile_info_use_case.dart @@ -0,0 +1,33 @@ +import 'package:polygonid_flutter_sdk/common/domain/use_case.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; + +class AddDidProfileInfoParam { + final String genesisDid; + final String privateKey; + final String interactedWithDid; + final Map didProfileInfo; + + AddDidProfileInfoParam({ + required this.genesisDid, + required this.privateKey, + required this.interactedWithDid, + required this.didProfileInfo, + }); +} + +class AddDidProfileInfoUseCase + extends FutureUseCase { + final DidProfileInfoRepository _didProfileInfoRepository; + + AddDidProfileInfoUseCase(this._didProfileInfoRepository); + + @override + Future execute({required AddDidProfileInfoParam param}) { + return _didProfileInfoRepository.addDidProfileInfo( + didProfileInfo: param.didProfileInfo, + interactedDid: param.interactedWithDid, + genesisDid: param.genesisDid, + privateKey: param.privateKey, + ); + } +} diff --git a/lib/credential/domain/use_cases/get_claims_use_case.dart b/lib/credential/domain/use_cases/get_claims_use_case.dart index a384e7b2..42431332 100644 --- a/lib/credential/domain/use_cases/get_claims_use_case.dart +++ b/lib/credential/domain/use_cases/get_claims_use_case.dart @@ -27,13 +27,11 @@ class GetClaimsUseCase extends FutureUseCase> { final CredentialRepository _credentialRepository; final GetCurrentEnvDidIdentifierUseCase _getCurrentEnvDidIdentifierUseCase; - final GetIdentityUseCase _getIdentityUseCase; final StacktraceManager _stacktraceManager; GetClaimsUseCase( this._credentialRepository, this._getCurrentEnvDidIdentifierUseCase, - this._getIdentityUseCase, this._stacktraceManager, ); @@ -43,9 +41,9 @@ class GetClaimsUseCase // if profileNonce > 0 then return only credentials from that profile if (param.profileNonce >= GENESIS_PROFILE_NONCE) { // TODO check param.did and did from profile nonce are the same or return exception - String did = await _getCurrentEnvDidIdentifierUseCase.execute( + /*String did = await _getCurrentEnvDidIdentifierUseCase.execute( param: GetCurrentEnvDidIdentifierParam( - privateKey: param.privateKey, profileNonce: param.profileNonce)); + privateKey: param.privateKey, profileNonce: param.profileNonce));*/ return _credentialRepository .getClaims( filters: param.filters, diff --git a/lib/credential/domain/use_cases/get_did_profile_info_list_use_case.dart b/lib/credential/domain/use_cases/get_did_profile_info_list_use_case.dart new file mode 100644 index 00000000..79c9cdc1 --- /dev/null +++ b/lib/credential/domain/use_cases/get_did_profile_info_list_use_case.dart @@ -0,0 +1,34 @@ +import 'package:polygonid_flutter_sdk/common/domain/entities/filter_entity.dart'; +import 'package:polygonid_flutter_sdk/common/domain/use_case.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; + +class GetDidProfileInfoListParam { + final String genesisDid; + final String privateKey; + final List? filters; + + GetDidProfileInfoListParam({ + required this.genesisDid, + required this.privateKey, + required this.filters, + }); +} + +class GetDidProfileInfoListUseCase + extends FutureUseCase { + final DidProfileInfoRepository _didProfileInfoRepository; + + GetDidProfileInfoListUseCase( + this._didProfileInfoRepository, + ); + + @override + Future>> execute( + {required GetDidProfileInfoListParam param}) { + return _didProfileInfoRepository.getDidProfileInfoList( + filters: param.filters, + genesisDid: param.genesisDid, + privateKey: param.privateKey, + ); + } +} diff --git a/lib/credential/domain/use_cases/get_did_profile_info_use_case.dart b/lib/credential/domain/use_cases/get_did_profile_info_use_case.dart new file mode 100644 index 00000000..77043f27 --- /dev/null +++ b/lib/credential/domain/use_cases/get_did_profile_info_use_case.dart @@ -0,0 +1,33 @@ +import 'package:polygonid_flutter_sdk/common/domain/use_case.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; + +class GetDidProfileInfoParam { + final String genesisDid; + final String privateKey; + final String interactedWithDid; + + GetDidProfileInfoParam({ + required this.genesisDid, + required this.privateKey, + required this.interactedWithDid, + }); +} + +class GetDidProfileInfoUseCase + extends FutureUseCase> { + final DidProfileInfoRepository _didProfileInfoRepository; + + GetDidProfileInfoUseCase( + this._didProfileInfoRepository, + ); + + @override + Future> execute( + {required GetDidProfileInfoParam param}) { + return _didProfileInfoRepository.getDidProfileInfoByInteractedWithDid( + interactedWithDid: param.interactedWithDid, + genesisDid: param.genesisDid, + privateKey: param.privateKey, + ); + } +} diff --git a/lib/credential/domain/use_cases/remove_did_profile_info_use_case.dart b/lib/credential/domain/use_cases/remove_did_profile_info_use_case.dart new file mode 100644 index 00000000..c7d1208a --- /dev/null +++ b/lib/credential/domain/use_cases/remove_did_profile_info_use_case.dart @@ -0,0 +1,32 @@ +import 'package:polygonid_flutter_sdk/common/domain/use_case.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; + +class RemoveDidProfileInfoParam { + final String genesisDid; + final String privateKey; + final String interactedWithDid; + + RemoveDidProfileInfoParam({ + required this.genesisDid, + required this.privateKey, + required this.interactedWithDid, + }); +} + +class RemoveDidProfileInfoUseCase + extends FutureUseCase { + final DidProfileInfoRepository _didProfileInfoRepository; + + RemoveDidProfileInfoUseCase( + this._didProfileInfoRepository, + ); + + @override + Future execute({required RemoveDidProfileInfoParam param}) { + return _didProfileInfoRepository.removeDidProfileInfo( + interactedDid: param.interactedWithDid, + genesisDid: param.genesisDid, + privateKey: param.privateKey, + ); + } +} diff --git a/lib/iden3comm/data/data_sources/iden3_message_data_source.dart b/lib/iden3comm/data/data_sources/iden3_message_data_source.dart index 36561f66..e45df36c 100644 --- a/lib/iden3comm/data/data_sources/iden3_message_data_source.dart +++ b/lib/iden3comm/data/data_sources/iden3_message_data_source.dart @@ -2,8 +2,12 @@ import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:dio_cache_interceptor/dio_cache_interceptor.dart'; +import 'package:dio_cache_interceptor_hive_store/dio_cache_interceptor_hive_store.dart'; import 'package:encrypt/encrypt.dart'; import 'package:http/http.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:pointycastle/api.dart'; import 'package:pointycastle/asymmetric/api.dart'; import 'package:pointycastle/asymmetric/oaep.dart'; @@ -47,10 +51,26 @@ class Iden3MessageDataSource { "pushkey": pushToken, }; - Response publicKeyResponse = - await get(Uri.parse("$serviceEndpoint/public")); + Dio dio = Dio(); + /*final dir = await getApplicationDocumentsDirectory(); + final path = dir.path; + dio.interceptors.add( + DioCacheInterceptor( + options: CacheOptions( + store: HiveCacheStore(path), + policy: CachePolicy.refreshForceCache, + hitCacheOnErrorExcept: [], + maxStale: const Duration(days: 7), + priority: CachePriority.high, + ), + ), + );*/ + + var publicKeyResponse = + await dio.get(Uri.parse("$serviceEndpoint/public").toString()); + if (publicKeyResponse.statusCode == 200) { - String publicKeyPem = publicKeyResponse.body; + String publicKeyPem = publicKeyResponse.data; var publicKey = RSAKeyParser().parse(publicKeyPem) as RSAPublicKey; final encrypter = OAEPEncoding.withCustomDigest(() => SHA512Digest(), RSAEngine()); @@ -60,7 +80,7 @@ class Iden3MessageDataSource { return base64.encode(encrypted); } else { logger().d( - 'getPublicKey Error: code: ${publicKeyResponse.statusCode} msg: ${publicKeyResponse.body}'); + 'getPublicKey Error: code: ${publicKeyResponse.statusCode} msg: ${publicKeyResponse.data}'); throw NetworkException(publicKeyResponse); } } diff --git a/lib/iden3comm/data/data_sources/remote_iden3comm_data_source.dart b/lib/iden3comm/data/data_sources/remote_iden3comm_data_source.dart index a7698b5c..7f7bd408 100644 --- a/lib/iden3comm/data/data_sources/remote_iden3comm_data_source.dart +++ b/lib/iden3comm/data/data_sources/remote_iden3comm_data_source.dart @@ -105,11 +105,12 @@ class RemoteIden3commDataSource { if (schemaUrl.toLowerCase().startsWith("ipfs://")) { String fileHash = schemaUrl.replaceFirst("ipfs://", ""); schemaUrl = "https://ipfs.io/ipfs/$fileHash"; + } var schemaUri = Uri.parse(schemaUrl); - _stacktraceManager - .addTrace("[RemoteIden3commDataSource] fetchSchema url: $schemaUri"); + _stacktraceManager.addTrace( + "[RemoteIden3commDataSource] fetchSchema original url: $url"); Dio dio = Dio(); final dir = await getApplicationDocumentsDirectory(); diff --git a/lib/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart b/lib/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart new file mode 100644 index 00000000..d914539c --- /dev/null +++ b/lib/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart @@ -0,0 +1,133 @@ +import 'package:injectable/injectable.dart'; +import 'package:polygonid_flutter_sdk/common/data/data_sources/secure_identity_storage_data_source.dart'; +import 'package:sembast/sembast.dart'; +import 'package:polygonid_flutter_sdk/constants.dart'; + +@injectable +class SecureDidProfileInfoStoreRefWrapper { + final StoreRef> _store; + + SecureDidProfileInfoStoreRefWrapper( + @Named(didProfileInfoStoreName) this._store); + + Future>>> find( + DatabaseClient databaseClient, + {Finder? finder}) { + return _store.find(databaseClient, finder: finder); + } + + Future add(DatabaseClient database, Map value) { + return _store.add(database, value); + } + + Future?> get(DatabaseClient database, String key) { + return _store.record(key).get(database); + } + + Future> put( + DatabaseClient database, String key, Map value, + {bool? merge}) { + return _store.record(key).put(database, value, merge: merge); + } + + Future remove(DatabaseClient database, String id) { + return _store.record(id).delete(database); + } + + Future removeAll(DatabaseClient database) { + return _store.delete(database); + } +} + +class SecureStorageDidProfileInfoDataSource + extends SecureIdentityStorageDataSource { + final SecureDidProfileInfoStoreRefWrapper _storeRefWrapper; + + SecureStorageDidProfileInfoDataSource(this._storeRefWrapper); + + Future storeDidProfileInfo({ + required Map didProfileInfo, + required String interactedDid, + required String did, + required String privateKey, + }) { + return getDatabase(did: did, privateKey: privateKey) + .then((database) => database + .transaction( + (transaction) => storeDidProfileInfoTransact( + transaction: transaction, + didProfileInfo: didProfileInfo, + interactedDid: interactedDid, + ), + ) + .whenComplete(() => database.close())); + } + + Future storeDidProfileInfoTransact({ + required DatabaseClient transaction, + required Map didProfileInfo, + required String interactedDid, + }) async { + await _storeRefWrapper.put(transaction, interactedDid, didProfileInfo); + } + + Future removeDidProfileInfo({ + required String interactedDid, + required String did, + required String privateKey, + }) { + return getDatabase(did: did, privateKey: privateKey).then((database) => + database.transaction((transaction) => removeDidProfileInfoTransact( + transaction: transaction, + interactedDid: interactedDid, + ))); + } + + // For UT purpose + Future removeDidProfileInfoTransact( + {required DatabaseClient transaction, + required String interactedDid}) async { + await _storeRefWrapper.remove(transaction, interactedDid); + } + + Future removeAllDidProfileInfo( + {required String did, required String privateKey}) { + return getDatabase(did: did, privateKey: privateKey).then( + (database) => database.transaction( + (transaction) => + removeAllDidProfileInfoTransact(transaction: transaction), + ), + ); + } + + // For UT purpose + Future removeAllDidProfileInfoTransact( + {required DatabaseClient transaction}) async { + await _storeRefWrapper.removeAll(transaction); + } + + Future> getDidProfileInfosByInteractedWithDid({ + required String did, + required String privateKey, + required String interactedWithDid, + }) { + return getDatabase(did: did, privateKey: privateKey).then((database) => + _storeRefWrapper + .get(database, interactedWithDid) + .then((value) => value ?? {})); + //.whenComplete(() => database.close())); + } + + Future>> getDidProfileInfos({ + Filter? filter, + required String did, + required String privateKey, + }) { + return getDatabase(did: did, privateKey: privateKey).then((database) => + _storeRefWrapper + .find(database, finder: Finder(filter: filter)) + .then((snapshots) => + snapshots.map((snapshot) => snapshot.value).toList()) + .whenComplete(() => database.close())); + } +} diff --git a/lib/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart b/lib/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart new file mode 100644 index 00000000..7070b10c --- /dev/null +++ b/lib/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart @@ -0,0 +1,9 @@ +import 'package:polygonid_flutter_sdk/common/mappers/to_mapper.dart'; +import 'package:sembast/sembast.dart'; + +class DidProfileInfoInteractedDidFilterMapper extends ToMapper { + @override + Filter mapTo(String to) { + return Filter.equals('id', to); + } +} diff --git a/lib/iden3comm/data/repositories/did_profile_info_repository_impl.dart b/lib/iden3comm/data/repositories/did_profile_info_repository_impl.dart new file mode 100644 index 00000000..745ddf9d --- /dev/null +++ b/lib/iden3comm/data/repositories/did_profile_info_repository_impl.dart @@ -0,0 +1,86 @@ +import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/filters_mapper.dart'; +import 'package:polygonid_flutter_sdk/common/domain/entities/filter_entity.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; + +class DidProfileInfoRepositoryImpl implements DidProfileInfoRepository { + final SecureStorageDidProfileInfoDataSource + _secureStorageDidProfileInfoDataSource; + final FiltersMapper _filtersMapper; + final DidProfileInfoInteractedDidFilterMapper + _didProfileInfoInteractedDidFilterMapper; + + DidProfileInfoRepositoryImpl( + this._secureStorageDidProfileInfoDataSource, + this._filtersMapper, + this._didProfileInfoInteractedDidFilterMapper, + ); + + @override + Future addDidProfileInfo({ + required Map didProfileInfo, + required String interactedDid, + required String genesisDid, + required String privateKey, + }) { + return _secureStorageDidProfileInfoDataSource.storeDidProfileInfo( + didProfileInfo: didProfileInfo, + interactedDid: interactedDid, + did: genesisDid, + privateKey: privateKey, + ); + } + + @override + Future> getDidProfileInfo({ + required String genesisDid, + required String privateKey, + }) { + return _secureStorageDidProfileInfoDataSource + .getDidProfileInfos( + did: genesisDid, + privateKey: privateKey, + ) + .then((infos) => infos.isEmpty ? {} : infos.first); + } + + @override + Future>> getDidProfileInfoList({ + List? filters, + required String genesisDid, + required String privateKey, + }) { + return _secureStorageDidProfileInfoDataSource.getDidProfileInfos( + filter: filters == null ? null : _filtersMapper.mapTo(filters), + did: genesisDid, + privateKey: privateKey); + } + + @override + Future removeDidProfileInfo({ + required String interactedDid, + required String genesisDid, + required String privateKey, + }) { + return _secureStorageDidProfileInfoDataSource.removeDidProfileInfo( + interactedDid: interactedDid, + did: genesisDid, + privateKey: privateKey, + ); + } + + @override + Future> getDidProfileInfoByInteractedWithDid({ + required String interactedWithDid, + required String genesisDid, + required String privateKey, + }) { + return _secureStorageDidProfileInfoDataSource + .getDidProfileInfosByInteractedWithDid( + did: genesisDid, + privateKey: privateKey, + interactedWithDid: interactedWithDid, + ); + } +} diff --git a/lib/iden3comm/domain/repositories/did_profile_info_repository.dart b/lib/iden3comm/domain/repositories/did_profile_info_repository.dart new file mode 100644 index 00000000..a5049843 --- /dev/null +++ b/lib/iden3comm/domain/repositories/did_profile_info_repository.dart @@ -0,0 +1,33 @@ +import 'package:polygonid_flutter_sdk/common/domain/entities/filter_entity.dart'; + +abstract class DidProfileInfoRepository { + Future addDidProfileInfo({ + required Map didProfileInfo, + required String interactedDid, + required String genesisDid, + required String privateKey, + }); + + Future>> getDidProfileInfoList({ + List? filters, + required String genesisDid, + required String privateKey, + }); + + Future> getDidProfileInfo({ + required String genesisDid, + required String privateKey, + }); + + Future> getDidProfileInfoByInteractedWithDid({ + required String interactedWithDid, + required String genesisDid, + required String privateKey, + }); + + Future removeDidProfileInfo({ + required String interactedDid, + required String genesisDid, + required String privateKey, + }); +} diff --git a/lib/iden3comm/domain/use_cases/authenticate_use_case.dart b/lib/iden3comm/domain/use_cases/authenticate_use_case.dart index 5b5b8c7b..e673f3a6 100644 --- a/lib/iden3comm/domain/use_cases/authenticate_use_case.dart +++ b/lib/iden3comm/domain/use_cases/authenticate_use_case.dart @@ -77,7 +77,7 @@ class AuthenticateUseCase extends FutureUseCase { EnvEntity env = await _getEnvUseCase.execute(); _stacktraceManager.addTrace( - "[AuthenticateUseCase] _getEnvUseCase success\nenv: ${env.toString()}"); + "[AuthenticateUseCase] _getEnvUseCase success\nenv: ${env.blockchain} ${env.network}"); logger() .i("stopwatch after getEnvUseCase ${stopwatch.elapsedMilliseconds}"); diff --git a/lib/iden3comm/domain/use_cases/generate_iden3comm_proof_use_case.dart b/lib/iden3comm/domain/use_cases/generate_iden3comm_proof_use_case.dart index 940a6428..e18abad1 100644 --- a/lib/iden3comm/domain/use_cases/generate_iden3comm_proof_use_case.dart +++ b/lib/iden3comm/domain/use_cases/generate_iden3comm_proof_use_case.dart @@ -169,7 +169,7 @@ class GenerateIden3commProofUseCase ipfsNodeURL: param.ipfsNodeURL!) .toJson(); _stacktraceManager.addTrace( - "[GenerateIden3commProofUseCase] AtomicQueryInputsConfigParam: ${config.toString()}"); + "[GenerateIden3commProofUseCase] AtomicQueryInputsConfigParam: success"); } DidEntity didEntity = await _getDidUseCase.execute(param: param.did); @@ -202,8 +202,8 @@ class GenerateIden3commProofUseCase throw error; }); - _stacktraceManager.addTrace( - "[GenerateIden3commProofUseCase] atomicQueryInputs: ${res.toString()}"); + _stacktraceManager + .addTrace("[GenerateIden3commProofUseCase] atomicQueryInputs: success"); logger().i( "GENERATION PROOF calculateAtomicQueryInputs executed in ${stopwatch.elapsed}"); diff --git a/lib/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart b/lib/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart index c5566699..ca791939 100644 --- a/lib/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart +++ b/lib/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart @@ -114,7 +114,7 @@ class GetAuthInputsUseCase .then((inputs) { logger().i("[GetAuthInputsUseCase] Auth inputs: $inputs"); _stacktraceManager - .addTrace("[GetAuthInputsUseCase] Auth inputs: ${inputs.toString()}"); + .addTrace("[GetAuthInputsUseCase] Auth inputs: success"); return inputs; }).catchError((error) { logger().e("[GetAuthInputsUseCase] Error: $error"); diff --git a/lib/iden3comm/domain/use_cases/get_auth_token_use_case.dart b/lib/iden3comm/domain/use_cases/get_auth_token_use_case.dart index 3917f64a..67efda90 100644 --- a/lib/iden3comm/domain/use_cases/get_auth_token_use_case.dart +++ b/lib/iden3comm/domain/use_cases/get_auth_token_use_case.dart @@ -4,6 +4,7 @@ import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_ma import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_auth_challenge_use_case.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_jwz_use_case.dart'; +import 'package:polygonid_flutter_sdk/proof/domain/entities/zkproof_entity.dart'; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/load_circuit_use_case.dart'; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/prove_use_case.dart'; @@ -43,8 +44,49 @@ class GetAuthTokenUseCase extends FutureUseCase { ); @override - Future execute({required GetAuthTokenParam param}) { - return _getJWZUseCase + Future execute({required GetAuthTokenParam param}) async { + try { + String encodedJwz = await _getJWZUseCase.execute( + param: GetJWZParam(message: param.message)); + + String authChallenge = + await _getAuthChallengeUseCase.execute(param: encodedJwz); + + Uint8List authInputs = await _getAuthInputsUseCase.execute( + param: GetAuthInputsParam( + authChallenge, + param.genesisDid, + param.profileNonce, + param.privateKey, + ), + ); + + CircuitDataEntity circuit = + await _loadCircuitUseCase.execute(param: "authV2"); + + ZKProofEntity zkProofEntity = await _proveUseCase.execute( + param: ProveParam( + authInputs, + circuit, + ), + ); + + String authToken = await _getJWZUseCase.execute( + param: GetJWZParam( + message: param.message, + proof: zkProofEntity, + ), + ); + + return authToken; + } catch (error) { + logger().e("[GetAuthTokenUseCase] Error: $error"); + _stacktraceManager.addTrace("[GetAuthTokenUseCase] Error: $error"); + _stacktraceManager.addError("[GetAuthTokenUseCase] Error: $error"); + rethrow; + } + + /*return _getJWZUseCase .execute(param: GetJWZParam(message: param.message)) .then((encoded) => _getAuthChallengeUseCase.execute(param: encoded)) .then((challenge) => Future.wait([ @@ -68,6 +110,6 @@ class GetAuthTokenUseCase extends FutureUseCase { _stacktraceManager.addTrace("[GetAuthTokenUseCase] Error: $error"); _stacktraceManager.addError("[GetAuthTokenUseCase] Error: $error"); throw error; - }); + });*/ } } diff --git a/lib/iden3comm/domain/use_cases/get_iden3comm_proofs_use_case.dart b/lib/iden3comm/domain/use_cases/get_iden3comm_proofs_use_case.dart index 85cf64d3..d8dfc7b7 100644 --- a/lib/iden3comm/domain/use_cases/get_iden3comm_proofs_use_case.dart +++ b/lib/iden3comm/domain/use_cases/get_iden3comm_proofs_use_case.dart @@ -92,8 +92,8 @@ class GetIden3commProofsUseCase profileNonce: param.profileNonce, privateKey: param.privateKey, nonRevocationProofs: param.nonRevocationProofs ?? {})); - _stacktraceManager - .addTrace("[GetIden3commProofsUseCase] claims: $claims"); + _stacktraceManager.addTrace( + "[GetIden3commProofsUseCase] claims found: ${claims.length}"); logger().i( "STOPPE after _getIden3commClaimsUseCase ${stopwatch.elapsedMilliseconds}"); diff --git a/lib/iden3comm/domain/use_cases/get_jwz_use_case.dart b/lib/iden3comm/domain/use_cases/get_jwz_use_case.dart index 4c9e8029..74b0777d 100644 --- a/lib/iden3comm/domain/use_cases/get_jwz_use_case.dart +++ b/lib/iden3comm/domain/use_cases/get_jwz_use_case.dart @@ -23,25 +23,33 @@ class GetJWZUseCase extends FutureUseCase { ); @override - Future execute({required GetJWZParam param}) { - return Future.value(JWZEntity( - header: JWZHeader( - circuitId: "authV2", - crit: ["circuitId"], - typ: "application/iden3-zkp-json", - alg: "groth16"), - payload: JWZPayload(payload: param.message), - proof: param.proof)) - .then((jwz) => _iden3commRepository.encodeJWZ(jwz: jwz)) - .then((encoded) { - logger().i("[GetJWZUseCase] JWZ: $encoded"); - _stacktraceManager.addTrace("[GetJWZUseCase] JWZ: $encoded"); - return encoded; - }).catchError((error) { + Future execute({required GetJWZParam param}) async { + try { + JWZHeader header = JWZHeader( + circuitId: "authV2", + crit: ["circuitId"], + typ: "application/iden3-zkp-json", + alg: "groth16", + ); + + JWZPayload payload = JWZPayload(payload: param.message); + + JWZEntity jwz = JWZEntity( + header: header, + payload: payload, + proof: param.proof, + ); + + String encodedJwz = await _iden3commRepository.encodeJWZ(jwz: jwz); + + logger().i("[GetJWZUseCase] JWZ: $encodedJwz"); + _stacktraceManager.addTrace("[GetJWZUseCase] JWZ: $encodedJwz"); + return encodedJwz; + } catch (error) { logger().e("[GetJWZUseCase] Error: $error"); _stacktraceManager.addTrace("[GetJWZUseCase] Error: $error"); _stacktraceManager.addError("[GetJWZUseCase] Error: $error"); - throw error; - }); + rethrow; + } } } diff --git a/lib/identity/data/data_sources/encryption_db_data_source.dart b/lib/identity/data/data_sources/encryption_db_data_source.dart index d8916667..696b21a1 100644 --- a/lib/identity/data/data_sources/encryption_db_data_source.dart +++ b/lib/identity/data/data_sources/encryption_db_data_source.dart @@ -16,7 +16,8 @@ class EncryptionDbDataSource { param1: key, ); - final decrypted = encrypter.decrypt64(encryptedData, iv: IV.allZerosOfLength(16)); + final decrypted = + encrypter.decrypt64(encryptedData, iv: IV.allZerosOfLength(16)); Map decryptedDbMap = jsonDecode(decrypted); return decryptedDbMap; diff --git a/lib/identity/data/data_sources/secure_storage_profiles_data_source.dart b/lib/identity/data/data_sources/secure_storage_profiles_data_source.dart new file mode 100644 index 00000000..1460fe5f --- /dev/null +++ b/lib/identity/data/data_sources/secure_storage_profiles_data_source.dart @@ -0,0 +1,91 @@ +import 'package:injectable/injectable.dart'; +import 'package:polygonid_flutter_sdk/common/data/data_sources/secure_identity_storage_data_source.dart'; +import 'package:sembast/sembast.dart'; +import 'package:polygonid_flutter_sdk/constants.dart'; + +@injectable +class SecureStorageProfilesStoreRefWrapper { + final StoreRef> _store; + + SecureStorageProfilesStoreRefWrapper(@Named(profilesStoreName) this._store); + + Future>>> find( + DatabaseClient databaseClient, + {Finder? finder}) { + return _store.find(databaseClient, finder: finder); + } + + Future add(DatabaseClient database, Map value) { + return _store.add(database, value); + } + + Future?> get(DatabaseClient database, String key) { + return _store.record(key).get(database); + } + + Future> put( + DatabaseClient database, String key, Map value, + {bool? merge}) { + return _store.record(key).put(database, value, merge: merge); + } + + Future remove(DatabaseClient database, String id) { + return _store.record(id).delete(database); + } + + Future removeAll(DatabaseClient database) { + return _store.delete(database); + } +} + +class SecureStorageProfilesDataSource extends SecureIdentityStorageDataSource { + final SecureStorageProfilesStoreRefWrapper _storeRefWrapper; + + SecureStorageProfilesDataSource(this._storeRefWrapper); + + Future storeProfiles({ + required Map profiles, + required String did, + required String privateKey, + }) { + return getDatabase(did: did, privateKey: privateKey) + .then((database) => database + .transaction( + (transaction) => storeProfilesTransact( + transaction: transaction, + profiles: profiles, + ), + ) + .whenComplete(() => database.close())); + } + + Future storeProfilesTransact({ + required Transaction transaction, + required Map profiles, + }) { + Map profilesJson = + profiles.map((key, value) => MapEntry(key.toString(), value)); + return _storeRefWrapper.put( + transaction, + "profiles", + profilesJson, + ); + } + + Future> getProfiles({ + required String did, + required String privateKey, + }) { + return getDatabase(did: did, privateKey: privateKey) + .then((database) => _storeRefWrapper.find(database).then((snapshots) { + if (snapshots.isEmpty) { + return {BigInt.zero: did}; + } + Map snapshot = + snapshots.map((snapshot) => snapshot.value).first; + Map profiles = snapshot.map( + (key, value) => MapEntry(BigInt.parse(key), value as String)); + return profiles; + }).whenComplete(() => database.close())); + } +} diff --git a/lib/identity/data/data_sources/storage_identity_data_source.dart b/lib/identity/data/data_sources/storage_identity_data_source.dart index 95b44517..71df21a7 100644 --- a/lib/identity/data/data_sources/storage_identity_data_source.dart +++ b/lib/identity/data/data_sources/storage_identity_data_source.dart @@ -1,5 +1,7 @@ import 'package:injectable/injectable.dart'; import 'package:polygonid_flutter_sdk/common/data/data_sources/secure_identity_storage_data_source.dart'; +//import 'package:polygonid_flutter_sdk/common/utils/encrypt_codec.dart'; +import 'package:polygonid_flutter_sdk/common/utils/encrypt_sembast_codec.dart'; import 'package:polygonid_flutter_sdk/constants.dart'; import 'package:polygonid_flutter_sdk/identity/data/dtos/identity_dto.dart'; import 'package:polygonid_flutter_sdk/identity/domain/exceptions/identity_exceptions.dart'; @@ -79,6 +81,7 @@ class StorageIdentityDataSource extends SecureIdentityStorageDataSource { } Future removeIdentity({required String did}) { + //clearDatabaseCache(); // TODO: get privateKey from param and obtain publicKey // from identity and encrypt/decrypt a msg to allow removing the identity return _database.transaction((transaction) => @@ -109,15 +112,15 @@ class StorageIdentityDataSource extends SecureIdentityStorageDataSource { required String destinationPath, required String privateKey, }) async { - SembastCodec codec = getItSdk.get(param1: privateKey); + SembastCodec codec = getEncryptSembastCodec(password: privateKey); await importDatabase( exportableDb, - - ///FIXME: should be injected databaseFactoryIo, destinationPath, codec: codec, ); + + //clearDatabaseCache(); } } diff --git a/lib/identity/data/repositories/identity_repository_impl.dart b/lib/identity/data/repositories/identity_repository_impl.dart index 4f17cc2c..155f2933 100644 --- a/lib/identity/data/repositories/identity_repository_impl.dart +++ b/lib/identity/data/repositories/identity_repository_impl.dart @@ -7,6 +7,7 @@ import 'package:polygonid_flutter_sdk/identity/data/data_sources/lib_pidcore_ide import 'package:polygonid_flutter_sdk/identity/data/data_sources/local_contract_files_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/remote_identity_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/rpc_data_source.dart'; +import 'package:polygonid_flutter_sdk/identity/data/data_sources/secure_storage_profiles_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/storage_identity_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/wallet_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/dtos/hash_dto.dart'; @@ -42,6 +43,7 @@ class IdentityRepositoryImpl extends IdentityRepository { final StateIdentifierMapper _stateIdentifierMapper; final NodeMapper _nodeMapper; final EncryptionKeyMapper _encryptionKeyMapper; + final SecureStorageProfilesDataSource _secureStorageProfilesDataSource; IdentityRepositoryImpl( this._walletDataSource, @@ -60,6 +62,7 @@ class IdentityRepositoryImpl extends IdentityRepository { this._stateIdentifierMapper, this._nodeMapper, this._encryptionKeyMapper, + this._secureStorageProfilesDataSource, ); @override @@ -246,4 +249,27 @@ class IdentityRepositoryImpl extends IdentityRepository { privateKey: privateKey, ); } + + @override + Future> getProfiles({ + required String did, + required String privateKey, + }) { + return _secureStorageProfilesDataSource.getProfiles( + did: did, + privateKey: privateKey, + ); + } + + @override + Future putProfiles( + {required String did, + required String privateKey, + required Map profiles}) { + return _secureStorageProfilesDataSource.storeProfiles( + did: did, + privateKey: privateKey, + profiles: profiles, + ); + } } diff --git a/lib/identity/domain/repositories/identity_repository.dart b/lib/identity/domain/repositories/identity_repository.dart index 96ef7c2d..a3ff49f1 100644 --- a/lib/identity/domain/repositories/identity_repository.dart +++ b/lib/identity/domain/repositories/identity_repository.dart @@ -55,4 +55,15 @@ abstract class IdentityRepository { required String privateKey, required String encryptedDb, }); + + Future putProfiles({ + required String did, + required String privateKey, + required Map profiles, + }); + + Future> getProfiles({ + required String did, + required String privateKey, + }); } diff --git a/lib/identity/domain/use_cases/identity/restore_identity_use_case.dart b/lib/identity/domain/use_cases/identity/restore_identity_use_case.dart index 7fd136be..bb204f07 100644 --- a/lib/identity/domain/use_cases/identity/restore_identity_use_case.dart +++ b/lib/identity/domain/use_cases/identity/restore_identity_use_case.dart @@ -8,6 +8,7 @@ import 'package:polygonid_flutter_sdk/identity/domain/repositories/identity_repo import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_current_env_did_identifier_use_case.dart'; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/add_identity_use_case.dart'; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/get_identity_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/restore_profiles_use_case.dart'; class RestoreIdentityParam { final String genesisDid; @@ -27,12 +28,14 @@ class RestoreIdentityUseCase final GetIdentityUseCase _getIdentityUseCase; final IdentityRepository _identityRepository; final GetCurrentEnvDidIdentifierUseCase _getCurrentEnvDidIdentifierUseCase; + final RestoreProfilesUseCase _restoreProfilesUseCase; RestoreIdentityUseCase( this._addIdentityUseCase, this._getIdentityUseCase, this._identityRepository, this._getCurrentEnvDidIdentifierUseCase, + this._restoreProfilesUseCase, ); @override @@ -60,20 +63,16 @@ class RestoreIdentityUseCase try { if (param.encryptedDb != null) { - await _identityRepository - .importIdentity( + await _identityRepository.importIdentity( did: privateIdentity.did, privateKey: param.privateKey, encryptedDb: param.encryptedDb!, - ) - .then((_) { - logger().i( - "[ImportProfileUseCase] Profile for did ${privateIdentity.did} has been imported"); - }).catchError((error) { - logger().e("[ImportProfileUseCase] Error: $error"); - - throw error; - }); + ); + await _restoreProfilesUseCase.execute( + param: RestoreProfilesParam( + privateIdentity.did, + param.privateKey, + )); } logger().i( diff --git a/lib/identity/domain/use_cases/identity/update_identity_use_case.dart b/lib/identity/domain/use_cases/identity/update_identity_use_case.dart index 2d74883d..e0c08f9f 100644 --- a/lib/identity/domain/use_cases/identity/update_identity_use_case.dart +++ b/lib/identity/domain/use_cases/identity/update_identity_use_case.dart @@ -45,6 +45,13 @@ class UpdateIdentityUseCase if (identity is PrivateIdentityEntity) { identity.profiles.clear(); identity.profiles.addAll(param.profiles); + // we save the profiles in a separate store ref + await _identityRepository.putProfiles( + did: param.genesisDid, + privateKey: param.privateKey, + profiles: param.profiles, + ); + // then we update the identity await _identityRepository.storeIdentity(identity: identity); } else { throw InvalidPrivateKeyException(param.privateKey); diff --git a/lib/identity/domain/use_cases/profile/restore_profiles_use_case.dart b/lib/identity/domain/use_cases/profile/restore_profiles_use_case.dart new file mode 100644 index 00000000..5706fa8f --- /dev/null +++ b/lib/identity/domain/use_cases/profile/restore_profiles_use_case.dart @@ -0,0 +1,36 @@ +import 'package:polygonid_flutter_sdk/common/domain/use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/repositories/identity_repository.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/update_identity_use_case.dart'; + +class RestoreProfilesParam { + final String genesisDid; + final String privateKey; + + RestoreProfilesParam(this.genesisDid, this.privateKey); +} + +class RestoreProfilesUseCase extends FutureUseCase { + final IdentityRepository _identityRepository; + final UpdateIdentityUseCase _updateIdentityUseCase; + + RestoreProfilesUseCase( + this._identityRepository, + this._updateIdentityUseCase, + ); + + @override + Future execute({required RestoreProfilesParam param}) async { + Map restoredProfiles = + await _identityRepository.getProfiles( + did: param.genesisDid, + privateKey: param.privateKey, + ); + + await _updateIdentityUseCase.execute( + param: UpdateIdentityParam( + privateKey: param.privateKey, + genesisDid: param.genesisDid, + profiles: restoredProfiles, + )); + } +} diff --git a/lib/identity/domain/use_cases/smt/create_identity_state_use_case.dart b/lib/identity/domain/use_cases/smt/create_identity_state_use_case.dart index d53f1a1b..5c872afc 100644 --- a/lib/identity/domain/use_cases/smt/create_identity_state_use_case.dart +++ b/lib/identity/domain/use_cases/smt/create_identity_state_use_case.dart @@ -1,4 +1,5 @@ import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_manager.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/entities/node_entity.dart'; import 'package:polygonid_flutter_sdk/identity/domain/entities/tree_type.dart'; import 'package:polygonid_flutter_sdk/identity/domain/repositories/smt_repository.dart'; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_identity_auth_claim_use_case.dart'; @@ -33,6 +34,47 @@ class CreateIdentityStateUseCase @override Future execute({required CreateIdentityStateParam param}) async { + try { + await _smtRepository.createSMT( + maxLevels: 40, + type: TreeType.claims, + did: param.did, + privateKey: param.privateKey, + ); + await _smtRepository.createSMT( + maxLevels: 40, + type: TreeType.revocation, + did: param.did, + privateKey: param.privateKey, + ); + await _smtRepository.createSMT( + maxLevels: 40, + type: TreeType.roots, + did: param.did, + privateKey: param.privateKey, + ); + + List authClaim = + await _getIdentityAuthClaimUseCase.execute(param: param.privateKey); + NodeEntity authClaimNode = + await _identityRepository.getAuthClaimNode(children: authClaim); + await _smtRepository.addLeaf( + leaf: authClaimNode, + type: TreeType.claims, + did: param.did, + privateKey: param.privateKey, + ); + _stacktraceManager.addTrace("[CreateIdentityStateUseCase] State created"); + logger().i("[CreateIdentityStateUseCase] State created with: $param"); + + return; + } catch (error) { + _stacktraceManager.addTrace("[CreateIdentityStateUseCase] Error: $error"); + _stacktraceManager.addError("[CreateIdentityStateUseCase] Error: $error"); + logger().e("[CreateIdentityStateUseCase] Error: $error"); + rethrow; + } + /*return; return Future.wait( [ _smtRepository.createSMT( @@ -79,6 +121,6 @@ class CreateIdentityStateUseCase _stacktraceManager.addError("[CreateIdentityStateUseCase] Error: $error"); logger().e("[CreateIdentityStateUseCase] Error: $error"); throw error; - }); + });*/ } } diff --git a/lib/proof/data/repositories/proof_repository_impl.dart b/lib/proof/data/repositories/proof_repository_impl.dart index 2b6d08b7..dbe7d509 100644 --- a/lib/proof/data/repositories/proof_repository_impl.dart +++ b/lib/proof/data/repositories/proof_repository_impl.dart @@ -34,6 +34,7 @@ import 'package:polygonid_flutter_sdk/proof/domain/entities/mtproof_entity.dart' import 'package:polygonid_flutter_sdk/proof/domain/entities/zkproof_entity.dart'; import 'package:polygonid_flutter_sdk/proof/domain/exceptions/proof_generation_exceptions.dart'; import 'package:polygonid_flutter_sdk/proof/domain/repositories/proof_repository.dart'; +import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/auth_v2/witness_auth.dart'; class ProofRepositoryImpl extends ProofRepository { final WitnessDataSource _witnessDataSource; @@ -116,6 +117,22 @@ class ProofRepositoryImpl extends ProofRepository { nonRevProofMap = _authProofMapper.mapTo(nonRevProof); } + _stacktraceManager.addTrace("getProofInputs id: $id"); + _stacktraceManager.addTrace("getProofInputs profileNonce: $profileNonce"); + _stacktraceManager.addTrace( + "getProofInputs claimSubjectProfileNonce: $claimSubjectProfileNonce"); + _stacktraceManager.addTrace("getProofInputs authClaim: $authClaim"); + _stacktraceManager.addTrace("getProofInputs incProof: $incProofMap"); + _stacktraceManager.addTrace("getProofInputs nonRevProof: $nonRevProofMap"); + _stacktraceManager.addTrace("getProofInputs gistProof: $gistProofMap"); + _stacktraceManager.addTrace("getProofInputs treeState: $treeState"); + _stacktraceManager.addTrace("getProofInputs challenge: $challenge"); + _stacktraceManager.addTrace("getProofInputs signature: $signature"); + _stacktraceManager + .addTrace("getProofInputs credential: ${credentialDto.info}"); + _stacktraceManager.addTrace("getProofInputs request: $proofScopeRequest"); + _stacktraceManager.addTrace("getProofInputs circuitId: $circuitId"); + String? res = await _libPolygonIdCoreProofDataSource .getProofInputs( id: id, @@ -140,8 +157,10 @@ class ProofRepositoryImpl extends ProofRepository { }); if (res.isNotEmpty) { + _stacktraceManager.addTrace("atomicQueryInputs result: success"); Uint8List inputsJsonBytes; dynamic inputsJson = json.decode(res); + _stacktraceManager.addTrace("inputJsonType: ${inputsJson.runtimeType}"); if (inputsJson is Map) { //Map inputs = json.decode(res); Uint8List inputsJsonBytes = Uint8ArrayUtils.uint8ListfromString( @@ -163,30 +182,27 @@ class ProofRepositoryImpl extends ProofRepository { Future calculateWitness( CircuitDataEntity circuitData, Uint8List atomicQueryInputs, - ) { + ) async { WitnessParam witnessParam = WitnessParam(wasm: circuitData.datFile, json: atomicQueryInputs); _stacktraceManager.addTrace( "[calculateWitness] circuitData.circuitId ${circuitData.circuitId}"); - return _witnessDataSource - .computeWitness( - type: _circuitTypeMapper.mapTo(circuitData.circuitId), - param: witnessParam) - .then((witness) { + CircuitType circuitType = _circuitTypeMapper.mapTo(circuitData.circuitId); + try { + Uint8List? witness = await _witnessDataSource.computeWitness( + type: circuitType, + param: witnessParam, + ); if (witness == null) { - _stacktraceManager.addTrace("[calculateWitness] NullWitnessException"); throw NullWitnessException(circuitData.circuitId); + } else { + return witness; } - - return witness; - }).catchError( - (error) { - _stacktraceManager - .addTrace("[calculateWitness] NullWitnessException $error"); - throw NullWitnessException(circuitData.circuitId); - }, - ); + } catch (e) { + _stacktraceManager.addTrace("[calculateWitness] NullWitnessException"); + throw NullWitnessException(circuitData.circuitId); + } } @override diff --git a/lib/proof/domain/use_cases/load_circuit_use_case.dart b/lib/proof/domain/use_cases/load_circuit_use_case.dart index 878fa593..7d8688b4 100644 --- a/lib/proof/domain/use_cases/load_circuit_use_case.dart +++ b/lib/proof/domain/use_cases/load_circuit_use_case.dart @@ -15,17 +15,15 @@ class LoadCircuitUseCase extends FutureUseCase { @override Future execute({required String param}) async { - return _proofRepository.loadCircuitFiles(param).then((circuit) { - logger().i("[LoadCircuitUseCase] Circuit: $circuit"); - _stacktraceManager.addTrace("[LoadCircuitUseCase] Circuit"); - - return circuit; - }).catchError((error) { + try { + CircuitDataEntity circuitDataEntity = + await _proofRepository.loadCircuitFiles(param); + return circuitDataEntity; + } catch (error) { logger().e("[LoadCircuitUseCase] Error: $error"); _stacktraceManager.addTrace("[LoadCircuitUseCase] Error: $error"); _stacktraceManager.addError("[LoadCircuitUseCase] Error: $error"); - - throw error; - }); + rethrow; + } } } diff --git a/lib/proof/domain/use_cases/prove_use_case.dart b/lib/proof/domain/use_cases/prove_use_case.dart index 88989df7..095a6985 100644 --- a/lib/proof/domain/use_cases/prove_use_case.dart +++ b/lib/proof/domain/use_cases/prove_use_case.dart @@ -25,21 +25,28 @@ class ProveUseCase extends FutureUseCase { @override Future execute({required ProveParam param}) async { - // Calculate witness - Uint8List wtnsBytes = await _proofRepository.calculateWitness( - param.circuitData, param.inputs); + try { + // Calculate witness + Uint8List wtnsBytes = await _proofRepository.calculateWitness( + param.circuitData, + param.inputs, + ); + + // Generate proof + ZKProofEntity zkProofEntity = await _proofRepository.prove( + param.circuitData, + wtnsBytes, + ); - // Generate proof - return _proofRepository.prove(param.circuitData, wtnsBytes).then((proof) { _stacktraceManager.addTrace("[ProveUseCase] proof"); - logger().i("[ProveUseCase] proof: $proof"); + logger().i("[ProveUseCase] proof: $zkProofEntity"); - return proof; - }).catchError((error) { + return zkProofEntity; + } catch (error) { _stacktraceManager.addTrace("[ProveUseCase] Error: $error"); _stacktraceManager.addError("[ProveUseCase] Error: $error"); logger().e("[ProveUseCase] Error: $error"); - throw error; - }); + rethrow; + } } } diff --git a/lib/proof/libs/witnesscalc/auth_v2/witness_auth.dart b/lib/proof/libs/witnesscalc/auth_v2/witness_auth.dart index bb73d759..93bdb152 100644 --- a/lib/proof/libs/witnesscalc/auth_v2/witness_auth.dart +++ b/lib/proof/libs/witnesscalc/auth_v2/witness_auth.dart @@ -6,7 +6,6 @@ import 'dart:typed_data'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; import 'package:injectable/injectable.dart'; -import 'package:polygonid_flutter_sdk/common/domain/domain_logger.dart'; import 'native_witness_auth_v2.dart'; @@ -23,16 +22,12 @@ class WitnessAuthV2Lib { Future calculateWitnessAuth( Uint8List wasmBytes, Uint8List inputsJsonBytes) async { - Stopwatch stopwatch = Stopwatch()..start(); - logger().i("CALCULATE WITNESS AUTH stopwatch started"); int circuitSize = wasmBytes.length; ffi.Pointer circuitBuffer = malloc(circuitSize); final data = wasmBytes; for (int i = 0; i < circuitSize; i++) { circuitBuffer[i] = data[i]; } - logger().i( - "CALCULATE WITNESS AUTH circuitBuffer ${stopwatch.elapsedMilliseconds}"); int jsonSize = inputsJsonBytes.length; ffi.Pointer jsonBuffer = malloc(jsonSize); @@ -40,14 +35,10 @@ class WitnessAuthV2Lib { for (int i = 0; i < jsonSize; i++) { jsonBuffer[i] = data2[i]; } - logger().i( - "CALCULATE WITNESS AUTH jsonBuffer ${stopwatch.elapsedMilliseconds}"); ffi.Pointer wtnsSize = malloc(); wtnsSize.value = 4 * 1024 * 1024; ffi.Pointer wtnsBuffer = malloc(wtnsSize.value); - logger().i( - "CALCULATE WITNESS AUTH wtnsBuffer ${stopwatch.elapsedMilliseconds}"); int errorMaxSize = 256; ffi.Pointer errorMsg = malloc(errorMaxSize); @@ -61,8 +52,6 @@ class WitnessAuthV2Lib { wtnsSize, errorMsg, errorMaxSize); - logger() - .i("CALCULATE WITNESS AUTH result ${stopwatch.elapsedMilliseconds}"); if (result == WITNESSCALC_OK) { Uint8List wtnsBytes = Uint8List(wtnsSize.value); @@ -73,12 +62,82 @@ class WitnessAuthV2Lib { } else if (result == WITNESSCALC_ERROR) { ffi.Pointer jsonString = errorMsg.cast(); String errormsg = jsonString.toDartString(); - - logger().e("$result: ${result.toString()}. Error: $errormsg"); + if (kDebugMode) { + print("$result: ${result.toString()}. Error: $errormsg"); + } } else if (result == WITNESSCALC_ERROR_SHORT_BUFFER) { - logger().e( - "$result: ${result.toString()}. Error: Short buffer for proof or public"); + if (kDebugMode) { + print( + "$result: ${result.toString()}. Error: Short buffer for proof or public"); + } } return null; } + + /*Future calculateWitnessAuth(Uint8List wasmBytes, Uint8List inputsJsonBytes) async { + print("calculateWitnessAuth ffi"); + int circuitSize = wasmBytes.length; + ffi.Pointer circuitBuffer = calloc(circuitSize); + print("circuitbuffer: $circuitBuffer"); + for (int i = 0; i < circuitSize; i++) { + circuitBuffer[i] = wasmBytes[i]; + } + + int jsonSize = inputsJsonBytes.length; + ffi.Pointer jsonBuffer = calloc(jsonSize); + print("jsonBuffer: $jsonBuffer"); + for (int i = 0; i < jsonSize; i++) { + jsonBuffer[i] = inputsJsonBytes[i]; + } + + ffi.Pointer wtnsSize = calloc(); + wtnsSize.value = 4 * 1024 * 1024; + ffi.Pointer wtnsBuffer = calloc(wtnsSize.value); + print("wtnsBuffer: $wtnsBuffer"); + + int errorMaxSize = 256; + ffi.Pointer errorMsg = calloc(errorMaxSize); + print("errorMsg: $errorMsg"); + + int result = _nativeWitnessAuthV2Lib.witnesscalc_authV2( + circuitBuffer, + circuitSize, + jsonBuffer, + jsonSize, + wtnsBuffer, + wtnsSize, + errorMsg, + errorMaxSize); + print("result: $result"); + + Uint8List? wtnsBytes; + if (result == WITNESSCALC_OK) { + print("WITNESSCALC_OK"); + wtnsBytes = Uint8List(wtnsSize.value); + for (int i = 0; i < wtnsSize.value; i++) { + wtnsBytes[i] = wtnsBuffer[i]; + } + } else if (result == WITNESSCALC_ERROR) { + print("WITNESSCALC_ERROR"); + ffi.Pointer jsonString = errorMsg.cast(); + String errormsg = jsonString.toDartString(); + if (kDebugMode) { + print("$result: ${result.toString()}. Error: $errormsg"); + } + } else if (result == WITNESSCALC_ERROR_SHORT_BUFFER) { + print("WITNESSCALC_ERROR_SHORT_BUFFER"); + if (kDebugMode) { + print("$result: ${result.toString()}. Error: Short buffer for proof or public"); + } + } + + // Free the allocated memory + calloc.free(circuitBuffer); + calloc.free(jsonBuffer); + calloc.free(wtnsBuffer); + calloc.free(errorMsg); + calloc.free(wtnsSize); + + return wtnsBytes; + }*/ } diff --git a/lib/sdk/di/injector.config.dart b/lib/sdk/di/injector.config.dart index c9a328bd..b4a41e28 100644 --- a/lib/sdk/di/injector.config.dart +++ b/lib/sdk/di/injector.config.dart @@ -9,381 +9,402 @@ // coverage:ignore-file // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:io' as _i15; +import 'dart:io' as _i16; -import 'package:archive/archive.dart' as _i78; -import 'package:dio/dio.dart' as _i14; -import 'package:encrypt/encrypt.dart' as _i16; +import 'package:archive/archive.dart' as _i79; +import 'package:dio/dio.dart' as _i15; +import 'package:encrypt/encrypt.dart' as _i17; import 'package:flutter/services.dart' as _i3; import 'package:get_it/get_it.dart' as _i1; import 'package:http/http.dart' as _i11; import 'package:injectable/injectable.dart' as _i2; -import 'package:logger/logger.dart' as _i37; -import 'package:package_info_plus/package_info_plus.dart' as _i42; +import 'package:logger/logger.dart' as _i38; +import 'package:package_info_plus/package_info_plus.dart' as _i43; import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/env_mapper.dart' - as _i19; -import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/filter_mapper.dart' as _i20; -import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/filters_mapper.dart' +import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/filter_mapper.dart' as _i21; +import 'package:polygonid_flutter_sdk/common/data/data_sources/mappers/filters_mapper.dart' + as _i22; import 'package:polygonid_flutter_sdk/common/data/data_sources/package_info_datasource.dart' - as _i43; + as _i44; import 'package:polygonid_flutter_sdk/common/data/data_sources/storage_key_value_data_source.dart' - as _i90; + as _i92; import 'package:polygonid_flutter_sdk/common/data/repositories/config_repository_impl.dart' - as _i104; + as _i108; import 'package:polygonid_flutter_sdk/common/data/repositories/package_info_repository_impl.dart' - as _i44; -import 'package:polygonid_flutter_sdk/common/domain/domain_logger.dart' as _i51; + as _i45; +import 'package:polygonid_flutter_sdk/common/domain/domain_logger.dart' as _i52; import 'package:polygonid_flutter_sdk/common/domain/entities/env_entity.dart' - as _i69; + as _i70; import 'package:polygonid_flutter_sdk/common/domain/repositories/config_repository.dart' - as _i113; + as _i118; import 'package:polygonid_flutter_sdk/common/domain/repositories/package_info_repository.dart' - as _i98; + as _i100; import 'package:polygonid_flutter_sdk/common/domain/use_cases/get_env_use_case.dart' - as _i117; + as _i125; import 'package:polygonid_flutter_sdk/common/domain/use_cases/get_package_name_use_case.dart' - as _i106; + as _i111; import 'package:polygonid_flutter_sdk/common/domain/use_cases/set_env_use_case.dart' - as _i127; + as _i136; import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_manager.dart' - as _i63; + as _i64; import 'package:polygonid_flutter_sdk/common/libs/polygonidcore/pidcore_base.dart' - as _i45; + as _i46; import 'package:polygonid_flutter_sdk/credential/data/credential_repository_impl.dart' - as _i105; + as _i109; import 'package:polygonid_flutter_sdk/credential/data/data_sources/lib_pidcore_credential_data_source.dart' - as _i91; + as _i93; import 'package:polygonid_flutter_sdk/credential/data/data_sources/local_claim_data_source.dart' - as _i95; + as _i97; import 'package:polygonid_flutter_sdk/credential/data/data_sources/remote_claim_data_source.dart' - as _i100; + as _i102; import 'package:polygonid_flutter_sdk/credential/data/data_sources/storage_claim_data_source.dart' - as _i83; + as _i84; import 'package:polygonid_flutter_sdk/credential/data/mappers/claim_info_mapper.dart' as _i9; import 'package:polygonid_flutter_sdk/credential/data/mappers/claim_mapper.dart' - as _i82; + as _i83; import 'package:polygonid_flutter_sdk/credential/data/mappers/claim_state_mapper.dart' as _i10; import 'package:polygonid_flutter_sdk/credential/data/mappers/id_filter_mapper.dart' - as _i27; + as _i28; import 'package:polygonid_flutter_sdk/credential/data/mappers/revocation_status_mapper.dart' - as _i61; + as _i62; import 'package:polygonid_flutter_sdk/credential/domain/repositories/credential_repository.dart' - as _i114; + as _i119; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/add_did_profile_info_use_case.dart' + as _i138; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/generate_non_rev_proof_use_case.dart' - as _i159; + as _i169; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_auth_claim_use_case.dart' - as _i115; + as _i121; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_claim_revocation_nonce_use_case.dart' - as _i116; + as _i122; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_claim_revocation_status_use_case.dart' - as _i163; + as _i173; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_claims_use_case.dart' - as _i181; + as _i191; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_did_profile_info_list_use_case.dart' + as _i123; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_did_profile_info_use_case.dart' + as _i124; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_non_rev_proof_use_case.dart' - as _i162; + as _i172; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/remove_all_claims_use_case.dart' - as _i123; + as _i131; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/remove_claims_use_case.dart' - as _i124; + as _i132; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/remove_did_profile_info_use_case.dart' + as _i133; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/save_claims_use_case.dart' - as _i126; + as _i135; import 'package:polygonid_flutter_sdk/credential/domain/use_cases/update_claim_use_case.dart' - as _i128; + as _i137; import 'package:polygonid_flutter_sdk/credential/libs/polygonidcore/pidcore_credential.dart' - as _i46; + as _i47; import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/iden3_message_data_source.dart' - as _i28; + as _i29; import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/lib_pidcore_iden3comm_data_source.dart' - as _i92; + as _i94; import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/remote_iden3comm_data_source.dart' - as _i101; -import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/secure_storage_interaction_data_source.dart' as _i103; +import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/secure_storage_did_profile_info_data_source.dart' + as _i105; +import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/secure_storage_interaction_data_source.dart' + as _i106; import 'package:polygonid_flutter_sdk/iden3comm/data/data_sources/storage_interaction_data_source.dart' - as _i89; + as _i91; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/auth_inputs_mapper.dart' as _i4; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/auth_proof_mapper.dart' - as _i79; + as _i80; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/auth_response_mapper.dart' as _i5; +import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/didProfileInfoInteractedDidFilterMapper.dart' + as _i14; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/iden3_message_type_mapper.dart' - as _i29; + as _i30; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/iden3comm_proof_mapper.dart' - as _i86; + as _i88; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/iden3comm_vp_proof_mapper.dart' - as _i30; + as _i31; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/interaction_id_filter_mapper.dart' - as _i32; -import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/interaction_mapper.dart' as _i33; -import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/jwz_mapper.dart' +import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/interaction_mapper.dart' as _i34; +import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/jwz_mapper.dart' + as _i35; import 'package:polygonid_flutter_sdk/iden3comm/data/mappers/proof_request_filters_mapper.dart' - as _i56; + as _i57; +import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/did_profile_info_repository_impl.dart' + as _i110; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/iden3comm_credential_repository_impl.dart' - as _i108; + as _i113; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/iden3comm_repository_impl.dart' - as _i109; + as _i114; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/interaction_repository_impl.dart' - as _i110; + as _i115; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart' + as _i120; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/iden3comm_credential_repository.dart' - as _i118; + as _i126; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/iden3comm_repository.dart' - as _i119; + as _i127; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/interaction_repository.dart' - as _i120; + as _i128; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/authenticate_use_case.dart' - as _i189; + as _i199; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/check_profile_and_did_current_env.dart' - as _i169; + as _i179; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/clean_schema_cache_use_case.dart' - as _i129; + as _i139; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/fetch_and_save_claims_use_case.dart' - as _i180; + as _i190; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/generate_iden3comm_proof_use_case.dart' - as _i170; + as _i180; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_auth_challenge_use_case.dart' - as _i130; + as _i140; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_auth_inputs_use_case.dart' - as _i171; + as _i181; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_auth_token_use_case.dart' - as _i172; + as _i182; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_fetch_requests_use_case.dart' - as _i22; + as _i23; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_filters_use_case.dart' - as _i160; + as _i170; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_iden3comm_claims_rev_nonce_use_case.dart' - as _i182; + as _i192; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_iden3comm_claims_use_case.dart' - as _i183; + as _i193; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_iden3comm_proofs_use_case.dart' - as _i184; + as _i194; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_iden3message_type_use_case.dart' - as _i23; + as _i24; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_iden3message_use_case.dart' - as _i84; + as _i86; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_jwz_use_case.dart' - as _i131; + as _i141; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_proof_query_context_use_case.dart' - as _i133; + as _i143; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_proof_query_use_case.dart' - as _i85; + as _i87; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_proof_requests_use_case.dart' - as _i134; + as _i144; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/get_schemas_use_case.dart' - as _i135; + as _i145; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/interaction/add_interaction_use_case.dart' - as _i168; + as _i178; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/interaction/get_interactions_use_case.dart' - as _i166; + as _i176; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/interaction/remove_interactions_use_case.dart' - as _i167; + as _i177; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/interaction/update_interaction_use_case.dart' - as _i175; + as _i185; import 'package:polygonid_flutter_sdk/iden3comm/domain/use_cases/listen_and_store_notification_use_case.dart' - as _i121; + as _i129; import 'package:polygonid_flutter_sdk/iden3comm/libs/polygonidcore/pidcore_iden3comm.dart' - as _i47; + as _i48; import 'package:polygonid_flutter_sdk/identity/data/data_sources/db_destination_path_data_source.dart' as _i12; import 'package:polygonid_flutter_sdk/identity/data/data_sources/encryption_db_data_source.dart' - as _i17; + as _i18; import 'package:polygonid_flutter_sdk/identity/data/data_sources/lib_babyjubjub_data_source.dart' - as _i35; + as _i36; import 'package:polygonid_flutter_sdk/identity/data/data_sources/lib_pidcore_identity_data_source.dart' - as _i93; + as _i95; import 'package:polygonid_flutter_sdk/identity/data/data_sources/local_contract_files_data_source.dart' - as _i36; + as _i37; import 'package:polygonid_flutter_sdk/identity/data/data_sources/remote_identity_data_source.dart' - as _i60; + as _i61; import 'package:polygonid_flutter_sdk/identity/data/data_sources/rpc_data_source.dart' - as _i122; + as _i130; +import 'package:polygonid_flutter_sdk/identity/data/data_sources/secure_storage_profiles_data_source.dart' + as _i107; import 'package:polygonid_flutter_sdk/identity/data/data_sources/smt_data_source.dart' - as _i111; + as _i116; import 'package:polygonid_flutter_sdk/identity/data/data_sources/storage_identity_data_source.dart' - as _i88; + as _i90; import 'package:polygonid_flutter_sdk/identity/data/data_sources/storage_smt_data_source.dart' - as _i87; + as _i89; import 'package:polygonid_flutter_sdk/identity/data/data_sources/wallet_data_source.dart' - as _i67; + as _i68; import 'package:polygonid_flutter_sdk/identity/data/mappers/encryption_key_mapper.dart' - as _i18; + as _i19; import 'package:polygonid_flutter_sdk/identity/data/mappers/hash_mapper.dart' - as _i25; -import 'package:polygonid_flutter_sdk/identity/data/mappers/hex_mapper.dart' as _i26; +import 'package:polygonid_flutter_sdk/identity/data/mappers/hex_mapper.dart' + as _i27; import 'package:polygonid_flutter_sdk/identity/data/mappers/identity_dto_mapper.dart' - as _i31; + as _i32; import 'package:polygonid_flutter_sdk/identity/data/mappers/node_mapper.dart' - as _i97; + as _i99; import 'package:polygonid_flutter_sdk/identity/data/mappers/node_type_dto_mapper.dart' - as _i39; -import 'package:polygonid_flutter_sdk/identity/data/mappers/node_type_entity_mapper.dart' as _i40; -import 'package:polygonid_flutter_sdk/identity/data/mappers/node_type_mapper.dart' +import 'package:polygonid_flutter_sdk/identity/data/mappers/node_type_entity_mapper.dart' as _i41; +import 'package:polygonid_flutter_sdk/identity/data/mappers/node_type_mapper.dart' + as _i42; import 'package:polygonid_flutter_sdk/identity/data/mappers/poseidon_hash_mapper.dart' - as _i52; -import 'package:polygonid_flutter_sdk/identity/data/mappers/private_key_mapper.dart' as _i53; +import 'package:polygonid_flutter_sdk/identity/data/mappers/private_key_mapper.dart' + as _i54; import 'package:polygonid_flutter_sdk/identity/data/mappers/q_mapper.dart' - as _i59; + as _i60; import 'package:polygonid_flutter_sdk/identity/data/mappers/rhs_node_mapper.dart' - as _i102; + as _i104; import 'package:polygonid_flutter_sdk/identity/data/mappers/rhs_node_type_mapper.dart' - as _i62; + as _i63; import 'package:polygonid_flutter_sdk/identity/data/mappers/state_identifier_mapper.dart' - as _i64; -import 'package:polygonid_flutter_sdk/identity/data/mappers/tree_state_mapper.dart' as _i65; -import 'package:polygonid_flutter_sdk/identity/data/mappers/tree_type_mapper.dart' +import 'package:polygonid_flutter_sdk/identity/data/mappers/tree_state_mapper.dart' as _i66; +import 'package:polygonid_flutter_sdk/identity/data/mappers/tree_type_mapper.dart' + as _i67; import 'package:polygonid_flutter_sdk/identity/data/repositories/identity_repository_impl.dart' - as _i136; + as _i146; import 'package:polygonid_flutter_sdk/identity/data/repositories/smt_repository_impl.dart' - as _i112; + as _i117; import 'package:polygonid_flutter_sdk/identity/domain/repositories/identity_repository.dart' - as _i139; + as _i149; import 'package:polygonid_flutter_sdk/identity/domain/repositories/smt_repository.dart' - as _i125; + as _i134; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/fetch_identity_state_use_case.dart' - as _i158; + as _i168; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/fetch_state_roots_use_case.dart' - as _i146; + as _i156; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_current_env_did_identifier_use_case.dart' - as _i173; + as _i183; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_did_identifier_use_case.dart' - as _i164; + as _i174; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_did_use_case.dart' - as _i148; + as _i158; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_genesis_state_use_case.dart' - as _i161; + as _i171; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_identity_auth_claim_use_case.dart' - as _i151; + as _i161; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_latest_state_use_case.dart' - as _i132; + as _i142; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_public_keys_use_case.dart' - as _i153; + as _i163; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/add_identity_use_case.dart' - as _i186; + as _i196; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/add_new_identity_use_case.dart' - as _i187; + as _i197; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/backup_identity_use_case.dart' - as _i176; + as _i186; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/check_identity_validity_use_case.dart' - as _i177; + as _i187; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/create_identity_use_case.dart' - as _i178; + as _i188; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/get_identities_use_case.dart' - as _i150; + as _i160; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/get_identity_use_case.dart' - as _i165; + as _i175; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/get_private_key_use_case.dart' - as _i152; + as _i162; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/remove_identity_use_case.dart' - as _i194; + as _i204; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/restore_identity_use_case.dart' - as _i193; + as _i205; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/sign_message_use_case.dart' - as _i142; + as _i152; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/update_identity_use_case.dart' - as _i185; + as _i195; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/add_profile_use_case.dart' - as _i188; + as _i198; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/check_profile_validity_use_case.dart' as _i7; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/create_profiles_use_case.dart' - as _i179; + as _i189; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/get_profiles_use_case.dart' - as _i174; + as _i184; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/remove_profile_use_case.dart' - as _i192; + as _i202; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/restore_profiles_use_case.dart' + as _i203; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/smt/create_identity_state_use_case.dart' - as _i157; + as _i167; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/smt/remove_identity_state_use_case.dart' - as _i138; + as _i148; import 'package:polygonid_flutter_sdk/identity/libs/bjj/bjj.dart' as _i6; import 'package:polygonid_flutter_sdk/identity/libs/polygonidcore/pidcore_identity.dart' - as _i48; + as _i49; import 'package:polygonid_flutter_sdk/proof/data/data_sources/circuits_download_data_source.dart' - as _i80; -import 'package:polygonid_flutter_sdk/proof/data/data_sources/circuits_files_data_source.dart' as _i81; +import 'package:polygonid_flutter_sdk/proof/data/data_sources/circuits_files_data_source.dart' + as _i82; import 'package:polygonid_flutter_sdk/proof/data/data_sources/gist_mtproof_data_source.dart' - as _i24; + as _i25; import 'package:polygonid_flutter_sdk/proof/data/data_sources/lib_pidcore_proof_data_source.dart' - as _i94; + as _i96; import 'package:polygonid_flutter_sdk/proof/data/data_sources/proof_circuit_data_source.dart' - as _i54; + as _i55; import 'package:polygonid_flutter_sdk/proof/data/data_sources/prover_lib_data_source.dart' - as _i58; + as _i59; import 'package:polygonid_flutter_sdk/proof/data/data_sources/witness_data_source.dart' - as _i71; + as _i72; import 'package:polygonid_flutter_sdk/proof/data/mappers/circuit_type_mapper.dart' as _i8; import 'package:polygonid_flutter_sdk/proof/data/mappers/gist_mtproof_mapper.dart' - as _i107; + as _i112; import 'package:polygonid_flutter_sdk/proof/data/mappers/mtproof_mapper.dart' - as _i96; + as _i98; import 'package:polygonid_flutter_sdk/proof/data/mappers/node_aux_mapper.dart' - as _i38; + as _i39; import 'package:polygonid_flutter_sdk/proof/data/mappers/zkproof_base_mapper.dart' - as _i76; -import 'package:polygonid_flutter_sdk/proof/data/mappers/zkproof_mapper.dart' as _i77; +import 'package:polygonid_flutter_sdk/proof/data/mappers/zkproof_mapper.dart' + as _i78; import 'package:polygonid_flutter_sdk/proof/data/repositories/proof_repository_impl.dart' - as _i137; + as _i147; import 'package:polygonid_flutter_sdk/proof/domain/repositories/proof_repository.dart' - as _i140; + as _i150; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/cancel_download_circuits_use_case.dart' - as _i143; + as _i153; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/circuits_files_exist_use_case.dart' - as _i144; + as _i154; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/download_circuits_use_case.dart' - as _i145; + as _i155; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/generate_zkproof_use_case.dart' - as _i147; + as _i157; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/get_gist_mtproof_use_case.dart' - as _i149; + as _i159; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/is_proof_circuit_supported_use_case.dart' - as _i154; + as _i164; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/load_circuit_use_case.dart' - as _i155; + as _i165; import 'package:polygonid_flutter_sdk/proof/domain/use_cases/prove_use_case.dart' - as _i141; + as _i151; import 'package:polygonid_flutter_sdk/proof/infrastructure/proof_generation_stream_manager.dart' - as _i55; + as _i56; import 'package:polygonid_flutter_sdk/proof/libs/polygonidcore/pidcore_proof.dart' - as _i49; -import 'package:polygonid_flutter_sdk/proof/libs/prover/prover.dart' as _i57; + as _i50; +import 'package:polygonid_flutter_sdk/proof/libs/prover/prover.dart' as _i58; import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/auth_v2/witness_auth.dart' - as _i70; + as _i71; import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/mtp_v2/witness_mtp.dart' - as _i72; -import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/mtp_v2_onchain/witness_mtp_onchain.dart' as _i73; -import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/sig_v2/witness_sig.dart' +import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/mtp_v2_onchain/witness_mtp_onchain.dart' as _i74; -import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/sig_v2_onchain/witness_sig_onchain.dart' +import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/sig_v2/witness_sig.dart' as _i75; -import 'package:polygonid_flutter_sdk/sdk/credential.dart' as _i190; -import 'package:polygonid_flutter_sdk/sdk/di/injector.dart' as _i196; -import 'package:polygonid_flutter_sdk/sdk/iden3comm.dart' as _i191; -import 'package:polygonid_flutter_sdk/sdk/identity.dart' as _i195; -import 'package:polygonid_flutter_sdk/sdk/polygon_id_sdk.dart' as _i50; +import 'package:polygonid_flutter_sdk/proof/libs/witnesscalc/sig_v2_onchain/witness_sig_onchain.dart' + as _i76; +import 'package:polygonid_flutter_sdk/sdk/credential.dart' as _i200; +import 'package:polygonid_flutter_sdk/sdk/di/injector.dart' as _i207; +import 'package:polygonid_flutter_sdk/sdk/error_handling.dart' as _i85; +import 'package:polygonid_flutter_sdk/sdk/iden3comm.dart' as _i201; +import 'package:polygonid_flutter_sdk/sdk/identity.dart' as _i206; +import 'package:polygonid_flutter_sdk/sdk/polygon_id_sdk.dart' as _i51; import 'package:polygonid_flutter_sdk/sdk/polygonid_flutter_channel.dart' - as _i99; -import 'package:polygonid_flutter_sdk/sdk/proof.dart' as _i156; + as _i101; +import 'package:polygonid_flutter_sdk/sdk/proof.dart' as _i166; import 'package:sembast/sembast.dart' as _i13; -import 'package:web3dart/web3dart.dart' as _i68; +import 'package:web3dart/web3dart.dart' as _i69; extension GetItInjectableX on _i1.GetIt { - // initializes the registration of main-scope dependencies inside of GetIt +// initializes the registration of main-scope dependencies inside of GetIt _i1.GetIt $initSDKGetIt({ String? environment, _i2.EnvironmentFilter? environmentFilter, @@ -426,10 +447,12 @@ extension GetItInjectableX on _i1.GetIt { ); gh.factory<_i12.DestinationPathDataSource>( () => _i12.DestinationPathDataSource(gh<_i12.CreatePathWrapper>())); - gh.factory<_i14.Dio>(() => networkModule.dio); - gh.factoryAsync<_i15.Directory>( + gh.factory<_i14.DidProfileInfoInteractedDidFilterMapper>( + () => _i14.DidProfileInfoInteractedDidFilterMapper()); + gh.factory<_i15.Dio>(() => networkModule.dio); + gh.factoryAsync<_i16.Directory>( () => filesManagerModule.applicationDocumentsDirectory); - gh.factoryParam<_i16.Encrypter, _i16.Key, dynamic>( + gh.factoryParam<_i17.Encrypter, _i17.Key, dynamic>( ( key, _, @@ -437,829 +460,882 @@ extension GetItInjectableX on _i1.GetIt { encryptionModule.encryptAES(key), instanceName: 'encryptAES', ); - gh.factory<_i17.EncryptionDbDataSource>( - () => _i17.EncryptionDbDataSource()); - gh.factory<_i18.EncryptionKeyMapper>(() => _i18.EncryptionKeyMapper()); - gh.factory<_i19.EnvMapper>(() => _i19.EnvMapper()); - gh.factory<_i20.FilterMapper>(() => _i20.FilterMapper()); - gh.factory<_i21.FiltersMapper>( - () => _i21.FiltersMapper(gh<_i20.FilterMapper>())); - gh.factory<_i22.GetFetchRequestsUseCase>( - () => _i22.GetFetchRequestsUseCase()); - gh.factory<_i23.GetIden3MessageTypeUseCase>( - () => _i23.GetIden3MessageTypeUseCase()); - gh.factory<_i24.GistMTProofDataSource>(() => _i24.GistMTProofDataSource()); - gh.factory<_i25.HashMapper>(() => _i25.HashMapper()); - gh.factory<_i26.HexMapper>(() => _i26.HexMapper()); - gh.factory<_i27.IdFilterMapper>(() => _i27.IdFilterMapper()); - gh.factory<_i28.Iden3MessageDataSource>( - () => _i28.Iden3MessageDataSource()); - gh.factory<_i29.Iden3MessageTypeMapper>( - () => _i29.Iden3MessageTypeMapper()); - gh.factory<_i30.Iden3commVPProofMapper>( - () => _i30.Iden3commVPProofMapper()); - gh.factory<_i31.IdentityDTOMapper>(() => _i31.IdentityDTOMapper()); - gh.factory<_i32.InteractionIdFilterMapper>( - () => _i32.InteractionIdFilterMapper()); - gh.factory<_i33.InteractionMapper>(() => _i33.InteractionMapper()); - gh.factory<_i34.JWZMapper>(() => _i34.JWZMapper()); - gh.factory<_i35.LibBabyJubJubDataSource>( - () => _i35.LibBabyJubJubDataSource(gh<_i6.BabyjubjubLib>())); - gh.factory<_i36.LocalContractFilesDataSource>( - () => _i36.LocalContractFilesDataSource()); - gh.factory<_i37.Logger>(() => loggerModule.logger); + gh.factory<_i18.EncryptionDbDataSource>( + () => _i18.EncryptionDbDataSource()); + gh.factory<_i19.EncryptionKeyMapper>(() => _i19.EncryptionKeyMapper()); + gh.factory<_i20.EnvMapper>(() => _i20.EnvMapper()); + gh.factory<_i21.FilterMapper>(() => _i21.FilterMapper()); + gh.factory<_i22.FiltersMapper>( + () => _i22.FiltersMapper(gh<_i21.FilterMapper>())); + gh.factory<_i23.GetFetchRequestsUseCase>( + () => _i23.GetFetchRequestsUseCase()); + gh.factory<_i24.GetIden3MessageTypeUseCase>( + () => _i24.GetIden3MessageTypeUseCase()); + gh.factory<_i25.GistMTProofDataSource>(() => _i25.GistMTProofDataSource()); + gh.factory<_i26.HashMapper>(() => _i26.HashMapper()); + gh.factory<_i27.HexMapper>(() => _i27.HexMapper()); + gh.factory<_i28.IdFilterMapper>(() => _i28.IdFilterMapper()); + gh.factory<_i29.Iden3MessageDataSource>( + () => _i29.Iden3MessageDataSource()); + gh.factory<_i30.Iden3MessageTypeMapper>( + () => _i30.Iden3MessageTypeMapper()); + gh.factory<_i31.Iden3commVPProofMapper>( + () => _i31.Iden3commVPProofMapper()); + gh.factory<_i32.IdentityDTOMapper>(() => _i32.IdentityDTOMapper()); + gh.factory<_i33.InteractionIdFilterMapper>( + () => _i33.InteractionIdFilterMapper()); + gh.factory<_i34.InteractionMapper>(() => _i34.InteractionMapper()); + gh.factory<_i35.JWZMapper>(() => _i35.JWZMapper()); + gh.factory<_i36.LibBabyJubJubDataSource>( + () => _i36.LibBabyJubJubDataSource(gh<_i6.BabyjubjubLib>())); + gh.factory<_i37.LocalContractFilesDataSource>( + () => _i37.LocalContractFilesDataSource()); + gh.factory<_i38.Logger>(() => loggerModule.logger); gh.factory>>>( () => databaseModule.identityStateStore, instanceName: 'identityStateStore', ); gh.lazySingleton<_i3.MethodChannel>(() => channelModule.methodChannel); - gh.factory<_i38.NodeAuxMapper>(() => _i38.NodeAuxMapper()); - gh.factory<_i39.NodeTypeDTOMapper>(() => _i39.NodeTypeDTOMapper()); - gh.factory<_i40.NodeTypeEntityMapper>(() => _i40.NodeTypeEntityMapper()); - gh.factory<_i41.NodeTypeMapper>(() => _i41.NodeTypeMapper()); - gh.lazySingletonAsync<_i42.PackageInfo>(() => platformModule.packageInfo); - gh.factoryAsync<_i43.PackageInfoDataSource>(() async => - _i43.PackageInfoDataSource(await getAsync<_i42.PackageInfo>())); - gh.factoryAsync<_i44.PackageInfoRepositoryImpl>(() async => - _i44.PackageInfoRepositoryImpl( - await getAsync<_i43.PackageInfoDataSource>())); - gh.factory<_i45.PolygonIdCore>(() => _i45.PolygonIdCore()); - gh.factory<_i46.PolygonIdCoreCredential>( - () => _i46.PolygonIdCoreCredential()); - gh.factory<_i47.PolygonIdCoreIden3comm>( - () => _i47.PolygonIdCoreIden3comm()); - gh.factory<_i48.PolygonIdCoreIdentity>(() => _i48.PolygonIdCoreIdentity()); - gh.factory<_i49.PolygonIdCoreProof>(() => _i49.PolygonIdCoreProof()); - gh.factory<_i50.PolygonIdSdk>(() => channelModule.polygonIdSdk); - gh.factory<_i51.PolygonIdSdkLogger>(() => loggerModule.sdkLogger); - gh.factory<_i52.PoseidonHashMapper>( - () => _i52.PoseidonHashMapper(gh<_i26.HexMapper>())); - gh.factory<_i53.PrivateKeyMapper>(() => _i53.PrivateKeyMapper()); - gh.factory<_i54.ProofCircuitDataSource>( - () => _i54.ProofCircuitDataSource()); - gh.lazySingleton<_i55.ProofGenerationStepsStreamManager>( - () => _i55.ProofGenerationStepsStreamManager()); - gh.factory<_i56.ProofRequestFiltersMapper>( - () => _i56.ProofRequestFiltersMapper()); - gh.factory<_i57.ProverLib>(() => _i57.ProverLib()); - gh.factory<_i58.ProverLibWrapper>(() => _i58.ProverLibWrapper()); - gh.factory<_i59.QMapper>(() => _i59.QMapper()); - gh.factory<_i60.RemoteIdentityDataSource>( - () => _i60.RemoteIdentityDataSource()); - gh.factory<_i61.RevocationStatusMapper>( - () => _i61.RevocationStatusMapper()); - gh.factory<_i62.RhsNodeTypeMapper>(() => _i62.RhsNodeTypeMapper()); + gh.factory<_i39.NodeAuxMapper>(() => _i39.NodeAuxMapper()); + gh.factory<_i40.NodeTypeDTOMapper>(() => _i40.NodeTypeDTOMapper()); + gh.factory<_i41.NodeTypeEntityMapper>(() => _i41.NodeTypeEntityMapper()); + gh.factory<_i42.NodeTypeMapper>(() => _i42.NodeTypeMapper()); + gh.lazySingletonAsync<_i43.PackageInfo>(() => platformModule.packageInfo); + gh.factoryAsync<_i44.PackageInfoDataSource>(() async => + _i44.PackageInfoDataSource(await getAsync<_i43.PackageInfo>())); + gh.factoryAsync<_i45.PackageInfoRepositoryImpl>(() async => + _i45.PackageInfoRepositoryImpl( + await getAsync<_i44.PackageInfoDataSource>())); + gh.factory<_i46.PolygonIdCore>(() => _i46.PolygonIdCore()); + gh.factory<_i47.PolygonIdCoreCredential>( + () => _i47.PolygonIdCoreCredential()); + gh.factory<_i48.PolygonIdCoreIden3comm>( + () => _i48.PolygonIdCoreIden3comm()); + gh.factory<_i49.PolygonIdCoreIdentity>(() => _i49.PolygonIdCoreIdentity()); + gh.factory<_i50.PolygonIdCoreProof>(() => _i50.PolygonIdCoreProof()); + gh.factory<_i51.PolygonIdSdk>(() => channelModule.polygonIdSdk); + gh.factory<_i52.PolygonIdSdkLogger>(() => loggerModule.sdkLogger); + gh.factory<_i53.PoseidonHashMapper>( + () => _i53.PoseidonHashMapper(gh<_i27.HexMapper>())); + gh.factory<_i54.PrivateKeyMapper>(() => _i54.PrivateKeyMapper()); + gh.factory<_i55.ProofCircuitDataSource>( + () => _i55.ProofCircuitDataSource()); + gh.lazySingleton<_i56.ProofGenerationStepsStreamManager>( + () => _i56.ProofGenerationStepsStreamManager()); + gh.factory<_i57.ProofRequestFiltersMapper>( + () => _i57.ProofRequestFiltersMapper()); + gh.factory<_i58.ProverLib>(() => _i58.ProverLib()); + gh.factory<_i59.ProverLibWrapper>(() => _i59.ProverLibWrapper()); + gh.factory<_i60.QMapper>(() => _i60.QMapper()); + gh.factory<_i61.RemoteIdentityDataSource>( + () => _i61.RemoteIdentityDataSource()); + gh.factory<_i62.RevocationStatusMapper>( + () => _i62.RevocationStatusMapper()); + gh.factory<_i63.RhsNodeTypeMapper>(() => _i63.RhsNodeTypeMapper()); gh.factoryParam<_i13.SembastCodec, String, dynamic>(( privateKey, _, ) => databaseModule.getCodec(privateKey)); - gh.lazySingleton<_i63.StacktraceManager>(() => _i63.StacktraceManager()); - gh.factory<_i64.StateIdentifierMapper>(() => _i64.StateIdentifierMapper()); + gh.lazySingleton<_i64.StacktraceManager>(() => _i64.StacktraceManager()); + gh.factory<_i65.StateIdentifierMapper>(() => _i65.StateIdentifierMapper()); + gh.factory<_i13.StoreRef>( + () => databaseModule.keyValueStore, + instanceName: 'keyValueStore', + ); + gh.factory<_i13.StoreRef>>( + () => databaseModule.identityStore, + instanceName: 'identityStore', + ); gh.factory<_i13.StoreRef>>( () => databaseModule.interactionStore, instanceName: 'interactionStore', ); gh.factory<_i13.StoreRef>>( - () => databaseModule.claimStore, - instanceName: 'claimStore', + () => databaseModule.profileStore, + instanceName: 'profilesStore', ); - gh.factory<_i13.StoreRef>( - () => databaseModule.keyValueStore, - instanceName: 'keyValueStore', + gh.factory<_i13.StoreRef>>( + () => databaseModule.didProfileInfoStore, + instanceName: 'didProfileInfoStore', ); gh.factory<_i13.StoreRef>>( - () => databaseModule.identityStore, - instanceName: 'identityStore', + () => databaseModule.claimStore, + instanceName: 'claimStore', ); - gh.factory<_i65.TreeStateMapper>(() => _i65.TreeStateMapper()); - gh.factory<_i66.TreeTypeMapper>(() => _i66.TreeTypeMapper()); - gh.factory<_i67.WalletLibWrapper>(() => _i67.WalletLibWrapper()); - gh.factoryParam<_i68.Web3Client, _i69.EnvEntity, dynamic>(( + gh.factory<_i66.TreeStateMapper>(() => _i66.TreeStateMapper()); + gh.factory<_i67.TreeTypeMapper>(() => _i67.TreeTypeMapper()); + gh.factory<_i68.WalletLibWrapper>(() => _i68.WalletLibWrapper()); + gh.factoryParam<_i69.Web3Client, _i70.EnvEntity, dynamic>(( env, _, ) => networkModule.web3client(env)); - gh.factory<_i70.WitnessAuthV2Lib>(() => _i70.WitnessAuthV2Lib()); - gh.factory<_i71.WitnessIsolatesWrapper>( - () => _i71.WitnessIsolatesWrapper()); - gh.factory<_i72.WitnessMTPV2Lib>(() => _i72.WitnessMTPV2Lib()); - gh.factory<_i73.WitnessMTPV2OnchainLib>( - () => _i73.WitnessMTPV2OnchainLib()); - gh.factory<_i74.WitnessSigV2Lib>(() => _i74.WitnessSigV2Lib()); - gh.factory<_i75.WitnessSigV2OnchainLib>( - () => _i75.WitnessSigV2OnchainLib()); - gh.factory<_i76.ZKProofBaseMapper>(() => _i76.ZKProofBaseMapper()); - gh.factory<_i77.ZKProofMapper>(() => _i77.ZKProofMapper()); - gh.factory<_i78.ZipDecoder>(() => filesManagerModule.zipDecoder()); - gh.factory<_i79.AuthProofMapper>(() => _i79.AuthProofMapper( - gh<_i25.HashMapper>(), - gh<_i38.NodeAuxMapper>(), + gh.factory<_i71.WitnessAuthV2Lib>(() => _i71.WitnessAuthV2Lib()); + gh.factory<_i72.WitnessIsolatesWrapper>( + () => _i72.WitnessIsolatesWrapper()); + gh.factory<_i73.WitnessMTPV2Lib>(() => _i73.WitnessMTPV2Lib()); + gh.factory<_i74.WitnessMTPV2OnchainLib>( + () => _i74.WitnessMTPV2OnchainLib()); + gh.factory<_i75.WitnessSigV2Lib>(() => _i75.WitnessSigV2Lib()); + gh.factory<_i76.WitnessSigV2OnchainLib>( + () => _i76.WitnessSigV2OnchainLib()); + gh.factory<_i77.ZKProofBaseMapper>(() => _i77.ZKProofBaseMapper()); + gh.factory<_i78.ZKProofMapper>(() => _i78.ZKProofMapper()); + gh.factory<_i79.ZipDecoder>(() => filesManagerModule.zipDecoder()); + gh.factory<_i80.AuthProofMapper>(() => _i80.AuthProofMapper( + gh<_i26.HashMapper>(), + gh<_i39.NodeAuxMapper>(), )); - gh.lazySingleton<_i80.CircuitsDownloadDataSource>( - () => _i80.CircuitsDownloadDataSource(gh<_i14.Dio>())); - gh.factoryAsync<_i81.CircuitsFilesDataSource>(() async => - _i81.CircuitsFilesDataSource(await getAsync<_i15.Directory>())); - gh.factory<_i82.ClaimMapper>(() => _i82.ClaimMapper( + gh.lazySingleton<_i81.CircuitsDownloadDataSource>( + () => _i81.CircuitsDownloadDataSource(gh<_i15.Dio>())); + gh.factoryAsync<_i82.CircuitsFilesDataSource>(() async => + _i82.CircuitsFilesDataSource(await getAsync<_i16.Directory>())); + gh.factory<_i83.ClaimMapper>(() => _i83.ClaimMapper( gh<_i10.ClaimStateMapper>(), gh<_i9.ClaimInfoMapper>(), )); - gh.factory<_i83.ClaimStoreRefWrapper>(() => _i83.ClaimStoreRefWrapper( + gh.factory<_i84.ClaimStoreRefWrapper>(() => _i84.ClaimStoreRefWrapper( gh<_i13.StoreRef>>( instanceName: 'claimStore'))); - gh.factory<_i84.GetIden3MessageUseCase>(() => _i84.GetIden3MessageUseCase( - gh<_i23.GetIden3MessageTypeUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i85.ErrorHandling>( + () => _i85.ErrorHandling(gh<_i64.StacktraceManager>())); + gh.factory<_i86.GetIden3MessageUseCase>(() => _i86.GetIden3MessageUseCase( + gh<_i24.GetIden3MessageTypeUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i85.GetProofQueryUseCase>( - () => _i85.GetProofQueryUseCase(gh<_i63.StacktraceManager>())); - gh.factory<_i86.Iden3commProofMapper>(() => _i86.Iden3commProofMapper( - gh<_i76.ZKProofBaseMapper>(), - gh<_i30.Iden3commVPProofMapper>(), + gh.factory<_i87.GetProofQueryUseCase>( + () => _i87.GetProofQueryUseCase(gh<_i64.StacktraceManager>())); + gh.factory<_i88.Iden3commProofMapper>(() => _i88.Iden3commProofMapper( + gh<_i77.ZKProofBaseMapper>(), + gh<_i31.Iden3commVPProofMapper>(), )); - gh.factory<_i87.IdentitySMTStoreRefWrapper>(() => - _i87.IdentitySMTStoreRefWrapper( + gh.factory<_i89.IdentitySMTStoreRefWrapper>(() => + _i89.IdentitySMTStoreRefWrapper( gh>>>( instanceName: 'identityStateStore'))); - gh.factory<_i88.IdentityStoreRefWrapper>(() => _i88.IdentityStoreRefWrapper( + gh.factory<_i90.IdentityStoreRefWrapper>(() => _i90.IdentityStoreRefWrapper( gh<_i13.StoreRef>>( instanceName: 'identityStore'))); - gh.factory<_i89.InteractionStoreRefWrapper>(() => - _i89.InteractionStoreRefWrapper( + gh.factory<_i91.InteractionStoreRefWrapper>(() => + _i91.InteractionStoreRefWrapper( gh<_i13.StoreRef>>( instanceName: 'interactionStore'))); - gh.factory<_i90.KeyValueStoreRefWrapper>(() => _i90.KeyValueStoreRefWrapper( + gh.factory<_i92.KeyValueStoreRefWrapper>(() => _i92.KeyValueStoreRefWrapper( gh<_i13.StoreRef>(instanceName: 'keyValueStore'))); - gh.factory<_i91.LibPolygonIdCoreCredentialDataSource>(() => - _i91.LibPolygonIdCoreCredentialDataSource( - gh<_i46.PolygonIdCoreCredential>())); - gh.factory<_i92.LibPolygonIdCoreIden3commDataSource>(() => - _i92.LibPolygonIdCoreIden3commDataSource( - gh<_i47.PolygonIdCoreIden3comm>())); - gh.factory<_i93.LibPolygonIdCoreIdentityDataSource>(() => - _i93.LibPolygonIdCoreIdentityDataSource( - gh<_i48.PolygonIdCoreIdentity>())); - gh.factory<_i94.LibPolygonIdCoreWrapper>( - () => _i94.LibPolygonIdCoreWrapper(gh<_i49.PolygonIdCoreProof>())); - gh.factory<_i95.LocalClaimDataSource>(() => _i95.LocalClaimDataSource( - gh<_i91.LibPolygonIdCoreCredentialDataSource>())); - gh.factory<_i96.MTProofMapper>(() => _i96.MTProofMapper( - gh<_i25.HashMapper>(), - gh<_i38.NodeAuxMapper>(), + gh.factory<_i93.LibPolygonIdCoreCredentialDataSource>(() => + _i93.LibPolygonIdCoreCredentialDataSource( + gh<_i47.PolygonIdCoreCredential>())); + gh.factory<_i94.LibPolygonIdCoreIden3commDataSource>(() => + _i94.LibPolygonIdCoreIden3commDataSource( + gh<_i48.PolygonIdCoreIden3comm>())); + gh.factory<_i95.LibPolygonIdCoreIdentityDataSource>(() => + _i95.LibPolygonIdCoreIdentityDataSource( + gh<_i49.PolygonIdCoreIdentity>())); + gh.factory<_i96.LibPolygonIdCoreWrapper>( + () => _i96.LibPolygonIdCoreWrapper(gh<_i50.PolygonIdCoreProof>())); + gh.factory<_i97.LocalClaimDataSource>(() => _i97.LocalClaimDataSource( + gh<_i93.LibPolygonIdCoreCredentialDataSource>())); + gh.factory<_i98.MTProofMapper>(() => _i98.MTProofMapper( + gh<_i26.HashMapper>(), + gh<_i39.NodeAuxMapper>(), )); - gh.factory<_i97.NodeMapper>(() => _i97.NodeMapper( - gh<_i41.NodeTypeMapper>(), - gh<_i40.NodeTypeEntityMapper>(), - gh<_i39.NodeTypeDTOMapper>(), - gh<_i25.HashMapper>(), + gh.factory<_i99.NodeMapper>(() => _i99.NodeMapper( + gh<_i42.NodeTypeMapper>(), + gh<_i41.NodeTypeEntityMapper>(), + gh<_i40.NodeTypeDTOMapper>(), + gh<_i26.HashMapper>(), )); - gh.factoryAsync<_i98.PackageInfoRepository>(() async => + gh.factoryAsync<_i100.PackageInfoRepository>(() async => repositoriesModule.packageInfoRepository( - await getAsync<_i44.PackageInfoRepositoryImpl>())); - gh.factory<_i99.PolygonIdFlutterChannel>(() => _i99.PolygonIdFlutterChannel( - gh<_i50.PolygonIdSdk>(), - gh<_i3.MethodChannel>(), - )); - gh.factory<_i58.ProverLibDataSource>( - () => _i58.ProverLibDataSource(gh<_i58.ProverLibWrapper>())); - gh.factory<_i100.RemoteClaimDataSource>(() => _i100.RemoteClaimDataSource( + await getAsync<_i45.PackageInfoRepositoryImpl>())); + gh.factory<_i101.PolygonIdFlutterChannel>( + () => _i101.PolygonIdFlutterChannel( + gh<_i51.PolygonIdSdk>(), + gh<_i3.MethodChannel>(), + )); + gh.factory<_i59.ProverLibDataSource>( + () => _i59.ProverLibDataSource(gh<_i59.ProverLibWrapper>())); + gh.factory<_i102.RemoteClaimDataSource>(() => _i102.RemoteClaimDataSource( gh<_i11.Client>(), - gh<_i63.StacktraceManager>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i101.RemoteIden3commDataSource>( - () => _i101.RemoteIden3commDataSource( + gh.factory<_i103.RemoteIden3commDataSource>( + () => _i103.RemoteIden3commDataSource( gh<_i11.Client>(), - gh<_i63.StacktraceManager>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i102.RhsNodeMapper>( - () => _i102.RhsNodeMapper(gh<_i62.RhsNodeTypeMapper>())); - gh.factory<_i103.SecureInteractionStoreRefWrapper>(() => - _i103.SecureInteractionStoreRefWrapper( + gh.factory<_i104.RhsNodeMapper>( + () => _i104.RhsNodeMapper(gh<_i63.RhsNodeTypeMapper>())); + gh.factory<_i105.SecureDidProfileInfoStoreRefWrapper>(() => + _i105.SecureDidProfileInfoStoreRefWrapper( + gh<_i13.StoreRef>>( + instanceName: 'didProfileInfoStore'))); + gh.factory<_i106.SecureInteractionStoreRefWrapper>(() => + _i106.SecureInteractionStoreRefWrapper( gh<_i13.StoreRef>>( instanceName: 'interactionStore'))); - gh.factory<_i103.SecureStorageInteractionDataSource>(() => - _i103.SecureStorageInteractionDataSource( - gh<_i103.SecureInteractionStoreRefWrapper>())); - gh.factory<_i83.StorageClaimDataSource>( - () => _i83.StorageClaimDataSource(gh<_i83.ClaimStoreRefWrapper>())); - gh.factoryAsync<_i88.StorageIdentityDataSource>( - () async => _i88.StorageIdentityDataSource( + gh.factory<_i105.SecureStorageDidProfileInfoDataSource>(() => + _i105.SecureStorageDidProfileInfoDataSource( + gh<_i105.SecureDidProfileInfoStoreRefWrapper>())); + gh.factory<_i106.SecureStorageInteractionDataSource>(() => + _i106.SecureStorageInteractionDataSource( + gh<_i106.SecureInteractionStoreRefWrapper>())); + gh.factory<_i107.SecureStorageProfilesStoreRefWrapper>(() => + _i107.SecureStorageProfilesStoreRefWrapper( + gh<_i13.StoreRef>>( + instanceName: 'profilesStore'))); + gh.factory<_i84.StorageClaimDataSource>( + () => _i84.StorageClaimDataSource(gh<_i84.ClaimStoreRefWrapper>())); + gh.factoryAsync<_i90.StorageIdentityDataSource>( + () async => _i90.StorageIdentityDataSource( await getAsync<_i13.Database>(), - gh<_i88.IdentityStoreRefWrapper>(), + gh<_i90.IdentityStoreRefWrapper>(), )); - gh.factoryAsync<_i89.StorageInteractionDataSource>( - () async => _i89.StorageInteractionDataSource( + gh.factoryAsync<_i91.StorageInteractionDataSource>( + () async => _i91.StorageInteractionDataSource( await getAsync<_i13.Database>(), - gh<_i89.InteractionStoreRefWrapper>(), + gh<_i91.InteractionStoreRefWrapper>(), )); - gh.factoryAsync<_i90.StorageKeyValueDataSource>( - () async => _i90.StorageKeyValueDataSource( + gh.factoryAsync<_i92.StorageKeyValueDataSource>( + () async => _i92.StorageKeyValueDataSource( await getAsync<_i13.Database>(), - gh<_i90.KeyValueStoreRefWrapper>(), + gh<_i92.KeyValueStoreRefWrapper>(), )); - gh.factory<_i87.StorageSMTDataSource>( - () => _i87.StorageSMTDataSource(gh<_i87.IdentitySMTStoreRefWrapper>())); - gh.factory<_i67.WalletDataSource>( - () => _i67.WalletDataSource(gh<_i67.WalletLibWrapper>())); - gh.factory<_i71.WitnessDataSource>( - () => _i71.WitnessDataSource(gh<_i71.WitnessIsolatesWrapper>())); - gh.factoryAsync<_i104.ConfigRepositoryImpl>( - () async => _i104.ConfigRepositoryImpl( - await getAsync<_i90.StorageKeyValueDataSource>(), - gh<_i19.EnvMapper>(), + gh.factory<_i89.StorageSMTDataSource>( + () => _i89.StorageSMTDataSource(gh<_i89.IdentitySMTStoreRefWrapper>())); + gh.factory<_i68.WalletDataSource>( + () => _i68.WalletDataSource(gh<_i68.WalletLibWrapper>())); + gh.factory<_i72.WitnessDataSource>( + () => _i72.WitnessDataSource(gh<_i72.WitnessIsolatesWrapper>())); + gh.factoryAsync<_i108.ConfigRepositoryImpl>( + () async => _i108.ConfigRepositoryImpl( + await getAsync<_i92.StorageKeyValueDataSource>(), + gh<_i20.EnvMapper>(), )); - gh.factory<_i105.CredentialRepositoryImpl>( - () => _i105.CredentialRepositoryImpl( - gh<_i100.RemoteClaimDataSource>(), - gh<_i83.StorageClaimDataSource>(), - gh<_i95.LocalClaimDataSource>(), - gh<_i82.ClaimMapper>(), - gh<_i21.FiltersMapper>(), - gh<_i27.IdFilterMapper>(), + gh.factory<_i109.CredentialRepositoryImpl>( + () => _i109.CredentialRepositoryImpl( + gh<_i102.RemoteClaimDataSource>(), + gh<_i84.StorageClaimDataSource>(), + gh<_i97.LocalClaimDataSource>(), + gh<_i83.ClaimMapper>(), + gh<_i22.FiltersMapper>(), + gh<_i28.IdFilterMapper>(), )); - gh.factoryAsync<_i106.GetPackageNameUseCase>(() async => - _i106.GetPackageNameUseCase( - await getAsync<_i98.PackageInfoRepository>())); - gh.factory<_i107.GistMTProofMapper>(() => _i107.GistMTProofMapper( - gh<_i96.MTProofMapper>(), - gh<_i25.HashMapper>(), + gh.factory<_i110.DidProfileInfoRepositoryImpl>( + () => _i110.DidProfileInfoRepositoryImpl( + gh<_i105.SecureStorageDidProfileInfoDataSource>(), + gh<_i22.FiltersMapper>(), + gh<_i14.DidProfileInfoInteractedDidFilterMapper>(), + )); + gh.factoryAsync<_i111.GetPackageNameUseCase>(() async => + _i111.GetPackageNameUseCase( + await getAsync<_i100.PackageInfoRepository>())); + gh.factory<_i112.GistMTProofMapper>(() => _i112.GistMTProofMapper( + gh<_i98.MTProofMapper>(), + gh<_i26.HashMapper>(), )); - gh.factory<_i108.Iden3commCredentialRepositoryImpl>( - () => _i108.Iden3commCredentialRepositoryImpl( - gh<_i101.RemoteIden3commDataSource>(), - gh<_i56.ProofRequestFiltersMapper>(), - gh<_i82.ClaimMapper>(), + gh.factory<_i113.Iden3commCredentialRepositoryImpl>( + () => _i113.Iden3commCredentialRepositoryImpl( + gh<_i103.RemoteIden3commDataSource>(), + gh<_i57.ProofRequestFiltersMapper>(), + gh<_i83.ClaimMapper>(), )); - gh.factory<_i109.Iden3commRepositoryImpl>( - () => _i109.Iden3commRepositoryImpl( - gh<_i28.Iden3MessageDataSource>(), - gh<_i101.RemoteIden3commDataSource>(), - gh<_i92.LibPolygonIdCoreIden3commDataSource>(), - gh<_i35.LibBabyJubJubDataSource>(), + gh.factory<_i114.Iden3commRepositoryImpl>( + () => _i114.Iden3commRepositoryImpl( + gh<_i29.Iden3MessageDataSource>(), + gh<_i103.RemoteIden3commDataSource>(), + gh<_i94.LibPolygonIdCoreIden3commDataSource>(), + gh<_i36.LibBabyJubJubDataSource>(), gh<_i5.AuthResponseMapper>(), gh<_i4.AuthInputsMapper>(), - gh<_i79.AuthProofMapper>(), - gh<_i107.GistMTProofMapper>(), - gh<_i59.QMapper>(), - gh<_i34.JWZMapper>(), - gh<_i86.Iden3commProofMapper>(), + gh<_i80.AuthProofMapper>(), + gh<_i112.GistMTProofMapper>(), + gh<_i60.QMapper>(), + gh<_i35.JWZMapper>(), + gh<_i88.Iden3commProofMapper>(), )); - gh.factoryAsync<_i110.InteractionRepositoryImpl>( - () async => _i110.InteractionRepositoryImpl( - gh<_i103.SecureStorageInteractionDataSource>(), - await getAsync<_i89.StorageInteractionDataSource>(), - gh<_i33.InteractionMapper>(), - gh<_i21.FiltersMapper>(), - gh<_i32.InteractionIdFilterMapper>(), + gh.factoryAsync<_i115.InteractionRepositoryImpl>( + () async => _i115.InteractionRepositoryImpl( + gh<_i106.SecureStorageInteractionDataSource>(), + await getAsync<_i91.StorageInteractionDataSource>(), + gh<_i34.InteractionMapper>(), + gh<_i22.FiltersMapper>(), + gh<_i33.InteractionIdFilterMapper>(), )); - gh.factory<_i94.LibPolygonIdCoreProofDataSource>(() => - _i94.LibPolygonIdCoreProofDataSource( - gh<_i94.LibPolygonIdCoreWrapper>())); - gh.factory<_i111.SMTDataSource>(() => _i111.SMTDataSource( - gh<_i26.HexMapper>(), - gh<_i35.LibBabyJubJubDataSource>(), - gh<_i87.StorageSMTDataSource>(), + gh.factory<_i96.LibPolygonIdCoreProofDataSource>(() => + _i96.LibPolygonIdCoreProofDataSource( + gh<_i96.LibPolygonIdCoreWrapper>())); + gh.factory<_i116.SMTDataSource>(() => _i116.SMTDataSource( + gh<_i27.HexMapper>(), + gh<_i36.LibBabyJubJubDataSource>(), + gh<_i89.StorageSMTDataSource>(), )); - gh.factory<_i112.SMTRepositoryImpl>(() => _i112.SMTRepositoryImpl( - gh<_i111.SMTDataSource>(), - gh<_i87.StorageSMTDataSource>(), - gh<_i35.LibBabyJubJubDataSource>(), - gh<_i97.NodeMapper>(), - gh<_i25.HashMapper>(), - gh<_i96.MTProofMapper>(), - gh<_i66.TreeTypeMapper>(), - gh<_i65.TreeStateMapper>(), + gh.factory<_i117.SMTRepositoryImpl>(() => _i117.SMTRepositoryImpl( + gh<_i116.SMTDataSource>(), + gh<_i89.StorageSMTDataSource>(), + gh<_i36.LibBabyJubJubDataSource>(), + gh<_i99.NodeMapper>(), + gh<_i26.HashMapper>(), + gh<_i98.MTProofMapper>(), + gh<_i67.TreeTypeMapper>(), + gh<_i66.TreeStateMapper>(), )); - gh.factoryAsync<_i113.ConfigRepository>(() async => repositoriesModule - .configRepository(await getAsync<_i104.ConfigRepositoryImpl>())); - gh.factory<_i114.CredentialRepository>(() => repositoriesModule - .credentialRepository(gh<_i105.CredentialRepositoryImpl>())); - gh.factory<_i115.GetAuthClaimUseCase>(() => _i115.GetAuthClaimUseCase( - gh<_i114.CredentialRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i107.SecureStorageProfilesDataSource>(() => + _i107.SecureStorageProfilesDataSource( + gh<_i107.SecureStorageProfilesStoreRefWrapper>())); + gh.factoryAsync<_i118.ConfigRepository>(() async => repositoriesModule + .configRepository(await getAsync<_i108.ConfigRepositoryImpl>())); + gh.factory<_i119.CredentialRepository>(() => repositoriesModule + .credentialRepository(gh<_i109.CredentialRepositoryImpl>())); + gh.factory<_i120.DidProfileInfoRepository>(() => repositoriesModule + .didProfileInfoRepository(gh<_i110.DidProfileInfoRepositoryImpl>())); + gh.factory<_i121.GetAuthClaimUseCase>(() => _i121.GetAuthClaimUseCase( + gh<_i119.CredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i116.GetClaimRevocationNonceUseCase>(() => - _i116.GetClaimRevocationNonceUseCase(gh<_i114.CredentialRepository>())); - gh.factoryAsync<_i117.GetEnvUseCase>(() async => _i117.GetEnvUseCase( - await getAsync<_i113.ConfigRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i122.GetClaimRevocationNonceUseCase>(() => + _i122.GetClaimRevocationNonceUseCase(gh<_i119.CredentialRepository>())); + gh.factory<_i123.GetDidProfileInfoListUseCase>(() => + _i123.GetDidProfileInfoListUseCase( + gh<_i120.DidProfileInfoRepository>())); + gh.factory<_i124.GetDidProfileInfoUseCase>(() => + _i124.GetDidProfileInfoUseCase(gh<_i120.DidProfileInfoRepository>())); + gh.factoryAsync<_i125.GetEnvUseCase>(() async => _i125.GetEnvUseCase( + await getAsync<_i118.ConfigRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i118.Iden3commCredentialRepository>(() => + gh.factory<_i126.Iden3commCredentialRepository>(() => repositoriesModule.iden3commCredentialRepository( - gh<_i108.Iden3commCredentialRepositoryImpl>())); - gh.factory<_i119.Iden3commRepository>(() => repositoriesModule - .iden3commRepository(gh<_i109.Iden3commRepositoryImpl>())); - gh.factoryAsync<_i120.InteractionRepository>(() async => + gh<_i113.Iden3commCredentialRepositoryImpl>())); + gh.factory<_i127.Iden3commRepository>(() => repositoriesModule + .iden3commRepository(gh<_i114.Iden3commRepositoryImpl>())); + gh.factoryAsync<_i128.InteractionRepository>(() async => repositoriesModule.interactionRepository( - await getAsync<_i110.InteractionRepositoryImpl>())); - gh.factoryAsync<_i121.ListenAndStoreNotificationUseCase>(() async => - _i121.ListenAndStoreNotificationUseCase( - await getAsync<_i120.InteractionRepository>())); - gh.factoryAsync<_i122.RPCDataSource>( - () async => _i122.RPCDataSource(await getAsync<_i117.GetEnvUseCase>())); - gh.factory<_i123.RemoveAllClaimsUseCase>(() => _i123.RemoveAllClaimsUseCase( - gh<_i114.CredentialRepository>(), - gh<_i63.StacktraceManager>(), + await getAsync<_i115.InteractionRepositoryImpl>())); + gh.factoryAsync<_i129.ListenAndStoreNotificationUseCase>(() async => + _i129.ListenAndStoreNotificationUseCase( + await getAsync<_i128.InteractionRepository>())); + gh.factoryAsync<_i130.RPCDataSource>( + () async => _i130.RPCDataSource(await getAsync<_i125.GetEnvUseCase>())); + gh.factory<_i131.RemoveAllClaimsUseCase>(() => _i131.RemoveAllClaimsUseCase( + gh<_i119.CredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i124.RemoveClaimsUseCase>(() => _i124.RemoveClaimsUseCase( - gh<_i114.CredentialRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i132.RemoveClaimsUseCase>(() => _i132.RemoveClaimsUseCase( + gh<_i119.CredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i125.SMTRepository>( - () => repositoriesModule.smtRepository(gh<_i112.SMTRepositoryImpl>())); - gh.factory<_i126.SaveClaimsUseCase>(() => _i126.SaveClaimsUseCase( - gh<_i114.CredentialRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i133.RemoveDidProfileInfoUseCase>(() => + _i133.RemoveDidProfileInfoUseCase( + gh<_i120.DidProfileInfoRepository>())); + gh.factory<_i134.SMTRepository>( + () => repositoriesModule.smtRepository(gh<_i117.SMTRepositoryImpl>())); + gh.factory<_i135.SaveClaimsUseCase>(() => _i135.SaveClaimsUseCase( + gh<_i119.CredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i127.SetEnvUseCase>(() async => - _i127.SetEnvUseCase(await getAsync<_i113.ConfigRepository>())); - gh.factory<_i128.UpdateClaimUseCase>(() => _i128.UpdateClaimUseCase( - gh<_i114.CredentialRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i136.SetEnvUseCase>(() async => + _i136.SetEnvUseCase(await getAsync<_i118.ConfigRepository>())); + gh.factory<_i137.UpdateClaimUseCase>(() => _i137.UpdateClaimUseCase( + gh<_i119.CredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i129.CleanSchemaCacheUseCase>( - () => _i129.CleanSchemaCacheUseCase(gh<_i119.Iden3commRepository>())); - gh.factory<_i130.GetAuthChallengeUseCase>( - () => _i130.GetAuthChallengeUseCase( - gh<_i119.Iden3commRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i138.AddDidProfileInfoUseCase>(() => + _i138.AddDidProfileInfoUseCase(gh<_i120.DidProfileInfoRepository>())); + gh.factory<_i139.CleanSchemaCacheUseCase>( + () => _i139.CleanSchemaCacheUseCase(gh<_i127.Iden3commRepository>())); + gh.factory<_i140.GetAuthChallengeUseCase>( + () => _i140.GetAuthChallengeUseCase( + gh<_i127.Iden3commRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i131.GetJWZUseCase>(() => _i131.GetJWZUseCase( - gh<_i119.Iden3commRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i141.GetJWZUseCase>(() => _i141.GetJWZUseCase( + gh<_i127.Iden3commRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i132.GetLatestStateUseCase>(() => _i132.GetLatestStateUseCase( - gh<_i125.SMTRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i142.GetLatestStateUseCase>(() => _i142.GetLatestStateUseCase( + gh<_i134.SMTRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i133.GetProofQueryContextUseCase>( - () => _i133.GetProofQueryContextUseCase( - gh<_i118.Iden3commCredentialRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i143.GetProofQueryContextUseCase>( + () => _i143.GetProofQueryContextUseCase( + gh<_i126.Iden3commCredentialRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i134.GetProofRequestsUseCase>( - () => _i134.GetProofRequestsUseCase( - gh<_i133.GetProofQueryContextUseCase>(), - gh<_i85.GetProofQueryUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i144.GetProofRequestsUseCase>( + () => _i144.GetProofRequestsUseCase( + gh<_i143.GetProofQueryContextUseCase>(), + gh<_i87.GetProofQueryUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i135.GetSchemasUseCase>(() => - _i135.GetSchemasUseCase(gh<_i118.Iden3commCredentialRepository>())); - gh.factoryAsync<_i136.IdentityRepositoryImpl>( - () async => _i136.IdentityRepositoryImpl( - gh<_i67.WalletDataSource>(), - gh<_i60.RemoteIdentityDataSource>(), - await getAsync<_i88.StorageIdentityDataSource>(), - await getAsync<_i122.RPCDataSource>(), - gh<_i36.LocalContractFilesDataSource>(), - gh<_i35.LibBabyJubJubDataSource>(), - gh<_i93.LibPolygonIdCoreIdentityDataSource>(), - gh<_i17.EncryptionDbDataSource>(), + gh.factory<_i145.GetSchemasUseCase>(() => + _i145.GetSchemasUseCase(gh<_i126.Iden3commCredentialRepository>())); + gh.factoryAsync<_i146.IdentityRepositoryImpl>( + () async => _i146.IdentityRepositoryImpl( + gh<_i68.WalletDataSource>(), + gh<_i61.RemoteIdentityDataSource>(), + await getAsync<_i90.StorageIdentityDataSource>(), + await getAsync<_i130.RPCDataSource>(), + gh<_i37.LocalContractFilesDataSource>(), + gh<_i36.LibBabyJubJubDataSource>(), + gh<_i95.LibPolygonIdCoreIdentityDataSource>(), + gh<_i18.EncryptionDbDataSource>(), gh<_i12.DestinationPathDataSource>(), - gh<_i26.HexMapper>(), - gh<_i53.PrivateKeyMapper>(), - gh<_i31.IdentityDTOMapper>(), - gh<_i102.RhsNodeMapper>(), - gh<_i64.StateIdentifierMapper>(), - gh<_i97.NodeMapper>(), - gh<_i18.EncryptionKeyMapper>(), + gh<_i27.HexMapper>(), + gh<_i54.PrivateKeyMapper>(), + gh<_i32.IdentityDTOMapper>(), + gh<_i104.RhsNodeMapper>(), + gh<_i65.StateIdentifierMapper>(), + gh<_i99.NodeMapper>(), + gh<_i19.EncryptionKeyMapper>(), + gh<_i107.SecureStorageProfilesDataSource>(), )); - gh.factoryAsync<_i137.ProofRepositoryImpl>( - () async => _i137.ProofRepositoryImpl( - gh<_i71.WitnessDataSource>(), - gh<_i58.ProverLibDataSource>(), - gh<_i94.LibPolygonIdCoreProofDataSource>(), - gh<_i24.GistMTProofDataSource>(), - gh<_i54.ProofCircuitDataSource>(), - gh<_i60.RemoteIdentityDataSource>(), - gh<_i36.LocalContractFilesDataSource>(), - gh<_i80.CircuitsDownloadDataSource>(), - await getAsync<_i122.RPCDataSource>(), + gh.factoryAsync<_i147.ProofRepositoryImpl>( + () async => _i147.ProofRepositoryImpl( + gh<_i72.WitnessDataSource>(), + gh<_i59.ProverLibDataSource>(), + gh<_i96.LibPolygonIdCoreProofDataSource>(), + gh<_i25.GistMTProofDataSource>(), + gh<_i55.ProofCircuitDataSource>(), + gh<_i61.RemoteIdentityDataSource>(), + gh<_i37.LocalContractFilesDataSource>(), + gh<_i81.CircuitsDownloadDataSource>(), + await getAsync<_i130.RPCDataSource>(), gh<_i8.CircuitTypeMapper>(), - gh<_i77.ZKProofMapper>(), - gh<_i82.ClaimMapper>(), - gh<_i61.RevocationStatusMapper>(), - gh<_i79.AuthProofMapper>(), - gh<_i107.GistMTProofMapper>(), - await getAsync<_i81.CircuitsFilesDataSource>(), - gh<_i63.StacktraceManager>(), + gh<_i78.ZKProofMapper>(), + gh<_i83.ClaimMapper>(), + gh<_i62.RevocationStatusMapper>(), + gh<_i80.AuthProofMapper>(), + gh<_i112.GistMTProofMapper>(), + await getAsync<_i82.CircuitsFilesDataSource>(), + gh<_i64.StacktraceManager>(), )); - gh.factory<_i138.RemoveIdentityStateUseCase>( - () => _i138.RemoveIdentityStateUseCase( - gh<_i125.SMTRepository>(), - gh<_i63.StacktraceManager>(), + gh.factory<_i148.RemoveIdentityStateUseCase>( + () => _i148.RemoveIdentityStateUseCase( + gh<_i134.SMTRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i139.IdentityRepository>(() async => repositoriesModule - .identityRepository(await getAsync<_i136.IdentityRepositoryImpl>())); - gh.factoryAsync<_i140.ProofRepository>(() async => repositoriesModule - .proofRepository(await getAsync<_i137.ProofRepositoryImpl>())); - gh.factoryAsync<_i141.ProveUseCase>(() async => _i141.ProveUseCase( - await getAsync<_i140.ProofRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i149.IdentityRepository>(() async => repositoriesModule + .identityRepository(await getAsync<_i146.IdentityRepositoryImpl>())); + gh.factoryAsync<_i150.ProofRepository>(() async => repositoriesModule + .proofRepository(await getAsync<_i147.ProofRepositoryImpl>())); + gh.factoryAsync<_i151.ProveUseCase>(() async => _i151.ProveUseCase( + await getAsync<_i150.ProofRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i142.SignMessageUseCase>(() async => - _i142.SignMessageUseCase(await getAsync<_i139.IdentityRepository>())); - gh.factoryAsync<_i143.CancelDownloadCircuitsUseCase>(() async => - _i143.CancelDownloadCircuitsUseCase( - await getAsync<_i140.ProofRepository>())); - gh.factoryAsync<_i144.CircuitsFilesExistUseCase>(() async => - _i144.CircuitsFilesExistUseCase( - await getAsync<_i140.ProofRepository>())); - gh.factoryAsync<_i145.DownloadCircuitsUseCase>(() async => - _i145.DownloadCircuitsUseCase(await getAsync<_i140.ProofRepository>())); - gh.factoryAsync<_i146.FetchStateRootsUseCase>(() async => - _i146.FetchStateRootsUseCase( - await getAsync<_i139.IdentityRepository>())); - gh.factoryAsync<_i147.GenerateZKProofUseCase>( - () async => _i147.GenerateZKProofUseCase( - await getAsync<_i140.ProofRepository>(), - await getAsync<_i141.ProveUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i152.SignMessageUseCase>(() async => + _i152.SignMessageUseCase(await getAsync<_i149.IdentityRepository>())); + gh.factoryAsync<_i153.CancelDownloadCircuitsUseCase>(() async => + _i153.CancelDownloadCircuitsUseCase( + await getAsync<_i150.ProofRepository>())); + gh.factoryAsync<_i154.CircuitsFilesExistUseCase>(() async => + _i154.CircuitsFilesExistUseCase( + await getAsync<_i150.ProofRepository>())); + gh.factoryAsync<_i155.DownloadCircuitsUseCase>(() async => + _i155.DownloadCircuitsUseCase(await getAsync<_i150.ProofRepository>())); + gh.factoryAsync<_i156.FetchStateRootsUseCase>(() async => + _i156.FetchStateRootsUseCase( + await getAsync<_i149.IdentityRepository>())); + gh.factoryAsync<_i157.GenerateZKProofUseCase>( + () async => _i157.GenerateZKProofUseCase( + await getAsync<_i150.ProofRepository>(), + await getAsync<_i151.ProveUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i148.GetDidUseCase>(() async => - _i148.GetDidUseCase(await getAsync<_i139.IdentityRepository>())); - gh.factoryAsync<_i149.GetGistMTProofUseCase>( - () async => _i149.GetGistMTProofUseCase( - await getAsync<_i140.ProofRepository>(), - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i148.GetDidUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i158.GetDidUseCase>(() async => + _i158.GetDidUseCase(await getAsync<_i149.IdentityRepository>())); + gh.factoryAsync<_i159.GetGistMTProofUseCase>( + () async => _i159.GetGistMTProofUseCase( + await getAsync<_i150.ProofRepository>(), + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i158.GetDidUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i150.GetIdentitiesUseCase>( - () async => _i150.GetIdentitiesUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i160.GetIdentitiesUseCase>( + () async => _i160.GetIdentitiesUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i151.GetIdentityAuthClaimUseCase>( - () async => _i151.GetIdentityAuthClaimUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i115.GetAuthClaimUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i161.GetIdentityAuthClaimUseCase>( + () async => _i161.GetIdentityAuthClaimUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i121.GetAuthClaimUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i152.GetPrivateKeyUseCase>( - () async => _i152.GetPrivateKeyUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i162.GetPrivateKeyUseCase>( + () async => _i162.GetPrivateKeyUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i153.GetPublicKeysUseCase>( - () async => _i153.GetPublicKeysUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i163.GetPublicKeysUseCase>( + () async => _i163.GetPublicKeysUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i154.IsProofCircuitSupportedUseCase>(() async => - _i154.IsProofCircuitSupportedUseCase( - await getAsync<_i140.ProofRepository>())); - gh.factoryAsync<_i155.LoadCircuitUseCase>( - () async => _i155.LoadCircuitUseCase( - await getAsync<_i140.ProofRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i164.IsProofCircuitSupportedUseCase>(() async => + _i164.IsProofCircuitSupportedUseCase( + await getAsync<_i150.ProofRepository>())); + gh.factoryAsync<_i165.LoadCircuitUseCase>( + () async => _i165.LoadCircuitUseCase( + await getAsync<_i150.ProofRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i156.Proof>(() async => _i156.Proof( - await getAsync<_i147.GenerateZKProofUseCase>(), - await getAsync<_i145.DownloadCircuitsUseCase>(), - await getAsync<_i144.CircuitsFilesExistUseCase>(), - gh<_i55.ProofGenerationStepsStreamManager>(), - await getAsync<_i143.CancelDownloadCircuitsUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i166.Proof>(() async => _i166.Proof( + await getAsync<_i157.GenerateZKProofUseCase>(), + await getAsync<_i155.DownloadCircuitsUseCase>(), + await getAsync<_i154.CircuitsFilesExistUseCase>(), + gh<_i56.ProofGenerationStepsStreamManager>(), + await getAsync<_i153.CancelDownloadCircuitsUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i157.CreateIdentityStateUseCase>( - () async => _i157.CreateIdentityStateUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i125.SMTRepository>(), - await getAsync<_i151.GetIdentityAuthClaimUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i167.CreateIdentityStateUseCase>( + () async => _i167.CreateIdentityStateUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i134.SMTRepository>(), + await getAsync<_i161.GetIdentityAuthClaimUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i158.FetchIdentityStateUseCase>( - () async => _i158.FetchIdentityStateUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i148.GetDidUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i168.FetchIdentityStateUseCase>( + () async => _i168.FetchIdentityStateUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i158.GetDidUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i159.GenerateNonRevProofUseCase>( - () async => _i159.GenerateNonRevProofUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i114.CredentialRepository>(), - await getAsync<_i158.FetchIdentityStateUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i169.GenerateNonRevProofUseCase>( + () async => _i169.GenerateNonRevProofUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i119.CredentialRepository>(), + await getAsync<_i168.FetchIdentityStateUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i160.GetFiltersUseCase>( - () async => _i160.GetFiltersUseCase( - gh<_i118.Iden3commCredentialRepository>(), - await getAsync<_i154.IsProofCircuitSupportedUseCase>(), - gh<_i134.GetProofRequestsUseCase>(), + gh.factoryAsync<_i170.GetFiltersUseCase>( + () async => _i170.GetFiltersUseCase( + gh<_i126.Iden3commCredentialRepository>(), + await getAsync<_i164.IsProofCircuitSupportedUseCase>(), + gh<_i144.GetProofRequestsUseCase>(), )); - gh.factoryAsync<_i161.GetGenesisStateUseCase>( - () async => _i161.GetGenesisStateUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i125.SMTRepository>(), - await getAsync<_i151.GetIdentityAuthClaimUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i171.GetGenesisStateUseCase>( + () async => _i171.GetGenesisStateUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i134.SMTRepository>(), + await getAsync<_i161.GetIdentityAuthClaimUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i162.GetNonRevProofUseCase>( - () async => _i162.GetNonRevProofUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i114.CredentialRepository>(), - await getAsync<_i158.FetchIdentityStateUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i172.GetNonRevProofUseCase>( + () async => _i172.GetNonRevProofUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i119.CredentialRepository>(), + await getAsync<_i168.FetchIdentityStateUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i163.GetClaimRevocationStatusUseCase>( - () async => _i163.GetClaimRevocationStatusUseCase( - gh<_i114.CredentialRepository>(), - await getAsync<_i159.GenerateNonRevProofUseCase>(), - await getAsync<_i162.GetNonRevProofUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i173.GetClaimRevocationStatusUseCase>( + () async => _i173.GetClaimRevocationStatusUseCase( + gh<_i119.CredentialRepository>(), + await getAsync<_i169.GenerateNonRevProofUseCase>(), + await getAsync<_i172.GetNonRevProofUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i164.GetDidIdentifierUseCase>( - () async => _i164.GetDidIdentifierUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i161.GetGenesisStateUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i174.GetDidIdentifierUseCase>( + () async => _i174.GetDidIdentifierUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i171.GetGenesisStateUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i165.GetIdentityUseCase>( - () async => _i165.GetIdentityUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i148.GetDidUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i175.GetIdentityUseCase>( + () async => _i175.GetIdentityUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i158.GetDidUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i166.GetInteractionsUseCase>( - () async => _i166.GetInteractionsUseCase( - await getAsync<_i120.InteractionRepository>(), + gh.factoryAsync<_i176.GetInteractionsUseCase>( + () async => _i176.GetInteractionsUseCase( + await getAsync<_i128.InteractionRepository>(), gh<_i7.CheckProfileValidityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), )); - gh.factoryAsync<_i167.RemoveInteractionsUseCase>( - () async => _i167.RemoveInteractionsUseCase( - await getAsync<_i120.InteractionRepository>(), - await getAsync<_i165.GetIdentityUseCase>(), + gh.factoryAsync<_i177.RemoveInteractionsUseCase>( + () async => _i177.RemoveInteractionsUseCase( + await getAsync<_i128.InteractionRepository>(), + await getAsync<_i175.GetIdentityUseCase>(), )); - gh.factoryAsync<_i168.AddInteractionUseCase>( - () async => _i168.AddInteractionUseCase( - await getAsync<_i120.InteractionRepository>(), + gh.factoryAsync<_i178.AddInteractionUseCase>( + () async => _i178.AddInteractionUseCase( + await getAsync<_i128.InteractionRepository>(), gh<_i7.CheckProfileValidityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), )); - gh.factoryAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>( - () async => _i169.CheckProfileAndDidCurrentEnvUseCase( + gh.factoryAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>( + () async => _i179.CheckProfileAndDidCurrentEnvUseCase( gh<_i7.CheckProfileValidityUseCase>(), - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i170.GenerateIden3commProofUseCase>( - () async => _i170.GenerateIden3commProofUseCase( - await getAsync<_i139.IdentityRepository>(), - gh<_i125.SMTRepository>(), - await getAsync<_i140.ProofRepository>(), - await getAsync<_i141.ProveUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - gh<_i115.GetAuthClaimUseCase>(), - await getAsync<_i149.GetGistMTProofUseCase>(), - await getAsync<_i148.GetDidUseCase>(), - await getAsync<_i142.SignMessageUseCase>(), - gh<_i132.GetLatestStateUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i180.GenerateIden3commProofUseCase>( + () async => _i180.GenerateIden3commProofUseCase( + await getAsync<_i149.IdentityRepository>(), + gh<_i134.SMTRepository>(), + await getAsync<_i150.ProofRepository>(), + await getAsync<_i151.ProveUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), + gh<_i121.GetAuthClaimUseCase>(), + await getAsync<_i159.GetGistMTProofUseCase>(), + await getAsync<_i158.GetDidUseCase>(), + await getAsync<_i152.SignMessageUseCase>(), + gh<_i142.GetLatestStateUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i171.GetAuthInputsUseCase>( - () async => _i171.GetAuthInputsUseCase( - await getAsync<_i165.GetIdentityUseCase>(), - gh<_i115.GetAuthClaimUseCase>(), - await getAsync<_i142.SignMessageUseCase>(), - await getAsync<_i149.GetGistMTProofUseCase>(), - gh<_i132.GetLatestStateUseCase>(), - gh<_i119.Iden3commRepository>(), - await getAsync<_i139.IdentityRepository>(), - gh<_i125.SMTRepository>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i181.GetAuthInputsUseCase>( + () async => _i181.GetAuthInputsUseCase( + await getAsync<_i175.GetIdentityUseCase>(), + gh<_i121.GetAuthClaimUseCase>(), + await getAsync<_i152.SignMessageUseCase>(), + await getAsync<_i159.GetGistMTProofUseCase>(), + gh<_i142.GetLatestStateUseCase>(), + gh<_i127.Iden3commRepository>(), + await getAsync<_i149.IdentityRepository>(), + gh<_i134.SMTRepository>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i172.GetAuthTokenUseCase>( - () async => _i172.GetAuthTokenUseCase( - await getAsync<_i155.LoadCircuitUseCase>(), - gh<_i131.GetJWZUseCase>(), - gh<_i130.GetAuthChallengeUseCase>(), - await getAsync<_i171.GetAuthInputsUseCase>(), - await getAsync<_i141.ProveUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i182.GetAuthTokenUseCase>( + () async => _i182.GetAuthTokenUseCase( + await getAsync<_i165.LoadCircuitUseCase>(), + gh<_i141.GetJWZUseCase>(), + gh<_i140.GetAuthChallengeUseCase>(), + await getAsync<_i181.GetAuthInputsUseCase>(), + await getAsync<_i151.ProveUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i173.GetCurrentEnvDidIdentifierUseCase>( - () async => _i173.GetCurrentEnvDidIdentifierUseCase( - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i183.GetCurrentEnvDidIdentifierUseCase>( + () async => _i183.GetCurrentEnvDidIdentifierUseCase( + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i174.GetProfilesUseCase>( - () async => _i174.GetProfilesUseCase( - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i184.GetProfilesUseCase>( + () async => _i184.GetProfilesUseCase( + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i175.UpdateInteractionUseCase>( - () async => _i175.UpdateInteractionUseCase( - await getAsync<_i120.InteractionRepository>(), + gh.factoryAsync<_i185.UpdateInteractionUseCase>( + () async => _i185.UpdateInteractionUseCase( + await getAsync<_i128.InteractionRepository>(), gh<_i7.CheckProfileValidityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i168.AddInteractionUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i178.AddInteractionUseCase>(), )); - gh.factoryAsync<_i176.BackupIdentityUseCase>( - () async => _i176.BackupIdentityUseCase( - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i186.BackupIdentityUseCase>( + () async => _i186.BackupIdentityUseCase( + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i177.CheckIdentityValidityUseCase>( - () async => _i177.CheckIdentityValidityUseCase( - await getAsync<_i152.GetPrivateKeyUseCase>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i187.CheckIdentityValidityUseCase>( + () async => _i187.CheckIdentityValidityUseCase( + await getAsync<_i162.GetPrivateKeyUseCase>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i178.CreateIdentityUseCase>( - () async => _i178.CreateIdentityUseCase( - await getAsync<_i153.GetPublicKeysUseCase>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i188.CreateIdentityUseCase>( + () async => _i188.CreateIdentityUseCase( + await getAsync<_i163.GetPublicKeysUseCase>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i179.CreateProfilesUseCase>( - () async => _i179.CreateProfilesUseCase( - await getAsync<_i153.GetPublicKeysUseCase>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i189.CreateProfilesUseCase>( + () async => _i189.CreateProfilesUseCase( + await getAsync<_i163.GetPublicKeysUseCase>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i180.FetchAndSaveClaimsUseCase>( - () async => _i180.FetchAndSaveClaimsUseCase( - gh<_i118.Iden3commCredentialRepository>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - gh<_i22.GetFetchRequestsUseCase>(), - await getAsync<_i172.GetAuthTokenUseCase>(), - gh<_i126.SaveClaimsUseCase>(), - await getAsync<_i163.GetClaimRevocationStatusUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i190.FetchAndSaveClaimsUseCase>( + () async => _i190.FetchAndSaveClaimsUseCase( + gh<_i126.Iden3commCredentialRepository>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + gh<_i23.GetFetchRequestsUseCase>(), + await getAsync<_i182.GetAuthTokenUseCase>(), + gh<_i135.SaveClaimsUseCase>(), + await getAsync<_i173.GetClaimRevocationStatusUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i181.GetClaimsUseCase>(() async => _i181.GetClaimsUseCase( - gh<_i114.CredentialRepository>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i191.GetClaimsUseCase>(() async => _i191.GetClaimsUseCase( + gh<_i119.CredentialRepository>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i182.GetIden3commClaimsRevNonceUseCase>( - () async => _i182.GetIden3commClaimsRevNonceUseCase( - gh<_i118.Iden3commCredentialRepository>(), - await getAsync<_i181.GetClaimsUseCase>(), - gh<_i116.GetClaimRevocationNonceUseCase>(), - await getAsync<_i154.IsProofCircuitSupportedUseCase>(), - gh<_i134.GetProofRequestsUseCase>(), + gh.factoryAsync<_i192.GetIden3commClaimsRevNonceUseCase>( + () async => _i192.GetIden3commClaimsRevNonceUseCase( + gh<_i126.Iden3commCredentialRepository>(), + await getAsync<_i191.GetClaimsUseCase>(), + gh<_i122.GetClaimRevocationNonceUseCase>(), + await getAsync<_i164.IsProofCircuitSupportedUseCase>(), + gh<_i144.GetProofRequestsUseCase>(), )); - gh.factoryAsync<_i183.GetIden3commClaimsUseCase>( - () async => _i183.GetIden3commClaimsUseCase( - gh<_i118.Iden3commCredentialRepository>(), - await getAsync<_i181.GetClaimsUseCase>(), - await getAsync<_i163.GetClaimRevocationStatusUseCase>(), - gh<_i116.GetClaimRevocationNonceUseCase>(), - gh<_i128.UpdateClaimUseCase>(), - await getAsync<_i154.IsProofCircuitSupportedUseCase>(), - gh<_i134.GetProofRequestsUseCase>(), + gh.factoryAsync<_i193.GetIden3commClaimsUseCase>( + () async => _i193.GetIden3commClaimsUseCase( + gh<_i126.Iden3commCredentialRepository>(), + await getAsync<_i191.GetClaimsUseCase>(), + await getAsync<_i173.GetClaimRevocationStatusUseCase>(), + gh<_i122.GetClaimRevocationNonceUseCase>(), + gh<_i137.UpdateClaimUseCase>(), + await getAsync<_i164.IsProofCircuitSupportedUseCase>(), + gh<_i144.GetProofRequestsUseCase>(), gh<_i8.CircuitTypeMapper>(), - gh<_i63.StacktraceManager>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i184.GetIden3commProofsUseCase>( - () async => _i184.GetIden3commProofsUseCase( - await getAsync<_i140.ProofRepository>(), - await getAsync<_i183.GetIden3commClaimsUseCase>(), - await getAsync<_i170.GenerateIden3commProofUseCase>(), - await getAsync<_i154.IsProofCircuitSupportedUseCase>(), - gh<_i134.GetProofRequestsUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - gh<_i55.ProofGenerationStepsStreamManager>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i194.GetIden3commProofsUseCase>( + () async => _i194.GetIden3commProofsUseCase( + await getAsync<_i150.ProofRepository>(), + await getAsync<_i193.GetIden3commClaimsUseCase>(), + await getAsync<_i180.GenerateIden3commProofUseCase>(), + await getAsync<_i164.IsProofCircuitSupportedUseCase>(), + gh<_i144.GetProofRequestsUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), + gh<_i56.ProofGenerationStepsStreamManager>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i185.UpdateIdentityUseCase>( - () async => _i185.UpdateIdentityUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i178.CreateIdentityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), + gh.factoryAsync<_i195.UpdateIdentityUseCase>( + () async => _i195.UpdateIdentityUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i188.CreateIdentityUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), )); - gh.factoryAsync<_i186.AddIdentityUseCase>( - () async => _i186.AddIdentityUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i178.CreateIdentityUseCase>(), - await getAsync<_i157.CreateIdentityStateUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i196.AddIdentityUseCase>( + () async => _i196.AddIdentityUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i188.CreateIdentityUseCase>(), + await getAsync<_i167.CreateIdentityStateUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i187.AddNewIdentityUseCase>( - () async => _i187.AddNewIdentityUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i186.AddIdentityUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i197.AddNewIdentityUseCase>( + () async => _i197.AddNewIdentityUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i196.AddIdentityUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i188.AddProfileUseCase>( - () async => _i188.AddProfileUseCase( - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i185.UpdateIdentityUseCase>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - await getAsync<_i179.CreateProfilesUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i198.AddProfileUseCase>( + () async => _i198.AddProfileUseCase( + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i195.UpdateIdentityUseCase>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + await getAsync<_i189.CreateProfilesUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i189.AuthenticateUseCase>( - () async => _i189.AuthenticateUseCase( - gh<_i119.Iden3commRepository>(), - await getAsync<_i184.GetIden3commProofsUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - await getAsync<_i172.GetAuthTokenUseCase>(), - await getAsync<_i117.GetEnvUseCase>(), - await getAsync<_i106.GetPackageNameUseCase>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - gh<_i55.ProofGenerationStepsStreamManager>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i199.AuthenticateUseCase>( + () async => _i199.AuthenticateUseCase( + gh<_i127.Iden3commRepository>(), + await getAsync<_i194.GetIden3commProofsUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + await getAsync<_i182.GetAuthTokenUseCase>(), + await getAsync<_i125.GetEnvUseCase>(), + await getAsync<_i111.GetPackageNameUseCase>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + gh<_i56.ProofGenerationStepsStreamManager>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i190.Credential>(() async => _i190.Credential( - gh<_i126.SaveClaimsUseCase>(), - await getAsync<_i181.GetClaimsUseCase>(), - gh<_i124.RemoveClaimsUseCase>(), - await getAsync<_i163.GetClaimRevocationStatusUseCase>(), - gh<_i128.UpdateClaimUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i200.Credential>(() async => _i200.Credential( + gh<_i135.SaveClaimsUseCase>(), + await getAsync<_i191.GetClaimsUseCase>(), + gh<_i132.RemoveClaimsUseCase>(), + await getAsync<_i173.GetClaimRevocationStatusUseCase>(), + gh<_i137.UpdateClaimUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i191.Iden3comm>(() async => _i191.Iden3comm( - await getAsync<_i180.FetchAndSaveClaimsUseCase>(), - gh<_i84.GetIden3MessageUseCase>(), - gh<_i135.GetSchemasUseCase>(), - await getAsync<_i189.AuthenticateUseCase>(), - await getAsync<_i160.GetFiltersUseCase>(), - await getAsync<_i183.GetIden3commClaimsUseCase>(), - await getAsync<_i182.GetIden3commClaimsRevNonceUseCase>(), - await getAsync<_i184.GetIden3commProofsUseCase>(), - await getAsync<_i166.GetInteractionsUseCase>(), - await getAsync<_i168.AddInteractionUseCase>(), - await getAsync<_i167.RemoveInteractionsUseCase>(), - await getAsync<_i175.UpdateInteractionUseCase>(), - gh<_i129.CleanSchemaCacheUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i201.Iden3comm>(() async => _i201.Iden3comm( + await getAsync<_i190.FetchAndSaveClaimsUseCase>(), + gh<_i86.GetIden3MessageUseCase>(), + gh<_i145.GetSchemasUseCase>(), + await getAsync<_i199.AuthenticateUseCase>(), + await getAsync<_i170.GetFiltersUseCase>(), + await getAsync<_i193.GetIden3commClaimsUseCase>(), + await getAsync<_i192.GetIden3commClaimsRevNonceUseCase>(), + await getAsync<_i194.GetIden3commProofsUseCase>(), + await getAsync<_i176.GetInteractionsUseCase>(), + await getAsync<_i178.AddInteractionUseCase>(), + await getAsync<_i177.RemoveInteractionsUseCase>(), + await getAsync<_i185.UpdateInteractionUseCase>(), + gh<_i139.CleanSchemaCacheUseCase>(), + gh<_i64.StacktraceManager>(), + gh<_i138.AddDidProfileInfoUseCase>(), + gh<_i124.GetDidProfileInfoUseCase>(), + gh<_i123.GetDidProfileInfoListUseCase>(), + gh<_i133.RemoveDidProfileInfoUseCase>(), )); - gh.factoryAsync<_i192.RemoveProfileUseCase>( - () async => _i192.RemoveProfileUseCase( - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i185.UpdateIdentityUseCase>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - await getAsync<_i179.CreateProfilesUseCase>(), - gh<_i138.RemoveIdentityStateUseCase>(), - gh<_i123.RemoveAllClaimsUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i202.RemoveProfileUseCase>( + () async => _i202.RemoveProfileUseCase( + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i195.UpdateIdentityUseCase>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + await getAsync<_i189.CreateProfilesUseCase>(), + gh<_i148.RemoveIdentityStateUseCase>(), + gh<_i131.RemoveAllClaimsUseCase>(), + gh<_i64.StacktraceManager>(), + )); + gh.factoryAsync<_i203.RestoreProfilesUseCase>( + () async => _i203.RestoreProfilesUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i195.UpdateIdentityUseCase>(), )); - gh.factoryAsync<_i193.RestoreIdentityUseCase>( - () async => _i193.RestoreIdentityUseCase( - await getAsync<_i186.AddIdentityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i173.GetCurrentEnvDidIdentifierUseCase>(), + gh.factoryAsync<_i204.RemoveIdentityUseCase>( + () async => _i204.RemoveIdentityUseCase( + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i184.GetProfilesUseCase>(), + await getAsync<_i202.RemoveProfileUseCase>(), + gh<_i148.RemoveIdentityStateUseCase>(), + gh<_i131.RemoveAllClaimsUseCase>(), + await getAsync<_i179.CheckProfileAndDidCurrentEnvUseCase>(), + gh<_i64.StacktraceManager>(), )); - gh.factoryAsync<_i194.RemoveIdentityUseCase>( - () async => _i194.RemoveIdentityUseCase( - await getAsync<_i139.IdentityRepository>(), - await getAsync<_i174.GetProfilesUseCase>(), - await getAsync<_i192.RemoveProfileUseCase>(), - gh<_i138.RemoveIdentityStateUseCase>(), - gh<_i123.RemoveAllClaimsUseCase>(), - await getAsync<_i169.CheckProfileAndDidCurrentEnvUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i205.RestoreIdentityUseCase>( + () async => _i205.RestoreIdentityUseCase( + await getAsync<_i196.AddIdentityUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i149.IdentityRepository>(), + await getAsync<_i183.GetCurrentEnvDidIdentifierUseCase>(), + await getAsync<_i203.RestoreProfilesUseCase>(), )); - gh.factoryAsync<_i195.Identity>(() async => _i195.Identity( - await getAsync<_i177.CheckIdentityValidityUseCase>(), - await getAsync<_i152.GetPrivateKeyUseCase>(), - await getAsync<_i187.AddNewIdentityUseCase>(), - await getAsync<_i193.RestoreIdentityUseCase>(), - await getAsync<_i176.BackupIdentityUseCase>(), - await getAsync<_i165.GetIdentityUseCase>(), - await getAsync<_i150.GetIdentitiesUseCase>(), - await getAsync<_i194.RemoveIdentityUseCase>(), - await getAsync<_i164.GetDidIdentifierUseCase>(), - await getAsync<_i142.SignMessageUseCase>(), - await getAsync<_i158.FetchIdentityStateUseCase>(), - await getAsync<_i188.AddProfileUseCase>(), - await getAsync<_i174.GetProfilesUseCase>(), - await getAsync<_i192.RemoveProfileUseCase>(), - await getAsync<_i148.GetDidUseCase>(), - gh<_i63.StacktraceManager>(), + gh.factoryAsync<_i206.Identity>(() async => _i206.Identity( + await getAsync<_i187.CheckIdentityValidityUseCase>(), + await getAsync<_i162.GetPrivateKeyUseCase>(), + await getAsync<_i197.AddNewIdentityUseCase>(), + await getAsync<_i205.RestoreIdentityUseCase>(), + await getAsync<_i186.BackupIdentityUseCase>(), + await getAsync<_i175.GetIdentityUseCase>(), + await getAsync<_i160.GetIdentitiesUseCase>(), + await getAsync<_i204.RemoveIdentityUseCase>(), + await getAsync<_i174.GetDidIdentifierUseCase>(), + await getAsync<_i152.SignMessageUseCase>(), + await getAsync<_i168.FetchIdentityStateUseCase>(), + await getAsync<_i198.AddProfileUseCase>(), + await getAsync<_i184.GetProfilesUseCase>(), + await getAsync<_i202.RemoveProfileUseCase>(), + await getAsync<_i158.GetDidUseCase>(), + gh<_i64.StacktraceManager>(), )); return this; } } -class _$LoggerModule extends _i196.LoggerModule {} +class _$PlatformModule extends _i207.PlatformModule {} -class _$ChannelModule extends _i196.ChannelModule {} +class _$NetworkModule extends _i207.NetworkModule {} -class _$PlatformModule extends _i196.PlatformModule {} +class _$DatabaseModule extends _i207.DatabaseModule {} -class _$NetworkModule extends _i196.NetworkModule {} +class _$FilesManagerModule extends _i207.FilesManagerModule {} -class _$DatabaseModule extends _i196.DatabaseModule {} +class _$EncryptionModule extends _i207.EncryptionModule {} -class _$RepositoriesModule extends _i196.RepositoriesModule {} +class _$LoggerModule extends _i207.LoggerModule {} -class _$EncryptionModule extends _i196.EncryptionModule {} +class _$ChannelModule extends _i207.ChannelModule {} -class _$FilesManagerModule extends _i196.FilesManagerModule {} +class _$RepositoriesModule extends _i207.RepositoriesModule {} diff --git a/lib/sdk/di/injector.dart b/lib/sdk/di/injector.dart index fa37af1d..78bdc923 100644 --- a/lib/sdk/di/injector.dart +++ b/lib/sdk/di/injector.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:archive/archive.dart'; import 'package:dio/dio.dart'; import 'package:encrypt/encrypt.dart' as encrypt; +import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:get_it/get_it.dart'; import 'package:http/http.dart'; @@ -22,9 +23,11 @@ import 'package:polygonid_flutter_sdk/common/utils/encrypt_sembast_codec.dart'; import 'package:polygonid_flutter_sdk/constants.dart'; import 'package:polygonid_flutter_sdk/credential/data/credential_repository_impl.dart'; import 'package:polygonid_flutter_sdk/credential/domain/repositories/credential_repository.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/did_profile_info_repository_impl.dart'; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/iden3comm_credential_repository_impl.dart'; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/iden3comm_repository_impl.dart'; import 'package:polygonid_flutter_sdk/iden3comm/data/repositories/interaction_repository_impl.dart'; +import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/did_profile_info_repository.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/iden3comm_credential_repository.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/iden3comm_repository.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/repositories/interaction_repository.dart'; @@ -149,6 +152,14 @@ abstract class DatabaseModule { @Named(interactionStoreName) StoreRef> get interactionStore => stringMapStoreFactory.store(interactionStoreName); + + @Named(didProfileInfoStoreName) + StoreRef> get didProfileInfoStore => + stringMapStoreFactory.store(didProfileInfoStoreName); + + @Named(profilesStoreName) + StoreRef> get profileStore => + stringMapStoreFactory.store(profilesStoreName); } @module @@ -190,6 +201,10 @@ abstract class RepositoriesModule { InteractionRepositoryImpl interactionRepositoryImpl) => interactionRepositoryImpl; + DidProfileInfoRepository didProfileInfoRepository( + DidProfileInfoRepositoryImpl didProfileInfoRepositoryImpl) => + didProfileInfoRepositoryImpl; + // SMT SMTRepository smtRepository(SMTRepositoryImpl smtRepositoryImpl) => smtRepositoryImpl; diff --git a/lib/sdk/error_handling.dart b/lib/sdk/error_handling.dart new file mode 100644 index 00000000..381531ed --- /dev/null +++ b/lib/sdk/error_handling.dart @@ -0,0 +1,52 @@ +import 'package:injectable/injectable.dart'; +import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_manager.dart'; + +abstract class PolygonIdSdkErrorHandling { + /// to enable stacktrace we need to call this method otherwise the stacktrace + /// will not be saved + void switchStacktrace({bool enabled = false}); + + /// to get the stacktrace stream, so we can listen to it + Stream stacktraceStream(); + + /// we can get the entire stacktrace of the latest flow execution + String getStacktrace(); + + /// to get the error stream, so we can listen to it + Stream errorTraceStream(); + + /// to get the error of the latest flow execution + String getErrorTrace(); +} + +@injectable +class ErrorHandling implements PolygonIdSdkErrorHandling { + final StacktraceManager _stacktraceManager; + + ErrorHandling(this._stacktraceManager); + + /// + void switchStacktrace({bool enabled = false}) { + _stacktraceManager.isEnabled = enabled; + } + + /// + Stream stacktraceStream() { + return _stacktraceManager.stacktraceStream; + } + + /// + String getStacktrace() { + return _stacktraceManager.stacktrace; + } + + /// + Stream errorTraceStream() { + return _stacktraceManager.errorStream; + } + + /// + String getErrorTrace() { + return _stacktraceManager.errorTrace; + } +} diff --git a/lib/sdk/iden3comm.dart b/lib/sdk/iden3comm.dart index 4c799d58..d4ab83aa 100644 --- a/lib/sdk/iden3comm.dart +++ b/lib/sdk/iden3comm.dart @@ -3,6 +3,10 @@ import 'package:polygonid_flutter_sdk/common/domain/domain_constants.dart'; import 'package:polygonid_flutter_sdk/common/domain/entities/filter_entity.dart'; import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_manager.dart'; import 'package:polygonid_flutter_sdk/credential/domain/entities/claim_entity.dart'; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/add_did_profile_info_use_case.dart'; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_did_profile_info_list_use_case.dart'; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/get_did_profile_info_use_case.dart'; +import 'package:polygonid_flutter_sdk/credential/domain/use_cases/remove_did_profile_info_use_case.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/entities/authorization/request/auth_request_iden3_message_entity.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/entities/common/iden3_message_entity.dart'; import 'package:polygonid_flutter_sdk/iden3comm/domain/entities/interaction/interaction_base_entity.dart'; @@ -208,7 +212,42 @@ abstract class PolygonIdSdkIden3comm { /// The [payload] is the notification payload // Future handleNotification({required String payload}); + /// Cleans the schema cache Future cleanSchemaCache(); + + /// Add info about a did we interacted with + /// in case of backup restore we can know which dids we have interacted with + /// and use the correct profile + /// in the Map we actually use + /// * [profileNonce] + /// * [selectedProfileType] + Future addDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + required Map info, + }); + + /// + Future> getDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }); + + /// + Future>> getDidProfileInfoList({ + required String did, + required String privateKey, + required List? filters, + }); + + /// + Future removeDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }); } @injectable @@ -227,6 +266,10 @@ class Iden3comm implements PolygonIdSdkIden3comm { final UpdateInteractionUseCase _updateInteractionUseCase; final CleanSchemaCacheUseCase _cleanSchemaCacheUseCase; final StacktraceManager _stacktraceManager; + final AddDidProfileInfoUseCase _addDidProfileInfoUseCase; + final GetDidProfileInfoUseCase _getDidProfileInfoUseCase; + final GetDidProfileInfoListUseCase _getDidProfileInfoListUseCase; + final RemoveDidProfileInfoUseCase _removeDidProfileInfoUseCase; Iden3comm( this._fetchAndSaveClaimsUseCase, @@ -243,6 +286,10 @@ class Iden3comm implements PolygonIdSdkIden3comm { this._updateInteractionUseCase, this._cleanSchemaCacheUseCase, this._stacktraceManager, + this._addDidProfileInfoUseCase, + this._getDidProfileInfoUseCase, + this._getDidProfileInfoListUseCase, + this._removeDidProfileInfoUseCase, ); @override @@ -444,28 +491,65 @@ class Iden3comm implements PolygonIdSdkIden3comm { return _cleanSchemaCacheUseCase.execute(param: null); } - /// - void switchStacktrace({bool enabled = false}) { - _stacktraceManager.isEnabled = enabled; - } - - /// - Stream stacktraceStream() { - return _stacktraceManager.stacktraceStream; + @override + Future addDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + required Map info, + }) { + return _addDidProfileInfoUseCase.execute( + param: AddDidProfileInfoParam( + genesisDid: did, + privateKey: privateKey, + interactedWithDid: interactedWithDid, + didProfileInfo: info, + ), + ); } - /// - String getStacktrace() { - return _stacktraceManager.stacktrace; + @override + Future> getDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }) { + return _getDidProfileInfoUseCase.execute( + param: GetDidProfileInfoParam( + genesisDid: did, + privateKey: privateKey, + interactedWithDid: interactedWithDid, + ), + ); } - /// - Stream errorTraceStream() { - return _stacktraceManager.errorStream; + @override + Future>> getDidProfileInfoList({ + required String did, + required String privateKey, + required List? filters, + }) { + return _getDidProfileInfoListUseCase.execute( + param: GetDidProfileInfoListParam( + genesisDid: did, + privateKey: privateKey, + filters: filters, + ), + ); } - /// - String getErrorTrace() { - return _stacktraceManager.errorTrace; + @override + Future removeDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }) { + return _removeDidProfileInfoUseCase.execute( + param: RemoveDidProfileInfoParam( + genesisDid: did, + privateKey: privateKey, + interactedWithDid: interactedWithDid, + ), + ); } } diff --git a/lib/sdk/identity.dart b/lib/sdk/identity.dart index 1d85e0f9..6489e333 100644 --- a/lib/sdk/identity.dart +++ b/lib/sdk/identity.dart @@ -12,14 +12,14 @@ import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/restore import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/add_profile_use_case.dart'; import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/get_profiles_use_case.dart'; -import '../identity/domain/entities/identity_entity.dart'; -import '../identity/domain/entities/private_identity_entity.dart'; -import '../identity/domain/use_cases/fetch_identity_state_use_case.dart'; -import '../identity/domain/use_cases/get_did_identifier_use_case.dart'; -import '../identity/domain/use_cases/identity/check_identity_validity_use_case.dart'; -import '../identity/domain/use_cases/identity/remove_identity_use_case.dart'; -import '../identity/domain/use_cases/identity/sign_message_use_case.dart'; -import '../identity/domain/use_cases/profile/remove_profile_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/entities/identity_entity.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/entities/private_identity_entity.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/fetch_identity_state_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/get_did_identifier_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/check_identity_validity_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/remove_identity_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/identity/sign_message_use_case.dart'; +import 'package:polygonid_flutter_sdk/identity/domain/use_cases/profile/remove_profile_use_case.dart'; abstract class PolygonIdSdkIdentity { /// Checks the identity validity from a secret diff --git a/lib/sdk/polygon_id_sdk.dart b/lib/sdk/polygon_id_sdk.dart index 346b1ece..0f31d840 100644 --- a/lib/sdk/polygon_id_sdk.dart +++ b/lib/sdk/polygon_id_sdk.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:flutter/cupertino.dart'; import 'package:hive/hive.dart'; import 'package:hive_flutter/hive_flutter.dart'; @@ -7,6 +9,7 @@ import 'package:polygonid_flutter_sdk/common/domain/use_cases/get_env_use_case.d import 'package:polygonid_flutter_sdk/common/domain/use_cases/set_env_use_case.dart'; import 'package:polygonid_flutter_sdk/common/infrastructure/stacktrace_stream_manager.dart'; import 'package:polygonid_flutter_sdk/sdk/di/injector.dart'; +import 'package:polygonid_flutter_sdk/sdk/error_handling.dart'; import 'package:polygonid_flutter_sdk/sdk/polygonid_flutter_channel.dart'; import 'credential.dart'; @@ -38,8 +41,16 @@ class PolygonIdSdk { // platform is initialized WidgetsFlutterBinding.ensureInitialized(); - await Hive.initFlutter(); - await Hive.openBox('stacktrace'); + String? stacktraceEncryptionKey = env?.stacktraceEncryptionKey; + if (stacktraceEncryptionKey != null && + stacktraceEncryptionKey.isNotEmpty && + utf8.encode(stacktraceEncryptionKey).length == 32) { + await Hive.initFlutter(); + await Hive.openBox( + 'stacktrace', + encryptionCipher: HiveAesCipher(utf8.encode(stacktraceEncryptionKey)), + ); + } // Init injection await configureInjection(); @@ -58,6 +69,7 @@ class PolygonIdSdk { _ref!.credential = await getItSdk.getAsync(); _ref!.proof = await getItSdk.getAsync(); _ref!.iden3comm = await getItSdk.getAsync(); + _ref!.errorHandling = getItSdk.get(); // Channel getItSdk(); @@ -70,6 +82,7 @@ class PolygonIdSdk { late Credential credential; late Proof proof; late Iden3comm iden3comm; + late ErrorHandling errorHandling; PolygonIdSdk._(); diff --git a/lib/sdk/polygonid_flutter_channel.dart b/lib/sdk/polygonid_flutter_channel.dart index b254d669..e63bfaa5 100644 --- a/lib/sdk/polygonid_flutter_channel.dart +++ b/lib/sdk/polygonid_flutter_channel.dart @@ -820,4 +820,54 @@ class PolygonIdFlutterChannel // TODO: implement cleanSchemaCache throw UnimplementedError(); } + + @override + Future addDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + required Map info, + }) { + // TODO: implement addDidProfileInfo + throw UnimplementedError(); + } + + @override + Future> getDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }) { + // TODO: implement getDidProfileInfo + throw UnimplementedError(); + } + + @override + Future>> getDidProfileInfoList({ + required String did, + required String privateKey, + required List? filters, + }) { + // TODO: implement getDidProfileInfoList + throw UnimplementedError(); + } + + @override + Future removeDidProfileInfo({ + required String did, + required String privateKey, + required String interactedWithDid, + }) { + // TODO: implement removeDidProfileInfo + throw UnimplementedError(); + } + + @override + Future restoreProfiles({ + required String genesisDid, + required String privateKey, + }) { + // TODO: implement restoreProfiles + throw UnimplementedError(); + } } diff --git a/pubspec.yaml b/pubspec.yaml index 62d75306..46917cfd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: flutter: sdk: flutter http: ^0.13.6 - ffi: ^2.0.1 + ffi: ^2.1.0 hex: ^0.2.0 web3dart: ^2.5.1 web_socket_channel: ^2.2.0 @@ -50,11 +50,11 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.1 + flutter_lints: ^2.0.3 json_serializable: ^6.7.1 mockito: ^5.3.2 - injectable_generator: ^2.1.6 - build_runner: ^2.3.3 + injectable_generator: ^2.4.0 + build_runner: ^2.4.6 ffigen: name: NativePolygonIdCoreLib diff --git a/test/credential/domain/use_cases/get_claims_use_case_test.dart b/test/credential/domain/use_cases/get_claims_use_case_test.dart index 5d898753..8411f293 100644 --- a/test/credential/domain/use_cases/get_claims_use_case_test.dart +++ b/test/credential/domain/use_cases/get_claims_use_case_test.dart @@ -104,7 +104,6 @@ MockStacktraceManager stacktraceStreamManager = MockStacktraceManager(); GetClaimsUseCase useCase = GetClaimsUseCase( credentialRepository, getCurrentEnvDidIdentifierUseCase, - getIdentityUseCase, stacktraceStreamManager, ); diff --git a/test/identity/data/data_sources/encryption_db_data_source_test.dart b/test/identity/data/data_sources/encryption_db_data_source_test.dart index 49867ae4..b8e42b52 100644 --- a/test/identity/data/data_sources/encryption_db_data_source_test.dart +++ b/test/identity/data/data_sources/encryption_db_data_source_test.dart @@ -13,7 +13,7 @@ import 'encryption_db_data_source_test.mocks.dart'; final Map data = {"theField": "theValue"}; final key = Key.fromBase16("12345678901234567890123456789012"); const String encryptedData = "theEncryptedData"; -final iv = IV.fromLength(16); +final iv = IV.allZerosOfLength(16); MockEncrypter encrypter = MockEncrypter(); diff --git a/test/identity/data/repositories/identity_repository_impl_test.dart b/test/identity/data/repositories/identity_repository_impl_test.dart index 79c6ed16..0fe0073e 100644 --- a/test/identity/data/repositories/identity_repository_impl_test.dart +++ b/test/identity/data/repositories/identity_repository_impl_test.dart @@ -14,6 +14,7 @@ import 'package:polygonid_flutter_sdk/identity/data/data_sources/lib_pidcore_ide import 'package:polygonid_flutter_sdk/identity/data/data_sources/local_contract_files_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/remote_identity_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/rpc_data_source.dart'; +import 'package:polygonid_flutter_sdk/identity/data/data_sources/secure_storage_profiles_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/storage_identity_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/data_sources/wallet_data_source.dart'; import 'package:polygonid_flutter_sdk/identity/data/dtos/hash_dto.dart'; @@ -163,6 +164,8 @@ MockRhsNodeMapper rhsNodeMapper = MockRhsNodeMapper(); MockStateIdentifierMapper stateIdentifierMapper = MockStateIdentifierMapper(); MockNodeMapper nodeMapper = MockNodeMapper(); MockEncryptionKeyMapper encryptionKeyMapper = MockEncryptionKeyMapper(); +MockSecureStorageProfilesDataSource secureStorageProfilesDataSource = + MockSecureStorageProfilesDataSource(); // Tested instance IdentityRepository repository = IdentityRepositoryImpl( @@ -182,6 +185,7 @@ IdentityRepository repository = IdentityRepositoryImpl( stateIdentifierMapper, nodeMapper, encryptionKeyMapper, + secureStorageProfilesDataSource, ); @GenerateMocks([ @@ -202,6 +206,7 @@ IdentityRepository repository = IdentityRepositoryImpl( StateIdentifierMapper, NodeMapper, EncryptionKeyMapper, + SecureStorageProfilesDataSource, ]) void main() { group("Get identity", () {