use mina_sdk::{Currency, MinaClient, Payment};
#[tokio::main]
async fn main() -> mina_sdk::Result<()> {
let client = MinaClient::default();
let (Ok(sender), Ok(receiver)) = (
std::env::var("MINA_TEST_SENDER_KEY"),
std::env::var("MINA_TEST_RECEIVER_KEY"),
) else {
println!("Set MINA_TEST_SENDER_KEY and MINA_TEST_RECEIVER_KEY to run");
return Ok(());
};
let fee = Currency::from_mina("0.01")?;
let payment = Payment::sender(&sender)
.to(&receiver)
.amount(Currency::from_mina("1.5")?)
.fee(fee)
.memo("coffee payment");
let result = client.send_payment(payment).await?;
println!("Payment submitted!");
println!(" Hash: {}", result.hash);
println!(" ID: {}", result.id);
println!(" Nonce: {}", result.nonce);
let next_payment = Payment::sender(&sender)
.to(&receiver)
.amount(Currency::from_mina("2.0")?)
.fee(fee)
.memo("second payment")
.nonce(result.nonce + 1);
let result2 = client.send_payment(next_payment).await?;
println!("Second payment: {}", result2.hash);
Ok(())
}