6 | )
7 |
--------------------------------------------------------------------------------
/feature-wallet-api/src/main/java/jp/co/soramitsu/wallet/impl/domain/model/WalletAccount.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.domain.model
2 |
3 | class WalletAccount(
4 | val address: String,
5 | val name: String?
6 | )
7 |
--------------------------------------------------------------------------------
/feature-wallet-api/src/main/java/jp/co/soramitsu/wallet/impl/domain/validation/Producers.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.domain.validation
2 |
3 | import jp.co.soramitsu.wallet.impl.domain.model.Token
4 | import java.math.BigDecimal
5 |
6 | typealias AmountProducer = suspend (P) -> BigDecimal
7 |
8 | typealias TokenProducer
= suspend (P) -> Token
9 |
--------------------------------------------------------------------------------
/feature-wallet-api/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/feature-wallet-impl/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /coverage
--------------------------------------------------------------------------------
/feature-wallet-impl/libs/pushpayment-core-sdk-2.0.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/soramitsu/fearless-Android/d92f6f73709ba31c9f5e55fa431dbddf2b787c5a/feature-wallet-impl/libs/pushpayment-core-sdk-2.0.6.jar
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/buyToken/ExternalProvider.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.data.buyToken
2 |
3 | import android.content.Context
4 | import jp.co.soramitsu.wallet.impl.domain.model.BuyTokenRegistry
5 |
6 | interface ExternalProvider : BuyTokenRegistry.Provider> {
7 |
8 | companion object {
9 | const val REDIRECT_URL_BASE = "fearless://buy-success"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/network/blockchain/extrinsic/ExtrinsicBuilderExt.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.data.network.blockchain.extrinsic
2 |
3 | import jp.co.soramitsu.shared_utils.runtime.extrinsic.ExtrinsicBuilder
4 |
5 |
6 | fun ExtrinsicBuilder.remark(remark: String): ExtrinsicBuilder = call(
7 | moduleName = "System",
8 | callName = "remark",
9 | arguments = mapOf(
10 | "remark" to remark.toByteArray()
11 | )
12 | )
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/network/blockchain/updaters/PaymentUpdater.kt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/soramitsu/fearless-Android/d92f6f73709ba31c9f5e55fa431dbddf2b787c5a/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/network/blockchain/updaters/PaymentUpdater.kt
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/network/phishing/PhishingApi.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.data.network.phishing
2 |
3 | import jp.co.soramitsu.feature_wallet_impl.BuildConfig
4 | import okhttp3.ResponseBody
5 | import retrofit2.http.GET
6 | import retrofit2.http.Streaming
7 |
8 | interface PhishingApi {
9 |
10 | @Streaming
11 | @GET(BuildConfig.SCAM_DETECTION_CONFIG)
12 | suspend fun getPhishingAddresses(): ResponseBody
13 | }
14 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/data/network/subquery/HistoryNotSupportedException.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.data.network.subquery
2 |
3 | class HistoryNotSupportedException : Exception()
4 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/domain/beacon/SignStatus.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.domain.beacon
2 |
3 | enum class SignStatus {
4 | APPROVED, DECLINED
5 | }
6 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/AssetPayload.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation
2 |
3 | import android.os.Parcelable
4 | import jp.co.soramitsu.runtime.multiNetwork.chain.model.ChainId
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Parcelize
8 | data class AssetPayload(
9 | val chainId: ChainId,
10 | val chainAssetId: String
11 | ) : Parcelable
12 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/balance/detail/AccountOptionsPayload.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.balance.detail
2 |
3 | data class AccountOptionsPayload(
4 | val address: String,
5 | val supportClaim: Boolean,
6 | val isEthereum: Boolean
7 | )
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/balance/list/model/AssetType.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.balance.list.model
2 |
3 | import androidx.annotation.StringRes
4 | import jp.co.soramitsu.common.compose.component.MultiToggleItem
5 | import jp.co.soramitsu.feature_wallet_impl.R
6 |
7 | enum class AssetType(@StringRes override val titleResId: Int) : MultiToggleItem {
8 | Currencies(R.string.currencies_stub_text),
9 | NFTs(R.string.nfts_stub)
10 | }
11 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/balance/searchAssets/SearchAssetState.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.balance.searchAssets
2 |
3 | import jp.co.soramitsu.wallet.impl.presentation.balance.list.AssetsLoadingState
4 | import jp.co.soramitsu.wallet.impl.presentation.common.AssetListState
5 |
6 | data class SearchAssetState(
7 | override val assets: AssetsLoadingState = AssetsLoadingState.Loading(),
8 | val searchQuery: String = ""
9 | ) : AssetListState(assets)
10 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/balance/walletselector/light/WalletSelectionMode.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.balance.walletselector.light
2 |
3 | enum class WalletSelectionMode {
4 | CurrentWallet,
5 | ExternalSelectedWallet
6 | }
7 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/beacon/main/di/BeaconComponent.kt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/soramitsu/fearless-Android/d92f6f73709ba31c9f5e55fa431dbddf2b787c5a/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/beacon/main/di/BeaconComponent.kt
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/beacon/main/di/BeaconModule.kt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/soramitsu/fearless-Android/d92f6f73709ba31c9f5e55fa431dbddf2b787c5a/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/beacon/main/di/BeaconModule.kt
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/common/AssetListState.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.common
2 |
3 | import jp.co.soramitsu.wallet.impl.presentation.balance.list.AssetsLoadingState
4 |
5 | abstract class AssetListState(
6 | open val assets: AssetsLoadingState
7 | )
8 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/cross_chain/setup/ChainType.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.cross_chain.setup
2 |
3 | enum class ChainType {
4 | Origin, Destination
5 | }
6 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/receive/model/QrSharingPayload.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.receive.model
2 |
3 | import java.io.File
4 |
5 | data class QrSharingPayload(
6 | val qrFile: File,
7 | val shareMessage: String
8 | )
9 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/receive/model/ReceiveToggleType.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.receive.model
2 |
3 | import androidx.annotation.StringRes
4 | import jp.co.soramitsu.common.compose.component.MultiToggleItem
5 | import jp.co.soramitsu.feature_wallet_impl.R
6 |
7 | enum class ReceiveToggleType(@StringRes override val titleResId: Int) : MultiToggleItem {
8 | Receive(R.string.common_action_receive),
9 | Request(R.string.common_request)
10 | }
11 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/java/jp/co/soramitsu/wallet/impl/presentation/transaction/history/model/DayHeader.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.wallet.impl.presentation.transaction.history.model
2 |
3 | data class DayHeader(val daysSinceEpoch: Long)
4 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/res/drawable/bg_asset_left.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/res/drawable/bg_asset_right.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/feature-wallet-impl/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 64dp
4 | 80dp
5 |
--------------------------------------------------------------------------------
/feature-walletconnect-api/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /build
--------------------------------------------------------------------------------
/feature-walletconnect-api/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/feature-walletconnect-api/src/main/java/co/jp/soramitsu/walletconnect/model/ChainChooseState.kt:
--------------------------------------------------------------------------------
1 | package co.jp.soramitsu.walletconnect.model
2 |
3 | import android.os.Parcelable
4 | import kotlinx.android.parcel.Parcelize
5 |
6 | @Parcelize
7 | data class ChainChooseState(
8 | val items: List,
9 | val selected: List,
10 | val isViewMode: Boolean = false
11 | ) : Parcelable
12 |
13 | @Parcelize
14 | data class ChainChooseResult(
15 | val selectedChainIds: Set
16 | ) : Parcelable
17 |
--------------------------------------------------------------------------------
/feature-walletconnect-impl/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/feature-walletconnect-impl/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/soramitsu/fearless-Android/d92f6f73709ba31c9f5e55fa431dbddf2b787c5a/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Aug 13 16:04:52 GMT+07:00 2024
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/runtime-permission/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/core/callbacks/AcceptedCallback.java:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.core.callbacks;
2 |
3 | import jp.co.soramitsu.runtime_permission.core.PermissionResult;
4 |
5 | public interface AcceptedCallback {
6 | void onAccepted(PermissionResult result);
7 | }
8 |
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/core/callbacks/DeniedCallback.java:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.core.callbacks;
2 |
3 | import jp.co.soramitsu.runtime_permission.core.PermissionResult;
4 |
5 | public interface DeniedCallback {
6 | void onDenied(PermissionResult result);
7 | }
8 |
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/core/callbacks/ForeverDeniedCallback.java:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.core.callbacks;
2 |
3 | import jp.co.soramitsu.runtime_permission.core.PermissionResult;
4 |
5 | public interface ForeverDeniedCallback {
6 | void onForeverDenied(PermissionResult result);
7 | }
8 |
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/core/callbacks/PermissionListener.java:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.core.callbacks;
2 |
3 | import jp.co.soramitsu.runtime_permission.core.PermissionResult;
4 |
5 | import java.util.List;
6 |
7 | public interface PermissionListener {
8 | void onAccepted(PermissionResult permissionResult, List accepted);
9 | void onDenied(PermissionResult permissionResult, List denied, List foreverDenied);
10 | }
11 |
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/core/callbacks/ResponseCallback.java:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.core.callbacks;
2 |
3 | import jp.co.soramitsu.runtime_permission.core.PermissionResult;
4 |
5 | public interface ResponseCallback {
6 | void onResponse(PermissionResult result);
7 | }
8 |
--------------------------------------------------------------------------------
/runtime-permission/src/main/java/jp/co/soramitsu/runtime_permission/kotlin/NoActivityException.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime_permission.kotlin
2 |
3 | import java.lang.Exception
4 |
5 | class NoActivityException : Exception()
6 |
--------------------------------------------------------------------------------
/runtime/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/runtime/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/runtime/src/main/assets/types/kusama.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtime_id": 9122,
3 | "types": { },
4 | "versioning": [
5 | {
6 | "runtime_range": [
7 | 0,
8 | null
9 | ],
10 | "types": {
11 | "Balance": "u128",
12 | "Index": "u32",
13 | "Phase": "142",
14 | "Address": "195",
15 | "ExtrinsicSignature": "501",
16 | "ParaId": "88",
17 | "20": "GenericEvent",
18 | "300": "GenericCall"
19 | }
20 | }
21 | ]
22 | }
--------------------------------------------------------------------------------
/runtime/src/main/assets/types/polkadot.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtime_id": 9110,
3 | "types": { },
4 | "versioning": [
5 | {
6 | "runtime_range": [
7 | 0,
8 | null
9 | ],
10 | "types": {
11 | "Balance": "u128",
12 | "Index": "u32",
13 | "Phase": "103",
14 | "Address": "147",
15 | "ExtrinsicSignature": "355",
16 | "ParaId": "84",
17 | "20": "GenericEvent",
18 | "130": "GenericCall"
19 | }
20 | }
21 | ]
22 | }
--------------------------------------------------------------------------------
/runtime/src/main/assets/types/polkatrain.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtime_id": 9113,
3 | "types": { },
4 | "versioning": [
5 | {
6 | "runtime_range": [
7 | 0,
8 | null
9 | ],
10 | "types": {
11 | "Balance": "u128",
12 | "Index": "u32",
13 | "Phase": "104",
14 | "Address": "148",
15 | "ExtrinsicSignature": "356",
16 | "ParaId": "84",
17 | "20": "GenericEvent",
18 | "131": "GenericCall"
19 | }
20 | }
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/runtime/src/main/assets/types/westend.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtime_id": 1,
3 | "types": {},
4 | "versioning": [
5 | {
6 | "runtime_range": [
7 | 0,
8 | null
9 | ],
10 | "types": {
11 | "Balance": "u128",
12 | "Index": "u32",
13 | "Phase": "127",
14 | "Address": "180",
15 | "ExtrinsicSignature": "438",
16 | "ParaId": "72",
17 | "20": "GenericEvent",
18 | "269": "GenericCall"
19 | }
20 | }
21 | ]
22 | }
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/chain/model/ChainTypesInfo.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.chain.model
2 |
3 | import android.net.Uri
4 |
5 | class ChainTypesInfo(
6 | val url: String
7 | ) {
8 | // because of using ios/v3 chains.json but store android types in /android folder
9 | val androidUrl: String
10 | get() {
11 | val filename = Uri.parse(url).lastPathSegment
12 | return url.replace("/$filename", "/android/$filename")
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/chain/model/NodeId.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.chain.model
2 |
3 | @JvmInline
4 | value class NodeId(private val pair: Pair) {
5 |
6 | val chainId: String
7 | get() = pair.first
8 |
9 | val nodeUrl: String
10 | get() = pair.second
11 | }
12 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/chain/remote/ChainFetcher.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.chain.remote
2 |
3 | import jp.co.soramitsu.runtime.BuildConfig
4 | import jp.co.soramitsu.runtime.multiNetwork.chain.remote.model.ChainRemote
5 | import retrofit2.http.GET
6 |
7 | interface ChainFetcher {
8 |
9 | @GET(BuildConfig.CHAINS_URL)
10 | suspend fun getChains(): List
11 | }
12 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/chain/remote/model/ChainExternalApiRemote.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.chain.remote.model
2 |
3 | class ChainExternalApiRemote(
4 | val staking: Section?,
5 | val history: Section?,
6 | val crowdloans: Section?,
7 | val explorers: List?
8 | ) {
9 |
10 | class Section(val type: String, val url: String)
11 |
12 | class Explorer(val type: String, val types: List, val url: String)
13 | }
14 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/chain/remote/model/ChainNodeRemote.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.chain.remote.model
2 |
3 | class ChainNodeRemote(
4 | val url: String,
5 | val name: String
6 | )
7 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/configurator/TonEnvironmentConfigurator.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.configurator
2 |
3 | import jp.co.soramitsu.core.models.Ecosystem
4 | import jp.co.soramitsu.runtime.multiNetwork.chain.model.Chain
5 |
6 | class TonEnvironmentConfigurator() : ChainEnvironmentConfigurator {
7 | override suspend fun configure(chain: Chain) {
8 | require(chain.ecosystem == Ecosystem.Ton)
9 |
10 | }
11 | }
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/runtime/ChainInfoNotInCacheException.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.runtime
2 |
3 | object ChainInfoNotInCacheException : Exception()
4 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/runtime/FileHash.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.runtime
2 |
3 | typealias FileHash = String
4 |
--------------------------------------------------------------------------------
/runtime/src/main/java/jp/co/soramitsu/runtime/multiNetwork/runtime/types/TypesFetcher.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.runtime.types
2 |
3 | import retrofit2.http.GET
4 | import retrofit2.http.Url
5 |
6 | interface TypesFetcher {
7 | @GET
8 | suspend fun getTypes(@Url url: String): String
9 | }
10 |
--------------------------------------------------------------------------------
/runtime/src/test/java/jp/co/soramitsu/runtime/multiNetwork/runtime/Mocks.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.runtime.multiNetwork.runtime
2 |
3 | import jp.co.soramitsu.runtime.multiNetwork.chain.model.Chain
4 | import jp.co.soramitsu.testshared.whenever
5 | import org.mockito.Mockito
6 |
7 | object Mocks {
8 | fun chain(id: String) : Chain {
9 | val chain = Mockito.mock(Chain::class.java)
10 |
11 | whenever(chain.id).thenReturn(id)
12 |
13 | return chain
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/test-shared/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/test-shared/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test-shared/src/main/java/jp/co/soramitsu/testshared/CreateTestSocket.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.testshared
2 |
3 | import com.google.gson.Gson
4 | import com.neovisionaries.ws.client.WebSocketFactory
5 | import jp.co.soramitsu.shared_utils.wsrpc.SocketService
6 | import jp.co.soramitsu.shared_utils.wsrpc.recovery.Reconnector
7 | import jp.co.soramitsu.shared_utils.wsrpc.request.CoroutinesRequestExecutor
8 |
9 | fun createTestSocket() = SocketService(Gson(), NoOpLogger, WebSocketFactory(), Reconnector(), CoroutinesRequestExecutor())
10 |
--------------------------------------------------------------------------------
/test-shared/src/main/java/jp/co/soramitsu/testshared/TestData.kt:
--------------------------------------------------------------------------------
1 | package jp.co.soramitsu.testshared
2 |
3 | object TestData
4 |
--------------------------------------------------------------------------------
/tests.gradle:
--------------------------------------------------------------------------------
1 | apply from: '../jacoco.gradle'
2 |
3 | afterEvaluate {
4 | task runModuleTests {
5 | Task runTestsTask
6 | if (project.tasks.findByName('testDevelopDebugUnitTest')) {
7 | runTestsTask = project.tasks.findByName('testDevelopDebugUnitTest')
8 | } else {
9 | runTestsTask = project.tasks.findByName('testDebugUnitTest')
10 | }
11 |
12 | dependsOn runTestsTask
13 |
14 | group "Verification"
15 | }
16 | }
--------------------------------------------------------------------------------