mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-android.git
synced 2026-07-22 13:45:48 +00:00
feat: send TronGrid API key on every request to raise the anonymous rate limit
Complements the retryOn429 fix - having a key means requests are far less likely to hit the rate limit at all, rather than just retrying transparently after they do. Wired the same way as INFURA_API_KEY/DWELLIR_API_KEY: buildConfigField read from local.properties or CI secret, added TRONGRID_API_KEY to android_build.yml's secret passthrough (every caller already uses secrets: inherit, so no per-workflow changes needed beyond this).
This commit is contained in:
@@ -62,6 +62,9 @@ on:
|
||||
# RPC provider - use own nodes or Dwellir
|
||||
DWELLIR_API_KEY:
|
||||
required: false
|
||||
# Tron - raises TronGrid's aggressive anonymous rate limit
|
||||
TRONGRID_API_KEY:
|
||||
required: false
|
||||
# WalletConnect - REQUIRED for dApp connections
|
||||
WALLET_CONNECT_PROJECT_ID:
|
||||
required: true
|
||||
@@ -111,6 +114,7 @@ env:
|
||||
EHTERSCAN_API_KEY_ETHEREUM: ${{ secrets.EHTERSCAN_API_KEY_ETHEREUM }}
|
||||
INFURA_API_KEY: ${{ secrets.INFURA_API_KEY }}
|
||||
DWELLIR_API_KEY: ${{ secrets.DWELLIR_API_KEY }}
|
||||
TRONGRID_API_KEY: ${{ secrets.TRONGRID_API_KEY }}
|
||||
WALLET_CONNECT_PROJECT_ID: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
|
||||
DEBUG_GOOGLE_OAUTH_ID: ${{ secrets.DEBUG_GOOGLE_OAUTH_ID }}
|
||||
RELEASE_GOOGLE_OAUTH_ID: ${{ secrets.RELEASE_GOOGLE_OAUTH_ID }}
|
||||
|
||||
+14
-7
@@ -11,39 +11,46 @@ import io.novafoundation.nova.feature_wallet_impl.data.network.tron.model.TronCr
|
||||
import io.novafoundation.nova.feature_wallet_impl.data.network.tron.model.TronTriggerContractRequest
|
||||
import io.novafoundation.nova.feature_wallet_impl.data.network.tron.model.TronTriggerContractResponse
|
||||
import io.novafoundation.nova.feature_wallet_impl.data.network.tron.model.TronUnsignedTransactionResponse
|
||||
import io.novafoundation.nova.runtime.BuildConfig
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Headers
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Url
|
||||
|
||||
// TronGrid's anonymous rate limit is aggressive enough to surface under normal, human-paced app usage (see
|
||||
// RealTronGridApi.retryOn429's doc comment) - a free API key from trongrid.io raises it substantially. Sent on
|
||||
// every request rather than only when a 429 is hit, since the point is to avoid needing the retry in the first
|
||||
// place, not just to have a fallback.
|
||||
private const val TRON_API_KEY_HEADER = "TRON-PRO-API-KEY: " + BuildConfig.TRONGRID_API_KEY
|
||||
|
||||
interface RetrofitTronGridApi {
|
||||
|
||||
@GET
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun getAccount(@Url url: String): TronAccountResponse
|
||||
|
||||
@POST
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun createTransaction(@Url url: String, @Body body: TronCreateTransactionRequest): TronUnsignedTransactionResponse
|
||||
|
||||
@POST
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun triggerConstantContract(@Url url: String, @Body body: TronTriggerContractRequest): TronTriggerContractResponse
|
||||
|
||||
@POST
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun triggerSmartContract(@Url url: String, @Body body: TronTriggerContractRequest): TronTriggerContractResponse
|
||||
|
||||
@POST
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun broadcastTransaction(@Url url: String, @Body body: TronBroadcastRequest): TronBroadcastResponse
|
||||
|
||||
@GET
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun getChainParameters(@Url url: String): TronChainParametersResponse
|
||||
|
||||
@POST
|
||||
@Headers(UserAgent.NOVA)
|
||||
@Headers(UserAgent.NOVA, TRON_API_KEY_HEADER)
|
||||
suspend fun getAccountResource(@Url url: String, @Body body: TronAddressRequest): TronAccountResourceResponse
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ android {
|
||||
|
||||
buildConfigField "String", "INFURA_API_KEY", readStringSecret("INFURA_API_KEY")
|
||||
buildConfigField "String", "DWELLIR_API_KEY", readStringSecret("DWELLIR_API_KEY")
|
||||
buildConfigField "String", "TRONGRID_API_KEY", readStringSecret("TRONGRID_API_KEY")
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
Reference in New Issue
Block a user