Rename Lib to LibJna, add LibBase abstract class
This commit is contained in:
parent
adb54e3b87
commit
e6fabc81b3
@ -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)
|
||||||
|
}
|
@ -2,7 +2,7 @@ package org.bitcoindevkit.bdk
|
|||||||
|
|
||||||
import com.sun.jna.*
|
import com.sun.jna.*
|
||||||
|
|
||||||
interface Lib : Library {
|
interface LibJna : Library {
|
||||||
|
|
||||||
// typedef struct VoidResult VoidResult_t;
|
// typedef struct VoidResult VoidResult_t;
|
||||||
class VoidResult_t : PointerType {
|
class VoidResult_t : PointerType {
|
@ -1,6 +1,5 @@
|
|||||||
package org.bitcoindevkit.bdk
|
package org.bitcoindevkit.bdk
|
||||||
|
|
||||||
import com.sun.jna.Native
|
|
||||||
import org.junit.*
|
import org.junit.*
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
@ -14,11 +13,10 @@ import kotlin.test.assertNull
|
|||||||
*/
|
*/
|
||||||
abstract class LibTest {
|
abstract class LibTest {
|
||||||
|
|
||||||
companion object {
|
companion object : LibBase() {
|
||||||
private val log: Logger = LoggerFactory.getLogger(LibTest::class.java)
|
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: LibJna.WalletResult_t
|
||||||
private lateinit var wallet_result: Lib.WalletResult_t
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@ -29,45 +27,45 @@ abstract class LibTest {
|
|||||||
val change =
|
val change =
|
||||||
"wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"
|
"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")
|
log.debug("wallet created")
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun free_wallet() {
|
fun free_wallet() {
|
||||||
bdkFfi.free_wallet_result(wallet_result)
|
libJna.free_wallet_result(wallet_result)
|
||||||
log.debug("wallet freed")
|
log.debug("wallet freed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wallet_sync_error() {
|
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")
|
log.debug("wallet result created")
|
||||||
val sync_result = bdkFfi.sync_wallet(bad_wallet_result)
|
val sync_result = libJna.sync_wallet(bad_wallet_result)
|
||||||
val sync_err_pointer = bdkFfi.get_void_err(sync_result)
|
val sync_err_pointer = libJna.get_void_err(sync_result)
|
||||||
assertNotNull(sync_err_pointer)
|
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")
|
log.debug("wallet sync error $sync_err")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun sync() {
|
fun sync() {
|
||||||
val sync_result = bdkFfi.sync_wallet(wallet_result)
|
val sync_result = libJna.sync_wallet(wallet_result)
|
||||||
assertNull(bdkFfi.get_void_err(sync_result))
|
assertNull(libJna.get_void_err(sync_result))
|
||||||
bdkFfi.free_void_result(sync_result)
|
libJna.free_void_result(sync_result)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun new_newaddress_wallet() {
|
fun new_newaddress_wallet() {
|
||||||
val address_result = bdkFfi.new_address(wallet_result)
|
val address_result = libJna.new_address(wallet_result)
|
||||||
assertNull(bdkFfi.get_string_err(address_result))
|
assertNull(libJna.get_string_err(address_result))
|
||||||
val address_pointer = bdkFfi.get_string_ok(address_result);
|
val address_pointer = libJna.get_string_ok(address_result);
|
||||||
val address = address_pointer!!.getString(0)
|
val address = address_pointer!!.getString(0)
|
||||||
|
|
||||||
bdkFfi.free_string_result(address_result)
|
libJna.free_string_result(address_result)
|
||||||
bdkFfi.free_string(address_pointer)
|
libJna.free_string(address_pointer)
|
||||||
log.debug("address created from kotlin: $address")
|
log.debug("address created from kotlin: $address")
|
||||||
assertEquals(address, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e")
|
assertEquals(address, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user