[#1180] Handle production GetSubtreeRootsArg

- the value 65536 set only for testnet
This commit is contained in:
Lukas Korba 2023-08-10 08:30:58 +02:00
parent 5bfd8aee31
commit 562780ef4f
2 changed files with 5 additions and 3 deletions

View File

@ -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)

View File

@ -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: