From dab2b00289117608908143bc542a2e72926c7932 Mon Sep 17 00:00:00 2001 From: Jason Date: Tue, 23 Jul 2024 21:25:34 +0200 Subject: [PATCH 1/3] feat: unit test for ldk node sqlite table creation --- Bitkit.xcodeproj/project.pbxproj | 43 +++++++++++ .../xcshareddata/swiftpm/Package.resolved | 11 ++- .../UserInterfaceState.xcuserstate | Bin 73796 -> 104268 bytes .../xcschemes/xcschememanagement.plist | 21 ++++++ Bitkit/BitkitApp.swift | 23 +++--- Bitkit/Constants/Env.swift | 29 ++++++-- Bitkit/ContentView.swift | 15 ++-- Bitkit/Services/LightningService.swift | 2 +- Bitkit/Services/MigrationsService.swift | 68 ++++++++++++++++++ Bitkit/Services/OnChainService.swift | 4 +- Bitkit/Services/ServiceQueue.swift | 6 +- Bitkit/Utilities/Errors.swift | 8 ++- Bitkit/ViewModels/LightningViewModel.swift | 2 +- Bitkit/ViewModels/OnChainViewModel.swift | 2 +- BitkitNotification/NotificationService.swift | 2 +- BitkitTests/LdkMigration.swift | 45 ++++++++++++ 16 files changed, 246 insertions(+), 35 deletions(-) create mode 100644 Bitkit/Services/MigrationsService.swift create mode 100644 BitkitTests/LdkMigration.swift diff --git a/Bitkit.xcodeproj/project.pbxproj b/Bitkit.xcodeproj/project.pbxproj index c6d63955..78617ba0 100644 --- a/Bitkit.xcodeproj/project.pbxproj +++ b/Bitkit.xcodeproj/project.pbxproj @@ -15,12 +15,24 @@ 961058EB2C35793000E1F1D8 /* WalletNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DC2C32EAA8004A92FC /* WalletNetwork.swift */; }; 961058EE2C35798C00E1F1D8 /* LDKNode in Frameworks */ = {isa = PBXBuildFile; productRef = 961058ED2C35798C00E1F1D8 /* LDKNode */; }; 961058F02C35799400E1F1D8 /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = 961058EF2C35799400E1F1D8 /* BitcoinDevKit */; }; + 961301882C50202A00878183 /* MigrationsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 961301872C50202A00878183 /* MigrationsService.swift */; }; + 9613018C2C5022D700878183 /* SQLite in Frameworks */ = {isa = PBXBuildFile; productRef = 9613018B2C5022D700878183 /* SQLite */; }; + 9613018E2C50288900878183 /* LdkMigration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9613018D2C50288900878183 /* LdkMigration.swift */; }; + 9613018F2C5028CC00878183 /* MigrationsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 961301872C50202A00878183 /* MigrationsService.swift */; }; 9637E6D32C32CE79004A92FC /* Env.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D22C32CE79004A92FC /* Env.swift */; }; 9637E6D52C32D811004A92FC /* OnChainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D42C32D811004A92FC /* OnChainService.swift */; }; 9637E6D82C32D8A7004A92FC /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = 9637E6D72C32D8A7004A92FC /* BitcoinDevKit */; }; 9637E6DA2C32E573004A92FC /* OnChainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D92C32E573004A92FC /* OnChainViewModel.swift */; }; 9637E6DD2C32EAA8004A92FC /* WalletNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DC2C32EAA8004A92FC /* WalletNetwork.swift */; }; 9637E6DF2C32ED7B004A92FC /* LnPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DE2C32ED7B004A92FC /* LnPeer.swift */; }; + 966DE6612C502C7E00A7B0EF /* Env.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D22C32CE79004A92FC /* Env.swift */; }; + 966DE6622C502C8600A7B0EF /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96F261352C369D2400167439 /* Errors.swift */; }; + 966DE6632C502C8600A7B0EF /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96FE5A1A2C46A4DD00860ADC /* Logger.swift */; }; + 966DE6642C502CA300A7B0EF /* ServiceQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96F261312C369C2100167439 /* ServiceQueue.swift */; }; + 966DE6652C502CAD00A7B0EF /* WalletNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DC2C32EAA8004A92FC /* WalletNetwork.swift */; }; + 966DE6662C502CBD00A7B0EF /* LnPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DE2C32ED7B004A92FC /* LnPeer.swift */; }; + 966DE6672C50372600A7B0EF /* LightningService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B12A022C2EC65000DD07B0 /* LightningService.swift */; }; + 966DE6682C50372900A7B0EF /* OnChainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D42C32D811004A92FC /* OnChainService.swift */; }; 96B129FD2C2EC05D00DD07B0 /* LDKNode in Frameworks */ = {isa = PBXBuildFile; productRef = 96B129FC2C2EC05D00DD07B0 /* LDKNode */; }; 96B12A002C2EC37B00DD07B0 /* LightningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B129FF2C2EC37B00DD07B0 /* LightningViewModel.swift */; }; 96B12A032C2EC65000DD07B0 /* LightningService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B12A022C2EC65000DD07B0 /* LightningService.swift */; }; @@ -82,6 +94,8 @@ 961058DC2C355B5500E1F1D8 /* BitkitNotification.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = BitkitNotification.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 961058DE2C355B5500E1F1D8 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; 961058E02C355B5500E1F1D8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 961301872C50202A00878183 /* MigrationsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationsService.swift; sourceTree = ""; }; + 9613018D2C50288900878183 /* LdkMigration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LdkMigration.swift; sourceTree = ""; }; 9637E6D22C32CE79004A92FC /* Env.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Env.swift; sourceTree = ""; }; 9637E6D42C32D811004A92FC /* OnChainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnChainService.swift; sourceTree = ""; }; 9637E6D92C32E573004A92FC /* OnChainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnChainViewModel.swift; sourceTree = ""; }; @@ -121,6 +135,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9613018C2C5022D700878183 /* SQLite in Frameworks */, 9637E6D82C32D8A7004A92FC /* BitcoinDevKit in Frameworks */, 96B129FD2C2EC05D00DD07B0 /* LDKNode in Frameworks */, ); @@ -198,6 +213,7 @@ children = ( 96B12A022C2EC65000DD07B0 /* LightningService.swift */, 9637E6D42C32D811004A92FC /* OnChainService.swift */, + 961301872C50202A00878183 /* MigrationsService.swift */, 96F261312C369C2100167439 /* ServiceQueue.swift */, ); path = Services; @@ -266,6 +282,7 @@ isa = PBXGroup; children = ( 96FE1F762C2DE6AC006D0C8B /* BitkitTests.swift */, + 9613018D2C50288900878183 /* LdkMigration.swift */, ); path = BitkitTests; sourceTree = ""; @@ -329,6 +346,7 @@ packageProductDependencies = ( 96B129FC2C2EC05D00DD07B0 /* LDKNode */, 9637E6D72C32D8A7004A92FC /* BitcoinDevKit */, + 9613018B2C5022D700878183 /* SQLite */, ); productName = Bitkit; productReference = 96FE1F612C2DE6AA006D0C8B /* Bitkit.app */; @@ -408,6 +426,7 @@ packageReferences = ( 96B129FB2C2EC05D00DD07B0 /* XCRemoteSwiftPackageReference "ldk-node" */, 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */, + 961301892C50215500878183 /* XCRemoteSwiftPackageReference "SQLite.swift" */, ); productRefGroup = 96FE1F622C2DE6AA006D0C8B /* Products */; projectDirPath = ""; @@ -476,6 +495,7 @@ files = ( 9637E6D32C32CE79004A92FC /* Env.swift in Sources */, 96FE5A192C46594500860ADC /* LogView.swift in Sources */, + 961301882C50202A00878183 /* MigrationsService.swift in Sources */, 96B12A002C2EC37B00DD07B0 /* LightningViewModel.swift in Sources */, 9637E6DD2C32EAA8004A92FC /* WalletNetwork.swift in Sources */, 96F261362C369D2400167439 /* Errors.swift in Sources */, @@ -494,7 +514,17 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 966DE6622C502C8600A7B0EF /* Errors.swift in Sources */, + 966DE6652C502CAD00A7B0EF /* WalletNetwork.swift in Sources */, + 966DE6672C50372600A7B0EF /* LightningService.swift in Sources */, + 966DE6632C502C8600A7B0EF /* Logger.swift in Sources */, + 9613018E2C50288900878183 /* LdkMigration.swift in Sources */, + 966DE6662C502CBD00A7B0EF /* LnPeer.swift in Sources */, + 966DE6612C502C7E00A7B0EF /* Env.swift in Sources */, + 9613018F2C5028CC00878183 /* MigrationsService.swift in Sources */, + 966DE6642C502CA300A7B0EF /* ServiceQueue.swift in Sources */, 96FE1F772C2DE6AC006D0C8B /* BitkitTests.swift in Sources */, + 966DE6682C50372900A7B0EF /* OnChainService.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -922,6 +952,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 961301892C50215500878183 /* XCRemoteSwiftPackageReference "SQLite.swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/stephencelis/SQLite.swift.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.15.3; + }; + }; 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/bitcoindevkit/bdk-swift"; @@ -951,6 +989,11 @@ package = 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */; productName = BitcoinDevKit; }; + 9613018B2C5022D700878183 /* SQLite */ = { + isa = XCSwiftPackageProductDependency; + package = 961301892C50215500878183 /* XCRemoteSwiftPackageReference "SQLite.swift" */; + productName = SQLite; + }; 9637E6D72C32D8A7004A92FC /* BitcoinDevKit */ = { isa = XCSwiftPackageProductDependency; package = 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */; diff --git a/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 6090409f..94254e61 100644 --- a/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "957b506793f070febdbc6a14c01a0fcfc0c18f7f437da5a1d36c9627c119b759", + "originHash" : "50a59acde9afec0b94afb6261fc906e5b5c8d6262ecc90f6afe8978dc903ea8c", "pins" : [ { "identity" : "bdk-swift", @@ -18,6 +18,15 @@ "branch" : "main", "revision" : "66fec694f2b1de81dcb3d40073698a03dfe25522" } + }, + { + "identity" : "sqlite.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/stephencelis/SQLite.swift.git", + "state" : { + "revision" : "a95fc6df17d108bd99210db5e8a9bac90fe984b8", + "version" : "0.15.3" + } } ], "version" : 3 diff --git a/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate b/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate index cbdf6c87a55d863206b95d20c6e7ace8af1ad161..09046b203b876bb0cd40222efb054aa00a757f47 100644 GIT binary patch literal 104268 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 diff --git a/Bitkit.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist b/Bitkit.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist index 1f42bbf1..fbe57dc5 100644 --- a/Bitkit.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Bitkit.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist @@ -14,6 +14,27 @@ orderHint 1 + SQLite (Playground) 1.xcscheme + + isShown + + orderHint + 3 + + SQLite (Playground) 2.xcscheme + + isShown + + orderHint + 4 + + SQLite (Playground).xcscheme + + isShown + + orderHint + 2 + SuppressBuildableAutocreation diff --git a/Bitkit/BitkitApp.swift b/Bitkit/BitkitApp.swift index 83cd449c..b4cc52b6 100644 --- a/Bitkit/BitkitApp.swift +++ b/Bitkit/BitkitApp.swift @@ -70,17 +70,22 @@ struct BitkitApp: App { var body: some Scene { WindowGroup { - ContentView() - .onAppear { - //TODO move this elsewhere - requestPushNotificationPermision { (granted, error) in - if granted { - Logger.info("Push notification permission granted") - } else { - Logger.warn("Push notification permission denied") + if Env.isUnitTest { + Text("Running unit tests...") + } else { + ContentView() + .onAppear { + //TODO move this elsewhere + requestPushNotificationPermision { (granted, error) in + if granted { + Logger.info("Push notification permission granted") + } else { + Logger.warn("Push notification permission denied") + } } } - } + } + } } } diff --git a/Bitkit/Constants/Env.swift b/Bitkit/Constants/Env.swift index 4ef40052..9a5fd579 100644 --- a/Bitkit/Constants/Env.swift +++ b/Bitkit/Constants/Env.swift @@ -31,9 +31,9 @@ struct Env { case .regtest: //cargo run --release --bin electrs -- -vvv --jsonrpc-import --daemon-rpc-addr 127.0.0.1:18443 --cookie polaruser:polarpass // return "https://jaybird-logical-sadly.ngrok-free.app" -// return "http://127.0.0.1:3000" + return "http://127.0.0.1:3000" - return "http://192.168.0.106:3000" +// return "http://192.168.0.106:3000" case .bitcoin: fatalError("Bitcoin network not implemented") case .testnet: @@ -49,15 +49,30 @@ struct Env { fatalError("Could not find documents directory") } + if isUnitTest { + return documentsDirectory.appendingPathComponent("unit-tests") + } + return documentsDirectory } static var ldkStorage: URL { - let storageDirPath = appStorageUrl.appendingPathComponent("ldk") - switch network { case .regtest: - return storageDirPath.appendingPathComponent("regtest") + return appStorageUrl.appendingPathComponent("regtest").appendingPathComponent("ldk") + case .bitcoin: + fatalError("Bitcoin network not implemented") + case .testnet: + fatalError("Testnet network not implemented") + case .signet: + fatalError("Signet network not implemented") + } + } + + static var bdkStorage: URL { + switch network { + case .regtest: + return appStorageUrl.appendingPathComponent("regtest").appendingPathComponent("bdk") case .bitcoin: fatalError("Bitcoin network not implemented") case .testnet: @@ -84,7 +99,7 @@ struct Env { switch network { case .regtest: return [ - .init(nodeId: "03e26fdad23b9e17f6a6b1dd0a019c6fcd9e778a1c2af6ae62a0951c8352efbbc3", address: "192.168.0.106:9735") +// .init(nodeId: "03e26fdad23b9e17f6a6b1dd0a019c6fcd9e778a1c2af6ae62a0951c8352efbbc3", address: "192.168.0.106:9735") // .init(nodeId: "0218ab1da83a4768e154fada54deb5d835199aad116c4212e6844d0dce0f82cab1", address: "192.168.0.106:9737"), // .init(nodeId: "021de6ad59a78caf8f376cbd022e8c6ede2a1ef0a4fa035174e8b9c25ad5866584", address: "192.168.0.106:9738") ] @@ -96,4 +111,6 @@ struct Env { return [] } } + + static let testMnemonic = "pool curve feature leader elite dilemma exile toast smile couch crane public" } diff --git a/Bitkit/ContentView.swift b/Bitkit/ContentView.swift index ba274d41..77bcae8c 100644 --- a/Bitkit/ContentView.swift +++ b/Bitkit/ContentView.swift @@ -149,23 +149,20 @@ struct ContentView: View { .sheet(isPresented: $showLogs) { LogView() } - .onAppear { + .onAppear { Logger.debug("App appeared, spinning up services...") Task { do { + try? await MigrationsService.shared.migrateAll() + + Logger.debug("SKIPPING OTHER SERVICES") try await lnViewModel.start() try await lnViewModel.sync() - } catch { - Logger.error(error, context: "Failed to start LN") - } - } - - Task { - do { + try await onChainViewModel.start() try await onChainViewModel.sync() } catch { - Logger.error(error, context: "Failed to start on chain") + Logger.error(error, context: "Failed to start wallet services") } } } diff --git a/Bitkit/Services/LightningService.swift b/Bitkit/Services/LightningService.swift index 00de0534..77cfc907 100644 --- a/Bitkit/Services/LightningService.swift +++ b/Bitkit/Services/LightningService.swift @@ -13,7 +13,7 @@ import LDKNode class LightningService { private var node: Node? - static var shared: LightningService = LightningService() + static var shared = LightningService() private init() {} diff --git a/Bitkit/Services/MigrationsService.swift b/Bitkit/Services/MigrationsService.swift new file mode 100644 index 00000000..aa4eca45 --- /dev/null +++ b/Bitkit/Services/MigrationsService.swift @@ -0,0 +1,68 @@ +// +// MigrationsService.swift +// Bitkit +// +// Created by Jason van den Berg on 2024/07/23. +// + +import Foundation +import SQLite + +class MigrationsService { + static var shared = MigrationsService() + + private init() {} + + func migrateAll() async throws { + Logger.debug("Handling all migrations.") + try await ServiceQueue.background(.migration) { + try self.ldkToLdkNode() + } + } +} + +//MARK: Migrations for RN Bitkit to Swift Bitkit +extension MigrationsService { + func ldkToLdkNode() throws { + Logger.info("Migrating LDK to LDKNode") + let storagePath = Env.ldkStorage.path + let sqlFilePath = Env.ldkStorage.appendingPathComponent("ldk_node_data.sqlite").path + + //Create path if doesn't exist + let fileManager = FileManager.default + var isDir: ObjCBool = true + if !fileManager.fileExists(atPath: storagePath, isDirectory: &isDir) { + try fileManager.createDirectory(atPath: storagePath, withIntermediateDirectories: true, attributes: nil) + Logger.debug("Directory created at path: \(storagePath)") + } + + Logger.debug(sqlFilePath, context: "SQLIte file path") + + //Can't migrate if data currently exists + guard !fileManager.fileExists(atPath: sqlFilePath) else { + throw AppError(serviceError: .ldkNodeSqliteAlreadyExists) + } + + let db = try Connection(sqlFilePath) + + let table = Table("ldk_node_data") + + let pn = Expression("primary_namespace") + let sn = Expression("secondary_namespace") + let key = Expression("key") + let value = Expression("value") + + try db.run(table.create { t in + t.column(pn, primaryKey: true) + t.column(sn) + t.column(key) + t.column(value) + }) + + // let entries = try db.prepare(table) + + // for entry in entries { + // Logger.debug(entry.get("key")) + // } + } +} diff --git a/Bitkit/Services/OnChainService.swift b/Bitkit/Services/OnChainService.swift index 615585bb..f772e652 100644 --- a/Bitkit/Services/OnChainService.swift +++ b/Bitkit/Services/OnChainService.swift @@ -12,7 +12,7 @@ class OnChainService { private var wallet: Wallet? private var blockchainConfig: BlockchainConfig? - static var shared: OnChainService = OnChainService() + static var shared = OnChainService() private init() {} @@ -59,7 +59,7 @@ class OnChainService { descriptor: descriptor, changeDescriptor: changeDescriptor, network: Env.network.bdkNetwork, - databaseConfig: .memory //TODO use sqlite + databaseConfig: .sled(config: .init(path: Env.bdkStorage.path, treeName: "")) ) } diff --git a/Bitkit/Services/ServiceQueue.swift b/Bitkit/Services/ServiceQueue.swift index cc734ff4..ee372623 100644 --- a/Bitkit/Services/ServiceQueue.swift +++ b/Bitkit/Services/ServiceQueue.swift @@ -11,12 +11,14 @@ import Foundation class ServiceQueue { private static let ldkQueue = DispatchQueue(label: "ldk-queue", qos: .utility) private static let bdkQueue = DispatchQueue(label: "bdk-queue", qos: .utility) - + private static let migrationQueue = DispatchQueue(label: "migration-queue", qos: .utility) + private init() {} enum ServiceTypes { case ldk case bdk + case migration var queue: DispatchQueue { switch self { @@ -24,6 +26,8 @@ class ServiceQueue { return ServiceQueue.ldkQueue case .bdk: return ServiceQueue.bdkQueue + case .migration: + return ServiceQueue.migrationQueue } } } diff --git a/Bitkit/Utilities/Errors.swift b/Bitkit/Utilities/Errors.swift index 3effd0b6..7845f3ab 100644 --- a/Bitkit/Utilities/Errors.swift +++ b/Bitkit/Utilities/Errors.swift @@ -12,6 +12,7 @@ import BitcoinDevKit enum CustomServiceError: Error { case nodeNotStarted case onchainWalletNotCreated + case ldkNodeSqliteAlreadyExists } /// Translates LDK and BDK error messages into translated messages that can be displayed to end users @@ -41,14 +42,12 @@ struct AppError: LocalizedError { return } - self.init(message: "Unknown error", debugMessage: error.localizedDescription) + self.init(message: "Error", debugMessage: error.localizedDescription) } init(message: String, debugMessage: String?) { self.message = message self.debugMessage = debugMessage - - Logger.error("\(message) [\(debugMessage ?? "")]", context: "generic app error") } init(serviceError: CustomServiceError) { @@ -59,6 +58,9 @@ struct AppError: LocalizedError { case .onchainWalletNotCreated: message = "Onchain wallet not created" debugMessage = nil + case .ldkNodeSqliteAlreadyExists: + message = "LDK-node SQLite file already exists" + debugMessage = nil } Logger.error("\(message) [\(debugMessage ?? "")]", context: "service error") diff --git a/Bitkit/ViewModels/LightningViewModel.swift b/Bitkit/ViewModels/LightningViewModel.swift index 00a7b04e..270f4942 100644 --- a/Bitkit/ViewModels/LightningViewModel.swift +++ b/Bitkit/ViewModels/LightningViewModel.swift @@ -19,7 +19,7 @@ class LightningViewModel: ObservableObject { @Published var payments: [PaymentDetails]? func start() async throws { - let mnemonic = "always coconut smooth scatter steel web version exist broken motion damage board trap dinosaur include alone dust flag paddle give divert journey garden bench" // = generateEntropyMnemonic() + let mnemonic = Env.testMnemonic // = generateEntropyMnemonic() let passphrase: String? = nil syncState() diff --git a/Bitkit/ViewModels/OnChainViewModel.swift b/Bitkit/ViewModels/OnChainViewModel.swift index cfa6a06b..19d96d26 100644 --- a/Bitkit/ViewModels/OnChainViewModel.swift +++ b/Bitkit/ViewModels/OnChainViewModel.swift @@ -15,7 +15,7 @@ class OnChainViewModel: ObservableObject { @Published var address: String? func start() async throws { - let mnemonic = "always coconut smooth scatter steel web version exist broken motion damage board trap dinosaur include alone dust flag paddle give divert journey garden bench" // = generateEntropyMnemonic() + let mnemonic = Env.testMnemonic // = generateEntropyMnemonic() let passphrase: String? = nil try OnChainService.shared.setup() diff --git a/BitkitNotification/NotificationService.swift b/BitkitNotification/NotificationService.swift index c703a4a9..7efff6bb 100644 --- a/BitkitNotification/NotificationService.swift +++ b/BitkitNotification/NotificationService.swift @@ -19,7 +19,7 @@ class NotificationService: UNNotificationServiceExtension { Task { do { - let mnemonic = "always coconut smooth scatter steel web version exist broken motion damage board trap dinosaur include alone dust flag paddle give divert journey garden bench" // = generateEntropyMnemonic() + let mnemonic = Env.testMnemonic // = generateEntropyMnemonic() let passphrase: String? = nil try await LightningService.shared.setup(mnemonic: mnemonic, passphrase: passphrase) diff --git a/BitkitTests/LdkMigration.swift b/BitkitTests/LdkMigration.swift new file mode 100644 index 00000000..a377d723 --- /dev/null +++ b/BitkitTests/LdkMigration.swift @@ -0,0 +1,45 @@ +// +// LdkMigration.swift +// BitkitTests +// +// Created by Jason van den Berg on 2024/07/23. +// + +import XCTest + +final class LdkMigration: XCTestCase { + + override func setUpWithError() throws { + try? FileManager.default.removeItem(at: Env.appStorageUrl) //Removes 'unit-test' directory + } + + override func tearDownWithError() throws { + } + + func testLdkToLdkNode() async throws { + try MigrationsService.shared.ldkToLdkNode() + + sleep(2) + + try await LightningService.shared.setup(mnemonic: Env.testMnemonic, passphrase: nil) + try await LightningService.shared.start() + + XCTAssertEqual(LightningService.shared.nodeId, "02cd08b7b375e4263849121f9f0ffb2732a0b88d0fb74487575ac539b374f45a55") + + sleep(10) + let channels = LightningService.shared.channels +// XCTAssertEqual(channels?.count, 1) + + try await LightningService.shared.stop() + + sleep(5) + //TODO spin up LDK and query channel monitors + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } +} From 387c1ce5050bfb414ab5074b1427a150ca13e0e0 Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 24 Jul 2024 15:57:17 +0200 Subject: [PATCH 2/3] feat: use ldk to read monitor and derive funding_tx and index --- Bitkit.xcodeproj/project.pbxproj | 43 ++++++++++ .../xcshareddata/swiftpm/Package.resolved | 11 ++- .../UserInterfaceState.xcuserstate | Bin 104268 -> 117941 bytes Bitkit/Constants/Env.swift | 4 +- Bitkit/ContentView.swift | 3 - Bitkit/Extensions/HexBytes.swift | 28 +++++++ Bitkit/Services/LightningService.swift | 1 + Bitkit/Services/MigrationsService.swift | 74 ++++++++++++++---- BitkitTests/LdkMigration.swift | 44 +++++++++-- ...5929cd2163d2c53d36bb40b517d7acc44d1630.bin | Bin 0 -> 4780 bytes BitkitTests/ldk-backup/channel_manager.bin | Bin 0 -> 3569 bytes BitkitTests/ldk-backup/seed.bin | 1 + 12 files changed, 181 insertions(+), 28 deletions(-) create mode 100644 Bitkit/Extensions/HexBytes.swift create mode 100644 BitkitTests/ldk-backup/adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin create mode 100644 BitkitTests/ldk-backup/channel_manager.bin create mode 100644 BitkitTests/ldk-backup/seed.bin diff --git a/Bitkit.xcodeproj/project.pbxproj b/Bitkit.xcodeproj/project.pbxproj index 78617ba0..edaca895 100644 --- a/Bitkit.xcodeproj/project.pbxproj +++ b/Bitkit.xcodeproj/project.pbxproj @@ -33,6 +33,12 @@ 966DE6662C502CBD00A7B0EF /* LnPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6DE2C32ED7B004A92FC /* LnPeer.swift */; }; 966DE6672C50372600A7B0EF /* LightningService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B12A022C2EC65000DD07B0 /* LightningService.swift */; }; 966DE6682C50372900A7B0EF /* OnChainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9637E6D42C32D811004A92FC /* OnChainService.swift */; }; + 966DE66B2C50FA6A00A7B0EF /* channel_manager.bin in Resources */ = {isa = PBXBuildFile; fileRef = 966DE66A2C50FA6A00A7B0EF /* channel_manager.bin */; }; + 966DE66D2C50FA7600A7B0EF /* adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin in Resources */ = {isa = PBXBuildFile; fileRef = 966DE66C2C50FA7600A7B0EF /* adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin */; }; + 966DE6702C51210000A7B0EF /* LightningDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = 966DE66F2C51210000A7B0EF /* LightningDevKit */; }; + 966DE6722C512C1E00A7B0EF /* seed.bin in Resources */ = {isa = PBXBuildFile; fileRef = 966DE6712C512C1E00A7B0EF /* seed.bin */; }; + 966DE6742C512C9300A7B0EF /* HexBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 966DE6732C512C9300A7B0EF /* HexBytes.swift */; }; + 966DE6752C512FD100A7B0EF /* HexBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 966DE6732C512C9300A7B0EF /* HexBytes.swift */; }; 96B129FD2C2EC05D00DD07B0 /* LDKNode in Frameworks */ = {isa = PBXBuildFile; productRef = 96B129FC2C2EC05D00DD07B0 /* LDKNode */; }; 96B12A002C2EC37B00DD07B0 /* LightningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B129FF2C2EC37B00DD07B0 /* LightningViewModel.swift */; }; 96B12A032C2EC65000DD07B0 /* LightningService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B12A022C2EC65000DD07B0 /* LightningService.swift */; }; @@ -101,6 +107,10 @@ 9637E6D92C32E573004A92FC /* OnChainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnChainViewModel.swift; sourceTree = ""; }; 9637E6DC2C32EAA8004A92FC /* WalletNetwork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletNetwork.swift; sourceTree = ""; }; 9637E6DE2C32ED7B004A92FC /* LnPeer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LnPeer.swift; sourceTree = ""; }; + 966DE66A2C50FA6A00A7B0EF /* channel_manager.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = channel_manager.bin; sourceTree = ""; }; + 966DE66C2C50FA7600A7B0EF /* adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin; sourceTree = ""; }; + 966DE6712C512C1E00A7B0EF /* seed.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = seed.bin; sourceTree = ""; }; + 966DE6732C512C9300A7B0EF /* HexBytes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HexBytes.swift; sourceTree = ""; }; 96B129FF2C2EC37B00DD07B0 /* LightningViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LightningViewModel.swift; sourceTree = ""; }; 96B12A022C2EC65000DD07B0 /* LightningService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LightningService.swift; sourceTree = ""; }; 96C246C32C455AF60058222C /* BitkitNotification.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = BitkitNotification.entitlements; sourceTree = ""; }; @@ -137,6 +147,7 @@ files = ( 9613018C2C5022D700878183 /* SQLite in Frameworks */, 9637E6D82C32D8A7004A92FC /* BitcoinDevKit in Frameworks */, + 966DE6702C51210000A7B0EF /* LightningDevKit in Frameworks */, 96B129FD2C2EC05D00DD07B0 /* LDKNode in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -178,6 +189,7 @@ 961058F12C35904F00E1F1D8 /* Extensions */ = { isa = PBXGroup; children = ( + 966DE6732C512C9300A7B0EF /* HexBytes.swift */, ); path = Extensions; sourceTree = ""; @@ -199,6 +211,16 @@ path = Models; sourceTree = ""; }; + 966DE6692C50FA5800A7B0EF /* ldk-backup */ = { + isa = PBXGroup; + children = ( + 966DE6712C512C1E00A7B0EF /* seed.bin */, + 966DE66A2C50FA6A00A7B0EF /* channel_manager.bin */, + 966DE66C2C50FA7600A7B0EF /* adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin */, + ); + path = "ldk-backup"; + sourceTree = ""; + }; 96B129FE2C2EC0ED00DD07B0 /* ViewModels */ = { isa = PBXGroup; children = ( @@ -281,6 +303,7 @@ 96FE1F752C2DE6AC006D0C8B /* BitkitTests */ = { isa = PBXGroup; children = ( + 966DE6692C50FA5800A7B0EF /* ldk-backup */, 96FE1F762C2DE6AC006D0C8B /* BitkitTests.swift */, 9613018D2C50288900878183 /* LdkMigration.swift */, ); @@ -347,6 +370,7 @@ 96B129FC2C2EC05D00DD07B0 /* LDKNode */, 9637E6D72C32D8A7004A92FC /* BitcoinDevKit */, 9613018B2C5022D700878183 /* SQLite */, + 966DE66F2C51210000A7B0EF /* LightningDevKit */, ); productName = Bitkit; productReference = 96FE1F612C2DE6AA006D0C8B /* Bitkit.app */; @@ -427,6 +451,7 @@ 96B129FB2C2EC05D00DD07B0 /* XCRemoteSwiftPackageReference "ldk-node" */, 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */, 961301892C50215500878183 /* XCRemoteSwiftPackageReference "SQLite.swift" */, + 966DE66E2C51210000A7B0EF /* XCRemoteSwiftPackageReference "ldk-swift" */, ); productRefGroup = 96FE1F622C2DE6AA006D0C8B /* Products */; projectDirPath = ""; @@ -461,6 +486,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 966DE66B2C50FA6A00A7B0EF /* channel_manager.bin in Resources */, + 966DE6722C512C1E00A7B0EF /* seed.bin in Resources */, + 966DE66D2C50FA7600A7B0EF /* adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -505,6 +533,7 @@ 96FE1F672C2DE6AA006D0C8B /* ContentView.swift in Sources */, 96FE5A1B2C46A4DD00860ADC /* Logger.swift in Sources */, 96B12A032C2EC65000DD07B0 /* LightningService.swift in Sources */, + 966DE6742C512C9300A7B0EF /* HexBytes.swift in Sources */, 9637E6D52C32D811004A92FC /* OnChainService.swift in Sources */, 96FE1F652C2DE6AA006D0C8B /* BitkitApp.swift in Sources */, ); @@ -523,6 +552,7 @@ 966DE6612C502C7E00A7B0EF /* Env.swift in Sources */, 9613018F2C5028CC00878183 /* MigrationsService.swift in Sources */, 966DE6642C502CA300A7B0EF /* ServiceQueue.swift in Sources */, + 966DE6752C512FD100A7B0EF /* HexBytes.swift in Sources */, 96FE1F772C2DE6AC006D0C8B /* BitkitTests.swift in Sources */, 966DE6682C50372900A7B0EF /* OnChainService.swift in Sources */, ); @@ -968,6 +998,14 @@ minimumVersion = 0.31.1; }; }; + 966DE66E2C51210000A7B0EF /* XCRemoteSwiftPackageReference "ldk-swift" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/lightningdevkit/ldk-swift/"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.0.123; + }; + }; 96B129FB2C2EC05D00DD07B0 /* XCRemoteSwiftPackageReference "ldk-node" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/lightningdevkit/ldk-node"; @@ -999,6 +1037,11 @@ package = 9637E6D62C32D8A7004A92FC /* XCRemoteSwiftPackageReference "bdk-swift" */; productName = BitcoinDevKit; }; + 966DE66F2C51210000A7B0EF /* LightningDevKit */ = { + isa = XCSwiftPackageProductDependency; + package = 966DE66E2C51210000A7B0EF /* XCRemoteSwiftPackageReference "ldk-swift" */; + productName = LightningDevKit; + }; 96B129FC2C2EC05D00DD07B0 /* LDKNode */ = { isa = XCSwiftPackageProductDependency; package = 96B129FB2C2EC05D00DD07B0 /* XCRemoteSwiftPackageReference "ldk-node" */; diff --git a/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 94254e61..0a255e6b 100644 --- a/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Bitkit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "50a59acde9afec0b94afb6261fc906e5b5c8d6262ecc90f6afe8978dc903ea8c", + "originHash" : "b03b44bd686d6a1f548992eefdc3c205f03696d1af255697a0c62fecb4ff0cca", "pins" : [ { "identity" : "bdk-swift", @@ -19,6 +19,15 @@ "revision" : "66fec694f2b1de81dcb3d40073698a03dfe25522" } }, + { + "identity" : "ldk-swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/lightningdevkit/ldk-swift/", + "state" : { + "revision" : "e3fa435166527b1089787fd4ab0ce398849fb916", + "version" : "0.0.123" + } + }, { "identity" : "sqlite.swift", "kind" : "remoteSourceControl", diff --git a/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate b/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate index 09046b203b876bb0cd40222efb054aa00a757f47..68db211dbb521b51110f23cee6a76e02a58e1b1c 100644 GIT binary patch literal 117941 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 CunkH8 literal 104268 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 { + sequence(state: startIndex) { startIndex in + guard startIndex < endIndex else { return nil } + let endIndex = index(startIndex, offsetBy: 2, limitedBy: endIndex) ?? endIndex + defer { startIndex = endIndex } + return UInt8(self[startIndex..("primary_namespace") - let sn = Expression("secondary_namespace") - let key = Expression("key") - let value = Expression("value") + let pnCol = Expression("primary_namespace") + let snCol = Expression("secondary_namespace") + let keyCol = Expression("key") + let valueCol = Expression("value") try db.run(table.create { t in - t.column(pn, primaryKey: true) - t.column(sn) - t.column(key) - t.column(value) + t.column(pnCol, primaryKey: true) + t.column(snCol) + t.column(keyCol) + t.column(valueCol) }) + //MARK change to this as the primary key + //CREATE TABLE IF NOT EXISTS {} ( +// primary_namespace TEXT NOT NULL, +// secondary_namespace TEXT DEFAULT \"\" NOT NULL, +// key TEXT NOT NULL CHECK (key <> ''), +// value BLOB, PRIMARY KEY ( primary_namespace, secondary_namespace, key ) +// ); + + let insert = table.insert(pnCol <- "", snCol <- "", keyCol <- "manager", valueCol <- manager) + let rowid = try db.run(insert) + Logger.debug(rowid, context: "Inserted manager") + + let seconds = UInt64(NSDate().timeIntervalSince1970) + let nanoSeconds = UInt32.init(truncating: NSNumber(value: seconds * 1000 * 1000)) + let keysManager = KeysManager( + seed: [UInt8](seed), + startingTimeSecs: seconds, + startingTimeNanos: nanoSeconds + ) + + for monitor in monitors { + guard let channelMonitor = Bindings.readThirtyTwoBytesChannelMonitor(ser: [UInt8](monitor), argA: keysManager.asEntropySource(), argB: keysManager.asSignerProvider()).getValue()?.1 else { + Logger.error("Could not read channel monitor") + continue + } + + let fundingTx = Data(channelMonitor.getFundingTxo().0.getTxid()!).hex + let index = channelMonitor.getFundingTxo().0.getIndex() + + //let key = format!("{}_{}", funding_txo.txid.to_string(), funding_txo.index); + let key = "\(fundingTx)_\(index)" + + let insert = table.insert( + pnCol <- "monitors", + snCol <- "", + keyCol <- key, + valueCol <- monitor + ) + + try db.run(insert) + Logger.debug(key, context: "Inserted monitor") + } + + //TODO iterate through monitors and insert + // let entries = try db.prepare(table) // for entry in entries { diff --git a/BitkitTests/LdkMigration.swift b/BitkitTests/LdkMigration.swift index a377d723..ea1caeeb 100644 --- a/BitkitTests/LdkMigration.swift +++ b/BitkitTests/LdkMigration.swift @@ -14,28 +14,62 @@ final class LdkMigration: XCTestCase { } override func tearDownWithError() throws { + dumpLdkLogs() } func testLdkToLdkNode() async throws { - try MigrationsService.shared.ldkToLdkNode() + guard let seedFile = Bundle(for: type(of: self)).url(forResource: "seed", withExtension: "bin") else { + XCTFail("Missing file: seed.bin") + return + } - sleep(2) + guard let managerFile = Bundle(for: type(of: self)).url(forResource: "channel_manager", withExtension: "bin") else { + XCTFail("Missing file: channel_manager.bin") + return + } + guard let channelFile = Bundle(for: type(of: self)).url(forResource: "adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630", withExtension: "bin") else { + XCTFail("Missing file: adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin") + return + } + + try MigrationsService.shared.ldkToLdkNode( + seed: try Data(contentsOf: seedFile), + manager: try Data(contentsOf: managerFile), + monitors: [ + try Data(contentsOf: channelFile) + ] + ) + try await LightningService.shared.setup(mnemonic: Env.testMnemonic, passphrase: nil) try await LightningService.shared.start() XCTAssertEqual(LightningService.shared.nodeId, "02cd08b7b375e4263849121f9f0ffb2732a0b88d0fb74487575ac539b374f45a55") - sleep(10) let channels = LightningService.shared.channels -// XCTAssertEqual(channels?.count, 1) + XCTAssertEqual(channels?.count, 1) try await LightningService.shared.stop() - sleep(5) +// sleep(5) //TODO spin up LDK and query channel monitors } + func dumpLdkLogs() { + let dir = Env.ldkStorage + let fileURL = dir.appendingPathComponent("ldk_node_latest.log") + + guard let text = try? String(contentsOf: fileURL, encoding: .utf8) else { + return + } + let lines = text.components(separatedBy: "\n").map({ $0.trimmingCharacters(in: .whitespacesAndNewlines) }) + print("*****LDK-NODE LOG******") + lines.suffix(20).forEach { line in + print(line) + } + print("*****END LOG******") + } + func testPerformanceExample() throws { // This is an example of a performance test case. self.measure { diff --git a/BitkitTests/ldk-backup/adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin b/BitkitTests/ldk-backup/adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin new file mode 100644 index 0000000000000000000000000000000000000000..b63e3f64571fb987d2f6410cc23096ddcccc497f GIT binary patch literal 4780 zcmZQ%WPpN$i}`{inHdzBqA!XcI-Y(`D4w^r(C2^U&5*L%UZdvAH~6F-6#ifK)n;T+ zVoPrR}?NhRBOWiXu&k54CdBG>4oPNUfi!< z%DCq#)5EX9WzXlV$x6DRy?ou8ji1+Uyyv{dV}rN--Deh}k(y@}lP?{$HQVj5Rs8yz zBfeq=Ky!i4yQjr;^hB?KNP^OgC)YT1_bn>8bG+{2%!*S|2@AwN>rYe^khxlU->aBw z>Nzi`?}g983yY?vYFjnf>eRn|vGK|6ry%!%ffq1DP8CTjeuybl^~_|g`}D{tfMK_H zffEJUX_#!6QHmXtgy-_79Y8nh1VFvhhT{(}K?l)#1TiOXIvuVI|msBqEY9gL;} z>}g;$T!;=AMxxs<=te$fP!Qcwa;W3|UIDpd0pFk8S-dk`@3gVo(c<4({xf=xdiT6z zwic$We*_)Ibd8#jV^~px?DM_*^GVQiiy(0TNt1Gk3bk)AtO^S;TOyA-Z z+xJs@z4)W^bALYLP-IH^tG)c1=NYbv{8L|kZdr8g`$4_yftP+>C~e^^nf>p#4woYH z+R*06tS0_T+gEH2-oCB=NI)crYy-0Rk^m;G0&be)HVfkD=Xj{(vyf{^I`hw<6k zX8~JiDmRl4{@H$GtA9n?(u7}arr*o#J~Ikvd(MhwU`Rg&QwyaTiD-L*ltRjQB3hx0 zj6^iI|1#M#{AK*|m+>P5FkT>@Vg$A(nc%U+0%0*WOkx8E0LO;)41@z~P{r+EMz+6< z%nbLLK*2{;F!L=w*udfitxkbqoqJ{G;^o%dTUpi4a{QWBWwMjUA%04y_ETTEbKzwr zeT7I$JNCJl#{PKZM&Ms(Cef;!dZSd)n>T z{$$bT8|RG`R=u>*VU`S1U?Q0Jco_H?_}PKc$lxHrz~u07t;?)Jhr(qmr{jVH_Qo@(!thN>YDu1O~#LaBC%~$ydg$et_+RRJM-!1RbYGYw! zU;}yPFXKW6aH=5Gxd3)$2=%~N6q$C;m?Ukz=B}lBQQ5JJwaa{7a!p#_@@&%KSKBqW ziM0rE0CW6bLB%&!fw$IHMhO4yOE_aAF^xYU^ard=X-02JNSUdhx_?}>CD$x0J851y-gFLW(8^rB|x=uj1U(TNUx{iBs*^<{& z^WW@Te@}Pzl0)oKq3<7_zg6pX>Ed>v+Z%PZoq243*K(QY$>#qPxGyhluU|d0cvv z

$><^(0C>t3!;B2ylw%)Yp%`|q`sH=BQ7?AUti$%}9CJ^rzOa`=T4|7IH}f6Ck= z@(c&llW$RB6NcT<+oI4@`UBEy#Nl@OYk|`rQX9 zo9y;B-dXmJGki)wyzGwdDa%Us9G^_eZ literal 0 HcmV?d00001 diff --git a/BitkitTests/ldk-backup/channel_manager.bin b/BitkitTests/ldk-backup/channel_manager.bin new file mode 100644 index 0000000000000000000000000000000000000000..c95428d20bd265bfb4978f9d674633bd39c8ba54 GIT binary patch literal 3569 zcmZQ%WK+s>6O`hPJhfgZ!TELcevQNaR&mB!^2axAxB1vHk)MGf{S;gKtmlf{DmRl4 z{@H$GtA9n?(u7}arr*o#J~Ikvd(MhwfB;5j=7oo9P1qkTmfe~bkx>tx5HNP>uZkqiWvaa9RRCkT)P3LhcKKEkYb@icEh672i|^-dbB3A^f*5 z;f#&MH2#3lAKbRo+JM-B7uH`b(lg{9UcY)~@v`WheDXyG3ypk%Za-Bdt@t6PP}MV&weHg+qX358-i_;CnsR-r|1SFK z`DK3&MW%hpAJ+fPPt5k(_ilN4y5AOE4q&={vtwoK2bD9Cw-|XqZs$-UoG7^%xY=2N zapWMtz@Wsu(Tas-+MzZ(gZ|KM^6N}47PaN8?l@F&;_hTA<)wUSiIpu6878m>Y5n`6dW$kdQ<+(?zQ7zrSlFu zk~UA?^T*lU3Y0ML16V4;uL_acM%AH)z-aiPh6ju{8ZNMqK&3~+1vNZiywPxhg#;=+ z8ZM~e0pkt3aCyxLY8fyv!5Rq691yQECb62CGJxe6AwoXh4!{P72TTF;3t+Q}m6I8w zT)2ack&y$aocRSCSUFo?c>}v7BZC-&NHoL2Ye7!m`A(fX;T5>R;aTg%^kdu%ygPrR}@MsfTUlfUvvP`Y4c~t z!en4AbXf(pt+{jCgO{i#`y148fOH;EWeORYfC&JISrwVia%|sR`b5pbQ%HV3|8I4p1v`5A zx4X25M;*1?T=FFpz#T9Qh_`lefDtm(OI^U%T2p>!J+#W-Tl}I<1DIo|A!F nA#KH!gTlS6K|7V#RoC{5b)@j=b57VXBjDhKQ=5%sgT4R&5_`!t literal 0 HcmV?d00001 diff --git a/BitkitTests/ldk-backup/seed.bin b/BitkitTests/ldk-backup/seed.bin new file mode 100644 index 00000000..754d9499 --- /dev/null +++ b/BitkitTests/ldk-backup/seed.bin @@ -0,0 +1 @@ +nì õçJÓL¦Çm¨ÀΚÚþL&‰ÚíéÇ¥Ó4¬œ~Þ \ No newline at end of file From ace72a47fcc1675087bbe261fcf1f3a186607ed7 Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 24 Jul 2024 16:32:58 +0200 Subject: [PATCH 3/3] feat: import channel monitors from old ldk wallet --- .../UserInterfaceState.xcuserstate | Bin 117941 -> 112246 bytes Bitkit/Constants/Env.swift | 6 +-- Bitkit/Services/MigrationsService.swift | 39 +++++++----------- Bitkit/Utilities/Errors.swift | 4 ++ BitkitTests/LdkMigration.swift | 11 ++--- 5 files changed, 24 insertions(+), 36 deletions(-) diff --git a/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate b/Bitkit.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate index 68db211dbb521b51110f23cee6a76e02a58e1b1c..0eed74087a3e33db03707757f19a812a6632507a 100644 GIT binary patch literal 112246 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 CunkH8 diff --git a/Bitkit/Constants/Env.swift b/Bitkit/Constants/Env.swift index f3913b93..e2b34f70 100644 --- a/Bitkit/Constants/Env.swift +++ b/Bitkit/Constants/Env.swift @@ -29,11 +29,9 @@ struct Env { static var esploraServerUrl: String { switch network { case .regtest: + return "https://electrs-regtest.synonym.to" //cargo run --release --bin electrs -- -vvv --jsonrpc-import --daemon-rpc-addr 127.0.0.1:18443 --cookie polaruser:polarpass -// return "https://jaybird-logical-sadly.ngrok-free.app" - return "http://127.0.0.1:3000" - -// return "http://192.168.0.106:3000" + //return "http://127.0.0.1:3000" case .bitcoin: fatalError("Bitcoin network not implemented") case .testnet: diff --git a/Bitkit/Services/MigrationsService.swift b/Bitkit/Services/MigrationsService.swift index add0e25b..d6f34728 100644 --- a/Bitkit/Services/MigrationsService.swift +++ b/Bitkit/Services/MigrationsService.swift @@ -18,9 +18,6 @@ class MigrationsService { //MARK: Migrations for RN Bitkit to Swift Bitkit extension MigrationsService { func ldkToLdkNode(seed: Data, manager: Data, monitors: [Data]) throws { - //MARK: get funding_tx and index using plain LDK - //https://github.com/lightning/bolts/blob/master/02-peer-protocol.md#definition-of-channel_id - Logger.info("Migrating LDK to LDKNode") let storagePath = Env.ldkStorage.path let sqlFilePath = Env.ldkStorage.appendingPathComponent("ldk_node_data.sqlite").path @@ -48,7 +45,7 @@ extension MigrationsService { let snCol = Expression("secondary_namespace") let keyCol = Expression("key") let valueCol = Expression("value") - + try db.run(table.create { t in t.column(pnCol, primaryKey: true) t.column(snCol) @@ -56,13 +53,13 @@ extension MigrationsService { t.column(valueCol) }) - //MARK change to this as the primary key + //TODO: use create statement directly from LDK-node instead //CREATE TABLE IF NOT EXISTS {} ( -// primary_namespace TEXT NOT NULL, -// secondary_namespace TEXT DEFAULT \"\" NOT NULL, -// key TEXT NOT NULL CHECK (key <> ''), -// value BLOB, PRIMARY KEY ( primary_namespace, secondary_namespace, key ) -// ); + // primary_namespace TEXT NOT NULL, + // secondary_namespace TEXT DEFAULT \"\" NOT NULL, + // key TEXT NOT NULL CHECK (key <> ''), + // value BLOB, PRIMARY KEY ( primary_namespace, secondary_namespace, key ) + // ); let insert = table.insert(pnCol <- "", snCol <- "", keyCol <- "manager", valueCol <- manager) let rowid = try db.run(insert) @@ -77,17 +74,17 @@ extension MigrationsService { ) for monitor in monitors { + //MARK: get funding_tx and index using plain LDK + //https://github.com/lightning/bolts/blob/master/02-peer-protocol.md#definition-of-channel_id guard let channelMonitor = Bindings.readThirtyTwoBytesChannelMonitor(ser: [UInt8](monitor), argA: keysManager.asEntropySource(), argB: keysManager.asSignerProvider()).getValue()?.1 else { - Logger.error("Could not read channel monitor") - continue + Logger.error("Could not read channel monitor using readThirtyTwoBytesChannelMonitor") + throw AppError(serviceError: .ldkToLdkNodeMigration) } - - let fundingTx = Data(channelMonitor.getFundingTxo().0.getTxid()!).hex + + let fundingTx = Data(channelMonitor.getFundingTxo().0.getTxid()!.reversed()).hex let index = channelMonitor.getFundingTxo().0.getIndex() - - //let key = format!("{}_{}", funding_txo.txid.to_string(), funding_txo.index); - let key = "\(fundingTx)_\(index)" + let key = "\(fundingTx)_\(index)" let insert = table.insert( pnCol <- "monitors", snCol <- "", @@ -98,13 +95,5 @@ extension MigrationsService { try db.run(insert) Logger.debug(key, context: "Inserted monitor") } - - //TODO iterate through monitors and insert - - // let entries = try db.prepare(table) - - // for entry in entries { - // Logger.debug(entry.get("key")) - // } } } diff --git a/Bitkit/Utilities/Errors.swift b/Bitkit/Utilities/Errors.swift index 7845f3ab..62e066a6 100644 --- a/Bitkit/Utilities/Errors.swift +++ b/Bitkit/Utilities/Errors.swift @@ -13,6 +13,7 @@ enum CustomServiceError: Error { case nodeNotStarted case onchainWalletNotCreated case ldkNodeSqliteAlreadyExists + case ldkToLdkNodeMigration } /// Translates LDK and BDK error messages into translated messages that can be displayed to end users @@ -61,6 +62,9 @@ struct AppError: LocalizedError { case .ldkNodeSqliteAlreadyExists: message = "LDK-node SQLite file already exists" debugMessage = nil + case .ldkToLdkNodeMigration: + message = "LDK to LDK-node migration issue" + debugMessage = nil } Logger.error("\(message) [\(debugMessage ?? "")]", context: "service error") diff --git a/BitkitTests/LdkMigration.swift b/BitkitTests/LdkMigration.swift index ea1caeeb..8cb15b9c 100644 --- a/BitkitTests/LdkMigration.swift +++ b/BitkitTests/LdkMigration.swift @@ -32,7 +32,7 @@ final class LdkMigration: XCTestCase { XCTFail("Missing file: adb1de43b448b04b3fdde638155929cd2163d2c53d36bb40b517d7acc44d1630.bin") return } - + try MigrationsService.shared.ldkToLdkNode( seed: try Data(contentsOf: seedFile), manager: try Data(contentsOf: managerFile), @@ -40,19 +40,16 @@ final class LdkMigration: XCTestCase { try Data(contentsOf: channelFile) ] ) - + try await LightningService.shared.setup(mnemonic: Env.testMnemonic, passphrase: nil) try await LightningService.shared.start() XCTAssertEqual(LightningService.shared.nodeId, "02cd08b7b375e4263849121f9f0ffb2732a0b88d0fb74487575ac539b374f45a55") let channels = LightningService.shared.channels - XCTAssertEqual(channels?.count, 1) - + XCTAssertEqual(channels?.count, 1) + try await LightningService.shared.stop() - -// sleep(5) - //TODO spin up LDK and query channel monitors } func dumpLdkLogs() {