* node: Add PeerStackTest, fix bug where we could have the same ip address multiple times in PeerStack
* make implicit Ordering private in PeerStack
* Rename PeerOrdering.peer -> PeerOrdering.peerData
* Add NodeState.NoPeers, cache network messages that need to be sent when we establish a connection with a peer
* Cleanup
* Bump maxTries to avoid spurious timeout
* Empty commit to re-run CI
* Add payload to query timeout log
* scalafmt
* Add first header we are requesting to invalid headers query log
* Remove noisy max headers received log
* Remove noisy max filter headers / filters received log
* Make WebsocketTests rescan test more robust
* Bump timeout on WebsocketTests address generated unit test
* Rework importseed endpoint to return a bool indicating if the import was successful
* Reduce Server.httpBadRequest() log level from ERROR -> INFO
* Remove adhoc json for walletinfo
* Add NodeApiCallbacks
* Add BitcoindCallbacks
* Add BitcoindRpcAppConfig
* fix docs
* Add helper method for construction
* Add helper constructor method to avoid explicitly passing BitcoindRpcAppConfig parameter to BitcoindRpcClient when we have a BitcoindInstanceLocal
* Fix docs
* Update scalafmt-core to 3.8.1
* Update .scalafmt.conf settings to be factory default settings
* Fix typo
* scalafmt
* Empty commit to re-run CI
* Revert some scalafmt back to original scalafmt.conf
---------
Co-authored-by: Chris Stewart <stewart.chris1234@gmail.com>
* Rework DataMessageHandler to consider syncing filterheaders if we receive a headers message with 0 block headers
* scalafmt
* Remove syncfilter job
* Cleanup
* Reduce received headers log to DEBUG
* Rework SyncNodeState.toString()
* Call PeerManager.startFilterSync() in DataMessageHandler
* Don't test MTP in unrelated test
* Add sentQuery Instant to SyncNodeState subclasses, add logic in DataMessageHandler.handlePayload() to detect if a query has timed out
* Refactor to use NodeTestUtil.disconnectNode()
* Cleanup comments
* Refactor syncHelper() to return SyncNodeState rather than Unit
* Add FilterOrFilterHeaderSync, rework various methods in PeerManager to return Option[FilterOrFilterHeaderSyncState] to indicate if we are syncing rather than Future[Unit]
* Don't use getPeerMessageSender() if we can use syncPeerMessageSender()
* Fix case where syncpeer and new peer are different when creating a filter sync job
* Adjust createFilterSyncJob() return type, throw exception when we try to sync but PeerManager is not started
* Refactor to use SyncNodeState.{toFilterHeaderSync,toFilterSync}
* Cleanup comments
* Reduce reliance of PeerManager._peerDataMap in favor of NodeState.peerDataMap
* Fix bug where we weren't removing peers from NodeState
* Remove invariants
* Empty commit to run CI
* Empty commit to re-run CI
* Add NodeRunningState.removePeer(), add helper method onDisconnectNodeStateUpdate() to consolidate disconnect logic
* Remove duplicate logic
* Add bitcoin-s.node.maxConnectedPeers test
* Clean up resources in test case
* Remove unecessary replacePeers()
* Add NodeState.addPeer()
* Add NodeRunningState.connectedPeerCount, separate handling of connection slots and filter slots
* Use NodeCallbackStreamManager when calling NodeCallbacks constructors to avoid dropping messages
* Fix handling of CallBackHandler.empty and names
* Empty commit to re-run CI
* Empty commit to re-run CI