Updated on 2026-08-14

This commit is contained in:
Tangem 2023-04-10 21:23:27 +09:00
parent c069df9302
commit a3a0d325da
5 changed files with 115 additions and 4 deletions

View file

@ -463,8 +463,5 @@
}
]
}
],
"total" : 0,
"imageHost" : "https://s3.eu-central-1.amazonaws.com/tangem.api/coins/"
]
}

View file

@ -0,0 +1,27 @@
package com.tangem.datasource.di
import com.squareup.moshi.Moshi
import com.squareup.moshi.adapter
import com.tangem.datasource.asset.AssetReader
import com.tangem.datasource.local.testnet.DefaultTestnetTokensStorage
import com.tangem.datasource.local.testnet.TestnetTokensStorage
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
/**
[REDACTED_AUTHOR]
*/
@Module
@InstallIn(SingletonComponent::class)
object TestnetTokensStorageModule {
@OptIn(ExperimentalStdlibApi::class)
@Provides
@Singleton
fun providesTestnetTokensStorage(assetReader: AssetReader, @SdkMoshi moshi: Moshi): TestnetTokensStorage {
return DefaultTestnetTokensStorage(assetReader = assetReader, adapter = moshi.adapter())
}
}

View file

@ -0,0 +1,31 @@
package com.tangem.datasource.local.testnet
import com.squareup.moshi.JsonAdapter
import com.tangem.datasource.asset.AssetReader
import com.tangem.datasource.local.testnet.models.TestnetTokensConfig
/**
* Default implementation for storing testnet tokens data
*
* @property assetReader file reader from assets
* @property adapter adapter for parsing testnet tokens config
*
[REDACTED_AUTHOR]
*/
internal class DefaultTestnetTokensStorage(
private val assetReader: AssetReader,
private val adapter: JsonAdapter<TestnetTokensConfig>,
) : TestnetTokensStorage {
override fun getConfig(): TestnetTokensConfig {
return requireNotNull(
value = adapter.fromJson(
assetReader.readJson(fileName = LOCAL_CONFIG_PATH),
),
)
}
private companion object {
const val LOCAL_CONFIG_PATH: String = "testnet_tokens"
}
}

View file

@ -0,0 +1,14 @@
package com.tangem.datasource.local.testnet
import com.tangem.datasource.local.testnet.models.TestnetTokensConfig
/**
* Storage of testnet tokens data
*
[REDACTED_AUTHOR]
*/
interface TestnetTokensStorage {
/** Get a testnet tokens data */
fun getConfig(): TestnetTokensConfig
}

View file

@ -0,0 +1,42 @@
package com.tangem.datasource.local.testnet.models
import com.squareup.moshi.Json
/**
* Config model with testnet tokens list
*
* @property tokens testnet tokens list
*/
data class TestnetTokensConfig(
@Json(name = "coins") val tokens: List<Token>,
) {
/**
* Testnet token model
*
* @property id token id
* @property name token name
* @property symbol token brief name. Example, "BTC"
* @property networks networks of testnet token
*/
data class Token(
@Json(name = "id") val id: String,
@Json(name = "name") val name: String,
@Json(name = "symbol") val symbol: String,
@Json(name = "networks") val networks: List<Network>? = null,
) {
/**
* Network model of testnet token
*
* @property id network id
* @property address network address
* @property decimalCount decimal count
*/
data class Network(
@Json(name = "networkId") val id: String,
@Json(name = "contractAddress") val address: String?,
@Json(name = "decimalCount") val decimalCount: Int?,
)
}
}