* Add wallet rescan tests * Create FilterSync, which gives us an API inside of the chain project to sync filters with Add another unit test to filter sync Add more unit tests for ChainSync and FilterSync Clean up some docs, remove some extra lines of code Run scalafmt Add filter-sync.md Cleanup some nits Add more information of how FilterSync.syncFilters() works Add 'FilterWithHeaderHash' type so that we can actually validate/verify block headers that are being fed into the chain project Run scalafmt, hide imports in filter-sync.md so code appears cleaner Move implicits out of invisible block as it seems to cause errors Make it so FilterSync processes filters in batches rather than fetching them all at once Fix compile error * WIP bitcoind implement ChainQueryApi * rework fixtures to be able to support injecting ChainQueryApi implemented by bitcoind into our fixture infrastructure for creating wallets * Fix rebase problem * Implement getFiltersBetweenHeight() with ben's solution * WIP Start implementing NodeApi against bitcoind * Actually inject the bitcoind backed nodeApi into our fixture * Get first rescan test working for rescanning the entire blockchain * Implement test case for rescanning from a specific height * Fix NeutrinoNodeWalletTest test case that uses a experimental version of bitcoind, for now i believe our experimental binary is on v18 * Add wallet-rescan.md, add helper method to WalletApi that allows you to clear out the wallet's utxos/addresses * Add another log to try to debug CI * Address code review * Fix wrong ordering of deletion of tables in clearUtxosAndAddresses() * reset logging level |
||
---|---|---|
.. | ||
src | ||
README.md |
Philosphy of testkit
The high level of of the bitcoin-s testkit is to mimic provide functionality to test 3rd party applications.
There are other examples of these in the Scala ecosystem like the akka-testkit
and slick-testkit
.
We use this testkit to test bitcoin-s it self. For instance, our BitcoindRpcClient is tested with the functionality provided in the testkit. A quick example of a useful utility method is BitcoindRpcTestUtil.startedBitcoindRpcClient(). This spins up a bitcoind regtest instance on machine and generates 101 blocks on that node. This gives you the abililty to start spending money immediately with that bitcoind node.
We have similar utility methods for eclair.
Property based testing
There is also a robust set of generators available in the org.bitcoins.testkit.gen package. This allows you to integrate property based testing into your library and feel confident about implementing your application specific logic correctly.
You can see examples of us using these generators inside of testkit in our Private Key test cases