Fix stub creation

This commit is contained in:
Hector Chu 2024-04-21 19:58:45 +01:00
parent a3aebbdb78
commit dbc005dcf3
4 changed files with 9 additions and 14 deletions

View file

@ -111,7 +111,7 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store {
@override @override
Future<void> startSync() async { Future<void> startSync() async {
await super.startSync(); await super.startSync();
final stub = CwMweb.stub(); final stub = await CwMweb.stub();
Timer.periodic( Timer.periodic(
const Duration(milliseconds: 1500), (timer) async { const Duration(milliseconds: 1500), (timer) async {
final height = await electrumClient.getCurrentBlockChainTip() ?? 0; final height = await electrumClient.getCurrentBlockChainTip() ?? 0;

View file

@ -1,5 +1,4 @@
import 'dart:io'; import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/unspent_coins_info.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart';
@ -11,7 +10,6 @@ import 'package:cw_core/pathForWallet.dart';
import 'package:cw_core/wallet_type.dart'; import 'package:cw_core/wallet_type.dart';
import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_base.dart';
import 'package:cw_mweb/cw_mweb.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
class LitecoinWalletService extends WalletService< class LitecoinWalletService extends WalletService<
@ -28,8 +26,6 @@ class LitecoinWalletService extends WalletService<
@override @override
Future<LitecoinWallet> create(BitcoinNewWalletCredentials credentials, {bool? isTestnet}) async { Future<LitecoinWallet> create(BitcoinNewWalletCredentials credentials, {bool? isTestnet}) async {
final appDir = await getApplicationSupportDirectory();
await CwMweb.start(appDir.path);
final wallet = await LitecoinWalletBase.create( final wallet = await LitecoinWalletBase.create(
mnemonic: await generateMnemonic(), mnemonic: await generateMnemonic(),
password: credentials.password!, password: credentials.password!,
@ -47,8 +43,6 @@ class LitecoinWalletService extends WalletService<
@override @override
Future<LitecoinWallet> openWallet(String name, String password) async { Future<LitecoinWallet> openWallet(String name, String password) async {
final appDir = await getApplicationSupportDirectory();
await CwMweb.start(appDir.path);
final walletInfo = walletInfoSource.values.firstWhereOrNull( final walletInfo = walletInfoSource.values.firstWhereOrNull(
(info) => info.id == WalletBase.idFor(name, getType()))!; (info) => info.id == WalletBase.idFor(name, getType()))!;

View file

@ -1,17 +1,16 @@
import 'package:grpc/grpc.dart'; import 'package:grpc/grpc.dart';
import 'package:path_provider/path_provider.dart';
import 'cw_mweb_platform_interface.dart'; import 'cw_mweb_platform_interface.dart';
import 'mwebd.pbgrpc.dart'; import 'mwebd.pbgrpc.dart';
class CwMweb { class CwMweb {
static var port; static Future<int?>? port;
static start(String dataDir) async { static Future<RpcClient> stub() async {
port = port ?? await CwMwebPlatform.instance.start(dataDir); final appDir = await getApplicationSupportDirectory();
} port ??= CwMwebPlatform.instance.start(appDir.path);
static stub() {
return RpcClient(ClientChannel('127.0.0.1', return RpcClient(ClientChannel('127.0.0.1',
port: port, port: await port ?? 0,
options: const ChannelOptions( options: const ChannelOptions(
credentials: ChannelCredentials.insecure()))); credentials: ChannelCredentials.insecure())));
} }

View file

@ -10,6 +10,8 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
grpc: ^3.2.4
path_provider: ^2.1.2
plugin_platform_interface: ^2.0.2 plugin_platform_interface: ^2.0.2
dev_dependencies: dev_dependencies: