Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH-2049 changed the display strings based on order types #2050

Merged
merged 1 commit into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ class SwapOrderViewHolder(private val viewBinding: ItemTxSwapOrderBinding) :
dateTime.text = viewTransfer.dateTimeText

nonce.text = viewTransfer.nonce
addressName.text = resources.getString(R.string.tx_list_swap_order)
addressName.text = viewTransfer.displayName

addressLogo.alpha = viewTransfer.alpha
addressName.alpha = viewTransfer.alpha
Expand Down Expand Up @@ -412,7 +412,7 @@ class SwapTransferQueuedViewHolder(private val viewBinding: ItemTxQueuedSwapOrde
status.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))

dateTime.text = viewTransfer.dateTime.elapsedIntervalTo(Date.from(Instant.now())).format(resources)
addressName.text = resources.getString(R.string.tx_list_swap_transfer)
addressName.text = viewTransfer.displayName

confirmationsIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, viewTransfer.confirmationsIcon, theme))
confirmations.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.confirmationsTextColor, theme))
Expand Down Expand Up @@ -440,7 +440,7 @@ class SwapTransferViewHolder(private val viewBinding: ItemTxSwapOrderBinding) :
dateTime.text = viewTransfer.dateTimeText

nonce.text = viewTransfer.nonce
addressName.text = resources.getString(R.string.tx_list_swap_transfer)
addressName.text = viewTransfer.displayName

addressLogo.alpha = viewTransfer.alpha
addressName.alpha = viewTransfer.alpha
Expand Down Expand Up @@ -468,7 +468,7 @@ class TwapOrderQueuedViewHolder(private val viewBinding: ItemTxQueuedSwapOrderBi
status.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))

dateTime.text = viewTransfer.dateTime.elapsedIntervalTo(Date.from(Instant.now())).format(resources)
addressName.text = resources.getString(R.string.tx_list_twap_order)
addressName.text = viewTransfer.displayName

confirmationsIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, viewTransfer.confirmationsIcon, theme))
confirmations.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.confirmationsTextColor, theme))
Expand Down Expand Up @@ -496,7 +496,7 @@ class TwapOrderViewHolder(private val viewBinding: ItemTxSwapOrderBinding) :
dateTime.text = viewTransfer.dateTimeText

nonce.text = viewTransfer.nonce
addressName.text = resources.getString(R.string.tx_list_twap_order)
addressName.text = viewTransfer.displayName

addressLogo.alpha = viewTransfer.alpha
addressName.alpha = viewTransfer.alpha
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ import io.gnosis.data.repositories.TransactionLocalRepository
import io.gnosis.safe.R
import io.gnosis.safe.ui.base.AppDispatchers
import io.gnosis.safe.ui.base.BaseStateViewModel
import io.gnosis.safe.ui.transactions.details.viewdata.swapOrderDisplayname
import io.gnosis.safe.ui.transactions.details.viewdata.swapTransferDisplayName
import io.gnosis.safe.ui.transactions.details.viewdata.twapOrderDisplayName
import io.gnosis.safe.ui.transactions.paging.TransactionPagingProvider
import io.gnosis.safe.ui.transactions.paging.TransactionPagingSource
import io.gnosis.safe.utils.BalanceFormatter
Expand Down Expand Up @@ -392,7 +395,8 @@ class TransactionListViewModel
dateTimeText = timestamp.formatBackendTimeOfDay(),
alpha = alpha(txStatus),
nonce = executionInfo?.nonce?.toString() ?: "",
explorerUrl = txInfo.explorerUrl
explorerUrl = txInfo.explorerUrl,
displayName = swapOrderDisplayname(txInfo)
)
}

Expand All @@ -419,7 +423,8 @@ class TransactionListViewModel
confirmationsTextColor = if (thresholdMet) R.color.success else R.color.icon,
confirmationsIcon = if (thresholdMet) R.drawable.ic_confirmations_green_16dp else R.drawable.ic_confirmations_grey_16dp,
nonce = if (isConflict) "" else executionInfo?.nonce?.toString() ?: "",
explorerUrl = txInfo.explorerUrl
explorerUrl = txInfo.explorerUrl,
displayName = swapOrderDisplayname(txInfo)
)
}

Expand All @@ -446,7 +451,8 @@ class TransactionListViewModel
dateTimeText = timestamp.formatBackendTimeOfDay(),
alpha = alpha(txStatus),
nonce = executionInfo?.nonce?.toString() ?: "",
explorerUrl = txInfo.explorerUrl
explorerUrl = txInfo.explorerUrl,
displayName = swapTransferDisplayName(txInfo)
)
}

Expand All @@ -473,7 +479,8 @@ class TransactionListViewModel
confirmationsTextColor = if (thresholdMet) R.color.success else R.color.icon,
confirmationsIcon = if (thresholdMet) R.drawable.ic_confirmations_green_16dp else R.drawable.ic_confirmations_grey_16dp,
nonce = if (isConflict) "" else executionInfo?.nonce?.toString() ?: "",
explorerUrl = txInfo.explorerUrl
explorerUrl = txInfo.explorerUrl,
displayName = swapTransferDisplayName(txInfo)
)
}

Expand All @@ -499,7 +506,8 @@ class TransactionListViewModel
statusColorRes = statusTextColor(txStatus),
dateTimeText = timestamp.formatBackendTimeOfDay(),
alpha = alpha(txStatus),
nonce = executionInfo?.nonce?.toString() ?: ""
nonce = executionInfo?.nonce?.toString() ?: "",
displayName = twapOrderDisplayName()
)
}

Expand All @@ -525,7 +533,8 @@ class TransactionListViewModel
threshold = threshold,
confirmationsTextColor = if (thresholdMet) R.color.success else R.color.icon,
confirmationsIcon = if (thresholdMet) R.drawable.ic_confirmations_green_16dp else R.drawable.ic_confirmations_grey_16dp,
nonce = if (isConflict) "" else executionInfo?.nonce?.toString() ?: ""
nonce = if (isConflict) "" else executionInfo?.nonce?.toString() ?: "",
displayName = twapOrderDisplayName()
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ sealed class TransactionView(
val dateTimeText: String,
val alpha: Float,
val nonce: String,
val explorerUrl: String
val explorerUrl: String,
val displayName: String
) : TransactionView(status, id, chain)

data class SwapOrderTransactionQueued(
Expand All @@ -139,7 +140,8 @@ sealed class TransactionView(
@ColorRes val confirmationsTextColor: Int,
@DrawableRes val confirmationsIcon: Int,
val nonce: String,
val explorerUrl: String
val explorerUrl: String,
val displayName: String
) : TransactionView(status, id, chain)

data class SwapTransferTransaction(
Expand All @@ -151,7 +153,8 @@ sealed class TransactionView(
val dateTimeText: String,
val alpha: Float,
val nonce: String,
val explorerUrl: String
val explorerUrl: String,
val displayName: String
) : TransactionView(status, id, chain)

data class SwapTransferTransactionQueued(
Expand All @@ -166,7 +169,8 @@ sealed class TransactionView(
@ColorRes val confirmationsTextColor: Int,
@DrawableRes val confirmationsIcon: Int,
val nonce: String,
val explorerUrl: String
val explorerUrl: String,
val displayName: String
) : TransactionView(status, id, chain)

data class TwapOrderTransaction(
Expand All @@ -178,6 +182,7 @@ sealed class TransactionView(
val dateTimeText: String,
val alpha: Float,
val nonce: String,
val displayName: String
) : TransactionView(status, id, chain)

data class TwapOrderTransactionQueued(
Expand All @@ -192,6 +197,7 @@ sealed class TransactionView(
@ColorRes val confirmationsTextColor: Int,
@DrawableRes val confirmationsIcon: Int,
val nonce: String,
val displayName: String
) : TransactionView(status, id, chain)

data class Creation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -464,11 +464,11 @@ class TransactionDetailsFragment : BaseViewBindingFragment<FragmentTransactionDe
copyChainPrefix = viewModel.isChainPrefixCopyEnabled(),
actionInfoItems = listOf<ActionInfoItem>(ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom ,
value = "Swap order"))
value = txInfo.displayDescription))
)

txStatus.setStatus(
title = resources.getString(TxType.SWAP_ORDER.titleRes),
title = txInfo.displayDescription,
defaultIconRes = TxType.SWAP_ORDER.iconRes,
statusTextRes = getStringResForStatus(txDetails.txStatus, txDetails.canSign && awaitingConfirmations),
statusColorRes = getColorForStatus(txDetails.txStatus)
Expand All @@ -494,11 +494,11 @@ class TransactionDetailsFragment : BaseViewBindingFragment<FragmentTransactionDe
copyChainPrefix = viewModel.isChainPrefixCopyEnabled(),
actionInfoItems = listOf<ActionInfoItem>(ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom ,
value = "Swap transfer"))
value = txInfo.displayDescription))
)

txStatus.setStatus(
title = resources.getString(TxType.SWAP_TRANSFER.titleRes),
title = txInfo.displayDescription,
defaultIconRes = TxType.SWAP_TRANSFER.iconRes,
statusTextRes = getStringResForStatus(txDetails.txStatus, txDetails.canSign && awaitingConfirmations),
statusColorRes = getColorForStatus(txDetails.txStatus)
Expand All @@ -524,11 +524,11 @@ class TransactionDetailsFragment : BaseViewBindingFragment<FragmentTransactionDe
copyChainPrefix = viewModel.isChainPrefixCopyEnabled(),
actionInfoItems = listOf<ActionInfoItem>(ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom ,
value = "Twap order"))
value = txInfo.displayDescription))
)

txStatus.setStatus(
title = resources.getString(TxType.TWAP_ORDER.titleRes),
title = txInfo.displayDescription,
defaultIconRes = TxType.TWAP_ORDER.iconRes,
statusTextRes = getStringResForStatus(txDetails.txStatus, txDetails.canSign && awaitingConfirmations),
statusColorRes = getColorForStatus(txDetails.txStatus)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,18 +104,21 @@ sealed class TransactionInfoViewData(
@Parcelize
data class SwapOrder(
val uid: String,
val explorerUrl: String
val explorerUrl: String,
val displayDescription: String
) : TransactionInfoViewData(TransactionType.SwapOrder)

@Parcelize
data class SwapTransfer(
val uid: String,
val explorerUrl: String
val explorerUrl: String,
val displayDescription: String
) : TransactionInfoViewData(TransactionType.SwapTransfer)

@Parcelize
data class TwapOrder(
val status: String
val status: String,
val displayDescription: String
) : TransactionInfoViewData(TransactionType.TwapOrder)

@Parcelize
Expand Down Expand Up @@ -248,22 +251,49 @@ internal fun TransactionInfo.toTransactionInfoViewData(
)
}
}

is TransactionInfo.Creation -> TransactionInfoViewData.Creation(
creator.value,
AddressInfoData.Remote(creator.name, creator.logoUri, creator.value.asEthereumAddressString()),
AddressInfoData.Remote(
creator.name,
creator.logoUri,
creator.value.asEthereumAddressString()
),
transactionHash,
implementation?.value,
AddressInfoData.Remote(implementation?.name, implementation?.logoUri, implementation?.value?.asEthereumAddressString()),
AddressInfoData.Remote(
implementation?.name,
implementation?.logoUri,
implementation?.value?.asEthereumAddressString()
),
factory?.value,
AddressInfoData.Remote(factory?.name, factory?.logoUri, factory?.value?.asEthereumAddressString())
AddressInfoData.Remote(
factory?.name,
factory?.logoUri,
factory?.value?.asEthereumAddressString()
)
)

is TransactionInfo.SettingsChange -> TransactionInfoViewData.SettingsChange(
dataDecoded,
settingsInfo.toSettingsInfoViewData(safes, owners = owners)
)
is TransactionInfo.SwapOrder -> TransactionInfoViewData.SwapOrder(uid, explorerUrl)
is TransactionInfo.SwapTransfer -> TransactionInfoViewData.SwapTransfer(uid, explorerUrl)
is TransactionInfo.TwapOrder -> TransactionInfoViewData.TwapOrder(status)

is TransactionInfo.SwapOrder -> {
val name = swapOrderDisplayname(this)
TransactionInfoViewData.SwapOrder(uid, explorerUrl, name)
}

is TransactionInfo.SwapTransfer -> {
val name = swapTransferDisplayName(this)
TransactionInfoViewData.SwapTransfer(uid, explorerUrl, name)
}

is TransactionInfo.TwapOrder -> {
val name = twapOrderDisplayName()
TransactionInfoViewData.TwapOrder(status, name)
}

is TransactionInfo.Transfer -> {
val addressInfoData =
if (direction == TransactionDirection.OUTGOING) {
Expand All @@ -289,9 +319,32 @@ internal fun TransactionInfo.toTransactionInfoViewData(
direction = direction
)
}

is TransactionInfo.Unknown -> TransactionInfoViewData.Unknown
}

internal fun twapOrderDisplayName(): String {
return "Twap order"
}

internal fun swapOrderDisplayname(info: TransactionInfo.SwapOrder): String {
val orderClass = info.fullAppData?.metadata?.orderClass?.orderClass ?: "market"
val name = if (orderClass == "limit") "Limit order" else "Swap order"
return name
}

internal fun swapTransferDisplayName(info: TransactionInfo.SwapTransfer): String {
val orderClass = info.fullAppData?.metadata?.orderClass?.orderClass ?: "market"
val name = when (orderClass) {
"limit" -> "Limit order settlement"
"twap" -> "TWAP order settlement"
"liquidity" -> "Liquidity order settlement"
"market" -> "Swap order settlement"
else -> "Swap order settlement"
}
return name
}

@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
internal fun SettingsInfo?.toSettingsInfoViewData(
safes: List<Safe>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ class TxReviewFragment : BaseViewBindingFragment<FragmentTxReviewBinding>() {
actionInfoItems = listOf<ActionInfoItem>(
ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom,
value = "Swap order"))
value = txInfo.displayDescription))
)
orderLink.visible(true)
actionDivider.visible(true)
Expand All @@ -414,7 +414,7 @@ class TxReviewFragment : BaseViewBindingFragment<FragmentTxReviewBinding>() {
actionInfoItems = listOf<ActionInfoItem>(
ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom,
value = "Swap transfer"))
value = txInfo.displayDescription))
)
orderLink.visible(true)
actionDivider.visible(true)
Expand All @@ -440,7 +440,7 @@ class TxReviewFragment : BaseViewBindingFragment<FragmentTxReviewBinding>() {
actionInfoItems = listOf<ActionInfoItem>(
ActionInfoItem.Value(
itemLabel = R.string.tx_status_type_custom,
value = "Twap order"))
value = txInfo.displayDescription))
)
orderLink.visible(false)
actionDivider.visible(false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,15 @@ sealed class TransactionInfo(
@JsonClass(generateAdapter = true)
data class SwapOrder(
@Json(name = "uid") val uid: String,
@Json(name = "explorerUrl") val explorerUrl: String
@Json(name = "explorerUrl") val explorerUrl: String,
@Json(name = "fullAppData") val fullAppData: AppData? = null
) : TransactionInfo(TransactionType.SwapOrder)

@JsonClass(generateAdapter = true)
data class SwapTransfer(
@Json(name = "uid") val uid: String,
@Json(name = "explorerUrl") val explorerUrl: String
@Json(name = "explorerUrl") val explorerUrl: String,
@Json(name = "fullAppData") val fullAppData: AppData? = null
) : TransactionInfo(TransactionType.SwapTransfer)

@JsonClass(generateAdapter = true)
Expand All @@ -71,3 +73,21 @@ enum class TransactionDirection {
@Json(name = "UNKNOWN")
UNKNOWN
}

@JsonClass(generateAdapter = true)
data class AppData (
@Json(name = "metadata")
val metadata: Metadata? = null
)

@JsonClass(generateAdapter = true)
data class Metadata (
@Json(name = "orderClass")
val orderClass: OrderClass? = null
)

@JsonClass(generateAdapter = true)
data class OrderClass (
@Json(name = "orderClass")
val orderClass: String? = "market"
)
Loading