outscript 0.1.0

Generate output scripts, parse/encode addresses, and build/sign transactions across multiple cryptocurrency networks (Bitcoin, EVM, Solana, Massa, ...).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Solana address parsing (port of `solana.go`).

use crate::base58;
use crate::out::Out;

/// Parses a Solana base58-encoded address (32 bytes when decoded).
pub fn parse_solana_address(address: &str) -> Result<Out, String> {
    let buf =
        base58::decode(address).map_err(|e| format!("failed to decode solana address: {e}"))?;
    if buf.len() != 32 {
        return Err(format!(
            "invalid solana address: expected 32 bytes, got {}",
            buf.len()
        ));
    }
    Ok(Out::make("solana", buf, &["solana"]))
}