Updated on 2026-08-14

This commit is contained in:
Tangem 2025-01-15 12:05:53 +05:00
parent ec9bd02e35
commit 5863b5af2a
112 changed files with 919 additions and 282 deletions

View file

@ -40,6 +40,7 @@ sealed class ApiConfig {
companion object {
internal const val DEBUG_BUILD_TYPE = "debug"
internal const val DEBUG_PG_BUILD_TYPE = "debugPG"
internal const val INTERNAL_BUILD_TYPE = "internal"
internal const val MOCKED_BUILD_TYPE = "mocked"
internal const val EXTERNAL_BUILD_TYPE = "external"

View file

@ -1,10 +1,21 @@
package com.tangem.datasource.api.common.config
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/**
* Api environment
*
[REDACTED_AUTHOR]
*/
@JsonClass(generateAdapter = false)
enum class ApiEnvironment {
DEV, STAGE, PROD
@Json(name = "DEV")
DEV,
@Json(name = "STAGE")
STAGE,
@Json(name = "PROD")
PROD,
}

View file

@ -68,7 +68,9 @@ internal class Express(
fun getInitialEnvironment(): ApiEnvironment {
return when (BuildConfig.BUILD_TYPE) {
DEBUG_BUILD_TYPE -> ApiEnvironment.DEV
DEBUG_BUILD_TYPE,
DEBUG_PG_BUILD_TYPE,
-> ApiEnvironment.DEV
INTERNAL_BUILD_TYPE,
MOCKED_BUILD_TYPE,
-> ApiEnvironment.STAGE

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class AssetsRequestBody(
@Json(name = "tokensList") val tokensList: List<LeastTokenInfo>?,
)

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class ExchangeSentRequestBody(
@Json(name = "txId")
val txId: String,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class LeastTokenInfo(
@Json(name = "contractAddress")
val contractAddress: String,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class PairsRequestBody(
@Json(name = "from")
val from: List<LeastTokenInfo>,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class Asset(
@Json(name = "contractAddress")
val contractAddress: String,

View file

@ -1,11 +1,17 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class ExchangeDataResponseWithTxDetails(
@Json(name = "dataResponse")
val dataResponse: ExchangeDataResponse,
@Json(name = "txDetails")
val txDetails: TxDetails,
)
@JsonClass(generateAdapter = true)
data class ExchangeDataResponse(
@Json(name = "fromAmount")
val fromAmount: String,
@ -29,6 +35,7 @@ data class ExchangeDataResponse(
val signature: String,
)
@JsonClass(generateAdapter = true)
data class TxDetails(
@Json(name = "payoutAddress")
val payoutAddress: String,
@ -70,6 +77,7 @@ data class TxDetails(
val gas: String?,
)
@JsonClass(generateAdapter = false)
enum class TxType {
@Json(name = "send")
SEND,

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class ExchangeProvider(
@Json(name = "id")
val id: String,
@ -32,6 +34,7 @@ data class ExchangeProvider(
val slippage: BigDecimal?,
)
@JsonClass(generateAdapter = false)
enum class ExchangeProviderType {
@Json(name = "dex")
DEX,

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class ExchangeQuoteResponse(
@Json(name = "fromAmount")

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class ExchangeSentResponseBody(
@Json(name = "txId")
val txId: String,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class ExchangeStatusResponse(
@Json(name = "providerId")
@ -26,6 +28,7 @@ data class ExchangeStatusResponse(
val refundContractAddress: String? = null,
)
@JsonClass(generateAdapter = false)
enum class ExchangeStatus {
@Json(name = "new")
@ -71,6 +74,7 @@ enum class ExchangeStatus {
Unknown,
}
@JsonClass(generateAdapter = true)
data class ExchangeStatusError(
@Json(name = "code")
val code: Int,

View file

@ -1,13 +1,16 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class ExpressErrorResponse(
@Json(name = "error")
val error: ExpressError,
)
@JsonClass(generateAdapter = true)
data class ExpressError(
@Json(name = "code")
val code: Int,
@ -19,6 +22,7 @@ data class ExpressError(
val value: ExpressErrorValue?,
)
@JsonClass(generateAdapter = true)
data class ExpressErrorValue(
@Json(name = "minAmount")
val minAmount: String?,

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.express.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.tangem.datasource.api.express.models.request.LeastTokenInfo
@JsonClass(generateAdapter = true)
data class SwapPair(
@Json(name = "from")
val from: LeastTokenInfo,
@ -15,6 +17,7 @@ data class SwapPair(
)
@JsonClass(generateAdapter = true)
data class SwapPairProvider(
@Json(name = "providerId")
val providerId: String,
@ -23,6 +26,7 @@ data class SwapPairProvider(
val rateTypes: List<RateType>,
)
@JsonClass(generateAdapter = false)
enum class RateType {
@Json(name = "float")
FLOAT,

View file

@ -3,8 +3,11 @@ package com.tangem.datasource.api.onramp.models.response
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class OnrampDataResponseWithTxDetails(
@Json(name = "dataResponse")
val dataResponse: OnrampDataResponse,
@Json(name = "txDetails")
val txDetails: OnrampTxDetails,
)

View file

@ -60,6 +60,7 @@ data class OnrampStatusResponse(
val countryCode: String,
)
@JsonClass(generateAdapter = false)
enum class Status {
@Json(name = "created")
Created,

View file

@ -1,11 +1,13 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.tangem.datasource.api.stakekit.models.request.ConstructTransactionRequestBody.GasArgs
import com.tangem.datasource.api.stakekit.models.response.model.BalanceDTO
import com.tangem.datasource.api.stakekit.models.response.model.TokenDTO
import com.tangem.domain.staking.model.stakekit.action.StakingActionType
@JsonClass(generateAdapter = true)
data class PendingActionRequestBody(
@Json(name = "type")
val type: StakingActionType,
@ -19,6 +21,7 @@ data class PendingActionRequestBody(
val gasArgs: GasArgs? = null, // used only in estimate_gas request
)
@JsonClass(generateAdapter = true)
data class ActionRequestBody(
@Json(name = "integrationId")
val integrationId: String,
@ -32,6 +35,7 @@ data class ActionRequestBody(
val gasArgs: GasArgs? = null, // used only in estimate_gas request
)
@JsonClass(generateAdapter = true)
data class ActionRequestBodyArgs(
@Json(name = "amount")
val amount: String,
@ -55,6 +59,7 @@ data class ActionRequestBodyArgs(
val inputToken: TokenDTO? = null,
)
@JsonClass(generateAdapter = true)
data class SignatureVerification(
@Json(name = "message")
val message: String,
@ -62,6 +67,7 @@ data class SignatureVerification(
val signed: String,
)
@JsonClass(generateAdapter = false)
enum class TronResource {
@Json(name = "ENERGY")
ENERGY,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class Address(
@Json(name = "address")
val address: String,
@ -11,6 +13,7 @@ data class Address(
val explorerUrl: String? = null,
) {
@JsonClass(generateAdapter = true)
data class AdditionalAddresses(
// cosmos-specific
@Json(name = "cosmosPubKey")

View file

@ -1,14 +1,17 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class ConstructTransactionRequestBody(
@Json(name = "gasArgs")
val gasArgs: GasArgs? = null,
@Json(name = "ledgerWalletAPICompatible")
val ledgerWalletAPICompatible: Boolean? = null,
) {
@JsonClass(generateAdapter = true)
data class GasArgs(
// cosmos-specific
@Json(name = "gasPrice")

View file

@ -1,19 +1,23 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class MultipleYieldBalancesRequestBody(
@Json(name = "addresses") val addresses: Address,
@Json(name = "args") val args: MultipleYieldBalancesRequestArgs,
@Json(name = "integrationId") val integrationId: String,
) {
@JsonClass(generateAdapter = true)
data class Address(
@Json(name = "address") val address: String,
@Json(name = "additionalAddresses") val additionalAddresses: AdditionalAddresses? = null,
@Json(name = "explorerUrl") val explorerUrl: String,
) {
@JsonClass(generateAdapter = true)
data class AdditionalAddresses(
@Json(name = "cosmosPubKey") val cosmosPubKey: String? = null,
@Json(name = "binanceBeaconAddress") val binanceBeaconAddress: String? = null,
@ -25,6 +29,7 @@ data class MultipleYieldBalancesRequestBody(
)
}
@JsonClass(generateAdapter = true)
data class MultipleYieldBalancesRequestArgs(
@Json(name = "validatorAddresses") val validatorAddresses: List<String>,
)

View file

@ -1,8 +1,13 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class RevenueOption(val value: String) {
SUPPORTS_FEE("supportsFee"),
SUPPORTS_REV_SHARE("supportsRevShare"),
@Json(name = "SUPPORTS_FEE") SUPPORTS_FEE("supportsFee"),
@Json(name = "SUPPORTS_REV_SHARE") SUPPORTS_REV_SHARE("supportsRevShare"),
;
override fun toString(): String {

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class SubmitTransactionHashRequestBody(
@Json(name = "hash")
val hash: String,

View file

@ -1,13 +1,16 @@
package com.tangem.datasource.api.stakekit.models.request
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class YieldBalanceRequestBody(
@Json(name = "addresses") val addresses: Address,
@Json(name = "args") val args: YieldBalanceRequestArgs,
@Json(name = "integrationId") val integrationId: String,
) {
@JsonClass(generateAdapter = true)
data class YieldBalanceRequestArgs(
@Json(name = "validatorAddresses") val validatorAddresses: List<String>,
)

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class NetworkTypeDTO {
@Json(name = "avalanche-c")
AVALANCHE_C,

View file

@ -41,6 +41,7 @@ data class BalanceDTO(
val providerId: String?,
) {
@JsonClass(generateAdapter = false)
enum class BalanceTypeDTO {
@Json(name = "available")
AVAILABLE,

View file

@ -85,7 +85,7 @@ data class YieldDTO(
@Json(name = "preferred")
val preferred: Boolean?,
) {
@JsonClass(generateAdapter = true)
@JsonClass(generateAdapter = false)
enum class ValidatorStatusDTO {
@Json(name = "active")
ACTIVE,
@ -153,6 +153,7 @@ data class YieldDTO(
val enabled: Boolean?,
)
@JsonClass(generateAdapter = false)
enum class RewardScheduleDTO {
@Json(name = "block")
BLOCK,
@ -178,6 +179,7 @@ data class YieldDTO(
UNKNOWN,
}
@JsonClass(generateAdapter = false)
enum class RewardClaimingDTO {
@Json(name = "auto")
AUTO,
@ -189,6 +191,7 @@ data class YieldDTO(
}
}
@JsonClass(generateAdapter = false)
enum class RewardTypeDTO {
@Json(name = "apy")
APY, // compound rate

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model.action
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class StakingActionStatusDTO {
@Json(name = "CANCELED")
CANCELED,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model.action
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class StakingActionTypeDTO {
@Json(name = "STAKE")
STAKE,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model.error
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
class StakeKitErrorResponse(
@Json(name = "message")
val message: String? = null,
@ -26,6 +28,7 @@ class StakeKitErrorResponse(
val tags: List<String>? = null,
)
@JsonClass(generateAdapter = true)
data class StakeKitErrorDetailsDTO(
@Json(name = "arguments")
val arguments: String? = null,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model.transaction
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class StakingTransactionStatusDTO {
@Json(name = "NOT_FOUND")
NOT_FOUND,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.stakekit.models.response.model.transaction
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = false)
enum class StakingTransactionTypeDTO {
@Json(name = "SWAP")
SWAP,

View file

@ -1,14 +1,17 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class CoinsResponse(
@Json(name = "imageHost") val imageHost: String?,
@Json(name = "coins") val coins: List<Coin>,
@Json(name = "total") val total: Int,
) {
@JsonClass(generateAdapter = true)
data class Coin(
@Json(name = "id") val id: String,
@Json(name = "name") val name: String,
@ -17,6 +20,7 @@ data class CoinsResponse(
@Json(name = "networks") val networks: List<Network> = listOf(),
) {
@JsonClass(generateAdapter = true)
data class Network(
@Json(name = "networkId") val networkId: String,
@Json(name = "contractAddress") val contractAddress: String? = null,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class CreateUserTokensAccountBody(
@Json(name = "accountId")
val id: Int,

View file

@ -17,7 +17,7 @@ data class CurrenciesResponse(
@Json(name = "rateBTC") val rateBTC: String,
@Json(name = "unit") val unit: String, // $, €, ₽
@Json(name = "type") val type: String,
val iconSmallUrl: String? = null,
val iconMediumUrl: String? = null,
@Json(name = "iconSmallUrl") val iconSmallUrl: String? = null,
@Json(name = "iconMediumUrl") val iconMediumUrl: String? = null,
)
}

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class FeaturesResponse(
@Json(name = "send") val isNewSendEnabled: Boolean,
)

View file

@ -1,13 +1,16 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import java.math.BigDecimal
@JsonClass(generateAdapter = true)
data class QuotesResponse(
@Json(name = "quotes")
val quotes: Map<String, Quote>,
) {
@JsonClass(generateAdapter = true)
data class Quote(
@Json(name = "price")
val price: BigDecimal?,

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
// rates.keys = networkId's
@JsonClass(generateAdapter = true)
data class RatesResponse(
@Json(name = "rates") val rates: Map<String, Double>,
)

View file

@ -1,30 +1,36 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import org.joda.time.LocalDate
@JsonClass(generateAdapter = true)
data class ReferralResponse(
@Json(name = "conditions") val conditions: Conditions,
@Json(name = "referral") val referral: Referral?,
@Json(name = "expectedAwards") val expectedAwards: ExpectedAwards?,
) {
@JsonClass(generateAdapter = true)
data class Conditions(
@Json(name = "discount") val discount: Discount,
@Json(name = "awards") val awards: List<Award>,
@Json(name = "tosLink") val tosLink: String,
) {
@JsonClass(generateAdapter = true)
data class Discount(
@Json(name = "amount") val amount: Int,
@Json(name = "type") val discountType: String,
)
@JsonClass(generateAdapter = true)
data class Award(
@Json(name = "amount") val amount: Int,
@Json(name = "token") val token: Token,
) {
@JsonClass(generateAdapter = true)
data class Token(
@Json(name = "id") val id: String,
@Json(name = "name") val name: String,
@ -36,6 +42,7 @@ data class ReferralResponse(
}
}
@JsonClass(generateAdapter = true)
data class Referral(
@Json(name = "shareLink") val shareLink: String,
@Json(name = "address") val address: String,
@ -44,11 +51,13 @@ data class ReferralResponse(
@Json(name = "termsAcceptedAt") val termsAcceptedAt: String?,
)
@JsonClass(generateAdapter = true)
data class ExpectedAwards(
@Json(name = "numberOfWallets") val numberOfWallets: Int,
@Json(name = "list") val list: List<AwardItem>,
) {
@JsonClass(generateAdapter = true)
data class AwardItem(
@Json(name = "currency") val currency: String,
@Json(name = "paymentDate") val paymentDate: LocalDate,

View file

@ -1,10 +1,12 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/**
* Sales response
*/
@JsonClass(generateAdapter = true)
data class SalesResponse(
@Json(name = "sales") val sales: List<Sales>,
)
@ -17,6 +19,7 @@ data class SalesResponse(
* @property product product that is sales
* @property notification optional notification for product
*/
@JsonClass(generateAdapter = true)
data class Sales(
@Json(name = "id") val id: String,
@Json(name = "state") val state: String,
@ -31,12 +34,14 @@ data class Sales(
* @property code code that shows what product it is
* @property name product name
*/
@JsonClass(generateAdapter = true)
data class Product(
@Json(name = "id") val id: String,
@Json(name = "code") val code: String,
@Json(name = "name") val name: String,
)
@JsonClass(generateAdapter = true)
data class Notification(
@Json(name = "type") val type: String,
@Json(name = "title") val title: String,

View file

@ -1,6 +1,7 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/**
* Shop response
@ -9,6 +10,7 @@ import com.squareup.moshi.Json
*
[REDACTED_AUTHOR]
*/
@JsonClass(generateAdapter = true)
data class ShopResponse(
@Json(name = "canOrder") val isOrderingAvailable: Boolean,
)

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/** Body for make user referral */
@JsonClass(generateAdapter = true)
data class StartReferralBody(
@Json(name = "walletId") val walletId: String,
@Json(name = "networkId") val networkId: String,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class UpdateUserTokensAccountBody(
@Json(name = "accountTitle")
val title: String,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class UserTokensAccountResponse(
@Json(name = "accountId")
val id: Int,

View file

@ -1,8 +1,10 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.tangem.common.extensions.calculateHashCode
@JsonClass(generateAdapter = true)
data class UserTokensResponse(
@Json(name = "version") val version: Int = 0,
@Json(name = "group") val group: GroupType,
@ -10,6 +12,7 @@ data class UserTokensResponse(
@Json(name = "tokens") val tokens: List<Token> = emptyList(),
) {
@JsonClass(generateAdapter = true)
data class Token(
@Json(name = "id") val id: String? = null,
@Json(name = "networkId") val networkId: String,
@ -36,6 +39,7 @@ data class UserTokensResponse(
)
}
@JsonClass(generateAdapter = false)
enum class GroupType {
@Json(name = "none")
NONE,
@ -47,6 +51,7 @@ data class UserTokensResponse(
NETWORK,
}
@JsonClass(generateAdapter = false)
enum class SortType {
@Json(name = "balance")
BALANCE,

View file

@ -1,7 +1,9 @@
package com.tangem.datasource.api.tangemTech.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class UserTokensSettingsResponse(
@Json(name = "group")
val group: UserTokensResponse.GroupType,

View file

@ -1,13 +1,16 @@
package com.tangem.datasource.api.tangemTech.models.v2
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.tangem.datasource.api.tangemTech.models.UserTokensResponse
@JsonClass(generateAdapter = true)
data class UserTokensResponseV2(
@Json(name = "accounts")
val accounts: List<TokensAccount>,
) {
@JsonClass(generateAdapter = true)
data class TokensAccount(
@Json(name = "id")
val id: Int,

View file

@ -1,8 +1,16 @@
package com.tangem.datasource.local.card
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class UsedCardInfo(
@Json(name = "cardId")
val cardId: String,
@Json(name = "isScanned")
val isScanned: Boolean = false,
@Json(name = "isActivationStarted")
val isActivationStarted: Boolean = false,
@Json(name = "isActivationFinished")
val isActivationFinished: Boolean = false,
)

View file

@ -1,6 +1,7 @@
package com.tangem.datasource.local.config.providers.models
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/** Config provider model */
sealed class ProviderModel {
@ -12,6 +13,7 @@ sealed class ProviderModel {
* "url": "https://example.com"
* }
*/
@JsonClass(generateAdapter = true)
data class Public(
@Json(name = "url") val url: String,
) : ProviderModel()
@ -23,6 +25,7 @@ sealed class ProviderModel {
* "name": "nownodes"
* }
*/
@JsonClass(generateAdapter = true)
data class Private(
@Json(name = "name") val name: String,
) : ProviderModel()

View file

@ -6,6 +6,7 @@ import com.tangem.datasource.BuildConfig
import com.tangem.datasource.api.common.AuthProvider
import com.tangem.datasource.api.common.config.*
import com.tangem.datasource.api.common.config.ApiConfig.Companion.DEBUG_BUILD_TYPE
import com.tangem.datasource.api.common.config.ApiConfig.Companion.DEBUG_PG_BUILD_TYPE
import com.tangem.datasource.api.common.config.ApiConfig.Companion.EXTERNAL_BUILD_TYPE
import com.tangem.datasource.api.common.config.ApiConfig.Companion.INTERNAL_BUILD_TYPE
import com.tangem.datasource.api.common.config.ApiConfig.Companion.MOCKED_BUILD_TYPE
@ -95,7 +96,9 @@ internal class ProdApiConfigsManagerTest(private val model: Model) {
private fun createExpressModel(): Model {
val environment = when (BuildConfig.BUILD_TYPE) {
DEBUG_BUILD_TYPE -> ApiEnvironment.DEV
DEBUG_BUILD_TYPE,
DEBUG_PG_BUILD_TYPE,
-> ApiEnvironment.DEV
INTERNAL_BUILD_TYPE,
MOCKED_BUILD_TYPE,
-> ApiEnvironment.STAGE
@ -110,7 +113,9 @@ internal class ProdApiConfigsManagerTest(private val model: Model) {
expected = ApiEnvironmentConfig(
environment = environment,
baseUrl = when (BuildConfig.BUILD_TYPE) {
DEBUG_BUILD_TYPE -> "[REDACTED_ENV_URL]"
DEBUG_BUILD_TYPE,
DEBUG_PG_BUILD_TYPE,
-> "[REDACTED_ENV_URL]"
INTERNAL_BUILD_TYPE,
MOCKED_BUILD_TYPE,
-> "[REDACTED_ENV_URL]"