Merge pull request #749 from TheBlueMatt/2020-11-bindings-clones
[rust-lightning] / lightning-c-bindings / demo.cpp
index 36a11a783a2e02add690b7c2c866b0aabe526942..531d7e679e522c38b59cb3285742765b40432bbb 100644 (file)
@@ -110,6 +110,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 +165,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 +197,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 +230,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,