* Split wallet functionality into multiple traits
In this commit we refactor LockedWallet into multiple traits
that provide functionality related to a subset of total wallet
functionality. This has the benefit of making it clear which
methods are helper methods that are only intended to be used
in a very specific setting, and which methods are part of the
internal wallet API that other parts of the wallet can use.
* Rework TransactionOutput and TransactionOutPoint to case classes
* Add extension methods for flattening lists of assertions
* Segregate confirmed and unconfirmed balance methods
* Add test for FutureUtil.sequentially
* Add trace logging of balance fetching
* Process outgoing TXOs
Move TX processing into separate trait, add internal API method
Unify DB representation of TXOs
Prior to this commit we stored TXO information
across diferent tables, with joins and tuples
needed a bunch of places to keep track of
everything we needed. In this commit we unify
the tables, leaving us with only one table for
TXOs.
* new doc for windows Users
* Update docs/windows-users.md
Co-Authored-By: Torkel Rogstad <torkel@rogstad.io>
* Update docs/windows-users.md
Co-Authored-By: Torkel Rogstad <torkel@rogstad.io>
* additional changes to Windows guide. Need to figure out how to structure if I want to add to contributing instead
* Update windows-users.md
* Implement 'IndexedSeqLike' on Blockchain data structure to give us access to the scala collection methods we know and love
* Implement ability to handle reorgs in Blockchain.connectTip()
* Add another test case for where block B and C are at the same height as each other, with B being the best block hash. When block D comes in, it is built on top of block C so that means our best block hash should switch to C and then to D after D is connected
* Add more unit tests to Blockchain reorg handling
* Address torkel's code review
This allows working on the website without
opening sbt at all. bloop run docs -- --watch
compiles all Mdoc sources and outputs it into
the correct directory.
For the last few builds publishing snapshots has failed.
This is because Scaladocs haven't been compiling with
the Xsource flag, which we need for 2.11/2.12 compat
reasons.
* Add windows 64 bit binary
* Add more instructions to README about building windows binary
* a windows CI environment
* Add logic to detect windows os, windows binary has a different file name
* Add a signature for the windows 64 bit binary
* implement Ordered[T] instead of creating new methods for that
* remove new line
* implement Ordered in LnCurrencyUnit
* implement Ordered in MilliSatoshis
* implement Ordered in ScriptNumber
In this commit we replace addUtxo with
processTransaction in the wallet API. addUtxo
is kept around, but only as an internal
implementation detail.
The new flow looks like this:
1) The wallet gets notified about a new TX
through a processTransaction call
2) It then searches through our already
processed incoming TXs:
if found, updates the confirmation
status
else, inserts it into the DB
3) We then call addUtxo, if the previous
step resulted in a new TX in our
DB