Reorganized code into wallet mod/package
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
|
||||
import com.sun.jna.Pointer
|
||||
import com.sun.jna.PointerType
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
abstract class ResultBase<PT : PointerType, RT : Any> internal constructor(private val pointerT: PT) :
|
||||
LibBase() {
|
||||
|
||||
protected open val log: Logger = LoggerFactory.getLogger(ResultBase::class.java)
|
||||
|
||||
protected abstract fun err(pointerT: PT): Pointer?
|
||||
|
||||
protected abstract fun ok(pointerT: PT): RT
|
||||
|
||||
protected abstract fun free(pointerT: PT)
|
||||
|
||||
private fun checkErr(pointerT: PT) {
|
||||
val errPointer = err(pointerT)
|
||||
val err = errPointer?.getString(0)
|
||||
libJna.free_string(errPointer)
|
||||
if (err != null) {
|
||||
log.error("JnaError: $err")
|
||||
throw JnaException(JnaError.valueOf(err))
|
||||
}
|
||||
}
|
||||
|
||||
fun value(): RT {
|
||||
checkErr(pointerT)
|
||||
return ok(pointerT)
|
||||
}
|
||||
|
||||
protected fun finalize() {
|
||||
free(pointerT)
|
||||
log.debug("$pointerT freed")
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.types
|
||||
|
||||
import com.sun.jna.Pointer
|
||||
import org.bitcoindevkit.bdk.FfiResult
|
||||
import org.bitcoindevkit.bdk.JnaError
|
||||
import org.bitcoindevkit.bdk.JnaException
|
||||
import org.bitcoindevkit.bdk.LibBase
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.types
|
||||
|
||||
import com.sun.jna.Pointer
|
||||
import org.bitcoindevkit.bdk.LibJna
|
||||
|
||||
class StringResult constructor(stringResultPtr: LibJna.FfiResult_char_ptr_t.ByValue) :
|
||||
Result<LibJna.FfiResult_char_ptr_t.ByValue, String>(stringResultPtr) {
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.types
|
||||
|
||||
import com.sun.jna.Pointer
|
||||
import org.bitcoindevkit.bdk.LibJna
|
||||
|
||||
class VoidResult constructor(voidResultPtr: LibJna.FfiResult_void_t.ByValue) :
|
||||
Result<LibJna.FfiResult_void_t.ByValue, Unit>(voidResultPtr) {
|
||||
@@ -3,7 +3,7 @@ package org.bitcoindevkit.bdk
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
abstract class BlockchainConfig() : LibBase() {
|
||||
abstract class BlockchainConfig : LibBase() {
|
||||
private val log: Logger = LoggerFactory.getLogger(BlockchainConfig::class.java)
|
||||
abstract val blockchainConfigT: LibJna.BlockchainConfig_t
|
||||
|
||||
@@ -3,7 +3,7 @@ package org.bitcoindevkit.bdk
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
abstract class DatabaseConfig() : LibBase() {
|
||||
abstract class DatabaseConfig : LibBase() {
|
||||
private val log: Logger = LoggerFactory.getLogger(DatabaseConfig::class.java)
|
||||
abstract val databaseConfigT: LibJna.DatabaseConfig_t
|
||||
|
||||
@@ -13,7 +13,7 @@ abstract class DatabaseConfig() : LibBase() {
|
||||
}
|
||||
}
|
||||
|
||||
class MemoryConfig() : DatabaseConfig() {
|
||||
class MemoryConfig : DatabaseConfig() {
|
||||
|
||||
private val log: Logger = LoggerFactory.getLogger(MemoryConfig::class.java)
|
||||
override val databaseConfigT = libJna.new_memory_config()
|
||||
@@ -1,5 +1,9 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.wallet
|
||||
|
||||
import org.bitcoindevkit.bdk.JnaError
|
||||
import org.bitcoindevkit.bdk.JnaException
|
||||
import org.bitcoindevkit.bdk.LibBase
|
||||
import org.bitcoindevkit.bdk.LibJna
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.wallet
|
||||
|
||||
import org.bitcoindevkit.bdk.BlockchainConfig
|
||||
import org.bitcoindevkit.bdk.DatabaseConfig
|
||||
import org.bitcoindevkit.bdk.LibBase
|
||||
import org.bitcoindevkit.bdk.LibJna
|
||||
import org.bitcoindevkit.bdk.types.StringResult
|
||||
import org.bitcoindevkit.bdk.types.VoidResult
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
package org.bitcoindevkit.bdk.wallet
|
||||
|
||||
import com.sun.jna.Pointer
|
||||
import org.bitcoindevkit.bdk.LibJna
|
||||
import org.bitcoindevkit.bdk.types.Result
|
||||
|
||||
class WalletResult constructor(walletResultPtr: LibJna.FfiResult_OpaqueWallet_t.ByValue) :
|
||||
Result<LibJna.FfiResult_OpaqueWallet_t.ByValue, LibJna.OpaqueWallet_t>(walletResultPtr) {
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.bitcoindevkit.bdk
|
||||
|
||||
import org.bitcoindevkit.bdk.wallet.Wallet
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Test
|
||||
import org.slf4j.Logger
|
||||
|
||||
Reference in New Issue
Block a user