@@ -3,14 +3,17 @@ package to.bitkit.data.backup
33import com.synonym.vssclient.VssItem
44import com.synonym.vssclient.vssGet
55import com.synonym.vssclient.vssNewClient
6+ import com.synonym.vssclient.vssNewClientWithLnurlAuth
67import com.synonym.vssclient.vssStore
78import kotlinx.coroutines.CompletableDeferred
89import kotlinx.coroutines.CoroutineDispatcher
910import kotlinx.coroutines.withContext
1011import kotlinx.coroutines.withTimeout
12+ import to.bitkit.data.keychain.Keychain
1113import to.bitkit.di.BgDispatcher
1214import to.bitkit.env.Env
1315import to.bitkit.utils.Logger
16+ import to.bitkit.utils.ServiceError
1417import javax.inject.Inject
1518import javax.inject.Singleton
1619import kotlin.time.Duration.Companion.seconds
@@ -19,17 +22,32 @@ import kotlin.time.Duration.Companion.seconds
1922class VssBackupClient @Inject constructor(
2023 @BgDispatcher private val bgDispatcher : CoroutineDispatcher ,
2124 private val vssStoreIdProvider : VssStoreIdProvider ,
25+ private val keychain : Keychain ,
2226) {
2327 private val isSetup = CompletableDeferred <Unit >()
2428
2529 suspend fun setup () = withContext(bgDispatcher) {
2630 try {
2731 withTimeout(30 .seconds) {
2832 Logger .verbose(" VSS client setting up…" , context = TAG )
29- vssNewClient(
30- baseUrl = Env .vssServerUrl,
31- storeId = vssStoreIdProvider.getVssStoreId(),
32- )
33+ if (Env .lnurlAuthSeverUrl.isNotEmpty()) {
34+ val mnemonic = keychain.loadString(Keychain .Key .BIP39_MNEMONIC .name)
35+ ? : throw ServiceError .MnemonicNotFound
36+ val passphrase = keychain.loadString(Keychain .Key .BIP39_PASSPHRASE .name)
37+
38+ vssNewClientWithLnurlAuth(
39+ baseUrl = Env .vssServerUrl,
40+ storeId = vssStoreIdProvider.getVssStoreId(),
41+ mnemonic = mnemonic,
42+ passphrase = passphrase,
43+ lnurlAuthServerUrl = Env .lnurlAuthSeverUrl,
44+ )
45+ } else {
46+ vssNewClient(
47+ baseUrl = Env .vssServerUrl,
48+ storeId = vssStoreIdProvider.getVssStoreId(),
49+ )
50+ }
3351 isSetup.complete(Unit )
3452 Logger .info(" VSS client setup ok" , context = TAG )
3553 }
0 commit comments