يدعم ADAMANT Messenger التحويلات المشفرة السلسة سواء داخل الدردشات أو مباشرة من شاشة المحفظة، مع تتبع جميع العمليات في سجل المعاملات.
التحويلات المشفرة داخل الدردشة
قبل الإرسال، يقوم التطبيق بالتحقق من رصيد المستخدم من ADM، واتصال الإنترنت، وتوافر عقدة ADM، وتوافر عقدة التشفير من خلال فحوصات صحية. إذا فشل أي من هذه الفحوصات، يعرض التطبيق خطأً ويسمح بإعادة المحاولة.
تبدأ عملية المعاملة بتوليد المعاملة المشفرة ومعاملة ADM محليًا. بالنسبة للسلاسل التي تستخدم nonces مثل ETH، يتحقق التطبيق من التخزين المحلي للتأكد من أن معاملة بنفس الـ nonce لم تُنَفَّذ مسبقًا. أما بالنسبة للسلاسل التي لا تستخدم nonces مثل BTC أو DOGE أو DASH، فيتحقق من التخزين المحلي ويستعلم من البلوكشين عن المعاملات المعلقة. إذا تم العثور على معاملة مكررة معلقة أو منفذة، تتوقف العملية.
بعد ذلك، تُرسل معاملة ADM إلى عقدة ADM. إذا تم قبولها، تُضاف إلى الدردشة ويظل التطبيق في شاشة الإرسال. ثم تُخزن المعاملة المشفرة في قاعدة البيانات المحلية وتُعرض في سجل المعاملات بحالة “معلق”. يعتمد التطبيق على الطابع الزمني المخزن محليًا لترتيب المعاملات حتى يصبح الطابع الزمني الفعلي للبلوكشين متاحًا. هذا العرض الفوري ضروري للتحويلات التي لا تستخدم عملات ADM، لأن عقدة العملة لم تُرجع البيانات بعد، لكن المستخدم يحتاج إلى تغذية فورية.
ثم تُرسل المعاملة المشفرة إلى عقدة العملة. أي رد إيجابي يُسجّل المعاملة كـ “معلقة”، ويتم توجيه المستخدم إلى شاشة الدردشة أو تفاصيل المعاملة. إذا فشل الإرسال، يظهر خطأ في شريط إشعار (snackbar)، ويمكن للمستخدم إعادة المحاولة، مما يولّد معاملة جديدة تمامًا. إذا عاد المستخدم إلى الدردشة دون إعادة المحاولة، تظل المعاملة الفاشلة ظاهرة في الدردشة وفي السجل لأن رسالة ADM قد أُرسلت بالفعل. وتستمر تحديثات المعاملات في الخلفية.
يُولّد توليد معاملة ADM قبل إرسال المعاملة المشفرة ضمانًا بأن التحويل المشفر لن يُرسل دون تسجيله في الدردشة، مما يمنع المستخدمين من إنفاق عملات مشفرة دون رؤيتها وإعادة إرسالها عن طريق الخطأ.
التحويلات المشفرة المباشرة (شاشة المحفظة)
تُشبه سيناريو التحويل المباشر من شاشة المحفظة التحويلات داخل الدردشة تمامًا، باستثناءات قليلة. فهو يتخطى فحص رصيد ADM، وفحص عقدة ADM، وعملية إنشاء معاملة ADM. عند الانتهاء، يتم تحويل المستخدم إلى سجل المعاملات بدلًا من الدردشة.
سجل المعاملات
يجمع سجل المعاملات بين المعاملات المخزنة محليًا والبيانات المتزامنة من واجهة برمجة تطبيقات عقدة البلوكشين. تُحفظ المعاملات المخزنة محليًا حتى بعد إعادة تشغيل التطبيق، ولكن يجب مسحها عند تسجيل الخروج أو إعادة تسجيل الدخول لمنع عرض سجل حساب آخر. يوفر هذا المزيج نظرة دقيقة ومحدثة على تحويلات المستخدم. في كل مكان ممكن، يستخدم التطبيق حسابات وفحوصات محلية لتوليد المعاملات، والأرصدة، والـ nonces، والمضاعفات، والطوابع الزمنية لضمان تجربة مستخدم سريعة دون انتظار طلبات الشبكة.
