[Java] Update auto-generated Java bindings to LDK 0.0.121
[ldk-java] / src / main / java / org / ldk / structs / BroadcasterInterface.java
index 5052076dfab22a56bea96e9b528e99afa70781d6..a0c8fb9b55a435261e78472594bd1fbc7e7bbccb 100644 (file)
@@ -23,30 +23,67 @@ public class BroadcasterInterface extends CommonBase {
        protected void finalize() throws Throwable {
                if (ptr != 0) { bindings.BroadcasterInterface_free(ptr); } super.finalize();
        }
-
+       /**
+        * Destroys the object, freeing associated resources. After this call, any access
+        * to this object may result in a SEGFAULT or worse.
+        *
+        * You should generally NEVER call this method. You should let the garbage collector
+        * do this for you when it finalizes objects. However, it may be useful for types
+        * which represent locks and should be closed immediately to avoid holding locks
+        * until the GC runs.
+        */
+       public void destroy() {
+               if (ptr != 0) { bindings.BroadcasterInterface_free(ptr); }
+               ptr = 0;
+       }
        public static interface BroadcasterInterfaceInterface {
                /**
-                * Sends a transaction out to (hopefully) be mined.
+                * Sends a list of transactions out to (hopefully) be mined.
+                * This only needs to handle the actual broadcasting of transactions, LDK will automatically
+                * rebroadcast transactions that haven't made it into a block.
+                * 
+                * In some cases LDK may attempt to broadcast a transaction which double-spends another
+                * and this isn't a bug and can be safely ignored.
+                * 
+                * If more than one transaction is given, these transactions should be considered to be a
+                * package and broadcast together. Some of the transactions may or may not depend on each other,
+                * be sure to manage both cases correctly.
+                * 
+                * Bitcoin transaction packages are defined in BIP 331 and here:
+                * <https://github.com/bitcoin/bitcoin/blob/master/doc/policy/packages.md>
                 */
-               void broadcast_transaction(byte[] tx);
+               void broadcast_transactions(byte[][] txs);
        }
        private static class LDKBroadcasterInterfaceHolder { BroadcasterInterface held; }
        public static BroadcasterInterface new_impl(BroadcasterInterfaceInterface arg) {
                final LDKBroadcasterInterfaceHolder impl_holder = new LDKBroadcasterInterfaceHolder();
                impl_holder.held = new BroadcasterInterface(new bindings.LDKBroadcasterInterface() {
-                       @Override public void broadcast_transaction(byte[] tx) {
-                               arg.broadcast_transaction(tx);
+                       @Override public void broadcast_transactions(byte[][] txs) {
+                               arg.broadcast_transactions(txs);
+                               Reference.reachabilityFence(arg);
                        }
                });
                return impl_holder.held;
        }
        /**
-        * Sends a transaction out to (hopefully) be mined.
+        * Sends a list of transactions out to (hopefully) be mined.
+        * This only needs to handle the actual broadcasting of transactions, LDK will automatically
+        * rebroadcast transactions that haven't made it into a block.
+        * 
+        * In some cases LDK may attempt to broadcast a transaction which double-spends another
+        * and this isn't a bug and can be safely ignored.
+        * 
+        * If more than one transaction is given, these transactions should be considered to be a
+        * package and broadcast together. Some of the transactions may or may not depend on each other,
+        * be sure to manage both cases correctly.
+        * 
+        * Bitcoin transaction packages are defined in BIP 331 and here:
+        * <https://github.com/bitcoin/bitcoin/blob/master/doc/policy/packages.md>
         */
-       public void broadcast_transaction(byte[] tx) {
-               bindings.BroadcasterInterface_broadcast_transaction(this.ptr, tx);
+       public void broadcast_transactions(byte[][] txs) {
+               bindings.BroadcasterInterface_broadcast_transactions(this.ptr, txs);
                Reference.reachabilityFence(this);
-               Reference.reachabilityFence(tx);
+               Reference.reachabilityFence(txs);
        }
 
 }