Run Romulus Example
How to run the Romulus transaction example, including helper methods and expected output.
Run Romulus example using:
cargo run --example romulus
Methods Used
We explain the methods used in rome-sdk/examples/romulus.rs below.
Main Methods
The Rome struct will be used to compose transactions. Initialize it with your configuration:
let config = RomeConfig::load_json(common::CONFIG_PATH.parse()?).await?;
let rome = Rome::new_with_config(config).await?;
Create a Romulus transaction and then compose it using the Rome transaction structure. Specify the Ethereum rollup transactions, Solana instructions, and signers needed for the Solana instructions:
let romulus_tx = RomulusTx::new(eth_txs, sol_ixs);
let mut rome_tx = rome.compose_cross_chain_tx(romulus_tx, signers).await?;
Send the transaction to the Solana network:
let signature = rome.send_and_confirm(&mut *rome_tx).await?;
Helper Methods
Create Solana wallet using:
let sender = common::create_solana_payer();
Create Solana transfer instruction using
let sol_ixs = vec![common::construct_solana_transfer_ix(&sender)];
Create Solana transaction signers using
let signers = vec![Arc::new(sender)];
Example Results
cargo run --example romulus
INFO romulus: https://explorer.solana.com/tx/3EXFLyJ2ELQyR3Pax5F2JpRYtL4emSArfY5uco2kGuzaVB6zrB8ZrH6TWPrmyukjmUveBbM8RmY48Jm6t8HSJArp?cluster=devnet
Solana Transaction
The Solana block explorer shows the Solana transaction below (link here). This transaction contains three relevant instructions all executed atomically within this single Solana transaction.
Instruction 3 logs show transfer from wallet ae600d1f94680ef43ab12f8d618f8aafc208fe25 to wallet b94f5374fce5edbc8e2a8697c15331677e6ebf0b for chain 200003.
Instruction 4 logs show transfer from wallet ae600d1f94680ef43ab12f8d618f8aafc208fe25 to wallet b94f5374fce5edbc8e2a8697c15331677e6ebf0b for chain 200004.
Instruction 5 shows SOL transfer from one Solana wallet to another.

Rollup Transactions
The Rollup block explorers show these rollup transactions for chains 200003 and 200004 from wallet ae600d1f94680ef43ab12f8d618f8aafc208fe25 to b94f5374fce5edbc8e2a8697c15331677e6ebf0b.


Last updated
Was this helpful?