byte[] release_commitment_secret(long idx);
TwoTuple<Long, Long> key_derivation_params();
Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx);
- Result_SignatureNoneZ sign_holder_commitment(HolderCommitmentTransaction commitment_tx);
- Result_CVec_SignatureZNoneZ sign_holder_commitment_htlc_transactions(HolderCommitmentTransaction commitment_tx);
+ Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs(HolderCommitmentTransaction commitment_tx);
Result_SignatureNoneZ sign_justice_transaction(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, HTLCOutputInCommitment htlc);
Result_SignatureNoneZ sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, HTLCOutputInCommitment htlc);
Result_SignatureNoneZ sign_closing_transaction(byte[] closing_tx);
CommitmentTransaction commitment_tx_hu_conv = new CommitmentTransaction(null, commitment_tx);
Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret = arg.sign_counterparty_commitment(commitment_tx_hu_conv);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
- @Override public long sign_holder_commitment(long commitment_tx) {
+ @Override public long sign_holder_commitment_and_htlcs(long commitment_tx) {
HolderCommitmentTransaction commitment_tx_hu_conv = new HolderCommitmentTransaction(null, commitment_tx);
- Result_SignatureNoneZ ret = arg.sign_holder_commitment(commitment_tx_hu_conv);
+ Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret = arg.sign_holder_commitment_and_htlcs(commitment_tx_hu_conv);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
- return result;
- }
- @Override public long sign_holder_commitment_htlc_transactions(long commitment_tx) {
- HolderCommitmentTransaction commitment_tx_hu_conv = new HolderCommitmentTransaction(null, commitment_tx);
- Result_CVec_SignatureZNoneZ ret = arg.sign_holder_commitment_htlc_transactions(commitment_tx_hu_conv);
- long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
@Override public long sign_justice_transaction(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, long htlc) {
HTLCOutputInCommitment htlc_hu_conv = new HTLCOutputInCommitment(null, htlc);
Result_SignatureNoneZ ret = arg.sign_justice_transaction(justice_tx, input, amount, per_commitment_key, htlc_hu_conv);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
@Override public long sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, long htlc) {
HTLCOutputInCommitment htlc_hu_conv = new HTLCOutputInCommitment(null, htlc);
Result_SignatureNoneZ ret = arg.sign_counterparty_htlc_transaction(htlc_tx, input, amount, per_commitment_point, htlc_hu_conv);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
@Override public long sign_closing_transaction(byte[] closing_tx) {
Result_SignatureNoneZ ret = arg.sign_closing_transaction(closing_tx);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
@Override public long sign_channel_announcement(long msg) {
UnsignedChannelAnnouncement msg_hu_conv = new UnsignedChannelAnnouncement(null, msg);
Result_SignatureNoneZ ret = arg.sign_channel_announcement(msg_hu_conv);
long result = ret != null ? ret.ptr : 0;
- ret.ptr = 0;
return result;
}
@Override public void ready_channel(long channel_parameters) {
long ret = bindings.ChannelKeys_key_derivation_params(this.ptr);
long ret_a = bindings.LDKC2Tuple_u64u64Z_get_a(ret);
long ret_b = bindings.LDKC2Tuple_u64u64Z_get_b(ret);
- TwoTuple<Long, Long> ret_conv = new TwoTuple<Long, Long>(ret_a, ret_b);
+ TwoTuple<Long, Long> ret_conv = new TwoTuple<Long, Long>(ret_a, ret_b, () -> {
+ bindings.C2Tuple_u64u64Z_free(ret);
+ });
return ret_conv;
}
return ret_hu_conv;
}
- public Result_SignatureNoneZ sign_holder_commitment(HolderCommitmentTransaction commitment_tx) {
- long ret = bindings.ChannelKeys_sign_holder_commitment(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1);
- Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret);
- this.ptrs_to.add(commitment_tx);
- return ret_hu_conv;
- }
-
- public Result_CVec_SignatureZNoneZ sign_holder_commitment_htlc_transactions(HolderCommitmentTransaction commitment_tx) {
- long ret = bindings.ChannelKeys_sign_holder_commitment_htlc_transactions(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1);
- Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret);
+ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs(HolderCommitmentTransaction commitment_tx) {
+ long ret = bindings.ChannelKeys_sign_holder_commitment_and_htlcs(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1);
+ Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret);
this.ptrs_to.add(commitment_tx);
return ret_hu_conv;
}
public ChannelPublicKeys get_pubkeys() {
long ret = bindings.ChannelKeys_get_pubkeys(this.ptr);
ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret);
+ ret_hu_conv.ptrs_to.add(this);
return ret_hu_conv;
}