diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeAssetRow.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeAssetRow.kt
index c594a472..101d2365 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeAssetRow.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeAssetRow.kt
@@ -44,10 +44,6 @@ import io.ton.walletkit.demo.designsystem.icons.TonIcon
import io.ton.walletkit.demo.designsystem.icons.TonIconImage
import io.ton.walletkit.demo.designsystem.theme.TonTheme
-// Mirrors iOS WalletHomeAssetItem.Icon — keeps the icon shape behind a sealed type
-// so we can swap between the bundled TON brand mark, a network image URL, and a
-// last-resort coloured initials placeholder without leaking the resolution to call
-// sites.
@Immutable
sealed interface WalletHomeAssetIcon {
data object Ton : WalletHomeAssetIcon
@@ -110,9 +106,8 @@ private fun AssetIcon(item: WalletHomeAssetItem) {
) {
when (val icon = item.icon) {
WalletHomeAssetIcon.Ton -> TonIconImage(
- icon = TonIcon.Ton,
+ icon = TonIcon.Gram,
size = IconSize,
- // No tint — TON brand mark ships its blue + white fills baked into the SVG.
)
is WalletHomeAssetIcon.Url -> AsyncImage(
model = ImageRequest.Builder(androidx.compose.ui.platform.LocalContext.current)
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeBalance.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeBalance.kt
index 6bb13fa5..050422d7 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeBalance.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/components/wallet/home/WalletHomeBalance.kt
@@ -95,7 +95,7 @@ fun WalletHomeBalance(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(6.dp),
) {
- TonIconImage(icon = TonIcon.Ton, size = 16.dp)
+ TonIconImage(icon = TonIcon.Gram, size = 16.dp)
TonText(
text = truncatedAddress,
style = TonTheme.typography.subheadline2,
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/preview/PreviewData.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/preview/PreviewData.kt
index c4d232ea..df2a9272 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/preview/PreviewData.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/preview/PreviewData.kt
@@ -110,8 +110,8 @@ object PreviewData {
hash = "abc123def456hash789preview",
timestamp = System.currentTimeMillis() - 3600000, // 1 hour ago
isOutgoing = true,
- amount = "1.5 TON",
- fee = "0.005 TON",
+ amount = "1.5 GRAM",
+ fee = "0.005 GRAM",
fromAddress = wallet.address,
toAddress = "EQrecipientAddressForPreviewTest12345678",
comment = "Payment for services",
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/WalletScreen.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/WalletScreen.kt
index 1b612d7c..af732e99 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/WalletScreen.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/WalletScreen.kt
@@ -161,9 +161,9 @@ private fun buildAssetList(
val tonAmount = trimFraction(rawBalance, maxFractionDigits)
val tonItem = WalletHomeAssetItem(
id = "ton",
- name = "Toncoin",
- symbol = "TON",
- formattedAmount = "$tonAmount TON",
+ name = "Gram",
+ symbol = "GRAM",
+ formattedAmount = "$tonAmount GRAM",
amountValue = rawBalance?.toDoubleOrNull() ?: 0.0,
icon = WalletHomeAssetIcon.Ton,
)
@@ -541,7 +541,7 @@ fun WalletScreen(
WalletHomeContent(
totalBalance = totalBalance,
- balanceSuffix = " TON",
+ balanceSuffix = " GRAM",
balanceMaxFractionDigits = MAX_FRACTION_DIGITS,
truncatedAddress = WalletHomeTopBar.shortAddress(homeAddress),
onCopyAddress = {
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/iframesec/RealBridgeIframeCase.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/iframesec/RealBridgeIframeCase.kt
index c3e1c187..c8a58f97 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/iframesec/RealBridgeIframeCase.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/iframesec/RealBridgeIframeCase.kt
@@ -45,7 +45,8 @@ enum class RealBridgeIframeCase {
CROSS_ORIGIN_DATA,
SRCDOC,
SANDBOXED,
- RAW_JS_INTERFACE;
+ RAW_JS_INTERFACE,
+ ;
val shortTitle: String
get() = when (this) {
@@ -271,8 +272,7 @@ enum class RealBridgeIframeCase {
})();
""".trimIndent()
- private fun frameStyle(v: String) =
- "$v.style.cssText='width:100%;border:0;min-height:150px;background:#fff;border-radius:8px;margin-top:6px';"
+ private fun frameStyle(v: String) = "$v.style.cssText='width:100%;border:0;min-height:150px;background:#fff;border-radius:8px;margin-top:6px';"
/** A script that, run inside a frame, renders an overlay and auto-fires a real signData. */
fun realSendScript(label: String, note: String): String =
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/onboarding/CreateWalletOnboardingScreen.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/onboarding/CreateWalletOnboardingScreen.kt
index e23a5e3b..efadd73c 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/onboarding/CreateWalletOnboardingScreen.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/screen/onboarding/CreateWalletOnboardingScreen.kt
@@ -58,9 +58,9 @@ private data class OnboardingPage(
private val DefaultPages = listOf(
OnboardingPage(
- icon = TonIcon.Toncoin40,
+ icon = TonIcon.Gram40,
title = "Welcome to TON",
- description = "Hold and manage your Toncoin and tokens in one place.",
+ description = "Hold and manage your Gram and tokens in one place.",
),
OnboardingPage(
icon = TonIcon.Hand40,
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/StakingSheet.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/StakingSheet.kt
index 765a86e9..37dc8abe 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/StakingSheet.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/StakingSheet.kt
@@ -236,7 +236,7 @@ private fun StakingContent(
isError = amountInvalid || belowMinimum || aboveBalance,
supporting = when {
amountInvalid -> "Enter a valid positive amount."
- belowMinimum -> "TonStakers minimum stake is 1 TON."
+ belowMinimum -> "TonStakers minimum stake is 1 GRAM."
aboveBalance -> "Amount is higher than the available wallet balance."
else -> null
},
@@ -299,7 +299,7 @@ private fun TONUnstakeMode.toDisplayLabel(): String = when (this) {
}
private fun TONStakingQuoteDirection.inputSymbol(): String = when (this) {
- TONStakingQuoteDirection.stake -> "TON"
+ TONStakingQuoteDirection.stake -> "GRAM"
TONStakingQuoteDirection.unstake -> "tsTON"
}
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/TransferJettonSheet.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/TransferJettonSheet.kt
index 09014663..57339452 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/TransferJettonSheet.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/TransferJettonSheet.kt
@@ -248,7 +248,7 @@ fun TransferJettonSheet(
// Info
Text(
- text = "A small amount of TON will be used as a network fee for this transfer.",
+ text = "A small amount of GRAM will be used as a network fee for this transfer.",
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
)
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/components/TonConnectTransactionParts.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/components/TonConnectTransactionParts.kt
index 018a6979..c34a4c9f 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/components/TonConnectTransactionParts.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/ui/sheet/components/TonConnectTransactionParts.kt
@@ -82,7 +82,7 @@ private fun ItemEntry(item: TONStructuredItem, index: Int) {
when (item) {
is TONStructuredItem.Ton -> item.value.let { ton ->
EntryCard(
- title = "Send TON #${index + 1}",
+ title = "Send GRAM #${index + 1}",
toAddress = ton.address,
amount = tonAmount(ton.amount),
extraLines = emptyList(),
@@ -243,7 +243,7 @@ private fun MoneyFlowRow(transfer: TONTransactionTraceMoneyFlowItem) {
val amountText = TonFormatter.formatNanoTon(transfer.amount.removePrefix("-"))
val prefix = if (isPositive) "+" else "-"
val unit = when (transfer.assetType) {
- TONAssetType.ton -> "TON"
+ TONAssetType.ton -> "GRAM"
TONAssetType.nft -> "NFT"
TONAssetType.jetton -> ""
}
@@ -291,12 +291,12 @@ internal fun TransactionPreviewError(message: String) {
}
private fun assetName(transfer: TONTransactionTraceMoneyFlowItem): String = when (transfer.assetType) {
- TONAssetType.ton -> "TON"
+ TONAssetType.ton -> "GRAM"
TONAssetType.jetton -> transfer.tokenAddress?.value?.let(::shortAddress) ?: "Jetton"
TONAssetType.nft -> transfer.tokenAddress?.value?.let(::shortAddress) ?: "NFT"
}
-private fun tonAmount(nano: String): String = "${TonFormatter.formatNanoTon(nano)} TON"
+private fun tonAmount(nano: String): String = "${TonFormatter.formatNanoTon(nano)} GRAM"
private fun shortAddress(address: String): String = if (address.length > ADDRESS_TRUNCATION * 2) {
"${address.take(ADDRESS_TRUNCATION)}...${address.takeLast(ADDRESS_TRUNCATION)}"
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SendTokensViewModel.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SendTokensViewModel.kt
index 81d1559d..a19a90c6 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SendTokensViewModel.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SendTokensViewModel.kt
@@ -103,13 +103,13 @@ class SendTokensViewModel(
runCatching {
tokens += SendableToken(
id = "ton",
- name = "Toncoin",
- symbol = "TON",
+ name = "Gram",
+ symbol = "GRAM",
decimals = TON_DECIMALS,
displayBalance = TonFormatter.formatNanoTon(wallet.balance().value),
masterAddress = null,
imageSource = null,
- requiredAmountInfo = "Minimum transaction: 0.0001 TON",
+ requiredAmountInfo = "Minimum transaction: 0.0001 GRAM",
)
}.onFailure { Log.e(TAG, "Failed to load TON balance", it) }
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/StakingViewModel.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/StakingViewModel.kt
index b74b8210..28ed4e45 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/StakingViewModel.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/StakingViewModel.kt
@@ -85,10 +85,10 @@ class StakingViewModel(
),
) {
val inputTokenSymbol: String
- get() = if (direction == TONStakingQuoteDirection.stake) "TON" else "tsTON"
+ get() = if (direction == TONStakingQuoteDirection.stake) "GRAM" else "tsTON"
val receiveTokenSymbol: String
- get() = if (direction == TONStakingQuoteDirection.stake) "tsTON" else "TON"
+ get() = if (direction == TONStakingQuoteDirection.stake) "tsTON" else "GRAM"
val canGetQuote: Boolean
get() = amount.isNotEmpty() && (amount.toDoubleOrNull() ?: 0.0) > 0 && !isLoadingQuote
diff --git a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SwapViewModel.kt b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SwapViewModel.kt
index 7d9ae6d7..43a87a98 100644
--- a/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SwapViewModel.kt
+++ b/AndroidDemo/app/src/main/java/io/ton/walletkit/demo/presentation/viewmodel/SwapViewModel.kt
@@ -53,7 +53,7 @@ class SwapViewModel(
}
data class UiState(
- val fromToken: TONSwapToken = TONSwapToken(address = "ton", decimals = 9.0, name = "TON", symbol = "TON"),
+ val fromToken: TONSwapToken = TONSwapToken(address = "ton", decimals = 9.0, name = "Gram", symbol = "GRAM"),
val toToken: TONSwapToken = TONSwapToken(
address = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs",
decimals = 6.0,
diff --git a/AndroidDemo/app/src/main/res/drawable/ic_launcher_foreground.xml b/AndroidDemo/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 00000000..40744596
--- /dev/null
+++ b/AndroidDemo/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 9fe5d849..bcdeecdf 100644
--- a/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 9fe5d849..bcdeecdf 100644
--- a/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/AndroidDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/AndroidDemo/app/src/main/res/values/strings.xml b/AndroidDemo/app/src/main/res/values/strings.xml
index 7d9ec713..674c192c 100644
--- a/AndroidDemo/app/src/main/res/values/strings.xml
+++ b/AndroidDemo/app/src/main/res/values/strings.xml
@@ -90,7 +90,7 @@
Remove Wallet?
Are you sure you want to remove this wallet?
This will switch to another wallet.
- %1$s TON
+ %1$s GRAM
Active
@@ -221,17 +221,17 @@
Sent
Received
Unknown time
- -%1$s TON
- +%1$s TON
+ -%1$s GRAM
+ +%1$s GRAM
- Send TON
+ Send GRAM
From
- Balance: %1$s TON
+ Balance: %1$s GRAM
Recipient Address
EQ... or UQ...
Invalid TON address
- Amount (TON)
+ Amount (GRAM)
0.00
Invalid amount
Insufficient balance
@@ -298,7 +298,7 @@
Renamed wallet to: %1$s
Wallet %1$d
Unknown
- 0 TON
+ 0 GRAM
Success
Failed to prepare demo wallet
unknown
diff --git a/AndroidDemo/designsystem/src/main/java/io/ton/walletkit/demo/designsystem/icons/TonIcon.kt b/AndroidDemo/designsystem/src/main/java/io/ton/walletkit/demo/designsystem/icons/TonIcon.kt
index be624ea6..e3a09002 100644
--- a/AndroidDemo/designsystem/src/main/java/io/ton/walletkit/demo/designsystem/icons/TonIcon.kt
+++ b/AndroidDemo/designsystem/src/main/java/io/ton/walletkit/demo/designsystem/icons/TonIcon.kt
@@ -33,13 +33,6 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Dp
-// Mirrors iOS `Icons/TONIcon.swift` 1-for-1.
-//
-// Each case is backed by a vector drawable in
-// `:designsystem/src/main/res/drawable/.xml`. Resource names are flat
-// lowercase to match the conversion the iOS SVGs were dropped through. Two iOS
-// names ("Switch", "New") collide with Kotlin/AAPT reserved or near-reserved names
-// — those drawables ship as `resource_switch` / `resource_new`.
enum class TonIcon(val resourceName: String, val category: Category) {
// Tabbar
DiscoverFilled("discoverfilled", Category.Tabbar),
@@ -81,7 +74,7 @@ enum class TonIcon(val resourceName: String, val category: Category) {
Star24("star24", Category.Icons24),
SwitchVertical24("switchvertical24", Category.Icons24),
Ton("ton", Category.Icons24),
- Toncoin("toncoin", Category.Icons24),
+ Gram("gram", Category.Icons24),
TonFill("tonfill", Category.Icons24),
Trend("trend", Category.Icons24),
Volume("volume", Category.Icons24),
@@ -149,7 +142,7 @@ enum class TonIcon(val resourceName: String, val category: Category) {
Share40("share40", Category.Icons40),
Share40Alt("share40alt", Category.Icons40),
TelegramWallet40("telegramwallet40", Category.Icons40),
- Toncoin40("toncoin40", Category.Icons40),
+ Gram40("gram40", Category.Icons40),
;
enum class Category { Tabbar, Icons24, Icons20, Icons16, Icons12, Icons40 }
diff --git a/AndroidDemo/designsystem/src/main/res/drawable/gram.xml b/AndroidDemo/designsystem/src/main/res/drawable/gram.xml
new file mode 100644
index 00000000..7a290654
--- /dev/null
+++ b/AndroidDemo/designsystem/src/main/res/drawable/gram.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/AndroidDemo/designsystem/src/main/res/drawable/gram40.xml b/AndroidDemo/designsystem/src/main/res/drawable/gram40.xml
new file mode 100644
index 00000000..3221ba5e
--- /dev/null
+++ b/AndroidDemo/designsystem/src/main/res/drawable/gram40.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/AndroidDemo/designsystem/src/main/res/drawable/toncoin.xml b/AndroidDemo/designsystem/src/main/res/drawable/toncoin.xml
deleted file mode 100644
index b91484fd..00000000
--- a/AndroidDemo/designsystem/src/main/res/drawable/toncoin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
diff --git a/AndroidDemo/designsystem/src/main/res/drawable/toncoin40.xml b/AndroidDemo/designsystem/src/main/res/drawable/toncoin40.xml
deleted file mode 100644
index 8407326a..00000000
--- a/AndroidDemo/designsystem/src/main/res/drawable/toncoin40.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-