Merge pull request #128 from TheBlueMatt/main
[ldk-java] / genbindings.py
index 10416ab95e3161b3035506d38563d6efea533ded..e5a59700352c6f0c1cdff2de3546783770396ee8 100755 (executable)
@@ -30,8 +30,12 @@ elif sys.argv[6] == "c_sharp":
     import csharp_strings
     from csharp_strings import Consts
     target = csharp_strings.Target.CSHARP
+elif sys.argv[6] == "python":
+    import python_strings
+    from python_strings import Consts
+    target = python_strings.Target.PYTHON
 else:
-    print("Only java, typescript, or c_sharp can be set for lang")
+    print("Only java, typescript, python, or c_sharp can be set for lang")
     sys.exit(1)
 
 
@@ -128,13 +132,15 @@ def java_c_types(fn_arg, ret_arr_len):
     rust_obj = None
     arr_access = None
     java_hu_ty = None
-    if fn_arg.startswith("LDKPaymentPreimage") or fn_arg.startswith("LDKPaymentSecret") or fn_arg.startswith("LDKPaymentHash"):
+    if fn_arg.startswith("LDKPaymentPreimage") or fn_arg.startswith("LDKPaymentSecret") or fn_arg.startswith("LDKPaymentHash") or fn_arg.startswith("LDKChainHash"):
         if fn_arg.startswith("LDKPaymentPreimage"):
             fn_arg = "uint8_t (*" + fn_arg[19:] + ")[32]"
         elif fn_arg.startswith("LDKPaymentSecret"):
             fn_arg = "uint8_t (*" + fn_arg[17:] + ")[32]"
         elif fn_arg.startswith("LDKPaymentHash"):
             fn_arg = "uint8_t (*" + fn_arg[15:] + ")[32]"
+        elif fn_arg.startswith("LDKChainHash"):
+            fn_arg = "uint8_t (*" + fn_arg[13:] + ")[32]"
         assert var_is_arr_regex.match(fn_arg[8:])
         rust_obj = "LDKThirtyTwoBytes"
         arr_access = "data"
@@ -339,14 +345,17 @@ def java_c_types(fn_arg, ret_arr_len):
         arr_ty = "LDKStr"
         fn_ty_arg = "Ljava/lang/String;"
         fn_arg = fn_arg[6:].strip()
-    elif fn_arg.startswith("LDKStr"):
+    elif fn_arg.startswith("LDKStr") or fn_arg.startswith("LDKAddress"):
         rust_obj = "LDKStr"
         arr_ty = "LDKStr"
         java_ty = consts.java_type_map["String"]
         java_hu_ty = consts.java_hu_type_map["String"]
         c_ty = "jstring"
         fn_ty_arg = "Ljava/lang/String;"
-        fn_arg = fn_arg[6:].strip()
+        if fn_arg.startswith("LDKAddress"):
+            fn_arg = fn_arg[10:].strip()
+        else:
+            fn_arg = fn_arg[6:].strip()
         arr_access = "chars"
         arr_len = "len"
     elif fn_arg.startswith("LDKError ") or fn_arg == "LDKError":