From 6c2609254db6361aa7d69c68a72f72d46625d546 Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sat, 20 Jun 2026 14:31:44 +0200 Subject: [PATCH] Optimize imports --- .../kotlin/at/torch/android/MainActivity.kt | 4 +- .../PlatformDatabaseBuilder.android.kt | 4 +- .../ui/composable/widgets/nfc/HceMonitor.kt | 5 --- .../widgets/nfc/NfcReaderMonitor.kt | 5 --- .../acinq/phoenix/android/BusinessManager.kt | 4 +- .../android/services/ChannelsWatcher.kt | 2 +- .../android/services/ContactsPhotoCleaner.kt | 2 +- .../phoenix/android/services/DailyConnect.kt | 2 +- .../services/InflightPaymentsWatcher.kt | 8 ++-- .../services/PaymentsForegroundService.kt | 8 ++-- .../phoenix/utils/ContactsPhotoHelper.kt | 2 +- .../phoenix/utils/SystemNotificationHelper.kt | 6 +-- .../phoenix/utils/converters/DateFormatter.kt | 1 - .../extensions/AndroidContextExtensions.kt | 2 +- .../phoenix/utils/nfc/NfcReaderCallback.kt | 2 +- .../kotlin/at/torch/compose/TorchApp.kt | 6 +-- .../torch/compose/database/TorchDatabase.kt | 1 - .../database/dao/MarmotKeyPackageBundleDao.kt | 4 -- .../database/dao/MarmotKeyPackageDao.kt | 3 -- .../at/torch/compose/database/dao/NostrDao.kt | 4 +- .../compose/database/dao/NostrNip17Dao.kt | 4 +- .../torch/compose/database/dao/ProfileDao.kt | 1 - .../at/torch/compose/database/dao/ZapDao.kt | 2 +- .../model/BroadcastNostrEventRequest.kt | 6 +-- .../compose/database/model/ChatMessage.kt | 6 +-- .../model/NegentropySynchronizeRequest.kt | 2 +- .../compose/database/model/NostrEvent.kt | 1 - .../compose/database/model/NostrEventRelay.kt | 4 +- .../at/torch/compose/database/model/Post.kt | 8 ++-- .../torch/compose/database/model/Profile.kt | 2 - .../model/SynchronizeNostrEventResult.kt | 4 +- .../database/model/UnsignedNostrEvent.kt | 1 - .../intermdiate/LocalInReplyToNostrEvent.kt | 3 +- .../model/intermdiate/LocalNostrEvent.kt | 4 +- .../database/model/intermdiate/LocalPost.kt | 4 +- .../intermdiate/LocalQuotedNostrEvent.kt | 7 +--- .../intermdiate/LocalRepostedNostrEvent.kt | 3 +- .../repository/DatabaseChatRepository.kt | 4 -- .../repository/DatabaseNostrRepository.kt | 4 -- .../torch/compose/extensions/Credentials.kt | 1 - .../compose/managers/AuxDatabaseManager.kt | 2 - .../torch/compose/network/relays/RelayPool.kt | 28 +++++++------ .../network/relays/RelaysSocketManager.kt | 18 ++++----- .../network/sockets/NostrIncomingMessage.kt | 3 -- .../sockets/NostrIncomingMessageParser.kt | 1 - .../network/sockets/NostrSocketClient.kt | 2 +- .../network/sockets/NostrSocketClientImpl.kt | 7 ++-- .../repository/NostrNotaryRepository.kt | 3 -- .../repository/NostrPublisherRepository.kt | 1 - .../ui/composable/ChatRoomCreationScreen.kt | 3 -- .../ui/composable/CreateProfileScreen.kt | 5 +-- .../compose/ui/composable/LoadingScreen.kt | 1 - .../ui/composable/NostrEventDetailScreen.kt | 6 --- .../ui/composable/SearchResultScreen.kt | 3 +- .../compose/ui/composable/SearchScreen.kt | 3 -- .../SovereignWalletStartupScreen.kt | 3 -- .../ui/composable/UnannouncedProfileScreen.kt | 1 - .../ui/composable/UnindexedProfileScreen.kt | 1 - .../ui/composable/UnqueuedProfileScreen.kt | 1 - .../UnqueuedProfileSynchronizationScreen.kt | 1 - .../ui/composable/UnsignedProfileScreen.kt | 1 - .../ui/composable/UnsyncedProfileScreen.kt | 1 - .../ui/composable/WriteNewNoteScreen.kt | 11 +----- .../ui/composable/navigation/TorchNavHost.kt | 11 +++--- .../composable/widgets/buttons/Clickable.kt | 4 -- .../composable/widgets/content/ArticleCard.kt | 2 - .../widgets/content/LiveStreamCardContent.kt | 1 - .../composable/widgets/content/QuotedNote.kt | 4 -- .../composable/widgets/content/RichContent.kt | 6 --- .../widgets/detail/TextNoteEventDetail.kt | 7 +--- .../composable/widgets/feed/EventListView.kt | 9 +---- .../widgets/feed/TextNoteFeedItem.kt | 12 +----- .../widgets/profile/ProfileAvatar.kt | 2 - .../widgets/wallet/WalletsSelector.kt | 1 - .../kotlin/at/torch/compose/ui/theme/Theme.kt | 2 +- .../kotlin/at/torch/compose/ui/theme/Type.kt | 4 -- .../ChatRoomDetailMessageListViewModel.kt | 4 +- .../ui/view/model/CreateProfileViewModel.kt | 8 ++-- .../ui/view/model/FeedListViewModel.kt | 4 +- .../ui/view/model/FollowersListViewModel.kt | 1 - .../ui/view/model/FollowingListViewModel.kt | 1 - .../compose/ui/view/model/HomeViewModel.kt | 10 ----- .../ui/view/model/InReplyToViewModel.kt | 5 +-- .../model/MetadataEventDetailViewModel.kt | 2 - .../view/model/NostrEventDetailViewModel.kt | 2 - .../compose/ui/view/model/NotaryViewModel.kt | 1 - .../ui/view/model/SearchResultViewModel.kt | 10 ----- .../ui/view/model/SignInToProfileViewModel.kt | 3 +- .../model/SovereignWalletStartupViewModel.kt | 3 -- .../ui/view/model/SovereignWalletViewModel.kt | 2 - .../ui/view/model/SynchronizationViewModel.kt | 7 +--- ...UnqueuedProfileSynchronizationViewModel.kt | 4 +- .../ui/view/model/WriteNewNoteViewModel.kt | 11 +++--- .../commonMain/kotlin/fr/acinq/conf/Lsp.kt | 8 +++- .../kotlin/fr/acinq/phoenix/Ambients.kt | 9 ++++- .../fr/acinq/phoenix/PhoenixBusiness.kt | 30 ++++++++++++-- .../phoenix/controllers/AppController.kt | 5 ++- .../phoenix/controllers/ControllerFactory.kt | 4 +- .../CloseChannelsConfigurationController.kt | 24 ++++++------ .../config/ConfigurationController.kt | 3 +- .../config/ElectrumConfigurationController.kt | 6 +-- .../init/RestoreWalletController.kt | 1 - .../controllers/main/ContentController.kt | 1 - .../phoenix/csv/WalletPaymentCsvWriter.kt | 14 ++++++- .../fr/acinq/phoenix/data/BitcoinAddress.kt | 4 +- .../fr/acinq/phoenix/data/ExchangeRates.kt | 3 -- .../fr/acinq/phoenix/data/LocalChannelInfo.kt | 12 ++++-- .../fr/acinq/phoenix/data/WalletPayment.kt | 8 +++- .../fr/acinq/phoenix/data/lnurl/Lnurl.kt | 24 +++++++++--- .../fr/acinq/phoenix/data/lnurl/LnurlAuth.kt | 11 ++++-- .../fr/acinq/phoenix/data/lnurl/LnurlError.kt | 2 +- .../fr/acinq/phoenix/data/lnurl/LnurlPay.kt | 9 ++++- .../acinq/phoenix/data/lnurl/LnurlWithdraw.kt | 2 +- .../kotlin/fr/acinq/phoenix/db/DbHooks.kt | 1 - .../fr/acinq/phoenix/db/DbInitHelper.kt | 13 ++++++- .../kotlin/fr/acinq/phoenix/db/SqliteAppDb.kt | 1 - .../fr/acinq/phoenix/db/SqliteChannelsDb.kt | 1 - .../fr/acinq/phoenix/db/SqlitePaymentsDb.kt | 26 +++++++++++-- .../fr/acinq/phoenix/db/cloud/CloudHelper.kt | 3 +- .../phoenix/db/cloud/payments/CloudAsset.kt | 6 ++- .../phoenix/db/cloud/payments/CloudData.kt | 1 - .../cloud/payments/LightningOutgoingType.kt | 2 - .../phoenix/db/contacts/ContactQueries.kt | 2 - .../db/migrations/v10/AfterVersion10.kt | 7 +++- .../db/migrations/v10/types/IncomingTypes.kt | 11 +++++- .../db/migrations/v11/AfterVersion11.kt | 1 - .../v11/queries/LightningOutgoingQueries.kt | 5 ++- .../v11/types/OutgoingDetailsType.kt | 1 + .../v11/types/liquidityads/FundingFeeData.kt | 2 +- .../types/liquidityads/PaymentDetailsData.kt | 2 +- .../v11/types/liquidityads/PurchaseData.kt | 6 +-- .../db/notifications/NotificationDataType.kt | 1 - .../db/notifications/NotificationsQueries.kt | 2 +- .../phoenix/db/payments/MetadataTypes.kt | 14 +++++-- .../db/payments/PaymentsMetadataQueries.kt | 7 ++-- .../db/payments/SqliteIncomingPaymentsDb.kt | 2 +- .../db/payments/SqliteOutgoingPaymentsDb.kt | 2 +- .../phoenix/managers/AppConnectionsDaemon.kt | 15 ++++--- .../acinq/phoenix/managers/BalanceManager.kt | 8 ++-- .../phoenix/managers/ConnectionsManager.kt | 11 +++++- .../fr/acinq/phoenix/managers/LnurlManager.kt | 21 ++++++---- .../phoenix/managers/NodeParamsManager.kt | 12 +++--- .../phoenix/managers/NotificationsManager.kt | 2 +- .../acinq/phoenix/managers/PaymentsManager.kt | 6 +-- .../phoenix/managers/PaymentsPageFetcher.kt | 8 +++- .../fr/acinq/phoenix/managers/PeerManager.kt | 28 ++++++++++--- .../fr/acinq/phoenix/managers/SeedManager.kt | 1 + .../fr/acinq/phoenix/managers/SendManager.kt | 3 -- .../acinq/phoenix/managers/WalletManager.kt | 12 +++++- .../managers/global/CurrencyManager.kt | 3 +- .../phoenix/managers/global/NetworkMonitor.kt | 2 +- .../fr/acinq/phoenix/utils/DnsResolvers.kt | 2 - .../kotlin/fr/acinq/phoenix/utils/Parser.kt | 15 +++++-- .../utils/channels/ChannelsImportHelper.kt | 10 ----- .../channels/SpendChannelAddressHelper.kt | 18 --------- .../utils/converters/AmountFormatter.kt | 5 ++- .../utils/extensions/ChannelExtensions.kt | 19 ++++++++- .../extensions/PaymentRequestExtensions.kt | 1 - .../utils/extensions/TechnicalExtensions.kt | 3 -- .../utils/extensions/WalletStateExtensions.kt | 2 - .../utils/migrations/IosMigrationHelper.kt | 18 +++++---- .../phoenix/utils/preferences/GlobalPrefs.kt | 1 - .../phoenix/utils/preferences/UserPrefs.kt | 10 ++++- .../preferences/UserPrefsComposeExtensions.kt | 1 - .../ui/view/model/NavigationViewModel.ios.kt | 1 - .../fr/acinq/phoenix/db/CloudKitContactsDb.kt | 12 ++++-- .../kotlin/fr/acinq/phoenix/db/CloudKitDb.kt | 5 ++- .../fr/acinq/phoenix/db/CloudKitPaymentsDb.kt | 20 +++++++--- .../fr/acinq/phoenix/ios/BusinessManager.kt | 3 -- .../fr/acinq/phoenix/security/CCCipher.kt | 39 +++++++++++++++++-- .../acinq/phoenix/security/KeyChainHelper.kt | 5 --- .../phoenix/security/KeyStoreFunctions.ios.kt | 1 - 172 files changed, 516 insertions(+), 501 deletions(-) diff --git a/composeApp/src/androidMain/kotlin/at/torch/android/MainActivity.kt b/composeApp/src/androidMain/kotlin/at/torch/android/MainActivity.kt index f987c160..11d2be8e 100644 --- a/composeApp/src/androidMain/kotlin/at/torch/android/MainActivity.kt +++ b/composeApp/src/androidMain/kotlin/at/torch/android/MainActivity.kt @@ -1,6 +1,5 @@ package at.torch.android -import at.torch.compose.PlatformContext import android.content.Intent import android.nfc.NfcAdapter import android.os.Bundle @@ -8,10 +7,9 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.navigation.compose.rememberNavController +import at.torch.compose.PlatformContext import at.torch.compose.TorchApp import at.torch.compose.TorchGlobal -import com.machankura.compose.ui.composable.widgets.nfc.NfcState -import com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.android.services.HceService diff --git a/composeApp/src/androidMain/kotlin/at/torch/compose/database/builder/PlatformDatabaseBuilder.android.kt b/composeApp/src/androidMain/kotlin/at/torch/compose/database/builder/PlatformDatabaseBuilder.android.kt index e9b89bff..3ae9a6d3 100644 --- a/composeApp/src/androidMain/kotlin/at/torch/compose/database/builder/PlatformDatabaseBuilder.android.kt +++ b/composeApp/src/androidMain/kotlin/at/torch/compose/database/builder/PlatformDatabaseBuilder.android.kt @@ -1,9 +1,9 @@ package at.torch.compose.database.builder -import at.torch.compose.PlatformContext -import at.torch.compose.database.TorchDatabase import androidx.room3.Room import androidx.room3.RoomDatabase +import at.torch.compose.PlatformContext +import at.torch.compose.database.TorchDatabase actual object PlatformDatabaseBuilder { actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder { diff --git a/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/HceMonitor.kt b/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/HceMonitor.kt index be61ebcb..c7637233 100644 --- a/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/HceMonitor.kt +++ b/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/HceMonitor.kt @@ -16,12 +16,10 @@ package com.machankura.compose.ui.composable.widgets.nfc -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -30,10 +28,7 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.machankura.compose.ui.composable.widgets.dialogs.ModalBottomSheet import fr.acinq.phoenix.utils.extensions.findActivitySafe diff --git a/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/NfcReaderMonitor.kt b/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/NfcReaderMonitor.kt index 266204fa..7a4cecc8 100644 --- a/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/NfcReaderMonitor.kt +++ b/composeApp/src/androidMain/kotlin/at/torch/compose/ui/composable/widgets/nfc/NfcReaderMonitor.kt @@ -16,12 +16,10 @@ package com.machankura.compose.ui.composable.widgets.nfc -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material3.Button import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -30,10 +28,7 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.machankura.compose.ui.composable.widgets.dialogs.ModalBottomSheet import fr.acinq.phoenix.utils.extensions.findActivitySafe diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/BusinessManager.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/BusinessManager.kt index ce4eef43..0f1b9890 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/BusinessManager.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/BusinessManager.kt @@ -16,11 +16,11 @@ package fr.acinq.phoenix.android +import android.content.Context +import android.text.format.DateUtils import at.torch.android.TorchApplication import at.torch.compose.AppVersion import at.torch.compose.ui.composable.widgets.wallet.WalletAvatars -import android.content.Context -import android.text.format.DateUtils import fr.acinq.lightning.LiquidityEvents import fr.acinq.lightning.PaymentEvents import fr.acinq.lightning.utils.Connection diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ChannelsWatcher.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ChannelsWatcher.kt index 70915a34..4cfc3dae 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ChannelsWatcher.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ChannelsWatcher.kt @@ -16,7 +16,6 @@ package fr.acinq.phoenix.android.services -import at.torch.android.BuildConfig import android.content.Context import androidx.work.CoroutineWorker import androidx.work.ExistingPeriodicWorkPolicy @@ -26,6 +25,7 @@ import androidx.work.Operation import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import androidx.work.WorkerParameters +import at.torch.android.BuildConfig import fr.acinq.lightning.channel.states.Closing import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.PhoenixGlobal diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ContactsPhotoCleaner.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ContactsPhotoCleaner.kt index 7bba3f50..4c460027 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ContactsPhotoCleaner.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/ContactsPhotoCleaner.kt @@ -16,7 +16,6 @@ package fr.acinq.phoenix.android.services -import at.torch.android.BuildConfig import android.content.Context import androidx.work.CoroutineWorker import androidx.work.ExistingPeriodicWorkPolicy @@ -25,6 +24,7 @@ import androidx.work.OneTimeWorkRequest import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import androidx.work.WorkerParameters +import at.torch.android.BuildConfig import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.android.BusinessManager import fr.acinq.phoenix.data.StartBusinessResult diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/DailyConnect.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/DailyConnect.kt index 2de4c9c1..145def33 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/DailyConnect.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/DailyConnect.kt @@ -16,7 +16,6 @@ package fr.acinq.phoenix.android.services -import at.torch.android.BuildConfig import android.content.Context import androidx.work.CoroutineWorker import androidx.work.ExistingPeriodicWorkPolicy @@ -26,6 +25,7 @@ import androidx.work.Operation import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import androidx.work.WorkerParameters +import at.torch.android.BuildConfig import fr.acinq.lightning.utils.Connection import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.android.BusinessManager diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/InflightPaymentsWatcher.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/InflightPaymentsWatcher.kt index 61d0e975..11191dd7 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/InflightPaymentsWatcher.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/InflightPaymentsWatcher.kt @@ -16,8 +16,6 @@ package fr.acinq.phoenix.android.services -import at.torch.android.BuildConfig -import at.torch.android.TorchApplication import android.content.Context import android.os.Build import androidx.work.CoroutineWorker @@ -28,17 +26,19 @@ import androidx.work.Operation import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import androidx.work.WorkerParameters +import at.torch.android.BuildConfig +import at.torch.android.TorchApplication import fr.acinq.lightning.channel.states.Syncing import fr.acinq.lightning.utils.Connection import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.android.BusinessManager -import fr.acinq.phoenix.data.StartBusinessResult -import fr.acinq.phoenix.managers.SeedManager import fr.acinq.phoenix.data.LocalChannelInfo +import fr.acinq.phoenix.data.StartBusinessResult import fr.acinq.phoenix.data.WalletId import fr.acinq.phoenix.data.inFlightPaymentsCount import fr.acinq.phoenix.managers.DataStoreManager import fr.acinq.phoenix.managers.NodeParamsManager.Companion.chain +import fr.acinq.phoenix.managers.SeedManager import fr.acinq.phoenix.utils.PlatformContext import fr.acinq.phoenix.utils.SystemNotificationHelper import fr.acinq.phoenix.utils.preferences.UserWalletMetadata diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/PaymentsForegroundService.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/PaymentsForegroundService.kt index 9fe81ed8..3e5abe2e 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/PaymentsForegroundService.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/android/services/PaymentsForegroundService.kt @@ -1,21 +1,21 @@ package fr.acinq.phoenix.android.services -import at.torch.android.BuildConfig -import at.torch.android.TorchApplication import android.app.Service import android.content.Intent import android.os.Handler import android.os.Looper import androidx.core.app.NotificationManagerCompat +import at.torch.android.BuildConfig +import at.torch.android.TorchApplication import fr.acinq.lightning.utils.Connection import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.android.BusinessManager -import fr.acinq.phoenix.data.StartBusinessResult import fr.acinq.phoenix.data.DecryptSeedResult +import fr.acinq.phoenix.data.StartBusinessResult import fr.acinq.phoenix.data.WalletId -import fr.acinq.phoenix.managers.SeedManager import fr.acinq.phoenix.managers.AppConnectionsDaemon +import fr.acinq.phoenix.managers.SeedManager import fr.acinq.phoenix.utils.PlatformContext import fr.acinq.phoenix.utils.SystemNotificationHelper import fr.acinq.phoenix.utils.preferences.getByWalletIdOrDefault diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/ContactsPhotoHelper.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/ContactsPhotoHelper.kt index 751c4881..27842d52 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/ContactsPhotoHelper.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/ContactsPhotoHelper.kt @@ -1,6 +1,5 @@ package fr.acinq.phoenix.utils -import at.torch.android.BuildConfig import android.content.Context import android.graphics.Bitmap import android.graphics.BitmapFactory @@ -10,6 +9,7 @@ import android.net.Uri import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.graphics.asImageBitmap import androidx.core.content.FileProvider +import at.torch.android.BuildConfig import fr.acinq.lightning.utils.currentTimestampMillis import org.slf4j.LoggerFactory import java.io.File diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/SystemNotificationHelper.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/SystemNotificationHelper.kt index 14313825..c70641b5 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/SystemNotificationHelper.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/SystemNotificationHelper.kt @@ -16,9 +16,6 @@ package fr.acinq.phoenix.utils -import at.torch.android.BuildConfig -import at.torch.android.MainActivity -import at.torch.android.R import android.Manifest import android.app.Notification import android.app.NotificationManager @@ -33,6 +30,9 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.app.TaskStackBuilder import androidx.core.net.toUri +import at.torch.android.BuildConfig +import at.torch.android.MainActivity +import at.torch.android.R import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.LiquidityEvents import fr.acinq.lightning.MilliSatoshi diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/converters/DateFormatter.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/converters/DateFormatter.kt index b3f1650c..c6218f07 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/converters/DateFormatter.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/converters/DateFormatter.kt @@ -19,7 +19,6 @@ package fr.acinq.phoenix.utils.converters import android.annotation.SuppressLint import android.text.format.DateUtils import androidx.compose.runtime.Composable -import androidx.compose.ui.res.stringResource import java.text.DateFormat import java.text.SimpleDateFormat import java.util.Date diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/extensions/AndroidContextExtensions.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/extensions/AndroidContextExtensions.kt index 056657f5..a85e76a9 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/extensions/AndroidContextExtensions.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/extensions/AndroidContextExtensions.kt @@ -16,9 +16,9 @@ package fr.acinq.phoenix.utils.extensions -import at.torch.android.MainActivity import android.content.Context import android.content.ContextWrapper +import at.torch.android.MainActivity fun Context.findActivitySafe(): MainActivity? { var context = this diff --git a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/nfc/NfcReaderCallback.kt b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/nfc/NfcReaderCallback.kt index 2707b6b7..e72e587a 100644 --- a/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/nfc/NfcReaderCallback.kt +++ b/composeApp/src/androidMain/kotlin/fr/acinq/phoenix/utils/nfc/NfcReaderCallback.kt @@ -20,9 +20,9 @@ import android.nfc.NdefMessage import android.nfc.NfcAdapter import android.nfc.Tag import android.nfc.tech.IsoDep -import fr.acinq.lightning.utils.toByteVector import com.machankura.compose.ui.composable.widgets.nfc.NfcState import com.machankura.compose.ui.composable.widgets.nfc.NfcStateRepository +import fr.acinq.lightning.utils.toByteVector import fr.acinq.phoenix.android.services.HceService import org.slf4j.LoggerFactory diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/TorchApp.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/TorchApp.kt index 97619d81..a91ea37d 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/TorchApp.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/TorchApp.kt @@ -1,12 +1,12 @@ package at.torch.compose -import at.torch.compose.ui.composable.navigation.TorchNavHost -import at.torch.compose.ui.theme.TorchTheme import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Surface -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.navigation.NavHostController +import at.torch.compose.ui.composable.navigation.TorchNavHost +import at.torch.compose.ui.theme.TorchTheme import fr.acinq.phoenix.PhoenixGlobal @Composable diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/TorchDatabase.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/TorchDatabase.kt index a0b619da..d9091da7 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/TorchDatabase.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/TorchDatabase.kt @@ -7,7 +7,6 @@ import androidx.room3.immediateTransaction import androidx.room3.useWriterConnection import at.torch.compose.database.dao.MarmotKeyPackageBundleDao import at.torch.compose.database.dao.MarmotKeyPackageDao -import at.torch.compose.database.model.MarmotKeyPackageBundle import kotlin.time.Instant val GENESIS_AT = Instant.fromEpochMilliseconds(1231006505000L) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageBundleDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageBundleDao.kt index c36a768e..71ed8559 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageBundleDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageBundleDao.kt @@ -1,12 +1,8 @@ package at.torch.compose.database.dao import androidx.room3.Dao -import androidx.room3.Insert -import androidx.room3.OnConflictStrategy.Companion.IGNORE import androidx.room3.Upsert -import at.torch.compose.database.model.MarmotKeyPackage import at.torch.compose.database.model.MarmotKeyPackageBundle -import at.torch.compose.database.model.Mention @Dao interface MarmotKeyPackageBundleDao { diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageDao.kt index ffdc5d0c..c9308469 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/MarmotKeyPackageDao.kt @@ -1,11 +1,8 @@ package at.torch.compose.database.dao import androidx.room3.Dao -import androidx.room3.Insert -import androidx.room3.OnConflictStrategy.Companion.IGNORE import androidx.room3.Upsert import at.torch.compose.database.model.MarmotKeyPackage -import at.torch.compose.database.model.Mention @Dao interface MarmotKeyPackageDao { diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrDao.kt index 3961ac25..3ab7ab8a 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrDao.kt @@ -1,5 +1,7 @@ package at.torch.compose.database.dao +import androidx.room3.Dao +import androidx.room3.Transaction import at.torch.compose.database.GENESIS_AT import at.torch.compose.database.model.BroadcastNostrEventReceipt import at.torch.compose.database.model.BroadcastNostrEventRequest @@ -19,8 +21,6 @@ import at.torch.compose.exceptions.GiftWrapImpersonationException import at.torch.compose.exceptions.GiftWrapSealDecryptionException import at.torch.compose.exceptions.GiftWrapUnsealException import at.torch.compose.extensions.toHex -import androidx.room3.Dao -import androidx.room3.Transaction import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrNip17Dao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrNip17Dao.kt index 2be91882..4f987c1d 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrNip17Dao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/NostrNip17Dao.kt @@ -1,5 +1,7 @@ package at.torch.compose.database.dao +import androidx.room3.Dao +import androidx.room3.Transaction import at.torch.compose.database.GENESIS_AT import at.torch.compose.database.model.BroadcastNostrEventRequest import at.torch.compose.database.model.ChatMessageBroadcastNostrEventRequestRelation @@ -10,8 +12,6 @@ import at.torch.compose.database.model.GiftWrapSeal import at.torch.compose.database.model.NostrEvent import at.torch.compose.database.model.Participant import at.torch.compose.database.model.intermdiate.LocalChatRoom -import androidx.room3.Dao -import androidx.room3.Transaction import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.tags.people.PTag diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ProfileDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ProfileDao.kt index ac768fae..407acfd6 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ProfileDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ProfileDao.kt @@ -1,6 +1,5 @@ package at.torch.compose.database.dao -import at.torch.compose.database.GENESIS_AT import androidx.room3.Dao import androidx.room3.Insert import androidx.room3.Query diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ZapDao.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ZapDao.kt index 3a8e42f2..68152241 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ZapDao.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/dao/ZapDao.kt @@ -1,9 +1,9 @@ package at.torch.compose.database.dao -import at.torch.compose.database.model.Zap import androidx.room3.Dao import androidx.room3.Query import androidx.room3.Upsert +import at.torch.compose.database.model.Zap import kotlinx.coroutines.flow.Flow @Dao diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/BroadcastNostrEventRequest.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/BroadcastNostrEventRequest.kt index f5524819..e0854779 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/BroadcastNostrEventRequest.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/BroadcastNostrEventRequest.kt @@ -1,12 +1,12 @@ package at.torch.compose.database.model -import at.torch.compose.database.model.traits.NostrEventEntity -import at.torch.compose.database.model.traits.TimestampedEntity -import at.torch.compose.database.model.traits.UnsignedNostrEventEntity import androidx.room3.Entity import androidx.room3.ForeignKey import androidx.room3.Index import androidx.room3.PrimaryKey +import at.torch.compose.database.model.traits.NostrEventEntity +import at.torch.compose.database.model.traits.TimestampedEntity +import at.torch.compose.database.model.traits.UnsignedNostrEventEntity import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt index 49c17ebe..ee22096b 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/ChatMessage.kt @@ -1,12 +1,12 @@ package at.torch.compose.database.model +import androidx.room3.Entity +import androidx.room3.ForeignKey +import androidx.room3.PrimaryKey import at.torch.compose.database.model.traits.LocalStoreEntity import at.torch.compose.database.model.traits.SoftDeletableEntity import at.torch.compose.database.model.traits.TimestampedEntity import at.torch.compose.database.model.traits.UserViewableEntity -import androidx.room3.Entity -import androidx.room3.ForeignKey -import androidx.room3.PrimaryKey import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NegentropySynchronizeRequest.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NegentropySynchronizeRequest.kt index b21b4ffd..8a7f65e0 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NegentropySynchronizeRequest.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NegentropySynchronizeRequest.kt @@ -1,10 +1,10 @@ package at.torch.compose.database.model -import at.torch.compose.network.serialization.encodeToJsonString import androidx.room3.Entity import androidx.room3.ForeignKey import androidx.room3.Index import androidx.room3.PrimaryKey +import at.torch.compose.network.serialization.encodeToJsonString import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.utils.sha256.sha256 import io.ktor.utils.io.core.toByteArray diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEvent.kt index a430ca7a..24c0009c 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEvent.kt @@ -27,7 +27,6 @@ import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put import kotlinx.serialization.json.putJsonArray -import kotlin.String import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEventRelay.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEventRelay.kt index 4a3625aa..e7c146c3 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEventRelay.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/NostrEventRelay.kt @@ -1,10 +1,10 @@ package at.torch.compose.database.model -import at.torch.compose.database.model.traits.NostrEventEntity -import at.torch.compose.database.model.traits.TimestampedEntity import androidx.room3.Entity import androidx.room3.ForeignKey import androidx.room3.Index +import at.torch.compose.database.model.traits.NostrEventEntity +import at.torch.compose.database.model.traits.TimestampedEntity import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Post.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Post.kt index 9d66b3e4..d58fc8fa 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Post.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Post.kt @@ -1,5 +1,9 @@ package at.torch.compose.database.model +import androidx.room3.Entity +import androidx.room3.ForeignKey +import androidx.room3.Index +import androidx.room3.PrimaryKey import at.torch.compose.database.model.traits.BroadcastableEntity import at.torch.compose.database.model.traits.LocalStoreEntity import at.torch.compose.database.model.traits.NostrEventEntity @@ -8,10 +12,6 @@ import at.torch.compose.database.model.traits.ReplyingToEntity import at.torch.compose.database.model.traits.SoftDeletableEntity import at.torch.compose.database.model.traits.TimestampedEntity import at.torch.compose.database.model.traits.UserViewableEntity -import androidx.room3.Entity -import androidx.room3.ForeignKey -import androidx.room3.Index -import androidx.room3.PrimaryKey import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Profile.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Profile.kt index 2a945ce0..4c9cc65e 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Profile.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/Profile.kt @@ -1,7 +1,5 @@ package at.torch.compose.database.model -import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/SynchronizeNostrEventResult.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/SynchronizeNostrEventResult.kt index e47cd289..f0f7fbbb 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/SynchronizeNostrEventResult.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/SynchronizeNostrEventResult.kt @@ -1,11 +1,11 @@ package at.torch.compose.database.model -import at.torch.compose.database.model.traits.OptionalNostrEventEntity -import at.torch.compose.database.model.traits.TimestampedEntity import androidx.room3.Entity import androidx.room3.ForeignKey import androidx.room3.Index import androidx.room3.PrimaryKey +import at.torch.compose.database.model.traits.OptionalNostrEventEntity +import at.torch.compose.database.model.traits.TimestampedEntity import com.vitorpamplona.quartz.nip01Core.core.HexKey import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/UnsignedNostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/UnsignedNostrEvent.kt index a30c182a..72b98e5a 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/UnsignedNostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/UnsignedNostrEvent.kt @@ -5,7 +5,6 @@ import androidx.room3.Index import androidx.room3.PrimaryKey import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Kind -import kotlin.String import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalInReplyToNostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalInReplyToNostrEvent.kt index 35dcf6ae..616281e2 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalInReplyToNostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalInReplyToNostrEvent.kt @@ -1,7 +1,5 @@ package at.torch.compose.database.model.intermdiate -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -17,6 +15,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.room3.Embedded import androidx.room3.Relation +import at.torch.compose.extensions.toFormattedTimeAndDateString data class LocalInReplyToNostrEvent( @Embedded val inReplyToRelation: at.torch.compose.database.model.InReplyToRelation, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalNostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalNostrEvent.kt index 6e71586b..538015cf 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalNostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalNostrEvent.kt @@ -1,8 +1,5 @@ package at.torch.compose.database.model.intermdiate -import at.torch.compose.ui.composable.widgets.content.RichContent -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -16,6 +13,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.room3.Embedded import androidx.room3.Relation +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey data class LocalNostrEvent( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalPost.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalPost.kt index c0deda77..13399087 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalPost.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalPost.kt @@ -1,9 +1,9 @@ package at.torch.compose.database.model.intermdiate -import at.torch.compose.database.model.Post -import at.torch.compose.database.model.Profile import androidx.room3.Embedded import androidx.room3.Relation +import at.torch.compose.database.model.Post +import at.torch.compose.database.model.Profile data class LocalPost( @Embedded val post: Post, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalQuotedNostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalQuotedNostrEvent.kt index 6ec66499..0a0018aa 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalQuotedNostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalQuotedNostrEvent.kt @@ -1,11 +1,5 @@ package at.torch.compose.database.model.intermdiate -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.QuotedRelation -import at.torch.compose.ui.composable.widgets.content.RichContent -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -21,6 +15,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.room3.Embedded import androidx.room3.Relation +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey data class LocalQuotedNostrEvent( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalRepostedNostrEvent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalRepostedNostrEvent.kt index 61302595..68658f9d 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalRepostedNostrEvent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/model/intermdiate/LocalRepostedNostrEvent.kt @@ -1,7 +1,5 @@ package at.torch.compose.database.model.intermdiate -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -17,6 +15,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.room3.Embedded import androidx.room3.Relation +import at.torch.compose.extensions.toFormattedTimeAndDateString data class LocalRepostedNostrEvent( @Embedded val repostedRelation: at.torch.compose.database.model.RepostedRelation, diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseChatRepository.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseChatRepository.kt index 49d6f583..160f0ddb 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseChatRepository.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseChatRepository.kt @@ -1,10 +1,6 @@ package at.torch.compose.database.repository -import at.torch.compose.database.GENESIS_AT -import at.torch.compose.database.model.ChatMessage -import at.torch.compose.database.model.GiftWrapPayload import co.touchlab.kermit.Logger -import com.vitorpamplona.quartz.marmot.mls.group.MlsGroupState import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Kind diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseNostrRepository.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseNostrRepository.kt index 3236c726..f867f166 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseNostrRepository.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/database/repository/DatabaseNostrRepository.kt @@ -1,6 +1,5 @@ package at.torch.compose.database.repository -import at.torch.compose.database.model.MarmotKeyPackageBundle import at.torch.compose.database.model.UnsignedNostrEvent import at.torch.compose.nostr.Relays import co.touchlab.kermit.Logger @@ -8,7 +7,6 @@ import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRelayListEvent import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRotationManager.Companion.KEY_PACKAGE_LIFETIME_SECONDS import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageUtils -import com.vitorpamplona.quartz.marmot.mls.codec.TlsWriter import com.vitorpamplona.quartz.marmot.mls.crypto.Ed25519 import com.vitorpamplona.quartz.marmot.mls.crypto.MlsCryptoProvider import com.vitorpamplona.quartz.marmot.mls.crypto.X25519 @@ -57,8 +55,6 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import kotlin.collections.emptyMap -import kotlin.collections.plus import kotlin.io.encoding.Base64 import kotlin.time.Clock import kotlin.time.Instant diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/extensions/Credentials.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/extensions/Credentials.kt index 96487a13..15ebbcde 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/extensions/Credentials.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/extensions/Credentials.kt @@ -1,6 +1,5 @@ package at.torch.compose.extensions -import at.torch.compose.exceptions.InvalidNostrPrivateKeyException import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip19Bech32.bech32.Bech32 import fr.acinq.bitcoin.PrivateKey diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/managers/AuxDatabaseManager.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/managers/AuxDatabaseManager.kt index 4bf1582f..2bce5fe1 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/managers/AuxDatabaseManager.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/managers/AuxDatabaseManager.kt @@ -1,7 +1,5 @@ package at.torch.compose.managers -import at.torch.compose.database.builder.getRoomDatabase - class AuxDatabaseManager( torchGlobal: at.torch.compose.TorchGlobal ) { diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelayPool.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelayPool.kt index c5bf70cd..8850f636 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelayPool.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelayPool.kt @@ -1,21 +1,6 @@ package at.torch.compose.network.relays -import at.torch.compose.exceptions.NetworkException -import at.torch.compose.exceptions.NostrNoticeException import androidx.annotation.VisibleForTesting -import kotlin.time.Duration.Companion.milliseconds -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.FlowPreview -import kotlinx.coroutines.IO -import kotlinx.coroutines.flow.MutableSharedFlow -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.first -import kotlinx.coroutines.flow.getAndUpdate -import kotlinx.coroutines.flow.timeout -import kotlinx.coroutines.flow.transform -import kotlinx.coroutines.launch import at.torch.compose.network.dto.toRelayDTO import at.torch.compose.network.sockets.filterByEventId import at.torch.compose.network.sockets.filterBySubscriptionId @@ -27,11 +12,24 @@ import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl import com.vitorpamplona.quartz.nip77Negentropy.NegCloseCmd import com.vitorpamplona.quartz.nip77Negentropy.NegOpenCmd +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.FlowPreview +import kotlinx.coroutines.IO import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.getAndUpdate +import kotlinx.coroutines.flow.timeout +import kotlinx.coroutines.flow.transform import kotlinx.coroutines.flow.transformWhile +import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock +import kotlin.time.Duration.Companion.milliseconds /** * As seen in Primal diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelaysSocketManager.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelaysSocketManager.kt index a996332f..057d33fa 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelaysSocketManager.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/relays/RelaysSocketManager.kt @@ -1,15 +1,7 @@ package at.torch.compose.network.relays -import co.touchlab.kermit.Logger -import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.IO -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch -import kotlinx.coroutines.sync.Mutex -import kotlinx.coroutines.sync.withLock import at.torch.compose.network.dto.mapToRelayDTO +import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay.CloseCmd import com.vitorpamplona.quartz.nip01Core.relay.commands.toRelay.ReqCmd @@ -17,9 +9,17 @@ import com.vitorpamplona.quartz.nip77Negentropy.NegCloseCmd import com.vitorpamplona.quartz.nip77Negentropy.NegOpenCmd import fr.acinq.phoenix.data.ActiveWallet import fr.acinq.phoenix.managers.nostrPublicKey +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.IO +import kotlinx.coroutines.Job import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.collectLatest +import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock /** diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessage.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessage.kt index f3d18f62..c1049895 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessage.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessage.kt @@ -1,8 +1,5 @@ package at.torch.compose.network.sockets -import at.torch.compose.exceptions.NetworkException -import at.torch.compose.exceptions.NostrNoticeException - sealed class NostrIncomingMessage { data class EventMessage( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessageParser.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessageParser.kt index 8d80e0ce..26efbb3e 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessageParser.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrIncomingMessageParser.kt @@ -1,6 +1,5 @@ package at.torch.compose.network.sockets -import at.torch.compose.network.serialization.SocketsJson import at.torch.compose.network.serialization.decodeFromStringOrNull import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.Event diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClient.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClient.kt index 8783908a..420c1685 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClient.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClient.kt @@ -1,8 +1,8 @@ package at.torch.compose.network.sockets -import kotlin.coroutines.cancellation.CancellationException import kotlinx.coroutines.flow.SharedFlow import kotlinx.serialization.json.JsonObject +import kotlin.coroutines.cancellation.CancellationException interface NostrSocketClient { val socketUrl: String diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClientImpl.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClientImpl.kt index 4a2c5026..b0d2354a 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClientImpl.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/network/sockets/NostrSocketClientImpl.kt @@ -1,6 +1,5 @@ package at.torch.compose.network.sockets -import at.torch.compose.exceptions.NetworkException import co.touchlab.kermit.Logger import io.ktor.client.HttpClient import io.ktor.client.plugins.websocket.webSocketSession @@ -10,9 +9,6 @@ import io.ktor.websocket.WebSocketSession import io.ktor.websocket.close import io.ktor.websocket.readReason import io.ktor.websocket.readText -import kotlin.coroutines.cancellation.CancellationException -import kotlin.time.Duration.Companion.milliseconds -import kotlin.uuid.Uuid import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO @@ -32,7 +28,10 @@ import okio.Inflater import okio.InflaterSource import okio.buffer import okio.use +import kotlin.coroutines.cancellation.CancellationException +import kotlin.time.Duration.Companion.milliseconds import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) internal class NostrSocketClientImpl( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrNotaryRepository.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrNotaryRepository.kt index 3ee4bb61..4d95fe41 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrNotaryRepository.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrNotaryRepository.kt @@ -1,8 +1,5 @@ package at.torch.compose.repository -import at.torch.compose.database.model.UnsignedNostrEvent -import at.torch.compose.exceptions.SigningKeyNotFoundException -import at.torch.compose.exceptions.SigningRejectedException import at.torch.compose.cryptography.signOrThrow import at.torch.compose.network.asClientTag import com.vitorpamplona.quartz.nip19Bech32.toNsec diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrPublisherRepository.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrPublisherRepository.kt index 5dca0afe..a138f965 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrPublisherRepository.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/repository/NostrPublisherRepository.kt @@ -1,6 +1,5 @@ package at.torch.compose.repository -import at.torch.compose.network.dto.RelayDTO import co.touchlab.kermit.Logger import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomCreationScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomCreationScreen.kt index 02f33b70..3b7e89ee 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomCreationScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/ChatRoomCreationScreen.kt @@ -1,7 +1,6 @@ package at.torch.compose.ui.composable import androidx.compose.foundation.layout.Arrangement -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -30,8 +29,6 @@ import at.torch.compose.repository.ChatRepository import at.torch.compose.repository.NostrRepository import at.torch.compose.ui.composable.navigation.routes.Route import at.torch.compose.ui.view.model.ChatRoomCreationViewModel -import at.torch.compose.ui.view.state.form.TextField -import com.vitorpamplona.quartz.nip01Core.core.HexKey import fr.acinq.phoenix.data.ActiveWallet import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/CreateProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/CreateProfileScreen.kt index 3515a2d2..626432da 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/CreateProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/CreateProfileScreen.kt @@ -1,9 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.database.model.Profile -import at.torch.compose.ui.theme.BluePill -import at.torch.compose.ui.theme.RedPill -import at.torch.compose.ui.view.model.CreateProfileViewModel import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -36,6 +32,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import at.torch.compose.repository.MarmotRepository +import at.torch.compose.ui.view.model.CreateProfileViewModel import at.torch.compose.ui.view.state.CreateProfileUIState @OptIn(ExperimentalMaterial3ExpressiveApi::class) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/LoadingScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/LoadingScreen.kt index 5cd9056e..b365539b 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/LoadingScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/LoadingScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/NostrEventDetailScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/NostrEventDetailScreen.kt index a61920cf..49c5225a 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/NostrEventDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/NostrEventDetailScreen.kt @@ -1,11 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.intermdiate.LocalNostrEvent -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator -import at.torch.compose.ui.composable.widgets.detail.MetadataEventDetail -import at.torch.compose.ui.composable.widgets.detail.TextNoteEventDetail import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchResultScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchResultScreen.kt index 0ce11a97..50a06562 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchResultScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchResultScreen.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute -import at.torch.compose.ui.composable.widgets.feed.ListView import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -51,6 +49,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel +import at.torch.compose.ui.composable.widgets.feed.ListView import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchScreen.kt index d876752c..cbe1219f 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SearchScreen.kt @@ -1,8 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute -import at.torch.compose.ui.composable.navigation.routes.SearchResultRoute -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SovereignWalletStartupScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SovereignWalletStartupScreen.kt index 3ddd04b8..716e6fdb 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SovereignWalletStartupScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/SovereignWalletStartupScreen.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator -import at.torch.compose.ui.composable.widgets.wallet.WalletsSelector import androidx.compose.foundation.layout.* import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.MaterialTheme @@ -27,7 +25,6 @@ import fr.acinq.phoenix.utils.preferences.UserPrefs import fr.acinq.phoenix.utils.preferences.UserWalletMetadata import fr.acinq.phoenix.utils.preferences.getByWalletIdOrDefault import kotlinx.coroutines.flow.first -import kotlin.collections.get @Composable fun SovereignWalletStartupScreen( diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnannouncedProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnannouncedProfileScreen.kt index 3dba08b0..625c6309 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnannouncedProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnannouncedProfileScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnindexedProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnindexedProfileScreen.kt index 02680671..6e1de360 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnindexedProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnindexedProfileScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileScreen.kt index 1788e761..db5fa780 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileSynchronizationScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileSynchronizationScreen.kt index b6bdf73e..c81f3c82 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileSynchronizationScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnqueuedProfileSynchronizationScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsignedProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsignedProfileScreen.kt index 041089ff..15f898ca 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsignedProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsignedProfileScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsyncedProfileScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsyncedProfileScreen.kt index 08d0de1c..03656396 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsyncedProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/UnsyncedProfileScreen.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/WriteNewNoteScreen.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/WriteNewNoteScreen.kt index 0adde2ca..03b38694 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/WriteNewNoteScreen.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/WriteNewNoteScreen.kt @@ -1,15 +1,5 @@ package at.torch.compose.ui.composable -import at.torch.compose.database.model.Mention -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.intermdiate.LocalMention -import at.torch.compose.database.model.intermdiate.LocalNostrEvent -import at.torch.compose.database.model.intermdiate.LocalProfileWithFollowing -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator -import at.torch.compose.ui.composable.widgets.content.RichContent -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -49,6 +39,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import kotlin.time.Clock diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt index 5c46f537..bc8e4dbf 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/navigation/TorchNavHost.kt @@ -1,24 +1,23 @@ package at.torch.compose.ui.composable.navigation -import androidx.compose.runtime.Composable -import androidx.navigation.NavHostController -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.toRoute -import at.torch.compose.ui.composable.navigation.routes.WriteNewNoteRoute import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Surface +import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable +import androidx.navigation.toRoute import at.torch.compose.database.repository.DatabaseMarmotRepository import at.torch.compose.ui.composable.ChatRoomCreationScreen import at.torch.compose.ui.composable.ChatRoomDetailScreen import at.torch.compose.ui.composable.HomeScreen import at.torch.compose.ui.composable.navigation.routes.ChatRoomCreationRoute +import at.torch.compose.ui.composable.navigation.routes.WriteNewNoteRoute import co.touchlab.kermit.Logger import fr.acinq.phoenix.PhoenixGlobal import kotlinx.coroutines.CoroutineExceptionHandler diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/buttons/Clickable.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/buttons/Clickable.kt index ecbedfcc..f537266c 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/buttons/Clickable.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/buttons/Clickable.kt @@ -23,14 +23,10 @@ import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ProvideTextStyle import androidx.compose.material3.Surface import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/ArticleCard.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/ArticleCard.kt index bb574212..6d345d80 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/ArticleCard.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/ArticleCard.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable.widgets.content -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column @@ -9,7 +8,6 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.CircularProgressIndicator diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/LiveStreamCardContent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/LiveStreamCardContent.kt index 4eeba735..780e491d 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/LiveStreamCardContent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/LiveStreamCardContent.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.composable.widgets.content -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/QuotedNote.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/QuotedNote.kt index 0a9d0529..288ec69c 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/QuotedNote.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/QuotedNote.kt @@ -1,9 +1,5 @@ package at.torch.compose.ui.composable.widgets.content -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.QuotedRelation -import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/RichContent.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/RichContent.kt index 766be828..9b4ff7aa 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/RichContent.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/content/RichContent.kt @@ -1,11 +1,5 @@ package at.torch.compose.ui.composable.widgets.content -import at.torch.compose.database.model.Mention -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.QuotedRelation -import at.torch.compose.database.model.intermdiate.LocalMention -import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/detail/TextNoteEventDetail.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/detail/TextNoteEventDetail.kt index 3fb4717d..aaafa792 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/detail/TextNoteEventDetail.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/detail/TextNoteEventDetail.kt @@ -1,11 +1,5 @@ package at.torch.compose.ui.composable.widgets.detail -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.intermdiate.LocalNostrEvent -import at.torch.compose.ui.composable.widgets.content.RichContent -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -50,6 +44,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/EventListView.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/EventListView.kt index ab95e9a7..e3258e58 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/EventListView.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/EventListView.kt @@ -1,13 +1,5 @@ package at.torch.compose.ui.composable.widgets.feed -import at.torch.compose.database.model.InReplyToRelation -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.RepostedRelation -import at.torch.compose.database.model.intermdiate.LocalInReplyToNostrEvent -import at.torch.compose.database.model.intermdiate.LocalNostrEvent -import at.torch.compose.database.model.intermdiate.LocalRepostedNostrEvent -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -26,6 +18,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import com.vitorpamplona.quartz.nip18Reposts.RepostEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/TextNoteFeedItem.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/TextNoteFeedItem.kt index f8895725..41e1f518 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/TextNoteFeedItem.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/feed/TextNoteFeedItem.kt @@ -1,16 +1,5 @@ package at.torch.compose.ui.composable.widgets.feed -import at.torch.compose.database.model.InReplyToRelation -import at.torch.compose.database.model.Mention -import at.torch.compose.database.model.NostrEvent -import at.torch.compose.database.model.Profile -import at.torch.compose.database.model.QuotedRelation -import at.torch.compose.database.model.intermdiate.LocalInReplyToNostrEvent -import at.torch.compose.database.model.intermdiate.LocalMention -import at.torch.compose.database.model.intermdiate.LocalQuotedNostrEvent -import at.torch.compose.ui.composable.widgets.content.RichContent -import at.torch.compose.ui.composable.widgets.profile.ProfileAvatar -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -33,6 +22,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import at.torch.compose.extensions.toFormattedTimeAndDateString import com.vitorpamplona.quartz.nip01Core.core.HexKey @OptIn(ExperimentalMaterial3ExpressiveApi::class) diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/profile/ProfileAvatar.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/profile/ProfileAvatar.kt index 559e1082..6922c8cc 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/profile/ProfileAvatar.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/profile/ProfileAvatar.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.composable.widgets.profile -import at.torch.compose.database.model.Profile -import at.torch.compose.ui.composable.widgets.coil.forwardingPainter import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/wallet/WalletsSelector.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/wallet/WalletsSelector.kt index 9f3f5261..5d2d0f96 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/wallet/WalletsSelector.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/composable/widgets/wallet/WalletsSelector.kt @@ -16,7 +16,6 @@ package at.torch.compose.ui.composable.widgets.wallet -import at.torch.compose.ui.composable.widgets.LoadingDataIndicator import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Theme.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Theme.kt index d7e8ca7f..72e5a196 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Theme.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Theme.kt @@ -3,8 +3,8 @@ package at.torch.compose.ui.theme import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.lightColorScheme import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.graphics.Color diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Type.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Type.kt index e26cd745..bc939ab7 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Type.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/theme/Type.kt @@ -1,9 +1,5 @@ package com.example.ui.theme import androidx.compose.material3.Typography -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp val AuxTypography = Typography() diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailMessageListViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailMessageListViewModel.kt index 2be44822..c230a668 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailMessageListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/ChatRoomDetailMessageListViewModel.kt @@ -1,8 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NegentropySynchronizeRequest -import at.torch.compose.database.model.types.SynchronizationFilter -import at.torch.compose.extensions.toFormattedTimeAndDateString import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column @@ -45,6 +42,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory +import at.torch.compose.extensions.toFormattedTimeAndDateString import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/CreateProfileViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/CreateProfileViewModel.kt index 64a46313..8f0d9132 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/CreateProfileViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/CreateProfileViewModel.kt @@ -1,16 +1,16 @@ package at.torch.compose.ui.view.model -import at.torch.compose.repository.NostrRepository -import at.torch.compose.ui.view.state.CreateProfileUIState import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory -import at.torch.compose.ui.view.state.form.CreateProfileFormState -import androidx.lifecycle.viewModelScope import at.torch.compose.repository.MarmotRepository +import at.torch.compose.repository.NostrRepository +import at.torch.compose.ui.view.state.CreateProfileUIState +import at.torch.compose.ui.view.state.form.CreateProfileFormState import co.touchlab.kermit.Logger import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.MnemonicCode diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FeedListViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FeedListViewModel.kt index 82889f35..8c899f25 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FeedListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FeedListViewModel.kt @@ -1,8 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NegentropySynchronizeRequest -import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute -import at.torch.compose.ui.composable.widgets.feed.ListView import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -27,6 +24,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory +import at.torch.compose.ui.composable.widgets.feed.ListView import co.touchlab.kermit.Logger import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowersListViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowersListViewModel.kt index d1ed4630..e7eefef8 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowersListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowersListViewModel.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NegentropySynchronizeRequest import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowingListViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowingListViewModel.kt index ad9100c9..ce14ffab 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowingListViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/FollowingListViewModel.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NegentropySynchronizeRequest import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/HomeViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/HomeViewModel.kt index 2ab9a6df..da2d3a46 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/HomeViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/HomeViewModel.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.types.SynchronizationFilter import androidx.compose.foundation.pager.PagerState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -12,16 +11,7 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.HexKey -import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent -import com.vitorpamplona.quartz.nip04Dm.messages.PrivateDmEvent -import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent -import com.vitorpamplona.quartz.nip18Reposts.RepostEvent -import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent -import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent -import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent -import com.vitorpamplona.quartz.nip96FileStorage.config.FileServersEvent -import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/InReplyToViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/InReplyToViewModel.kt index 11982a1b..18027ddf 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/InReplyToViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/InReplyToViewModel.kt @@ -1,9 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NegentropySynchronizeRequest -import at.torch.compose.database.model.types.SynchronizationFilter -import at.torch.compose.ui.composable.navigation.routes.NostrEventDetailRoute -import at.torch.compose.ui.composable.widgets.feed.ListView import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -28,6 +24,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory +import at.torch.compose.ui.composable.widgets.feed.ListView import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import com.vitorpamplona.quartz.nip18Reposts.RepostEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/MetadataEventDetailViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/MetadataEventDetailViewModel.kt index e25246f8..bd2c5721 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/MetadataEventDetailViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/MetadataEventDetailViewModel.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.UnsignedNostrEvent -import at.torch.compose.database.model.types.SynchronizationFilter import androidx.compose.foundation.pager.PagerState import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NostrEventDetailViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NostrEventDetailViewModel.kt index 07dc0fc8..fa6bc779 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NostrEventDetailViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NostrEventDetailViewModel.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.SynchronizeNostrEventRequest -import at.torch.compose.database.model.types.SynchronizationFilter import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NotaryViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NotaryViewModel.kt index 317f7eb0..ee34de09 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NotaryViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/NotaryViewModel.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.NostrEvent import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewmodel.initializer diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SearchResultViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SearchResultViewModel.kt index a3cc70c8..e9711ef3 100755 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SearchResultViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SearchResultViewModel.kt @@ -1,7 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.SynchronizeNostrEventRequest -import at.torch.compose.database.model.types.SynchronizationFilter import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue @@ -12,14 +10,6 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent -import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent -import com.vitorpamplona.quartz.nip18Reposts.RepostEvent -import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent -import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent -import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent -import com.vitorpamplona.quartz.nip68Picture.PictureEvent -import com.vitorpamplona.quartz.nip71Video.VideoNormalEvent -import com.vitorpamplona.quartz.nip71Video.VideoShortEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.flow.distinctUntilChanged diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SignInToProfileViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SignInToProfileViewModel.kt index 3aac23db..752b7fbb 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SignInToProfileViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SignInToProfileViewModel.kt @@ -1,13 +1,12 @@ package at.torch.compose.ui.view.model -import at.torch.compose.ui.view.state.form.SignInToProfileFormState import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory -import androidx.lifecycle.viewModelScope import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip19Bech32.Nip19Parser import com.vitorpamplona.quartz.nip19Bech32.entities.Entity diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletStartupViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletStartupViewModel.kt index 7910c38e..548460e3 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletStartupViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletStartupViewModel.kt @@ -1,8 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.extensions.getShowIntroFlow -import at.torch.compose.extensions.platformStartupLogic -import at.torch.compose.extensions.schedulePlatformLogic import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletViewModel.kt index 8feb6670..41fa8245 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SovereignWalletViewModel.kt @@ -1,6 +1,5 @@ package at.torch.compose.ui.view.model -import at.torch.compose.extensions.getGlobalPrefs import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue @@ -34,7 +33,6 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch -import kotlin.String sealed class WritingSeedState { data object Init : WritingSeedState() diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SynchronizationViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SynchronizationViewModel.kt index 07abd172..21c897a1 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SynchronizationViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/SynchronizationViewModel.kt @@ -1,15 +1,10 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.BroadcastNostrEventRequest -import at.torch.compose.database.model.SynchronizeNostrEventRequest -import at.torch.compose.database.model.types.SynchronizationFilter -import at.torch.compose.network.relays.RelaysSocketManager -import at.torch.compose.network.sockets.NostrSocketClientFactory -import at.torch.compose.network.dto.toRelayDTO import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory +import at.torch.compose.network.dto.toRelayDTO import co.touchlab.kermit.Logger import com.vitorpamplona.negentropy.Negentropy import com.vitorpamplona.negentropy.storage.StorageVector diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/UnqueuedProfileSynchronizationViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/UnqueuedProfileSynchronizationViewModel.kt index 75847ee9..7d488c9d 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/UnqueuedProfileSynchronizationViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/UnqueuedProfileSynchronizationViewModel.kt @@ -1,14 +1,12 @@ package at.torch.compose.ui.view.model -import at.torch.compose.database.model.SynchronizeNostrEventRequest -import at.torch.compose.database.model.types.SynchronizationFilter import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory -import androidx.lifecycle.viewModelScope import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent diff --git a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/WriteNewNoteViewModel.kt b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/WriteNewNoteViewModel.kt index 867f15fe..176f8e49 100644 --- a/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/WriteNewNoteViewModel.kt +++ b/composeApp/src/commonMain/kotlin/at/torch/compose/ui/view/model/WriteNewNoteViewModel.kt @@ -1,17 +1,16 @@ package at.torch.compose.ui.view.model import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.viewmodel.initializer -import androidx.lifecycle.viewmodel.viewModelFactory -import at.torch.compose.ui.view.state.form.WriteNewNoteFormState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.text.TextRange +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope +import androidx.lifecycle.viewmodel.initializer +import androidx.lifecycle.viewmodel.viewModelFactory import co.touchlab.kermit.Logger import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip19Bech32.entities.NProfile diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/conf/Lsp.kt b/composeApp/src/commonMain/kotlin/fr/acinq/conf/Lsp.kt index fbcca94c..37ba6111 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/conf/Lsp.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/conf/Lsp.kt @@ -2,7 +2,13 @@ package fr.acinq.phoenixd.conf import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.PublicKey -import fr.acinq.lightning.* +import fr.acinq.lightning.CltvExpiryDelta +import fr.acinq.lightning.DefaultSwapInParams +import fr.acinq.lightning.InvoiceDefaultRoutingFees +import fr.acinq.lightning.NodeUri +import fr.acinq.lightning.SwapInParams +import fr.acinq.lightning.TrampolineFees +import fr.acinq.lightning.WalletParams import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sat diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/Ambients.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/Ambients.kt index dd293c30..8b7dc2b6 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/Ambients.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/Ambients.kt @@ -22,8 +22,13 @@ import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.staticCompositionLocalOf import androidx.navigation.NavController import fr.acinq.phoenix.controllers.ControllerFactory -import fr.acinq.phoenix.data.* -import fr.acinq.phoenix.utils.preferences.GlobalPrefs +import fr.acinq.phoenix.data.BitcoinUnit +import fr.acinq.phoenix.data.CurrencyUnit +import fr.acinq.phoenix.data.ExchangeRate +import fr.acinq.phoenix.data.FiatCurrency +import fr.acinq.phoenix.data.PreferredFiatCurrencies +import fr.acinq.phoenix.data.UserTheme +import fr.acinq.phoenix.data.WalletId import fr.acinq.phoenix.utils.preferences.InternalPrefs import fr.acinq.phoenix.utils.preferences.PreferredBitcoinUnits import fr.acinq.phoenix.utils.preferences.UserPrefs diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/PhoenixBusiness.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/PhoenixBusiness.kt index 5eecbf1d..f2507f1d 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/PhoenixBusiness.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/PhoenixBusiness.kt @@ -23,18 +23,40 @@ import fr.acinq.lightning.io.TcpSocket import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.debug import fr.acinq.lightning.logging.info -import fr.acinq.phoenix.controllers.* -import fr.acinq.phoenix.controllers.config.* +import fr.acinq.phoenix.controllers.CloseChannelsConfigurationController +import fr.acinq.phoenix.controllers.ConfigurationController +import fr.acinq.phoenix.controllers.ContentController +import fr.acinq.phoenix.controllers.ControllerFactory +import fr.acinq.phoenix.controllers.ElectrumConfigurationController +import fr.acinq.phoenix.controllers.HomeController +import fr.acinq.phoenix.controllers.InitializationController +import fr.acinq.phoenix.controllers.ReceiveController +import fr.acinq.phoenix.controllers.RestoreWalletController +import fr.acinq.phoenix.controllers.config.AppCloseChannelsConfigurationController +import fr.acinq.phoenix.controllers.config.AppConfigurationController +import fr.acinq.phoenix.controllers.config.AppElectrumConfigurationController import fr.acinq.phoenix.controllers.init.AppInitController import fr.acinq.phoenix.controllers.init.AppRestoreWalletController import fr.acinq.phoenix.controllers.main.AppContentController import fr.acinq.phoenix.controllers.main.AppHomeController import fr.acinq.phoenix.controllers.payments.AppReceiveController import fr.acinq.phoenix.data.StartupParams -import fr.acinq.phoenix.managers.* +import fr.acinq.phoenix.managers.AppConfigurationManager +import fr.acinq.phoenix.managers.AppConnectionsDaemon +import fr.acinq.phoenix.managers.BalanceManager +import fr.acinq.phoenix.managers.ConnectionsManager +import fr.acinq.phoenix.managers.DataStoreManager +import fr.acinq.phoenix.managers.DatabaseManager +import fr.acinq.phoenix.managers.LnurlManager +import fr.acinq.phoenix.managers.NodeParamsManager +import fr.acinq.phoenix.managers.NotificationsManager +import fr.acinq.phoenix.managers.PaymentsManager +import fr.acinq.phoenix.managers.PeerManager +import fr.acinq.phoenix.managers.SendManager +import fr.acinq.phoenix.managers.WalletManager import fr.acinq.phoenix.managers.global.CurrencyManager import fr.acinq.phoenix.managers.global.FeerateManager -import fr.acinq.phoenix.utils.* +import fr.acinq.phoenix.utils.BlockchainExplorer import fr.acinq.phoenix.utils.logger.PhoenixLoggerConfig import kotlinx.coroutines.Job import kotlinx.coroutines.MainScope diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/AppController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/AppController.kt index b507576e..e5883686 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/AppController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/AppController.kt @@ -2,10 +2,13 @@ package fr.acinq.phoenix.controllers import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.debug -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.MainScope import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.consumeEach import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.launch abstract class AppController( diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/ControllerFactory.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/ControllerFactory.kt index e20fad09..4e414def 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/ControllerFactory.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/ControllerFactory.kt @@ -1,6 +1,8 @@ package fr.acinq.phoenix.controllers -import fr.acinq.phoenix.controllers.config.* +import fr.acinq.phoenix.controllers.config.CloseChannelsConfiguration +import fr.acinq.phoenix.controllers.config.Configuration +import fr.acinq.phoenix.controllers.config.ElectrumConfiguration import fr.acinq.phoenix.controllers.init.Initialization import fr.acinq.phoenix.controllers.init.RestoreWallet import fr.acinq.phoenix.controllers.main.Content diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/CloseChannelsConfigurationController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/CloseChannelsConfigurationController.kt index f4c87e25..edc22189 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/CloseChannelsConfigurationController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/CloseChannelsConfigurationController.kt @@ -1,27 +1,29 @@ package fr.acinq.phoenix.controllers.config import fr.acinq.bitcoin.ByteVector -import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoin.Chain import fr.acinq.lightning.blockchain.fee.FeeratePerByte -import fr.acinq.lightning.blockchain.fee.FeeratePerKw -import fr.acinq.lightning.channel.* -import fr.acinq.lightning.channel.states.* +import fr.acinq.lightning.channel.ChannelCommand +import fr.acinq.lightning.channel.states.Aborted +import fr.acinq.lightning.channel.states.ChannelState +import fr.acinq.lightning.channel.states.Closed +import fr.acinq.lightning.channel.states.Closing +import fr.acinq.lightning.channel.states.Normal +import fr.acinq.lightning.channel.states.Offline +import fr.acinq.lightning.channel.states.Syncing import fr.acinq.lightning.io.WrappedChannelCommand import fr.acinq.lightning.logging.LoggerFactory +import fr.acinq.lightning.logging.info import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.phoenix.managers.PeerManager import fr.acinq.phoenix.controllers.AppController import fr.acinq.phoenix.controllers.config.CloseChannelsConfiguration.Model.ChannelInfoStatus +import fr.acinq.phoenix.managers.AppConfigurationManager +import fr.acinq.phoenix.managers.PeerManager +import fr.acinq.phoenix.managers.phoenixFinalWallet import fr.acinq.phoenix.utils.Parser import fr.acinq.phoenix.utils.extensions.localBalance -import fr.acinq.lightning.logging.info -import fr.acinq.phoenix.data.BitcoinUri -import fr.acinq.phoenix.managers.AppConfigurationManager -import fr.acinq.phoenix.managers.phoenixFinalWallet import kotlinx.coroutines.CompletableDeferred -import kotlinx.coroutines.flow.filterNotNull -import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch class AppCloseChannelsConfigurationController( diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ConfigurationController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ConfigurationController.kt index 1f0a5d35..a8981606 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ConfigurationController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ConfigurationController.kt @@ -1,10 +1,9 @@ package fr.acinq.phoenix.controllers.config -import co.touchlab.kermit.Logger import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.phoenix.managers.WalletManager import fr.acinq.phoenix.controllers.AppController +import fr.acinq.phoenix.managers.WalletManager import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ElectrumConfigurationController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ElectrumConfigurationController.kt index c54ca1b0..92553cb3 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ElectrumConfigurationController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/config/ElectrumConfigurationController.kt @@ -1,14 +1,12 @@ package fr.acinq.phoenix.controllers.config -import co.touchlab.kermit.Logger import fr.acinq.lightning.blockchain.electrum.ElectrumClient +import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.phoenix.PhoenixBusiness +import fr.acinq.phoenix.controllers.AppController import fr.acinq.phoenix.managers.AppConfigurationManager import fr.acinq.phoenix.managers.AppConnectionsDaemon -import fr.acinq.phoenix.controllers.AppController -import fr.acinq.lightning.logging.LoggerFactory import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.flow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/init/RestoreWalletController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/init/RestoreWalletController.kt index 0407c547..ab6c645a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/init/RestoreWalletController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/init/RestoreWalletController.kt @@ -1,6 +1,5 @@ package fr.acinq.phoenix.controllers.init -import co.touchlab.kermit.Logger import fr.acinq.bitcoin.MnemonicCode import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.phoenix.PhoenixBusiness diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/main/ContentController.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/main/ContentController.kt index 7917a398..f9b3187a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/main/ContentController.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/controllers/main/ContentController.kt @@ -1,6 +1,5 @@ package fr.acinq.phoenix.controllers.main -import co.touchlab.kermit.Logger import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.controllers.AppController diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/csv/WalletPaymentCsvWriter.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/csv/WalletPaymentCsvWriter.kt index f5f947fa..c9d12c2f 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/csv/WalletPaymentCsvWriter.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/csv/WalletPaymentCsvWriter.kt @@ -20,7 +20,17 @@ import fr.acinq.bitcoin.ByteVector32 import fr.acinq.bitcoin.Satoshi import fr.acinq.bitcoin.TxId import fr.acinq.lightning.MilliSatoshi -import fr.acinq.lightning.db.* +import fr.acinq.lightning.db.AutomaticLiquidityPurchasePayment +import fr.acinq.lightning.db.Bolt11IncomingPayment +import fr.acinq.lightning.db.ChannelCloseOutgoingPayment +import fr.acinq.lightning.db.LegacyPayToOpenIncomingPayment +import fr.acinq.lightning.db.LegacySwapInIncomingPayment +import fr.acinq.lightning.db.LightningIncomingPayment +import fr.acinq.lightning.db.LightningOutgoingPayment +import fr.acinq.lightning.db.ManualLiquidityPurchasePayment +import fr.acinq.lightning.db.OnChainIncomingPayment +import fr.acinq.lightning.db.SpliceCpfpOutgoingPayment +import fr.acinq.lightning.db.SpliceOutgoingPayment import fr.acinq.lightning.db.WalletPayment import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.msat @@ -28,8 +38,8 @@ import fr.acinq.lightning.utils.sat import fr.acinq.lightning.utils.sum import fr.acinq.lightning.utils.toMilliSatoshi import fr.acinq.phoenix.data.WalletPaymentMetadata -import kotlin.time.Instant import kotlin.time.ExperimentalTime +import kotlin.time.Instant class WalletPaymentCsvWriter(val configuration: Configuration) : CsvWriter() { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/BitcoinAddress.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/BitcoinAddress.kt index 28cabbb8..d3643839 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/BitcoinAddress.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/BitcoinAddress.kt @@ -22,7 +22,9 @@ import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.lightning.wire.OfferTypes -import io.ktor.http.* +import io.ktor.http.Parameters +import io.ktor.http.formUrlEncode +import io.ktor.http.plus data class BitcoinUri( val chain: Chain, diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/ExchangeRates.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/ExchangeRates.kt index ce6dfc73..04693cbf 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/ExchangeRates.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/ExchangeRates.kt @@ -1,8 +1,5 @@ package fr.acinq.phoenix.data -import fr.acinq.phoenix.controllers.MVI -import fr.acinq.phoenix.controllers.main.Home -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/LocalChannelInfo.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/LocalChannelInfo.kt index e1c627f9..554e831e 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/LocalChannelInfo.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/LocalChannelInfo.kt @@ -20,12 +20,18 @@ import fr.acinq.bitcoin.ByteVector32 import fr.acinq.bitcoin.Satoshi import fr.acinq.bitcoin.TxId import fr.acinq.lightning.MilliSatoshi -import fr.acinq.lightning.channel.states.* +import fr.acinq.lightning.channel.states.Aborted +import fr.acinq.lightning.channel.states.ChannelState +import fr.acinq.lightning.channel.states.ChannelStateWithCommitments +import fr.acinq.lightning.channel.states.Closed +import fr.acinq.lightning.channel.states.Closing +import fr.acinq.lightning.channel.states.Normal +import fr.acinq.lightning.channel.states.Syncing import fr.acinq.lightning.json.JsonSerializers import fr.acinq.lightning.utils.msat import fr.acinq.phoenix.managers.PeerManager -import fr.acinq.phoenix.utils.extensions.* -import kotlinx.serialization.encodeToString +import fr.acinq.phoenix.utils.extensions.isTerminated +import fr.acinq.phoenix.utils.extensions.localBalance /** * This class exposes a channel's more important information in an easy-to-consume format. diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/WalletPayment.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/WalletPayment.kt index 77a64333..e4712a3c 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/WalletPayment.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/WalletPayment.kt @@ -19,7 +19,13 @@ import fr.acinq.phoenix.utils.converters.AmountFormatter.toPrettyString import fr.acinq.phoenix.utils.extensions.desc import org.jetbrains.compose.resources.stringResource import torch.composeapp.generated.resources.Res -import torch.composeapp.generated.resources.* +import torch.composeapp.generated.resources.paymentdetails_desc_closing_channel +import torch.composeapp.generated.resources.paymentdetails_desc_cpfp +import torch.composeapp.generated.resources.paymentdetails_desc_liquidity_automated +import torch.composeapp.generated.resources.paymentdetails_desc_liquidity_manual +import torch.composeapp.generated.resources.paymentdetails_desc_splice_out +import torch.composeapp.generated.resources.paymentdetails_desc_swapin +import torch.composeapp.generated.resources.paymentdetails_desc_swapout /** * Represents a payment & its associated metadata. diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/Lnurl.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/Lnurl.kt index 5534bf52..6b8ec684 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/Lnurl.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/Lnurl.kt @@ -18,15 +18,27 @@ package fr.acinq.phoenix.data.lnurl import co.touchlab.kermit.Logger import fr.acinq.bitcoin.Bech32 -import fr.acinq.lightning.utils.msat -import fr.acinq.phoenix.utils.Parser import fr.acinq.lightning.logging.debug import fr.acinq.lightning.logging.error import fr.acinq.lightning.logging.info -import io.ktor.client.statement.* -import io.ktor.http.* -import io.ktor.utils.io.charsets.* -import kotlinx.serialization.json.* +import fr.acinq.lightning.utils.msat +import fr.acinq.phoenix.utils.Parser +import io.ktor.client.statement.HttpResponse +import io.ktor.client.statement.bodyAsText +import io.ktor.client.statement.request +import io.ktor.http.URLBuilder +import io.ktor.http.URLProtocol +import io.ktor.http.Url +import io.ktor.http.encodedPath +import io.ktor.http.isSecure +import io.ktor.http.isSuccess +import io.ktor.utils.io.charsets.Charsets +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.doubleOrNull +import kotlinx.serialization.json.jsonPrimitive +import kotlinx.serialization.json.long +import kotlinx.serialization.json.longOrNull /** * This class describes the various types of Lnurls supported by phoenix: diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlAuth.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlAuth.kt index 1ec287b5..d01565ba 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlAuth.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlAuth.kt @@ -16,13 +16,18 @@ package fr.acinq.phoenix.data.lnurl -import fr.acinq.bitcoin.* +import fr.acinq.bitcoin.ByteVector +import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoin.Crypto +import fr.acinq.bitcoin.DeterministicWallet +import fr.acinq.bitcoin.KeyPath +import fr.acinq.bitcoin.PrivateKey +import fr.acinq.bitcoin.PublicKey import fr.acinq.bitcoin.crypto.Digest import fr.acinq.bitcoin.crypto.Pack import fr.acinq.bitcoin.crypto.hmac import fr.acinq.lightning.crypto.LocalKeyManager -import fr.acinq.lightning.logging.debug -import io.ktor.http.* +import io.ktor.http.Url data class LnurlAuth( override val initialUrl: Url, diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlError.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlError.kt index 01cf748b..0f514eac 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlError.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlError.kt @@ -16,7 +16,7 @@ package fr.acinq.phoenix.data.lnurl -import io.ktor.http.* +import io.ktor.http.HttpStatusCode sealed class LnurlError(override val message: String? = null) : RuntimeException(message) { val details: String by lazy { "Lnurl error=${message ?: this::class.simpleName ?: "N/A"} in url=" } diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlPay.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlPay.kt index 23c097e4..d8256c54 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlPay.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlPay.kt @@ -23,8 +23,13 @@ import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.phoenix.data.lnurl.Lnurl.Companion.format import fr.acinq.phoenix.db.cloud.b64Decode -import io.ktor.http.* -import kotlinx.serialization.json.* +import io.ktor.http.Url +import kotlinx.serialization.json.JsonArray +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.jsonArray +import kotlinx.serialization.json.jsonObject +import kotlinx.serialization.json.jsonPrimitive sealed class LnurlPay : Lnurl.Qualified { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlWithdraw.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlWithdraw.kt index edca6f2f..2cced093 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlWithdraw.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/data/lnurl/LnurlWithdraw.kt @@ -17,7 +17,7 @@ package fr.acinq.phoenix.data.lnurl import fr.acinq.lightning.MilliSatoshi -import io.ktor.http.* +import io.ktor.http.Url data class LnurlWithdraw( override val initialUrl: Url, diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbHooks.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbHooks.kt index 09a4eb68..e82fbf8a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbHooks.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbHooks.kt @@ -2,7 +2,6 @@ package fr.acinq.phoenix.db import fr.acinq.lightning.utils.UUID import fr.acinq.phoenix.db.payments.CloudKitInterface -import fr.acinq.phoenix.db.sqldelight.AppDatabase import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase /** diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbInitHelper.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbInitHelper.kt index 231c985f..3924b514 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbInitHelper.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/DbInitHelper.kt @@ -32,7 +32,18 @@ import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.error import fr.acinq.lightning.utils.UUID import fr.acinq.phoenix.data.ContactInfo -import fr.acinq.phoenix.db.sqldelight.* +import fr.acinq.phoenix.db.sqldelight.ChannelsDatabase +import fr.acinq.phoenix.db.sqldelight.Cloudkit_payments_metadata +import fr.acinq.phoenix.db.sqldelight.Cloudkit_payments_queue +import fr.acinq.phoenix.db.sqldelight.Contacts +import fr.acinq.phoenix.db.sqldelight.Htlc_infos +import fr.acinq.phoenix.db.sqldelight.Link_lightning_outgoing_payment_parts +import fr.acinq.phoenix.db.sqldelight.Local_channels +import fr.acinq.phoenix.db.sqldelight.On_chain_txs +import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase +import fr.acinq.phoenix.db.sqldelight.Payments_incoming +import fr.acinq.phoenix.db.sqldelight.Payments_metadata +import fr.acinq.phoenix.db.sqldelight.Payments_outgoing import fr.acinq.phoenix.managers.PaymentMetadataQueue import fr.acinq.phoenix.utils.extensions.toByteArray diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteAppDb.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteAppDb.kt index 3eccd9eb..8b97c44d 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteAppDb.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteAppDb.kt @@ -11,7 +11,6 @@ import fr.acinq.phoenix.data.Notification import fr.acinq.phoenix.db.notifications.NotificationsQueries import fr.acinq.phoenix.db.sqldelight.AppDatabase import fr.acinq.phoenix.db.sqldelight.Exchange_rates -import kotlin.collections.List import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteChannelsDb.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteChannelsDb.kt index 1b6430e6..c94374df 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteChannelsDb.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqliteChannelsDb.kt @@ -22,7 +22,6 @@ import fr.acinq.lightning.CltvExpiry import fr.acinq.lightning.channel.states.PersistedChannelState import fr.acinq.lightning.db.ChannelsDb import fr.acinq.phoenix.db.sqldelight.ChannelsDatabase -import kotlin.collections.List import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqlitePaymentsDb.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqlitePaymentsDb.kt index ba49d437..ff6c1b94 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqlitePaymentsDb.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/SqlitePaymentsDb.kt @@ -20,22 +20,40 @@ import app.cash.sqldelight.coroutines.asFlow import app.cash.sqldelight.coroutines.mapToList import app.cash.sqldelight.db.SqlDriver import fr.acinq.bitcoin.TxId -import fr.acinq.lightning.db.* +import fr.acinq.lightning.db.AutomaticLiquidityPurchasePayment +import fr.acinq.lightning.db.Bolt11IncomingPayment +import fr.acinq.lightning.db.Bolt12IncomingPayment +import fr.acinq.lightning.db.IncomingPaymentsDb +import fr.acinq.lightning.db.LegacyPayToOpenIncomingPayment +import fr.acinq.lightning.db.LegacySwapInIncomingPayment +import fr.acinq.lightning.db.LightningIncomingPayment +import fr.acinq.lightning.db.LightningOutgoingPayment +import fr.acinq.lightning.db.ManualLiquidityPurchasePayment +import fr.acinq.lightning.db.NewChannelIncomingPayment +import fr.acinq.lightning.db.OnChainIncomingPayment +import fr.acinq.lightning.db.OnChainOutgoingPayment +import fr.acinq.lightning.db.OutgoingPaymentsDb +import fr.acinq.lightning.db.PaymentsDb +import fr.acinq.lightning.db.WalletPayment import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.error -import fr.acinq.lightning.utils.* +import fr.acinq.lightning.utils.UUID +import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.lightning.wire.LiquidityAds import fr.acinq.phoenix.data.ContactAddress import fr.acinq.phoenix.data.WalletPaymentInfo import fr.acinq.phoenix.data.WalletPaymentMetadata import fr.acinq.phoenix.db.contacts.SqliteContactsDb -import fr.acinq.phoenix.db.payments.* +import fr.acinq.phoenix.db.payments.LnurlBase +import fr.acinq.phoenix.db.payments.LnurlMetadata +import fr.acinq.phoenix.db.payments.LnurlSuccessAction import fr.acinq.phoenix.db.payments.PaymentsMetadataQueries +import fr.acinq.phoenix.db.payments.SqliteIncomingPaymentsDb +import fr.acinq.phoenix.db.payments.SqliteOutgoingPaymentsDb import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.managers.PaymentMetadataQueue import fr.acinq.phoenix.utils.extensions.incomingOfferMetadata import fr.acinq.phoenix.utils.extensions.outgoingInvoiceRequest -import kotlin.collections.List import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.Flow diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/CloudHelper.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/CloudHelper.kt index 822cd52e..5acf8d53 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/CloudHelper.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/CloudHelper.kt @@ -1,6 +1,7 @@ package fr.acinq.phoenix.db.cloud -import io.ktor.util.* +import io.ktor.util.decodeBase64Bytes +import io.ktor.util.encodeBase64 // Kotlin wants to encode a ByteArray like this: { // "fail": [123,34,112,97,121,109,101,110,116,82,101,113,117] diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudAsset.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudAsset.kt index 5e960e2b..2b725bdc 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudAsset.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudAsset.kt @@ -6,9 +6,13 @@ import fr.acinq.phoenix.db.payments.LnurlBase import fr.acinq.phoenix.db.payments.LnurlMetadata import fr.acinq.phoenix.db.payments.LnurlSuccessAction import fr.acinq.phoenix.db.payments.WalletPaymentMetadataRow -import kotlinx.serialization.* +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.ByteString import kotlinx.serialization.cbor.Cbor +import kotlinx.serialization.decodeFromByteArray +import kotlinx.serialization.encodeToByteArray enum class CloudAssetVersion(val value: Int) { // Initial version diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudData.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudData.kt index 4be86021..168f63ce 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudData.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/CloudData.kt @@ -8,7 +8,6 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.ByteString import kotlinx.serialization.decodeFromByteArray -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json // Architecture & Notes: diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/LightningOutgoingType.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/LightningOutgoingType.kt index 3268d386..3a24b3d7 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/LightningOutgoingType.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/cloud/payments/LightningOutgoingType.kt @@ -9,7 +9,6 @@ import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sat import fr.acinq.phoenix.db.cloud.UUIDSerializer -import fr.acinq.phoenix.db.cloud.cborSerializer import fr.acinq.phoenix.db.migrations.v11.types.OutgoingDetailsData import fr.acinq.phoenix.db.migrations.v11.types.OutgoingDetailsTypeVersion import fr.acinq.phoenix.db.migrations.v11.types.OutgoingStatusData @@ -18,7 +17,6 @@ import fr.acinq.phoenix.utils.migrations.LegacyChannelCloseHelper import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.ByteString -import kotlinx.serialization.decodeFromByteArray @Serializable @OptIn(ExperimentalSerializationApi::class) diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/contacts/ContactQueries.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/contacts/ContactQueries.kt index fcc82728..f100e83a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/contacts/ContactQueries.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/contacts/ContactQueries.kt @@ -9,8 +9,6 @@ import fr.acinq.phoenix.db.didDeleteContact import fr.acinq.phoenix.db.didSaveContact import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.map -import kotlinx.coroutines.withContext import kotlin.coroutines.CoroutineContext class ContactQueries(val database: PaymentsDatabase) { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/AfterVersion10.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/AfterVersion10.kt index d3b72bcc..31cdab32 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/AfterVersion10.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/AfterVersion10.kt @@ -18,10 +18,13 @@ package fr.acinq.phoenix.db.migrations.v10 import app.cash.sqldelight.db.AfterVersion import app.cash.sqldelight.db.QueryResult -import fr.acinq.lightning.db.* +import fr.acinq.lightning.db.LegacyPayToOpenIncomingPayment +import fr.acinq.lightning.db.LegacySwapInIncomingPayment +import fr.acinq.lightning.db.LightningIncomingPayment +import fr.acinq.lightning.db.OnChainIncomingPayment +import fr.acinq.lightning.serialization.payment.Serialization import fr.acinq.phoenix.db.migrations.v10.types.mapIncomingPaymentFromV10 import fr.acinq.phoenix.utils.extensions.deriveUUID -import fr.acinq.lightning.serialization.payment.Serialization import fr.acinq.phoenix.utils.extensions.toByteArray @OptIn(ExperimentalStdlibApi::class) diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/types/IncomingTypes.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/types/IncomingTypes.kt index 144c2a12..3dfc32e3 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/types/IncomingTypes.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v10/types/IncomingTypes.kt @@ -31,20 +31,27 @@ import fr.acinq.bitcoin.OutPoint import fr.acinq.bitcoin.Satoshi import fr.acinq.bitcoin.TxId import fr.acinq.lightning.MilliSatoshi -import fr.acinq.lightning.db.* +import fr.acinq.lightning.db.Bolt11IncomingPayment +import fr.acinq.lightning.db.Bolt12IncomingPayment +import fr.acinq.lightning.db.IncomingPayment +import fr.acinq.lightning.db.LegacyPayToOpenIncomingPayment +import fr.acinq.lightning.db.LegacySwapInIncomingPayment +import fr.acinq.lightning.db.LightningIncomingPayment +import fr.acinq.lightning.db.NewChannelIncomingPayment +import fr.acinq.lightning.db.SpliceInIncomingPayment import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.lightning.payment.OfferPaymentMetadata import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sat import fr.acinq.lightning.utils.sum -import fr.acinq.phoenix.db.migrations.v11.types.liquidityads.FundingFeeData import fr.acinq.phoenix.db.migrations.v10.json.ByteVector32Serializer import fr.acinq.phoenix.db.migrations.v10.json.ByteVectorSerializer import fr.acinq.phoenix.db.migrations.v10.json.MilliSatoshiSerializer import fr.acinq.phoenix.db.migrations.v10.json.OutpointSerializer import fr.acinq.phoenix.db.migrations.v10.json.SatoshiSerializer import fr.acinq.phoenix.db.migrations.v10.json.UUIDSerializer +import fr.acinq.phoenix.db.migrations.v11.types.liquidityads.FundingFeeData import fr.acinq.phoenix.db.migrations.v11.types.liquidityads.FundingFeeData.Companion.asCanonical import fr.acinq.phoenix.utils.extensions.deriveUUID import io.ktor.utils.io.charsets.Charsets diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/AfterVersion11.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/AfterVersion11.kt index e5389c03..9c38c679 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/AfterVersion11.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/AfterVersion11.kt @@ -17,7 +17,6 @@ package fr.acinq.phoenix.db.migrations.v11 import app.cash.sqldelight.EnumColumnAdapter -import app.cash.sqldelight.TransacterImpl import app.cash.sqldelight.db.AfterVersion import app.cash.sqldelight.db.QueryResult import fr.acinq.bitcoin.ByteVector32 diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/queries/LightningOutgoingQueries.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/queries/LightningOutgoingQueries.kt index 14f6d0f5..288db456 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/queries/LightningOutgoingQueries.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/queries/LightningOutgoingQueries.kt @@ -22,7 +22,10 @@ import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.ShortChannelId import fr.acinq.lightning.db.LightningOutgoingPayment import fr.acinq.lightning.db.OutgoingPayment -import fr.acinq.lightning.utils.* +import fr.acinq.lightning.utils.UUID +import fr.acinq.lightning.utils.msat +import fr.acinq.lightning.utils.sat +import fr.acinq.lightning.utils.toByteVector32 import fr.acinq.phoenix.db.migrations.v11.types.OutgoingDetailsData import fr.acinq.phoenix.db.migrations.v11.types.OutgoingDetailsTypeVersion import fr.acinq.phoenix.db.migrations.v11.types.OutgoingPartClosingInfoTypeVersion diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/OutgoingDetailsType.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/OutgoingDetailsType.kt index 882c392d..ddd9a5c1 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/OutgoingDetailsType.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/OutgoingDetailsType.kt @@ -29,6 +29,7 @@ import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.lightning.payment.Bolt12Invoice import fr.acinq.phoenix.db.migrations.v10.json.ByteVector32Serializer import fr.acinq.phoenix.db.migrations.v10.json.SatoshiSerializer +import fr.acinq.phoenix.db.migrations.v11.types.OutgoingDetailsData.Companion.deserializeLegacyClosingDetails import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/FundingFeeData.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/FundingFeeData.kt index 2310b8bb..3228f5ba 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/FundingFeeData.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/FundingFeeData.kt @@ -23,9 +23,9 @@ package fr.acinq.phoenix.db.migrations.v11.types.liquidityads import fr.acinq.bitcoin.TxId import fr.acinq.lightning.MilliSatoshi +import fr.acinq.lightning.wire.LiquidityAds import fr.acinq.phoenix.db.migrations.v10.json.MilliSatoshiSerializer import fr.acinq.phoenix.db.migrations.v10.json.TxIdSerializer -import fr.acinq.lightning.wire.LiquidityAds import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PaymentDetailsData.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PaymentDetailsData.kt index b26d5069..2cce7003 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PaymentDetailsData.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PaymentDetailsData.kt @@ -21,8 +21,8 @@ package fr.acinq.phoenix.db.migrations.v11.types.liquidityads import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.phoenix.db.migrations.v10.json.ByteVector32Serializer import fr.acinq.lightning.wire.LiquidityAds +import fr.acinq.phoenix.db.migrations.v10.json.ByteVector32Serializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PurchaseData.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PurchaseData.kt index 1df019c0..82763106 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PurchaseData.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/migrations/v11/types/liquidityads/PurchaseData.kt @@ -23,10 +23,10 @@ package fr.acinq.phoenix.db.migrations.v11.types.liquidityads import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.MilliSatoshi -import fr.acinq.phoenix.db.migrations.v11.types.liquidityads.PaymentDetailsData.Companion.asCanonical -import fr.acinq.phoenix.db.migrations.v10.json.SatoshiSerializer -import fr.acinq.phoenix.db.migrations.v10.json.MilliSatoshiSerializer import fr.acinq.lightning.wire.LiquidityAds +import fr.acinq.phoenix.db.migrations.v10.json.MilliSatoshiSerializer +import fr.acinq.phoenix.db.migrations.v10.json.SatoshiSerializer +import fr.acinq.phoenix.db.migrations.v11.types.liquidityads.PaymentDetailsData.Companion.asCanonical import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationDataType.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationDataType.kt index 34fe5492..2c0804ab 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationDataType.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationDataType.kt @@ -34,7 +34,6 @@ import io.ktor.utils.io.charsets.Charsets import io.ktor.utils.io.core.toByteArray import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json @Serializable diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationsQueries.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationsQueries.kt index 447fd221..49d8f75c 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationsQueries.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/notifications/NotificationsQueries.kt @@ -23,8 +23,8 @@ import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.data.Notification import fr.acinq.phoenix.data.WatchTowerOutcome -import fr.acinq.phoenix.db.sqldelight.AppDatabase import fr.acinq.phoenix.db.notifications.NotificationData.Companion.encodeAsDb +import fr.acinq.phoenix.db.sqldelight.AppDatabase import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO import kotlinx.coroutines.flow.Flow diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/MetadataTypes.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/MetadataTypes.kt index 436a4a8d..46ee4c2c 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/MetadataTypes.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/MetadataTypes.kt @@ -2,13 +2,19 @@ package fr.acinq.phoenix.db.payments import fr.acinq.bitcoin.ByteVector import fr.acinq.lightning.MilliSatoshi -import fr.acinq.phoenix.db.cloud.cborSerializer -import fr.acinq.phoenix.data.* +import fr.acinq.phoenix.data.ExchangeRate +import fr.acinq.phoenix.data.FiatCurrency +import fr.acinq.phoenix.data.LnurlPayMetadata +import fr.acinq.phoenix.data.WalletPaymentMetadata import fr.acinq.phoenix.data.lnurl.LnurlPay -import io.ktor.http.* -import kotlinx.serialization.* +import fr.acinq.phoenix.db.cloud.cborSerializer +import io.ktor.http.Url +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.Serializable import kotlinx.serialization.cbor.ByteString import kotlinx.serialization.cbor.Cbor +import kotlinx.serialization.decodeFromByteArray +import kotlinx.serialization.encodeToByteArray /** * Represents the data stored in the `payments_metadata` table, within columns: diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/PaymentsMetadataQueries.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/PaymentsMetadataQueries.kt index b477a7b7..688c0ac1 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/PaymentsMetadataQueries.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/PaymentsMetadataQueries.kt @@ -3,11 +3,12 @@ package fr.acinq.phoenix.db.payments import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.currentTimestampMillis -import fr.acinq.phoenix.data.* +import fr.acinq.phoenix.data.LnurlPayMetadata +import fr.acinq.phoenix.data.WalletPaymentMetadata import fr.acinq.phoenix.data.lnurl.LnurlPay -import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.db.didUpdateWalletPaymentMetadata -import io.ktor.http.* +import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase +import io.ktor.http.Url class PaymentsMetadataQueries(val database: PaymentsDatabase) { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteIncomingPaymentsDb.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteIncomingPaymentsDb.kt index 821b5fe0..f7016a98 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteIncomingPaymentsDb.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteIncomingPaymentsDb.kt @@ -25,9 +25,9 @@ import fr.acinq.lightning.db.LightningIncomingPayment import fr.acinq.lightning.db.OnChainIncomingPayment import fr.acinq.lightning.wire.LiquidityAds import fr.acinq.phoenix.data.WalletPaymentMetadata -import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.db.didDeleteWalletPayment import fr.acinq.phoenix.db.didSaveWalletPayment +import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.managers.PaymentMetadataQueue import fr.acinq.phoenix.utils.extensions.deriveUUID import kotlinx.coroutines.Dispatchers diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteOutgoingPaymentsDb.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteOutgoingPaymentsDb.kt index 0e516b57..c0c58e9a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteOutgoingPaymentsDb.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/db/payments/SqliteOutgoingPaymentsDb.kt @@ -23,8 +23,8 @@ import fr.acinq.lightning.db.OutgoingPayment import fr.acinq.lightning.db.OutgoingPaymentsDb import fr.acinq.lightning.utils.UUID import fr.acinq.phoenix.data.WalletPaymentMetadata -import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.db.didSaveWalletPayment +import fr.acinq.phoenix.db.sqldelight.PaymentsDatabase import fr.acinq.phoenix.managers.PaymentMetadataQueue import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/AppConnectionsDaemon.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/AppConnectionsDaemon.kt index e4bfd7a2..ff9f6987 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/AppConnectionsDaemon.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/AppConnectionsDaemon.kt @@ -3,26 +3,31 @@ package fr.acinq.phoenix.managers import fr.acinq.lightning.blockchain.electrum.ElectrumClient import fr.acinq.lightning.io.TcpSocket import fr.acinq.lightning.logging.LoggerFactory -import fr.acinq.lightning.utils.Connection -import fr.acinq.lightning.utils.ServerAddress -import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.phoenix.data.ElectrumConfig import fr.acinq.lightning.logging.debug import fr.acinq.lightning.logging.error import fr.acinq.lightning.logging.info +import fr.acinq.lightning.utils.Connection +import fr.acinq.lightning.utils.ServerAddress +import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.PhoenixGlobal +import fr.acinq.phoenix.data.ElectrumConfig import fr.acinq.phoenix.managers.global.NetworkState import fr.acinq.phoenix.utils.extensions.isOnion -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.cancelAndJoin import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.ReceiveChannel import kotlinx.coroutines.channels.consumeEach +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.launch import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/BalanceManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/BalanceManager.kt index c0cabe79..0c3d3d9a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/BalanceManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/BalanceManager.kt @@ -1,20 +1,20 @@ package fr.acinq.phoenix.managers import fr.acinq.bitcoin.Satoshi -import fr.acinq.lightning.* -import fr.acinq.lightning.blockchain.electrum.SwapInManager +import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.blockchain.electrum.WalletState import fr.acinq.lightning.blockchain.electrum.balance import fr.acinq.lightning.channel.states.ChannelState import fr.acinq.lightning.io.Peer -import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.utils.sat import fr.acinq.lightning.utils.sum import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.utils.extensions.localBalance import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.launch class BalanceManager( diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/ConnectionsManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/ConnectionsManager.kt index dbb7001e..5543169b 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/ConnectionsManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/ConnectionsManager.kt @@ -6,9 +6,16 @@ import fr.acinq.lightning.utils.Connection import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.managers.global.NetworkMonitor import fr.acinq.phoenix.managers.global.NetworkState -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* import fr.acinq.phoenix.utils.extensions.plus +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.stateIn data class Connections( val internet: Connection = Connection.CLOSED(reason = null), diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/LnurlManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/LnurlManager.kt index 4401adbf..9689991c 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/LnurlManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/LnurlManager.kt @@ -18,16 +18,21 @@ package fr.acinq.phoenix.managers import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.logging.LoggerFactory +import fr.acinq.lightning.logging.error import fr.acinq.lightning.payment.PaymentRequest import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.phoenix.data.lnurl.* -import fr.acinq.lightning.logging.error -import io.ktor.client.* -import io.ktor.client.plugins.contentnegotiation.* -import io.ktor.client.request.* -import io.ktor.client.statement.* -import io.ktor.http.* -import io.ktor.serialization.kotlinx.json.* +import fr.acinq.phoenix.data.lnurl.Lnurl +import fr.acinq.phoenix.data.lnurl.LnurlAuth +import fr.acinq.phoenix.data.lnurl.LnurlError +import fr.acinq.phoenix.data.lnurl.LnurlPay +import fr.acinq.phoenix.data.lnurl.LnurlWithdraw +import io.ktor.client.HttpClient +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.request.get +import io.ktor.client.statement.HttpResponse +import io.ktor.http.URLBuilder +import io.ktor.http.Url +import io.ktor.serialization.kotlinx.json.json import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Deferred import kotlinx.coroutines.MainScope diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NodeParamsManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NodeParamsManager.kt index c85f779c..71cb8eb9 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NodeParamsManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NodeParamsManager.kt @@ -16,26 +16,26 @@ package fr.acinq.phoenix.managers -import fr.acinq.bitcoin.ByteVector32 import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.PublicKey -import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.NodeParams import fr.acinq.lightning.NodeUri import fr.acinq.lightning.logging.LoggerFactory +import fr.acinq.lightning.logging.info import fr.acinq.lightning.payment.LiquidityPolicy import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sat -import fr.acinq.lightning.wire.LiquidityAds import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.lightning.logging.info import fr.acinq.phoenix.data.OfferData import fr.acinq.phoenixd.conf.LSP import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch -import kotlin.time.Duration.Companion.hours class NodeParamsManager( diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NotificationsManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NotificationsManager.kt index 96380540..4a5a140e 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NotificationsManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/NotificationsManager.kt @@ -18,13 +18,13 @@ package fr.acinq.phoenix.managers import fr.acinq.lightning.LiquidityEvents import fr.acinq.lightning.logging.LoggerFactory +import fr.acinq.lightning.logging.debug import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.data.Notification import fr.acinq.phoenix.data.WatchTowerOutcome import fr.acinq.phoenix.db.SqliteAppDb -import fr.acinq.lightning.logging.debug import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.flow.MutableStateFlow diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsManager.kt index d42d7116..8acf58fe 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsManager.kt @@ -10,10 +10,10 @@ import fr.acinq.lightning.db.WalletPayment import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.debug import fr.acinq.lightning.logging.info -import fr.acinq.lightning.utils.* +import fr.acinq.lightning.utils.UUID import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.phoenix.data.* -import fr.acinq.phoenix.db.SqlitePaymentsDb +import fr.acinq.phoenix.data.WalletPaymentInfo +import fr.acinq.phoenix.data.WalletPaymentMetadata import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.flow.MutableStateFlow diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsPageFetcher.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsPageFetcher.kt index 42aa0522..cf63719e 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsPageFetcher.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PaymentsPageFetcher.kt @@ -3,13 +3,17 @@ package fr.acinq.phoenix.managers import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.logging.debug import fr.acinq.phoenix.data.WalletPaymentInfo -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch import kotlin.time.Clock -import kotlin.time.Instant import kotlin.time.Duration.Companion.seconds import kotlin.time.ExperimentalTime +import kotlin.time.Instant data class PaymentsPage( /** The offset value you passed to the `subscribeToX()` function. */ diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PeerManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PeerManager.kt index 550ea39d..e0b0599a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PeerManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/PeerManager.kt @@ -24,20 +24,36 @@ import fr.acinq.lightning.channel.states.Offline import fr.acinq.lightning.channel.states.PersistedChannelState import fr.acinq.lightning.io.Peer import fr.acinq.lightning.logging.LoggerFactory +import fr.acinq.lightning.logging.debug +import fr.acinq.lightning.logging.error +import fr.acinq.lightning.logging.info import fr.acinq.lightning.payment.LiquidityPolicy import fr.acinq.lightning.utils.Connection import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sat import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.data.LocalChannelInfo +import fr.acinq.phoenix.managers.global.FeerateManager import fr.acinq.phoenix.utils.extensions.isTerminated import fr.acinq.phoenix.utils.extensions.nextTimeout -import fr.acinq.lightning.logging.debug -import fr.acinq.lightning.logging.error -import fr.acinq.lightning.logging.info -import fr.acinq.phoenix.managers.global.FeerateManager -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filterNotNull +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.mapLatest +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.launch class PeerManager( diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SeedManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SeedManager.kt index c10e9e32..2f21c603 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SeedManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SeedManager.kt @@ -8,6 +8,7 @@ import fr.acinq.phoenix.PhoenixGlobal import fr.acinq.phoenix.data.DecryptSeedResult import fr.acinq.phoenix.data.UserWallet import fr.acinq.phoenix.data.WalletId +import fr.acinq.phoenix.managers.SeedManager.loadAndDecrypt import fr.acinq.phoenix.security.EncryptedSeed import fr.acinq.phoenix.utils.extensions.gracefulMultiSeedDecryption import fr.acinq.phoenix.utils.extensions.gracefulSingleSeedDecryption diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SendManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SendManager.kt index bb6b170f..a0a8af8d 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SendManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/SendManager.kt @@ -1,14 +1,11 @@ package fr.acinq.phoenix.managers -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue import fr.acinq.bitcoin.BitcoinError import fr.acinq.bitcoin.Chain import fr.acinq.bitcoin.PrivateKey import fr.acinq.bitcoin.utils.Either import fr.acinq.lightning.Lightning import fr.acinq.lightning.MilliSatoshi -import fr.acinq.lightning.TrampolineFees import fr.acinq.lightning.db.LightningOutgoingPayment import fr.acinq.lightning.io.OfferInvoiceReceived import fr.acinq.lightning.io.OfferNotPaid diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/WalletManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/WalletManager.kt index e56f12ae..dd47f4b0 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/WalletManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/WalletManager.kt @@ -19,13 +19,21 @@ package fr.acinq.phoenix.managers import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair -import fr.acinq.bitcoin.* +import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoin.Chain +import fr.acinq.bitcoin.Crypto +import fr.acinq.bitcoin.KeyPath +import fr.acinq.bitcoin.MnemonicCode +import fr.acinq.bitcoin.PrivateKey +import fr.acinq.bitcoin.PublicKey +import fr.acinq.bitcoin.byteVector import fr.acinq.lightning.crypto.Bip84OnChainKeys import fr.acinq.lightning.crypto.LocalKeyManager import fr.acinq.lightning.crypto.div import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow class WalletManager( private val chain: Chain diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/CurrencyManager.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/CurrencyManager.kt index e0656b7a..69cd2c64 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/CurrencyManager.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/CurrencyManager.kt @@ -49,12 +49,11 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import kotlin.time.Clock -import kotlin.time.Instant -import kotlin.collections.plus import kotlin.time.Duration import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds import kotlin.time.ExperimentalTime +import kotlin.time.Instant /** * Manages the routines fetching the btc exchange rates. The frontend app must add fiat currencies they diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/NetworkMonitor.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/NetworkMonitor.kt index 4dbe8854..5c2fa653 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/NetworkMonitor.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/managers/global/NetworkMonitor.kt @@ -1,8 +1,8 @@ package fr.acinq.phoenix.managers.global +import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.phoenix.utils.PlatformContext import kotlinx.coroutines.flow.StateFlow -import fr.acinq.lightning.logging.LoggerFactory enum class NetworkState { Available, diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/DnsResolvers.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/DnsResolvers.kt index 89dc84a4..2fd2d8be 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/DnsResolvers.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/DnsResolvers.kt @@ -22,8 +22,6 @@ import io.ktor.client.plugins.contentnegotiation.ContentNegotiation import io.ktor.client.request.HttpRequestBuilder import io.ktor.client.request.get import io.ktor.client.statement.bodyAsText -import io.ktor.http.HttpHeaders -import io.ktor.http.headers import io.ktor.serialization.kotlinx.json.json import io.ktor.utils.io.charsets.Charsets import kotlinx.serialization.json.Json diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/Parser.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/Parser.kt index d4275596..4e023570 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/Parser.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/Parser.kt @@ -16,16 +16,23 @@ package fr.acinq.phoenix.utils -import fr.acinq.bitcoin.* +import fr.acinq.bitcoin.Bitcoin +import fr.acinq.bitcoin.BitcoinError +import fr.acinq.bitcoin.ByteVector +import fr.acinq.bitcoin.Chain +import fr.acinq.bitcoin.Script +import fr.acinq.bitcoin.byteVector import fr.acinq.bitcoin.utils.Either import fr.acinq.bitcoin.utils.Try import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.lightning.utils.sat import fr.acinq.lightning.wire.OfferTypes -import fr.acinq.phoenix.data.* +import fr.acinq.phoenix.data.BitcoinUri +import fr.acinq.phoenix.data.BitcoinUriError import fr.acinq.phoenix.data.lnurl.Lnurl -import io.ktor.http.* -import io.ktor.util.* +import io.ktor.http.ParametersBuilder +import io.ktor.http.Url +import io.ktor.util.filter object Parser { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/ChannelsImportHelper.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/ChannelsImportHelper.kt index fe8a69cc..fcc56d65 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/ChannelsImportHelper.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/ChannelsImportHelper.kt @@ -1,16 +1,6 @@ package fr.acinq.phoenix.utils.channels -import fr.acinq.bitcoin.ByteVector import fr.acinq.lightning.channel.states.PersistedChannelState -import fr.acinq.lightning.serialization.channel.Encryption.from -import fr.acinq.lightning.serialization.channel.Serialization -import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.lightning.logging.error -import fr.acinq.lightning.logging.info -import fr.acinq.phoenix.db.SqliteChannelsDb -import fr.acinq.secp256k1.Hex -import kotlinx.coroutines.flow.filterNotNull -import kotlinx.coroutines.flow.first object ChannelsImportHelper { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/SpendChannelAddressHelper.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/SpendChannelAddressHelper.kt index 2ddbc148..24dc35a9 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/SpendChannelAddressHelper.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/channels/SpendChannelAddressHelper.kt @@ -18,26 +18,8 @@ package fr.acinq.phoenix.utils.channels import fr.acinq.bitcoin.ByteVector import fr.acinq.bitcoin.ByteVector64 -import fr.acinq.bitcoin.Crypto import fr.acinq.bitcoin.PublicKey -import fr.acinq.bitcoin.Satoshi -import fr.acinq.bitcoin.SigHash -import fr.acinq.bitcoin.SigVersion -import fr.acinq.bitcoin.Script -import fr.acinq.bitcoin.Transaction import fr.acinq.bitcoin.TxId -import fr.acinq.bitcoin.byteVector -import fr.acinq.lightning.channel.states.ChannelStateWithCommitments -import fr.acinq.lightning.channel.states.PersistedChannelState -import fr.acinq.lightning.logging.error -import fr.acinq.lightning.serialization.channel.Encryption.from -import fr.acinq.lightning.serialization.channel.Serialization -import fr.acinq.lightning.transactions.Scripts -import fr.acinq.lightning.transactions.Transactions -import fr.acinq.phoenix.PhoenixBusiness -import fr.acinq.secp256k1.Hex -import kotlinx.coroutines.flow.filterNotNull -import kotlinx.coroutines.flow.first object SpendChannelAddressHelper { diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/converters/AmountFormatter.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/converters/AmountFormatter.kt index cd67e6f2..a4a69374 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/converters/AmountFormatter.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/converters/AmountFormatter.kt @@ -20,7 +20,10 @@ package fr.acinq.phoenix.utils.converters import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.utils.toMilliSatoshi -import fr.acinq.phoenix.data.* +import fr.acinq.phoenix.data.BitcoinUnit +import fr.acinq.phoenix.data.CurrencyUnit +import fr.acinq.phoenix.data.ExchangeRate +import fr.acinq.phoenix.data.FiatCurrency import fr.acinq.phoenix.utils.converters.AmountConverter.toFiat import fr.acinq.phoenix.utils.converters.AmountConverter.toUnit diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/ChannelExtensions.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/ChannelExtensions.kt index 2843d013..17bd0973 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/ChannelExtensions.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/ChannelExtensions.kt @@ -17,8 +17,23 @@ package fr.acinq.phoenix.utils.extensions import fr.acinq.lightning.MilliSatoshi -import fr.acinq.lightning.channel.* -import fr.acinq.lightning.channel.states.* +import fr.acinq.lightning.channel.Commitment +import fr.acinq.lightning.channel.states.Aborted +import fr.acinq.lightning.channel.states.ChannelState +import fr.acinq.lightning.channel.states.ChannelStateWithCommitments +import fr.acinq.lightning.channel.states.Closed +import fr.acinq.lightning.channel.states.Closing +import fr.acinq.lightning.channel.states.Negotiating +import fr.acinq.lightning.channel.states.Offline +import fr.acinq.lightning.channel.states.Syncing +import fr.acinq.lightning.channel.states.WaitForAcceptChannel +import fr.acinq.lightning.channel.states.WaitForChannelReady +import fr.acinq.lightning.channel.states.WaitForFundingConfirmed +import fr.acinq.lightning.channel.states.WaitForFundingCreated +import fr.acinq.lightning.channel.states.WaitForFundingSigned +import fr.acinq.lightning.channel.states.WaitForInit +import fr.acinq.lightning.channel.states.WaitForOpenChannel +import fr.acinq.lightning.channel.states.WaitForRemotePublishFutureCommitment import fr.acinq.lightning.utils.msat diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/PaymentRequestExtensions.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/PaymentRequestExtensions.kt index c40159ec..9e7e5515 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/PaymentRequestExtensions.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/PaymentRequestExtensions.kt @@ -16,7 +16,6 @@ package fr.acinq.phoenix.utils.extensions -import fr.acinq.lightning.Feature import fr.acinq.lightning.payment.Bolt11Invoice import fr.acinq.lightning.payment.Bolt12Invoice import fr.acinq.lightning.payment.OfferPaymentMetadata diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/TechnicalExtensions.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/TechnicalExtensions.kt index a6f151ec..69f29a7a 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/TechnicalExtensions.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/TechnicalExtensions.kt @@ -17,9 +17,6 @@ package fr.acinq.phoenix.utils.extensions import fr.acinq.phoenix.data.DecryptSeedResult -import kotlin.contracts.ExperimentalContracts -import kotlin.contracts.InvocationKind -import kotlin.contracts.contract expect inline fun gracefulSingleSeedDecryption(action: () -> DecryptSeedResult): DecryptSeedResult diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/WalletStateExtensions.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/WalletStateExtensions.kt index dc5b1d68..63056001 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/WalletStateExtensions.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/extensions/WalletStateExtensions.kt @@ -17,9 +17,7 @@ package fr.acinq.phoenix.utils.extensions import fr.acinq.lightning.SwapInParams -import fr.acinq.lightning.blockchain.electrum.FinalWallet import fr.acinq.lightning.blockchain.electrum.WalletState -import fr.acinq.lightning.utils.getValue import kotlin.math.ceil /** Number of confirmation during which a utxo is locked between the swap window closing and the refund delay. */ diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/migrations/IosMigrationHelper.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/migrations/IosMigrationHelper.kt index 2ecfc5db..5ffe81ff 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/migrations/IosMigrationHelper.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/migrations/IosMigrationHelper.kt @@ -16,25 +16,29 @@ package fr.acinq.phoenix.utils.migrations -import fr.acinq.bitcoin.ByteVector import fr.acinq.bitcoin.ByteVector32 import fr.acinq.bitcoin.TxId -import fr.acinq.bitcoin.byteVector -import fr.acinq.lightning.Feature import fr.acinq.lightning.MilliSatoshi import fr.acinq.lightning.blockchain.fee.FeeratePerKw import fr.acinq.lightning.channel.ChannelCommand -import fr.acinq.lightning.channel.states.* +import fr.acinq.lightning.channel.states.ChannelState +import fr.acinq.lightning.channel.states.ChannelStateWithCommitments +import fr.acinq.lightning.channel.states.Closed +import fr.acinq.lightning.channel.states.Closing +import fr.acinq.lightning.channel.states.Negotiating +import fr.acinq.lightning.channel.states.Offline +import fr.acinq.lightning.channel.states.ShuttingDown +import fr.acinq.lightning.channel.states.Syncing import fr.acinq.lightning.io.WrappedChannelCommand +import fr.acinq.lightning.logging.info +import fr.acinq.lightning.logging.warning import fr.acinq.lightning.utils.msat import fr.acinq.lightning.utils.sum import fr.acinq.phoenix.PhoenixBusiness import fr.acinq.phoenix.data.LocalChannelInfo +import fr.acinq.phoenix.managers.phoenixSwapInWallet import fr.acinq.phoenix.utils.Parser import fr.acinq.phoenix.utils.extensions.isBeingCreated -import fr.acinq.lightning.logging.info -import fr.acinq.lightning.logging.warning -import fr.acinq.phoenix.managers.phoenixSwapInWallet import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.flow.filterIsInstance import kotlinx.coroutines.flow.filterNotNull diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/GlobalPrefs.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/GlobalPrefs.kt index 9823ea8d..578e85c0 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/GlobalPrefs.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/GlobalPrefs.kt @@ -22,7 +22,6 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.emptyPreferences -import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.data.BaseWalletId diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefs.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefs.kt index 1b8995ca..f9e47577 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefs.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefs.kt @@ -17,7 +17,13 @@ package fr.acinq.phoenix.utils.preferences import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.* +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.core.booleanPreferencesKey +import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.emptyPreferences +import androidx.datastore.preferences.core.intPreferencesKey +import androidx.datastore.preferences.core.longPreferencesKey +import androidx.datastore.preferences.core.stringPreferencesKey import co.touchlab.kermit.Logger import fr.acinq.bitcoin.Satoshi import fr.acinq.lightning.CltvExpiryDelta @@ -40,7 +46,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.map import kotlinx.io.IOException -import kotlinx.serialization.* +import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlin.time.Duration import kotlin.time.Duration.Companion.minutes diff --git a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefsComposeExtensions.kt b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefsComposeExtensions.kt index a7b44d55..909de4db 100644 --- a/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefsComposeExtensions.kt +++ b/composeApp/src/commonMain/kotlin/fr/acinq/phoenix/utils/preferences/UserPrefsComposeExtensions.kt @@ -22,7 +22,6 @@ import androidx.compose.runtime.collectAsState import fr.acinq.phoenix.data.BitcoinUnit import fr.acinq.phoenix.data.FiatCurrency import fr.acinq.phoenix.data.PreferredFiatCurrencies -import fr.acinq.phoenix.managers.AppConfigurationManager import kotlinx.coroutines.flow.flowOf @Composable diff --git a/composeApp/src/iosMain/kotlin/at/torch/compose/ui/view/model/NavigationViewModel.ios.kt b/composeApp/src/iosMain/kotlin/at/torch/compose/ui/view/model/NavigationViewModel.ios.kt index 52752e66..91d03cf2 100644 --- a/composeApp/src/iosMain/kotlin/at/torch/compose/ui/view/model/NavigationViewModel.ios.kt +++ b/composeApp/src/iosMain/kotlin/at/torch/compose/ui/view/model/NavigationViewModel.ios.kt @@ -24,7 +24,6 @@ import kotlinx.coroutines.IO import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.launch -import kotlin.collections.plus actual fun updateBusinessActiveInUI(walletId: WalletId) { diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitContactsDb.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitContactsDb.kt index 86f67a4d..2bfa6238 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitContactsDb.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitContactsDb.kt @@ -5,9 +5,15 @@ import app.cash.sqldelight.coroutines.asFlow import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.data.ContactInfo -import kotlin.collections.List -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class CloudKitContactsDb( private val paymentsDb: SqlitePaymentsDb diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitDb.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitDb.kt index 5b00bc04..7d16617e 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitDb.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitDb.kt @@ -1,7 +1,8 @@ package fr.acinq.phoenix.db -import fr.acinq.phoenix.db.payments.* -import kotlinx.coroutines.* +import fr.acinq.phoenix.db.payments.CloudKitInterface +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.MainScope class CloudKitDb( appDb: SqliteAppDb, diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitPaymentsDb.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitPaymentsDb.kt index bb5ca697..438163ab 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitPaymentsDb.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/db/CloudKitPaymentsDb.kt @@ -2,15 +2,25 @@ package fr.acinq.phoenix.db import app.cash.sqldelight.Transacter import app.cash.sqldelight.coroutines.asFlow -import fr.acinq.lightning.db.* +import fr.acinq.lightning.db.IncomingPayment +import fr.acinq.lightning.db.OutgoingPayment +import fr.acinq.lightning.db.WalletPayment import fr.acinq.lightning.utils.UUID import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.data.WalletPaymentInfo import fr.acinq.phoenix.data.WalletPaymentMetadata -import fr.acinq.phoenix.db.payments.* -import kotlin.collections.List -import kotlinx.coroutines.* -import kotlinx.coroutines.flow.* +import fr.acinq.phoenix.db.payments.SqliteIncomingPaymentsDb +import fr.acinq.phoenix.db.payments.SqliteOutgoingPaymentsDb +import fr.acinq.phoenix.db.payments.WalletPaymentMetadataRow +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class CloudKitPaymentsDb( private val paymentsDb: SqlitePaymentsDb diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/ios/BusinessManager.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/ios/BusinessManager.kt index a9112af9..53e2f5f3 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/ios/BusinessManager.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/ios/BusinessManager.kt @@ -5,7 +5,6 @@ import com.machankura.compose.AppVersion import com.machankura.compose.ui.composable.widgets.wallet.WalletAvatars import fr.acinq.lightning.LiquidityEvents import fr.acinq.lightning.PaymentEvents -import fr.acinq.lightning.logging.LoggerFactory import fr.acinq.lightning.utils.Connection import fr.acinq.lightning.utils.currentTimestampMillis import fr.acinq.phoenix.BusinessMonitorJobs @@ -40,8 +39,6 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import platform.Foundation.NSBundle -import kotlin.time.Duration.Companion.hours object BusinessManager { private val log = Logger.withTag("BusinessManager") diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/CCCipher.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/CCCipher.kt index 2567867f..f383745f 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/CCCipher.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/CCCipher.kt @@ -1,8 +1,41 @@ package fr.acinq.phoenix.security -import kotlinx.cinterop.* -import platform.CoreCrypto.* -import platform.posix.* +import kotlinx.cinterop.ByteVar +import kotlinx.cinterop.CValuesRef +import kotlinx.cinterop.ExperimentalForeignApi +import kotlinx.cinterop.MemScope +import kotlinx.cinterop.addressOf +import kotlinx.cinterop.alloc +import kotlinx.cinterop.convert +import kotlinx.cinterop.memScoped +import kotlinx.cinterop.pin +import kotlinx.cinterop.ptr +import kotlinx.cinterop.refTo +import kotlinx.cinterop.value +import platform.CoreCrypto.CCAlgorithm +import platform.CoreCrypto.CCCryptorCreateWithMode +import platform.CoreCrypto.CCCryptorFinal +import platform.CoreCrypto.CCCryptorGetOutputLength +import platform.CoreCrypto.CCCryptorRefVar +import platform.CoreCrypto.CCCryptorRelease +import platform.CoreCrypto.CCCryptorStatus +import platform.CoreCrypto.CCCryptorUpdate +import platform.CoreCrypto.CCMode +import platform.CoreCrypto.CCOperation +import platform.CoreCrypto.CCPadding +import platform.CoreCrypto.ccPKCS7Padding +import platform.CoreCrypto.kCCAlgorithmAES +import platform.CoreCrypto.kCCAlignmentError +import platform.CoreCrypto.kCCBufferTooSmall +import platform.CoreCrypto.kCCDecodeError +import platform.CoreCrypto.kCCDecrypt +import platform.CoreCrypto.kCCEncrypt +import platform.CoreCrypto.kCCMemoryFailure +import platform.CoreCrypto.kCCModeCBC +import platform.CoreCrypto.kCCParamError +import platform.CoreCrypto.kCCSuccess +import platform.CoreCrypto.kCCUnimplemented +import platform.posix.size_tVar @OptIn(ExperimentalForeignApi::class) private val almostEmptyArrayPinned = ByteArray(1).pin() diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyChainHelper.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyChainHelper.kt index 46073031..c211bfee 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyChainHelper.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyChainHelper.kt @@ -2,10 +2,8 @@ package fr.acinq.phoenix.security import co.touchlab.kermit.Logger import com.machankura.compose.AppVersion -import fr.acinq.bitcoin.PrivateKey import fr.acinq.lightning.Lightning import kotlinx.cinterop.ExperimentalForeignApi - import kotlinx.cinterop.addressOf import kotlinx.cinterop.alloc import kotlinx.cinterop.allocArrayOf @@ -14,9 +12,6 @@ import kotlinx.cinterop.memScoped import kotlinx.cinterop.ptr import kotlinx.cinterop.usePinned import kotlinx.cinterop.value -import platform.CoreCrypto.ccPKCS7Padding -import platform.CoreCrypto.kCCAlgorithmAES -import platform.CoreCrypto.kCCModeCBC import platform.CoreFoundation.CFAutorelease import platform.CoreFoundation.CFDictionaryAddValue import platform.CoreFoundation.CFDictionaryCreateMutable diff --git a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyStoreFunctions.ios.kt b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyStoreFunctions.ios.kt index d579f0a2..0d4fba13 100644 --- a/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyStoreFunctions.ios.kt +++ b/composeApp/src/iosMain/kotlin/fr/acinq/phoenix/security/KeyStoreFunctions.ios.kt @@ -1,7 +1,6 @@ package fr.acinq.phoenix.security import fr.acinq.lightning.Lightning -import platform.CoreCrypto.CCPseudoRandomAlgorithmVar actual fun keyStoreDecryption( keyName: String,