Rename gradle modules to jvm and android

This commit is contained in:
Steve Myers
2021-06-20 18:48:48 -07:00
parent 9e5aac759d
commit a830d9b082
12 changed files with 49 additions and 41 deletions

View File

@@ -0,0 +1,74 @@
package org.bitcoindevkit.bdk
import com.sun.jna.*
interface Lib : Library {
// typedef struct VoidResult VoidResult_t;
class VoidResult_t : PointerType {
constructor() : super()
constructor(pointer: Pointer) : super(pointer)
}
// char * get_void_err (
// VoidResult_t const * void_result);
fun get_void_err(void_result: VoidResult_t): Pointer?
// void free_void_result (
// VoidResult_t * void_result);
fun free_void_result(void_result: VoidResult_t)
// typedef struct StringResult StringResult_t;
class StringResult_t : PointerType {
constructor() : super()
constructor(pointer: Pointer) : super(pointer)
}
// char * get_string_ok (
// StringResult_t const * string_result);
fun get_string_ok(string_result: StringResult_t): Pointer?
// char * get_string_err (
// StringResult_t const * string_result);
fun get_string_err(string_result: StringResult_t): Pointer?
// void free_string_result (
// StringResult_t * string_result);
fun free_string_result(string_result: StringResult_t)
// void free_string (
// char * string);
fun free_string(string: Pointer?)
// typedef struct WalletResult WalletResult_t;
class WalletResult_t : PointerType {
constructor() : super()
constructor(pointer: Pointer) : super(pointer)
}
// WalletResult_t * new_wallet_result (
// char const * name,
// char const * descriptor,
// char const * change_descriptor);
fun new_wallet_result(
name: String,
descriptor: String,
changeDescriptor: String?
): WalletResult_t
// char * get_wallet_err (
// WalletResult_t const * wallet_result);
// TODO
// VoidResult_t * sync_wallet (
// WalletResult_t const * wallet_result);
fun sync_wallet(wallet_result: WalletResult_t): VoidResult_t
// StringResult_t * new_address (
// WalletResult_t const * wallet_result);
fun new_address(wallet_result: WalletResult_t): StringResult_t
// void free_wallet_result (
// WalletResult_t * wallet_result);
fun free_wallet_result(wallet_result: WalletResult_t)
}

View File

@@ -0,0 +1,70 @@
package org.bitcoindevkit.bdk
import com.sun.jna.Native
import org.junit.*
import org.junit.Assert.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertNull
/**
* Library test, which will execute on linux host.
*
*/
class LibTest {
companion object {
private val bdkFfi: Lib = Native.load("bdk_ffi", Lib::class.java)
private lateinit var wallet_result: Lib.WalletResult_t
@BeforeClass
@JvmStatic
fun new_wallet() {
val name = "test_wallet"
val desc =
"wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)"
val change =
"wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/1/*)"
wallet_result = bdkFfi.new_wallet_result(name, desc, change)
//println("wallet created")
}
@AfterClass
@JvmStatic
fun free_wallet() {
bdkFfi.free_wallet_result(wallet_result)
//println("wallet freed")
}
}
@Test
fun wallet_sync_error() {
val bad_wallet_result = bdkFfi.new_wallet_result("test", "bad", null)
println("wallet result created")
val sync_result = bdkFfi.sync_wallet(bad_wallet_result)
val sync_err_pointer = bdkFfi.get_void_err(sync_result)
assertNotNull(sync_err_pointer)
val sync_err = sync_err_pointer.getString(0)
println("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)
}
@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 = address_pointer!!.getString(0)
bdkFfi.free_string_result(address_result)
bdkFfi.free_string(address_pointer)
//println("address created from kotlin: $address")
assertEquals(address, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e")
}
}