Crate bitcoin_bech32 [] [src]

Encoding and decoding Bech32 Bitcoin Segwit Addresses

Encoding and decoding for Bitcoin Segregated Witness addresses. Bech32 is an encoding scheme described in BIP-0173, and segregated witness addresses encoded by Bech32 simply combine a coin-specific human-readable part with the data of the witness program as the Bech32 data payload.

Examples

use bitcoin_bech32::WitnessProgram;
use bitcoin_bech32::constants::Network;
 
let witness_program = WitnessProgram {
    version: 0,
    program: vec![
                0x00, 0x00, 0x00, 0xc4, 0xa5, 0xca, 0xd4, 0x62, 
                0x21, 0xb2, 0xa1, 0x87, 0x90, 0x5e, 0x52, 0x66, 
                0x36, 0x2b, 0x99, 0xd5, 0xe9, 0x1c, 0x6c, 0xe2, 
                0x4d, 0x16, 0x5d, 0xab, 0x93, 0xe8, 0x64, 0x33],
    network: Network::Testnet
};
 
let address = witness_program.to_address().unwrap();
assert_eq!(address, 
    "tb1qqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesrxh6hy".to_string());

let decoded = WitnessProgram::from_address(address).unwrap();
assert_eq!(decoded, witness_program);

Modules

constants

Human-readable constants for various cryptocurrencies

Structs

WitnessProgram

Witness version and program data

Enums

BitConversionError

Error types during bit conversion

Error

Error types while encoding and decoding SegWit addresses

ScriptPubKeyError

Error types for validating scriptpubkeys

WitnessProgramError

Error types for witness programs