For the complete documentation index, see llms.txt. This page is also available as Markdown.

تكامل الرموز

كيف يكون رمزا ERC-20 وSPL في Rome هما نفس الحساب الأساسي.

تمثل Rome رمز ERC-20 ورمز SPL الأساسي الخاص به كحساب مشترك واحد. تشرح هذه الصفحة كيف تعمل الرموز عبر EVM وSolana.

نموذج الحالة المشتركة

لا تقوم Rome بقفل الرموز على جانب واحد وسكّ نسخ مغلفة على جانب آخر. رمز ERC-20 على Rome هو غلاف شفاف فوق حساب رمز SPL على Solana — رصيد ERC-20 هو رصيد SPL.

An ERC-20 wrapper over the same SPL token account on Solana
  • لا يوجد تأخير في الجسر — رصيد ERC-20 هو رصيد SPL

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

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

تستخدم مسارات الاستيراد أدناه @rome-protocol/rome-solidity. لا يزال نشر npm قيد الانتظار؛ واليوم تحصل عليها من rome-solidity المستودع العام (اعتماد git أو الواجهات المنسوخة). توجد واجهات precompile في contracts/interface.sol.

يعرض العقد المغلف

SPL_ERC20 (وفضلاً عن نسخته ذات المسار المخبأ SPL_ERC20_cached، والتي ينشرها المصنع اليوم) واجهة ERC-20 كاملة فوق mint من نوع SPL:

  • balanceOf() — يقرأ رصيد ATA الخاص بالمستخدم من Solana

  • transfer() — ينقل الرموز على Solana

  • approve() / allowance() — تستخدم تخزين EVM (لا يملك SPL صلاحيات على نمط EVM)

  • totalSupply() — يقرأ المعروض من mint الخاص بـ SPL

المصنع

ERC20SPLFactory ينشر غلافًا لأي mint من نوع SPL:

عناوين المصنع المباشرة: Hadrian 0x86149124d74ebb3aa41a19641b700e88202b6285، Martius 0xd7aeeedca26cdd4d34eb7c21110af2e590a8c58a. تحقّق دائمًا من السجل — فهو مصدر الحقيقة للعناوين المنشورة.

السكّات القياسية

لا يوجد عقد سجل رموز على السلسلة. تتم إدارة الأغلفة القياسية ورموز الغاز/الجسر في rome-protocol/registryالمنفصل عن السلسلة؛ أما الأغلفة بلا إذن المنشأة عبر add_spl_token_no_metadata فيتم اكتشافها من حدث TokenCreated على السلسلة. هذا يبقي كل أصل مرتبطًا بمint SPL قياسي واحد دون تجزئة السيولة.

عمليات SPL من Solidity

لأصول SPL الموقعة بواسطة PDA الخاص بالمستخدم، استخدم HelperProgram precompile (0xFF…09) — إنشاء ATA، وتحويلات SPL، والتحويل بين gas وlamports:

transfer_spl له عدة صيغ تحميل (بما في ذلك نسخة delegate لـ transferFrom التدفقات)؛ راجع interface.sol للتواقيع الدقيقة. في المسار المخبأ، توجد العمليات المكافئة على ISplCached (0xFF…05) و IAssociatedSplCached (0xFF…06). يستخدم العقد مسارًا واحدًا باستمرار.

الإيداع والسحب

  • إلى EVM — جانب SPL يضيف الرصيد إلى ATA المملوك لـ PDA الخاص بالمستخدم؛ ويعكس غلاف ERC-20 الرصيد فورًا. تتم التسويات الواردة عبر السلاسل بلا ثقة عبر تفويض موقع من المستخدم على الجسر.

  • إلى Solana — استدعِ Withdraw precompile (0x42…16): withdraw_to_pda / withdraw_to_ata لنقل الرموز من PDA الخاص بالمستخدم إلى Solana مرة أخرى. مسار تغليف gas إلى SPL هو withdraw_to_ata.

رمز الغاز

لكل سلسلة رمز غاز خاص بها — أي رمز SPL، يُسعَّر عبر مجمع Meteora DAMM (v1 أو v2، قابل للتهيئة). تستخدم السلاسل العامة (Martius، Hadrian) USDC. لا يوجد رمز غاز افتراضي عالمي.

القيود

  • كميات رموز SPL هي uint64 (الحد الأقصى 18,446,744,073,709,551,615)

  • تستخدم الصلاحيات تخزين EVM، وليس مفوضي Solana

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

ما التالي

آخر تحديث

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