From dcb83d1a5141190090709bb6691113d58b49acce Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 21 Nov 2024 14:14:45 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../domain/WcSessionRequestConverter.kt | 4 ++- .../mapper/SolanaTransactionMappings.kt | 30 ---------------- .../models/solana/SolanaTransactionRequest.kt | 35 ++----------------- 3 files changed, 5 insertions(+), 64 deletions(-) delete mode 100644 app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/mapper/SolanaTransactionMappings.kt diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/WcSessionRequestConverter.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/WcSessionRequestConverter.kt index 367d7b6a9e..04bab1fa69 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/WcSessionRequestConverter.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/WcSessionRequestConverter.kt @@ -163,7 +163,9 @@ internal class WcSessionRequestConverter( return sessionsRepository.loadSessions(userWalletId) .firstOrNull { it.topic == sessionRequest.topic } ?.accounts?.firstOrNull { - it.chainId == sessionRequest.chainId && it.walletAddress.lowercase() == walletAddress?.lowercase() + // if walletAddress == null take first account + it.chainId == sessionRequest.chainId && + (walletAddress == null || it.walletAddress.lowercase() == walletAddress.lowercase()) }?.derivationPath } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/mapper/SolanaTransactionMappings.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/mapper/SolanaTransactionMappings.kt deleted file mode 100644 index c97506bb7e..0000000000 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/mapper/SolanaTransactionMappings.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.tangem.tap.domain.walletconnect2.domain.mapper - -import com.tangem.blockchain.blockchains.solana.solanaj.core.SolanaTransaction -import com.tangem.tap.domain.walletconnect2.domain.models.solana.SolanaTransactionRequest -import org.p2p.solanaj.core.AccountMeta -import org.p2p.solanaj.core.PublicKey -import org.p2p.solanaj.core.TransactionInstruction - -internal fun SolanaTransactionRequest.mapToTransaction(): SolanaTransaction { - val from = PublicKey(feePayer) - val instructions = instructions.map(SolanaTransactionRequest.Instruction::mapToInstruction) - - return SolanaTransaction(from) - .apply { - instructions.forEach(::addInstruction) - setRecentBlockHash(recentBlockhash) - } -} - -private fun SolanaTransactionRequest.Instruction.mapToInstruction() = TransactionInstruction( - /* programId = */ PublicKey(programId), - /* keys = */ keys.map(SolanaTransactionRequest.Key::mapToAccountMeta), - /* data = */ data.toByteArray(), -) - -private fun SolanaTransactionRequest.Key.mapToAccountMeta() = AccountMeta( - /* publicKey = */ PublicKey(publicKey), - /* isSigner = */ isSigner, - /* isWritable = */ isWritable, -) \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/solana/SolanaTransactionRequest.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/solana/SolanaTransactionRequest.kt index b77ecffae0..bed9fd3897 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/solana/SolanaTransactionRequest.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/domain/models/solana/SolanaTransactionRequest.kt @@ -7,39 +7,8 @@ import com.tangem.tap.domain.walletconnect2.domain.WcRequestData @JsonClass(generateAdapter = true) data class SolanaTransactionRequest( @Json(name = "feePayer") - val feePayer: String, - - @Json(name = "recentBlockhash") - val recentBlockhash: String, - - @Json(name = "instructions") - val instructions: List, + val feePayer: String?, @Json(name = "transaction") val transaction: String, -) : WcRequestData { - - @JsonClass(generateAdapter = true) - data class Instruction( - @Json(name = "programId") - val programId: String, - - @Json(name = "data") - val data: String, - - @Json(name = "keys") - val keys: List, - ) - - @JsonClass(generateAdapter = true) - data class Key( - @Json(name = "isSigner") - val isSigner: Boolean, - - @Json(name = "isWritable") - val isWritable: Boolean, - - @Json(name = "pubkey") - val publicKey: String, - ) -} \ No newline at end of file +) : WcRequestData \ No newline at end of file