-#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) {
Transaction_free(tx);
}
-LDKCResult_NoneChannelMonitorUpdateErrZ add_channel_monitor(const void *this_arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor) {
- return CResult_NoneChannelMonitorUpdateErrZ_ok();
+LDKChannelMonitorUpdateStatus add_channel_monitor(const void *this_arg, LDKOutPoint funding_txo, LDKChannelMonitor monitor) {
+ return ChannelMonitorUpdateStatus_completed();
}
-LDKCResult_NoneChannelMonitorUpdateErrZ update_channel_monitor(const void *this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate monitor) {
- return CResult_NoneChannelMonitorUpdateErrZ_ok();
+LDKChannelMonitorUpdateStatus update_channel_monitor(const void *this_arg, LDKOutPoint funding_txo, LDKChannelMonitorUpdate monitor) {
+ return ChannelMonitorUpdateStatus_completed();
}
-LDKCVec_MonitorEventZ monitors_pending_monitor_events(const void *this_arg) {
- LDKCVec_MonitorEventZ empty_htlc_vec = {
+LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ monitors_pending_monitor_events(const void *this_arg) {
+ LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ 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);
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);