Updated on 2026-08-14

This commit is contained in:
Tangem 2024-06-20 02:26:36 +03:00
parent e26394399f
commit f506db9c0e
38 changed files with 1182 additions and 406 deletions

View file

@ -8,4 +8,5 @@ dependencies {
implementation(projects.domain.core)
implementation(deps.kotlin.serialization)
implementation(deps.jodatime)
}

View file

@ -0,0 +1,71 @@
package com.tangem.domain.staking.model
enum class NetworkType {
AVALANCHE_C,
AVALANCHE_ATOMIC,
AVALANCHE_P,
ARBITRUM,
BINANCE,
CELO,
ETHEREUM,
ETHEREUM_GOERLI,
ETHEREUM_HOLESKY,
FANTOM,
HARMONY,
OPTIMISM,
POLYGON,
GNOSIS,
MOONRIVER,
OKC,
ZKSYNC,
VICTION,
AGORIC,
AKASH,
AXELAR,
BAND_PROTOCOL,
BITSONG,
CANTO,
CHIHUAHUA,
COMDEX,
COREUM,
COSMOS,
CRESCENT,
CRONOS,
CUDOS,
DESMOS,
DYDX,
EVMOS,
FETCH_AI,
GRAVITY_BRIDGE,
INJECTIVE,
IRISNET,
JUNO,
KAVA,
KI_NETWORK,
MARS_PROTOCOL,
NYM,
OKEX_CHAIN,
ONOMY,
OSMOSIS,
PERSISTENCE,
QUICKSILVER,
REGEN,
SECRET,
SENTINEL,
SOMMELIER,
STAFI,
STARGAZE,
STRIDE,
TERITORI,
TGRADE,
UMEE,
POLKADOT,
KUSAMA,
WESTEND,
BINANCEBEACON,
NEAR,
SOLANA,
TEZOS,
TRON,
UNKNOWN,
}

View file

@ -107,77 +107,7 @@ data class Token(
val coinGeckoId: String?,
val logoURI: String?,
val isPoints: Boolean?,
) {
enum class NetworkType {
AVALANCHE_C,
AVALANCHE_ATOMIC,
AVALANCHE_P,
ARBITRUM,
BINANCE,
CELO,
ETHEREUM,
ETHEREUM_GOERLI,
ETHEREUM_HOLESKY,
FANTOM,
HARMONY,
OPTIMISM,
POLYGON,
GNOSIS,
MOONRIVER,
OKC,
ZKSYNC,
VICTION,
AGORIC,
AKASH,
AXELAR,
BAND_PROTOCOL,
BITSONG,
CANTO,
CHIHUAHUA,
COMDEX,
COREUM,
COSMOS,
CRESCENT,
CRONOS,
CUDOS,
DESMOS,
DYDX,
EVMOS,
FETCH_AI,
GRAVITY_BRIDGE,
INJECTIVE,
IRISNET,
JUNO,
KAVA,
KI_NETWORK,
MARS_PROTOCOL,
NYM,
OKEX_CHAIN,
ONOMY,
OSMOSIS,
PERSISTENCE,
QUICKSILVER,
REGEN,
SECRET,
SENTINEL,
SOMMELIER,
STAFI,
STARGAZE,
STRIDE,
TERITORI,
TGRADE,
UMEE,
POLKADOT,
KUSAMA,
WESTEND,
BINANCEBEACON,
NEAR,
SOLANA,
TEZOS,
TRON,
UNKNOWN,
}
}
)
@Serializable
data class AddressArgument(

View file

@ -0,0 +1,18 @@
package com.tangem.domain.staking.model.action
import com.tangem.domain.staking.model.transaction.StakingTransaction
import org.joda.time.DateTime
import java.math.BigDecimal
data class EnterAction(
val id: String,
val integrationId: String,
val status: StakingActionStatus,
val type: StakingActionType,
val currentStepIndex: Int,
val amount: BigDecimal,
val validatorAddress: String?,
val validatorAddresses: List<String>?,
val transactions: List<StakingTransaction>?,
val createdAt: DateTime,
)

View file

@ -0,0 +1,11 @@
package com.tangem.domain.staking.model.action
enum class StakingActionStatus {
CANCELED,
CREATED,
WAITING_FOR_NEXT,
PROCESSING,
FAILED,
SUCCESS,
UNKNOWN,
}

View file

@ -0,0 +1,20 @@
package com.tangem.domain.staking.model.action
enum class StakingActionType {
STAKE,
UNSTAKE,
CLAIM_REWARDS,
RESTAKE_REWARDS,
WITHDRAW,
RESTAKE,
CLAIM_UNSTAKED,
UNLOCK_LOCKED,
STAKE_LOCKED,
VOTE,
REVOKE,
VOTE_LOCKED,
REVOTE,
REBOND,
MIGRATE,
UNKNOWN,
}

View file

@ -0,0 +1,10 @@
package com.tangem.domain.staking.model.transaction
import com.tangem.domain.staking.model.Token
import java.math.BigDecimal
data class StakingGasEstimate(
val amount: BigDecimal,
val token: Token,
val gasLimit: BigDecimal,
)

View file

@ -0,0 +1,20 @@
package com.tangem.domain.staking.model.transaction
import com.tangem.domain.staking.model.NetworkType
data class StakingTransaction(
val id: String,
val network: NetworkType,
val status: StakingTransactionStatus,
val type: StakingTransactionType,
val hash: String?,
val signedTransaction: String?,
val unsignedTransaction: String?,
val stepIndex: Int,
val error: String?,
val gasEstimate: StakingGasEstimate?,
val stakeId: String?,
val explorerUrl: String?,
val ledgerHwAppId: String?,
val isMessage: Boolean,
)

View file

@ -0,0 +1,15 @@
package com.tangem.domain.staking.model.transaction
enum class StakingTransactionStatus {
NOT_FOUND,
CREATED,
BLOCKED,
WAITING_FOR_SIGNATURE,
SIGNED,
BROADCASTED,
PENDING,
CONFIRMED,
FAILED,
SKIPPED,
UNKNOWN,
}

View file

@ -0,0 +1,44 @@
package com.tangem.domain.staking.model.transaction
enum class StakingTransactionType {
SWAP,
DEPOSIT,
APPROVAL,
STAKE,
CLAIM_UNSTAKED,
CLAIM_REWARDS,
RESTAKE_REWARDS,
UNSTAKE,
SPLIT,
MERGE,
LOCK,
UNLOCK,
SUPPLY,
BRIDGE,
VOTE,
REVOKE,
RESTAKE,
REBOND,
WITHDRAW,
CREATE_ACCOUNT,
REVEAL,
MIGRATE,
UTXO_P_TO_C_IMPORT,
UTXO_C_TO_P_IMPORT,
UNFREEZE_LEGACY,
UNFREEZE_LEGACY_BANDWIDTH,
UNFREEZE_LEGACY_ENERGY,
UNFREEZE_BANDWIDTH,
UNFREEZE_ENERGY,
FREEZE_BANDWIDTH,
FREEZE_ENERGY,
UNDELEGATE_BANDWIDTH,
UNDELEGATE_ENERGY,
P2P_NODE_REQUEST,
LUGANODES_PROVISION,
LUGANODES_EXIT_REQUEST,
INFSTONES_PROVISION,
INFSTONES_EXIT_REQUEST,
INFSTONES_CLAIM_REQUEST,
UNKNOWN,
}