Updated on 2026-08-14
This commit is contained in:
parent
fb32e4d5da
commit
67503c6c1a
11 changed files with 82 additions and 15 deletions
|
|
@ -51,6 +51,7 @@ dependencies {
|
|||
/* Other */
|
||||
implementation(deps.kotlin.coroutines)
|
||||
implementation(deps.arrow.core)
|
||||
implementation(deps.jodatime)
|
||||
implementation(projects.domain.blockaid)
|
||||
implementation(projects.domain.blockaid.models)
|
||||
implementation(projects.libs.crypto)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import dagger.assisted.AssistedFactory
|
|||
import dagger.assisted.AssistedInject
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.flow.*
|
||||
import org.joda.time.DateTime
|
||||
import timber.log.Timber
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
|
|
@ -94,6 +95,7 @@ internal class DefaultWcPairUseCase @AssistedInject constructor(
|
|||
sdkModel = WcSdkSessionConverter.convert(settledSession.session),
|
||||
securityStatus = proposalState.dAppSession.securityStatus,
|
||||
networks = sessionForApprove.network.toSet(),
|
||||
connectingTime = DateTime.now().millis,
|
||||
)
|
||||
sessionsManager.saveSession(newSession)
|
||||
analytics.send(
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
|||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.flow.*
|
||||
import org.joda.time.DateTime
|
||||
import timber.log.Timber
|
||||
import kotlin.coroutines.resume
|
||||
|
||||
|
|
@ -65,7 +66,14 @@ internal class DefaultWcSessionsManager(
|
|||
}
|
||||
|
||||
override suspend fun saveSession(session: WcSession) {
|
||||
store.saveSession(WcSessionDTO(session.sdkModel.topic, session.wallet.walletId, session.securityStatus))
|
||||
store.saveSession(
|
||||
WcSessionDTO(
|
||||
topic = session.sdkModel.topic,
|
||||
walletId = session.wallet.walletId,
|
||||
securityStatus = session.securityStatus,
|
||||
connectingTime = session.connectingTime ?: DateTime.now().millis,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
override suspend fun removeSession(session: WcSession): Either<Throwable, Unit> {
|
||||
|
|
@ -89,6 +97,7 @@ internal class DefaultWcSessionsManager(
|
|||
sdkModel = WcSdkSessionConverter.convert(sdkSession),
|
||||
securityStatus = storedSession.securityStatus,
|
||||
networks = networks,
|
||||
connectingTime = storedSession.connectingTime,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -137,6 +146,7 @@ internal class DefaultWcSessionsManager(
|
|||
sdkModel = WcSdkSessionConverter.convert(sdkSession),
|
||||
securityStatus = session.securityStatus,
|
||||
networks = networks,
|
||||
connectingTime = session.connectingTime,
|
||||
)
|
||||
}
|
||||
return wcSessions
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ internal class DefaultWcPairUseCaseTest {
|
|||
sdkModel = WcSdkSessionConverter.convert(this),
|
||||
securityStatus = CheckDAppResult.SAFE,
|
||||
networks = setOf(),
|
||||
connectingTime = null,
|
||||
)
|
||||
|
||||
private fun useCaseFactory() = DefaultWcPairUseCase(
|
||||
|
|
@ -144,7 +145,7 @@ internal class DefaultWcPairUseCaseTest {
|
|||
|
||||
coEvery { sdkDelegate.pair(url) } returns sdkProposal.right()
|
||||
coEvery { sdkDelegate.approve(sdkApprove) } returns sdkApproveSuccess.right()
|
||||
coEvery { sessionsManager.saveSession(sessionForSave) } returns Unit
|
||||
coEvery { sessionsManager.saveSession(any()) } returns Unit
|
||||
coEvery { blockAidVerifier.verifyDApp(any()) } returns Either.catch { CheckDAppResult.SAFE }
|
||||
|
||||
val useCase = useCaseFactory()
|
||||
|
|
@ -162,9 +163,12 @@ internal class DefaultWcPairUseCaseTest {
|
|||
assertEquals(approveLoading, awaitItem())
|
||||
coVerifyOrder {
|
||||
sdkDelegate.approve(sdkApprove)
|
||||
sessionsManager.saveSession(sessionForSave)
|
||||
sessionsManager.saveSession(any())
|
||||
}
|
||||
assertEquals(result, awaitItem())
|
||||
val actual: WcPairState = awaitItem()
|
||||
assert(actual is WcPairState.Approving.Result)
|
||||
actual as WcPairState.Approving.Result
|
||||
assertEquals(result.session, actual.session)
|
||||
awaitComplete()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ internal class WcSignUseCaseDelegateTest {
|
|||
wallet = MockUserWalletFactory.create(),
|
||||
networks = setOf(),
|
||||
securityStatus = CheckDAppResult.FAILED_TO_VERIFY,
|
||||
connectingTime = 0L,
|
||||
sdkModel = WcSdkSession(
|
||||
topic = "",
|
||||
appMetaData = WcAppMetaData(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue