mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2025-12-19 23:14:22 +01:00
* Rename Network to LiquidSdkNetwork to avoid naming conflicts with sdk-common * Integrate sdk-common: re-use parse_invoice * Fix UDL bindings tests * Add input parser support * CLI: Add input parser support * Integrate lnurl-pay * Cargo format, re-generate FRB and RN bindings * Duplicate LnUrlPayError, update FRB/UniFFI bindings * Move duplicate LnUrlPayError to FRB bindings.rs * Add support for lnurl-withdraw * Lnurl-withdraw: convert units, incorporate fees * Bump sdk-common, rename InputType::LnUrlError * Bump sdk-common, remove Wrapped prefix from LnUrlPaySuccessData, LnUrlPayResult * LNURL-withdraw: add missing UDL mappings * Add support for LNURL-auth * Move LNURL structs into models.rs * Rename LiquidSdkNetwork to LiquidNetwork * Fix binding tests * Fix tests * Move FRB mirroring structs to bindings.rs * Remove TODO * Bump sdk-common, remove sdk-common dependency on rusqlite * Propagate LiquidNetwork rename into flutter example app * CI: install protobuf before running clippy * CI: add rust cache, protobuf for remaining rust steps
65 lines
2.1 KiB
Dart
65 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_breez_liquid/flutter_breez_liquid.dart';
|
|
import 'package:flutter_breez_liquid_example/routes/connect/connect_page.dart';
|
|
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 '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();
|
|
if (mnemonic.isNotEmpty) {
|
|
reconnect(liquidSDK: liquidSDK, mnemonic: mnemonic);
|
|
}
|
|
runApp(App(credentialsManager: credentialsManager, liquidSDK: liquidSDK));
|
|
}
|
|
|
|
Future<BindingLiquidSdk> reconnect({
|
|
required BreezLiquidSDK liquidSDK,
|
|
required String mnemonic,
|
|
LiquidNetwork network = LiquidNetwork.mainnet,
|
|
}) async {
|
|
final config = await getConfig(network: network);
|
|
final req = ConnectRequest(
|
|
config: config,
|
|
mnemonic: mnemonic,
|
|
);
|
|
return await liquidSDK.connect(req: req);
|
|
}
|
|
|
|
class App extends StatefulWidget {
|
|
final CredentialsManager credentialsManager;
|
|
final BreezLiquidSDK liquidSDK;
|
|
const App({super.key, required this.credentialsManager, required this.liquidSDK});
|
|
|
|
static const title = 'Breez Liquid SDK Demo';
|
|
|
|
@override
|
|
State<App> createState() => _AppState();
|
|
}
|
|
|
|
class _AppState extends State<App> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: App.title,
|
|
theme: ThemeData.from(colorScheme: ColorScheme.fromSeed(seedColor: Colors.white), useMaterial3: true),
|
|
home: widget.liquidSDK.wallet == null
|
|
? ConnectPage(
|
|
liquidSDK: widget.liquidSDK,
|
|
credentialsManager: widget.credentialsManager,
|
|
)
|
|
: HomePage(
|
|
credentialsManager: widget.credentialsManager,
|
|
liquidSDK: widget.liquidSDK,
|
|
),
|
|
);
|
|
}
|
|
}
|