-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Provides consistent low-level types used commonly among Bitcoin implementations
--   
--   Instead of having each Bitcoin library re-define the low level types
--   it is using, this library provides a ready-to-use collection of
--   low-level types and aliases.
@package bitcoin-types
@version 0.9.2

module Data.Bitcoin.Types

-- | Per Bitcoin documentation, an identifier used to uniquely identify a
--   particular transaction; specifically, the sha256d hash of the
--   transaction.
type TransactionId = HexString

-- | Per Bitcoin document, an identifier used to uniquely identify a block
--   by its header.
type BlockHash = HexString

-- | A base58 private key to sign transactions
type PrivateKey = Base58String

-- | Per Bitcoin documentation, an identifier used to uniquely identify a
--   particular address.
type Address = Base58String

-- | A wallet account can be any easy to remember string.
type Account = Text

-- | A single Bitcoin, which represents 10^8 Satoshis.
type Btc = Fixed Satoshi

-- | Data type representing a variable length integer. The <a>VarInt</a>
--   type usually precedes an array or a string that can vary in length.
newtype VarInt
VarInt :: Word64 -> VarInt
[getVarInt] :: VarInt -> Word64
instance GHC.Read.Read Data.Bitcoin.Types.VarInt
instance GHC.Show.Show Data.Bitcoin.Types.VarInt
instance GHC.Classes.Eq Data.Bitcoin.Types.VarInt
instance Data.Fixed.HasResolution Data.Bitcoin.Types.Satoshi
instance Data.Binary.Class.Binary Data.Bitcoin.Types.VarInt
