diff --git a/bindings/bdk-kotlin/src/main/kotlin/uniffi/bdk/bdk.kt b/bindings/bdk-kotlin/src/main/kotlin/uniffi/bdk/bdk.kt index 4d7121a..437b142 100644 --- a/bindings/bdk-kotlin/src/main/kotlin/uniffi/bdk/bdk.kt +++ b/bindings/bdk-kotlin/src/main/kotlin/uniffi/bdk/bdk.kt @@ -44,15 +44,15 @@ open class RustBuffer : Structure() { companion object { internal fun alloc(size: Int = 0) = rustCall() { status -> - _UniFFILib.INSTANCE.ffi_bdk_f2ea_rustbuffer_alloc(size, status) + _UniFFILib.INSTANCE.ffi_bdk_14a1_rustbuffer_alloc(size, status) } internal fun free(buf: RustBuffer.ByValue) = rustCall() { status -> - _UniFFILib.INSTANCE.ffi_bdk_f2ea_rustbuffer_free(buf, status) + _UniFFILib.INSTANCE.ffi_bdk_14a1_rustbuffer_free(buf, status) } internal fun reserve(buf: RustBuffer.ByValue, additional: Int) = rustCall() { status -> - _UniFFILib.INSTANCE.ffi_bdk_f2ea_rustbuffer_reserve(buf, additional, status) + _UniFFILib.INSTANCE.ffi_bdk_14a1_rustbuffer_reserve(buf, additional, status) } } @@ -451,39 +451,43 @@ internal interface _UniFFILib : Library { } } - fun ffi_bdk_f2ea_OfflineWallet_object_free(ptr: Pointer, + fun ffi_bdk_14a1_OfflineWallet_object_free(ptr: Pointer, uniffi_out_err: RustCallStatus ): Unit - fun bdk_f2ea_OfflineWallet_new(descriptor: RustBuffer.ByValue,network: RustBuffer.ByValue,database_config: RustBuffer.ByValue, + fun bdk_14a1_OfflineWallet_new(descriptor: RustBuffer.ByValue,network: RustBuffer.ByValue,database_config: RustBuffer.ByValue, uniffi_out_err: RustCallStatus ): Pointer - fun bdk_f2ea_OfflineWallet_get_new_address(ptr: Pointer, + fun bdk_14a1_OfflineWallet_get_new_address(ptr: Pointer, uniffi_out_err: RustCallStatus ): RustBuffer.ByValue - fun ffi_bdk_f2ea_OnlineWallet_object_free(ptr: Pointer, + fun ffi_bdk_14a1_OnlineWallet_object_free(ptr: Pointer, uniffi_out_err: RustCallStatus ): Unit - fun bdk_f2ea_OnlineWallet_new(descriptor: RustBuffer.ByValue,network: RustBuffer.ByValue,database_config: RustBuffer.ByValue,blockchain_config: RustBuffer.ByValue, + fun bdk_14a1_OnlineWallet_new(descriptor: RustBuffer.ByValue,network: RustBuffer.ByValue,database_config: RustBuffer.ByValue,blockchain_config: RustBuffer.ByValue, uniffi_out_err: RustCallStatus ): Pointer - fun ffi_bdk_f2ea_rustbuffer_alloc(size: Int, + fun bdk_14a1_OnlineWallet_get_network(ptr: Pointer, uniffi_out_err: RustCallStatus ): RustBuffer.ByValue - fun ffi_bdk_f2ea_rustbuffer_from_bytes(bytes: ForeignBytes.ByValue, + fun ffi_bdk_14a1_rustbuffer_alloc(size: Int, uniffi_out_err: RustCallStatus ): RustBuffer.ByValue - fun ffi_bdk_f2ea_rustbuffer_free(buf: RustBuffer.ByValue, + fun ffi_bdk_14a1_rustbuffer_from_bytes(bytes: ForeignBytes.ByValue, + uniffi_out_err: RustCallStatus + ): RustBuffer.ByValue + + fun ffi_bdk_14a1_rustbuffer_free(buf: RustBuffer.ByValue, uniffi_out_err: RustCallStatus ): Unit - fun ffi_bdk_f2ea_rustbuffer_reserve(buf: RustBuffer.ByValue,additional: Int, + fun ffi_bdk_14a1_rustbuffer_reserve(buf: RustBuffer.ByValue,additional: Int, uniffi_out_err: RustCallStatus ): RustBuffer.ByValue @@ -1117,7 +1121,7 @@ class OfflineWallet( constructor(descriptor: String, network: Network, databaseConfig: DatabaseConfig ) : this( rustCallWithError(BdkException) { status -> - _UniFFILib.INSTANCE.bdk_f2ea_OfflineWallet_new(descriptor.lower(), network.lower(), databaseConfig.lower() ,status) + _UniFFILib.INSTANCE.bdk_14a1_OfflineWallet_new(descriptor.lower(), network.lower(), databaseConfig.lower() ,status) }) /** @@ -1130,7 +1134,7 @@ class OfflineWallet( */ override protected fun freeRustArcPtr() { rustCall() { status -> - _UniFFILib.INSTANCE.ffi_bdk_f2ea_OfflineWallet_object_free(this.pointer, status) + _UniFFILib.INSTANCE.ffi_bdk_14a1_OfflineWallet_object_free(this.pointer, status) } } @@ -1145,7 +1149,7 @@ class OfflineWallet( override fun getNewAddress(): String = callWithPointer { rustCall() { status -> - _UniFFILib.INSTANCE.bdk_f2ea_OfflineWallet_get_new_address(it, status) + _UniFFILib.INSTANCE.bdk_14a1_OfflineWallet_get_new_address(it, status) } }.let { String.lift(it) @@ -1170,6 +1174,7 @@ class OfflineWallet( @ExperimentalUnsignedTypes public interface OnlineWalletInterface { + fun getNetwork(): Network } @@ -1180,7 +1185,7 @@ class OnlineWallet( constructor(descriptor: String, network: Network, databaseConfig: DatabaseConfig, blockchainConfig: BlockchainConfig ) : this( rustCallWithError(BdkException) { status -> - _UniFFILib.INSTANCE.bdk_f2ea_OnlineWallet_new(descriptor.lower(), network.lower(), databaseConfig.lower(), blockchainConfig.lower() ,status) + _UniFFILib.INSTANCE.bdk_14a1_OnlineWallet_new(descriptor.lower(), network.lower(), databaseConfig.lower(), blockchainConfig.lower() ,status) }) /** @@ -1193,7 +1198,7 @@ class OnlineWallet( */ override protected fun freeRustArcPtr() { rustCall() { status -> - _UniFFILib.INSTANCE.ffi_bdk_f2ea_OnlineWallet_object_free(this.pointer, status) + _UniFFILib.INSTANCE.ffi_bdk_14a1_OnlineWallet_object_free(this.pointer, status) } } @@ -1205,6 +1210,15 @@ class OnlineWallet( buf.putLong(Pointer.nativeValue(this.lower())) } + override fun getNetwork(): Network = + callWithPointer { + rustCall() { status -> + _UniFFILib.INSTANCE.bdk_14a1_OnlineWallet_get_network(it, status) +} + }.let { + Network.lift(it) + } + companion object { diff --git a/bindings/bdk-kotlin/src/test/kotlin/uniffi/bdk/LibTest.kt b/bindings/bdk-kotlin/src/test/kotlin/uniffi/bdk/LibTest.kt index 6423d2b..1db8bc9 100644 --- a/bindings/bdk-kotlin/src/test/kotlin/uniffi/bdk/LibTest.kt +++ b/bindings/bdk-kotlin/src/test/kotlin/uniffi/bdk/LibTest.kt @@ -42,5 +42,7 @@ class LibTest { val client = BlockchainConfig.Electrum(ElectrumConfig("ssl://electrum.blockstream.info:50002", null, 5u, null, 100u)) val wallet = OnlineWallet(desc, Network.TESTNET, db, client) assertNotNull(wallet) + val network = wallet.getNetwork() + assertEquals(network, Network.TESTNET) } } diff --git a/src/bdk.udl b/src/bdk.udl index 1994bc1..593d4e8 100644 --- a/src/bdk.udl +++ b/src/bdk.udl @@ -94,4 +94,5 @@ interface BlockchainConfig { interface OnlineWallet { [Throws=BdkError] constructor(string descriptor, Network network, DatabaseConfig database_config, BlockchainConfig blockchain_config); + Network get_network(); }; diff --git a/src/lib.rs b/src/lib.rs index ae6fcc3..a1add54 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -117,6 +117,10 @@ impl OnlineWallet { )?); Ok(OnlineWallet { wallet }) } + + fn get_network(&self) -> Network { + self.wallet.lock().unwrap().network() + } } uniffi::deps::static_assertions::assert_impl_all!(OfflineWallet: Sync, Send);