* Refactor to not use filterThenSum() when calculating balances
* Add await for balance as blocks are processed async
* Add more assertions, fix bad assertions I introduced
* Move pollBitcoind out of startBitcoindBlockPolling
* Rework startBitcoindBlockPolling to not return Future[Cancellable]
* Stop NodeCallbacksStreamManager inside of NodeAppConfig.stop()
* Make BitcoindSyncState which encapsulates syncing with bitcoind and polling of mempool
* Fix bug where processingBitcoindBlocks cannot be top level val as that method may be used by different parts of the codebase
* Rename isPolling -> processingBitcoindBlocks
* Cleanup more resources in appServerTest/test
* Complete polling stream regardless if we synced blocks are not to complete the Future returned by pollBitcoind
* Empty commit to run CI
* Move MockChainQueryApi/NodeApi out of BaseWalletTest
* refactor BitcoinSServerMain.start() to return WalletHolder
* Add walletConfig to WalletWithBitcoind
* Move findOutputsBeingSpent into WalletApi
* Add WalletApi.clearAllAddresses(), HDWalletApi.{findAccount, getnewaddress(account)}
* Add HDWalletApi.fundRawTransaction() with an account as parameter
* Add WalletApi.findByScriptPubKey()
* Fix lots of tests in WalletIntegrationTest
* Create WalletApi.processOurTransaction()
* Get things compiling
* Fix tag integration test
* Refactor AnyDLCHDWalletApi -> DLCNeutrinoHDWalletApi
* Fix docs
* Get postgres tests passing locally
* Move initBalance map before calling callback in CallBackUtilTest
* Get compile working, rename to destroyOnlyWalletWithBitcoindCached
* Fix docs
* Fix missing destroyWalletAppConfig
* Fix scalafmt
* Fix bug in dlcWalletTest where wallet db thread pools weren't being shutdown after unit test completes
* Empty commit
* bitcoind rpc client v22
* addresses and reqSigs deprecation
* getNodeAddresses rpc now returns a network field
* fixed so that support for V23
* debuggging changed extends BitcoindRpcClient to extends BitcoindV21RpcClient
* added network input to getnodeaddresses which makes it so only outputs addresses with that specified network
* getnodeaddresses accepts a network input and outputs addresses with that network. Test did not run on previous commit now it passes.
* added (listdescriptors rpc testing in progress), added descriptors flag to getwallet info rpc (testing in progress), added include unsafe option for fundrawtransaction and walletcreatefundedpsbt rpcs (testing in progrss), adding test for createwallet with descriptors enabled (not complete)
* fix so that getwalletinfo works with descriptors flag, fix so now can create descriptor wallet, test for create descriptor wallet now runs and passes
* added tests, bug in listdescriptors implmentation
* listDescriptors rpc is implmented and passes all tests
* listDescriptors test was previously causing (be able to decode a redeem script) test in the suite to fail becasue of createwallet, the bug is now resolved
* bug fix in V17AssortedRpc
* bug fixes
* fixed listdescriptors test, create descriptor wallet test, wallet with priv keys enabled test, decode redeem script test, so that no longer use await return and await result
* fix for tests failing
* listDescriptors Rpc implmented and passes tests
* cleanup
* scala formating changes
* generate block to address test uncommented V22 changed to PostV22 in some of the names of the case classes
Co-authored-by: shruthii625 <shruthii1410@gmail.com>
* Create a helper case class called FundRawTxHelper to encapsulate the values returned by fundRawTransactionInternal
* Return FundRawTxHelper[ShufflingNonInteractiveFinalizer]
* make FundRawTxHelper.signedTx be a lazy val
* Move MockChainQueryApi/NodeApi out of BaseWalletTest
* fix docs
* Move wallet configurations out of BaseWalletTest
* Move helper methods out of BitcoinSFixture trait into companion object to simplify the hierarchy
* Refactor usage of WalletWithBitcoind to allow parameterization of the BitcoindRpcClient type
* Implement rescan with akka streams
Get basic stream working with rescan
Fix bug where we weren't using rescan specific threadpool
Implement killswitch for rescan
* WIP: Expose promise to allow external completion of rescan stream
* Rework RescanStarted.RescanStarted to contain a promise to complete the stream early, and a future that represents the completed streams materialized value
* Comment cleanup
* Fix compile errors, remove killswitch
* Fix 2.12.x compile
* Introduce ActorSystem into wallet, refactor rescans to use that ActorSystem
* Fix import
* Fix bug where we were prepending instead appending to batched Vector
* Propogate RescanState upwards into WalletRoutes
* Refactor fetching of filters to be a Flow
* Add `sync` JSON field to the `getinfo` endpoint output
* improve test coverage
* update docs
* rename sync flag
* WebSocket notifications
* fix unit tests
* fix unit tests
* increase test timout
* WIP
Try and debug
WIP
Fix bug for incomingAmount
Clean up logs
more cleanups on logs
Remove another uncessary log
Don't process tx if we don't have a relevant received output for that specific tx
* Group hashes in batches of 1,000 before querying the db
* Contact list
* fix unit tests
* Add contact rpc tests
* Add documentation
* Refactor ConsoleCli into app-commons
* Add commands to bitcoin-s-cli
* Fix timeout for rescan
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Refactor WalletAppConfig test fixture destructions to stop the config when tearing down
* Fix test fixture where walletappconfig might not be started
* Rename existing getaddresslabels -> getaddresslabel
* Fix missing rename of GetAddressLabel
* Modify pk constraint on wallet_address_tags to be tag_name rather than tag_type
* Add dropaddresslabel for a specific address
* Fix migrations
* Add unit tests and fix existing tests
* Add docs
* Refactor receive flow to use the same utxo state transitions as the rest of the wallet
Get tests passing again with refactored utxos
Remove unecessary wallet methods
Fix test cases
* Remove fixture on UTXOHandlingTest
* Fix bug where funding happens in parallel in fixture and can lead to blockchain reorgs
* Fix bug where we prune unused addreses on rescan. This doesn't let us discover funds for addresses sent that were not paid to until after the rescan was completed
* Add test case
* Fix neutrino node test case
* Some cleanup
* Fix UTXOHandlingTest cases
* Reduce log level
* Add comments, fix bugs so that we can transition from TxoState.ConfirmedReceived -> TxoState.PendingConfirmationsReceived
* Fix BroadcastSpent/BroadcastReceive bugs
* Add scaladoc to updateUtxoStates()
* Break receive and spent tests into two test cases
* Remove unneeded database write
* Fix rebase
* Support for big SPKs
* Support for big SPKs
* Bump number of migrations
* Fix other test case
* cleanup
* cleanup
* fix psql migrations
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Fix bug where we didn't set spendingTxId when transitioning from Reserved -> PendingConfirmationsSpent
* Try to add unit test
* WIP
* WIP2
* Get reserved state working
* Fix assertion, cleanup logs
* Cleanup test case
* Remove download binary scripts from CI, try to make binary downloads contingent on tests being run in a project
* Cleanup docs to remove unecessary downloadBitcoind
* WIP
* Get appServerTest passing with chain notifications
* Reorder where SourceQueue gets initialized so that we can use it to construct the wallet's callbacks
* DRY
* Fix missing callback for neutrino chaincallbacks
* Bump timeout
* Bump timeout
* When wallet is empty call doSync() with the last blockheader bitcoind has seen
* Revert skipping compact filters on IBD for bitcoind
* Revert logging
* WIP
* Fix sql queries, fix up unit tests that were implicitly using wallet.processOurTransaction()
* Remove default parameter markAsReserved=false on FundTransactionHandling.fundRawTransactionInternal()
* Fix submodule
* Add test to make sure if we fail to reserve utxos, we roll the database transaction back
* Add some clarifying comments
* address ben's code review for failures in finishSend()
* Scalafmt