haskoin-core-0.8.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.

Constructors

PubKeyAddress

pay to public key hash (regular)

Fields

ScriptAddress

pay to script hash

Fields

WitnessPubKeyAddress

pay to witness public key hash

Fields

WitnessScriptAddress

pay to witness script hash

Fields

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 #

Serialize Address Source # 
Instance details

Defined in Network.Haskoin.Address

type Rep Address Source # 
Instance details

Defined in Network.Haskoin.Address

type Rep Address = D1 (MetaData "Address" "Network.Haskoin.Address" "haskoin-core-0.8.0-53xOPsHxcRyJyihjj1axwB" False) ((C1 (MetaCons "PubKeyAddress" PrefixI True) (S1 (MetaSel (Just "getAddrHash160") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Hash160)) :+: C1 (MetaCons "ScriptAddress" PrefixI True) (S1 (MetaSel (Just "getAddrHash160") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Hash160))) :+: (C1 (MetaCons "WitnessPubKeyAddress" PrefixI True) (S1 (MetaSel (Just "getAddrHash160") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Hash160)) :+: C1 (MetaCons "WitnessScriptAddress" PrefixI True) (S1 (MetaSel (Just "getAddrHash256") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Hash256))))

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 :: Network -> 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 :: PubKeyI -> Address Source #

Obtain a P2PKH address from a public key.

pubKeyWitnessAddr :: PubKeyI -> Address Source #

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

p2pkhAddr :: Hash160 -> Address Source #

Obtain a P2PKH address from a Hash160.

p2wpkhAddr :: Hash160 -> Address Source #

Obtain a P2WPKH address from a Hash160.

p2shAddr :: Hash160 -> Address Source #

Obtain a P2SH address from a Hash160.

p2wshAddr :: Hash256 -> 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 :: ScriptOutput -> Address Source #

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

payToWitnessScriptAddress :: ScriptOutput -> Address Source #

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

scriptToAddress :: Script -> Either String Address Source #

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

scriptToAddressBS :: ByteString -> Either String 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.