bitcoin-hs-0.0.1: Partial implementation of the Bitcoin protocol (as of 2013)

Safe HaskellNone
LanguageHaskell98

Bitcoin.BlockChain.Base

Contents

Description

BlockChain data structures

Synopsis

the block header

data BlockHeader Source #

The header of a block

Constructors

BlockHeader 

Fields

one-parameter blocks

data Block tx Source #

Constructors

Block 

Fields

Instances

Functor Block Source # 

Methods

fmap :: (a -> b) -> Block a -> Block b #

(<$) :: a -> Block b -> Block a #

Foldable Block Source # 

Methods

fold :: Monoid m => Block m -> m #

foldMap :: Monoid m => (a -> m) -> Block a -> m #

foldr :: (a -> b -> b) -> b -> Block a -> b #

foldr' :: (a -> b -> b) -> b -> Block a -> b #

foldl :: (b -> a -> b) -> b -> Block a -> b #

foldl' :: (b -> a -> b) -> b -> Block a -> b #

foldr1 :: (a -> a -> a) -> Block a -> a #

foldl1 :: (a -> a -> a) -> Block a -> a #

toList :: Block a -> [a] #

null :: Block a -> Bool #

length :: Block a -> Int #

elem :: Eq a => a -> Block a -> Bool #

maximum :: Ord a => Block a -> a #

minimum :: Ord a => Block a -> a #

sum :: Num a => Block a -> a #

product :: Num a => Block a -> a #

Traversable Block Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Block a -> f (Block b) #

sequenceA :: Applicative f => Block (f a) -> f (Block a) #

mapM :: Monad m => (a -> m b) -> Block a -> m (Block b) #

sequence :: Monad m => Block (m a) -> m (Block a) #

Eq tx => Eq (Block tx) Source # 

Methods

(==) :: Block tx -> Block tx -> Bool #

(/=) :: Block tx -> Block tx -> Bool #

Show tx => Show (Block tx) Source # 

Methods

showsPrec :: Int -> Block tx -> ShowS #

show :: Block tx -> String #

showList :: [Block tx] -> ShowS #

newtype BlockChain tx Source #

Constructors

BlockChain [Block tx] 

Instances

Functor BlockChain Source # 

Methods

fmap :: (a -> b) -> BlockChain a -> BlockChain b #

(<$) :: a -> BlockChain b -> BlockChain a #

Foldable BlockChain Source # 

Methods

fold :: Monoid m => BlockChain m -> m #

foldMap :: Monoid m => (a -> m) -> BlockChain a -> m #

foldr :: (a -> b -> b) -> b -> BlockChain a -> b #

foldr' :: (a -> b -> b) -> b -> BlockChain a -> b #

foldl :: (b -> a -> b) -> b -> BlockChain a -> b #

foldl' :: (b -> a -> b) -> b -> BlockChain a -> b #

foldr1 :: (a -> a -> a) -> BlockChain a -> a #

foldl1 :: (a -> a -> a) -> BlockChain a -> a #

toList :: BlockChain a -> [a] #

null :: BlockChain a -> Bool #

length :: BlockChain a -> Int #

elem :: Eq a => a -> BlockChain a -> Bool #

maximum :: Ord a => BlockChain a -> a #

minimum :: Ord a => BlockChain a -> a #

sum :: Num a => BlockChain a -> a #

product :: Num a => BlockChain a -> a #

Traversable BlockChain Source # 

Methods

traverse :: Applicative f => (a -> f b) -> BlockChain a -> f (BlockChain b) #

sequenceA :: Applicative f => BlockChain (f a) -> f (BlockChain a) #

mapM :: Monad m => (a -> m b) -> BlockChain a -> m (BlockChain b) #

sequence :: Monad m => BlockChain (m a) -> m (BlockChain a) #

two-parameter blocks

newtype Block2 inscript outscript Source #

A two-parameter version of Block, with BiFunctor etc instances. It is a newtype only so that we can provide these instances...

Constructors

Block2 

Fields

Instances

BiFoldable Block2 Source # 

Methods

bifoldl :: (a -> b -> a) -> (a -> c -> a) -> a -> Block2 b c -> a Source #

bifoldr :: (b -> a -> a) -> (c -> a -> a) -> Block2 b c -> a -> a Source #

BiFunctor Block2 Source # 

Methods

fmapFst :: (a -> b) -> Block2 a c -> Block2 b c Source #

fmapSnd :: (b -> c) -> Block2 a b -> Block2 a c Source #

fmapBoth :: (a -> c) -> (b -> d) -> Block2 a b -> Block2 c d Source #

newtype BlockChain2 inscript outscript Source #

A two-parameter version of BlockChain, with BiFunctor etc instances.

Constructors

BlockChain2 

Fields

Instances

BiFoldable BlockChain2 Source # 

Methods

bifoldl :: (a -> b -> a) -> (a -> c -> a) -> a -> BlockChain2 b c -> a Source #

bifoldr :: (b -> a -> a) -> (c -> a -> a) -> BlockChain2 b c -> a -> a Source #

BiFunctor BlockChain2 Source # 

Methods

fmapFst :: (a -> b) -> BlockChain2 a c -> BlockChain2 b c Source #

fmapSnd :: (b -> c) -> BlockChain2 a b -> BlockChain2 a c Source #

fmapBoth :: (a -> c) -> (b -> d) -> BlockChain2 a b -> BlockChain2 c d Source #