* Fix bug where we were not generating change addresses during a rescan with a fresh address pool
* Turn logging level down
* Add awaitRescanDone before checking addresses
* Alternate order we clear addresses and utxos
* removed logger parameter from where it's used with callbacks
* removed logger from onTXRecived... and onBlockRecived...
* removed unused imports
* removed logger from walletCallbacks
* Fix rescan batch boundary bug
* Make arguments for rescan required to avoid bugs
* WIP: Debug rescan batches
* Add forceGenerateSpks to fix one bug
* Remove addressCount != 0 check now that we have forceGenerateSpks
* Remove comment
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Implement RescanTerminatedEarly exception to terminate the stream, implement ArgumentSource to understand where arguments passed into bitcoin-s are coming from
* Bump timeout
* Refactor WalletRoutes to take DLCWalletLoaderApi as a parameter, use the walletHolder inside of DLCWalletLoaderApi to fulfill requests
Fix rebase
Reduce parallelism in fetchFiltersFlow to 1 to reduce chance of hitting akka's max open requests
* Try fix loader test by catching RejectedExecutionException
* Add println to see if catching excpetion gets hit
* WIP: Try to fix recursive rescan
* Don't map on recursiveRescan so we don't block on it
* Fix multiple batch unit test so it fails
* Fix compile
* Move generateScriptPubKeys into buildFilterMatchFlow()
* Rename param to filterBatchSize
* Rename to buildRescanFlow
* Remove println
* Cleanup
* 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
* Refactor syncWalletToBitcoind impl to be completely stream based
* Add getParallelism, refactor usages in BitcoindRpcBackendUtil to use it
* Fix compile
* Replace usages of 'WalletApi with NeutrinoWalletApi' with NeutrinoHDWalletApi
* Revert wallet sync height logic
* Refactor to make things cleaner
* 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
* Create a helper case class called FundRawTxHelper to encapsulate the values returned by fundRawTransactionInternal
* Return FundRawTxHelper[ShufflingNonInteractiveFinalizer]
* make FundRawTxHelper.signedTx be a lazy val
* 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
* Fee rate WS notification
* make the test more CI friendly
* fix the default config
* always return errors
* fix build
* scalafmt
* send notifications every time
* Handle duplicate UTXOs
* Add logging
* Add log for exception in handleDuplicateSpendingInfoDb
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* 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