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)。

## 安装

```bash
cargo add solan
```

或在 `Cargo.toml` 添加:

```toml
[dependencies]
solan = "0.1"
```

## 使用示例

```rust
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