From 90e473f07bdabec23543257dd397efc1b7f3b951 Mon Sep 17 00:00:00 2001 From: ahsan-javaiid Date: Fri, 22 Sep 2023 17:37:53 +0500 Subject: [PATCH] feat: add rootstock network --- .../horizontalsystems/ethereumkit/sample/Configuration.kt | 3 +++ .../sample/modules/addresswatch/AddressWatchViewModel.kt | 4 ++++ .../java/io/horizontalsystems/ethereumkit/models/Chain.kt | 1 + .../io/horizontalsystems/ethereumkit/models/RpcSource.kt | 4 ++++ .../ethereumkit/models/TransactionSource.kt | 7 +++++++ 5 files changed, 19 insertions(+) diff --git a/app/src/main/java/io/horizontalsystems/ethereumkit/sample/Configuration.kt b/app/src/main/java/io/horizontalsystems/ethereumkit/sample/Configuration.kt index a6c4913f..17e648eb 100644 --- a/app/src/main/java/io/horizontalsystems/ethereumkit/sample/Configuration.kt +++ b/app/src/main/java/io/horizontalsystems/ethereumkit/sample/Configuration.kt @@ -32,6 +32,9 @@ object Configuration { Erc20Token("USDT", "USDT", Address("0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"), 6), Erc20Token("Uniswap", "UNI", Address("0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0"), 18), ) + Chain.Rootstock -> listOf( + Erc20Token("RIF", "RIF", Address("0x2acc95758f8b5f583470ba265eb685a8f45fc9d5"), 18), + ) Chain.BinanceSmartChain -> listOf( Erc20Token("Beefy.Finance", "BIFI", Address("0xCa3F508B8e4Dd382eE878A314789373D80A5190A"), 18), Erc20Token("PancakeSwap", "CAKE", Address("0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82"), 18), diff --git a/app/src/main/java/io/horizontalsystems/ethereumkit/sample/modules/addresswatch/AddressWatchViewModel.kt b/app/src/main/java/io/horizontalsystems/ethereumkit/sample/modules/addresswatch/AddressWatchViewModel.kt index 8243fe7e..552c8f36 100644 --- a/app/src/main/java/io/horizontalsystems/ethereumkit/sample/modules/addresswatch/AddressWatchViewModel.kt +++ b/app/src/main/java/io/horizontalsystems/ethereumkit/sample/modules/addresswatch/AddressWatchViewModel.kt @@ -131,6 +131,10 @@ class AddressWatchViewModel : ViewModel() { transactionSource = TransactionSource.bscscan(Configuration.bscScanKey) rpcSource = RpcSource.binanceSmartChainHttp() } + Chain.Rootstock -> { + transactionSource = TransactionSource.rootstock() + rpcSource = RpcSource.rootstockRpcHttp() + } Chain.Ethereum -> { transactionSource = TransactionSource.ethereumEtherscan(Configuration.etherscanKey) rpcSource = if (Configuration.webSocket) diff --git a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/Chain.kt b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/Chain.kt index f083aca0..ed7615fa 100644 --- a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/Chain.kt +++ b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/Chain.kt @@ -15,6 +15,7 @@ enum class Chain( Avalanche(43114, 60, 10_000_000, 15, true), Gnosis(100, 60, 10_000_000, 15, true), Fantom(250, 60, 10_000_000, 15, false), + Rootstock(30, 137, 10_000_000, 15, false), EthereumGoerli(5, 1, 10_000_000, 15, true); val isMainNet = coinType != 1 diff --git a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/RpcSource.kt b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/RpcSource.kt index e1ac4b32..7ced97bc 100644 --- a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/RpcSource.kt +++ b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/RpcSource.kt @@ -80,5 +80,9 @@ sealed class RpcSource() { return Http(listOf(URI("https://rpc.fantom.network")), null) } + fun rootstockRpcHttp(): Http { + return Http(listOf(URL("https://public-node.rsk.co")), null) + } + } } diff --git a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/TransactionSource.kt b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/TransactionSource.kt index 49447302..8606fe89 100644 --- a/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/TransactionSource.kt +++ b/ethereumkit/src/main/java/io/horizontalsystems/ethereumkit/models/TransactionSource.kt @@ -76,6 +76,13 @@ class TransactionSource(val name: String, val type: SourceType) { ) } + fun rootstock(): TransactionSource { + return TransactionSource( + "blockscout.com", + SourceType.Etherscan("https://rootstock.blockscout.com", "https://rootstock.blockscout.com/api", "") + ) + } + } }