الحصول على خطأ في إرسال المعاملة: خطأ في الكتابة: لا يمكن قراءة خصائص غير محددة (قراءة “الموفرين”) في تطبيق blockchain في الرفرفة

برمجة


رفرفة
  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  }

ما حاولت:

أثناء تشغيل هذا الرمز في chrome (امتداد metamask)، سينبثق القناع metamask للاتصال بالحساب ولكن بعد ذلك يعطي TypeError: لا يمكن قراءة خصائص غير محددة (قراءة “الموفرين”)، أعتقد أن الخطأ موجود، Final web3provider = Web3Provider(ethereum! ); لكني لا أعرف السبب وكيفية الحل.

الحل 1

الرسالة “لا يمكن قراءة خصائص غير محددة” هي javascript-ese لمحاولة استخدام كائن غير موجود، أو فارغ في اللغات الأخرى.

لا أرى خاصية أو طريقة “مقدمي الخدمة” يتم استدعاؤها في أي مكان في الكود الذي نشرته، وهذا يعني أنه من المحتمل أن يتم طرح الخطأ بواسطة المكتبة التي تحاول استخدامها. الأشخاص الوحيدون الذين يمكنهم مساعدتك في ذلك هم الأشخاص الذين كتبوا المكتبة.

コメント

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