}
}
- long get_route(byte[] dest_node, ChannelDetails[] our_chans) {
+ Route get_route(byte[] dest_node, ChannelDetails[] our_chans) {
try (LockedNetworkGraph netgraph = this.router.read_locked_graph()) {
NetworkGraph graph = netgraph.graph();
- return bindings.get_route(this.node_id, graph._test_only_get_ptr(), dest_node, new long[] {our_chans[0]._test_only_get_ptr()},
+ long res = bindings.get_route(this.node_id, graph._test_only_get_ptr(), dest_node, new long[] {our_chans[0]._test_only_get_ptr()},
new long[0], 1000, 42, this.logger);
+ assert bindings.LDKCResult_RouteLightningErrorZ_result_ok(res);
+ Route copy = Route.constructor_read(bindings.Route_write(bindings.LDKCResult_RouteLightningErrorZ_get_ok(res)));
+ bindings.CResult_RouteLightningErrorZ_free(res);
+ return copy;
}
}
}
peer2.peer_manager.process_events();
while (!list.isEmpty()) { list.poll().join(); }
- long[] events = bindings.EventsProvider_get_and_clear_pending_events(peer1.chan_manager_events._test_only_get_ptr());
+ Event[] events = peer1.chan_manager_events.get_and_clear_pending_events();
assert events.length == 1;
- bindings.LDKEvent event = bindings.LDKEvent_ref_from_ptr(events[0]);
- assert event instanceof bindings.LDKEvent.FundingGenerationReady;
- assert ((bindings.LDKEvent.FundingGenerationReady) event).channel_value_satoshis == 10000;
- assert ((bindings.LDKEvent.FundingGenerationReady) event).user_channel_id == 42;
- byte[] funding_spk = ((bindings.LDKEvent.FundingGenerationReady) event).output_script;
+ assert events[0] instanceof Event.FundingGenerationReady;
+ assert ((Event.FundingGenerationReady)events[0]).channel_value_satoshis == 10000;
+ assert ((Event.FundingGenerationReady)events[0]).user_channel_id == 42;
+ byte[] funding_spk = ((Event.FundingGenerationReady)events[0]).output_script;
assert funding_spk.length == 34 && funding_spk[0] == 0 && funding_spk[1] == 32; // P2WSH
- byte[] chan_id = ((bindings.LDKEvent.FundingGenerationReady) event).temporary_channel_id;
- bindings.CVec_EventZ_free(events);
+ byte[] chan_id = ((Event.FundingGenerationReady)events[0]).temporary_channel_id;
Transaction funding = new Transaction(NetworkParameters.fromID(NetworkParameters.ID_MAINNET));
funding.addInput(new TransactionInput(NetworkParameters.fromID(NetworkParameters.ID_MAINNET), funding, new byte[0]));
peer2.peer_manager.process_events();
while (!list.isEmpty()) { list.poll().join(); }
- events = bindings.EventsProvider_get_and_clear_pending_events(peer1.chan_manager_events._test_only_get_ptr());
+ events = peer1.chan_manager_events.get_and_clear_pending_events();
assert events.length == 1;
- event = bindings.LDKEvent_ref_from_ptr(events[0]);
- assert event instanceof bindings.LDKEvent.FundingBroadcastSafe;
- bindings.CVec_EventZ_free(events);
+ assert events[0] instanceof Event.FundingBroadcastSafe;
+ assert ((Event.FundingBroadcastSafe)events[0]).user_channel_id == 42;
Block b = new Block(NetworkParameters.fromID(NetworkParameters.ID_MAINNET), 2, Sha256Hash.ZERO_HASH, Sha256Hash.ZERO_HASH, 42, 0, 0, Arrays.asList(new Transaction[]{funding}));
peer1.connect_block(b, funding, 1);
byte[] payment_preimage = new byte[32];
for (int i = 0; i < 32; i++) payment_preimage[i] = (byte) (i ^ 0x0f);
byte[] payment_hash = Sha256Hash.hash(payment_preimage);
- long route = peer1.get_route(peer2.node_id, peer1_chans);
- assert bindings.LDKCResult_RouteLightningErrorZ_result_ok(route);
- long payment_res = bindings.ChannelManager_send_payment(peer1.chan_manager._test_only_get_ptr(), bindings.LDKCResult_RouteLightningErrorZ_get_ok(route), payment_hash, new byte[32]);
- bindings.CResult_RouteLightningErrorZ_free(route);
- assert bindings.LDKCResult_NonePaymentSendFailureZ_result_ok(payment_res);
- bindings.CResult_NonePaymentSendFailureZ_free(payment_res);
+ Route route = peer1.get_route(peer2.node_id, peer1_chans);
+ Result_NonePaymentSendFailureZ payment_res = peer1.chan_manager.send_payment(route, payment_hash, new byte[32]);
+ assert payment_res instanceof Result_NonePaymentSendFailureZ.Result_NonePaymentSendFailureZ_OK;
peer1.peer_manager.process_events();
while (!list.isEmpty()) { list.poll().join(); }