From: Matt Corallo Date: Tue, 1 Sep 2020 20:49:23 +0000 (-0400) Subject: Add new test that builds a ChannelManager X-Git-Tag: v0.0.1~145 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=8fb70334f03f3d7283f1ed144b0c377a55659b2f;p=ldk-java Add new test that builds a ChannelManager --- diff --git a/src/test/java/org/ldk/PeerTest.java b/src/test/java/org/ldk/PeerTest.java new file mode 100644 index 00000000..17d68b72 --- /dev/null +++ b/src/test/java/org/ldk/PeerTest.java @@ -0,0 +1,102 @@ +package org.ldk; + +import org.junit.jupiter.api.Test; +import org.ldk.impl.bindings; + +public class PeerTest { + @Test + void test_message_handler() { + long logger = bindings.LDKLogger_new((String arg)-> System.out.println(arg)); + + long fee_estimator = bindings.LDKFeeEstimator_new(new bindings.LDKFeeEstimator() { + @Override + public int get_est_sat_per_1000_weight(bindings.LDKConfirmationTarget confirmation_target) { + return 0; + } + }); + long tx_broadcaster = bindings.LDKBroadcasterInterface_new(new bindings.LDKBroadcasterInterface() { + @Override + public void broadcast_transaction(long tx) { + // We should broadcast + } + }); + long chain_monitor = bindings.LDKManyChannelMonitor_new(new bindings.LDKManyChannelMonitor() { + @Override + public long add_monitor(long funding_txo, long monitor) { + return 0; + } + + @Override + public long update_monitor(long funding_txo, long monitor) { + return 0; + } + + @Override + public long get_and_clear_pending_monitor_events() { + return 0; + } + }); + byte[] key_seed = new byte[32]; + for (byte i = 0; i < 32; i++) { key_seed[i] = i; } + long keys = bindings.KeysManager_new(key_seed, bindings.LDKNetwork.LDKNetwork_Bitcoin, System.currentTimeMillis() / 1000, (int)(System.currentTimeMillis() * 1000) & 0xffffffff); + long keys_interface = bindings.KeysManager_as_KeysInterface(keys); + long config = bindings.UserConfig_default(); + long chan_manager = bindings.ChannelManager_new(bindings.LDKNetwork.LDKNetwork_Bitcoin, fee_estimator, chain_monitor, tx_broadcaster, logger, keys_interface, config, 1); + + long chan_handler = bindings.ChannelManager_as_ChannelMessageHandler(chan_manager); + long chain_watch = bindings.LDKChainWatchInterface_new(new bindings.LDKChainWatchInterface() { + @Override + public void install_watch_tx(byte[] txid, long script_pub_key) { + + } + + @Override + public void install_watch_outpoint(long outpoint, long out_script) { + + } + + @Override + public void watch_all_txn() { + + } + + @Override + public long get_chain_utxo(long genesis_hash, long unspent_tx_output_identifier) { + return 0; + } + + @Override + public long filter_block(long block) { + return 0; + } + + @Override + public long reentered() { + return 0; + } + }); + long router = bindings.NetGraphMsgHandler_new(chain_watch, logger); + long route_handler = bindings.NetGraphMsgHandler_as_RoutingMessageHandler(router); + long message_handler = bindings.MessageHandler_new(chan_handler, route_handler); + long our_node_secret = bindings.LDKSecretKey_new(); //TODO: Need LDKSecretKey constructor + byte[] random_data = new byte[32]; + for (byte i = 0; i < 32; i++) { random_data[i] = i; } + + long peer_manager = bindings.PeerManager_new(message_handler, our_node_secret, random_data, logger); + + // Note that we can't rely on finalizer order, so don't bother trying to rely on it here + bindings.Logger_free(logger); + bindings.FeeEstimator_free(fee_estimator); + bindings.BroadcasterInterface_free(tx_broadcaster); + bindings.ManyChannelMonitor_free(chain_monitor); + bindings.KeysManager_free(keys); + bindings.KeysInterface_free(keys_interface); + bindings.ChannelManager_free(chan_manager); + bindings.ChannelMessageHandler_free(chan_handler); + bindings.ChainWatchInterface_free(chain_watch); + bindings.NetGraphMsgHandler_free(router); + bindings.RoutingMessageHandler_free(route_handler); + //bindings.MessageHandler_free(message_handler); + bindings.PeerManager_free(peer_manager); + } +}