From e6fabc81b37a72a9c745e6dc74bd1749e60354ba Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Mon, 21 Jun 2021 14:55:56 -0700 Subject: [PATCH] Rename Lib to LibJna, add LibBase abstract class --- .../java/org/bitcoindevkit/bdk/LibBase.kt | 9 +++++ .../bitcoindevkit/bdk/{Lib.kt => LibJna.kt} | 2 +- .../java/org/bitcoindevkit/bdk/LibTest.kt | 34 +++++++++---------- 3 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibBase.kt rename bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/{Lib.kt => LibJna.kt} (98%) diff --git a/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibBase.kt b/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibBase.kt new file mode 100644 index 0000000..e00eec0 --- /dev/null +++ b/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibBase.kt @@ -0,0 +1,9 @@ +package org.bitcoindevkit.bdk + +import com.sun.jna.Native + +abstract class LibBase { + + protected val libJna: LibJna + get() = Native.load("bdk_ffi", LibJna::class.java) +} \ No newline at end of file diff --git a/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/Lib.kt b/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibJna.kt similarity index 98% rename from bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/Lib.kt rename to bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibJna.kt index feea907..411de5b 100644 --- a/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/Lib.kt +++ b/bdk-kotlin/jvm/src/main/java/org/bitcoindevkit/bdk/LibJna.kt @@ -2,7 +2,7 @@ package org.bitcoindevkit.bdk import com.sun.jna.* -interface Lib : Library { +interface LibJna : Library { // typedef struct VoidResult VoidResult_t; class VoidResult_t : PointerType { diff --git a/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt b/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt index 9ef5b4e..7bb236f 100644 --- a/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt +++ b/bdk-kotlin/test-fixtures/src/main/java/org/bitcoindevkit/bdk/LibTest.kt @@ -1,6 +1,5 @@ package org.bitcoindevkit.bdk -import com.sun.jna.Native import org.junit.* import org.junit.Assert.assertEquals import org.slf4j.Logger @@ -14,11 +13,10 @@ import kotlin.test.assertNull */ abstract class LibTest { - companion object { + companion object : LibBase() { private val log: Logger = LoggerFactory.getLogger(LibTest::class.java) - private val bdkFfi: Lib = Native.load("bdk_ffi", Lib::class.java) - private lateinit var wallet_result: Lib.WalletResult_t + private lateinit var wallet_result: LibJna.WalletResult_t @BeforeClass @JvmStatic @@ -29,45 +27,45 @@ abstract class LibTest { val change = "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)" - wallet_result = bdkFfi.new_wallet_result(name, desc, change) + wallet_result = libJna.new_wallet_result(name, desc, change) log.debug("wallet created") } @AfterClass @JvmStatic fun free_wallet() { - bdkFfi.free_wallet_result(wallet_result) + libJna.free_wallet_result(wallet_result) log.debug("wallet freed") } } @Test fun wallet_sync_error() { - val bad_wallet_result = bdkFfi.new_wallet_result("test", "bad", null) + val bad_wallet_result = libJna.new_wallet_result("test", "bad", null) log.debug("wallet result created") - val sync_result = bdkFfi.sync_wallet(bad_wallet_result) - val sync_err_pointer = bdkFfi.get_void_err(sync_result) + val sync_result = libJna.sync_wallet(bad_wallet_result) + val sync_err_pointer = libJna.get_void_err(sync_result) assertNotNull(sync_err_pointer) - val sync_err = sync_err_pointer!!.getString(0) + val sync_err = sync_err_pointer.getString(0) log.debug("wallet sync error $sync_err") } @Test fun sync() { - val sync_result = bdkFfi.sync_wallet(wallet_result) - assertNull(bdkFfi.get_void_err(sync_result)) - bdkFfi.free_void_result(sync_result) + val sync_result = libJna.sync_wallet(wallet_result) + assertNull(libJna.get_void_err(sync_result)) + libJna.free_void_result(sync_result) } @Test fun new_newaddress_wallet() { - val address_result = bdkFfi.new_address(wallet_result) - assertNull(bdkFfi.get_string_err(address_result)) - val address_pointer = bdkFfi.get_string_ok(address_result); + val address_result = libJna.new_address(wallet_result) + assertNull(libJna.get_string_err(address_result)) + val address_pointer = libJna.get_string_ok(address_result); val address = address_pointer!!.getString(0) - bdkFfi.free_string_result(address_result) - bdkFfi.free_string(address_pointer) + libJna.free_string_result(address_result) + libJna.free_string(address_pointer) log.debug("address created from kotlin: $address") assertEquals(address, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e") }