24 lines
651 B
Dart
24 lines
651 B
Dart
import 'package:logger/logger.dart';
|
|
|
|
import 'monero_c_backend.dart';
|
|
import 'wallet_backend.dart';
|
|
import 'wallet_ffi_backend.dart';
|
|
class WalletBackendFactory {
|
|
static WalletBackend create({required Logger logger}) {
|
|
Object? lastError;
|
|
try {
|
|
return MoneroCBackend(logger);
|
|
} catch (error) {
|
|
lastError = error;
|
|
logger.w('Failed to load monero_c backend, trying wrapper: $error');
|
|
}
|
|
try {
|
|
return WalletFfiBackend(logger);
|
|
} catch (error) {
|
|
lastError = error;
|
|
logger.e('Failed to load wallet backend: $error');
|
|
}
|
|
throw StateError('Failed to load wallet backend: $lastError');
|
|
}
|
|
}
|