تكامل الرموز

تربط Rome EVM بين رموز ERC-20 ورموز SPL عبر نموذج الحالة الواحدة. تشرح هذه الصفحة كيفية عمل الرموز عبر EVM وسولانا.

نموذج الحالة الواحدة

على خلاف الجسور التقليدية، لا تقوم Rome بقفل الرموز على سلسلة واحدة وسك نسخ مغلفة على أخرى. وبدلاً من ذلك، فإن رموز ERC-20 على Rome EVM هي أغلفة شفافة فوق حسابات رموز SPL الأساسية على سولانا.

┌──────────────────────────────────┐
│ Rome EVM                         │
│                                  │
│   ERC-20 "rUSDC"                 │
│   ┌────────────────────────┐     │
│   │ balanceOf(user)        │─────┼──► يقرأ مباشرةً من SPL ATA
│   │ transfer(to, amount)   │─────┼──► ينفذ تحويل SPL عبر precompile
│   │ totalSupply()          │─────┼──► يقرأ عرض سكّ SPL
│   └────────────────────────┘     │
│                                  │
└──────────────────────────────────┘

                 │ نفس البيانات الأساسية

┌──────────────────────────────────┐
│ Solana                           │
│                                  │
│   حساب رمز SPL (ATA)             │
│   المالك: PDA الخاص بالمستخدم    │
│   السك: USDC (العملة الأصلية لـ Circle)     │
│   المبلغ: 1000000 (= 1 USDC)    │
│                                  │
└──────────────────────────────────┘

ما الذي يعنيه هذا:

  • لا يوجد تأخير في الجسر — رصيد ERC-20 هو نفسه رصيد SPL

  • لا يوجد تجزؤ في السيولة — ترى DeFi على الجانبين الرموز نفسها

  • لا توجد مخاطرة جسر — لا يوجد حساب وصاية منفصل يمكن استغلاله

ERC20SPL: عقد الغلاف

SPL_ERC20 هو عقد الغلاف القياسي الذي يوفّر واجهة ERC-20 كاملة فوق سكّ رمز SPL:

كيف يعمل ذلك في الخلفية:

  • balanceOf() → يستنتج ATA الخاص بالمستخدم (حساب الرمز المرتبط) → يقرأ الرصيد من سولانا

  • transfer() → يستدعي precompile الخاص بـ SPL Token (0xff...05) → ينقل الرموز على سولانا

  • approve() / allowance() → يستخدم تخزين EVM (نمط ERC-20 القياسي) لأن SPL لا يدعم أصلاً بدلات بأسلوب EVM

  • totalSupply() → يقرأ من حساب سكّ SPL

ERC20SPLFactory

يقوم عقد المصنع بنشر أغلفة لأي رمز SPL:

عنوان المصنع (devnet): 0xfd21da046c282e1d36cc45e46d9599cff5742f2b

سجل الرموز

يقدّم TokenRegistry تسجيلًا مُدارًا من قبل المسؤول للرموز SPL المعتمدة مع بيانات وصفية عبر السلاسل:

يضمن السجل أن كل أصل يُطابِق سكّ SPL واحدًا وحيدًا ومعتمدًا — مما يمنع تعدد تمثيلات USDC من تجزئة السيولة.

تدفق الإيداع / السحب

الإيداع من SPL إلى EVM

  1. يقوم المستخدم بتحويل رموز SPL إلى خزنة الجسر

  2. ينشئ الجسر ATA الخاص بالمستخدم على Rome EVM (إن لم يكن موجودًا)

  3. يصبح غلاف ERC-20 نشطًا — يرى المستخدم الرصيد في MetaMask

السحب من EVM إلى SPL

  1. يستدعي المستخدم precompile الخاص بالسحب (0x42...16) على Rome EVM

  2. ينفّذ الـ precompile تحويل SPL من PDA الخاص بالمستخدم عائدًا إلى محفظته على سولانا

  3. تظهر رموز SPL في محفظة المستخدم على سولانا

اشتقاق PDA

كل عنوان EVM يُطابِق PDA على سولانا يملك حسابات الرموز الخاصة به:

الأنماط الرئيسية

قراءة أرصدة SPL من Solidity

تحويل الرموز عبر SPL Precompile

رمز الغاز

تملك كل سلسلة Rome EVM رمز غاز خاصًا بها — أي رمز SPL يتم اختياره عند تسجيل السلسلة:

  • RSOL — رمز الغاز الافتراضي (SOL مغلف)

  • الرموز المخصصة — أي رمز SPL، يتم تسعيره عبر مجمع Meteora DAMM V1

رموز الغاز هي تمثيلات ERC-20 لرموز SPL. لا يتم تشغيل Transfer Hooks في دفعات الغاز الداخلية على EVM.

القيود

  • كميات رموز SPL هي uint64 — القيمة القصوى 18,446,744,073,709,551,615

  • الخانات العشرية الافتراضية لسكوك SPL الجديدة: 9

  • يجب أن تكون رموز غلاف ERC-20 فريدة عالميًا لكل مصنع

  • تستخدم البدلات تخزين EVM (وليس مفوضي سولانا)

ما التالي

آخر تحديث

هل كان هذا مفيدا؟