تشغيل مثال Romulus

كيفية تشغيل مثال معاملة Romulus، بما في ذلك طرق المساعدة والمخرجات المتوقعة.

تتضمن معاملات رومولوس معاملات متعددة على EVM L2 ومعاملات سولانا مجمعة داخل معاملة سولانا واحدة.

تتيح هذه الوظيفة إجراء معاملات ذرية بين L2 وسولانا.

تمويل المحافظ اللازمة

تأكد من من العنوان (0xae600d1f94680ef43ab12f8d618f8aafc208fe25) لديه أموال كافية على كل من Rome Devnet Esquiline (معرّف السلسلة 121212) و Rome Devnet Subura (معرّف السلسلة 121213).

وإلا، استخدم التعليمات المرتبطة هنا لتمويل هذه المحفظة على كلتا الشبكتين.

تشغيل مثال رومولوس

RUST_LOG=info cargo run --example romulus

مخرجات المثال

INFO romulus: https://explorer.solana.com/tx/2Ra62pkEjufrzDtwrNjTgmUBGZffRNv1uaw7rzBcVdJZzKAUViJigJsP1UdzQNPQJMRbBTbooLxme8pWwvGAmJ7y?cluster=devnet

تُظهر النتائج معاملتين على L2 وتحويل رصيد واحد على سولانا نُفذت كلها ذرية داخل معاملة سولانا واحدة.

معاملة سولانا

عارض بلوك سولانا ديفنت يُظهرarrow-up-right معاملة رومولوس على سولانا أدناه. تحتوي على ثلاث تعليمات ذات صلة نُفذت كلها ذرية داخل معاملة سولانا واحدة. تُظهر سجلات التعليمات 3 التحويل من المحفظة

  • ae600d1f94680ef43ab12f8d618f8aafc208fe25 إلى المحفظة b94f5374fce5edbc8e2a8697c15331677e6ebf0b على سلسلة Rome Esquiline. تُظهر سجلات التعليمات 4 التحويل من المحفظة

  • على سلسلة Rome Subura. إلى المحفظة b94f5374fce5edbc8e2a8697c15331677e6ebf0b على سلسلة Rome Esquiline. توضح التعليمات 5 تحويل SOL من محفظة سولانا إلى أخرى على سولانا ديفنت.

  • معاملات L2

عارض بلوك Rome Esquiline

يُظهر معاملة L2 المقابلة أدناه بين نفس المحافظ منarrow-up-right إلى إلى المحفظة عارض بلوك Rome Subura على سلسلة Rome Esquiline..

شرح الطرق المستخدمةarrow-up-right إلى إلى المحفظة عارض بلوك Rome Subura على سلسلة Rome Esquiline..

نشرح الطرق المستخدمة في rome-sdk/examples/romulus.rs أدناه.

الطرق الرئيسية

سيُستخدم الهيكل Rome لتأليف المعاملات. قم بتهيئته بتكوينك:

let config = RomeConfig::load_json(common::CONFIG_PATH.parse()?).await?;

let romulus_tx = RomulusTx::new(eth_txs, sol_ixs);

let signature = rome.send_and_confirm(&mut *rome_tx).await?;

إنشاء محفظة سولانا باستخدام:

let sender = common::create_solana_payer();

let sol_ixs = vec![common::construct_solana_transfer_ix(&sender)];

let signers = vec![Arc::new(sender)];

Last updated

Was this helpful?