Skip to content

Commit f79698c

Browse files
authored
BOM_1.2.1 (#58)
* fix: package_name as bundleId (#57) * fix: handle get network capabilities exception (#56)
1 parent db3ae2b commit f79698c

File tree

5 files changed

+144
-16
lines changed

5 files changed

+144
-16
lines changed

buildSrc/src/main/kotlin/Versions.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ const val KEY_PUBLISH_ARTIFACT_ID = "PUBLISH_ARTIFACT_ID"
55
const val KEY_SDK_NAME = "SDK_NAME"
66

77
//Latest versions
8-
const val BOM_VERSION = "1.2.0"
9-
const val FOUNDATION_VERSION = "1.2.0"
10-
const val CORE_VERSION = "1.2.0"
11-
const val SIGN_VERSION = "1.2.0"
12-
const val NOTIFY_VERSION = "1.2.0"
13-
const val WALLETKIT_VERSION = "1.2.0"
14-
const val APPKIT_VERSION = "1.2.0"
15-
const val MODAL_CORE_VERSION = "1.2.0"
8+
const val BOM_VERSION = "1.2.1"
9+
const val FOUNDATION_VERSION = "1.2.1"
10+
const val CORE_VERSION = "1.2.1"
11+
const val SIGN_VERSION = "1.2.1"
12+
const val NOTIFY_VERSION = "1.2.1"
13+
const val WALLETKIT_VERSION = "1.2.1"
14+
const val APPKIT_VERSION = "1.2.1"
15+
const val MODAL_CORE_VERSION = "1.2.1"
1616

1717
//Artifact ids
1818
const val ANDROID_BOM = "android-bom"

core/android/src/main/kotlin/com/reown/android/internal/common/connection/ConnectivityState.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,15 @@ internal class ConnectivityState(context: Context) {
3939
}
4040

4141
private fun Network.isCapable(): Boolean {
42-
return connectivityManager.getNetworkCapabilities(this)?.run {
43-
hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) &&
44-
(hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || hasTransport(NetworkCapabilities.TRANSPORT_WIFI))
45-
} ?: false
42+
return try {
43+
connectivityManager.getNetworkCapabilities(this)?.run {
44+
hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) &&
45+
(hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || hasTransport(NetworkCapabilities.TRANSPORT_WIFI))
46+
} ?: false
47+
} catch (e: Throwable) {
48+
Timber.e(e, "Failed to check network capabilities")
49+
true
50+
}
4651
}
4752

4853
init {
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
package com.reown.walletkit
2+
3+
import com.reown.walletkit.client.Wallet
4+
import com.reown.walletkit.client.toWallet
5+
import com.reown.walletkit.use_cases.ExecuteChainAbstractionUseCase
6+
import io.mockk.coEvery
7+
import io.mockk.mockk
8+
import junit.framework.TestCase.assertEquals
9+
import kotlinx.coroutines.async
10+
import kotlinx.coroutines.test.runTest
11+
import org.junit.Before
12+
import org.junit.Test
13+
import uniffi.uniffi_yttrium.ChainAbstractionClient
14+
import uniffi.yttrium.Amount
15+
import uniffi.yttrium.ExecuteDetails
16+
import uniffi.yttrium.FeeEstimatedTransaction
17+
import uniffi.yttrium.FundingMetadata
18+
import uniffi.yttrium.InitialTransactionMetadata
19+
import uniffi.yttrium.Metadata
20+
import uniffi.yttrium.PrepareDetailedResponseSuccess
21+
import uniffi.yttrium.PrepareResponseAvailable
22+
import uniffi.yttrium.TransactionFee
23+
import uniffi.yttrium.TxnDetails
24+
import uniffi.yttrium.UiFields
25+
import kotlin.coroutines.resume
26+
import kotlin.coroutines.suspendCoroutine
27+
28+
class ExecuteChainAbstractionUseCaseTest {
29+
private lateinit var chainAbstractionClient: ChainAbstractionClient
30+
private lateinit var useCase: ExecuteChainAbstractionUseCase
31+
private val feeEstimatedTransactionMetadata = FeeEstimatedTransaction(
32+
from = "from",
33+
to = "to",
34+
value = "value",
35+
input = "data",
36+
nonce = "nonce",
37+
gasLimit = "gas",
38+
chainId = "1",
39+
maxPriorityFeePerGas = "11",
40+
maxFeePerGas = "33"
41+
)
42+
private val txDetails = TxnDetails(
43+
transaction = feeEstimatedTransactionMetadata,
44+
fee = TransactionFee(Amount("11", "18", 2u, "22", "1222"), Amount("11", "18", 2u, "22", "1222")),
45+
transactionHashToSign = "hash",
46+
)
47+
private var prepareAvailable: Wallet.Model.PrepareSuccess.Available = PrepareDetailedResponseSuccess.Available(
48+
UiFields(
49+
route = listOf(txDetails),
50+
initial = txDetails,
51+
bridge = listOf(TransactionFee(Amount("11", "18", 2u, "22", "1222"), Amount("11", "18", 2u, "22", "1222"))),
52+
localTotal = Amount("11", "18", 2u, "22", "1222"),
53+
localBridgeTotal = Amount("11", "18", 2u, "22", "1222"),
54+
localRouteTotal = Amount("11", "18", 2u, "22", "1222"),
55+
routeResponse = PrepareResponseAvailable(
56+
orchestrationId = "123",
57+
initialTransaction = PrepareChainAbstractionUseCaseTest.transaction,
58+
metadata = Metadata(
59+
fundingFrom = listOf(FundingMetadata(chainId = "1", tokenContract = "token", symbol = "s", amount = "11", decimals = 18u, bridgingFee = "0")),
60+
initialTransaction = InitialTransactionMetadata(transferTo = "aa", amount = "11", tokenContract = "cc", symbol = "s", decimals = 18u),
61+
checkIn = 11u
62+
),
63+
transactions = listOf(PrepareChainAbstractionUseCaseTest.transaction)
64+
)
65+
)
66+
67+
).v1.toWallet()
68+
69+
@Before
70+
fun setup() {
71+
chainAbstractionClient = mockk()
72+
useCase = ExecuteChainAbstractionUseCase(chainAbstractionClient)
73+
}
74+
75+
@Test
76+
fun invokeSuccessfulExecution() = runTest {
77+
// Given
78+
val signedRouteTxs = listOf("signedTx1", "signedTx2")
79+
val initSignedTx = "initTx"
80+
val executeDetails = ExecuteDetails(initialTxnReceipt = "receipt", initialTxnHash = "initTx")
81+
82+
coEvery { chainAbstractionClient.execute(any(), signedRouteTxs, initSignedTx) } returns executeDetails
83+
84+
// When
85+
val result = async {
86+
suspendCoroutine { continuation ->
87+
useCase(prepareAvailable, signedRouteTxs, initSignedTx,
88+
onSuccess = {
89+
continuation.resume(it.initialTxHash)
90+
}, onError = {
91+
continuation.resume("")
92+
})
93+
}
94+
}.await()
95+
96+
// Then
97+
assertEquals("initTx", result)
98+
}
99+
100+
@Test
101+
fun invokeClientExecutionThrowsException() = runTest {
102+
// Given
103+
val signedRouteTxs = listOf("signedTx1", "signedTx2")
104+
val initSignedTx = "initTx"
105+
val exception = Exception("Test error")
106+
107+
coEvery { chainAbstractionClient.execute(any(), signedRouteTxs, initSignedTx) } throws exception
108+
109+
110+
// When
111+
val result = async {
112+
suspendCoroutine { continuation ->
113+
useCase(prepareAvailable, signedRouteTxs, initSignedTx,
114+
onSuccess = {
115+
continuation.resume("")
116+
}, onError = {
117+
continuation.resume(it.throwable.message)
118+
})
119+
}
120+
}.await()
121+
122+
// Then
123+
assertEquals("Test error", result)
124+
}
125+
}

product/walletkit/src/main/kotlin/com/reown/walletkit/di/WalletModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ internal fun walletKitModule() = module {
1818
ChainAbstractionClient(
1919
projectId = get<ProjectId>().value,
2020
pulseMetadata = PulseMetadata(
21-
packageName = get(named(AndroidCommonDITags.PACKAGE_NAME)),
21+
packageName = null,
2222
sdkPlatform = "mobile",
2323
sdkVersion = "reown-kotlin-${BuildConfig.SDK_VERSION}",
24-
bundleId = null,
24+
bundleId = get(named(AndroidCommonDITags.PACKAGE_NAME)),
2525
url = null
2626
)
2727
)

product/walletkit/src/main/kotlin/com/reown/walletkit/use_cases/PrepareChainAbstractionUseCase.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import uniffi.yttrium.Call
1111
import uniffi.yttrium.Currency
1212
import uniffi.yttrium.PrepareDetailedResponse
1313
import uniffi.yttrium.PrepareDetailedResponseSuccess
14-
import uniffi.yttrium.PrepareResponse
15-
import uniffi.yttrium.PrepareResponseSuccess
1614

1715
class PrepareChainAbstractionUseCase(private val chainAbstractionClient: ChainAbstractionClient) {
1816
operator fun invoke(

0 commit comments

Comments
 (0)