import 'dart:io' show Platform; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'cw_mweb_platform_interface.dart'; /// An implementation of [CwMwebPlatform] that uses method channels. class MethodChannelCwMweb extends CwMwebPlatform { /// The method channel used to interact with the native platform. @visibleForTesting final methodChannel = const MethodChannel('cw_mweb'); @override Future start(String dataDir, String nodeUri) async { if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) { return null; } final result = await methodChannel.invokeMethod('start', {'dataDir': dataDir, 'nodeUri': nodeUri}); return result; } @override Future stop() async { if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) { return; } await methodChannel.invokeMethod('stop'); } @override Future address(Uint8List scanSecret, Uint8List spendPub, int index) async { if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) { return null; } final result = await methodChannel.invokeMethod('address', { 'scanSecret': scanSecret, 'spendPub': spendPub, 'index': index, }); return result; } @override Future addresses(Uint8List scanSecret, Uint8List spendPub, int fromIndex, int toIndex) async { if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) { return null; } final result = await methodChannel.invokeMethod('addresses', { 'scanSecret': scanSecret, 'spendPub': spendPub, 'fromIndex': fromIndex, 'toIndex': toIndex, }); return result; } }