import CommonBase from './CommonBase.mjs';
import * as bindings from '../bindings.mjs'
-import * as InternalUtils from '../InternalUtils.mjs'
+/**
+ * Information needed to build and sign a holder's commitment transaction.
+ *
+ * The transaction is only signed once we are ready to broadcast.
+ */
export class HolderCommitmentTransaction extends CommonBase {
/* @internal */
public constructor(_dummy: object, ptr: number) {
super(ptr, bindings.HolderCommitmentTransaction_free);
}
+ /**
+ * Our counterparty's signature for the transaction
+ */
public get_counterparty_sig(): Uint8Array {
- const ret: Uint8Array = bindings.HolderCommitmentTransaction_get_counterparty_sig(this.ptr);
- return ret;
+ const ret: number = bindings.HolderCommitmentTransaction_get_counterparty_sig(this.ptr);
+ const ret_conv: Uint8Array = bindings.decodeUint8Array(ret);
+ return ret_conv;
}
+ /**
+ * Our counterparty's signature for the transaction
+ */
public set_counterparty_sig(val: Uint8Array): void {
- bindings.HolderCommitmentTransaction_set_counterparty_sig(this.ptr, InternalUtils.check_arr_len(val, 64));
+ bindings.HolderCommitmentTransaction_set_counterparty_sig(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(val, 64)));
}
+ /**
+ * All non-dust counterparty HTLC signatures, in the order they appear in the transaction
+ */
public set_counterparty_htlc_sigs(val: Uint8Array[]): void {
- bindings.HolderCommitmentTransaction_set_counterparty_htlc_sigs(this.ptr, val != null ? val.map(val_conv_12 => InternalUtils.check_arr_len(val_conv_12, 64)) : null);
+ bindings.HolderCommitmentTransaction_set_counterparty_htlc_sigs(this.ptr, bindings.encodeUint32Array(val != null ? val.map(val_conv_12 => bindings.encodeUint8Array(bindings.check_arr_len(val_conv_12, 64))) : null));
}
public clone_ptr(): number {
return ret;
}
+ /**
+ * Creates a copy of the HolderCommitmentTransaction
+ */
public clone(): HolderCommitmentTransaction {
const ret: number = bindings.HolderCommitmentTransaction_clone(this.ptr);
const ret_hu_conv: HolderCommitmentTransaction = new HolderCommitmentTransaction(null, ret);
return ret_hu_conv;
}
+ /**
+ * Serialize the HolderCommitmentTransaction object into a byte array which can be read by HolderCommitmentTransaction_read
+ */
public write(): Uint8Array {
- const ret: Uint8Array = bindings.HolderCommitmentTransaction_write(this.ptr);
- return ret;
+ const ret: number = bindings.HolderCommitmentTransaction_write(this.ptr);
+ const ret_conv: Uint8Array = bindings.decodeUint8Array(ret);
+ return ret_conv;
}
+ /**
+ * Read a HolderCommitmentTransaction from a byte array, created by HolderCommitmentTransaction_write
+ */
public static constructor_read(ser: Uint8Array): Result_HolderCommitmentTransactionDecodeErrorZ {
- const ret: number = bindings.HolderCommitmentTransaction_read(ser);
+ const ret: number = bindings.HolderCommitmentTransaction_read(bindings.encodeUint8Array(ser));
const ret_hu_conv: Result_HolderCommitmentTransactionDecodeErrorZ = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret);
return ret_hu_conv;
}
+ /**
+ * Create a new holder transaction with the given counterparty signatures.
+ * The funding keys are used to figure out which signature should go first when building the transaction for broadcast.
+ */
public static constructor_new(commitment_tx: CommitmentTransaction, counterparty_sig: Uint8Array, counterparty_htlc_sigs: Uint8Array[], holder_funding_key: Uint8Array, counterparty_funding_key: Uint8Array): HolderCommitmentTransaction {
- const ret: number = bindings.HolderCommitmentTransaction_new(commitment_tx == null ? 0 : CommonBase.get_ptr_of(commitment_tx) & ~1, InternalUtils.check_arr_len(counterparty_sig, 64), counterparty_htlc_sigs != null ? counterparty_htlc_sigs.map(counterparty_htlc_sigs_conv_12 => InternalUtils.check_arr_len(counterparty_htlc_sigs_conv_12, 64)) : null, InternalUtils.check_arr_len(holder_funding_key, 33), InternalUtils.check_arr_len(counterparty_funding_key, 33));
+ const ret: number = bindings.HolderCommitmentTransaction_new(commitment_tx == null ? 0 : CommonBase.get_ptr_of(commitment_tx) & ~1, bindings.encodeUint8Array(bindings.check_arr_len(counterparty_sig, 64)), bindings.encodeUint32Array(counterparty_htlc_sigs != null ? counterparty_htlc_sigs.map(counterparty_htlc_sigs_conv_12 => bindings.encodeUint8Array(bindings.check_arr_len(counterparty_htlc_sigs_conv_12, 64))) : null), bindings.encodeUint8Array(bindings.check_arr_len(holder_funding_key, 33)), bindings.encodeUint8Array(bindings.check_arr_len(counterparty_funding_key, 33)));
const ret_hu_conv: HolderCommitmentTransaction = new HolderCommitmentTransaction(null, ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;