Current section

Files

Jump to
bitcoin_accounting lib bitcoin_accounting.ex
Raw

lib/bitcoin_accounting.ex

defmodule BitcoinAccounting do
alias BitcoinAccounting.{AddressManager, XpubManager}
alias BitcoinAccounting.AddressManager.JournalEntries
@get_book_entries_defaults %{gap_limit_stop: 20}
@spec get_book_entries(binary(), list()) :: %{receive: list(), change: list()}
def get_book_entries(xpub, opts \\ []) do
%{gap_limit_stop: gap_limit_stop} = Enum.into(opts, @get_book_entries_defaults)
xpub
|> XpubManager.entries_for(gap_limit_stop)
|> JournalEntries.for_xpub()
end
def get_address_history(address) do
address
|> AddressManager.history_for()
|> Map.get(:history)
|> Enum.map(fn history_item ->
JournalEntries.from_transaction_request(history_item, address)
end)
end
end