haskoin-core-0.7.0: Bitcoin & Bitcoin Cash library for Haskell

CopyrightNo rights reserved
LicenseUNLICENSE
Maintainerxenog@protonmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Network.Haskoin.Address

Contents

Description

Base58, CashAddr, Bech32 address and WIF private key serialization support.

Synopsis

Documentation

data Address Source #

Address format for Bitcoin and Bitcoin Cash.

Instances
Eq Address Source # 
Instance details

Defined in Network.Haskoin.Address

Methods

(==) :: Address -> Address -> Bool #

(/=) :: Address -> Address -> Bool #

Ord Address Source # 
Instance details

Defined in Network.Haskoin.Address

Read Address Source # 
Instance details

Defined in Network.Haskoin.Address

Show Address Source # 
Instance details

Defined in Network.Haskoin.Address

Generic Address Source # 
Instance details

Defined in Network.Haskoin.Address

Associated Types

type Rep Address :: * -> * #

Methods

from :: Address -> Rep Address x #

to :: Rep Address x -> Address #

Hashable Address Source # 
Instance details

Defined in Network.Haskoin.Address

Methods

hashWithSalt :: Int -> Address -> Int #

hash :: Address -> Int #

ToJSON Address Source # 
Instance details

Defined in Network.Haskoin.Address

Serialize Address Source # 
Instance details

Defined in Network.Haskoin.Address

NFData Address Source # 
Instance details

Defined in Network.Haskoin.Address

Methods

rnf :: Address -> () #

type Rep Address Source # 
Instance details

Defined in Network.Haskoin.Address

getAddrHash160 :: Address -> Hash160 Source #

RIPEMD160 hash of public key's SHA256 hash

getAddrHash256 :: Address -> Hash256 Source #

HASH256 hash of script

getAddrNet :: Address -> Network Source #

address network

isPubKeyAddress :: Address -> Bool Source #

Address pays to a public key hash.

isScriptAddress :: Address -> Bool Source #

Address pays to a script hash.

isWitnessPubKeyAddress :: Address -> Bool Source #

Address pays to a witness public key hash. Only valid for SegWit networks.

isWitnessScriptAddress :: Address -> Bool Source #

Address pays to a witness script hash. Only valid for SegWit networks.

addrToString :: Address -> Text Source #

Convert address to human-readable string. Uses Base58, Bech32, or CashAddr depending on network.

stringToAddr :: Network -> Text -> Maybe Address Source #

Parse Base58, Bech32 or CashAddr address, depending on network.

addrFromJSON :: Network -> Value -> Parser Address Source #

JSON parsing for Bitcoin addresses. Works with Base58, CashAddr and Bech32.

pubKeyAddr :: Network -> PubKeyI -> Address Source #

Obtain a P2PKH address from a public key.

pubKeyWitnessAddr :: Network -> PubKeyI -> Maybe Address Source #

Obtain a P2WPKH address from a public key. Only on SegWit networks.

p2pkhAddr :: Network -> Hash160 -> Address Source #

Obtain a P2PKH address from a Hash160.

p2wpkhAddr :: Network -> Hash160 -> Maybe Address Source #

Obtain a P2WPKH address from a Hash160.

p2shAddr :: Network -> Hash160 -> Address Source #

Obtain a P2SH address from a Hash160.

p2wshAddr :: Network -> Hash256 -> Maybe Address Source #

Obtain a P2WSH address from a Hash256

addressToScript :: Address -> Script Source #

Get output script AST for an Address.

addressToScriptBS :: Address -> ByteString Source #

Encode address as output script in ByteString form.

addressToOutput :: Address -> ScriptOutput Source #

Encode an output script from an address. Will fail if using a pay-to-witness address on a non-SegWit network.

payToScriptAddress :: Network -> ScriptOutput -> Address Source #

Compute a pay-to-script-hash address for an output script.

payToWitnessScriptAddress :: Network -> ScriptOutput -> Maybe Address Source #

Compute a pay-to-witness-script-hash address for an output script. Only on SegWit networks.

scriptToAddress :: Network -> Script -> Maybe Address Source #

Decode an output script into an Address if it has such representation.

scriptToAddressBS :: Network -> ByteString -> Maybe Address Source #

Decode a serialized script into an Address.

Private Key Wallet Import Format (WIF)

fromWif :: Network -> Base58 -> Maybe SecKeyI Source #

Decode private key from WIF (wallet import format) string.

toWif :: Network -> SecKeyI -> Base58 Source #

Encode private key into a WIF string.