mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2026-01-26 17:34:30 +01:00
Depend on sdk-common with liquid feature (#452)
* Add copy script to packages/react-native makefile * Reorder scripts * Depend on sdk-common with liquid feature * chore: cargo update * Generate Dart bindings * Generate UniFFI bindings * Simplify import resolution by using prelude::* * Applies changes from https://github.com/breez/breez-sdk-greenlight/pull/1078
This commit is contained in:
@@ -535,6 +535,54 @@ fun asLimitsList(arr: ReadableArray): List<Limits> {
|
||||
return list
|
||||
}
|
||||
|
||||
fun asLiquidAddressData(liquidAddressData: ReadableMap): LiquidAddressData? {
|
||||
if (!validateMandatoryFields(
|
||||
liquidAddressData,
|
||||
arrayOf(
|
||||
"address",
|
||||
"network",
|
||||
),
|
||||
)
|
||||
) {
|
||||
return null
|
||||
}
|
||||
val address = liquidAddressData.getString("address")!!
|
||||
val network = liquidAddressData.getString("network")?.let { asNetwork(it) }!!
|
||||
val assetId = if (hasNonNullKey(liquidAddressData, "assetId")) liquidAddressData.getString("assetId") else null
|
||||
val amountSat = if (hasNonNullKey(liquidAddressData, "amountSat")) liquidAddressData.getDouble("amountSat").toULong() else null
|
||||
val label = if (hasNonNullKey(liquidAddressData, "label")) liquidAddressData.getString("label") else null
|
||||
val message = if (hasNonNullKey(liquidAddressData, "message")) liquidAddressData.getString("message") else null
|
||||
return LiquidAddressData(
|
||||
address,
|
||||
network,
|
||||
assetId,
|
||||
amountSat,
|
||||
label,
|
||||
message,
|
||||
)
|
||||
}
|
||||
|
||||
fun readableMapOf(liquidAddressData: LiquidAddressData): ReadableMap =
|
||||
readableMapOf(
|
||||
"address" to liquidAddressData.address,
|
||||
"network" to liquidAddressData.network.name.lowercase(),
|
||||
"assetId" to liquidAddressData.assetId,
|
||||
"amountSat" to liquidAddressData.amountSat,
|
||||
"label" to liquidAddressData.label,
|
||||
"message" to liquidAddressData.message,
|
||||
)
|
||||
|
||||
fun asLiquidAddressDataList(arr: ReadableArray): List<LiquidAddressData> {
|
||||
val list = ArrayList<LiquidAddressData>()
|
||||
for (value in arr.toArrayList()) {
|
||||
when (value) {
|
||||
is ReadableMap -> list.add(asLiquidAddressData(value)!!)
|
||||
else -> throw SdkException.Generic(errUnexpectedType("${value::class.java.name}"))
|
||||
}
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
fun asListPaymentsRequest(listPaymentsRequest: ReadableMap): ListPaymentsRequest? {
|
||||
if (!validateMandatoryFields(
|
||||
listPaymentsRequest,
|
||||
@@ -2298,6 +2346,9 @@ fun asInputType(inputType: ReadableMap): InputType? {
|
||||
if (type == "bitcoinAddress") {
|
||||
return InputType.BitcoinAddress(inputType.getMap("address")?.let { asBitcoinAddressData(it) }!!)
|
||||
}
|
||||
if (type == "liquidAddress") {
|
||||
return InputType.LiquidAddress(inputType.getMap("address")?.let { asLiquidAddressData(it) }!!)
|
||||
}
|
||||
if (type == "bolt11") {
|
||||
return InputType.Bolt11(inputType.getMap("invoice")?.let { asLnInvoice(it) }!!)
|
||||
}
|
||||
@@ -2329,6 +2380,10 @@ fun readableMapOf(inputType: InputType): ReadableMap? {
|
||||
pushToMap(map, "type", "bitcoinAddress")
|
||||
pushToMap(map, "address", readableMapOf(inputType.address))
|
||||
}
|
||||
is InputType.LiquidAddress -> {
|
||||
pushToMap(map, "type", "liquidAddress")
|
||||
pushToMap(map, "address", readableMapOf(inputType.address))
|
||||
}
|
||||
is InputType.Bolt11 -> {
|
||||
pushToMap(map, "type", "bolt11")
|
||||
pushToMap(map, "invoice", readableMapOf(inputType.invoice))
|
||||
|
||||
Reference in New Issue
Block a user