flutter_rgb 0.0.1 copy "flutter_rgb: ^0.0.1" to clipboard
flutter_rgb: ^0.0.1 copied to clipboard

Flutter plugin for RGB protocol.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter_rgb/flutter_rgb.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _status = 'Initializing...';
  String _mnemonic = '';

  @override
  void initState() {
    super.initState();
    _run();
  }

  Future<void> _run() async {
    try {
      setState(() {
        _status = 'Generating keys...';
      });

      const network = BitcoinNetwork.testnet4;
      final keys = await FlutterRgb.generateKeys(network.name.toUpperCase());

      debugPrint('keys:');
      debugPrint('  mnemonic: ${keys.mnemonic}');
      debugPrint('  xpub: ${keys.xpub}');
      debugPrint('  accountXpubVanilla: ${keys.accountXpubVanilla}');
      debugPrint('  accountXpubColored: ${keys.accountXpubColored}');
      debugPrint('  masterFingerprint: ${keys.masterFingerprint}');

      setState(() {
        _mnemonic = keys.mnemonic;
        _status = 'Keys generated. Mnemonic: ${_mnemonic.substring(0, 20)}...';
      });

      setState(() {
        _status = 'Creating wallet...';
      });

      final wallet = Wallet(keys, network: network.name.toUpperCase());

      setState(() {
        _status = 'Going online...';
      });

      await wallet.goOnline('ssl://mempool.space:50002', false);

      setState(() {
        _status = 'Fetching balance...';
      });

      final btcBalance = await wallet.getBtcBalance(false);
      debugPrint('btcBalance: ${btcBalance.vanilla.settled}');

      final address = await wallet.getAddress();
      debugPrint('address: $address');

      final listAssets = await wallet.listAssets([
        AssetSchema.nia,
        AssetSchema.uda,
        AssetSchema.cfa,
        AssetSchema.ifa,
      ]);
      debugPrint('listAssets: $listAssets');

      setState(() {
        _status = 'Success! Wallet operations completed.';
      });
    } catch (e) {
      debugPrint('Wallet error: $e');
      setState(() {
        _status = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: const Color(0xFFF5F5F5),
        appBar: AppBar(title: const Text('RGB Wallet Example')),
        body: SingleChildScrollView(
          padding: const EdgeInsets.all(20),
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                const SizedBox(height: 20),
                Text(
                  'Status: $_status',
                  textAlign: TextAlign.center,
                  style: const TextStyle(
                    fontSize: 16,
                    color: Color(0xFF666666),
                  ),
                ),
                if (_mnemonic.isNotEmpty) ...[
                  const SizedBox(height: 10),
                  Text(
                    'Mnemonic: $_mnemonic',
                    style: const TextStyle(
                      fontSize: 12,
                      color: Color(0xFF888888),
                    ),
                  ),
                ],
              ],
            ),
          ),
        ),
      ),
    );
  }
}
1
likes
130
points
85
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for RGB protocol.

Homepage

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flutter_rgb

Packages that implement flutter_rgb