Obtention d’une erreur d’envoi de transaction : typeerror : impossible de lire les propriétés non définies (lecture des « fournisseurs ») dans l’application blockchain en flutter

la programmation


Battement
  1  import 'package:flutter_web3/flutter_web3.dart';
  2  import 'package:web3dart/web3dart.dart' as web;
  3  import 'package:web3dart/credentials.dart';
  4  
  5  String currentAddress = '';
  6  bool get isEnabled = ethereum != null;
  7  bool get isConnected =isEnabled && currentAddress.isNotEmpty;
  8  
  9  Future<bool> sendTransaction({required EthereumAddress to}) async {
 10      if (isEnabled) {
 11          final accs = await ethereum!.requestAccount();
 12          if (accs.isNotEmpty)
 13              currentAddress = accs.first; //assign current address to first address
 14          if (currentAddress != '') {
 15              print(currentAddress);
 16          }
 17      }
 18      if (!isConnected) {
 19          return false;
 20      }
 21      try {
 22          final eth = Ethereum.ethereum;
 23          final transaction = web.Transaction(
 24              from: EthereumAddress.fromHex(currentAddress),
 25              to: to,
 26              value: web.EtherAmount.inWei(BigInt.parse("8000")),
 27          );
 28          if (ethereum != null) {
 29              print("Etherem is not null");
 30          }
 31  
 32          final web3provider = Web3Provider(ethereum!);
 33          final signer = provider?.getSigner();
 34          final tx = await signer?.sendTransaction(transaction as TransactionRequest);
 35  
 36          if (tx != null) {
 37              print(tx.hashCode);
 38              return true;
 39          }
 40  
 41          print("Transaction is not performed");
 42          return false;
 43      } catch (e) {
 44          print("Errror sending transaction : $e");
 45          return false;
 46      }
 47  }

Ce que j’ai essayé :

lors de l’exécution de ce code dans Chrome (extension métamask), le métamasque apparaîtra pour la connexion au compte, mais après cela, il donne TypeError : Impossible de lire les propriétés d’undéfini (lecture de “fournisseurs”), je crois qu’une erreur est là, final web3provider = Web3Provider(ethereum! ); mais je ne sais pas pourquoi et comment résoudre.

Solution 1

Le message “Impossible de lire les propriétés d’un élément non défini” est du langage javascript pour essayer d’utiliser un objet qui n’existe pas ou qui est nul dans d’autres langages.

Je ne vois aucune propriété ou méthode “fournisseurs” appelée n’importe où dans le code que vous avez publié, ce qui signifie que l’erreur est probablement générée par la bibliothèque que vous essayez d’utiliser. Les seules personnes qui peuvent vous aider sont les personnes qui ont écrit la bibliothèque.

コメント

タイトルとURLをコピーしました