Update C/C++ demos to latest upstream API
[ldk-c-bindings] / lightning-c-bindings / demo.c
index 2e4d363f0310f484cc93d2127013978bdbc51222..1e9bfb0c283a28c28cfac1840962557f3844e57e 100644 (file)
@@ -1,12 +1,15 @@
-#include "include/rust_types.h"
-#include "include/lightning.h"
+#include <lightning.h>
 
 #include <assert.h>
 #include <stdio.h>
 #include <string.h>
 
-void print_log(const void *this_arg, const char *record) {
-       printf("%s", record);
+void print_log(const void *this_arg, const LDKRecord *record) {
+       LDKStr mod = Record_get_module_path(record);
+       LDKStr str = Record_get_args(record);
+       printf("%.*s:%d - %.*s\n", (int)mod.len, mod.chars, Record_get_line(record), (int)str.len, str.chars);
+       Str_free(str);
+       Str_free(mod);
 }
 
 uint32_t get_fee(const void *this_arg, LDKConfirmationTarget target) {
@@ -28,14 +31,19 @@ LDKCResult_NoneChannelMonitorUpdateErrZ add_channel_monitor(const void *this_arg
 LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_monitor(const void *this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate monitor) {
        return CResult_NoneChannelMonitorUpdateErrZ_ok();
 }
-LDKCVec_MonitorEventZ monitors_pending_monitor_events(const void *this_arg) {
-       LDKCVec_MonitorEventZ empty_htlc_vec = {
+LDKCVec_C2Tuple_OutPointCVec_MonitorEventZZZ monitors_pending_monitor_events(const void *this_arg) {
+       LDKCVec_C2Tuple_OutPointCVec_MonitorEventZZZ empty_htlc_vec = {
                .data = NULL,
                .datalen = 0,
        };
        return empty_htlc_vec;
 }
 
+void never_handle_event(const void *this_arg, const struct LDKEvent* event) {
+       // Note that we never actually generate any events to handle in the code below.
+       assert(false);
+}
+
 int main() {
        uint8_t node_seed[32];
        memset(node_seed, 0, 32);
@@ -83,9 +91,9 @@ int main() {
        CVec_ChannelDetailsZ_free(channels);
 
        LDKEventsProvider prov = ChannelManager_as_EventsProvider(&cm);
-       LDKCVec_EventZ events = (prov.get_and_clear_pending_events)(prov.this_arg);
-       assert((unsigned long)events.data < 4096); // There's an offset, but it should still be an offset against null in the 0 page
-       assert(events.datalen == 0);
+       // Check that no events were generated by asserting if any events are passed to never_handle_event.
+       LDKEventHandler handler = { .handle_event = never_handle_event, .free = NULL };
+       (prov.process_pending_events)(prov.this_arg, handler);
 
        ChannelManager_free(cm);
        KeysManager_free(keys);