diff --git a/.gitignore b/.gitignore index 7ec88ce..30226da 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ target build Cargo.lock *.h -main /local.properties .gradle wallet_db diff --git a/jvm/src/main/java/org/bitcoindevkit/bdkjni/Lib.kt b/jvm/src/main/java/org/bitcoindevkit/bdkjni/Lib.kt new file mode 100644 index 0000000..d1b7456 --- /dev/null +++ b/jvm/src/main/java/org/bitcoindevkit/bdkjni/Lib.kt @@ -0,0 +1,76 @@ +package org.bitcoindevkit.bdkjni + +import com.sun.jna.* +import com.sun.jna.ptr.PointerByReference + +// typedef struct { +// +// char * name; +// +// int32_t count; +// +// } Config_t; +//@Structure.FieldOrder("x", "y") +class Config_t : Structure() { + @JvmField + var name: String? = null + @JvmField + var count: NativeLong? = null + + override fun getFieldOrder() = listOf("name", "count") +} + +// typedef struct WalletPtr WalletPtr_t; +//class WalletPtr_t : PointerType() + +interface Lib : Library { + + // void print_string ( + // char const * string); + fun print_string(name: String) + + // char * concat_string ( + // char const * fst, + // char const * snd); + fun concat_string(fst: String, snd: String): String + + // void free_string ( + // char * string); + fun free_string(string: String) + + // void print_int ( + // int64_t number); + fun print_int(number: Int) + + // void print_config ( + // Config_t const * config); + fun print_config(config: Config_t) + + // Config_t new_config ( + // char * name, + // int32_t count); + fun new_config(name: String, count: NativeLong): Config_t + + // void free_config ( + // Config_t * config); + fun free_config(config: Config_t) + + // WalletPtr_t * new_wallet ( + // char const * name, + // char const * descriptor, + // char const * change_descriptor); + //fun new_wallet(name: String, descriptor: String, changeDescriptor: String?): WalletPtr_t + + // void sync_wallet ( + // WalletPtr_t * const * wallet); + //fun sync_wallet(wallet: WalletPtr_t) + //fun sync_wallet(wallet: WalletPtr_t) + + // char * new_address ( + // WalletPtr_t * const * wallet); + //fun new_address(wallet: WalletPtr_t): String + + // void free_wallet ( + // WalletPtr_t * wallet); + //fun free_wallet(wallet: WalletPtr_t) +} diff --git a/jvm/src/test/java/org/bitcoindevkit/bdkjni/LibTest.kt b/jvm/src/test/java/org/bitcoindevkit/bdkjni/LibTest.kt index aef6e69..6d935fe 100644 --- a/jvm/src/test/java/org/bitcoindevkit/bdkjni/LibTest.kt +++ b/jvm/src/test/java/org/bitcoindevkit/bdkjni/LibTest.kt @@ -2,6 +2,8 @@ package org.bitcoindevkit.bdkjni import com.sun.jna.Native import com.sun.jna.NativeLong +import com.sun.jna.Pointer +import com.sun.jna.ptr.PointerByReference import org.junit.Test /** @@ -40,4 +42,27 @@ class LibTest { lib.print_config(config) lib.free_config(config) } + +// @Test +// fun new_sync_free_wallet() { +// val name = "test_wallet" +// val desc = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)" +// val change = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" +// +// val wallet = lib.new_wallet(name, desc, change) +// println("wallet created in kotlin: $wallet") +// lib.sync_wallet(wallet) +// //lib.free_wallet(wallet) +// } + +// @Test +// fun new_newaddress_wallet() { +// val name = "test_wallet" +// val desc = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)" +// val change = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" +// +// val config = lib.new_config("test test", NativeLong(Long.MAX_VALUE)) +// lib.print_config(config) +// lib.free_config(config) +// } }