Skip to content

Commit bbe1f79

Browse files
committed
refactor: move peer connect logic to WalletViewModel.kt
1 parent de5ae97 commit bbe1f79

File tree

4 files changed

+15
-21
lines changed

4 files changed

+15
-21
lines changed

app/src/main/java/to/bitkit/repositories/LightningRepo.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ import to.bitkit.di.BgDispatcher
5151
import to.bitkit.env.Env
5252
import to.bitkit.ext.getSatsPerVByteFor
5353
import to.bitkit.ext.nowTimestamp
54-
import to.bitkit.ext.of
5554
import to.bitkit.ext.toPeerDetailsList
5655
import to.bitkit.models.CoinSelectionPreference
5756
import to.bitkit.models.NodeLifecycleState
@@ -65,7 +64,6 @@ import to.bitkit.services.LnurlChannelResponse
6564
import to.bitkit.services.LnurlService
6665
import to.bitkit.services.LnurlWithdrawResponse
6766
import to.bitkit.services.LspNotificationsService
68-
import to.bitkit.services.MigrationService
6967
import to.bitkit.services.NodeEventHandler
7068
import to.bitkit.utils.AppError
7169
import to.bitkit.utils.Logger
@@ -75,7 +73,6 @@ import java.util.concurrent.ConcurrentHashMap
7573
import java.util.concurrent.atomic.AtomicBoolean
7674
import java.util.concurrent.atomic.AtomicReference
7775
import javax.inject.Inject
78-
import javax.inject.Provider
7976
import javax.inject.Singleton
8077
import kotlin.coroutines.cancellation.CancellationException
8178
import kotlin.time.Duration
@@ -97,7 +94,6 @@ class LightningRepo @Inject constructor(
9794
private val preActivityMetadataRepo: PreActivityMetadataRepo,
9895
private val connectivityRepo: ConnectivityRepo,
9996
private val vssBackupClientLdk: VssBackupClientLdk,
100-
private val migrationServiceProvider: Provider<MigrationService>,
10197
) {
10298
private val _lightningState = MutableStateFlow(LightningState())
10399
val lightningState = _lightningState.asStateFlow()
@@ -352,7 +348,6 @@ class LightningRepo @Inject constructor(
352348
connectToTrustedPeers().onFailure {
353349
Logger.error("Failed to connect to trusted peers", it, context = TAG)
354350
}
355-
connectMigrationPeers()
356351

357352
sync().onFailure { e ->
358353
Logger.warn("Initial sync failed, event-driven sync will retry", e, context = TAG)
@@ -671,18 +666,6 @@ class LightningRepo @Inject constructor(
671666
runCatching { lightningService.connectToTrustedPeers() }
672667
}
673668

674-
private suspend fun connectMigrationPeers() {
675-
val peerUris = migrationServiceProvider.get().tryFetchMigrationPeersFromBackup()
676-
for (uri in peerUris) {
677-
runCatching {
678-
val peer = PeerDetails.of(uri)
679-
lightningService.connectPeer(peer)
680-
}.onFailure {
681-
Logger.error("Failed to connect migration peer: $uri", it, context = TAG)
682-
}
683-
}
684-
}
685-
686669
suspend fun connectPeer(peer: PeerDetails): Result<Unit> = executeWhenNodeRunning("connectPeer") {
687670
lightningService.connectPeer(peer).map {
688671
syncState()

app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.lightningdevkit.ldknode.PeerDetails
2626
import to.bitkit.R
2727
import to.bitkit.data.SettingsStore
2828
import to.bitkit.di.BgDispatcher
29+
import to.bitkit.ext.of
2930
import to.bitkit.models.Toast
3031
import to.bitkit.repositories.BackupRepo
3132
import to.bitkit.repositories.BlocktankRepo
@@ -291,6 +292,7 @@ class WalletViewModel @Inject constructor(
291292
migrationService.consumePendingChannelMigration()
292293
}
293294
walletRepo.setWalletExistsState()
295+
connectMigrationPeers()
294296
walletRepo.syncBalances()
295297
if (_restoreState.value.isIdle()) {
296298
walletRepo.refreshBip21()
@@ -304,6 +306,18 @@ class WalletViewModel @Inject constructor(
304306
}
305307
}
306308

309+
private suspend fun connectMigrationPeers() {
310+
val peerUris = migrationService.tryFetchMigrationPeersFromBackup()
311+
for (uri in peerUris) {
312+
runCatching {
313+
val peer = PeerDetails.of(uri)
314+
lightningRepo.connectPeer(peer)
315+
}.onFailure {
316+
Logger.error("Failed to connect migration peer: $uri", it, context = TAG)
317+
}
318+
}
319+
}
320+
307321
fun stop() {
308322
if (!walletExists) return
309323

app/src/test/java/to/bitkit/repositories/LightningRepoTest.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import to.bitkit.services.CoreService
4646
import to.bitkit.services.LightningService
4747
import to.bitkit.services.LnurlService
4848
import to.bitkit.services.LspNotificationsService
49-
import to.bitkit.services.MigrationService
5049
import to.bitkit.test.BaseUnitTest
5150
import kotlin.test.assertEquals
5251
import kotlin.test.assertFalse
@@ -68,7 +67,6 @@ class LightningRepoTest : BaseUnitTest() {
6867
private val lnurlService = mock<LnurlService>()
6968
private val connectivityRepo = mock<ConnectivityRepo>()
7069
private val vssBackupClientLdk = mock<VssBackupClientLdk>()
71-
private val migrationService = mock<MigrationService>()
7270

7371
@Before
7472
fun setUp() = runBlocking {
@@ -78,7 +76,6 @@ class LightningRepoTest : BaseUnitTest() {
7876
whenever(connectivityRepo.isOnline).thenReturn(MutableStateFlow(ConnectivityState.CONNECTED))
7977
whenever(settingsStore.data).thenReturn(flowOf(SettingsData()))
8078
whenever(lightningService.aresRequiredPeersInNetworkGraph()).thenReturn(true)
81-
whenever(migrationService.tryFetchMigrationPeersFromBackup()).thenReturn(emptyList())
8279
sut = LightningRepo(
8380
bgDispatcher = testDispatcher,
8481
lightningService = lightningService,
@@ -92,7 +89,6 @@ class LightningRepoTest : BaseUnitTest() {
9289
preActivityMetadataRepo = preActivityMetadataRepo,
9390
connectivityRepo = connectivityRepo,
9491
vssBackupClientLdk = vssBackupClientLdk,
95-
migrationServiceProvider = { migrationService },
9692
)
9793
}
9894

app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class WalletViewModelTest : BaseUnitTest() {
5757
whenever(walletRepo.walletState).thenReturn(walletState)
5858
whenever(lightningRepo.lightningState).thenReturn(lightningState)
5959
whenever(migrationService.isMigrationChecked()).thenReturn(true)
60+
whenever(migrationService.tryFetchMigrationPeersFromBackup()).thenReturn(emptyList())
6061
whenever(connectivityRepo.isOnline).thenReturn(isOnline)
6162

6263
sut = WalletViewModel(

0 commit comments

Comments
 (0)