portal_flutter 0.1.0-alpha.11
portal_flutter: ^0.1.0-alpha.11 copied to clipboard
Flutter SDK for Portal - Stablecoin wallet infrastructure
example/lib/main.dart
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:portal_flutter/portal_flutter.dart';
import 'firebase_options.dart';
import 'screens/auth_screen.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// Debug probe: log every Portal event to the console. Visible via
// `xcrun simctl spawn booted log stream --predicate 'processImagePath CONTAINS "Runner"'`
// on iOS or `adb logcat` on Android, filtered by `[PortalEvent]`.
if (kDebugMode) {
Portal().events.listen((e) {
debugPrint('[PortalEvent] ${e.name} -> ${e.data}');
});
}
// Initialize Firebase
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Load environment variables from .env file. If load fails (missing or
// empty), still initialize dotenv with an empty fileInput so reads of
// dotenv.env[...] return null instead of throwing NotInitializedError.
try {
await dotenv.load(fileName: '.env', isOptional: true);
} catch (e) {
debugPrint('No .env file found - using default RPC configurations');
dotenv.testLoad(fileInput: '');
}
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Portal Flutter SDK',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const AuthScreen(),
);
}
}