From 562780ef4f1df61c64212e59c2e8bc3eb8c0d368 Mon Sep 17 00:00:00 2001 From: Lukas Korba Date: Thu, 10 Aug 2023 08:30:58 +0200 Subject: [PATCH] [#1180] Handle production GetSubtreeRootsArg - the value 65536 set only for testnet --- .../Block/Actions/UpdateSubtreeRootsAction.swift | 6 ++++-- .../ZcashLightClientKit/Block/CompactBlockProcessor.swift | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Sources/ZcashLightClientKit/Block/Actions/UpdateSubtreeRootsAction.swift b/Sources/ZcashLightClientKit/Block/Actions/UpdateSubtreeRootsAction.swift index 35aa47f7..3d6a7c6b 100644 --- a/Sources/ZcashLightClientKit/Block/Actions/UpdateSubtreeRootsAction.swift +++ b/Sources/ZcashLightClientKit/Block/Actions/UpdateSubtreeRootsAction.swift @@ -8,11 +8,13 @@ import Foundation final class UpdateSubtreeRootsAction { + let configProvider: CompactBlockProcessor.ConfigProvider let rustBackend: ZcashRustBackendWelding let service: LightWalletService let logger: Logger - init(container: DIContainer) { + init(container: DIContainer, configProvider: CompactBlockProcessor.ConfigProvider) { + self.configProvider = configProvider service = container.resolve(LightWalletService.self) rustBackend = container.resolve(ZcashRustBackendWelding.self) logger = container.resolve(Logger.self) @@ -25,7 +27,7 @@ extension UpdateSubtreeRootsAction: Action { func run(with context: ActionContext, didUpdate: @escaping (CompactBlockProcessor.Event) async -> Void) async throws -> ActionContext { var request = GetSubtreeRootsArg() request.shieldedProtocol = .sapling - request.maxEntries = 65536 + request.maxEntries = await configProvider.config.network.networkType == .testnet ? 65536 : 0 logger.info("Attempt to get subtree roots, this may fail because lightwalletd may not support Spend before Sync.") let stream = service.getSubtreeRoots(request) diff --git a/Sources/ZcashLightClientKit/Block/CompactBlockProcessor.swift b/Sources/ZcashLightClientKit/Block/CompactBlockProcessor.swift index 3bd1ea43..406d6dd8 100644 --- a/Sources/ZcashLightClientKit/Block/CompactBlockProcessor.swift +++ b/Sources/ZcashLightClientKit/Block/CompactBlockProcessor.swift @@ -225,7 +225,7 @@ actor CompactBlockProcessor { case .validateServer: action = ValidateServerAction(container: container, configProvider: configProvider) case .updateSubtreeRoots: - action = UpdateSubtreeRootsAction(container: container) + action = UpdateSubtreeRootsAction(container: container, configProvider: configProvider) case .updateChainTip: action = UpdateChainTipAction(container: container) case .processSuggestedScanRanges: