@@ -6,6 +6,7 @@ import com.neovisionaries.ws.client.WebSocketFactory
6
6
import dagger.Module
7
7
import dagger.Provides
8
8
import dagger.hilt.InstallIn
9
+ import dagger.hilt.android.qualifiers.ApplicationContext
9
10
import dagger.hilt.components.SingletonComponent
10
11
import java.io.File
11
12
import java.util.concurrent.TimeUnit
@@ -15,6 +16,7 @@ import jp.co.soramitsu.common.data.network.AndroidLogger
15
16
import jp.co.soramitsu.common.data.network.AppLinksProvider
16
17
import jp.co.soramitsu.common.data.network.HttpExceptionHandler
17
18
import jp.co.soramitsu.common.data.network.NetworkApiCreator
19
+ import jp.co.soramitsu.common.data.network.OptionsProvider
18
20
import jp.co.soramitsu.common.data.network.nomis.NomisApi
19
21
import jp.co.soramitsu.common.data.network.rpc.SocketSingleRequestExecutor
20
22
import jp.co.soramitsu.common.resources.ResourceManager
@@ -23,6 +25,21 @@ import jp.co.soramitsu.shared_utils.wsrpc.logging.Logger
23
25
import jp.co.soramitsu.shared_utils.wsrpc.recovery.Reconnector
24
26
import jp.co.soramitsu.shared_utils.wsrpc.request.CoroutinesRequestExecutor
25
27
import jp.co.soramitsu.shared_utils.wsrpc.request.RequestExecutor
28
+ import jp.co.soramitsu.xnetworking.lib.datasources.blockexplorer.api.BlockExplorerRepository
29
+ import jp.co.soramitsu.xnetworking.lib.datasources.blockexplorer.impl.BlockExplorerRepositoryImpl
30
+ import jp.co.soramitsu.xnetworking.lib.datasources.chainsconfig.api.ConfigDAO
31
+ import jp.co.soramitsu.xnetworking.lib.datasources.chainsconfig.api.data.ConfigParser
32
+ import jp.co.soramitsu.xnetworking.lib.datasources.chainsconfig.impl.SuperWalletConfigDAOImpl
33
+ import jp.co.soramitsu.xnetworking.lib.datasources.chainsconfig.impl.data.RemoteConfigParserImpl
34
+ import jp.co.soramitsu.xnetworking.lib.datasources.txhistory.api.HistoryItemsFilter
35
+ import jp.co.soramitsu.xnetworking.lib.datasources.txhistory.api.TxHistoryRepository
36
+ import jp.co.soramitsu.xnetworking.lib.datasources.txhistory.api.models.TxHistoryItem
37
+ import jp.co.soramitsu.xnetworking.lib.datasources.txhistory.impl.TxHistoryRepositoryImpl
38
+ import jp.co.soramitsu.xnetworking.lib.datasources.txhistory.impl.builder.ExpectActualDBDriverFactory
39
+ import jp.co.soramitsu.xnetworking.lib.engines.rest.api.RestClient
40
+ import jp.co.soramitsu.xnetworking.lib.engines.rest.api.models.AbstractRestClientConfig
41
+ import jp.co.soramitsu.xnetworking.lib.engines.rest.impl.RestClientImpl
42
+ import kotlinx.serialization.json.Json
26
43
import okhttp3.Cache
27
44
import okhttp3.CacheControl
28
45
import okhttp3.OkHttpClient
@@ -40,6 +57,70 @@ private const val NOMIS_TIMEOUT_MINUTES = 2L
40
57
@Module
41
58
class NetworkModule {
42
59
60
+ @Singleton
61
+ @Provides
62
+ fun provideRestClient (
63
+ json : Json ,
64
+ ): RestClient = RestClientImpl (
65
+ restClientConfig = object : AbstractRestClientConfig () {
66
+ override fun getConnectTimeoutMillis (): Long = 30_000L
67
+ override fun getOrCreateJsonConfig (): Json = json
68
+ override fun getRequestTimeoutMillis (): Long = 30_000L
69
+ override fun getSocketTimeoutMillis (): Long = 30_000L
70
+ override fun isLoggingEnabled (): Boolean = BuildConfig .DEBUG
71
+ }
72
+ )
73
+
74
+ @Singleton
75
+ @Provides
76
+ fun provideConfigDAO (configParser : ConfigParser ): ConfigDAO =
77
+ SuperWalletConfigDAOImpl (configParser = configParser)
78
+
79
+ @Singleton
80
+ @Provides
81
+ fun provideTxHistoryRepository (
82
+ @ApplicationContext cnt : Context ,
83
+ configDAO : ConfigDAO ,
84
+ restClient : RestClient ,
85
+ ): TxHistoryRepository {
86
+ return TxHistoryRepositoryImpl (
87
+ historyItemsFilter = object : HistoryItemsFilter {
88
+ override fun List<TxHistoryItem>.filterCachedHistoryItems (): List <TxHistoryItem > = this
89
+
90
+ override fun List<TxHistoryItem>.filterPagedHistoryItems (): List <TxHistoryItem > = this
91
+ },
92
+ restClient = restClient,
93
+ configDAO = configDAO,
94
+ databaseDriverFactory = ExpectActualDBDriverFactory (
95
+ context = cnt,
96
+ name = " fearlessxndb" ,
97
+ )
98
+ )
99
+ }
100
+
101
+ @Singleton
102
+ @Provides
103
+ fun provideSoraWalletBlockExplorerInfo (
104
+ configDAO : ConfigDAO ,
105
+ restClient : RestClient ,
106
+ repo : TxHistoryRepository ,
107
+ ): BlockExplorerRepository {
108
+ return BlockExplorerRepositoryImpl (
109
+ configDAO = configDAO,
110
+ restClient = restClient,
111
+ txHistoryRepository = repo,
112
+ )
113
+ }
114
+
115
+ @Singleton
116
+ @Provides
117
+ fun provideConfigParser (
118
+ restClient : RestClient
119
+ ): ConfigParser = RemoteConfigParserImpl (
120
+ restClient = restClient,
121
+ chainsRequestUrl = " https://raw.githubusercontent.com/soramitsu/shared-features-utils/MWR-819/chains/xn.json" ,
122
+ )
123
+
43
124
@Provides
44
125
@Singleton
45
126
fun provideAppLinksProvider (): AppLinksProvider {
0 commit comments