Как получить баланс аккаунта с пакетом flutter_web3 во флаттере?
Я использую этот пакет и хочу получить баланс случайного кошелька, но получаю следующую ошибку в консоли разработчика Chrome. Где я пропал?
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_web3/ethereum.dart';
import 'package:flutter_web3/ethers.dart';
Future<void> main() async {
runApp(MaterialApp(home: MyApp()));
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool acc = false;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
ElevatedButton(
onPressed: () async {
if (ethereum != null) {
try {
setState(() {
acc = ethereum!.isConnected();
});
var balance = await provider!.getBalance(
'0xb978C0757977F1717d4888AfFfFaE1023cDbe63B');
print(balance);
} on EthereumUserRejected {
print('User rejected!');
}
}
},
child: Text(acc ? 'Connected' : 'Connect'),
),
],
),
),
);
}
}
Ошибка, которую я получаю в консоли браузера:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'providers')
at Web3Provider.new (provider.dart:388:7)
at get provider [as provider] (ethers.dart:34:28)
at main._MyAppState.new.<anonymous> (main.dart:36:41)
at Generator.next (<anonymous>)
at runBody (async_patch.dart:84:54)
at Object._async [as async] (async_patch.dart:123:5)
at main.dart:27:26
at [_handleTap] (ink_well.dart:1005:21)
at tap.TapGestureRecognizer.new.invokeCallback (recognizer.dart:198:24)
at tap.TapGestureRecognizer.new.handleTapUp (tap.dart:613:48)
at [_checkUp] (tap.dart:298:5)
at tap.TapGestureRecognizer.new.handlePrimaryPointer (tap.dart:232:7)
at tap.TapGestureRecognizer.new.handleEvent (recognizer.dart:563:9)
at [_dispatch] (pointer_router.dart:94:12)
at pointer_router.dart:139:9
at LinkedMap.new.forEach (linked_hash_map.dart:21:13)
at [_dispatchEventToRoutes] (pointer_router.dart:137:17)
at pointer_router.PointerRouter.new.route (pointer_router.dart:123:7)
at binding$5.WidgetsFlutterBinding.new.handleEvent (binding.dart:445:19)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:425:14)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:329:11)
at [_handlePointerEventImmediately] (binding.dart:380:7)
at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (binding.dart:344:5)
at [_flushPointerEventQueue] (binding.dart:302:7)
at [_handlePointerDataPacket] (binding.dart:285:32)
at Object.invoke1 (platform_dispatcher.dart:1105:13)
at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (platform_dispatcher.dart:185:5)
at [_onPointerData] (pointer_binding.dart:130:39)
at pointer_binding.dart:543:18
at pointer_binding.dart:496:21
at loggedHandler (pointer_binding.dart:210:16)