3 import org.junit.jupiter.api.Test;
4 import org.ldk.impl.bindings;
6 public class PeerTest {
8 void test_message_handler() {
9 long logger = bindings.LDKLogger_new((String arg)-> System.out.println(arg));
11 long fee_estimator = bindings.LDKFeeEstimator_new(new bindings.LDKFeeEstimator() {
13 public int get_est_sat_per_1000_weight(bindings.LDKConfirmationTarget confirmation_target) {
17 long tx_broadcaster = bindings.LDKBroadcasterInterface_new(new bindings.LDKBroadcasterInterface() {
19 public void broadcast_transaction(long tx) {
20 // We should broadcast
23 long chain_monitor = bindings.LDKWatch_new(new bindings.LDKWatch() {
25 public long watch_channel(long funding_txo, long monitor) {
30 public long update_channel(long funding_txo, long update) {
35 public long release_pending_monitor_events() {
39 byte[] key_seed = new byte[32];
40 for (byte i = 0; i < 32; i++) { key_seed[i] = i; }
41 long keys = bindings.KeysManager_new(key_seed, bindings.LDKNetwork.LDKNetwork_Bitcoin, System.currentTimeMillis() / 1000, (int)(System.currentTimeMillis() * 1000) & 0xffffffff);
42 long keys_interface = bindings.KeysManager_as_KeysInterface(keys);
43 long config = bindings.UserConfig_default();
44 long chan_manager = bindings.ChannelManager_new(bindings.LDKNetwork.LDKNetwork_Bitcoin, fee_estimator, chain_monitor, tx_broadcaster, logger, keys_interface, config, 1);
46 long chan_handler = bindings.ChannelManager_as_ChannelMessageHandler(chan_manager);
47 long router = bindings.NetGraphMsgHandler_new(0, logger);
48 long route_handler = bindings.NetGraphMsgHandler_as_RoutingMessageHandler(router);
49 long message_handler = bindings.MessageHandler_new(chan_handler, route_handler);
50 long our_node_secret = bindings.LDKSecretKey_new(); //TODO: Need LDKSecretKey constructor
51 byte[] random_data = new byte[32];
52 for (byte i = 0; i < 32; i++) { random_data[i] = i; }
54 long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger);
56 // Note that we can't rely on finalizer order, so don't bother trying to rely on it here
57 bindings.Logger_free(logger);
58 bindings.FeeEstimator_free(fee_estimator);
59 bindings.BroadcasterInterface_free(tx_broadcaster);
60 bindings.Watch_free(chain_monitor);
61 bindings.KeysManager_free(keys);
62 bindings.KeysInterface_free(keys_interface);
63 bindings.ChannelManager_free(chan_manager);
64 bindings.ChannelMessageHandler_free(chan_handler);
65 bindings.NetGraphMsgHandler_free(router);
66 bindings.RoutingMessageHandler_free(route_handler);
67 //bindings.MessageHandler_free(message_handler);
68 bindings.PeerManager_free(peer_manager);