+ }
+
+ final Logger logger;
+ final FeeEstimator fee_estimator;
+ final BroadcasterInterface tx_broadcaster;
+ final KeysInterface keys_interface;
+ final ChainMonitor chain_monitor;
+ final ChannelManager chan_manager;
+ final EventsProvider chan_manager_events;
+ final NetGraphMsgHandler router;
+ final PeerManager peer_manager;
+ final HashMap<String, ChannelMonitor> monitors; // Wow I forgot just how terrible Java is - we can't put a byte array here.
+ byte[] node_id;
+ final LinkedList<byte[]> broadcast_set = new LinkedList<>();
+
+ Peer(byte seed, boolean use_km_wrapper, boolean use_manual_watch) {
+ logger = Logger.new_impl((String arg) -> System.out.println(seed + ": " + arg));
+ fee_estimator = FeeEstimator.new_impl((confirmation_target -> 253));
+ tx_broadcaster = BroadcasterInterface.new_impl(tx -> {
+ broadcast_set.add(tx);
+ });
+ this.monitors = new HashMap<>();
+ Watch chain_watch;
+ if (use_manual_watch) {
+ chain_watch = get_manual_watch();
+ chain_monitor = null;
+ } else {
+ chain_monitor = ChainMonitor.constructor_new(null, tx_broadcaster, logger, fee_estimator);
+ chain_watch = chain_monitor.as_Watch();
+ }