Как получить баланс аккаунта с пакетом 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)

0 ответов

Другие вопросы по тегам