solan 0.1.0

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

solan

使用自定义 RPC_URL 与用户私钥,将 SOL 转出到目标地址。支持私钥字符串两种格式:

  • JSON 数组(64个字节,Solana CLI 导出的 keypair 文件内容)
  • Base58 字符串(解码后 64 字节)

说明:你在描述中写了“eth数量”,此处按更符合场景的 SOL 数量 处理。参数 amount_sol 代表以 SOL 为单位的金额,内部会自动换算为 lamports(1 SOL = 1_000_000_000 lamports)。

安装

cargo add solan

或在 Cargo.toml 添加:

[dependencies]
solan = "0.1"

使用示例

use solan::transfer_sol;

fn main() {
    // 示例:使用 devnet 测试网。生产请使用你自己的 RPC。
    let rpc_url = "https://api.devnet.solana.com";

    // 私钥字符串:支持两种形式
    // 1) JSON 数组(64字节)如:"[12,34,...,99]"
    // 2) Base58 字符串,解码后应为64字节
    let secret = "[12,34, ... 64 bytes ...]"; // 替换为你的私钥
    let to = "目标地址Base58"; // 替换为收款地址

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

行为说明

  • 构造 system_instruction::transfer 指令并以私钥签名,向 to_address 转出指定 SOL。
  • 通过 get_latest_blockhash 获取最新区块哈希,构造并提交交易。
  • 返回交易签名(Base58)。

注意事项

  • 钱包与私钥安全:请勿在非安全环境中暴露私钥;建议仅在测试网(devnet/testnet)尝试。
  • 数量单位:传入金额为 SOL;内部将按 LAMPORTS_PER_SOL 换算。
  • 私钥格式:必须是 Keypair(64字节),仅 32 字节私钥无法直接构建 Keypair。
  • 费用与余额:需确保账户有足够余额支付转账金额与网络费用。

许可证

MIT © 2025 useful-cargo-packages