Copyright | No rights reserved |
---|---|
License | MIT |
Maintainer | jprupp@protonmail.ch |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Support for Bitcoin SegWit (BTC) Bech32 addresses. This module is a modified version of Marko Bencun's reference implementation.
Synopsis
- type HRP = Text
- type Bech32 = Text
- data Bech32Encoding
- bech32Const :: Bech32Encoding -> Word
- type Data = [Word8]
- bech32Encode :: Bech32Encoding -> HRP -> [Word5] -> Maybe Bech32
- bech32Decode :: Bech32 -> Maybe (Bech32Encoding, HRP, [Word5])
- toBase32 :: [Word8] -> [Word5]
- toBase256 :: [Word5] -> Maybe [Word8]
- segwitEncode :: HRP -> Word8 -> Data -> Maybe Text
- segwitDecode :: HRP -> Bech32 -> Maybe (Word8, Data)
- newtype Word5 = UnsafeWord5 Word8
- word5 :: Integral a => a -> Word5
- fromWord5 :: Num a => Word5 -> a
Bech32
data Bech32Encoding Source #
Instances
bech32Const :: Bech32Encoding -> Word Source #
bech32Encode :: Bech32Encoding -> HRP -> [Word5] -> Maybe Bech32 Source #
bech32Decode :: Bech32 -> Maybe (Bech32Encoding, HRP, [Word5]) Source #
Decode human-readable Bech32
string into a human-readable part and a
string of five-bit words.
toBase32 :: [Word8] -> [Word5] Source #
Convert from eight-bit to five-bit word string, adding padding as required.
toBase256 :: [Word5] -> Maybe [Word8] Source #
Convert from five-bit word string to eight-bit word string, ignoring padding.
segwitDecode :: HRP -> Bech32 -> Maybe (Word8, Data) Source #
Decode SegWit Bech32
address from a string and expected human-readable part.