Updated on 2026-08-14

This commit is contained in:
Tangem 2025-07-23 16:53:37 +07:00
parent 15e7df8d41
commit 4882daf1a2
14 changed files with 79 additions and 33 deletions

View file

@ -13,10 +13,6 @@ sealed class WcRequestError {
val message: String,
) : WcRequestError()
data class HandleMethodError(
val message: String,
) : WcRequestError()
data class UnknownError(val ex: Throwable? = null) : WcRequestError()
companion object {
@ -60,4 +56,17 @@ sealed class WcRequestError {
-> null
}
}
}
sealed class HandleMethodError(
open val message: String,
) : WcRequestError() {
data class Unsupported(
val method: WcMethod.Unsupported,
) : HandleMethodError(message = "Unsupported method ${method.request.request.method}")
data object UnknownSession : HandleMethodError(message = "WalletConnect session was disconnected")
data class UnknownError(override val message: String) : HandleMethodError(message)
}

View file

@ -1,11 +1,11 @@
package com.tangem.domain.walletconnect
import arrow.core.Either
import com.tangem.domain.walletconnect.model.WcMethod
import com.tangem.domain.walletconnect.model.HandleMethodError
import com.tangem.domain.walletconnect.model.sdkcopy.WcSdkSessionRequest
import com.tangem.domain.walletconnect.usecase.method.WcMethodUseCase
interface WcRequestUseCaseFactory {
suspend fun <T : WcMethodUseCase> createUseCase(request: WcSdkSessionRequest): Either<WcMethod.Unsupported, T>
suspend fun <T : WcMethodUseCase> createUseCase(request: WcSdkSessionRequest): Either<HandleMethodError, T>
}