3 import CommonBase from './CommonBase';
4 import * as bindings from '../bindings' // TODO: figure out location
8 export class Confirm extends CommonBase {
10 bindings_instance?: bindings.LDKConfirm;
12 constructor(ptr?: number, arg?: bindings.LDKConfirm) {
13 if (Number.isFinite(ptr)) {
15 this.bindings_instance = null;
17 // TODO: private constructor instantiation
18 super(bindings.LDKConfirm_new(arg));
19 this.ptrs_to.push(arg);
24 protected finalize() {
26 bindings.Confirm_free(this.ptr);
31 static new_impl(arg: ConfirmInterface): Confirm {
32 const impl_holder: LDKConfirmHolder = new LDKConfirmHolder();
33 let structImplementation = <bindings.LDKConfirm>{
34 // todo: in-line interface filling
35 transactions_confirmed (header: Uint8Array, txdata: number[], height: number): void {
36 TwoTuple<Number, Uint8Array>[] txdata_conv_30_arr = new TwoTuple[txdata.length];
37 for (int e = 0; e < txdata.length; e++) {
38 number txdata_conv_30 = txdata[e];
39 number txdata_conv_30_a = bindings.LDKC2Tuple_usizeTransactionZ_get_a(txdata_conv_30);
40 Uint8Array txdata_conv_30_b = bindings.LDKC2Tuple_usizeTransactionZ_get_b(txdata_conv_30);
41 TwoTuple<Number, Uint8Array> txdata_conv_30_conv = new TwoTuple<Number, Uint8Array>(txdata_conv_30_a, txdata_conv_30_b, () -> {
42 bindings.C2Tuple_usizeTransactionZ_free(txdata_conv_30);
44 txdata_conv_30_arr[e] = txdata_conv_30_conv;
46 arg.transactions_confirmed(header, txdata_conv_30_arr, height);
49 transaction_unconfirmed (txid: Uint8Array): void {
50 arg.transaction_unconfirmed(txid);
53 best_block_updated (header: Uint8Array, height: number): void {
54 arg.best_block_updated(header, height);
57 get_relevant_txids (): Uint8Array[] {
58 Uint8Array[] ret = arg.get_relevant_txids();
64 impl_holder.held = new Confirm (null, structImplementation);
68 export interface ConfirmInterface {
69 transactions_confirmed(header: Uint8Array, txdata: TwoTuple<Number, Uint8Array>[], height: number): void;
70 transaction_unconfirmed(txid: Uint8Array): void;
71 best_block_updated(header: Uint8Array, height: number): void;
72 get_relevant_txids(): Uint8Array[];
76 class LDKConfirmHolder {
79 public void transactions_confirmed(Uint8Array header, TwoTuple<Number, Uint8Array>[] txdata, number height) {
80 bindings.Confirm_transactions_confirmed(this.ptr, header, txdata != null ? Arrays.stream(txdata).map(txdata_conv_30 -> bindings.C2Tuple_usizeTransactionZ_new(txdata_conv_30.a, txdata_conv_30.b)).toArray(number[]::new) : null, height);
83 public void transaction_unconfirmed(Uint8Array txid) {
84 bindings.Confirm_transaction_unconfirmed(this.ptr, txid);
87 public void best_block_updated(Uint8Array header, number height) {
88 bindings.Confirm_best_block_updated(this.ptr, header, height);
91 public Uint8Array[] get_relevant_txids() {
92 Uint8Array[] ret = bindings.Confirm_get_relevant_txids(this.ptr);