Updated on 2026-08-14

This commit is contained in:
Tangem 2025-01-29 21:44:25 +03:00
commit bf0cb06cb3
297 changed files with 4771 additions and 2376 deletions

View file

@ -1,3 +1,5 @@
import com.tangem.plugin.configuration.configurations.extension.kaptForObfuscatingVariants
plugins {
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
@ -31,6 +33,8 @@ dependencies {
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
implementation(deps.timber)
kaptForObfuscatingVariants(deps.moshi.kotlin.codegen)
kaptForObfuscatingVariants(deps.retrofit.response.type.keeper)
// endregion
// region Firebase libraries

View file

@ -152,6 +152,10 @@ fun Blockchain.Companion.fromNetworkId(networkId: String): Blockchain? {
"dione/test" -> Blockchain.OdysseyChainTestnet
"bitrock" -> Blockchain.Bitrock
"bitrock/test" -> Blockchain.BitrockTestnet
"sonic" -> Blockchain.Sonic
"sonic/test" -> Blockchain.SonicTestnet
"apechain" -> Blockchain.ApeChain
"apechain/test" -> Blockchain.ApeChainTestnet
else -> null
}
}
@ -301,6 +305,10 @@ fun Blockchain.toNetworkId(): String {
Blockchain.OdysseyChainTestnet -> "dione/test"
Blockchain.Bitrock -> "bitrock"
Blockchain.BitrockTestnet -> "bitrock/test"
Blockchain.Sonic -> "sonic"
Blockchain.SonicTestnet -> "sonic/test"
Blockchain.ApeChain -> "apechain"
Blockchain.ApeChainTestnet -> "apechain/test"
}
}
@ -398,6 +406,8 @@ fun Blockchain.toCoinId(): String {
Blockchain.Clore -> "clore-ai"
Blockchain.OdysseyChain, Blockchain.OdysseyChainTestnet -> "dione"
Blockchain.Bitrock, Blockchain.BitrockTestnet -> "bitrock"
Blockchain.Sonic, Blockchain.SonicTestnet -> "sonic-3"
Blockchain.ApeChain, Blockchain.ApeChainTestnet -> "apecoin"
}
}

View file

@ -17,11 +17,13 @@ import com.tangem.domain.models.scan.CardDTO
import com.tangem.domain.models.scan.ScanResponse
import com.tangem.domain.visa.model.VisaActivationInput
import com.tangem.domain.visa.model.VisaAuthChallenge
import com.tangem.domain.visa.model.VisaCardActivationResponse
import com.tangem.domain.visa.model.VisaDataForApprove
import com.tangem.domain.wallets.models.UserWalletId
import com.tangem.operations.derivation.DerivationTaskResponse
import com.tangem.operations.preflightread.PreflightReadFilter
import com.tangem.operations.sign.SignHashResponse
import com.tangem.operations.wallet.CreateWalletResponse
import com.tangem.sdk.api.visa.VisaCardActivationResponse
@Suppress("TooManyFunctions")
interface TangemSdkManager {
@ -153,5 +155,7 @@ interface TangemSdkManager {
activationInput: VisaActivationInput,
): CompletionResult<VisaCardActivationResponse>
suspend fun visaCustomerWalletApprove(visaDataForApprove: VisaDataForApprove): CompletionResult<SignHashResponse>
// endregion
}

View file

@ -0,0 +1,11 @@
package com.tangem.sdk.api.visa
import com.tangem.domain.models.scan.CardDTO
import com.tangem.domain.visa.model.SignedActivationOrder
import com.tangem.domain.visa.model.VisaRootOTP
data class VisaCardActivationResponse(
val signedActivationOrder: SignedActivationOrder,
val rootOTP: VisaRootOTP,
val newCardDTO: CardDTO,
)

View file

@ -1,6 +1,9 @@
import com.tangem.plugin.configuration.configurations.extension.kaptForObfuscatingVariants
plugins {
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
alias(deps.plugins.kotlin.kapt)
id("configuration")
}
@ -21,6 +24,8 @@ dependencies {
implementation(deps.okHttp.prettyLogging)
implementation(deps.retrofit)
implementation(deps.retrofit.moshi)
kaptForObfuscatingVariants(deps.moshi.kotlin.codegen)
kaptForObfuscatingVariants(deps.retrofit.response.type.keeper)
/** Libs - Other */
implementation(deps.web3j.core)

View file

@ -3,12 +3,14 @@ package com.tangem.lib.visa.api
import com.tangem.datasource.api.common.response.ApiResponse
import com.tangem.lib.visa.model.VisaTxHistoryResponse
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Query
interface VisaApi {
@GET("transaction")
suspend fun getTxHistory(
@Header("Authorization") authorizationHeader: String,
@Query("card_public_key") cardPublicKey: String,
@Query("limit") limit: Int,
@Query("offset") offset: Int,

View file

@ -1,9 +1,11 @@
package com.tangem.lib.visa.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import org.joda.time.DateTime
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class VisaTxHistoryResponse(
@Json(name = "card_wallet_address")
val cardWalletAddress: String,
@ -11,6 +13,7 @@ data class VisaTxHistoryResponse(
val transactions: List<Transaction>,
) {
@JsonClass(generateAdapter = true)
data class Transaction(
@Json(name = "auth_code")
val authCode: String?,
@ -52,6 +55,7 @@ data class VisaTxHistoryResponse(
val transactionType: String,
) {
@JsonClass(generateAdapter = true)
data class Request(
@Json(name = "billing_amount")
val billingAmount: BigDecimal,