From e1cbc71838c1367beddcd2958f3e33a4cac98d63 Mon Sep 17 00:00:00 2001 From: pankcuf Date: Thu, 20 Apr 2023 15:03:44 +0400 Subject: [PATCH 01/13] [fixes for keys and chaintype] --- DashSyncCurrentCommit | 2 +- .../Sources/Categories/DSChain+DashWallet.m | 56 +++++++++---------- DashWallet/Sources/Models/DWEnvironment.m | 33 ++++++----- .../Sources/UI/Home/DWHomeViewController.m | 2 +- .../Models/DWDerivationPathKeysModel.m | 8 +-- 5 files changed, 50 insertions(+), 51 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index cd3e94a66..d7a54eade 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -f3624bc8887a5661f6a9b8ad214afdaca77fd674 +65d2850846b7468c04814c51595da37e08fceb2e diff --git a/DashWallet/Sources/Categories/DSChain+DashWallet.m b/DashWallet/Sources/Categories/DSChain+DashWallet.m index ad1f934ac..1a624e167 100644 --- a/DashWallet/Sources/Categories/DSChain+DashWallet.m +++ b/DashWallet/Sources/Categories/DSChain+DashWallet.m @@ -235,78 +235,78 @@ - (uint64_t)calculateblockInflationWithHeight:(uint64_t)height nPrevBits:(uint32 } - (uint64_t)increaseBlockHeight { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 158000; - case DSChainType_TestNet: + case ChainType_TestNet: return 4030; - case DSChainType_DevNet: + case ChainType_DevNet: return 4030; } } - (uint64_t)period { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 576 * 30; - case DSChainType_TestNet: + case ChainType_TestNet: return 10; - case DSChainType_DevNet: + case ChainType_DevNet: return 10; } } - (uint64_t)brrHeight { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 1374912; - case DSChainType_TestNet: + case ChainType_TestNet: return 387500; - case DSChainType_DevNet: + case ChainType_DevNet: return 300; } } - (uint64_t)superblockCycle { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 16616; - case DSChainType_TestNet: + case ChainType_TestNet: return 24; - case DSChainType_DevNet: + case ChainType_DevNet: return 24; } } - (uint64_t)superblockStartBlock { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 614820; - case DSChainType_TestNet: + case ChainType_TestNet: return 4200; - case DSChainType_DevNet: + case ChainType_DevNet: return 24; } } - (uint64_t)subsidyDecreaseBlockCount { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 210240; - case DSChainType_TestNet: + case ChainType_TestNet: return 210240; - case DSChainType_DevNet: + case ChainType_DevNet: return 210240; } } - (uint64_t)budgetPaymentsStartBlock { - switch (self.chainType) { - case DSChainType_MainNet: + switch (self.chainType.tag) { + case ChainType_MainNet: return 328008; - case DSChainType_TestNet: + case ChainType_TestNet: return 4100; - case DSChainType_DevNet: + case ChainType_DevNet: return 4100; } } diff --git a/DashWallet/Sources/Models/DWEnvironment.m b/DashWallet/Sources/Models/DWEnvironment.m index 9226e9591..b1e28cfef 100644 --- a/DashWallet/Sources/Models/DWEnvironment.m +++ b/DashWallet/Sources/Models/DWEnvironment.m @@ -46,7 +46,7 @@ - (instancetype)init { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; if (![userDefaults objectForKey:CURRENT_CHAIN_TYPE_KEY]) { - [userDefaults setInteger:DSChainType_MainNet forKey:CURRENT_CHAIN_TYPE_KEY]; + [userDefaults setInteger:ChainType_MainNet forKey:CURRENT_CHAIN_TYPE_KEY]; } [[DSChainsManager sharedInstance] chainManagerForChain:[DSChain mainnet]]; // initialization [[DSChainsManager sharedInstance] chainManagerForChain:[DSChain testnet]]; // initialization @@ -62,19 +62,19 @@ - (instancetype)init { - (void)reset { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; - DSChainType chainType = [userDefaults integerForKey:CURRENT_CHAIN_TYPE_KEY]; - switch (chainType) { - case DSChainType_MainNet: + // DSChainType chainType = [userDefaults integerForKey:CURRENT_CHAIN_TYPE_KEY]; + switch ([userDefaults integerForKey:CURRENT_CHAIN_TYPE_KEY]) { + case ChainType_MainNet: self.currentChain = [DSChain mainnet]; break; - case DSChainType_TestNet: + case ChainType_TestNet: self.currentChain = [DSChain testnet]; break; - case DSChainType_DevNet: // we will only have evonet + case ChainType_DevNet: // we will only have evonet self.currentChain = [DSChain devnetWithIdentifier:DWDevnetEvonetIdentifier]; if (!self.currentChain) { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; - [userDefaults setInteger:DSChainType_MainNet forKey:CURRENT_CHAIN_TYPE_KEY]; + [userDefaults setInteger:ChainType_MainNet forKey:CURRENT_CHAIN_TYPE_KEY]; self.currentChain = [DSChain mainnet]; } break; @@ -117,19 +117,19 @@ - (void)clearAllWalletsAndRemovePin:(BOOL)shouldRemovePin { - (void)switchToMainnetWithCompletion:(void (^)(BOOL success))completion { if (self.currentChain != [DSChain mainnet]) { - [self switchToNetwork:DSChainType_MainNet withIdentifier:nil withCompletion:completion]; + [self switchToNetwork:ChainType_MainNet withIdentifier:nil withCompletion:completion]; } } - (void)switchToTestnetWithCompletion:(void (^)(BOOL success))completion { if (self.currentChain != [DSChain testnet]) { - [self switchToNetwork:DSChainType_TestNet withIdentifier:nil withCompletion:completion]; + [self switchToNetwork:ChainType_TestNet withIdentifier:nil withCompletion:completion]; } } - (void)switchToEvonetWithCompletion:(void (^)(BOOL success))completion { if (self.currentChain != [DSChain devnetWithIdentifier:DWDevnetEvonetIdentifier]) { - [self switchToNetwork:DSChainType_DevNet withIdentifier:DWDevnetEvonetIdentifier withCompletion:completion]; + [self switchToNetwork:ChainType_DevNet withIdentifier:DWDevnetEvonetIdentifier withCompletion:completion]; } } @@ -155,9 +155,9 @@ - (NSOrderedSet *)evonetServiceLocation { return [NSOrderedSet orderedSetWithArray:serviceLocations]; } -- (void)switchToNetwork:(DSChainType)chainType withIdentifier:(NSString *)identifier withCompletion:(void (^)(BOOL success))completion { +- (void)switchToNetwork:(ChainType_Tag)chainType withIdentifier:(NSString *)identifier withCompletion:(void (^)(BOOL success))completion { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; - DSChainType originalChainType = [userDefaults integerForKey:CURRENT_CHAIN_TYPE_KEY]; + ChainType_Tag originalChainType = [userDefaults integerForKey:CURRENT_CHAIN_TYPE_KEY]; if (originalChainType == chainType) { // Notification isn't send here as the chain remains the same completion(YES); // didn't really switch but good enough @@ -166,13 +166,13 @@ - (void)switchToNetwork:(DSChainType)chainType withIdentifier:(NSString *)identi DSWallet *wallet = [self currentWallet]; DSChain *destinationChain = nil; switch (chainType) { - case DSChainType_MainNet: + case ChainType_MainNet: destinationChain = [DSChain mainnet]; break; - case DSChainType_TestNet: + case ChainType_TestNet: destinationChain = [DSChain testnet]; break; - case DSChainType_DevNet: + case ChainType_DevNet: destinationChain = [DSChain devnetWithIdentifier:identifier]; if (!destinationChain && [identifier isEqualToString:DWDevnetEvonetIdentifier]) { // TODO: add devnet eventually @@ -206,8 +206,7 @@ - (void)switchToNetwork:(DSChainType)chainType withIdentifier:(NSString *)identi if (self.currentChain) { [[DashSync sharedSyncController] stopSyncForChain:self.currentChain]; } - [userDefaults setInteger:chainType - forKey:CURRENT_CHAIN_TYPE_KEY]; + [userDefaults setInteger:chainType forKey:CURRENT_CHAIN_TYPE_KEY]; [self reset]; [self.currentChainManager.peerManager connect]; [[NSNotificationCenter defaultCenter] postNotificationName:DWCurrentNetworkDidChangeNotification diff --git a/DashWallet/Sources/UI/Home/DWHomeViewController.m b/DashWallet/Sources/UI/Home/DWHomeViewController.m index 6e4a35713..4f7e332cf 100644 --- a/DashWallet/Sources/UI/Home/DWHomeViewController.m +++ b/DashWallet/Sources/UI/Home/DWHomeViewController.m @@ -176,7 +176,7 @@ - (void)payViewControllerDidHidePaymentResultToContact:(nullable id Date: Fri, 28 Apr 2023 14:19:07 +0400 Subject: [PATCH 02/13] [adopt to dashsync] --- DashSyncCurrentCommit | 2 +- .../Sources/UI/CrowdNode/CrowdNodeModel.swift | 9 ++-- .../UI/Menu/Settings/About/DWAboutModel.m | 4 +- .../UI/Setup/RecoverWallet/DWRecoverModel.m | 9 ++-- Podfile.lock | 48 ++++++++----------- 5 files changed, 30 insertions(+), 42 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index d7a54eade..03ad28cef 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -65d2850846b7468c04814c51595da37e08fceb2e +3c55b8de7baaa6569643e9a1c1d78fad1f25790a diff --git a/DashWallet/Sources/UI/CrowdNode/CrowdNodeModel.swift b/DashWallet/Sources/UI/CrowdNode/CrowdNodeModel.swift index 656e67324..e7c09407e 100644 --- a/DashWallet/Sources/UI/CrowdNode/CrowdNodeModel.swift +++ b/DashWallet/Sources/UI/CrowdNode/CrowdNodeModel.swift @@ -328,12 +328,9 @@ extension CrowdNodeModel { let result = await wallet.seed(withPrompt: NSLocalizedString("Sign the message", comment: "CrowdNode"), forAmount: 1) if !result.1 { - let key = wallet.privateKey(forAddress: crowdNode.accountAddress, fromSeed: result.0!) - let signResult = await key?.signMessageDigest(email.magicDigest()) - - if signResult?.0 == true { - let signature = (signResult!.1 as NSData).base64String() - try await crowdNode.registerEmailForAccount(email: email, signature: signature) + if let key = wallet.privateKey(forAddress: crowdNode.accountAddress, fromSeed: result.0!) { + let signature = DSKeyManager.signMesasageDigest(key, digest: email.magicDigest()) + try await crowdNode.registerEmailForAccount(email: email, signature: signature.base64EncodedString()) return true } } diff --git a/DashWallet/Sources/UI/Menu/Settings/About/DWAboutModel.m b/DashWallet/Sources/UI/Menu/Settings/About/DWAboutModel.m index 408dd119f..0c5b2aa3c 100644 --- a/DashWallet/Sources/UI/Menu/Settings/About/DWAboutModel.m +++ b/DashWallet/Sources/UI/Menu/Settings/About/DWAboutModel.m @@ -155,8 +155,8 @@ - (NSString *)status { NSString *dlPeerString = [NSString stringWithFormat:NSLocalizedString(@"Download peer: %@", @"ex., Download peer: 127.0.0.1:9999"), peerManager.downloadPeerName ? peerManager.downloadPeerName : @"-"]; NSString *quorumsString = [NSString stringWithFormat:NSLocalizedString(@"Quorums validated: %d/%d", nil), - (int)[currentMasternodeList validQuorumsCountOfType:DSLLMQType_50_60], - (int)[currentMasternodeList quorumsCountOfType:DSLLMQType_50_60]]; + (int)[currentMasternodeList validQuorumsCountOfType:LLMQType_Llmqtype50_60], + (int)[currentMasternodeList quorumsCountOfType:LLMQType_Llmqtype50_60]]; NSString *usernameString = @""; if ([DWGlobalOptions sharedInstance].dashpayUsername) { diff --git a/DashWallet/Sources/UI/Setup/RecoverWallet/DWRecoverModel.m b/DashWallet/Sources/UI/Setup/RecoverWallet/DWRecoverModel.m index 2d38341d6..af284b75d 100644 --- a/DashWallet/Sources/UI/Setup/RecoverWallet/DWRecoverModel.m +++ b/DashWallet/Sources/UI/Setup/RecoverWallet/DWRecoverModel.m @@ -98,11 +98,10 @@ - (BOOL)canWipeWithPhrase:(NSString *)phrase { DSAccount *testingAccount = [testingWallet accountWithNumber:0]; DSAccount *ourAccount = [DWEnvironment sharedInstance].currentAccount; - NSData *testingExtended32Data = testingAccount.bip32DerivationPath.extendedPublicKey.publicKeyData; - NSData *accountExtended32Data = ourAccount.bip32DerivationPath.extendedPublicKey.publicKeyData; - - NSData *testingExtended44Data = testingAccount.bip44DerivationPath.extendedPublicKey.publicKeyData; - NSData *accountExtended44Data = ourAccount.bip44DerivationPath.extendedPublicKey.publicKeyData; + NSData *testingExtended32Data = [DSKeyManager publicKeyData:testingAccount.bip32DerivationPath.extendedPublicKey]; + NSData *accountExtended32Data = [DSKeyManager publicKeyData:ourAccount.bip32DerivationPath.extendedPublicKey]; + NSData *testingExtended44Data = [DSKeyManager publicKeyData:testingAccount.bip44DerivationPath.extendedPublicKey]; + NSData *accountExtended44Data = [DSKeyManager publicKeyData:ourAccount.bip44DerivationPath.extendedPublicKey]; return ([testingExtended32Data isEqual:accountExtended32Data] || [testingExtended44Data isEqual:accountExtended44Data] || diff --git a/Podfile.lock b/Podfile.lock index 88738d15a..5f7f768ee 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -566,7 +566,6 @@ PODS: - abseil/base/config - abseil/meta/type_traits - Alamofire (5.6.4) - - bls-signatures-pod (1.0.7) - BoringSSL-GRPC (0.0.24): - BoringSSL-GRPC/Implementation (= 0.0.24) - BoringSSL-GRPC/Interface (= 0.0.24) @@ -578,26 +577,24 @@ PODS: - CocoaLumberjack (3.7.2): - CocoaLumberjack/Core (= 3.7.2) - CocoaLumberjack/Core (3.7.2) - - DAPI-GRPC (0.24.0-dev): + - DAPI-GRPC (0.22.0-dev.8): - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - - DAPI-GRPC/Messages (= 0.24.0-dev) - - DAPI-GRPC/Services (= 0.24.0-dev) - - DAPI-GRPC/Messages (0.24.0-dev): + - DAPI-GRPC/Messages (= 0.22.0-dev.8) + - DAPI-GRPC/Services (= 0.22.0-dev.8) + - DAPI-GRPC/Messages (0.22.0-dev.8): - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - Protobuf - - DAPI-GRPC/Services (0.24.0-dev): + - DAPI-GRPC/Services (0.22.0-dev.8): - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - DAPI-GRPC/Messages - gRPC-ProtoRPC - - DashSharedCore (0.2.8) - - DashSync (2.3.0): - - bls-signatures-pod (= 1.0.7) + - DashSharedCore (0.3.5) + - DashSync (0.1.0): - CocoaLumberjack (= 3.7.2) - - DAPI-GRPC (= 0.24.0-dev) - - DashSharedCore (= 0.2.8) + - DAPI-GRPC (= 0.22.0-dev.8) + - DashSharedCore (= 0.3.5) - DSDynamicOptions (= 0.1.2) - DWAlertController (= 0.2.1) - - secp256k1_dash (= 0.1.4-alpha.2) - TinyCborObjc (= 0.4.6) - DSDynamicOptions (0.1.2) - DWAlertController (0.2.1) @@ -620,13 +617,13 @@ PODS: - FirebaseStorage (8.15.0): - FirebaseCore (~> 8.0) - GTMSessionFetcher/Core (~> 1.5) - - GoogleDataTransport (9.2.1): + - GoogleDataTransport (9.2.2): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Environment (7.11.0): + - GoogleUtilities/Environment (7.11.1): - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.11.0): + - GoogleUtilities/Logger (7.11.1): - GoogleUtilities/Environment - gRPC-Core (1.49.0): - gRPC-Core/Implementation (= 1.49.0) @@ -702,11 +699,10 @@ PODS: - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - PromisesObjC (2.2.0) - - Protobuf (3.22.1) + - Protobuf (3.22.3) - SDWebImage (5.13.2): - SDWebImage/Core (= 5.13.2) - SDWebImage/Core (5.13.2) - - secp256k1_dash (0.1.4-alpha.2) - SQLite.swift (0.13.3): - SQLite.swift/standard (= 0.13.3) - SQLite.swift/standard (0.13.3) @@ -743,7 +739,6 @@ SPEC REPOS: - "!ProtoCompiler-gRPCPlugin" - abseil - Alamofire - - bls-signatures-pod - BoringSSL-GRPC - CloudInAppMessaging - CocoaLumberjack @@ -770,7 +765,6 @@ SPEC REPOS: - PromisesObjC - Protobuf - SDWebImage - - secp256k1_dash - SQLite.swift - SQLiteMigrationManager.swift - SSZipArchive @@ -801,14 +795,13 @@ SPEC CHECKSUMS: "!ProtoCompiler-gRPCPlugin": 755f0ee414a0d5f0028e0dcfe98c23bdbc3e6fa3 abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46 Alamofire: 4e95d97098eacb88856099c4fc79b526a299e48c - bls-signatures-pod: 2fb002bda90163678c294bc2aa8a1049cba9ead7 BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33 CloudInAppMessaging: 5dde21e2e67e173e3803ca7532eacaa77e19d744 CocoaImageHashing: 8656031d0899abe6c1c415827de43e9798189c53 CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da - DAPI-GRPC: 750f8a4e6805141d65698737e77ea36fb92b6858 - DashSharedCore: 79b38b97b4bff3d14467f4c997229225df4c5a83 - DashSync: 065242c83fcd2c2edfff77e443976879f3d007af + DAPI-GRPC: 138d62523bbfe7e88a39896f1053c0bc12390d9f + DashSharedCore: 80f87bf6c56e81a64d5c54083073b49ca216350c + DashSync: 2021f629e8aa02a3598398af12a0a6ef4777e044 DSDynamicOptions: 347cc5d2c4e080eb3de6a86719ad3d861b82adfc DWAlertController: 5f4cd8adf90336331c054857f709f5f8d4b16a5b Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d @@ -816,8 +809,8 @@ SPEC CHECKSUMS: FirebaseCoreDiagnostics: 92e07a649aeb66352b319d43bdd2ee3942af84cb FirebaseDynamicLinks: 1dc816ef789c5adac6fede0b46d11478175c70e4 FirebaseStorage: 8019af461599b2c3bc61c6a5dbdfa3d2de66a4d9 - GoogleDataTransport: ea169759df570f4e37bdee1623ec32a7e64e67c4 - GoogleUtilities: c2bdc4cf2ce786c4d2e6b3bcfd599a25ca78f06f + GoogleDataTransport: 8378d1fa8ac49753ea6ce70d65a7cb70ce5f66e6 + GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749 gRPC: 64f36d689b2ecd99c4351f74e6f91347cdc65d9f gRPC-Core: 3a9fdb5967d42211e875826f3f6fc163ea02c2a1 gRPC-ProtoRPC: 1c223e0f1732bb8d0b9e9e0ea60cc0fe995b8e2d @@ -829,9 +822,8 @@ SPEC CHECKSUMS: Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef - Protobuf: d7f7c8329edf5eb8af65547a8ba3e9c1cee927d5 + Protobuf: d03938d5f7e974a97964fb0567771e36fbe9ecce SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 - secp256k1_dash: bd60e467aa853e145cf680dd0f8b196df20f0a62 SQLite.swift: 903bfa3bc9ab06345fdfbb578e34f47cfcf417da SQLiteMigrationManager.swift: 5383578f5bc8955c06695e8bf04835ee0e6673a8 SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef @@ -841,4 +833,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 070344e2828a74f647aaa0ce756a1fba3489659b -COCOAPODS: 1.12.0 +COCOAPODS: 1.12.1 From 1cfcf783b12e7315f22c6389a5c10fbf59eaf5ab Mon Sep 17 00:00:00 2001 From: pankcuf Date: Tue, 16 May 2023 17:13:07 +0400 Subject: [PATCH 03/13] [bls public key legacy serialization] --- .../Models/DerivationPathKeysModel.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift index adc1dedd0..02435e039 100644 --- a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift +++ b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift @@ -182,7 +182,16 @@ extension DerivationPathKeysModel { case .privatePublicKeysBase64: return DerivationPathKeysItem(info: info, value: NSLocalizedString("TBI", comment: "")) case .publicKeyLegacy: - return DerivationPathKeysItem(info: info, value: NSLocalizedString("TBI", comment: "")) + return autoreleasepool { + guard let phrase = wallet.seedPhraseIfAuthenticated() else { + return DerivationPathKeysItem(info: info, value: NSLocalizedString("Not available", comment: "")) + } + let seed = DSBIP39Mnemonic.sharedInstance()!.deriveKey(fromPhrase: phrase, withPassphrase: nil) + + let opaqueKey = self.derivationPath.privateKey(at: UInt32(index), fromSeed: seed)! + let key = DSKeyManager.blsPublicKeySerialize(opaqueKey, legacy: true) + return DerivationPathKeysItem(info: info, value: key) + } } } } From c4ff307dac1b801ca5db51d76ed9ada56e6c5b59 Mon Sep 17 00:00:00 2001 From: tikhop Date: Tue, 16 May 2023 21:11:10 +0700 Subject: [PATCH 04/13] feat: Show proper data for every MN Keys Screen --- DashSyncCurrentCommit | 2 +- .../Models/DerivationPathKeysModel.swift | 35 ++++++++++++++----- DashWallet/dashwallet-Bridging-Header.h | 1 + Podfile.lock | 8 ++--- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 0933db1d3..41be57fb2 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -758116edc13bef12f004ce179a70904cdc86d40b +9a272dda5c4ae51ba8ee9a5bfebd2949e638ab55 diff --git a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift index 02435e039..32e36bbe3 100644 --- a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift +++ b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift @@ -146,13 +146,14 @@ extension DerivationPathKeysModel { func itemForInfo(_ info: DerivationPathInfo, atIndex index: Int) -> DerivationPathKeysItem { let wallet = DWEnvironment.sharedInstance().currentWallet - + let index = UInt32(index) + switch info { case .address: - let address = derivationPath.address(at: UInt32(index)) + let address = derivationPath.address(at: index) return DerivationPathKeysItem(info: info, value: address) case .publicKey: - let publicKeyData = derivationPath.publicKeyData(at: UInt32(index)) + let publicKeyData = derivationPath.publicKeyData(at: index) return DerivationPathKeysItem(info: info, value: publicKeyData.hexEncodedString()) case .privateKey: return autoreleasepool { @@ -161,7 +162,7 @@ extension DerivationPathKeysModel { } let seed = DSBIP39Mnemonic.sharedInstance()!.deriveKey(fromPhrase: phrase, withPassphrase: nil) - let opaqueKey = self.derivationPath.privateKey(at: UInt32(index), fromSeed: seed)! + let opaqueKey = self.derivationPath.privateKey(at: index, fromSeed: seed)! let key = DSKeyManager.secretKeyHexString(opaqueKey) return DerivationPathKeysItem(info: info, value: key) @@ -173,14 +174,32 @@ extension DerivationPathKeysModel { } let seed = DSBIP39Mnemonic.sharedInstance()!.deriveKey(fromPhrase: phrase, withPassphrase: nil) - let opaqueKey = self.derivationPath.privateKey(at: UInt32(index), fromSeed: seed)! + let opaqueKey = self.derivationPath.privateKey(at: index, fromSeed: seed)! let key = DSKeyManager.serializedPrivateKey(opaqueKey, chainType: wallet.chain.chainType) return DerivationPathKeysItem(info: info, value: key) } case .keyId: - return DerivationPathKeysItem(info: info, value: NSLocalizedString("TBI", comment: "")) + let pubKeyData = self.derivationPath.publicKeyData(at: index) as NSData + var bytes = pubKeyData.hash160() + let hexString = NSData(bytes: &bytes, length: MemoryLayout.size).hexString() + return DerivationPathKeysItem(info: info, value: hexString) + case .privatePublicKeysBase64: - return DerivationPathKeysItem(info: info, value: NSLocalizedString("TBI", comment: "")) + return autoreleasepool { + + guard let phrase = wallet.seedPhraseIfAuthenticated() else { + return DerivationPathKeysItem(info: info, value: NSLocalizedString("Not available", comment: "")) + } + let seed = DSBIP39Mnemonic.sharedInstance()!.deriveKey(fromPhrase: phrase, withPassphrase: nil) + + let opaquePrivateKey = self.derivationPath.privateKey(at: index, fromSeed: seed)! + let privateKeyData = DSKeyManager.privateKeyData(opaquePrivateKey) + let pubKeyData = self.derivationPath.publicKeyData(at: index) + + let data = privateKeyData + pubKeyData + + return DerivationPathKeysItem(info: info, value: data.base64EncodedString()) + } case .publicKeyLegacy: return autoreleasepool { guard let phrase = wallet.seedPhraseIfAuthenticated() else { @@ -188,7 +207,7 @@ extension DerivationPathKeysModel { } let seed = DSBIP39Mnemonic.sharedInstance()!.deriveKey(fromPhrase: phrase, withPassphrase: nil) - let opaqueKey = self.derivationPath.privateKey(at: UInt32(index), fromSeed: seed)! + let opaqueKey = self.derivationPath.privateKey(at: index, fromSeed: seed)! let key = DSKeyManager.blsPublicKeySerialize(opaqueKey, legacy: true) return DerivationPathKeysItem(info: info, value: key) } diff --git a/DashWallet/dashwallet-Bridging-Header.h b/DashWallet/dashwallet-Bridging-Header.h index a6e2cd037..777da49c3 100644 --- a/DashWallet/dashwallet-Bridging-Header.h +++ b/DashWallet/dashwallet-Bridging-Header.h @@ -22,6 +22,7 @@ static const bool _SNAPSHOT = 0; #import "DSOperationQueue.h" #import "DSDerivationPathFactory.h" #import "DSKeyManager.h" +#import "BigIntTypes.h" //MARK: DashWallet #import "DWActionButton.h" diff --git a/Podfile.lock b/Podfile.lock index 1173db7ba..63041d85c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -588,11 +588,11 @@ PODS: - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - DAPI-GRPC/Messages - gRPC-ProtoRPC - - DashSharedCore (0.3.8) + - DashSharedCore (0.3.9) - DashSync (0.1.0): - CocoaLumberjack (= 3.7.2) - DAPI-GRPC (= 0.22.0-dev.8) - - DashSharedCore (= 0.3.8) + - DashSharedCore (= 0.3.9) - DSDynamicOptions (= 0.1.2) - DWAlertController (= 0.2.1) - TinyCborObjc (= 0.4.6) @@ -800,8 +800,8 @@ SPEC CHECKSUMS: CocoaImageHashing: 8656031d0899abe6c1c415827de43e9798189c53 CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da DAPI-GRPC: 138d62523bbfe7e88a39896f1053c0bc12390d9f - DashSharedCore: ce9122c71df1ca35063ad95ed9fc98cf609edde2 - DashSync: f454b428abc07c4bc09898832d7abaed53919019 + DashSharedCore: 0558ca3ca37725eeb613247a271dbc2692f05162 + DashSync: 028a42f27e11ded738a25c83c58c894f9ee6755a DSDynamicOptions: 347cc5d2c4e080eb3de6a86719ad3d861b82adfc DWAlertController: 5f4cd8adf90336331c054857f709f5f8d4b16a5b Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d From 7bb9e66365fd46b15ac568ea9263b196ad507604 Mon Sep 17 00:00:00 2001 From: tikhop Date: Tue, 16 May 2023 22:15:52 +0700 Subject: [PATCH 05/13] fix: Drop first byte from public key when making a base64 representation of concatenation of private and public keys --- .../Models/DerivationPathKeysModel.swift | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift index 32e36bbe3..5ff3327b9 100644 --- a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift +++ b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/DerivationPathKeys/Models/DerivationPathKeysModel.swift @@ -147,7 +147,7 @@ extension DerivationPathKeysModel { func itemForInfo(_ info: DerivationPathInfo, atIndex index: Int) -> DerivationPathKeysItem { let wallet = DWEnvironment.sharedInstance().currentWallet let index = UInt32(index) - + switch info { case .address: let address = derivationPath.address(at: index) @@ -179,14 +179,13 @@ extension DerivationPathKeysModel { return DerivationPathKeysItem(info: info, value: key) } case .keyId: - let pubKeyData = self.derivationPath.publicKeyData(at: index) as NSData + let pubKeyData = derivationPath.publicKeyData(at: index) as NSData var bytes = pubKeyData.hash160() let hexString = NSData(bytes: &bytes, length: MemoryLayout.size).hexString() return DerivationPathKeysItem(info: info, value: hexString) - + case .privatePublicKeysBase64: return autoreleasepool { - guard let phrase = wallet.seedPhraseIfAuthenticated() else { return DerivationPathKeysItem(info: info, value: NSLocalizedString("Not available", comment: "")) } @@ -195,9 +194,9 @@ extension DerivationPathKeysModel { let opaquePrivateKey = self.derivationPath.privateKey(at: index, fromSeed: seed)! let privateKeyData = DSKeyManager.privateKeyData(opaquePrivateKey) let pubKeyData = self.derivationPath.publicKeyData(at: index) - - let data = privateKeyData + pubKeyData - + + let data = privateKeyData + pubKeyData.dropFirst() + return DerivationPathKeysItem(info: info, value: data.base64EncodedString()) } case .publicKeyLegacy: From c8f5cb235ec4bd713057a802fbb88ed39239a4f5 Mon Sep 17 00:00:00 2001 From: tikhop Date: Tue, 16 May 2023 22:16:32 +0700 Subject: [PATCH 06/13] fix: Support swift 5.7 --- .../Overview/KeysOverviewViewController.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/Overview/KeysOverviewViewController.swift b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/Overview/KeysOverviewViewController.swift index b318de41c..933287350 100644 --- a/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/Overview/KeysOverviewViewController.swift +++ b/DashWallet/Sources/UI/Menu/Tools/Masternode Keys/Overview/KeysOverviewViewController.swift @@ -87,13 +87,13 @@ extension KeysOverviewViewController: UITableViewDataSource, UITableViewDelegate tableView.deselectRow(at: indexPath, animated: true) let showVcBlock = { [weak self] in - guard let self else { return } + guard let wSelf = self else { return } - let item = model.items[indexPath.row] - let derivationPath = model.derivationPath(for: item) + let item = wSelf.model.items[indexPath.row] + let derivationPath = wSelf.model.derivationPath(for: item) let vc = DerivationPathKeysViewController(with: item, derivationPath: derivationPath) vc.hidesBottomBarWhenPushed = true - navigationController?.pushViewController(vc, animated: true) + wSelf.navigationController?.pushViewController(vc, animated: true) } if DSAuthenticationManager.sharedInstance().didAuthenticate { From 46c4e0ef96730b3e83b0dc0e6b62c8041b5c0f5b Mon Sep 17 00:00:00 2001 From: tikhop Date: Tue, 16 May 2023 22:22:57 +0700 Subject: [PATCH 07/13] chore: Bump up version number --- DashWallet.xcodeproj/project.pbxproj | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index da2a5ab6b..32673eeda 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -7581,7 +7581,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -7603,7 +7603,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -7624,7 +7624,7 @@ EXCLUDED_ARCHS = ""; INFOPLIST_FILE = "WatchApp Extension/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -7647,7 +7647,7 @@ EXCLUDED_ARCHS = ""; INFOPLIST_FILE = "WatchApp Extension/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -7675,7 +7675,7 @@ INFOPLIST_FILE = TodayExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -7700,7 +7700,7 @@ INFOPLIST_FILE = TodayExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -7845,7 +7845,7 @@ INFOPLIST_FILE = TodayExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -7897,7 +7897,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -7918,7 +7918,7 @@ EXCLUDED_ARCHS = ""; INFOPLIST_FILE = "WatchApp Extension/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -8061,7 +8061,7 @@ INFOPLIST_FILE = TodayExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -8112,7 +8112,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -8133,7 +8133,7 @@ EXCLUDED_ARCHS = ""; INFOPLIST_FILE = "WatchApp Extension/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; From 2fae4452180ce0cbb3ca59543fe8feb51c0b448d Mon Sep 17 00:00:00 2001 From: pankcuf Date: Tue, 16 May 2023 19:59:47 +0400 Subject: [PATCH 08/13] [DashWallet v7.0.0 / DashSync v2.4.0] --- DashSyncCurrentCommit | 2 +- DashWallet.xcodeproj/project.pbxproj | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 41be57fb2..eed442858 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -9a272dda5c4ae51ba8ee9a5bfebd2949e638ab55 +bfe8076ee4389ad915fcb8148db18fb20ec8660c diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index 32673eeda..1ea2cd5ce 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -7438,7 +7438,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Dash; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; @@ -7496,7 +7496,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Dash; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "DashWallet/dashwallet-Bridging-Header.h"; @@ -7817,7 +7817,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Dash; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "DashWallet/dashwallet-Bridging-Header.h"; @@ -8034,7 +8034,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Dash; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 6.3.3; + MARKETING_VERSION = 7.0.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "DashWallet/dashwallet-Bridging-Header.h"; From f8683f92bbedead86f696567369552512adf52de Mon Sep 17 00:00:00 2001 From: tikhop Date: Wed, 17 May 2023 15:37:58 +0700 Subject: [PATCH 09/13] feat: Fire sync state change event even if the state is equal to the old one" --- .../Syncyng Activity Monitor/SyncingActivityMonitor.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DashWallet/Sources/Application/Syncyng Activity Monitor/SyncingActivityMonitor.swift b/DashWallet/Sources/Application/Syncyng Activity Monitor/SyncingActivityMonitor.swift index c1b57cf72..9e3398128 100644 --- a/DashWallet/Sources/Application/Syncyng Activity Monitor/SyncingActivityMonitor.swift +++ b/DashWallet/Sources/Application/Syncyng Activity Monitor/SyncingActivityMonitor.swift @@ -54,16 +54,16 @@ class SyncingActivityMonitor: NSObject, NetworkReachabilityHandling { case unknown } + @objc public var progress: Double = 0 { didSet { observers.forEach { $0.syncingActivityMonitorProgressDidChange(progress) } } } - @objc public var state: State = .unknown { + @objc + public var state: State = .unknown { didSet { - guard state != oldValue else { return } - if state == .syncDone { DWGlobalOptions.sharedInstance().isResyncingWallet = false } From c0761283044bb8a3e2faf8463fadfb23b652d077 Mon Sep 17 00:00:00 2001 From: tikhop Date: Wed, 17 May 2023 15:38:41 +0700 Subject: [PATCH 10/13] feat: Fetch sync state and progress withing 'DWSyncModel' at initialization step and when forcing resync --- DashWallet/Sources/UI/Home/Models/DWSyncModel.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DashWallet/Sources/UI/Home/Models/DWSyncModel.m b/DashWallet/Sources/UI/Home/Models/DWSyncModel.m index 01f501770..f86bb38db 100644 --- a/DashWallet/Sources/UI/Home/Models/DWSyncModel.m +++ b/DashWallet/Sources/UI/Home/Models/DWSyncModel.m @@ -72,6 +72,9 @@ - (instancetype)init { if (self) { _syncMonitor = SyncingActivityMonitor.shared; [_syncMonitor addObserver:self]; + + self.state = _syncMonitor.state; + self.progress = _syncMonitor.progress; } return self; } @@ -86,6 +89,9 @@ - (void)forceStartSyncingActivity { DWSyncLog(@"[DW Sync] forceStartSyncingActivity"); [_syncMonitor forceStartSyncingActivity]; + + self.state = _syncMonitor.state; + self.progress = _syncMonitor.progress; } #pragma mark Private From 5456790c9bcc22cc18af1c5fae4aef32d6a198e1 Mon Sep 17 00:00:00 2001 From: pankcuf Date: Wed, 17 May 2023 15:59:14 +0400 Subject: [PATCH 11/13] [update DashSync] --- DashSyncCurrentCommit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index eed442858..3b913d9a8 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -bfe8076ee4389ad915fcb8148db18fb20ec8660c +ed7da99efb8120e754755d974b6616fd305a39d5 From 827e14c70eeb024289db74be0c60350d74fe1a47 Mon Sep 17 00:00:00 2001 From: pankcuf Date: Wed, 17 May 2023 16:25:20 +0400 Subject: [PATCH 12/13] [update DashSyncCommit (now points to v2.4.1)] --- DashSyncCurrentCommit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 3b913d9a8..6034398a1 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -ed7da99efb8120e754755d974b6616fd305a39d5 +06448a1dc3abf2cbff2d9899ebf86cf849a8bc14 From 983d3ec87fbf64cbd4aaa99968d6fe611837890f Mon Sep 17 00:00:00 2001 From: pankcuf Date: Wed, 17 May 2023 23:23:17 +0400 Subject: [PATCH 13/13] [DashShareCore 0.4.0] --- DashSyncCurrentCommit | 2 +- Podfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 6034398a1..913f2c8b1 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -06448a1dc3abf2cbff2d9899ebf86cf849a8bc14 +bfa1376ac66ddcf02a3de83d3507732a6a1c50a5 diff --git a/Podfile.lock b/Podfile.lock index 63041d85c..5dd312a11 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -588,11 +588,11 @@ PODS: - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - DAPI-GRPC/Messages - gRPC-ProtoRPC - - DashSharedCore (0.3.9) + - DashSharedCore (0.4.0) - DashSync (0.1.0): - CocoaLumberjack (= 3.7.2) - DAPI-GRPC (= 0.22.0-dev.8) - - DashSharedCore (= 0.3.9) + - DashSharedCore (= 0.4.0) - DSDynamicOptions (= 0.1.2) - DWAlertController (= 0.2.1) - TinyCborObjc (= 0.4.6) @@ -699,7 +699,7 @@ PODS: - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - PromisesObjC (2.2.0) - - Protobuf (3.23.0) + - Protobuf (3.23.1) - SDWebImage (5.13.2): - SDWebImage/Core (= 5.13.2) - SDWebImage/Core (5.13.2) @@ -800,8 +800,8 @@ SPEC CHECKSUMS: CocoaImageHashing: 8656031d0899abe6c1c415827de43e9798189c53 CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da DAPI-GRPC: 138d62523bbfe7e88a39896f1053c0bc12390d9f - DashSharedCore: 0558ca3ca37725eeb613247a271dbc2692f05162 - DashSync: 028a42f27e11ded738a25c83c58c894f9ee6755a + DashSharedCore: 4d583600745bc8b8ff32c3968d297fb1bd0e4218 + DashSync: 3ff50b1878685726b452638405d49d5802012732 DSDynamicOptions: 347cc5d2c4e080eb3de6a86719ad3d861b82adfc DWAlertController: 5f4cd8adf90336331c054857f709f5f8d4b16a5b Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d @@ -822,7 +822,7 @@ SPEC CHECKSUMS: Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef - Protobuf: 43e3764cdf3609fdd00417649561565703437fdc + Protobuf: 3dd214698ddb7afd832da281c777b2e9facef401 SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 SQLite.swift: 903bfa3bc9ab06345fdfbb578e34f47cfcf417da SQLiteMigrationManager.swift: 5383578f5bc8955c06695e8bf04835ee0e6673a8