X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-java;a=blobdiff_plain;f=ts%2Fstructs%2FBuiltCommitmentTransaction.mts;h=a6045bb68558e8429f8191da610fe1884a072cfb;hp=8c95db25f5e294bf03e4e5f7b8ea2b286d4fa431;hb=c629a01650402c8e2f9b9db8ced9ed63ce687727;hpb=bf08029c1ad5244b59902eada723b634dcade62d diff --git a/ts/structs/BuiltCommitmentTransaction.mts b/ts/structs/BuiltCommitmentTransaction.mts index 8c95db25..a6045bb6 100644 --- a/ts/structs/BuiltCommitmentTransaction.mts +++ b/ts/structs/BuiltCommitmentTransaction.mts @@ -279,35 +279,60 @@ import { MultiThreadedLockableScore } from '../structs/MultiThreadedLockableScor import CommonBase from './CommonBase.mjs'; import * as bindings from '../bindings.mjs' -import * as InternalUtils from '../InternalUtils.mjs' +/** + * A pre-built Bitcoin commitment transaction and its txid. + */ export class BuiltCommitmentTransaction extends CommonBase { /* @internal */ public constructor(_dummy: object, ptr: number) { super(ptr, bindings.BuiltCommitmentTransaction_free); } + /** + * The commitment transaction + */ public get_transaction(): Uint8Array { - const ret: Uint8Array = bindings.BuiltCommitmentTransaction_get_transaction(this.ptr); - return ret; + const ret: number = bindings.BuiltCommitmentTransaction_get_transaction(this.ptr); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } + /** + * The commitment transaction + */ public set_transaction(val: Uint8Array): void { - bindings.BuiltCommitmentTransaction_set_transaction(this.ptr, val); + bindings.BuiltCommitmentTransaction_set_transaction(this.ptr, bindings.encodeUint8Array(val)); } + /** + * The txid for the commitment transaction. + * + * This is provided as a performance optimization, instead of calling transaction.txid() + * multiple times. + */ public get_txid(): Uint8Array { - const ret: Uint8Array = bindings.BuiltCommitmentTransaction_get_txid(this.ptr); - return ret; + const ret: number = bindings.BuiltCommitmentTransaction_get_txid(this.ptr); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } + /** + * The txid for the commitment transaction. + * + * This is provided as a performance optimization, instead of calling transaction.txid() + * multiple times. + */ public set_txid(val: Uint8Array): void { - bindings.BuiltCommitmentTransaction_set_txid(this.ptr, InternalUtils.check_arr_len(val, 32)); + bindings.BuiltCommitmentTransaction_set_txid(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(val, 32))); } + /** + * Constructs a new BuiltCommitmentTransaction given each field + */ public static constructor_new(transaction_arg: Uint8Array, txid_arg: Uint8Array): BuiltCommitmentTransaction { - const ret: number = bindings.BuiltCommitmentTransaction_new(transaction_arg, InternalUtils.check_arr_len(txid_arg, 32)); + const ret: number = bindings.BuiltCommitmentTransaction_new(bindings.encodeUint8Array(transaction_arg), bindings.encodeUint8Array(bindings.check_arr_len(txid_arg, 32))); const ret_hu_conv: BuiltCommitmentTransaction = new BuiltCommitmentTransaction(null, ret); CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv); return ret_hu_conv; @@ -318,6 +343,9 @@ export class BuiltCommitmentTransaction extends CommonBase { return ret; } + /** + * Creates a copy of the BuiltCommitmentTransaction + */ public clone(): BuiltCommitmentTransaction { const ret: number = bindings.BuiltCommitmentTransaction_clone(this.ptr); const ret_hu_conv: BuiltCommitmentTransaction = new BuiltCommitmentTransaction(null, ret); @@ -325,25 +353,43 @@ export class BuiltCommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * Serialize the BuiltCommitmentTransaction object into a byte array which can be read by BuiltCommitmentTransaction_read + */ public write(): Uint8Array { - const ret: Uint8Array = bindings.BuiltCommitmentTransaction_write(this.ptr); - return ret; + const ret: number = bindings.BuiltCommitmentTransaction_write(this.ptr); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } + /** + * Read a BuiltCommitmentTransaction from a byte array, created by BuiltCommitmentTransaction_write + */ public static constructor_read(ser: Uint8Array): Result_BuiltCommitmentTransactionDecodeErrorZ { - const ret: number = bindings.BuiltCommitmentTransaction_read(ser); + const ret: number = bindings.BuiltCommitmentTransaction_read(bindings.encodeUint8Array(ser)); const ret_hu_conv: Result_BuiltCommitmentTransactionDecodeErrorZ = Result_BuiltCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } - public get_sighash_all(funding_redeemscript: Uint8Array, channel_value_satoshis: number): Uint8Array { - const ret: Uint8Array = bindings.BuiltCommitmentTransaction_get_sighash_all(this.ptr, funding_redeemscript, channel_value_satoshis); - return ret; + /** + * Get the SIGHASH_ALL sighash value of the transaction. + * + * This can be used to verify a signature. + */ + public get_sighash_all(funding_redeemscript: Uint8Array, channel_value_satoshis: bigint): Uint8Array { + const ret: number = bindings.BuiltCommitmentTransaction_get_sighash_all(this.ptr, bindings.encodeUint8Array(funding_redeemscript), channel_value_satoshis); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } - public sign(funding_key: Uint8Array, funding_redeemscript: Uint8Array, channel_value_satoshis: number): Uint8Array { - const ret: Uint8Array = bindings.BuiltCommitmentTransaction_sign(this.ptr, InternalUtils.check_arr_len(funding_key, 32), funding_redeemscript, channel_value_satoshis); - return ret; + /** + * Sign a transaction, either because we are counter-signing the counterparty's transaction or + * because we are about to broadcast a holder transaction. + */ + public sign(funding_key: Uint8Array, funding_redeemscript: Uint8Array, channel_value_satoshis: bigint): Uint8Array { + const ret: number = bindings.BuiltCommitmentTransaction_sign(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(funding_key, 32)), bindings.encodeUint8Array(funding_redeemscript), channel_value_satoshis); + const ret_conv: Uint8Array = bindings.decodeUint8Array(ret); + return ret_conv; } }