Updated on 2026-08-14
This commit is contained in:
parent
40f24bd65b
commit
724a1fe19b
19 changed files with 550 additions and 587 deletions
|
|
@ -5,29 +5,39 @@ import java.math.BigDecimal
|
|||
data class TxHistoryItem(
|
||||
val txHash: String,
|
||||
val timestampInMillis: Long,
|
||||
val direction: TransactionDirection,
|
||||
val isOutgoing: Boolean,
|
||||
val destinationType: DestinationType,
|
||||
val sourceType: SourceType,
|
||||
val interactionAddressType: InteractionAddressType,
|
||||
val status: TransactionStatus,
|
||||
val type: TransactionType,
|
||||
val amount: BigDecimal,
|
||||
) {
|
||||
sealed interface TransactionDirection {
|
||||
|
||||
val address: Address
|
||||
sealed class DestinationType {
|
||||
data class Single(val addressType: AddressType) : DestinationType()
|
||||
data class Multiple(val addressTypes: List<AddressType>) : DestinationType()
|
||||
}
|
||||
|
||||
data class Incoming(override val address: Address) : TransactionDirection
|
||||
data class Outgoing(override val address: Address) : TransactionDirection
|
||||
sealed class SourceType {
|
||||
|
||||
data class Single(val address: String) : SourceType()
|
||||
data class Multiple(val addresses: List<String>) : SourceType()
|
||||
}
|
||||
|
||||
sealed class AddressType {
|
||||
abstract val address: String
|
||||
|
||||
data class User(override val address: String) : AddressType()
|
||||
data class Contract(override val address: String) : AddressType()
|
||||
}
|
||||
|
||||
sealed interface TransactionType {
|
||||
object Transfer : TransactionType
|
||||
object Submit : TransactionType
|
||||
object Approve : TransactionType
|
||||
object Supply : TransactionType
|
||||
object Withdraw : TransactionType
|
||||
object Deposit : TransactionType
|
||||
object Swap : TransactionType
|
||||
object Unoswap : TransactionType
|
||||
data class Custom(val id: String) : TransactionType
|
||||
object UnknownOperation : TransactionType
|
||||
data class Operation(val name: String) : TransactionType
|
||||
}
|
||||
|
||||
sealed class TransactionStatus {
|
||||
|
|
@ -36,8 +46,9 @@ data class TxHistoryItem(
|
|||
object Confirmed : TransactionStatus()
|
||||
}
|
||||
|
||||
sealed class Address {
|
||||
data class Single(val rawAddress: String) : Address()
|
||||
object Multiple : Address()
|
||||
sealed class InteractionAddressType {
|
||||
data class User(val address: String) : InteractionAddressType()
|
||||
data class Contract(val address: String) : InteractionAddressType()
|
||||
data class Multiple(val addresses: List<String>) : InteractionAddressType()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue