[#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 9676c7fc67
commit 1205f402c6
2 changed files with 5 additions and 3 deletions

View File

@ -8,11 +8,13 @@
import Foundation import Foundation
final class UpdateSubtreeRootsAction { final class UpdateSubtreeRootsAction {
let configProvider: CompactBlockProcessor.ConfigProvider
let rustBackend: ZcashRustBackendWelding let rustBackend: ZcashRustBackendWelding
let service: LightWalletService let service: LightWalletService
let logger: Logger let logger: Logger
init(container: DIContainer) { init(container: DIContainer, configProvider: CompactBlockProcessor.ConfigProvider) {
self.configProvider = configProvider
service = container.resolve(LightWalletService.self) service = container.resolve(LightWalletService.self)
rustBackend = container.resolve(ZcashRustBackendWelding.self) rustBackend = container.resolve(ZcashRustBackendWelding.self)
logger = container.resolve(Logger.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 { func run(with context: ActionContext, didUpdate: @escaping (CompactBlockProcessor.Event) async -> Void) async throws -> ActionContext {
var request = GetSubtreeRootsArg() var request = GetSubtreeRootsArg()
request.shieldedProtocol = .sapling 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.") logger.info("Attempt to get subtree roots, this may fail because lightwalletd may not support Spend before Sync.")
let stream = service.getSubtreeRoots(request) let stream = service.getSubtreeRoots(request)

View File

@ -225,7 +225,7 @@ actor CompactBlockProcessor {
case .validateServer: case .validateServer:
action = ValidateServerAction(container: container, configProvider: configProvider) action = ValidateServerAction(container: container, configProvider: configProvider)
case .updateSubtreeRoots: case .updateSubtreeRoots:
action = UpdateSubtreeRootsAction(container: container) action = UpdateSubtreeRootsAction(container: container, configProvider: configProvider)
case .updateChainTip: case .updateChainTip:
action = UpdateChainTipAction(container: container) action = UpdateChainTipAction(container: container)
case .processSuggestedScanRanges: case .processSuggestedScanRanges: