Skip to content

Commit 0677450

Browse files
committed
[TS] Update to latest LDK API
1 parent bd8e3f0 commit 0677450

File tree

3 files changed

+44
-35
lines changed

3 files changed

+44
-35
lines changed

node-net/net.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export class NodeLDKNet {
5555
let descriptor = ldk.SocketDescriptor.new_impl ({
5656
send_data(data: Uint8Array, resume_read: boolean): number {
5757
if (resume_read) socket.resume();
58+
else socket.pause();
5859

5960
if (sock_write_waiting) return 0;
6061
const written = socket.write(data);
@@ -83,7 +84,6 @@ export class NodeLDKNet {
8384
socket.on("data", function(data) {
8485
const res = this_pm.read_event(descriptor, data);
8586
if (!res.is_ok()) descriptor.disconnect_socket();
86-
else if ((res as ldk.Result_boolPeerHandleErrorZ_OK).res) socket.pause();
8787
this_pm.process_events();
8888
});
8989

node-net/test/test.mts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const logger_b = logger_a;
1515

1616
const node_a_seed = new Uint8Array(32);
1717
for (var i = 0; i < 32; i++) node_a_seed[i] = 42;
18-
const keys_manager_a = ldk.KeysManager.constructor_new(node_a_seed, 0xdeadbeefn, 0xdeadbeef);
18+
const keys_manager_a = ldk.KeysManager.constructor_new(node_a_seed, 0xdeadbeefn, 0xdeadbeef, true);
1919
// The public key for a secret key of all 42s:
2020
const node_a_pk = new Uint8Array([2, 199, 152, 57, 62, 230, 84, 174, 99,
2121
219, 13, 9, 134, 214, 253, 64, 62,
@@ -24,15 +24,16 @@ const node_a_pk = new Uint8Array([2, 199, 152, 57, 62, 230, 84, 174, 99,
2424

2525
const node_b_seed = new Uint8Array(32);
2626
for (var i = 0; i < 32; i++) node_b_seed[i] = 43;
27-
const keys_manager_b = ldk.KeysManager.constructor_new(node_b_seed, 0xdeadbeefn, 0xdeadbeef);
27+
const keys_manager_b = ldk.KeysManager.constructor_new(node_b_seed, 0xdeadbeefn, 0xdeadbeef, true);
2828

2929
const rng_seed = new Uint8Array(32);
3030
const routing_handler = ldk.IgnoringMessageHandler.constructor_new().as_RoutingMessageHandler();
3131
const chan_handler = ldk.ErroringMessageHandler.constructor_new().as_ChannelMessageHandler();
3232
const cust_handler = ldk.IgnoringMessageHandler.constructor_new().as_CustomMessageHandler();
3333
const onion_handler = ldk.IgnoringMessageHandler.constructor_new().as_OnionMessageHandler();
34+
const send_handler = ldk.IgnoringMessageHandler.constructor_new().as_SendOnlyMessageHandler();
3435

35-
const a_pm = ldk.PeerManager.constructor_new(chan_handler, routing_handler, onion_handler, cust_handler, 0xdeadbeef, rng_seed, logger_a, keys_manager_a.as_NodeSigner());
36+
const a_pm = ldk.PeerManager.constructor_new(chan_handler, routing_handler, onion_handler, cust_handler, send_handler, 0xdeadbeef, rng_seed, logger_a, keys_manager_a.as_NodeSigner());
3637
const a_net_handler = new node_net.NodeLDKNet(a_pm);
3738
var port = 10000;
3839
for (; port < 11000; port++) {
@@ -43,7 +44,7 @@ for (; port < 11000; port++) {
4344
} catch(_) {}
4445
}
4546

46-
const b_pm = ldk.PeerManager.constructor_new(chan_handler, routing_handler, onion_handler, cust_handler, 0xdeadbeef, rng_seed, logger_b, keys_manager_b.as_NodeSigner());
47+
const b_pm = ldk.PeerManager.constructor_new(chan_handler, routing_handler, onion_handler, cust_handler, send_handler, 0xdeadbeef, rng_seed, logger_b, keys_manager_b.as_NodeSigner());
4748
const b_net_handler = new node_net.NodeLDKNet(b_pm);
4849
await b_net_handler.connect_peer("127.0.0.1", port, node_a_pk);
4950

ts/test/tests.mts

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ var seed_counter = 0;
6161
class Node {
6262
node_id: Uint8Array;
6363
constructor(public chan_man: ldk.ChannelManager, public tx_broadcasted: Promise<Uint8Array>,
64-
public logger: ldk.Logger, public keys_manager: ldk.KeysManager,
65-
public net_graph: ldk.NetworkGraph
64+
public chain_monitor: ldk.ChainMonitor, public logger: ldk.Logger,
65+
public keys_manager: ldk.KeysManager, public net_graph: ldk.NetworkGraph
6666
) {
6767
this.node_id = chan_man.get_our_node_id();
6868
}
@@ -95,16 +95,19 @@ function get_chanman(): Node {
9595
},
9696
update_persisted_channel(_channel_id: ldk.OutPoint, _update: ldk.ChannelMonitorUpdate, _data: ldk.ChannelMonitor): ldk.ChannelMonitorUpdateStatus {
9797
return ldk.ChannelMonitorUpdateStatus.LDKChannelMonitorUpdateStatus_Completed;
98+
},
99+
get_and_clear_completed_updates(): ldk.TwoTuple_ChannelIdu64Z[] {
100+
return [];
98101
}
99102
} as ldk.PersistInterface);
100103

101-
const chain_monitor = ldk.ChainMonitor.constructor_new(ldk.Option_FilterZ.constructor_none(), tx_broadcaster!, logger, fee_est, persister);
102-
const chain_watch: ldk.Watch = chain_monitor.as_Watch();
103-
104104
const seed = new Uint8Array(32);
105105
seed.fill(seed_counter);
106106
seed_counter++;
107-
const keys_manager = ldk.KeysManager.constructor_new(seed, BigInt(42), 42);
107+
const keys_manager = ldk.KeysManager.constructor_new(seed, BigInt(42), 42, true);
108+
109+
const chain_monitor = ldk.ChainMonitor.constructor_new(ldk.Option_FilterZ.constructor_none(), tx_broadcaster!, logger, fee_est, persister, keys_manager.as_EntropySource(), keys_manager.as_NodeSigner().get_peer_storage_key());
110+
const chain_watch: ldk.Watch = chain_monitor.as_Watch();
108111

109112
const net_graph = ldk.NetworkGraph.constructor_new(ldk.Network.LDKNetwork_Testnet4, logger);
110113
const scorer = ldk.ProbabilisticScorer.constructor_new(ldk.ProbabilisticScoringDecayParameters.constructor_default(), net_graph, logger);
@@ -117,14 +120,14 @@ function get_chanman(): Node {
117120
const chan_man = ldk.ChannelManager.constructor_new(fee_est, chain_watch, tx_broadcaster!, router.as_Router(),
118121
msg_router.as_MessageRouter(), logger, keys_manager.as_EntropySource(), keys_manager.as_NodeSigner(),
119122
keys_manager.as_SignerProvider(), config, params, 42);
120-
return new Node(chan_man, tx_broadcasted, logger, keys_manager, net_graph);
123+
return new Node(chan_man, tx_broadcasted, chain_monitor, logger, keys_manager, net_graph);
121124
}
122125

123126
function exchange_messages(a: ldk.ChannelManager, b: ldk.ChannelManager) {
124127
var found_msgs = true;
125128
while (found_msgs) {
126-
const as_msgs = a.as_MessageSendEventsProvider().get_and_clear_pending_msg_events();
127-
const bs_msgs = b.as_MessageSendEventsProvider().get_and_clear_pending_msg_events();
129+
const as_msgs = a.as_BaseMessageHandler().get_and_clear_pending_msg_events();
130+
const bs_msgs = b.as_BaseMessageHandler().get_and_clear_pending_msg_events();
128131
found_msgs = as_msgs.length != 0 || bs_msgs.length != 0;
129132
for (var i = 0; i < 2; i++) {
130133
var to: ldk.ChannelManager; var from: ldk.ChannelManager; var msgs: ldk.MessageSendEvent[];
@@ -181,10 +184,10 @@ tests.push(async () => {
181184
const a = get_chanman();
182185
const b = get_chanman();
183186

184-
const features = a.chan_man.as_ChannelMessageHandler().provided_init_features(b.chan_man.get_our_node_id());
187+
const features = a.chan_man.as_BaseMessageHandler().provided_init_features(b.chan_man.get_our_node_id());
185188

186-
a.chan_man.as_ChannelMessageHandler().peer_connected(b.chan_man.get_our_node_id(), ldk.Init.constructor_new(features, ldk.Option_CVec_ThirtyTwoBytesZZ.constructor_none(), ldk.Option_SocketAddressZ.constructor_none()), false);
187-
b.chan_man.as_ChannelMessageHandler().peer_connected(a.chan_man.get_our_node_id(), ldk.Init.constructor_new(features, ldk.Option_CVec_ThirtyTwoBytesZZ.constructor_none(), ldk.Option_SocketAddressZ.constructor_none()), true);
189+
a.chan_man.as_BaseMessageHandler().peer_connected(b.chan_man.get_our_node_id(), ldk.Init.constructor_new(features, ldk.Option_CVec_ThirtyTwoBytesZZ.constructor_none(), ldk.Option_SocketAddressZ.constructor_none()), false);
190+
b.chan_man.as_BaseMessageHandler().peer_connected(a.chan_man.get_our_node_id(), ldk.Init.constructor_new(features, ldk.Option_CVec_ThirtyTwoBytesZZ.constructor_none(), ldk.Option_SocketAddressZ.constructor_none()), true);
188191

189192
const chan_create_err = a.chan_man.create_channel(b.chan_man.get_our_node_id(), BigInt(0), BigInt(400), BigInt(0), null, null);
190193
if (chan_create_err.is_ok()) return false;
@@ -232,16 +235,16 @@ tests.push(async () => {
232235

233236
const ignorer = ldk.IgnoringMessageHandler.constructor_new();
234237
const pm_a = ldk.PeerManager.constructor_new(a.chan_man.as_ChannelMessageHandler(), ignorer.as_RoutingMessageHandler(),
235-
ignorer.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(),
238+
ignorer.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(), a.chain_monitor.as_SendOnlyMessageHandler(),
236239
0xdeadbeef, a.keys_manager.as_EntropySource().get_secure_random_bytes(), a.logger, a.keys_manager.as_NodeSigner());
237240
const pm_b = ldk.PeerManager.constructor_new(b.chan_man.as_ChannelMessageHandler(), ignorer.as_RoutingMessageHandler(),
238-
ignorer.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(),
241+
ignorer.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(), b.chain_monitor.as_SendOnlyMessageHandler(),
239242
0xdeadbeef, b.keys_manager.as_EntropySource().get_secure_random_bytes(), b.logger, b.keys_manager.as_NodeSigner());
240243

241244
var sock_b: ldk.SocketDescriptor;
242245
const sock_a = ldk.SocketDescriptor.new_impl({
243246
send_data(data: Uint8Array, resume_read: boolean): number {
244-
assert(pm_b.read_event(sock_b, data) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
247+
assert(pm_b.read_event(sock_b, data) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
245248
assert(resume_read);
246249
return data.length;
247250
},
@@ -257,7 +260,7 @@ tests.push(async () => {
257260
} as ldk.SocketDescriptorInterface);
258261
sock_b = ldk.SocketDescriptor.new_impl({
259262
send_data(data: Uint8Array, resume_read: boolean): number {
260-
assert(pm_a.read_event(sock_a, data) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
263+
assert(pm_a.read_event(sock_a, data) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
261264
assert(resume_read);
262265
return data.length;
263266
},
@@ -283,7 +286,7 @@ tests.push(async () => {
283286
assert(pm_b.new_inbound_connection(sock_b, ldk.Option_SocketAddressZ.constructor_some(v4_netaddr)) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
284287
const init_bytes = pm_a.new_outbound_connection(b.node_id, sock_a, ldk.Option_SocketAddressZ.constructor_none());
285288
if (!(init_bytes instanceof ldk.Result_CVec_u8ZPeerHandleErrorZ_OK)) return false;
286-
assert(pm_b.read_event(sock_b, init_bytes.res) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
289+
assert(pm_b.read_event(sock_b, init_bytes.res) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
287290

288291
assert(pm_a.list_peers().length == 0);
289292
assert(pm_b.list_peers().length == 0);
@@ -348,22 +351,27 @@ tests.push(async () => {
348351
handle_onion_message(peer_node_id: Uint8Array, msg: ldk.OnionMessage) {
349352
underlying_om_a.as_OnionMessageHandler().handle_onion_message(peer_node_id, msg);
350353
},
354+
next_onion_message_for_peer(peer_node_id: Uint8Array): ldk.OnionMessage {
355+
return underlying_om_a.as_OnionMessageHandler().next_onion_message_for_peer(peer_node_id);
356+
},
357+
timer_tick_occurred() {},
358+
} as ldk.OnionMessageHandlerInterface, {
351359
peer_connected(their_node_id: Uint8Array, init: ldk.Init, inbound: boolean): ldk.Result_NoneNoneZ {
352-
return underlying_om_a.as_OnionMessageHandler().peer_connected(their_node_id, init, inbound)
360+
return underlying_om_a.as_BaseMessageHandler().peer_connected(their_node_id, init, inbound)
353361
},
354362
peer_disconnected(their_node_id: Uint8Array) {
355-
underlying_om_a.as_OnionMessageHandler().peer_disconnected(their_node_id);
363+
underlying_om_a.as_BaseMessageHandler().peer_disconnected(their_node_id);
356364
},
357365
provided_node_features(): ldk.NodeFeatures {
358-
return underlying_om_a.as_OnionMessageHandler().provided_node_features();
366+
return underlying_om_a.as_BaseMessageHandler().provided_node_features();
359367
},
360368
provided_init_features(their_node_id: Uint8Array): ldk.InitFeatures {
361-
return underlying_om_a.as_OnionMessageHandler().provided_init_features(their_node_id);
369+
return underlying_om_a.as_BaseMessageHandler().provided_init_features(their_node_id);
362370
},
363-
next_onion_message_for_peer(peer_node_id: Uint8Array): ldk.OnionMessage {
364-
return underlying_om_a.as_OnionMessageHandler().next_onion_message_for_peer(peer_node_id);
371+
get_and_clear_pending_msg_events(): ldk.MessageSendEvent[] {
372+
return [];
365373
},
366-
} as ldk.OnionMessageHandlerInterface);
374+
} as ldk.BaseMessageHandlerInterface);
367375

368376
var b_handled_msg = false;
369377
const om_handler_b = ldk.CustomOnionMessageHandler.new_impl({
@@ -394,16 +402,16 @@ tests.push(async () => {
394402
b.chan_man.as_DNSResolverMessageHandler(), om_handler_b);
395403

396404
const pm_a = ldk.PeerManager.constructor_new(a.chan_man.as_ChannelMessageHandler(), ignorer.as_RoutingMessageHandler(),
397-
om_a, ignorer.as_CustomMessageHandler(), 0xdeadbeef,
405+
om_a, ignorer.as_CustomMessageHandler(), a.chain_monitor.as_SendOnlyMessageHandler(), 0xdeadbeef,
398406
a.keys_manager.as_EntropySource().get_secure_random_bytes(), a.logger, a.keys_manager.as_NodeSigner());
399407
const pm_b = ldk.PeerManager.constructor_new(b.chan_man.as_ChannelMessageHandler(), ignorer.as_RoutingMessageHandler(),
400-
om_b.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(), 0xdeadbeef,
401-
b.keys_manager.as_EntropySource().get_secure_random_bytes(), b.logger, b.keys_manager.as_NodeSigner());
408+
om_b.as_OnionMessageHandler(), ignorer.as_CustomMessageHandler(), b.chain_monitor.as_SendOnlyMessageHandler(),
409+
0xdeadbeef, b.keys_manager.as_EntropySource().get_secure_random_bytes(), b.logger, b.keys_manager.as_NodeSigner());
402410

403411
var sock_b: ldk.SocketDescriptor;
404412
const sock_a = ldk.SocketDescriptor.new_impl({
405413
send_data(data: Uint8Array, resume_read: boolean): number {
406-
assert(pm_b.read_event(sock_b, data) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
414+
assert(pm_b.read_event(sock_b, data) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
407415
assert(resume_read);
408416
return data.length;
409417
},
@@ -419,7 +427,7 @@ tests.push(async () => {
419427
} as ldk.SocketDescriptorInterface);
420428
sock_b = ldk.SocketDescriptor.new_impl({
421429
send_data(data: Uint8Array, resume_read: boolean): number {
422-
assert(pm_a.read_event(sock_a, data) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
430+
assert(pm_a.read_event(sock_a, data) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
423431
assert(resume_read);
424432
return data.length;
425433
},
@@ -438,7 +446,7 @@ tests.push(async () => {
438446
assert(pm_b.new_inbound_connection(sock_b, ldk.Option_SocketAddressZ.constructor_some(v4_netaddr)) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
439447
const init_bytes = pm_a.new_outbound_connection(b.node_id, sock_a, ldk.Option_SocketAddressZ.constructor_none());
440448
if (!(init_bytes instanceof ldk.Result_CVec_u8ZPeerHandleErrorZ_OK)) return false;
441-
assert(pm_b.read_event(sock_b, init_bytes.res) instanceof ldk.Result_boolPeerHandleErrorZ_OK);
449+
assert(pm_b.read_event(sock_b, init_bytes.res) instanceof ldk.Result_NonePeerHandleErrorZ_OK);
442450

443451
assert(pm_a.list_peers().length == 0);
444452
assert(pm_b.list_peers().length == 0);

0 commit comments

Comments
 (0)