use std::str::FromStr;
use secp256k1::SecretKey;
use web3_fe::{
ethabi::ethereum_types::U256,
types::{Address, TransactionParameters},
};
#[tokio::main]
async fn main() -> web3_fe::Result {
let transport = web3_fe::transports::Http::new("https://rinkeby.infura.io/v3/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")?;
let web3 = web3_fe::Web3::new(transport);
let to = Address::from_str("0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").unwrap();
let prvk = SecretKey::from_str("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").unwrap();
let tx_object = TransactionParameters {
to: Some(to),
value: U256::exp10(17), ..Default::default()
};
let signed = web3.accounts().sign_transaction(tx_object, &prvk).await?;
let result = web3.eth().send_raw_transaction(signed.raw_transaction).await?;
println!("Tx succeeded with hash: {}", result);
Ok(())
}