Merge pull request #71 from TheBlueMatt/main
[ldk-c-bindings] / lightning-c-bindings / demo.c
index 2e4d363f0310f484cc93d2127013978bdbc51222..dfa0e2fadbd835619f38c2dc8e98b4a852d71eec 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) {
@@ -36,6 +39,11 @@ LDKCVec_MonitorEventZ monitors_pending_monitor_events(const void *this_arg) {
        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);