import org.ldk.enums.*;
import org.ldk.util.*;
import java.util.Arrays;
+import java.lang.ref.Reference;
+import javax.annotation.Nullable;
/**
- * The `Listen` trait is used to be notified of when blocks have been connected or disconnected
- * from the chain.
+ * The `Listen` trait is used to notify when blocks have been connected or disconnected from the
+ * chain.
*
- * Useful when needing to replay chain data upon startup or as new chain events occur.
+ * Useful when needing to replay chain data upon startup or as new chain events occur. Clients
+ * sourcing chain data using a block-oriented API should prefer this interface over [`Confirm`].
+ * Such clients fetch the entire header chain whereas clients using [`Confirm`] only fetch headers
+ * when needed.
*/
@SuppressWarnings("unchecked") // We correctly assign various generic arrays
public class Listen extends CommonBase {
*/
public void block_connected(byte[] block, int height) {
bindings.Listen_block_connected(this.ptr, block, height);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(block);
+ Reference.reachabilityFence(height);
}
/**
* Notifies the listener that a block was removed at the given height.
*/
public void block_disconnected(byte[] header, int height) {
- bindings.Listen_block_disconnected(this.ptr, header, height);
+ bindings.Listen_block_disconnected(this.ptr, InternalUtils.check_arr_len(header, 80), height);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(header);
+ Reference.reachabilityFence(height);
}
}