Updated on 2026-08-14
This commit is contained in:
parent
c8c2f1315b
commit
d98b2d98ed
14 changed files with 278 additions and 157 deletions
|
|
@ -1,5 +1,6 @@
|
|||
plugins {
|
||||
alias(deps.plugins.kotlin.jvm)
|
||||
alias(deps.plugins.kotlin.serialization)
|
||||
id("configuration")
|
||||
}
|
||||
|
||||
|
|
@ -8,4 +9,7 @@ dependencies {
|
|||
/* Domain */
|
||||
implementation(projects.domain.models)
|
||||
implementation(projects.domain.tokens.models)
|
||||
|
||||
/** Other */
|
||||
implementation(deps.kotlin.serialization)
|
||||
}
|
||||
|
|
@ -2,7 +2,9 @@ package com.tangem.domain.managetokens.model
|
|||
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.models.network.Network
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
sealed class ManagedCryptoCurrency {
|
||||
|
||||
abstract val id: ID
|
||||
|
|
@ -10,6 +12,7 @@ sealed class ManagedCryptoCurrency {
|
|||
abstract val symbol: String
|
||||
abstract val iconUrl: String?
|
||||
|
||||
@Serializable
|
||||
sealed class Custom : ManagedCryptoCurrency() {
|
||||
|
||||
abstract val currencyId: CryptoCurrency.ID
|
||||
|
|
@ -18,6 +21,7 @@ sealed class ManagedCryptoCurrency {
|
|||
override val id: ID
|
||||
get() = ID(currencyId.value)
|
||||
|
||||
@Serializable
|
||||
data class Token(
|
||||
override val currencyId: CryptoCurrency.ID,
|
||||
override val name: String,
|
||||
|
|
@ -28,6 +32,7 @@ sealed class ManagedCryptoCurrency {
|
|||
val decimals: Int,
|
||||
) : Custom()
|
||||
|
||||
@Serializable
|
||||
data class Coin(
|
||||
override val currencyId: CryptoCurrency.ID,
|
||||
override val name: String,
|
||||
|
|
@ -37,6 +42,7 @@ sealed class ManagedCryptoCurrency {
|
|||
) : Custom()
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class Token(
|
||||
override val id: ID,
|
||||
override val name: String,
|
||||
|
|
@ -50,8 +56,10 @@ sealed class ManagedCryptoCurrency {
|
|||
}
|
||||
|
||||
@JvmInline
|
||||
@Serializable
|
||||
value class ID(val value: String)
|
||||
|
||||
@Serializable
|
||||
sealed class SourceNetwork {
|
||||
|
||||
abstract val network: Network
|
||||
|
|
@ -77,12 +85,14 @@ sealed class ManagedCryptoCurrency {
|
|||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class Main(
|
||||
override val network: Network,
|
||||
override val decimals: Int,
|
||||
val isL2Network: Boolean,
|
||||
) : SourceNetwork()
|
||||
|
||||
@Serializable
|
||||
data class Default(
|
||||
override val network: Network,
|
||||
override val decimals: Int,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue