- bindings updates
[rust-lightning] / lightning-c-bindings / demo.cpp
index 36a11a783a2e02add690b7c2c866b0aabe526942..a92ae028480e758268764dcdb695b23d03036ab6 100644 (file)
@@ -98,6 +98,10 @@ const LDKThirtyTwoBytes payment_hash_1 = {
        }
 };
 
+const LDKThirtyTwoBytes genesis_hash = { // We don't care particularly if this is "right"
+       .data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1 }
+};
+
 void print_log(const void *this_arg, const char *record) {
        printf("%p - %s\n", this_arg, record);
 }
@@ -110,6 +114,12 @@ uint32_t get_fee(const void *this_arg, LDKConfirmationTarget target) {
        }
        // Note that we don't call _free() on target, but that's OK, its unitary
 }
+// We use the same fee estimator globally:
+const LDKFeeEstimator fee_est {
+       .this_arg = NULL,
+       .get_est_sat_per_1000_weight = get_fee,
+       .free = NULL,
+};
 
 static int num_txs_broadcasted = 0; // Technically a race, but ints are atomic on x86
 void broadcast_tx(const void *this_arg, LDKTransaction tx) {
@@ -159,7 +169,7 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_monitor(const void *this_
                        LDKBroadcasterInterface broadcaster = {
                                .broadcast_transaction = broadcast_tx,
                        };
-                       LDK::CResult_NoneMonitorUpdateErrorZ res = ChannelMonitor_update_monitor(&mon.second, &update, &broadcaster, arg->logger);
+                       LDK::CResult_NoneMonitorUpdateErrorZ res = ChannelMonitor_update_monitor(&mon.second, &update, &broadcaster, &fee_est, arg->logger);
                        assert(res->result_ok);
                }
        }
@@ -191,8 +201,8 @@ uintptr_t sock_send_data(void *this_arg, LDKu8slice data, bool resume_read) {
 void sock_disconnect_socket(void *this_arg) {
        close((int)((long)this_arg));
 }
-bool sock_eq(const void *this_arg, const void *other_arg) {
-       return this_arg == other_arg;
+bool sock_eq(const void *this_arg, const LDKSocketDescriptor *other_arg) {
+       return this_arg == other_arg->this_arg;
 }
 uint64_t sock_hash(const void *this_arg) {
        return (uint64_t)this_arg;
@@ -224,12 +234,6 @@ int main() {
        LDKNetwork network = LDKNetwork_Testnet;
 
        // Trait implementations:
-       LDKFeeEstimator fee_est {
-               .this_arg = NULL,
-               .get_est_sat_per_1000_weight = get_fee,
-               .free = NULL,
-       };
-
        LDKBroadcasterInterface broadcast {
                .this_arg = NULL,
                .broadcast_transaction = broadcast_tx,
@@ -264,7 +268,7 @@ int main() {
        LDK::CVec_ChannelDetailsZ channels = ChannelManager_list_channels(&cm1);
        assert(channels->datalen == 0);
 
-       LDK::NetGraphMsgHandler net_graph1 = NetGraphMsgHandler_new(NULL, logger1);
+       LDK::NetGraphMsgHandler net_graph1 = NetGraphMsgHandler_new(genesis_hash, NULL, logger1);
 
        LDK::MessageHandler msg_handler1 = MessageHandler_new(ChannelManager_as_ChannelMessageHandler(&cm1), NetGraphMsgHandler_as_RoutingMessageHandler(&net_graph1));
 
@@ -310,7 +314,7 @@ int main() {
        LDK::CVec_ChannelDetailsZ channels2 = ChannelManager_list_channels(&cm2);
        assert(channels2->datalen == 0);
 
-       LDK::NetGraphMsgHandler net_graph2 = NetGraphMsgHandler_new(NULL, logger2);
+       LDK::NetGraphMsgHandler net_graph2 = NetGraphMsgHandler_new(genesis_hash, NULL, logger2);
        LDK::RoutingMessageHandler net_msgs2 = NetGraphMsgHandler_as_RoutingMessageHandler(&net_graph2);
        LDK::ChannelAnnouncement chan_ann = ChannelAnnouncement_read(LDKu8slice { .data = valid_node_announcement, .datalen = sizeof(valid_node_announcement) });
        LDK::CResult_boolLightningErrorZ ann_res = net_msgs2->handle_channel_announcement(net_msgs2->this_arg, &chan_ann);