}
return (long)ret;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2TupleTempl_1usize_1_1Transaction_1new(JNIEnv *_env, jclass _b, jlong a, jlong b) {
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2TupleTempl_1usize_1_1Transaction_1new(JNIEnv *_env, jclass _b, jlong a, jbyteArray b) {
LDKC2TupleTempl_usize__Transaction* ret = MALLOC(sizeof(LDKC2TupleTempl_usize__Transaction), "LDKC2TupleTempl_usize__Transaction");
ret->a = a;
- LDKTransaction b_conv = *(LDKTransaction*)b;
- ret->b = b_conv;
+ LDKTransaction b_ref;
+ b_ref.datalen = (*_env)->GetArrayLength (_env, b);
+ b_ref.data = MALLOC(b_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, b, 0, b_ref.datalen, b_ref.data);
+ b_ref.data_is_owned = false;
+ ret->b = b_ref;
return (long)ret;
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1usizeTransactionZ_1get_1a(JNIEnv *_env, jclass _b, jlong ptr) {
LDKC2TupleTempl_usize__Transaction *tuple = (LDKC2TupleTempl_usize__Transaction*)ptr;
return tuple->a;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1usizeTransactionZ_1get_1b(JNIEnv *_env, jclass _b, jlong ptr) {
+JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1usizeTransactionZ_1get_1b(JNIEnv *_env, jclass _b, jlong ptr) {
LDKC2TupleTempl_usize__Transaction *tuple = (LDKC2TupleTempl_usize__Transaction*)ptr;
- LDKTransaction *b_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *b_copy = tuple->b;
- long b_ref = (long)b_copy;
- return b_ref;
+ LDKTransaction b_var = tuple->b;
+ jbyteArray b_arr = (*_env)->NewByteArray(_env, b_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, b_arr, 0, b_var.datalen, b_var.data);
+ return b_arr;
}
JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_LDKCResult_1NoneChannelMonitorUpdateErrZ_1result_1ok (JNIEnv * env, jclass _a, jlong arg) {
return ((LDKCResult_NoneChannelMonitorUpdateErrZ*)arg)->result_ok;
a_conv = OutPoint_clone(&a_conv);
ret->a = a_conv;
LDKCVec_u8Z b_ref;
- b_ref.data = (*_env)->GetByteArrayElements (_env, b, NULL);
b_ref.datalen = (*_env)->GetArrayLength (_env, b);
+ b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, b, 0, b_ref.datalen, b_ref.data);
ret->b = b_ref;
- //TODO: Really need to call (*_env)->ReleaseByteArrayElements(_env, b, (int8_t*)b_ref.data, 0); here
return (long)ret;
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1OutPointScriptZ_1get_1a(JNIEnv *_env, jclass _b, jlong ptr) {
LDKChannelKeys_JCalls *j_calls = (LDKChannelKeys_JCalls*) this_arg;
JNIEnv *_env;
DO_ASSERT((*j_calls->vm)->GetEnv(j_calls->vm, (void**)&_env, JNI_VERSION_1_8) == JNI_OK);
- LDKTransaction *commitment_tx_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *commitment_tx_copy = commitment_tx;
- long commitment_tx_ref = (long)commitment_tx_copy;
+ LDKTransaction commitment_tx_var = commitment_tx;
+ jbyteArray commitment_tx_arr = (*_env)->NewByteArray(_env, commitment_tx_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, commitment_tx_arr, 0, commitment_tx_var.datalen, commitment_tx_var.data);
+ Transaction_free(commitment_tx_var);
LDKPreCalculatedTxCreationKeys keys_var = *keys;
if (keys->inner != NULL)
keys_var = PreCalculatedTxCreationKeys_clone(keys);
FREE(htlcs_var.data);
jobject obj = (*_env)->NewLocalRef(_env, j_calls->o);
CHECK(obj != NULL);
- LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_counterparty_commitment_meth, feerate_per_kw, commitment_tx_ref, keys_ref, htlcs_arr);
+ LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret = (LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_counterparty_commitment_meth, feerate_per_kw, commitment_tx_arr, keys_ref, htlcs_arr);
LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ*)ret;
FREE((void*)ret);
return ret_conv;
LDKChannelKeys_JCalls *j_calls = (LDKChannelKeys_JCalls*) this_arg;
JNIEnv *_env;
DO_ASSERT((*j_calls->vm)->GetEnv(j_calls->vm, (void**)&_env, JNI_VERSION_1_8) == JNI_OK);
- LDKTransaction *justice_tx_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *justice_tx_copy = justice_tx;
- long justice_tx_ref = (long)justice_tx_copy;
+ LDKTransaction justice_tx_var = justice_tx;
+ jbyteArray justice_tx_arr = (*_env)->NewByteArray(_env, justice_tx_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, justice_tx_arr, 0, justice_tx_var.datalen, justice_tx_var.data);
+ Transaction_free(justice_tx_var);
jbyteArray per_commitment_key_arr = (*_env)->NewByteArray(_env, 32);
(*_env)->SetByteArrayRegion(_env, per_commitment_key_arr, 0, 32, *per_commitment_key);
LDKHTLCOutputInCommitment htlc_var = *htlc;
long htlc_ref = (long)htlc_var.inner & ~1;
jobject obj = (*_env)->NewLocalRef(_env, j_calls->o);
CHECK(obj != NULL);
- LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_justice_transaction_meth, justice_tx_ref, input, amount, per_commitment_key_arr, htlc_ref);
+ LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_justice_transaction_meth, justice_tx_arr, input, amount, per_commitment_key_arr, htlc_ref);
LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)ret;
FREE((void*)ret);
return ret_conv;
LDKChannelKeys_JCalls *j_calls = (LDKChannelKeys_JCalls*) this_arg;
JNIEnv *_env;
DO_ASSERT((*j_calls->vm)->GetEnv(j_calls->vm, (void**)&_env, JNI_VERSION_1_8) == JNI_OK);
- LDKTransaction *htlc_tx_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *htlc_tx_copy = htlc_tx;
- long htlc_tx_ref = (long)htlc_tx_copy;
+ LDKTransaction htlc_tx_var = htlc_tx;
+ jbyteArray htlc_tx_arr = (*_env)->NewByteArray(_env, htlc_tx_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, htlc_tx_arr, 0, htlc_tx_var.datalen, htlc_tx_var.data);
+ Transaction_free(htlc_tx_var);
jbyteArray per_commitment_point_arr = (*_env)->NewByteArray(_env, 33);
(*_env)->SetByteArrayRegion(_env, per_commitment_point_arr, 0, 33, per_commitment_point.compressed_form);
LDKHTLCOutputInCommitment htlc_var = *htlc;
long htlc_ref = (long)htlc_var.inner & ~1;
jobject obj = (*_env)->NewLocalRef(_env, j_calls->o);
CHECK(obj != NULL);
- LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_counterparty_htlc_transaction_meth, htlc_tx_ref, input, amount, per_commitment_point_arr, htlc_ref);
+ LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_counterparty_htlc_transaction_meth, htlc_tx_arr, input, amount, per_commitment_point_arr, htlc_ref);
LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)ret;
FREE((void*)ret);
return ret_conv;
LDKChannelKeys_JCalls *j_calls = (LDKChannelKeys_JCalls*) this_arg;
JNIEnv *_env;
DO_ASSERT((*j_calls->vm)->GetEnv(j_calls->vm, (void**)&_env, JNI_VERSION_1_8) == JNI_OK);
- LDKTransaction *closing_tx_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *closing_tx_copy = closing_tx;
- long closing_tx_ref = (long)closing_tx_copy;
+ LDKTransaction closing_tx_var = closing_tx;
+ jbyteArray closing_tx_arr = (*_env)->NewByteArray(_env, closing_tx_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, closing_tx_arr, 0, closing_tx_var.datalen, closing_tx_var.data);
+ Transaction_free(closing_tx_var);
jobject obj = (*_env)->NewLocalRef(_env, j_calls->o);
CHECK(obj != NULL);
- LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_closing_transaction_meth, closing_tx_ref);
+ LDKCResult_SignatureNoneZ* ret = (LDKCResult_SignatureNoneZ*)(*_env)->CallLongMethod(_env, obj, j_calls->sign_closing_transaction_meth, closing_tx_arr);
LDKCResult_SignatureNoneZ ret_conv = *(LDKCResult_SignatureNoneZ*)ret;
FREE((void*)ret);
return ret_conv;
CHECK(calls->release_commitment_secret_meth != NULL);
calls->key_derivation_params_meth = (*env)->GetMethodID(env, c, "key_derivation_params", "()J");
CHECK(calls->key_derivation_params_meth != NULL);
- calls->sign_counterparty_commitment_meth = (*env)->GetMethodID(env, c, "sign_counterparty_commitment", "(IJJ[J)J");
+ calls->sign_counterparty_commitment_meth = (*env)->GetMethodID(env, c, "sign_counterparty_commitment", "(I[BJ[J)J");
CHECK(calls->sign_counterparty_commitment_meth != NULL);
calls->sign_holder_commitment_meth = (*env)->GetMethodID(env, c, "sign_holder_commitment", "(J)J");
CHECK(calls->sign_holder_commitment_meth != NULL);
calls->sign_holder_commitment_htlc_transactions_meth = (*env)->GetMethodID(env, c, "sign_holder_commitment_htlc_transactions", "(J)J");
CHECK(calls->sign_holder_commitment_htlc_transactions_meth != NULL);
- calls->sign_justice_transaction_meth = (*env)->GetMethodID(env, c, "sign_justice_transaction", "(JJJ[BJ)J");
+ calls->sign_justice_transaction_meth = (*env)->GetMethodID(env, c, "sign_justice_transaction", "([BJJ[BJ)J");
CHECK(calls->sign_justice_transaction_meth != NULL);
- calls->sign_counterparty_htlc_transaction_meth = (*env)->GetMethodID(env, c, "sign_counterparty_htlc_transaction", "(JJJ[BJ)J");
+ calls->sign_counterparty_htlc_transaction_meth = (*env)->GetMethodID(env, c, "sign_counterparty_htlc_transaction", "([BJJ[BJ)J");
CHECK(calls->sign_counterparty_htlc_transaction_meth != NULL);
- calls->sign_closing_transaction_meth = (*env)->GetMethodID(env, c, "sign_closing_transaction", "(J)J");
+ calls->sign_closing_transaction_meth = (*env)->GetMethodID(env, c, "sign_closing_transaction", "([B)J");
CHECK(calls->sign_closing_transaction_meth != NULL);
calls->sign_channel_announcement_meth = (*env)->GetMethodID(env, c, "sign_channel_announcement", "(J)J");
CHECK(calls->sign_channel_announcement_meth != NULL);
return (long)ret_ref;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1counterparty_1commitment(JNIEnv * _env, jclass _b, jlong this_arg, jint feerate_per_kw, jlong commitment_tx, jlong keys, jlongArray htlcs) {
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1counterparty_1commitment(JNIEnv * _env, jclass _b, jlong this_arg, jint feerate_per_kw, jbyteArray commitment_tx, jlong keys, jlongArray htlcs) {
LDKChannelKeys* this_arg_conv = (LDKChannelKeys*)this_arg;
- LDKTransaction commitment_tx_conv = *(LDKTransaction*)commitment_tx;
+ LDKTransaction commitment_tx_ref;
+ commitment_tx_ref.datalen = (*_env)->GetArrayLength (_env, commitment_tx);
+ commitment_tx_ref.data = MALLOC(commitment_tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, commitment_tx, 0, commitment_tx_ref.datalen, commitment_tx_ref.data);
+ commitment_tx_ref.data_is_owned = true;
LDKPreCalculatedTxCreationKeys keys_conv;
keys_conv.inner = (void*)(keys & (~1));
keys_conv.is_owned = false;
}
(*_env)->ReleaseLongArrayElements (_env, htlcs, htlcs_vals, 0);
LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ), "LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ");
- *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, feerate_per_kw, commitment_tx_conv, &keys_conv, htlcs_constr);
+ *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, feerate_per_kw, commitment_tx_ref, &keys_conv, htlcs_constr);
return (long)ret_conv;
}
return (long)ret_conv;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1justice_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jlong justice_tx, jlong input, jlong amount, jbyteArray per_commitment_key, jlong htlc) {
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1justice_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jbyteArray justice_tx, jlong input, jlong amount, jbyteArray per_commitment_key, jlong htlc) {
LDKChannelKeys* this_arg_conv = (LDKChannelKeys*)this_arg;
- LDKTransaction justice_tx_conv = *(LDKTransaction*)justice_tx;
+ LDKTransaction justice_tx_ref;
+ justice_tx_ref.datalen = (*_env)->GetArrayLength (_env, justice_tx);
+ justice_tx_ref.data = MALLOC(justice_tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, justice_tx, 0, justice_tx_ref.datalen, justice_tx_ref.data);
+ justice_tx_ref.data_is_owned = true;
unsigned char per_commitment_key_arr[32];
CHECK((*_env)->GetArrayLength (_env, per_commitment_key) == 32);
(*_env)->GetByteArrayRegion (_env, per_commitment_key, 0, 32, per_commitment_key_arr);
htlc_conv.inner = (void*)(htlc & (~1));
htlc_conv.is_owned = false;
LDKCResult_SignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignatureNoneZ), "LDKCResult_SignatureNoneZ");
- *ret_conv = (this_arg_conv->sign_justice_transaction)(this_arg_conv->this_arg, justice_tx_conv, input, amount, per_commitment_key_ref, &htlc_conv);
+ *ret_conv = (this_arg_conv->sign_justice_transaction)(this_arg_conv->this_arg, justice_tx_ref, input, amount, per_commitment_key_ref, &htlc_conv);
return (long)ret_conv;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1counterparty_1htlc_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jlong htlc_tx, jlong input, jlong amount, jbyteArray per_commitment_point, jlong htlc) {
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1counterparty_1htlc_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jbyteArray htlc_tx, jlong input, jlong amount, jbyteArray per_commitment_point, jlong htlc) {
LDKChannelKeys* this_arg_conv = (LDKChannelKeys*)this_arg;
- LDKTransaction htlc_tx_conv = *(LDKTransaction*)htlc_tx;
+ LDKTransaction htlc_tx_ref;
+ htlc_tx_ref.datalen = (*_env)->GetArrayLength (_env, htlc_tx);
+ htlc_tx_ref.data = MALLOC(htlc_tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, htlc_tx, 0, htlc_tx_ref.datalen, htlc_tx_ref.data);
+ htlc_tx_ref.data_is_owned = true;
LDKPublicKey per_commitment_point_ref;
CHECK((*_env)->GetArrayLength (_env, per_commitment_point) == 33);
(*_env)->GetByteArrayRegion (_env, per_commitment_point, 0, 33, per_commitment_point_ref.compressed_form);
htlc_conv.inner = (void*)(htlc & (~1));
htlc_conv.is_owned = false;
LDKCResult_SignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignatureNoneZ), "LDKCResult_SignatureNoneZ");
- *ret_conv = (this_arg_conv->sign_counterparty_htlc_transaction)(this_arg_conv->this_arg, htlc_tx_conv, input, amount, per_commitment_point_ref, &htlc_conv);
+ *ret_conv = (this_arg_conv->sign_counterparty_htlc_transaction)(this_arg_conv->this_arg, htlc_tx_ref, input, amount, per_commitment_point_ref, &htlc_conv);
return (long)ret_conv;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1closing_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jlong closing_tx) {
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelKeys_1sign_1closing_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jbyteArray closing_tx) {
LDKChannelKeys* this_arg_conv = (LDKChannelKeys*)this_arg;
- LDKTransaction closing_tx_conv = *(LDKTransaction*)closing_tx;
+ LDKTransaction closing_tx_ref;
+ closing_tx_ref.datalen = (*_env)->GetArrayLength (_env, closing_tx);
+ closing_tx_ref.data = MALLOC(closing_tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, closing_tx, 0, closing_tx_ref.datalen, closing_tx_ref.data);
+ closing_tx_ref.data_is_owned = true;
LDKCResult_SignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_SignatureNoneZ), "LDKCResult_SignatureNoneZ");
- *ret_conv = (this_arg_conv->sign_closing_transaction)(this_arg_conv->this_arg, closing_tx_conv);
+ *ret_conv = (this_arg_conv->sign_closing_transaction)(this_arg_conv->this_arg, closing_tx_ref);
return (long)ret_conv;
}
(*_env)->GetByteArrayRegion (_env, txid, 0, 32, txid_arr);
unsigned char (*txid_ref)[32] = &txid_arr;
LDKu8slice script_pubkey_ref;
- script_pubkey_ref.data = (*_env)->GetByteArrayElements (_env, script_pubkey, NULL);
script_pubkey_ref.datalen = (*_env)->GetArrayLength (_env, script_pubkey);
+ script_pubkey_ref.data = (*_env)->GetByteArrayElements (_env, script_pubkey, NULL);
(this_arg_conv->register_tx)(this_arg_conv->this_arg, txid_ref, script_pubkey_ref);
(*_env)->ReleaseByteArrayElements(_env, script_pubkey, (int8_t*)script_pubkey_ref.data, 0);
}
outpoint_conv.inner = (void*)(outpoint & (~1));
outpoint_conv.is_owned = false;
LDKu8slice script_pubkey_ref;
- script_pubkey_ref.data = (*_env)->GetByteArrayElements (_env, script_pubkey, NULL);
script_pubkey_ref.datalen = (*_env)->GetArrayLength (_env, script_pubkey);
+ script_pubkey_ref.data = (*_env)->GetByteArrayElements (_env, script_pubkey, NULL);
(this_arg_conv->register_output)(this_arg_conv->this_arg, &outpoint_conv, script_pubkey_ref);
(*_env)->ReleaseByteArrayElements(_env, script_pubkey, (int8_t*)script_pubkey_ref.data, 0);
}
LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) this_arg;
JNIEnv *_env;
DO_ASSERT((*j_calls->vm)->GetEnv(j_calls->vm, (void**)&_env, JNI_VERSION_1_8) == JNI_OK);
- LDKTransaction *tx_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *tx_copy = tx;
- long tx_ref = (long)tx_copy;
+ LDKTransaction tx_var = tx;
+ jbyteArray tx_arr = (*_env)->NewByteArray(_env, tx_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, tx_arr, 0, tx_var.datalen, tx_var.data);
+ Transaction_free(tx_var);
jobject obj = (*_env)->NewLocalRef(_env, j_calls->o);
CHECK(obj != NULL);
- return (*_env)->CallVoidMethod(_env, obj, j_calls->broadcast_transaction_meth, tx_ref);
+ return (*_env)->CallVoidMethod(_env, obj, j_calls->broadcast_transaction_meth, tx_arr);
}
static void LDKBroadcasterInterface_JCalls_free(void* this_arg) {
LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) this_arg;
atomic_init(&calls->refcnt, 1);
DO_ASSERT((*env)->GetJavaVM(env, &calls->vm) == 0);
calls->o = (*env)->NewWeakGlobalRef(env, o);
- calls->broadcast_transaction_meth = (*env)->GetMethodID(env, c, "broadcast_transaction", "(J)V");
+ calls->broadcast_transaction_meth = (*env)->GetMethodID(env, c, "broadcast_transaction", "([B)V");
CHECK(calls->broadcast_transaction_meth != NULL);
LDKBroadcasterInterface ret = {
CHECK(ret != NULL);
return ret;
}
-JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_BroadcasterInterface_1broadcast_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jlong tx) {
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_BroadcasterInterface_1broadcast_1transaction(JNIEnv * _env, jclass _b, jlong this_arg, jbyteArray tx) {
LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)this_arg;
- LDKTransaction tx_conv = *(LDKTransaction*)tx;
- (this_arg_conv->broadcast_transaction)(this_arg_conv->this_arg, tx_conv);
+ LDKTransaction tx_ref;
+ tx_ref.datalen = (*_env)->GetArrayLength (_env, tx);
+ tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, tx, 0, tx_ref.datalen, tx_ref.data);
+ tx_ref.data_is_owned = true;
+ (this_arg_conv->broadcast_transaction)(this_arg_conv->this_arg, tx_ref);
}
typedef struct LDKFeeEstimator_JCalls {
LDKCVecTempl_Transaction *vec = (LDKCVecTempl_Transaction*)ptr;
return (*env)->NewObject(env, slicedef_cls, slicedef_meth, (long)vec->data, (long)vec->datalen, sizeof(LDKTransaction));
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCVecTempl_1Transaction_1new(JNIEnv *env, jclass _b, jlongArray elems){
- LDKCVecTempl_Transaction *ret = MALLOC(sizeof(LDKCVecTempl_Transaction), "LDKCVecTempl_Transaction");
- ret->datalen = (*env)->GetArrayLength(env, elems);
- if (ret->datalen == 0) {
- ret->data = NULL;
- } else {
- ret->data = MALLOC(sizeof(LDKTransaction) * ret->datalen, "LDKCVecTempl_Transaction Data");
- jlong *java_elems = (*env)->GetPrimitiveArrayCritical(env, elems, NULL);
- for (size_t i = 0; i < ret->datalen; i++) {
- jlong arr_elem = java_elems[i];
- LDKTransaction arr_elem_conv = *(LDKTransaction*)arr_elem;
- ret->data[i] = arr_elem_conv;
- }
- (*env)->ReleasePrimitiveArrayCritical(env, elems, java_elems, 0);
- }
- return (long)ret;
-}
JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKCVecTempl_1C2TupleTempl_1ThirtyTwoBytes_1_1CVecTempl_1TxOut_1arr_1info(JNIEnv *env, jclass _b, jlong ptr) {
LDKCVecTempl_C2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut *vec = (LDKCVecTempl_C2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut*)ptr;
return (*env)->NewObject(env, slicedef_cls, slicedef_meth, (long)vec->data, (long)vec->datalen, sizeof(LDKC2TupleTempl_ThirtyTwoBytes__CVecTempl_TxOut));
CHECK(obj != NULL);
jbyteArray arg = (*_env)->CallObjectMethod(_env, obj, j_calls->get_destination_script_meth);
LDKCVec_u8Z arg_ref;
- arg_ref.data = (*_env)->GetByteArrayElements (_env, arg, NULL);
arg_ref.datalen = (*_env)->GetArrayLength (_env, arg);
+ arg_ref.data = MALLOC(arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, arg, 0, arg_ref.datalen, arg_ref.data);
return arg_ref;
}
LDKPublicKey get_shutdown_pubkey_jcall(const void* this_arg) {
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1send_1data(JNIEnv * _env, jclass _b, jlong this_arg, jbyteArray data, jboolean resume_read) {
LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg;
LDKu8slice data_ref;
- data_ref.data = (*_env)->GetByteArrayElements (_env, data, NULL);
data_ref.datalen = (*_env)->GetArrayLength (_env, data);
+ data_ref.data = (*_env)->GetByteArrayElements (_env, data, NULL);
jlong ret_val = (this_arg_conv->send_data)(this_arg_conv->this_arg, data_ref, resume_read);
(*_env)->ReleaseByteArrayElements(_env, data, (int8_t*)data_ref.data, 0);
return ret_val;
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1CVec_1u8ZPeerHandleErrorZ_1ok(JNIEnv * _env, jclass _b, jbyteArray arg) {
LDKCVec_u8Z arg_ref;
- arg_ref.data = (*_env)->GetByteArrayElements (_env, arg, NULL);
arg_ref.datalen = (*_env)->GetArrayLength (_env, arg);
+ arg_ref.data = MALLOC(arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, arg, 0, arg_ref.datalen, arg_ref.data);
LDKCResult_CVec_u8ZPeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ), "LDKCResult_CVec_u8ZPeerHandleErrorZ");
*ret_conv = CResult_CVec_u8ZPeerHandleErrorZ_ok(arg_ref);
- (*_env)->ReleaseByteArrayElements(_env, arg, (int8_t*)arg_ref.data, 0);
return (long)ret_conv;
}
else
arg_constr.data = NULL;
long* arg_vals = (*_env)->GetLongArrayElements (_env, arg, NULL);
- for (size_t d = 0; d < arg_constr.datalen; d++) {
- long arr_conv_29 = arg_vals[d];
- LDKC2Tuple_usizeTransactionZ arr_conv_29_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_29;
- FREE((void*)arr_conv_29);
- arg_constr.data[d] = arr_conv_29_conv;
+ for (size_t y = 0; y < arg_constr.datalen; y++) {
+ long arr_conv_24 = arg_vals[y];
+ LDKC2Tuple_usizeTransactionZ arr_conv_24_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_24;
+ FREE((void*)arr_conv_24);
+ arg_constr.data[y] = arr_conv_24_conv;
}
(*_env)->ReleaseLongArrayElements (_env, arg, arg_vals, 0);
CVec_C2Tuple_usizeTransactionZZ_free(arg_constr);
CVec_SpendableOutputDescriptorZ_free(arg_constr);
}
-JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1TransactionZ_1free(JNIEnv * _env, jclass _b, jlongArray arg) {
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1TransactionZ_1free(JNIEnv * _env, jclass _b, jobjectArray arg) {
LDKCVec_TransactionZ arg_constr;
arg_constr.datalen = (*_env)->GetArrayLength (_env, arg);
if (arg_constr.datalen > 0)
arg_constr.data = MALLOC(arg_constr.datalen * sizeof(LDKTransaction), "LDKCVec_TransactionZ Elements");
else
arg_constr.data = NULL;
- long* arg_vals = (*_env)->GetLongArrayElements (_env, arg, NULL);
- for (size_t n = 0; n < arg_constr.datalen; n++) {
- long arr_conv_13 = arg_vals[n];
- LDKTransaction arr_conv_13_conv = *(LDKTransaction*)arr_conv_13;
- arg_constr.data[n] = arr_conv_13_conv;
+ for (size_t i = 0; i < arg_constr.datalen; i++) {
+ jobject arr_conv_8 = (*_env)->GetObjectArrayElement(_env, arg, i);
+ LDKTransaction arr_conv_8_ref;
+ arr_conv_8_ref.datalen = (*_env)->GetArrayLength (_env, arr_conv_8);
+ arr_conv_8_ref.data = MALLOC(arr_conv_8_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, arr_conv_8, 0, arr_conv_8_ref.datalen, arr_conv_8_ref.data);
+ arr_conv_8_ref.data_is_owned = true;
+ arg_constr.data[i] = arr_conv_8_ref;
}
- (*_env)->ReleaseLongArrayElements (_env, arg, arg_vals, 0);
CVec_TransactionZ_free(arg_constr);
}
JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1u8Z_1free(JNIEnv * _env, jclass _b, jbyteArray arg) {
LDKCVec_u8Z arg_ref;
- arg_ref.data = (*_env)->GetByteArrayElements (_env, arg, NULL);
arg_ref.datalen = (*_env)->GetArrayLength (_env, arg);
+ arg_ref.data = MALLOC(arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, arg, 0, arg_ref.datalen, arg_ref.data);
CVec_u8Z_free(arg_ref);
- (*_env)->ReleaseByteArrayElements(_env, arg, (int8_t*)arg_ref.data, 0);
}
-JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Transaction_1free(JNIEnv * _env, jclass _b, jlong _res) {
- LDKTransaction _res_conv = *(LDKTransaction*)_res;
- Transaction_free(_res_conv);
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Transaction_1free(JNIEnv * _env, jclass _b, jbyteArray _res) {
+ LDKTransaction _res_ref;
+ _res_ref.datalen = (*_env)->GetArrayLength (_env, _res);
+ _res_ref.data = MALLOC(_res_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, _res, 0, _res_ref.datalen, _res_ref.data);
+ _res_ref.data_is_owned = true;
+ Transaction_free(_res_ref);
}
JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_TxOut_1free(JNIEnv * _env, jclass _b, jlong _res) {
TxOut_free(_res_conv);
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1usizeTransactionZ_1new(JNIEnv * _env, jclass _b, jlong a, jlong b) {
- LDKTransaction b_conv = *(LDKTransaction*)b;
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1usizeTransactionZ_1new(JNIEnv * _env, jclass _b, jlong a, jbyteArray b) {
+ LDKTransaction b_ref;
+ b_ref.datalen = (*_env)->GetArrayLength (_env, b);
+ b_ref.data = MALLOC(b_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, b, 0, b_ref.datalen, b_ref.data);
+ b_ref.data_is_owned = true;
LDKC2Tuple_usizeTransactionZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_usizeTransactionZ), "LDKC2Tuple_usizeTransactionZ");
- *ret_ref = C2Tuple_usizeTransactionZ_new(a, b_conv);
+ *ret_ref = C2Tuple_usizeTransactionZ_new(a, b_ref);
return (long)ret_ref;
}
if (a_conv.inner != NULL)
a_conv = OutPoint_clone(&a_conv);
LDKCVec_u8Z b_ref;
- b_ref.data = (*_env)->GetByteArrayElements (_env, b, NULL);
b_ref.datalen = (*_env)->GetArrayLength (_env, b);
+ b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, b, 0, b_ref.datalen, b_ref.data);
LDKC2Tuple_OutPointScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_OutPointScriptZ), "LDKC2Tuple_OutPointScriptZ");
*ret_ref = C2Tuple_OutPointScriptZ_new(a_conv, b_ref);
- (*_env)->ReleaseByteArrayElements(_env, b, (int8_t*)b_ref.data, 0);
return (long)ret_ref;
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelConfig_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelConfig ret_var = ChannelConfig_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
else
txdata_constr.data = NULL;
long* txdata_vals = (*_env)->GetLongArrayElements (_env, txdata, NULL);
- for (size_t d = 0; d < txdata_constr.datalen; d++) {
- long arr_conv_29 = txdata_vals[d];
- LDKC2Tuple_usizeTransactionZ arr_conv_29_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_29;
- FREE((void*)arr_conv_29);
- txdata_constr.data[d] = arr_conv_29_conv;
+ for (size_t y = 0; y < txdata_constr.datalen; y++) {
+ long arr_conv_24 = txdata_vals[y];
+ LDKC2Tuple_usizeTransactionZ arr_conv_24_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_24;
+ FREE((void*)arr_conv_24);
+ txdata_constr.data[y] = arr_conv_24_conv;
}
(*_env)->ReleaseLongArrayElements (_env, txdata, txdata_vals, 0);
ChainMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height);
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelMonitorUpdate_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelMonitorUpdate ret_var = ChannelMonitorUpdate_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HTLCUpdate_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKHTLCUpdate ret_var = HTLCUpdate_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
return ret_arr;
}
-JNIEXPORT jlongArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1latest_1holder_1commitment_1txn(JNIEnv * _env, jclass _b, jlong this_arg, jlong logger) {
+JNIEXPORT jobjectArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1latest_1holder_1commitment_1txn(JNIEnv * _env, jclass _b, jlong this_arg, jlong logger) {
LDKChannelMonitor this_arg_conv;
this_arg_conv.inner = (void*)(this_arg & (~1));
this_arg_conv.is_owned = false;
LDKLogger* logger_conv = (LDKLogger*)logger;
LDKCVec_TransactionZ ret_var = ChannelMonitor_get_latest_holder_commitment_txn(&this_arg_conv, logger_conv);
- jlongArray ret_arr = (*_env)->NewLongArray(_env, ret_var.datalen);
- jlong *ret_arr_ptr = (*_env)->GetPrimitiveArrayCritical(_env, ret_arr, NULL);
- for (size_t n = 0; n < ret_var.datalen; n++) {
- LDKTransaction *arr_conv_13_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *arr_conv_13_copy = ret_var.data[n];
- long arr_conv_13_ref = (long)arr_conv_13_copy;
- ret_arr_ptr[n] = arr_conv_13_ref;
+ jobjectArray ret_arr = (*_env)->NewObjectArray(_env, ret_var.datalen, arr_of_B_clz, NULL);
+ for (size_t i = 0; i < ret_var.datalen; i++) {
+ LDKTransaction arr_conv_8_var = ret_var.data[i];
+ jbyteArray arr_conv_8_arr = (*_env)->NewByteArray(_env, arr_conv_8_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, arr_conv_8_arr, 0, arr_conv_8_var.datalen, arr_conv_8_var.data);
+ Transaction_free(arr_conv_8_var);
+ (*_env)->SetObjectArrayElement(_env, ret_arr, i, arr_conv_8_arr);
}
- (*_env)->ReleasePrimitiveArrayCritical(_env, ret_arr, ret_arr_ptr, 0);
CVec_TransactionZ_free(ret_var);
return ret_arr;
}
else
txdata_constr.data = NULL;
long* txdata_vals = (*_env)->GetLongArrayElements (_env, txdata, NULL);
- for (size_t d = 0; d < txdata_constr.datalen; d++) {
- long arr_conv_29 = txdata_vals[d];
- LDKC2Tuple_usizeTransactionZ arr_conv_29_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_29;
- FREE((void*)arr_conv_29);
- txdata_constr.data[d] = arr_conv_29_conv;
+ for (size_t y = 0; y < txdata_constr.datalen; y++) {
+ long arr_conv_24 = txdata_vals[y];
+ LDKC2Tuple_usizeTransactionZ arr_conv_24_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_24;
+ FREE((void*)arr_conv_24);
+ txdata_constr.data[y] = arr_conv_24_conv;
}
(*_env)->ReleaseLongArrayElements (_env, txdata, txdata_vals, 0);
LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)broadcaster;
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_OutPoint_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKOutPoint ret_var = OutPoint_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_InMemoryChannelKeys_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKInMemoryChannelKeys ret_var = InMemoryChannelKeys_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
else
txdata_constr.data = NULL;
long* txdata_vals = (*_env)->GetLongArrayElements (_env, txdata, NULL);
- for (size_t d = 0; d < txdata_constr.datalen; d++) {
- long arr_conv_29 = txdata_vals[d];
- LDKC2Tuple_usizeTransactionZ arr_conv_29_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_29;
- FREE((void*)arr_conv_29);
- txdata_constr.data[d] = arr_conv_29_conv;
+ for (size_t y = 0; y < txdata_constr.datalen; y++) {
+ long arr_conv_24 = txdata_vals[y];
+ LDKC2Tuple_usizeTransactionZ arr_conv_24_conv = *(LDKC2Tuple_usizeTransactionZ*)arr_conv_24;
+ FREE((void*)arr_conv_24);
+ txdata_constr.data[y] = arr_conv_24_conv;
}
(*_env)->ReleaseLongArrayElements (_env, txdata, txdata_vals, 0);
ChannelManager_block_connected(&this_arg_conv, header_ref, txdata_constr, height);
this_ptr_conv.inner = (void*)(this_ptr & (~1));
this_ptr_conv.is_owned = false;
LDKCVec_u8Z val_ref;
- val_ref.data = (*_env)->GetByteArrayElements (_env, val, NULL);
val_ref.datalen = (*_env)->GetArrayLength (_env, val);
+ val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, val, 0, val_ref.datalen, val_ref.data);
ErrorMessage_set_data(&this_ptr_conv, val_ref);
- (*_env)->ReleaseByteArrayElements(_env, val, (int8_t*)val_ref.data, 0);
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1new(JNIEnv * _env, jclass _b, jbyteArray channel_id_arg, jbyteArray data_arg) {
CHECK((*_env)->GetArrayLength (_env, channel_id_arg) == 32);
(*_env)->GetByteArrayRegion (_env, channel_id_arg, 0, 32, channel_id_arg_ref.data);
LDKCVec_u8Z data_arg_ref;
- data_arg_ref.data = (*_env)->GetByteArrayElements (_env, data_arg, NULL);
data_arg_ref.datalen = (*_env)->GetArrayLength (_env, data_arg);
+ data_arg_ref.data = MALLOC(data_arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, data_arg, 0, data_arg_ref.datalen, data_arg_ref.data);
LDKErrorMessage ret_var = ErrorMessage_new(channel_id_arg_ref, data_arg_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
if (ret_var.is_owned) {
ret_ref |= 1;
}
- (*_env)->ReleaseByteArrayElements(_env, data_arg, (int8_t*)data_arg_ref.data, 0);
return ret_ref;
}
this_ptr_conv.inner = (void*)(this_ptr & (~1));
this_ptr_conv.is_owned = false;
LDKCVec_u8Z val_ref;
- val_ref.data = (*_env)->GetByteArrayElements (_env, val, NULL);
val_ref.datalen = (*_env)->GetArrayLength (_env, val);
+ val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, val, 0, val_ref.datalen, val_ref.data);
Shutdown_set_scriptpubkey(&this_ptr_conv, val_ref);
- (*_env)->ReleaseByteArrayElements(_env, val, (int8_t*)val_ref.data, 0);
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Shutdown_1new(JNIEnv * _env, jclass _b, jbyteArray channel_id_arg, jbyteArray scriptpubkey_arg) {
CHECK((*_env)->GetArrayLength (_env, channel_id_arg) == 32);
(*_env)->GetByteArrayRegion (_env, channel_id_arg, 0, 32, channel_id_arg_ref.data);
LDKCVec_u8Z scriptpubkey_arg_ref;
- scriptpubkey_arg_ref.data = (*_env)->GetByteArrayElements (_env, scriptpubkey_arg, NULL);
scriptpubkey_arg_ref.datalen = (*_env)->GetArrayLength (_env, scriptpubkey_arg);
+ scriptpubkey_arg_ref.data = MALLOC(scriptpubkey_arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, scriptpubkey_arg, 0, scriptpubkey_arg_ref.datalen, scriptpubkey_arg_ref.data);
LDKShutdown ret_var = Shutdown_new(channel_id_arg_ref, scriptpubkey_arg_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
if (ret_var.is_owned) {
ret_ref |= 1;
}
- (*_env)->ReleaseByteArrayElements(_env, scriptpubkey_arg, (int8_t*)scriptpubkey_arg_ref.data, 0);
return ret_ref;
}
this_ptr_conv.inner = (void*)(this_ptr & (~1));
this_ptr_conv.is_owned = false;
LDKCVec_u8Z val_ref;
- val_ref.data = (*_env)->GetByteArrayElements (_env, val, NULL);
val_ref.datalen = (*_env)->GetArrayLength (_env, val);
+ val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, val, 0, val_ref.datalen, val_ref.data);
LightningError_set_err(&this_ptr_conv, val_ref);
- (*_env)->ReleaseByteArrayElements(_env, val, (int8_t*)val_ref.data, 0);
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LightningError_1get_1action(JNIEnv * _env, jclass _b, jlong this_ptr) {
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LightningError_1new(JNIEnv * _env, jclass _b, jbyteArray err_arg, jlong action_arg) {
LDKCVec_u8Z err_arg_ref;
- err_arg_ref.data = (*_env)->GetByteArrayElements (_env, err_arg, NULL);
err_arg_ref.datalen = (*_env)->GetArrayLength (_env, err_arg);
+ err_arg_ref.data = MALLOC(err_arg_ref.datalen, "LDKCVec_u8Z Bytes");
+ (*_env)->GetByteArrayRegion(_env, err_arg, 0, err_arg_ref.datalen, err_arg_ref.data);
LDKErrorAction action_arg_conv = *(LDKErrorAction*)action_arg;
FREE((void*)action_arg);
LDKLightningError ret_var = LightningError_new(err_arg_ref, action_arg_conv);
if (ret_var.is_owned) {
ret_ref |= 1;
}
- (*_env)->ReleaseByteArrayElements(_env, err_arg, (int8_t*)err_arg_ref.data, 0);
return ret_ref;
}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_AcceptChannel_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKAcceptChannel ret_var = AcceptChannel_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_AnnouncementSignatures_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKAnnouncementSignatures ret_var = AnnouncementSignatures_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelReestablish_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelReestablish ret_var = ChannelReestablish_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ClosingSigned_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKClosingSigned ret_var = ClosingSigned_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CommitmentSigned_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKCommitmentSigned ret_var = CommitmentSigned_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_FundingCreated_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKFundingCreated ret_var = FundingCreated_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_FundingSigned_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKFundingSigned ret_var = FundingSigned_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_FundingLocked_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKFundingLocked ret_var = FundingLocked_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Init_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKInit ret_var = Init_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_OpenChannel_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKOpenChannel ret_var = OpenChannel_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_RevokeAndACK_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKRevokeAndACK ret_var = RevokeAndACK_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Shutdown_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKShutdown ret_var = Shutdown_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UpdateFailHTLC_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUpdateFailHTLC ret_var = UpdateFailHTLC_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UpdateFailMalformedHTLC_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUpdateFailMalformedHTLC ret_var = UpdateFailMalformedHTLC_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UpdateFee_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUpdateFee ret_var = UpdateFee_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UpdateFulfillHTLC_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUpdateFulfillHTLC ret_var = UpdateFulfillHTLC_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UpdateAddHTLC_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUpdateAddHTLC ret_var = UpdateAddHTLC_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Ping_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKPing ret_var = Ping_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Pong_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKPong ret_var = Pong_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UnsignedChannelAnnouncement_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUnsignedChannelAnnouncement ret_var = UnsignedChannelAnnouncement_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelAnnouncement_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelAnnouncement ret_var = ChannelAnnouncement_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UnsignedChannelUpdate_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUnsignedChannelUpdate ret_var = UnsignedChannelUpdate_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelUpdate_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelUpdate ret_var = ChannelUpdate_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKErrorMessage ret_var = ErrorMessage_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_UnsignedNodeAnnouncement_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKUnsignedNodeAnnouncement ret_var = UnsignedNodeAnnouncement_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_NodeAnnouncement_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKNodeAnnouncement ret_var = NodeAnnouncement_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_QueryShortChannelIds_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKQueryShortChannelIds ret_var = QueryShortChannelIds_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ReplyShortChannelIdsEnd_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKReplyShortChannelIdsEnd ret_var = ReplyShortChannelIdsEnd_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_QueryChannelRange_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKQueryChannelRange ret_var = QueryChannelRange_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ReplyChannelRange_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKReplyChannelRange ret_var = ReplyChannelRange_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_GossipTimestampFilter_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKGossipTimestampFilter ret_var = GossipTimestampFilter_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
this_arg_conv.is_owned = false;
LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)peer_descriptor;
LDKu8slice data_ref;
- data_ref.data = (*_env)->GetByteArrayElements (_env, data, NULL);
data_ref.datalen = (*_env)->GetArrayLength (_env, data);
+ data_ref.data = (*_env)->GetByteArrayElements (_env, data, NULL);
LDKCResult_boolPeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_boolPeerHandleErrorZ), "LDKCResult_boolPeerHandleErrorZ");
*ret_conv = PeerManager_read_event(&this_arg_conv, peer_descriptor_conv, data_ref);
(*_env)->ReleaseByteArrayElements(_env, data, (int8_t*)data_ref.data, 0);
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_TxCreationKeys_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKTxCreationKeys ret_var = TxCreationKeys_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelPublicKeys_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelPublicKeys ret_var = ChannelPublicKeys_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HTLCOutputInCommitment_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKHTLCOutputInCommitment ret_var = HTLCOutputInCommitment_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
return arg_arr;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_build_1htlc_1transaction(JNIEnv * _env, jclass _b, jbyteArray prev_hash, jint feerate_per_kw, jshort contest_delay, jlong htlc, jbyteArray broadcaster_delayed_payment_key, jbyteArray revocation_key) {
+JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_build_1htlc_1transaction(JNIEnv * _env, jclass _b, jbyteArray prev_hash, jint feerate_per_kw, jshort contest_delay, jlong htlc, jbyteArray broadcaster_delayed_payment_key, jbyteArray revocation_key) {
unsigned char prev_hash_arr[32];
CHECK((*_env)->GetArrayLength (_env, prev_hash) == 32);
(*_env)->GetByteArrayRegion (_env, prev_hash, 0, 32, prev_hash_arr);
LDKPublicKey revocation_key_ref;
CHECK((*_env)->GetArrayLength (_env, revocation_key) == 33);
(*_env)->GetByteArrayRegion (_env, revocation_key, 0, 33, revocation_key_ref.compressed_form);
- LDKTransaction *ret_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *ret_copy = build_htlc_transaction(prev_hash_ref, feerate_per_kw, contest_delay, &htlc_conv, broadcaster_delayed_payment_key_ref, revocation_key_ref);
- long ret_ref = (long)ret_copy;
- return ret_ref;
+ LDKTransaction arg_var = build_htlc_transaction(prev_hash_ref, feerate_per_kw, contest_delay, &htlc_conv, broadcaster_delayed_payment_key_ref, revocation_key_ref);
+ jbyteArray arg_arr = (*_env)->NewByteArray(_env, arg_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, arg_arr, 0, arg_var.datalen, arg_var.data);
+ Transaction_free(arg_var);
+ return arg_arr;
}
JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1free(JNIEnv * _env, jclass _b, jlong this_ptr) {
return ret_ref;
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1get_1unsigned_1tx(JNIEnv * _env, jclass _b, jlong this_ptr) {
+JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1get_1unsigned_1tx(JNIEnv * _env, jclass _b, jlong this_ptr) {
LDKHolderCommitmentTransaction this_ptr_conv;
this_ptr_conv.inner = (void*)(this_ptr & (~1));
this_ptr_conv.is_owned = false;
- LDKTransaction *ret_copy = MALLOC(sizeof(LDKTransaction), "LDKTransaction");
- *ret_copy = HolderCommitmentTransaction_get_unsigned_tx(&this_ptr_conv);
- long ret_ref = (long)ret_copy;
- return ret_ref;
+ LDKTransaction arg_var = HolderCommitmentTransaction_get_unsigned_tx(&this_ptr_conv);
+ jbyteArray arg_arr = (*_env)->NewByteArray(_env, arg_var.datalen);
+ (*_env)->SetByteArrayRegion(_env, arg_arr, 0, arg_var.datalen, arg_var.data);
+ Transaction_free(arg_var);
+ return arg_arr;
}
-JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1set_1unsigned_1tx(JNIEnv * _env, jclass _b, jlong this_ptr, jlong val) {
+JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1set_1unsigned_1tx(JNIEnv * _env, jclass _b, jlong this_ptr, jbyteArray val) {
LDKHolderCommitmentTransaction this_ptr_conv;
this_ptr_conv.inner = (void*)(this_ptr & (~1));
this_ptr_conv.is_owned = false;
- LDKTransaction val_conv = *(LDKTransaction*)val;
- HolderCommitmentTransaction_set_unsigned_tx(&this_ptr_conv, val_conv);
+ LDKTransaction val_ref;
+ val_ref.datalen = (*_env)->GetArrayLength (_env, val);
+ val_ref.data = MALLOC(val_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, val, 0, val_ref.datalen, val_ref.data);
+ val_ref.data_is_owned = true;
+ HolderCommitmentTransaction_set_unsigned_tx(&this_ptr_conv, val_ref);
}
JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1get_1counterparty_1sig(JNIEnv * _env, jclass _b, jlong this_ptr) {
HolderCommitmentTransaction_set_per_htlc(&this_ptr_conv, val_constr);
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1new_1missing_1holder_1sig(JNIEnv * _env, jclass _b, jlong unsigned_tx, jbyteArray counterparty_sig, jbyteArray holder_funding_key, jbyteArray counterparty_funding_key, jlong keys, jint feerate_per_kw, jlongArray htlc_data) {
- LDKTransaction unsigned_tx_conv = *(LDKTransaction*)unsigned_tx;
+JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1new_1missing_1holder_1sig(JNIEnv * _env, jclass _b, jbyteArray unsigned_tx, jbyteArray counterparty_sig, jbyteArray holder_funding_key, jbyteArray counterparty_funding_key, jlong keys, jint feerate_per_kw, jlongArray htlc_data) {
+ LDKTransaction unsigned_tx_ref;
+ unsigned_tx_ref.datalen = (*_env)->GetArrayLength (_env, unsigned_tx);
+ unsigned_tx_ref.data = MALLOC(unsigned_tx_ref.datalen, "LDKTransaction Bytes");
+ (*_env)->GetByteArrayRegion(_env, unsigned_tx, 0, unsigned_tx_ref.datalen, unsigned_tx_ref.data);
+ unsigned_tx_ref.data_is_owned = true;
LDKSignature counterparty_sig_ref;
CHECK((*_env)->GetArrayLength (_env, counterparty_sig) == 64);
(*_env)->GetByteArrayRegion (_env, counterparty_sig, 0, 64, counterparty_sig_ref.compact_form);
htlc_data_constr.data[q] = arr_conv_42_conv;
}
(*_env)->ReleaseLongArrayElements (_env, htlc_data, htlc_data_vals, 0);
- LDKHolderCommitmentTransaction ret_var = HolderCommitmentTransaction_new_missing_holder_sig(unsigned_tx_conv, counterparty_sig_ref, holder_funding_key_ref, counterparty_funding_key_ref, keys_conv, feerate_per_kw, htlc_data_constr);
+ LDKHolderCommitmentTransaction ret_var = HolderCommitmentTransaction_new_missing_holder_sig(unsigned_tx_ref, counterparty_sig_ref, holder_funding_key_ref, counterparty_funding_key_ref, keys_conv, feerate_per_kw, htlc_data_constr);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
long ret_ref = (long)ret_var.inner;
(*_env)->GetByteArrayRegion (_env, funding_key, 0, 32, funding_key_arr);
unsigned char (*funding_key_ref)[32] = &funding_key_arr;
LDKu8slice funding_redeemscript_ref;
- funding_redeemscript_ref.data = (*_env)->GetByteArrayElements (_env, funding_redeemscript, NULL);
funding_redeemscript_ref.datalen = (*_env)->GetArrayLength (_env, funding_redeemscript);
+ funding_redeemscript_ref.data = (*_env)->GetByteArrayElements (_env, funding_redeemscript, NULL);
jbyteArray arg_arr = (*_env)->NewByteArray(_env, 64);
(*_env)->SetByteArrayRegion(_env, arg_arr, 0, 64, HolderCommitmentTransaction_get_holder_sig(&this_arg_conv, funding_key_ref, funding_redeemscript_ref, channel_value_satoshis).compact_form);
(*_env)->ReleaseByteArrayElements(_env, funding_redeemscript, (int8_t*)funding_redeemscript_ref.data, 0);
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKHolderCommitmentTransaction ret_var = HolderCommitmentTransaction_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Route_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKRoute ret_var = Route_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_DirectionalChannelInfo_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKDirectionalChannelInfo ret_var = DirectionalChannelInfo_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelInfo_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKChannelInfo ret_var = ChannelInfo_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_RoutingFees_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKRoutingFees ret_var = RoutingFees_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_NodeAnnouncementInfo_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKNodeAnnouncementInfo ret_var = NodeAnnouncementInfo_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_NodeInfo_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKNodeInfo ret_var = NodeInfo_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1read(JNIEnv * _env, jclass _b, jbyteArray ser) {
LDKu8slice ser_ref;
- ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
ser_ref.datalen = (*_env)->GetArrayLength (_env, ser);
+ ser_ref.data = (*_env)->GetByteArrayElements (_env, ser, NULL);
LDKNetworkGraph ret_var = NetworkGraph_read(ser_ref);
CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this.
CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this.