generic upstreams introduced (#317)
- added base implementation of upstreams/multistreams - connectors were generalised, chain specific logic was extracted to ChainSpecific class - StarkNet network support based on generic upstreams added
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package io.emeraldpay.dshackle.config
|
||||
|
||||
import io.emeraldpay.dshackle.foundation.ChainOptions
|
||||
import java.math.BigInteger
|
||||
import java.time.Duration
|
||||
|
||||
data class ChainsConfig(private val chains: List<ChainConfig>) : Iterable<ChainsConfig.ChainConfig> {
|
||||
@@ -22,7 +23,7 @@ data class ChainsConfig(private val chains: List<ChainConfig>) : Iterable<Chains
|
||||
val laggingLagSize: Int,
|
||||
val options: ChainOptions.PartialOptions,
|
||||
val chainId: String,
|
||||
val netVersion: Long,
|
||||
val netVersion: BigInteger,
|
||||
val grpcId: Int,
|
||||
val code: String,
|
||||
val shortNames: List<String>,
|
||||
@@ -38,7 +39,7 @@ data class ChainsConfig(private val chains: List<ChainConfig>) : Iterable<Chains
|
||||
1,
|
||||
ChainOptions.PartialOptions(),
|
||||
"0x0",
|
||||
0,
|
||||
BigInteger.ZERO,
|
||||
0,
|
||||
"UNKNOWN",
|
||||
emptyList(),
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.yaml.snakeyaml.nodes.MappingNode
|
||||
import org.yaml.snakeyaml.nodes.NodeTuple
|
||||
import org.yaml.snakeyaml.nodes.ScalarNode
|
||||
import org.yaml.snakeyaml.nodes.Tag
|
||||
import java.math.BigInteger
|
||||
|
||||
class ChainsConfigReader(
|
||||
private val chainsOptionsReader: ChainOptionsReader,
|
||||
@@ -74,7 +75,7 @@ class ChainsConfigReader(
|
||||
?: throw IllegalArgumentException("undefined code for $blockchain")
|
||||
val grpcId = getValueAsInt(node, "grpcId")
|
||||
?: throw IllegalArgumentException("undefined code for $blockchain")
|
||||
val netVersion = getValueAsLong(node, "net-version") ?: chainId.drop(2).toLong(radix = 16)
|
||||
val netVersion = getValueAsLong(node, "net-version")?.toBigInteger() ?: BigInteger(chainId.drop(2), 16)
|
||||
val shortNames = getListOfString(node, "short-names")
|
||||
?: throw IllegalArgumentException("undefined shortnames for $blockchain")
|
||||
return ChainsConfig.ChainConfig(
|
||||
|
||||
@@ -551,3 +551,30 @@ chain-settings:
|
||||
short-names: [kava-testnet]
|
||||
chain-id: 0x8ad
|
||||
grpcId: 10033
|
||||
- id: starknet
|
||||
label: StarkNet
|
||||
settings:
|
||||
currency: ETH
|
||||
expected-block-time: 20s
|
||||
lags:
|
||||
syncing: 5
|
||||
lagging: 1
|
||||
chains:
|
||||
- id: Mainnet
|
||||
priority: 100
|
||||
code: STARKNET_MAINNET
|
||||
short-names: [starknet]
|
||||
chain-id: 0x534e5f4d41494e
|
||||
grpcId: 1014
|
||||
- id: Testnet
|
||||
priority: 2
|
||||
code: STARKNET_TESTNET
|
||||
short-names: [starknet-testnet]
|
||||
chain-id: 0x534e5f474f45524c49
|
||||
grpcId: 10019
|
||||
- id: Testnet 2
|
||||
priority: 1
|
||||
code: STARKNET_TESTNET2
|
||||
short-names: [starknet-testnet2]
|
||||
chain-id: 0x534e5f474f45524c4932
|
||||
grpcId: 10020
|
||||
|
||||
Reference in New Issue
Block a user