1use multiversx_sdk::{
2 data::{sdk_address::SdkAddress, transaction::Transaction},
3 wallet::Wallet,
4};
5use multiversx_sdk_http::{GatewayHttpProxy, DEVNET_GATEWAY};
6
7#[tokio::main]
8async fn main() {
9 let wl = Wallet::from_private_key(
10 "1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
11 )
12 .unwrap();
13 let addr = wl.to_address();
14 let blockchain = GatewayHttpProxy::new(DEVNET_GATEWAY.to_string());
15 let network_config = blockchain.get_network_config().await.unwrap();
16
17 let arg = blockchain
18 .get_default_transaction_arguments(&addr, &network_config)
19 .await
20 .unwrap();
21
22 let mut unsign_tx = Transaction {
23 nonce: arg.nonce,
24 value: "0".to_string(),
25 receiver: SdkAddress(addr.clone()),
26 sender: SdkAddress(addr.clone()),
27 gas_price: arg.gas_price,
28 gas_limit: arg.gas_limit,
29 data: arg.data,
30 signature: None,
31 chain_id: arg.chain_id,
32 version: arg.version,
33 options: arg.options,
34 };
35
36 let signature = wl.sign_tx(&unsign_tx);
37 unsign_tx.signature = Some(hex::encode(signature));
38 let tx_hash = blockchain.send_transaction(&unsign_tx).await.unwrap();
39 println!("tx_hash {tx_hash}");
40}