Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LedgerReader ¶
type LedgerReader struct {
// contains filtered or unexported fields
}
LedgerReader listens for and reacts to incoming transactions.
func NewLedgerReader ¶
func NewLedgerReader(dbRepo ReadOnlyTransactionRepository, logger *slog.Logger) *LedgerReader
NewLedgerReader returns a ledger reader over a transaction repository.
func (*LedgerReader) IsAlive ¶
func (reader *LedgerReader) IsAlive() bool
IsAlive returns true if the ledger reader is alive and polling for new transactions.
func (*LedgerReader) StartWithCallback ¶
func (reader *LedgerReader) StartWithCallback(callback LedgerReaderCallback) error
StartWithCallback synchronously loads all existing transactions, and then starts a background thread to listen for future transactions.
type LedgerReaderCallback ¶
type LedgerReaderCallback interface { // ProcessTransaction processes a newly discovered transaction. For example, // an implementation might update it's cache based on the contents of the // new transaction. ProcessTransaction(transaction model.Transaction) }
LedgerReaderCallback provides a callback method invoked by ledger reader on discovering new transactions.
type LedgerReaderTransactionRepository ¶
LedgerReaderTransactionRepository exposes methods used by LedgerReader.
func NewLedgerReaderTransactionRepository ¶
func NewLedgerReaderTransactionRepository(databaseURI string) (*LedgerReaderTransactionRepository, error)
NewLedgerReaderTransactionRepository returns a new repository over a database.
func (*LedgerReaderTransactionRepository) FindLatest ¶
func (r *LedgerReaderTransactionRepository) FindLatest(startID int64) ([]model.TransactionWithID, error)
FindLatest returns all the transaction committed after startID and thus have an id > startID.
func (*LedgerReaderTransactionRepository) LatestTransactionID ¶
func (r *LedgerReaderTransactionRepository) LatestTransactionID() (int64, error)
LatestTransactionID returns the id of the latest transaction, or NULL if none exist.
type ReadOnlyTransactionRepository ¶
type ReadOnlyTransactionRepository interface { // LatestTransactionID returns the latest transaction id from the repository. LatestTransactionID() (int64, error) // FindLatest returns transactions that are more recent than and thus have an // id greater than startTransactionID. FindLatest(startTransactionID int64) ([]model.TransactionWithID, error) }
ReadOnlyTransactionRepository is a read-only interface over transaction repository.