تكامل الرموز
كيف يكون رمزا ERC-20 وSPL في Rome هما نفس الحساب الأساسي.
تمثل Rome رمز ERC-20 ورمز SPL الأساسي الخاص به كحساب مشترك واحد. تشرح هذه الصفحة كيف تعمل الرموز عبر EVM وSolana.
نموذج الحالة المشتركة
لا تقوم Rome بقفل الرموز على جانب واحد وسكّ نسخ مغلفة على جانب آخر. رمز ERC-20 على Rome هو غلاف شفاف فوق حساب رمز SPL على Solana — رصيد ERC-20 هو رصيد SPL.
لا يوجد تأخير في الجسر — رصيد 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 الخاص بالمستخدم من Solanatransfer()— ينقل الرموز على Solanaapprove()/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 — استدعِ
Withdrawprecompile (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 فريدة لكل مصنع
ما التالي
عناوين العقود — precompiles وعناوين كل سلسلة
استدعِ Solana من EVM — عمليات CPI وSPL من Solidity
آخر تحديث
هل كان هذا مفيدا؟