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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ PODS:
- Flutter
- PromisesObjC (2.4.0)
- ScreenProtectorKit (1.3.1)
- SDWebImage (5.21.4):
- SDWebImage/Core (= 5.21.4)
- SDWebImage/Core (5.21.4)
- SDWebImage (5.21.5):
- SDWebImage/Core (= 5.21.5)
- SDWebImage/Core (5.21.5)
- share_plus (0.0.1):
- Flutter
- sqlite3 (3.51.1):
Expand Down Expand Up @@ -288,7 +288,7 @@ SPEC CHECKSUMS:
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
ScreenProtectorKit: 83a6281b02c7a5902ee6eac4f5045f674e902ae4
SDWebImage: d0184764be51240d49c761c37f53dd017e1ccaaf
SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
sqlite3: 8d708bc63e9f4ce48f0ad9d6269e478c5ced1d9b
sqlite3_flutter_libs: d13b8b3003f18f596e542bcb9482d105577eff41
Expand Down
8 changes: 8 additions & 0 deletions ios/Runner/DebugProfile.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>keychain-access-groups</key>
<array/>
</dict>
</plist>
8 changes: 8 additions & 0 deletions ios/Runner/Release.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>keychain-access-groups</key>
<array/>
</dict>
</plist>
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import 'package:lwk/lwk.dart' as lwk;

Future<void> doMigration0_1to0_2() async {
try {
final secureStorageDatasource = MigrationSecureStorageDatasource();
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();
final hiveDatasource = locator<OldHiveDatasource>();
final oldSeedRepository = OldSeedRepository(secureStorageDatasource);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import 'package:bb_mobile/locator.dart';
import 'package:boltz/boltz.dart';

Future<void> doMigration0_2to0_3() async {
final secureStorageDatasource = MigrationSecureStorageDatasource();
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();
final hiveDatasource = locator<OldHiveDatasource>();
final oldWalletRepository = OldWalletRepository(hiveDatasource);

Expand Down
3 changes: 2 additions & 1 deletion lib/core/storage/migrations/004_legacy/migration03to04.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_storage_keys.dart';
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/secure_storage_datasource.dart';
import 'package:bb_mobile/locator.dart';

Future<void> doMigration0_3to0_4() async {
final secureStorageDatasource = MigrationSecureStorageDatasource();
final secureStorageDatasource = locator<MigrationSecureStorageDatasource>();

await secureStorageDatasource.store(
key: OldStorageKeys.version.name,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:convert';

import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_storage_keys.dart';
import 'package:bb_mobile/core/storage/secure_storage.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:hive/hive.dart' show Box, Hive, HiveAesCipher;
import 'package:path_provider/path_provider.dart'
show getApplicationDocumentsDirectory;
Expand All @@ -11,10 +11,9 @@ class OldHiveDatasource {

OldHiveDatasource(this.box);

static Future<Box> getBox() async {
static Future<Box> getBox(FlutterSecureStorage secureStorage) async {
final dir = await getApplicationDocumentsDirectory();
Hive.init(dir.path);
final secureStorage = SecureStorage.init();
final password = await secureStorage.read(
key: OldStorageKeys.hiveEncryption.name,
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import 'dart:convert';

import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/entities/old_seed.dart';
import 'package:bb_mobile/core/storage/secure_storage.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class MigrationSecureStorageDatasource {
final FlutterSecureStorage _storage;

MigrationSecureStorageDatasource() : _storage = SecureStorage.init();
MigrationSecureStorageDatasource(this._storage);

Future<void> store({required String key, required String value}) async {
await _storage.write(key: key, value: value);
Expand Down
9 changes: 0 additions & 9 deletions lib/core/storage/secure_storage.dart

This file was deleted.

15 changes: 10 additions & 5 deletions lib/core/storage/storage_locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,26 @@ import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/old_see
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/old/old_wallet_repository.dart';
import 'package:bb_mobile/core/storage/migrations/005_hive_to_sqlite/secure_storage_datasource.dart';
import 'package:bb_mobile/core/storage/requires_migration_usecase.dart';
import 'package:bb_mobile/core/storage/secure_storage.dart';
import 'package:bb_mobile/core/swaps/data/repository/boltz_swap_repository.dart';
import 'package:bb_mobile/core/utils/constants.dart';
import 'package:bb_mobile/core/wallet/data/repositories/wallet_repository.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get_it/get_it.dart';

class StorageLocator {
static Future<void> registerDatasources(GetIt locator) async {
const secureStorage = FlutterSecureStorage(
aOptions: AndroidOptions(encryptedSharedPreferences: true),
// iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock),
);
locator.registerLazySingleton<KeyValueStorageDatasource<String>>(
() => SecureStorageDatasourceImpl(SecureStorage.init()),
() => SecureStorageDatasourceImpl(secureStorage),
instanceName: LocatorInstanceNameConstants.secureStorageDatasource,
);
locator.registerLazySingleton<MigrationSecureStorageDatasource>(
() => MigrationSecureStorageDatasource(),
() => MigrationSecureStorageDatasource(secureStorage),
);
final oldHiveBox = await OldHiveDatasource.getBox();
final oldHiveBox = await OldHiveDatasource.getBox(secureStorage);
locator.registerLazySingleton<OldHiveDatasource>(
() => OldHiveDatasource(oldHiveBox),
);
Expand Down Expand Up @@ -64,7 +68,8 @@ class StorageLocator {
() => GetAllSeedsUsecase(seedRepository: locator<SeedRepository>()),
);
locator.registerFactory<MigrateToV4LegacyUsecase>(
() => MigrateToV4LegacyUsecase(MigrationSecureStorageDatasource()),
() =>
MigrateToV4LegacyUsecase(locator<MigrationSecureStorageDatasource>()),
);
locator.registerFactory<RequiresMigrationUsecase>(
() => RequiresMigrationUsecase(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
import 'dart:convert';

import 'package:bb_mobile/core/exchange/data/models/api_key_model.dart';
import 'package:bb_mobile/core/storage/data/datasources/key_value_storage/key_value_storage_datasource.dart';
import 'package:bb_mobile/core/utils/logger.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

// We don't need a full datasource since we only need to retrieve the API key
// here. We should deprecate the BullbitcoinApiKeyDatasource in favor of this
// simpler provider.
class BullbitcoinApiKeyProvider {
final FlutterSecureStorage _secureStorage;
final KeyValueStorageDatasource<String> _secureStorage;

static const String _apiKeyStorageKey = 'exchange_api_key';
static const String _apiKeyTestnetStorageKey = 'exchange_api_key_testnet';

BullbitcoinApiKeyProvider({required FlutterSecureStorage secureStorage})
: _secureStorage = secureStorage;
BullbitcoinApiKeyProvider({
required KeyValueStorageDatasource<String> secureStorage,
}) : _secureStorage = secureStorage;

Future<String?> getApiKey({required bool isTestnet}) async {
try {
final key = isTestnet ? _apiKeyTestnetStorageKey : _apiKeyStorageKey;
final jsonString = await _secureStorage.read(key: key);
final jsonString = await _secureStorage.getValue(key);

if (jsonString == null || jsonString.isEmpty) {
return null;
Expand Down
20 changes: 5 additions & 15 deletions lib/features/recipients/recipients_locator.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import 'package:bb_mobile/core/settings/data/settings_repository.dart';
import 'package:bb_mobile/core/storage/data/datasources/key_value_storage/key_value_storage_datasource.dart';
import 'package:bb_mobile/core/utils/constants.dart';
import 'package:bb_mobile/features/recipients/application/ports/recipients_gateway_port.dart';
import 'package:bb_mobile/features/recipients/application/usecases/add_recipient_usecase.dart';
import 'package:bb_mobile/features/recipients/application/usecases/check_sinpe_usecase.dart';
Expand All @@ -13,33 +15,21 @@ import 'package:bb_mobile/features/recipients/interface_adapters/presenters/mode
import 'package:bb_mobile/features/recipients/interface_adapters/presenters/models/recipient_view_model.dart';
import 'package:bb_mobile/locator.dart';
import 'package:dio/dio.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class RecipientsLocator {
static void setup() {
// Register recipients feature dependencies here
registerFrameworks();
registerDrivenInterfaceAdapters();
registerApplicationServicesAndUseCases();
registerDrivingInterfaceAdapters();
}

static void registerFrameworks() {
// TODO: These instances should be moved to the core/shared locator so they can
// be used by other features that need to call the Bull Bitcoin API, without
// needing to have one big datasource with all API calls in it. Every feature
// could then just reuse the clients and implement only the api calls they need
// in their own gateways.
// The secure_storage and secure_storage_datasource were so much overkill,
// we should just share one instance with the settings like this.
locator.registerLazySingleton<FlutterSecureStorage>(
() => const FlutterSecureStorage(
aOptions: AndroidOptions(encryptedSharedPreferences: true),
),
);
locator.registerLazySingleton<BullbitcoinApiKeyProvider>(
() => BullbitcoinApiKeyProvider(
secureStorage: locator<FlutterSecureStorage>(),
secureStorage: locator<KeyValueStorageDatasource<String>>(
instanceName: LocatorInstanceNameConstants.secureStorageDatasource,
),
),
);

Expand Down
4 changes: 2 additions & 2 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1880,10 +1880,10 @@ packages:
dependency: transitive
description:
name: time
sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461"
sha256: "46187cf30bffdab28c56be9a63861b36e4ab7347bf403297595d6a97e10c789f"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
version: "2.1.6"
timeago:
dependency: "direct main"
description:
Expand Down