Updated on 2026-08-14
This commit is contained in:
parent
616d2df779
commit
358144ee61
6 changed files with 2022 additions and 0 deletions
45
README.md
Normal file
45
README.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# **How to build application**
|
||||
|
||||
# Project Build Documentation
|
||||
|
||||
## 1. Required Tools
|
||||
To build the project, you will need to have **Android Studio** version 2024.1.1 or higher. The embedded version of **Java** should be version **17** or higher.
|
||||
|
||||
### Steps:
|
||||
1. Install **Android Studio**
|
||||
- You can download the latest version from the [official Android Studio website](https://developer.android.com/studio).
|
||||
2. Setup JDK
|
||||
- In the Android Studio go to *Android Studio* option in top menu bar -> *Preferences* -> *Build, Execution,
|
||||
Deployment* -> *Build Tools* -> *Gradle*.
|
||||
- In *Gradle JDK* field check if you have JDK 17. If not, choose *Download JDK* in the drop down menu and choose **Amazon Coretto 17.0.14**
|
||||
(or any other version starts with 17).
|
||||
- Apply changes, press **Ok** and restart the Android Studio.
|
||||
|
||||
## 2. Required Dependencies
|
||||
To be able to use key dependencies, you need to be able to pull them from **GitHub Package Registry**.
|
||||
|
||||
### Steps:
|
||||
1. Go to [GitHub Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens).
|
||||
2. Click *Generate new token* -> *Generate new token (classic)* -> type any name for the token -> don’t change anything, just check the box `read:packages` -> press “Generate token” -> copy the generated token
|
||||
3. Open the `local.properties` file in the root project directory (or you can press **Command+Shift+O** and type “local.
|
||||
properties” to find the file) and add the following lines:
|
||||
```properties
|
||||
gpr.user=YOUR_GITHUB_USERNAME
|
||||
gpr.key=YOUR_GENERATED_TOKEN
|
||||
```
|
||||
- `YOUR_GITHUB_USERNAME` — your GitHub username
|
||||
- `YOUR_GENERATED_TOKEN` — the token you generated in the previous step.
|
||||
|
||||
## 3. Sync Gradle and Build the Project
|
||||
Once all the previous steps are completed, you need to sync your Gradle files and run the build.
|
||||
|
||||
### Steps:
|
||||
1. Checkout the **master** branch.
|
||||
2. Select **Build Variant** for the project as **googleExternal**.
|
||||
3. In Android Studio, go to the **File** menu and select **Sync Project with Gradle Files**.
|
||||
4. Once the sync is complete, you can build the project by selecting **Build → Make Project** or pressing **Ctrl+F9** (Windows/Linux) or **Cmd+F9** (macOS) or **Build → Build App Bundle(s) → Build APK(s)**.
|
||||
5. Ensure there are no errors in the **Build Output** and that the project is successfully built.
|
||||
|
||||
**Alternative:**
|
||||
Instead of steps 2–5, you can build the project from the command line:
|
||||
`./gradlew assembleGoogleExternal`
|
||||
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
|||
store_password=android
|
||||
key_alias=dummy
|
||||
key_password=android
|
||||
225
app/src/main/assets/tangem-app-config/config_dev.json
Normal file
225
app/src/main/assets/tangem-app-config/config_dev.json
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
{
|
||||
"amplitudeApiKey": "PLACEHOLDER",
|
||||
"amplitudeApiKeyDev": "PLACEHOLDER",
|
||||
"appsFlyer": {
|
||||
"appsFlyerDevKey": "PLACEHOLDER",
|
||||
"appsFlyerAppID": "PLACEHOLDER"
|
||||
},
|
||||
"blockchairApiKeys": [
|
||||
"PLACEHOLDER"
|
||||
],
|
||||
"blockchairAuthorizationToken": "PLACEHOLDER",
|
||||
"blockcypherTokens": [
|
||||
"PLACEHOLDER"
|
||||
],
|
||||
"bscQuiknodeApiKey": "PLACEHOLDER",
|
||||
"bscQuiknodeSubdomain": "PLACEHOLDER",
|
||||
"getBlockAccessTokens": {
|
||||
"avalanche": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ethereum": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ethereumClassic": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"fantom": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"rsk": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bsc": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"polygon": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"xdai": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"cronos": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"solana": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ton": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"tron": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"cosmos-hub": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"near": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"xrp": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"cardano": {
|
||||
"rosetta": "PLACEHOLDER"
|
||||
},
|
||||
"dogecoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"litecoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"dash": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bitcoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"aptos": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"algorand": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"polygon-zkevm": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"zksync": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"base": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"blast": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"filecoin": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"arbitrum-one": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bitcoinCash": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"kusama": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"moonbeam": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"optimism": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"polkadot": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"shibarium": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"sui": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"telos": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"tezos": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"monad": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"stellar": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"berachain": {
|
||||
"rest": "PLACEHOLDER"
|
||||
}
|
||||
},
|
||||
"kaspaSecondaryApiUrl": "PLACEHOLDER",
|
||||
"infuraProjectId": "PLACEHOLDER",
|
||||
"mercuryoSecret": "PLACEHOLDER",
|
||||
"mercuryoWidgetId": "PLACEHOLDER",
|
||||
"moonPayApiKey": "PLACEHOLDER",
|
||||
"moonPayApiSecretKey": "PLACEHOLDER",
|
||||
"nowNodesApiKey": "PLACEHOLDER",
|
||||
"tonCenterApiKey": {
|
||||
"mainnet": "PLACEHOLDER",
|
||||
"testnet": "PLACEHOLDER"
|
||||
},
|
||||
"quiknodeApiKey": "PLACEHOLDER",
|
||||
"quiknodeSubdomain": "PLACEHOLDER",
|
||||
"quiknodePlasmaApiKey": "PLACEHOLDER",
|
||||
"quiknodePlasmaSubdomain": "PLACEHOLDER",
|
||||
"quiknodeMonadApiKey": "PLACEHOLDER",
|
||||
"quiknodeMonadSubdomain": "PLACEHOLDER",
|
||||
"quiknodeStellarApiKey": "PLACEHOLDER",
|
||||
"quiknodeStellarSubdomain": "PLACEHOLDER",
|
||||
"quiknodeBerachainApiKey": "PLACEHOLDER",
|
||||
"quiknodeBerachainSubdomain": "PLACEHOLDER",
|
||||
"quiknodeXRPLApiKey": "PLACEHOLDER",
|
||||
"quiknodeXRPLSubdomain": "PLACEHOLDER",
|
||||
"quiknodeRobinhoodApiKey": "PLACEHOLDER",
|
||||
"quiknodeRobinhoodSubdomain": "PLACEHOLDER",
|
||||
"quiknodeHederaApiKey": "PLACEHOLDER",
|
||||
"quiknodeHederaSubdomain": "PLACEHOLDER",
|
||||
"tronGridApiKey": "PLACEHOLDER",
|
||||
"walletConnectProjectId": "PLACEHOLDER",
|
||||
"chiaFireAcademyApiKey": "PLACEHOLDER",
|
||||
"chiaTangemApiKey": "PLACEHOLDER",
|
||||
"express": {
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"signVerifierPublicKey": "PLACEHOLDER"
|
||||
},
|
||||
"devExpress": {
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"signVerifierPublicKey": "PLACEHOLDER"
|
||||
},
|
||||
"hederaArkhiaKey": "PLACEHOLDER",
|
||||
"polygonScanApiKey": "PLACEHOLDER",
|
||||
"koinosProApiKey": "PLACEHOLDER",
|
||||
"stakeKitApiKey": "PLACEHOLDER",
|
||||
"bittensorDwellirKey": "PLACEHOLDER",
|
||||
"dwellirApiKey": "PLACEHOLDER",
|
||||
"bittensorOnfinalityKey": "PLACEHOLDER",
|
||||
"alephiumTangemApiKey": "PLACEHOLDER",
|
||||
"moralisApiKey": "PLACEHOLDER",
|
||||
"blockaidApiKey": "PLACEHOLDER",
|
||||
"tangemApiKey": "PLACEHOLDER",
|
||||
"tangemApiKeyDev": "PLACEHOLDER",
|
||||
"tangemApiKeyStage": "PLACEHOLDER",
|
||||
"etherscanApiKey": "PLACEHOLDER",
|
||||
"yieldModuleApiKey": "PLACEHOLDER",
|
||||
"yieldModuleApiKeyDev": "PLACEHOLDER",
|
||||
"blinkApiKey": "PLACEHOLDER",
|
||||
"tatumApiKey": "PLACEHOLDER",
|
||||
"bffStaticToken": "PLACEHOLDER",
|
||||
"bffStaticTokenDev": "PLACEHOLDER",
|
||||
"p2pApiKey": {
|
||||
"mainnet": "PLACEHOLDER",
|
||||
"hoodi": "PLACEHOLDER"
|
||||
},
|
||||
"customerIO": {
|
||||
"androidApiKey": "PLACEHOLDER"
|
||||
},
|
||||
"surveySparrow": {
|
||||
"clientID": "PLACEHOLDER",
|
||||
"clientSecret": "PLACEHOLDER",
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"swapRating": {
|
||||
"surveyId": "PLACEHOLDER",
|
||||
"ratingQuestionId": "PLACEHOLDER",
|
||||
"feedbackQuestionId": "PLACEHOLDER"
|
||||
}
|
||||
},
|
||||
"gaslessTxApiKey": "PLACEHOLDER",
|
||||
"gaslessTxApiKeyDev": "PLACEHOLDER",
|
||||
"alchemyApiKey": "PLACEHOLDER",
|
||||
"authServiceKey": "PLACEHOLDER",
|
||||
"otplApiKey": "PLACEHOLDER"
|
||||
}
|
||||
225
app/src/main/assets/tangem-app-config/config_prod.json
Normal file
225
app/src/main/assets/tangem-app-config/config_prod.json
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
{
|
||||
"amplitudeApiKey": "PLACEHOLDER",
|
||||
"amplitudeApiKeyDev": "PLACEHOLDER",
|
||||
"appsFlyer": {
|
||||
"appsFlyerDevKey": "PLACEHOLDER",
|
||||
"appsFlyerAppID": "PLACEHOLDER"
|
||||
},
|
||||
"blockchairApiKeys": [
|
||||
"PLACEHOLDER"
|
||||
],
|
||||
"blockchairAuthorizationToken": "PLACEHOLDER",
|
||||
"blockcypherTokens": [
|
||||
"PLACEHOLDER"
|
||||
],
|
||||
"bscQuiknodeApiKey": "PLACEHOLDER",
|
||||
"bscQuiknodeSubdomain": "PLACEHOLDER",
|
||||
"getBlockAccessTokens": {
|
||||
"avalanche": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ethereum": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ethereumClassic": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"fantom": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"rsk": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bsc": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"polygon": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"xdai": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"cronos": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"solana": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"ton": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"tron": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"cosmos-hub": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"near": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"xrp": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"cardano": {
|
||||
"rosetta": "PLACEHOLDER"
|
||||
},
|
||||
"dogecoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"litecoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"dash": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bitcoin": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"aptos": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"algorand": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"polygon-zkevm": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"zksync": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"base": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"blast": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"filecoin": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"arbitrum-one": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"bitcoinCash": {
|
||||
"blockBookRest": "PLACEHOLDER",
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"kusama": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"moonbeam": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"optimism": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"polkadot": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"shibarium": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"sui": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"telos": {
|
||||
"jsonRpc": "PLACEHOLDER"
|
||||
},
|
||||
"tezos": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"monad": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"stellar": {
|
||||
"rest": "PLACEHOLDER"
|
||||
},
|
||||
"berachain": {
|
||||
"rest": "PLACEHOLDER"
|
||||
}
|
||||
},
|
||||
"kaspaSecondaryApiUrl": "PLACEHOLDER",
|
||||
"infuraProjectId": "PLACEHOLDER",
|
||||
"mercuryoSecret": "PLACEHOLDER",
|
||||
"mercuryoWidgetId": "PLACEHOLDER",
|
||||
"moonPayApiKey": "PLACEHOLDER",
|
||||
"moonPayApiSecretKey": "PLACEHOLDER",
|
||||
"nowNodesApiKey": "PLACEHOLDER",
|
||||
"tonCenterApiKey": {
|
||||
"mainnet": "PLACEHOLDER",
|
||||
"testnet": "PLACEHOLDER"
|
||||
},
|
||||
"quiknodeApiKey": "PLACEHOLDER",
|
||||
"quiknodeSubdomain": "PLACEHOLDER",
|
||||
"quiknodePlasmaApiKey": "PLACEHOLDER",
|
||||
"quiknodePlasmaSubdomain": "PLACEHOLDER",
|
||||
"quiknodeMonadApiKey": "PLACEHOLDER",
|
||||
"quiknodeMonadSubdomain": "PLACEHOLDER",
|
||||
"quiknodeStellarApiKey": "PLACEHOLDER",
|
||||
"quiknodeStellarSubdomain": "PLACEHOLDER",
|
||||
"quiknodeBerachainApiKey": "PLACEHOLDER",
|
||||
"quiknodeBerachainSubdomain": "PLACEHOLDER",
|
||||
"quiknodeXRPLApiKey": "PLACEHOLDER",
|
||||
"quiknodeXRPLSubdomain": "PLACEHOLDER",
|
||||
"quiknodeRobinhoodApiKey": "PLACEHOLDER",
|
||||
"quiknodeRobinhoodSubdomain": "PLACEHOLDER",
|
||||
"quiknodeHederaApiKey": "PLACEHOLDER",
|
||||
"quiknodeHederaSubdomain": "PLACEHOLDER",
|
||||
"tronGridApiKey": "PLACEHOLDER",
|
||||
"walletConnectProjectId": "PLACEHOLDER",
|
||||
"chiaFireAcademyApiKey": "PLACEHOLDER",
|
||||
"chiaTangemApiKey": "PLACEHOLDER",
|
||||
"express": {
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"signVerifierPublicKey": "PLACEHOLDER"
|
||||
},
|
||||
"devExpress": {
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"signVerifierPublicKey": "PLACEHOLDER"
|
||||
},
|
||||
"hederaArkhiaKey": "PLACEHOLDER",
|
||||
"polygonScanApiKey": "PLACEHOLDER",
|
||||
"koinosProApiKey": "PLACEHOLDER",
|
||||
"stakeKitApiKey": "PLACEHOLDER",
|
||||
"bittensorDwellirKey": "PLACEHOLDER",
|
||||
"dwellirApiKey": "PLACEHOLDER",
|
||||
"bittensorOnfinalityKey": "PLACEHOLDER",
|
||||
"alephiumTangemApiKey": "PLACEHOLDER",
|
||||
"moralisApiKey": "PLACEHOLDER",
|
||||
"blockaidApiKey": "PLACEHOLDER",
|
||||
"tangemApiKey": "PLACEHOLDER",
|
||||
"tangemApiKeyDev": "PLACEHOLDER",
|
||||
"tangemApiKeyStage": "PLACEHOLDER",
|
||||
"etherscanApiKey": "PLACEHOLDER",
|
||||
"yieldModuleApiKey": "PLACEHOLDER",
|
||||
"yieldModuleApiKeyDev": "PLACEHOLDER",
|
||||
"blinkApiKey": "PLACEHOLDER",
|
||||
"tatumApiKey": "PLACEHOLDER",
|
||||
"bffStaticToken": "PLACEHOLDER",
|
||||
"bffStaticTokenDev": "PLACEHOLDER",
|
||||
"p2pApiKey": {
|
||||
"mainnet": "PLACEHOLDER",
|
||||
"hoodi": "PLACEHOLDER"
|
||||
},
|
||||
"customerIO": {
|
||||
"androidApiKey": "PLACEHOLDER"
|
||||
},
|
||||
"surveySparrow": {
|
||||
"clientID": "PLACEHOLDER",
|
||||
"clientSecret": "PLACEHOLDER",
|
||||
"apiKey": "PLACEHOLDER",
|
||||
"swapRating": {
|
||||
"surveyId": "PLACEHOLDER",
|
||||
"ratingQuestionId": "PLACEHOLDER",
|
||||
"feedbackQuestionId": "PLACEHOLDER"
|
||||
}
|
||||
},
|
||||
"gaslessTxApiKey": "PLACEHOLDER",
|
||||
"gaslessTxApiKeyDev": "PLACEHOLDER",
|
||||
"alchemyApiKey": "PLACEHOLDER",
|
||||
"authServiceKey": "PLACEHOLDER",
|
||||
"otplApiKey": "PLACEHOLDER"
|
||||
}
|
||||
1524
app/src/main/assets/tangem-app-config/providers_order.json
Normal file
1524
app/src/main/assets/tangem-app-config/providers_order.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue