haskoin-store-0.13.0: Storage and index for Bitcoin and Bitcoin Cash

Safe HaskellNone
LanguageHaskell2010

Haskoin.Store

Synopsis

Documentation

data Store Source #

Store mailboxes.

Constructors

Store 

Fields

type BlockStore = Mailbox BlockMessage Source #

Mailbox for block store.

data StoreConfig Source #

Configuration for a Store.

Constructors

StoreConfig 

Fields

data StoreEvent Source #

Events that the store can generate.

Constructors

StoreBestBlock !BlockHash

new best block

StoreMempoolNew !TxHash

new mempool transaction

StorePeerConnected !Peer !SockAddr

new peer connected

StorePeerDisconnected !Peer !SockAddr

peer has disconnected

StorePeerPong !Peer !Word64

peer responded Ping

StoreTxAvailable !Peer ![TxHash]

peer inv transactions

StoreTxReject !Peer !TxHash !RejectCode !ByteString

peer rejected transaction

data BlockData Source #

Database value for a block entry.

Constructors

BlockData 

Fields

Instances
Eq BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep BlockData :: Type -> Type #

Hashable BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

JsonSerial [BlockData] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial [BlockData] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

data Transaction Source #

Detailed transaction information.

Constructors

Transaction 

Fields

Instances
Eq Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Transaction :: Type -> Type #

Hashable Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

JsonSerial [Transaction] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial [Transaction] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Transaction = D1 (MetaData "Transaction" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "Transaction" PrefixI True) (((S1 (MetaSel (Just "transactionBlock") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BlockRef) :*: S1 (MetaSel (Just "transactionVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32)) :*: (S1 (MetaSel (Just "transactionLockTime") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32) :*: S1 (MetaSel (Just "transactionInputs") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [Input]))) :*: ((S1 (MetaSel (Just "transactionOutputs") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [Output]) :*: S1 (MetaSel (Just "transactionDeleted") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Bool)) :*: (S1 (MetaSel (Just "transactionRBF") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Bool) :*: S1 (MetaSel (Just "transactionTime") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64)))))

data Input Source #

Input information.

Constructors

Coinbase

coinbase details

Fields

Input

input details

Fields

Instances
Eq Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

compare :: Input -> Input -> Ordering #

(<) :: Input -> Input -> Bool #

(<=) :: Input -> Input -> Bool #

(>) :: Input -> Input -> Bool #

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

max :: Input -> Input -> Input #

min :: Input -> Input -> Input #

Read Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

showsPrec :: Int -> Input -> ShowS #

show :: Input -> String #

showList :: [Input] -> ShowS #

Generic Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Input :: Type -> Type #

Methods

from :: Input -> Rep Input x #

to :: Rep Input x -> Input #

Hashable Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> Input -> Int #

hash :: Input -> Int #

Serialize Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

put :: Putter Input #

get :: Get Input #

type Rep Input Source # 
Instance details

Defined in Network.Haskoin.Store.Data

data Output Source #

Output information.

Constructors

Output 

Fields

Instances
Eq Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Output :: Type -> Type #

Methods

from :: Output -> Rep Output x #

to :: Rep Output x -> Output #

Hashable Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> Output -> Int #

hash :: Output -> Int #

Serialize Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Output Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Output = D1 (MetaData "Output" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "Output" PrefixI True) (S1 (MetaSel (Just "outputAmount") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: (S1 (MetaSel (Just "outputScript") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ByteString) :*: S1 (MetaSel (Just "outputSpender") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Spender)))))

data Spender Source #

Information about input spending output.

Constructors

Spender 

Fields

Instances
Eq Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Spender :: Type -> Type #

Methods

from :: Spender -> Rep Spender x #

to :: Rep Spender x -> Spender #

Hashable Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> Spender -> Int #

hash :: Spender -> Int #

ToJSON Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Spender Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Spender = D1 (MetaData "Spender" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "Spender" PrefixI True) (S1 (MetaSel (Just "spenderHash") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 TxHash) :*: S1 (MetaSel (Just "spenderIndex") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32)))

data BlockRef Source #

Reference to a block where a transaction is stored.

Constructors

BlockRef 

Fields

MemRef 
Instances
Eq BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep BlockRef :: Type -> Type #

Methods

from :: BlockRef -> Rep BlockRef x #

to :: Rep BlockRef x -> BlockRef #

Hashable BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> BlockRef -> Int #

hash :: BlockRef -> Int #

ToJSON BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize BlockRef Source #

Serialized entities will sort in reverse order.

Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep BlockRef = D1 (MetaData "BlockRef" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "BlockRef" PrefixI True) (S1 (MetaSel (Just "blockRefHeight") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BlockHeight) :*: S1 (MetaSel (Just "blockRefPos") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32)) :+: C1 (MetaCons "MemRef" PrefixI True) (S1 (MetaSel (Just "memRefTime") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 PreciseUnixTime)))

data Unspent Source #

Unspent output.

Constructors

Unspent 

Fields

Instances
Eq Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Unspent :: Type -> Type #

Methods

from :: Unspent -> Rep Unspent x #

to :: Rep Unspent x -> Unspent #

Hashable Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> Unspent -> Int #

hash :: Unspent -> Int #

Serialize Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Unspent] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Unspent = D1 (MetaData "Unspent" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "Unspent" PrefixI True) ((S1 (MetaSel (Just "unspentBlock") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BlockRef) :*: S1 (MetaSel (Just "unspentPoint") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 OutPoint)) :*: (S1 (MetaSel (Just "unspentAmount") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: S1 (MetaSel (Just "unspentScript") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ShortByteString))))

data BlockTx Source #

Transaction in relation to an address.

Constructors

BlockTx 

Fields

Instances
Eq BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep BlockTx :: Type -> Type #

Methods

from :: BlockTx -> Rep BlockTx x #

to :: Rep BlockTx x -> BlockTx #

Hashable BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> BlockTx -> Int #

hash :: BlockTx -> Int #

ToJSON BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [BlockTx] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep BlockTx = D1 (MetaData "BlockTx" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "BlockTx" PrefixI True) (S1 (MetaSel (Just "blockTxBlock") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BlockRef) :*: S1 (MetaSel (Just "blockTxHash") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 TxHash)))

data XPubBal Source #

Address balances for an extended public key.

Constructors

XPubBal 

Fields

Instances
Eq XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Show XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep XPubBal :: Type -> Type #

Methods

from :: XPubBal -> Rep XPubBal x #

to :: Rep XPubBal x -> XPubBal #

JsonSerial XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

JsonSerial [XPubBal] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial [XPubBal] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep XPubBal = D1 (MetaData "XPubBal" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "XPubBal" PrefixI True) (S1 (MetaSel (Just "xPubBalPath") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [KeyIndex]) :*: S1 (MetaSel (Just "xPubBal") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Balance)))

data XPubUnspent Source #

Unspent transaction for extended public key.

Constructors

XPubUnspent 
Instances
Eq XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep XPubUnspent :: Type -> Type #

JsonSerial XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [XPubUnspent] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep XPubUnspent = D1 (MetaData "XPubUnspent" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "XPubUnspent" PrefixI True) (S1 (MetaSel (Just "xPubUnspentPath") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [KeyIndex]) :*: S1 (MetaSel (Just "xPubUnspent") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Unspent)))

data Balance Source #

Address balance information.

Constructors

Balance 

Fields

Instances
Eq Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Ord Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Balance :: Type -> Type #

Methods

from :: Balance -> Rep Balance x #

to :: Rep Balance x -> Balance #

Hashable Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

hashWithSalt :: Int -> Balance -> Int #

hash :: Balance -> Int #

Serialize Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

JsonSerial [Balance] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial [Balance] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Balance = D1 (MetaData "Balance" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "Balance" PrefixI True) ((S1 (MetaSel (Just "balanceAddress") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Address) :*: (S1 (MetaSel (Just "balanceAmount") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: S1 (MetaSel (Just "balanceZero") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64))) :*: (S1 (MetaSel (Just "balanceUnspentCount") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: (S1 (MetaSel (Just "balanceTxCount") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: S1 (MetaSel (Just "balanceTotalReceived") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64)))))

data PeerInformation Source #

Information about a connected peer.

Constructors

PeerInformation 

Fields

Instances
Eq PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep PeerInformation :: Type -> Type #

ToJSON PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

JsonSerial [PeerInformation] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial [PeerInformation] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep PeerInformation = D1 (MetaData "PeerInformation" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "PeerInformation" PrefixI True) ((S1 (MetaSel (Just "peerUserAgent") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ByteString) :*: S1 (MetaSel (Just "peerAddress") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 SockAddr)) :*: (S1 (MetaSel (Just "peerVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word32) :*: (S1 (MetaSel (Just "peerServices") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word64) :*: S1 (MetaSel (Just "peerRelay") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Bool)))))

newtype PreciseUnixTime Source #

Unix time with nanosecond precision for mempool transactions.

Constructors

PreciseUnixTime Word64 
Instances
Eq PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Read PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep PreciseUnixTime :: Type -> Type #

Hashable PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ToJSON PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize PreciseUnixTime Source #

Serialize such that ordering is inverted.

Instance details

Defined in Network.Haskoin.Store.Data

type Rep PreciseUnixTime Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep PreciseUnixTime = D1 (MetaData "PreciseUnixTime" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" True) (C1 (MetaCons "PreciseUnixTime" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word64)))

data HealthCheck Source #

Instances
Eq HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep HealthCheck :: Type -> Type #

ToJSON HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

data Event Source #

Instances
Eq Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Show Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

showsPrec :: Int -> Event -> ShowS #

show :: Event -> String #

showList :: [Event] -> ShowS #

Generic Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep Event :: Type -> Type #

Methods

from :: Event -> Rep Event x #

to :: Rep Event x -> Event #

ToJSON Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial Event Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Event] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep Event = D1 (MetaData "Event" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" False) (C1 (MetaCons "EventBlock" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BlockHash)) :+: C1 (MetaCons "EventTx" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TxHash)))

newtype TxAfterHeight Source #

Constructors

TxAfterHeight 
Instances
Eq TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep TxAfterHeight :: Type -> Type #

ToJSON TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep TxAfterHeight = D1 (MetaData "TxAfterHeight" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" True) (C1 (MetaCons "TxAfterHeight" PrefixI True) (S1 (MetaSel (Just "txAfterHeight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Bool))))

class JsonSerial a where Source #

Instances
JsonSerial TxHash Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Except Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Event Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial [XPubBal] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial [PeerInformation] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial [Transaction] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial [BlockData] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial [Balance] Source # 
Instance details

Defined in Network.Haskoin.Store.Data

class ProtoSerial a where Source #

Instances
ProtoSerial TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial Except Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial TxAfterHeight Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial Event Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial XPubBal Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial Unspent Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial Balance Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial BlockTx Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial BlockRef Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [TxHash] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Event] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [XPubUnspent] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [XPubBal] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [PeerInformation] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Transaction] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [BlockData] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Unspent] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [Balance] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

ProtoSerial [BlockTx] Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

newtype TxId Source #

Constructors

TxId TxHash 
Instances
Eq TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Show TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

showsPrec :: Int -> TxId -> ShowS #

show :: TxId -> String #

showList :: [TxId] -> ShowS #

Generic TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep TxId :: Type -> Type #

Methods

from :: TxId -> Rep TxId x #

to :: Rep TxId x -> TxId #

ToJSON TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

JsonSerial TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

ProtoSerial TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Proto

type Rep TxId Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep TxId = D1 (MetaData "TxId" "Network.Haskoin.Store.Data" "haskoin-store-0.13.0-8yt4n3DSnW9C8olAPqhaUt" True) (C1 (MetaCons "TxId" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TxHash)))

store :: (MonadLoggerIO m, MonadUnliftIO m) => StoreConfig -> Inbox ManagerMessage -> Inbox ChainMessage -> Inbox BlockMessage -> m () Source #

Run a Haskoin Store instance. It will launch a network node and a BlockStore, connect to the network and start synchronizing blocks and transactions.

getBestBlock :: StoreRead r m => r -> m (Maybe BlockHash) Source #

getBlocksAtHeight :: StoreRead r m => r -> BlockHeight -> m [BlockHash] Source #

getBlock :: StoreRead r m => r -> BlockHash -> m (Maybe BlockData) Source #

getTransaction :: (Monad m, StoreRead r m) => r -> TxHash -> m (Maybe Transaction) Source #

getTxData :: StoreRead r m => r -> TxHash -> m (Maybe TxData) Source #

getSpenders :: StoreRead r m => r -> TxHash -> m (IntMap Spender) Source #

getSpender :: StoreRead r m => r -> OutPoint -> m (Maybe Spender) Source #

getBalance :: BalanceRead b m => b -> Address -> m (Maybe Balance) Source #

getMempool :: StoreStream r m => r -> Maybe PreciseUnixTime -> ConduitT () (PreciseUnixTime, TxHash) m () Source #

getAddressUnspents :: StoreStream r m => r -> Address -> Maybe BlockRef -> ConduitT () Unspent m () Source #

getAddressTxs :: StoreStream r m => r -> Address -> Maybe BlockRef -> ConduitT () BlockTx m () Source #

getPeersInformation :: MonadIO m => Manager -> m [PeerInformation] Source #

Obtain information about connected peers from peer manager process.

xpubTxs :: (Monad m, BalanceRead i m, StoreStream i m) => i -> Maybe BlockRef -> XPubKey -> ConduitT () BlockTx m () Source #

xpubBals :: (Monad m, BalanceRead i m) => i -> XPubKey -> m [XPubBal] Source #

xpubUnspent :: (Monad m, StoreStream i m, BalanceRead i m, StoreRead i m) => i -> Maybe BlockRef -> XPubKey -> ConduitT () XPubUnspent m () Source #

publishTx :: (MonadUnliftIO m, MonadLoggerIO m) => Publisher StoreEvent -> Store -> DB -> Tx -> m (Either PubExcept ()) Source #

Publish a new transaction to the network.

isCoinbase :: Input -> Bool Source #

Is Input a Coinbase?

cbAfterHeight Source #

Arguments

:: (Monad m, StoreRead i m) 
=> i 
-> Int

how many ancestors to test before giving up

-> BlockHeight 
-> TxHash 
-> m TxAfterHeight 

Check if any of the ancestors of this transaction is a coinbase after the specified height. Returns Nothing if answer cannot be computed before hitting limits.

healthCheck :: (MonadUnliftIO m, StoreRead r m) => Network -> r -> Manager -> Chain -> m HealthCheck Source #

mergeSourcesBy :: (Foldable f, Monad m) => (a -> a -> Ordering) -> f (ConduitT () a m ()) -> ConduitT i a m () Source #