Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix base rpc url; inform about possible tx failure #1983

Merged
merged 5 commits into from
Aug 24, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Adjust chain base rpc url
elgatovital committed Aug 24, 2023
commit 38a12a580fff18d9fc3ddf92fbdc7ca2e43c691d
Original file line number Diff line number Diff line change
@@ -150,7 +150,8 @@ class ApplicationModule(private val application: Application) {
@Named(InterceptorsModule.REST_CLIENT_INTERCEPTORS) interceptors: @JvmSuppressWildcards List<Interceptor>
): OkHttpClient =
okHttpClient.newBuilder().apply {
interceptors.forEach {
// omit api key interceptor
interceptors.subList(1, interceptors.size).forEach {
addInterceptor(it)
}
}.build()
3 changes: 2 additions & 1 deletion data/src/main/java/io/gnosis/data/backend/rpc/RpcClient.kt
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ import io.gnosis.contracts.GnosisSafe_v1_3_0
import io.gnosis.data.backend.rpc.models.EstimationParams
import io.gnosis.data.models.Chain
import io.gnosis.data.models.Safe
import io.gnosis.data.models.baseRpcUrl
import io.gnosis.data.models.transaction.DetailedExecutionInfo
import io.gnosis.data.models.transaction.TxData
import io.gnosis.data.utils.SemVer
@@ -38,7 +39,7 @@ class RpcClient(
) {

fun updateRpcUrl(chain: Chain) {
ethereumRepository.rpcUrl = chain.rpcUri
ethereumRepository.rpcUrl = chain.baseRpcUrl()
}

suspend fun gasPrice(): BigInteger? {
15 changes: 14 additions & 1 deletion data/src/main/java/io/gnosis/data/models/Chain.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package io.gnosis.data.models

import androidx.room.*
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Ignore
import androidx.room.PrimaryKey
import io.gnosis.data.BuildConfig
import io.gnosis.data.models.Chain.Companion.TABLE_NAME
import pm.gnosis.utils.nullOnThrow
import java.io.Serializable
import java.math.BigInteger
import java.net.URI

@Entity(tableName = TABLE_NAME)
data class Chain(
@@ -140,3 +145,11 @@ data class Chain(
}
}
}

fun Chain.baseRpcUrl(): String {
return if (rpcAuthentication == RpcAuthentication.API_KEY_PATH) {
URI.create(rpcUri).resolve(BuildConfig.INFURA_API_KEY).toString()
} else {
rpcUri
}
}
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@ package io.gnosis.data.repositories

import io.gnosis.contracts.BuildConfig
import io.gnosis.data.models.Chain
import io.gnosis.data.models.baseRpcUrl
import pm.gnosis.crypto.utils.Sha3Utils
import pm.gnosis.ethereum.Block
import pm.gnosis.ethereum.EthCall
@@ -24,7 +25,7 @@ class EnsRepository(

suspend fun resolve(url: String, chain: Chain): Solidity.Address {

ethereumRepository.rpcUrl = chain.rpcUri
ethereumRepository.rpcUrl = chain.baseRpcUrl()

val node = ensNormalizer.normalize(url).nameHash()

Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
package io.gnosis.data.repositories

import io.gnosis.data.models.Chain
import io.mockk.*
import io.mockk.Called
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.coVerifySequence
import io.mockk.every
import io.mockk.just
import io.mockk.mockk
import kotlinx.coroutines.runBlocking
import org.junit.Assert.assertTrue
import org.junit.Before