From be744c2fe12f0babf9ff1058cefe6f5890022ef7 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 18 Jul 2022 23:05:44 +0200 Subject: [PATCH] ForwardingService: infer network from address This means for mainnet and testnet, you don't have to provide the network name. It will be inferred from the address. For signet and regtest however the network name is still needed. --- .../org/bitcoinj/examples/ForwardingService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java b/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java index a95a3a831..f5988e41f 100644 --- a/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java +++ b/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java @@ -60,9 +60,17 @@ public class ForwardingService { } // Figure out which network we should connect to. Each network gets its own set of files. - var networkString = (args.length > 1) ? args[1] : "mainnet"; - var network = BitcoinNetwork.fromString(networkString).orElseThrow(); - var address = Address.fromString(NetworkParameters.of(network), args[0]); + Address address; + BitcoinNetwork network; + if (args.length >= 2) { + // Verify address belongs to network + network = BitcoinNetwork.fromString(args[1]).orElseThrow(); + address = Address.fromString(NetworkParameters.of(network), args[0]); + } else { + // Infer network from address + address = Address.fromString(null, args[0]); + network = address.network(); + } forward(network, address); }