solan 0.1.2

使用自定义 RPC_URL 与私钥,签名并转出 SOL 到目标地址。
Documentation
use std::env;

use solan::transfer_sol;

fn main() {
    let rpc_url = env::var("RPC_URL").unwrap_or_else(|_| "https://api.devnet.solana.com".to_string());
    let secret = match env::var("SECRET") {
        Ok(v) => v,
        Err(_) => {
            eprintln!("缺少 SECRET 环境变量(支持 0x 十六进制 / JSON 数组 / Base58)。示例:\n set SECRET=0x<128hex 或 64hex> 或 set SECRET=[12,34,...,32或64字节] 或 set SECRET=<base58>");
            return;
        }
    };
    let to = match env::var("TO") {
        Ok(v) => v,
        Err(_) => {
            eprintln!("缺少 TO 环境变量(目标地址 Base58 或 0x 十六进制)。示例:\n set TO=<recipient_base58> 或 set TO=0x<64hex>");
            return;
        }
    };
    let amount_sol: f64 = match env::var("AMOUNT_SOL") {
        Ok(v) => v.parse().unwrap_or(0.001),
        Err(_) => 0.001,
    };

    match transfer_sol(&rpc_url, &secret, &to, amount_sol) {
        Ok(sig) => println!("交易成功,签名: {}", sig),
        Err(e) => eprintln!("交易失败: {}", e),
    }
}