#ton #address #addresses #open #base64 #networking #base64-decoder

ton-address

一个用于在开放网络(TON)上处理地址的简单库。

4个版本

0.1.3 2024年7月20日
0.1.2 2024年7月18日
0.1.1 2024年7月17日
0.1.0 2024年7月17日

网络编程 中排名 486

Download history 228/week @ 2024-07-14 79/week @ 2024-07-21 12/week @ 2024-07-28

每月下载量 319

Apache-2.0

26KB
522

Build codecov

一个用于在开放网络(TON)上处理地址的简单库。

示例

解析地址

use ton_address::{Address, ParseError, Base64Decoder};

fn main() {
    // 1. Parse the address in any form via ::parse().
    let result: Result<Address, ParseError> = "EQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qgJuR2".parse();
    
    // 2. Parse only from base64 with alphabet guessing.
    let result: Result<Address, ParseError> = Address::from_base64(
        "EQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qgJuR2",
        None // Means that Base64 type will be guessed
    );

    // 3. Parse the address only from base64 using the standard alphabet.
    //    
    //    Note, in this example if the address is encoded in the UrlSafe
    //    alphabet, the method will return an error.
    let result: Result<Address, ParseError> = Address::from_base64(
        "EQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qgJuR2",
        Some(Base64Decoder::Standard) // or ::UrlSafe alphabet
    );
}

格式化地址

use ton_address::{Address, ParseError, Base64Encoder, BASE64_STD_DEFAULT, BASE64_URL_DEFAULT};

fn main() {
    let result: Address = "EQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qgJuR2"
        .parse()
        .unwrap();
    
    // Manual control of Base64 encoding
    println!("{}", result.to_base64(Base64Encoder::Standard {
        bounceable: false,
        production: true,
    })); // UQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qg....

    // Constants for fast conversion (bounceable & production by default)
    println!("{}", result.to_base64(BASE64_STD_DEFAULT)); // EQAOl3l3CEEcKaPLHz-BDvT4P0HZkIOPf5POcILE_5qgJuR2
    println!("{}", result.to_base64(BASE64_URL_DEFAULT)); // EQAOl3l3CEEcKaPLHz+BDvT4P0HZkIOPf5POcILE/5qgJuR2

    // Or convert it to a raw address
    println!("{}", result.to_raw_address()); // 0:...
}

依赖项

~0.6–1.1MB
~24K SLoC