@Override public byte[] get_shutdown_pubkey() { return underlying_if.get_shutdown_pubkey(); }
@Override
- public ChannelKeys get_channel_keys(boolean inbound, long channel_value_satoshis) {
- ChannelKeys underlying_ck = underlying_if.get_channel_keys(inbound, channel_value_satoshis);
- ChannelKeys.ChannelKeysInterface cki = new ChannelKeys.ChannelKeysInterface() {
+ public Sign get_channel_signer(boolean inbound, long channel_value_satoshis) {
+ Sign underlying_ck = underlying_if.get_channel_signer(inbound, channel_value_satoshis);
+ Sign.SignInterface si = new Sign.SignInterface() {
@Override
public byte[] get_per_commitment_point(long idx) {
return underlying_ck.get_per_commitment_point(idx);
}
@Override
- public TwoTuple<Long, Long> key_derivation_params() {
- return new TwoTuple<Long, Long>((long)0, (long)1);
+ public byte[] channel_keys_id() {
+ return new byte[32];
}
@Override
return underlying_ck.write();
}
};
- ChannelKeys resp = ChannelKeys.new_impl(cki, underlying_ck.get_pubkeys());
- must_free_objs.add(new WeakReference<>(cki));
+ Sign resp = Sign.new_impl(si, underlying_ck.get_pubkeys());
+ must_free_objs.add(new WeakReference<>(si));
must_free_objs.add(new WeakReference<>(resp));
must_free_objs.add(new WeakReference<>(underlying_ck));
return resp;
}
@Override
- public Result_ChanKeySignerDecodeErrorZ read_chan_signer(byte[] reader) {
+ public Result_SignDecodeErrorZ read_chan_signer(byte[] reader) {
return underlying_if.read_chan_signer(reader);
}
});
for (byte i = 0; i < 32; i++) {
key_seed[i] = (byte) (i ^ seed);
}
- KeysManager keys = KeysManager.constructor_new(key_seed, LDKNetwork.LDKNetwork_Bitcoin, System.currentTimeMillis() / 1000, (int) (System.currentTimeMillis() * 1000));
+ KeysManager keys = KeysManager.constructor_new(key_seed, System.currentTimeMillis() / 1000, (int) (System.currentTimeMillis() * 1000));
if (use_km_wrapper) {
this.keys_interface = manual_keysif(keys.as_KeysInterface());
} else {
}
Peer(byte seed) {
this(null, seed);
- this.chan_manager = ChannelManager.constructor_new(LDKNetwork.LDKNetwork_Bitcoin, FeeEstimator.new_impl(confirmation_target -> 0), chain_watch, tx_broadcaster, logger, this.keys_interface, UserConfig.constructor_default(), 1);
+ this.chan_manager = ChannelManager.constructor_new(FeeEstimator.new_impl(confirmation_target -> 0), chain_watch, tx_broadcaster, logger, this.keys_interface, UserConfig.constructor_default(), LDKNetwork.LDKNetwork_Bitcoin, new byte[32], 1);
this.node_id = chan_manager.get_our_node_id();
this.chan_manager_events = chan_manager.as_EventsProvider();
return null;
}
+ Event[] get_monitor_events() {
+ if (chain_monitor != null) {
+ return chain_monitor.as_EventsProvider().get_and_clear_pending_events();
+ } else {
+ synchronized (monitors) {
+ assert monitors.size() == 1;
+ for (ChannelMonitor mon : monitors.values()) {
+ return mon.get_and_clear_pending_events();
+ }
+ return null;
+ }
+ }
+ }
+
Route get_route(byte[] dest_node, ChannelDetails[] our_chans) {
try (LockedNetworkGraph netgraph = this.router.read_locked_graph()) {
NetworkGraph graph = netgraph.graph();
assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_OK;
wait_events_processed(peer1, peer2);
+ RouteHop[][] hops = new RouteHop[1][1];
+ byte[] hop_pubkey = new byte[33];
+ hop_pubkey[0] = 3;
+ hop_pubkey[1] = 42;
+ hops[0][0] = RouteHop.constructor_new(hop_pubkey, NodeFeatures.constructor_known(), 42, ChannelFeatures.constructor_known(), 100, 0);
+ Route r2 = Route.constructor_new(hops);
+ payment_res = peer1.chan_manager.send_payment(r2, payment_hash, new byte[32]);
+ assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_Err;
+
+ assert peer1.get_monitor_events().length == 0;
+ assert peer2.get_monitor_events().length == 0;
+
if (reload_peers) {
if (use_nio_peer_handler) {
peer1.nio_peer_handler.interrupt();
state.peer1.nio_peer_handler.interrupt();
state.peer2.nio_peer_handler.interrupt();
}
+
+ assert state.peer1.get_monitor_events().length == 0;
+ assert state.peer2.get_monitor_events().length == 0;
}
java.util.LinkedList<WeakReference<Object>> must_free_objs = new java.util.LinkedList();