Add Liquid SDK Event & Log stream handlers to example app (#305)

Update example app
* Use defaultConfig on ConnectRequest
* Update feesSat as non-null
* Use payment & walletInfo streams from BreezLiquidSDK
This commit is contained in:
Erdem Yerebasmaz
2024-06-13 14:51:59 +03:00
committed by GitHub
parent bcf84fe8cd
commit 4ed72e70f0
9 changed files with 195 additions and 47 deletions

View File

@@ -5,21 +5,23 @@ import 'package:flutter_breez_liquid_example/routes/home/home_page.dart';
import 'package:flutter_breez_liquid_example/services/credentials_manager.dart';
import 'package:flutter_breez_liquid_example/services/keychain.dart';
import 'package:flutter_breez_liquid_example/utils/config.dart';
import 'package:path_provider/path_provider.dart';
import 'services/breez_liquid_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await initialize();
final BreezLiquidSDK liquidSDK = BreezLiquidSDK();
final credentialsManager = CredentialsManager(keyChain: KeyChain());
final mnemonic = await credentialsManager.restoreMnemonic();
BindingLiquidSdk? liquidSDK;
if (mnemonic.isNotEmpty) {
liquidSDK = await reconnect(mnemonic: mnemonic);
reconnect(liquidSDK: liquidSDK, mnemonic: mnemonic);
}
runApp(App(credentialsManager: credentialsManager, liquidSDK: liquidSDK));
}
Future<BindingLiquidSdk> reconnect({
required BreezLiquidSDK liquidSDK,
required String mnemonic,
Network network = Network.mainnet,
}) async {
@@ -28,13 +30,13 @@ Future<BindingLiquidSdk> reconnect({
config: config,
mnemonic: mnemonic,
);
return await connect(req: req);
return await liquidSDK.connect(req: req);
}
class App extends StatefulWidget {
final CredentialsManager credentialsManager;
final BindingLiquidSdk? liquidSDK;
const App({super.key, required this.credentialsManager, this.liquidSDK});
final BreezLiquidSDK liquidSDK;
const App({super.key, required this.credentialsManager, required this.liquidSDK});
static const title = 'Breez Liquid SDK Demo';
@@ -48,9 +50,15 @@ class _AppState extends State<App> {
return MaterialApp(
title: App.title,
theme: ThemeData.from(colorScheme: ColorScheme.fromSeed(seedColor: Colors.white), useMaterial3: true),
home: widget.liquidSDK == null
? ConnectPage(credentialsManager: widget.credentialsManager)
: HomePage(credentialsManager: widget.credentialsManager, liquidSDK: widget.liquidSDK!),
home: widget.liquidSDK.wallet == null
? ConnectPage(
liquidSDK: widget.liquidSDK,
credentialsManager: widget.credentialsManager,
)
: HomePage(
credentialsManager: widget.credentialsManager,
liquidSDK: widget.liquidSDK,
),
);
}
}