+JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1get_1obj_1from_1jcalls (JNIEnv * env, jclass _a, jlong val) {
+ return ((LDKChannelMessageHandler_JCalls*)val)->o;
+}
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1open_1channel(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong their_features, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKInitFeatures their_features_conv = *(LDKInitFeatures*)their_features;
+ FREE((void*)their_features);
+ their_features_conv.is_owned = true;
+ LDKOpenChannel* msg_conv = (LDKOpenChannel*)msg;
+ return (arg_conv->handle_open_channel)(arg_conv->this_arg, their_node_id_conv, their_features_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1accept_1channel(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong their_features, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKInitFeatures their_features_conv = *(LDKInitFeatures*)their_features;
+ FREE((void*)their_features);
+ their_features_conv.is_owned = true;
+ LDKAcceptChannel* msg_conv = (LDKAcceptChannel*)msg;
+ return (arg_conv->handle_accept_channel)(arg_conv->this_arg, their_node_id_conv, their_features_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1funding_1created(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKFundingCreated* msg_conv = (LDKFundingCreated*)msg;
+ return (arg_conv->handle_funding_created)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1funding_1signed(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKFundingSigned* msg_conv = (LDKFundingSigned*)msg;
+ return (arg_conv->handle_funding_signed)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1funding_1locked(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKFundingLocked* msg_conv = (LDKFundingLocked*)msg;
+ return (arg_conv->handle_funding_locked)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1shutdown(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKShutdown* msg_conv = (LDKShutdown*)msg;
+ return (arg_conv->handle_shutdown)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1closing_1signed(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKClosingSigned* msg_conv = (LDKClosingSigned*)msg;
+ return (arg_conv->handle_closing_signed)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1update_1add_1htlc(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKUpdateAddHTLC* msg_conv = (LDKUpdateAddHTLC*)msg;
+ return (arg_conv->handle_update_add_htlc)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1update_1fulfill_1htlc(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKUpdateFulfillHTLC* msg_conv = (LDKUpdateFulfillHTLC*)msg;
+ return (arg_conv->handle_update_fulfill_htlc)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1update_1fail_1htlc(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKUpdateFailHTLC* msg_conv = (LDKUpdateFailHTLC*)msg;
+ return (arg_conv->handle_update_fail_htlc)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1update_1fail_1malformed_1htlc(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKUpdateFailMalformedHTLC* msg_conv = (LDKUpdateFailMalformedHTLC*)msg;
+ return (arg_conv->handle_update_fail_malformed_htlc)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1commitment_1signed(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKCommitmentSigned* msg_conv = (LDKCommitmentSigned*)msg;
+ return (arg_conv->handle_commitment_signed)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1revoke_1and_1ack(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKRevokeAndACK* msg_conv = (LDKRevokeAndACK*)msg;
+ return (arg_conv->handle_revoke_and_ack)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1update_1fee(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKUpdateFee* msg_conv = (LDKUpdateFee*)msg;
+ return (arg_conv->handle_update_fee)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1announcement_1signatures(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKAnnouncementSignatures* msg_conv = (LDKAnnouncementSignatures*)msg;
+ return (arg_conv->handle_announcement_signatures)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1peer_1disconnected(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jboolean no_connection_possible) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ return (arg_conv->peer_disconnected)(arg_conv->this_arg, their_node_id_conv, no_connection_possible);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1peer_1connected(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKInit* msg_conv = (LDKInit*)msg;
+ return (arg_conv->peer_connected)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1channel_1reestablish(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKChannelReestablish* msg_conv = (LDKChannelReestablish*)msg;
+ return (arg_conv->handle_channel_reestablish)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1call_1handle_1error(JNIEnv * _env, jclass _b, jlong arg, jlong their_node_id, jlong msg) {
+ LDKChannelMessageHandler* arg_conv = (LDKChannelMessageHandler*)arg;
+ LDKPublicKey their_node_id_conv = *(LDKPublicKey*)their_node_id;
+ FREE((void*)their_node_id);
+ LDKErrorMessage* msg_conv = (LDKErrorMessage*)msg;
+ return (arg_conv->handle_error)(arg_conv->this_arg, their_node_id_conv, msg_conv);
+}
+
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKChannelManagerReadArgs_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKChannelManagerReadArgs *ret = MALLOC(sizeof(LDKChannelManagerReadArgs), "LDKChannelManagerReadArgs");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKDecodeError_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKDecodeError *ret = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKPing_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKPing *ret = MALLOC(sizeof(LDKPing), "LDKPing");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKPong_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKPong *ret = MALLOC(sizeof(LDKPong), "LDKPong");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKDataLossProtect_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKDataLossProtect *ret = MALLOC(sizeof(LDKDataLossProtect), "LDKDataLossProtect");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKUnsignedNodeAnnouncement_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKUnsignedNodeAnnouncement *ret = MALLOC(sizeof(LDKUnsignedNodeAnnouncement), "LDKUnsignedNodeAnnouncement");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKNodeFeatures_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKNodeFeatures *ret = MALLOC(sizeof(LDKNodeFeatures), "LDKNodeFeatures");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKChannelFeatures_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKChannelFeatures *ret = MALLOC(sizeof(LDKChannelFeatures), "LDKChannelFeatures");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKUnsignedChannelUpdate_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKUnsignedChannelUpdate *ret = MALLOC(sizeof(LDKUnsignedChannelUpdate), "LDKUnsignedChannelUpdate");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKQueryChannelRange_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKQueryChannelRange *ret = MALLOC(sizeof(LDKQueryChannelRange), "LDKQueryChannelRange");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKReplyChannelRange_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKReplyChannelRange *ret = MALLOC(sizeof(LDKReplyChannelRange), "LDKReplyChannelRange");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKQueryShortChannelIds_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKQueryShortChannelIds *ret = MALLOC(sizeof(LDKQueryShortChannelIds), "LDKQueryShortChannelIds");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKReplyShortChannelIdsEnd_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKReplyShortChannelIdsEnd *ret = MALLOC(sizeof(LDKReplyShortChannelIdsEnd), "LDKReplyShortChannelIdsEnd");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKGossipTimestampFilter_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKGossipTimestampFilter *ret = MALLOC(sizeof(LDKGossipTimestampFilter), "LDKGossipTimestampFilter");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKLightningError_1optional_1none (JNIEnv * env, jclass _a) {
+ LDKLightningError *ret = MALLOC(sizeof(LDKLightningError), "LDKLightningError");
+ ret->inner = NULL;
+ return (long)ret;
+}
+JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_LDKCResult_1boolLightningErrorZ_1result_1ok (JNIEnv * env, jclass _a, jlong arg) {
+ return ((LDKCResult_boolLightningErrorZ*)arg)->result_ok;
+}
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCResult_1boolLightningErrorZ_1get_1inner (JNIEnv * env, jclass _a, jlong arg) {
+ if (((LDKCResult_boolLightningErrorZ*)arg)->result_ok) {
+ return (long)((LDKCResult_boolLightningErrorZ*)arg)->contents.result;
+ } else {
+ return (long)((LDKCResult_boolLightningErrorZ*)arg)->contents.err;
+ }
+}