From fdfeae337d4c731d9c3ef04fcca2f0adc1b81e4b Mon Sep 17 00:00:00 2001 From: bo_thebig Date: Thu, 5 Dec 2024 09:58:23 +0200 Subject: [PATCH] git commit -m feat(mobile): integrate wallet interface with Rust bridge - Add Flutter wallet interface implementation - Create Rust bridge for wallet operations - Setup mobile configuration management - Add pubspec.yaml for Flutter dependencies --- lib/bin/anya.dart | 66 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 lib/bin/anya.dart diff --git a/lib/bin/anya.dart b/lib/bin/anya.dart new file mode 100644 index 0000000..14aade8 --- /dev/null +++ b/lib/bin/anya.dart @@ -0,0 +1,66 @@ +import 'package:args/command_runner.dart'; +import 'package:logging/logging.dart'; +import '../lib/src/api/server.dart'; +import '../lib/src/core/bitcoin/wallet.dart'; +import '../lib/src/core/web5/identity.dart'; + +void main(List arguments) async { + _setupLogging(); + + final runner = CommandRunner('anya', 'Enterprise-grade Bitcoin Infrastructure') + ..addCommand(ServeCommand()) + ..addCommand(InitCommand()); + + try { + await runner.run(arguments); + } catch (e, stackTrace) { + Logger('anya').severe('Error running command', e, stackTrace); + exit(1); + } +} + +void _setupLogging() { + Logger.root.level = Level.INFO; + Logger.root.onRecord.listen((record) { + print('${record.level.name}: ${record.time}: ${record.message}'); + }); +} + +class ServeCommand extends Command { + @override + final name = 'serve'; + @override + final description = 'Start the Anya server'; + + ServeCommand() { + argParser + ..addOption('host', defaultsTo: 'localhost') + ..addOption('port', defaultsTo: '8080'); + } + + @override + Future run() async { + final wallet = BitcoinWallet(); + final identity = IdentityManager(Web5Client()); + final server = AnyaServer(wallet, identity); + + final host = argResults?['host'] as String; + final port = int.parse(argResults?['port'] as String); + + await server.start(host: host, port: port); + print('Server running on http://$host:$port/'); + } +} + +class InitCommand extends Command { + @override + final name = 'init'; + @override + final description = 'Initialize a new Anya project'; + + @override + Future run() async { + // Project initialization logic + print('Initialized new Anya project'); + } +}