drt_sc_snippets/interactor_scenario/
interactor_transfer.rs

1use crate::Interactor;
2use log::info;
3use drt_sc_scenario::{scenario::ScenarioRunner, scenario_model::TransferStep};
4
5impl Interactor {
6    pub async fn transfer(&mut self, transfer_step: TransferStep) -> String {
7        self.pre_runners.run_transfer_step(&transfer_step);
8
9        let sender_address = &transfer_step.tx.from.value;
10        let mut transaction = self.tx_call_to_blockchain_tx(&transfer_step.tx.to_tx_call());
11        self.set_nonce_and_sign_tx(sender_address, &mut transaction)
12            .await;
13        let tx_hash = self.proxy.send_transaction(&transaction).await.unwrap();
14        println!("transfer tx hash: {tx_hash}");
15        info!("transfer tx hash: {}", tx_hash);
16
17        self.proxy.retrieve_tx_on_network(tx_hash.clone()).await;
18
19        self.post_runners.run_transfer_step(&transfer_step);
20
21        tx_hash
22    }
23}