Updated on 2026-08-14
This commit is contained in:
commit
e9ed7949ae
10 changed files with 28 additions and 5 deletions
|
|
@ -10,7 +10,7 @@ import com.tangem.data.walletconnect.sign.SignCollector
|
|||
import com.tangem.data.walletconnect.sign.SignStateConverter.toResult
|
||||
import com.tangem.data.walletconnect.sign.WcMethodUseCaseContext
|
||||
import com.tangem.data.walletconnect.utils.BlockAidVerificationDelegate
|
||||
import com.tangem.domain.transaction.usecase.PrepareAndSignUseCase
|
||||
import com.tangem.domain.transaction.usecase.PrepareForSendUseCase
|
||||
import com.tangem.domain.walletconnect.error.parseSendError
|
||||
import com.tangem.domain.walletconnect.model.WcSolanaMethod
|
||||
import com.tangem.domain.walletconnect.usecase.method.BlockAidTransactionCheck
|
||||
|
|
@ -29,7 +29,7 @@ import org.json.JSONObject
|
|||
internal class WcSolanaSignAllTransactionUseCase @AssistedInject constructor(
|
||||
override val respondService: WcRespondService,
|
||||
override val analytics: AnalyticsEventHandler,
|
||||
private val prepareAndSign: PrepareAndSignUseCase,
|
||||
private val prepareForSend: PrepareForSendUseCase,
|
||||
@Assisted override val context: WcMethodUseCaseContext,
|
||||
@Assisted override val method: WcSolanaMethod.SignAllTransaction,
|
||||
blockAidDelegate: BlockAidVerificationDelegate,
|
||||
|
|
@ -46,7 +46,7 @@ internal class WcSolanaSignAllTransactionUseCase @AssistedInject constructor(
|
|||
).map { lce -> lce.map { result -> BlockAidTransactionCheck.Result.Plain(result) } }
|
||||
|
||||
override suspend fun SignCollector<List<TransactionData>>.onSign(state: WcSignState<List<TransactionData>>) {
|
||||
val hash = prepareAndSign.invoke(transactionData = state.signModel, userWallet = wallet, network = network)
|
||||
val hash = prepareForSend.invoke(transactionData = state.signModel, userWallet = wallet, network = network)
|
||||
.onLeft { error ->
|
||||
emit(state.toResult(parseSendError(error).left()))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,7 +112,12 @@ internal class WcPairSdkDelegate : WcSdkObserver {
|
|||
sessionProposal: Wallet.Model.SessionProposal,
|
||||
verifyContext: Wallet.Model.VerifyContext,
|
||||
) {
|
||||
val sessionProposalWithRealUrl = sessionProposal.copy(url = verifyContext.origin)
|
||||
val url = if (verifyContext.validation == Wallet.Model.Validation.INVALID || verifyContext.isScam == true) {
|
||||
verifyContext.origin
|
||||
} else {
|
||||
verifyContext.origin.ifEmpty { verifyContext.verifyUrl }
|
||||
}
|
||||
val sessionProposalWithRealUrl = sessionProposal.copy(url = url)
|
||||
// Triggered when wallet receives the session proposal sent by a Dapp
|
||||
onSessionProposal.trySend(sessionProposalWithRealUrl to verifyContext)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue