haskoin-store-0.9.3: 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

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 :: * -> * #

Hashable BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize BlockData Source # 
Instance details

Defined in Network.Haskoin.Store.Data

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 :: * -> * #

Hashable Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize Transaction Source # 
Instance details

Defined in Network.Haskoin.Store.Data

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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 :: * -> * #

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 AddressTx Source #

Transaction in relation to an address.

Constructors

AddressTx 

Fields

Instances
Eq AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Ord AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Show AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep AddressTx :: * -> * #

Hashable AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep AddressTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep AddressTx = D1 (MetaData "AddressTx" "Network.Haskoin.Store.Data" "haskoin-store-0.9.3-3tM0mCBRMlq42VwG9y7b0w" False) (C1 (MetaCons "AddressTx" PrefixI True) (S1 (MetaSel (Just "addressTxAddress") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Address) :*: (S1 (MetaSel (Just "addressTxBlock") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BlockRef) :*: S1 (MetaSel (Just "addressTxHash") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 TxHash))))

data XPubTx Source #

Address transaction from an extended public key.

Constructors

XPubTx 

Fields

Instances
Eq XPubTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Methods

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

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

Show XPubTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Generic XPubTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Associated Types

type Rep XPubTx :: * -> * #

Methods

from :: XPubTx -> Rep XPubTx x #

to :: Rep XPubTx x -> XPubTx #

type Rep XPubTx Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep XPubTx = D1 (MetaData "XPubTx" "Network.Haskoin.Store.Data" "haskoin-store-0.9.3-3tM0mCBRMlq42VwG9y7b0w" False) (C1 (MetaCons "XPubTx" PrefixI True) (S1 (MetaSel (Just "xPubTxPath") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [KeyIndex]) :*: S1 (MetaSel (Just "xPubTx") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 AddressTx)))

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 :: * -> * #

Methods

from :: XPubBal -> Rep XPubBal x #

to :: Rep XPubBal x -> XPubBal #

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 Rep XPubUnspent Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep XPubUnspent = D1 (MetaData "XPubUnspent" "Network.Haskoin.Store.Data" "haskoin-store-0.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

ToJSON PeerInformation Source # 
Instance details

Defined in Network.Haskoin.Store.Data

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

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.9.3-3tM0mCBRMlq42VwG9y7b0w" 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 :: * -> * #

ToJSON HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

Serialize HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

type Rep HealthCheck Source # 
Instance details

Defined in Network.Haskoin.Store.Data

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 () AddressTx 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 () XPubTx 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) => Manager -> Tx -> m Bool 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 (Maybe Bool) 

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 #