* Add functionality for broadcasting TXs to node In this commit we add functionality and tests for broadcasting a TX from our node. To accomplish this we introduce a table over broadcastable TXs that's added to when the externally facing method broadcastTransaction(tx) withing SpvNode is called. We send out a inv message for the TX we just added, and upon receiving a getdata message we search in the previously mentioned table for entries where the hashes match up. * Broadcast TX from server to SPV node * Perform assertions on the balance of bitcoind after sending a TX * Remove typeclass from broadcast TX * Refactor withFundedWalletAndBitcoind * Match on BitcoindExecption instead of throwable * Clean up broadcast functionality after code review |
||
---|---|---|
.. | ||
src | ||
build.sbt | ||
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