Add options to chains.yaml (#185)

* Add options to chains.yaml
This commit is contained in:
KirillPamPam
2023-03-27 15:26:08 +04:00
committed by GitHub
parent 67ca1b85ea
commit eac5a4ccf8
7 changed files with 76 additions and 30 deletions

View File

@@ -17,11 +17,14 @@
package io.emeraldpay.dshackle.config
import io.emeraldpay.dshackle.Chain
import io.emeraldpay.dshackle.FileResolver
import spock.lang.Specification
class ChainsConfigReaderSpec extends Specification {
ChainsConfigReader reader = new ChainsConfigReader()
ChainsConfigReader reader = new ChainsConfigReader(
new UpstreamsConfigReader(Stub(FileResolver))
)
def "Parse standard config"() {
setup:
@@ -41,6 +44,7 @@ class ChainsConfigReaderSpec extends Specification {
opt.laggingLagSize == 3
opt.syncingLagSize == 20
opt.options.validatePeers == false
sep.laggingLagSize == 1
sep.syncingLagSize == 10

View File

@@ -10,20 +10,20 @@ internal class ChainsConfigTest {
fun patch() {
val orig = ChainsConfig(
mapOf(
Chain.BITCOIN to ChainsConfig.RawChainConfig(0, 0),
Chain.ETHEREUM to ChainsConfig.RawChainConfig(1, 2),
Chain.POLYGON to ChainsConfig.RawChainConfig(3, 4)
Chain.BITCOIN to createRawChainConfig(0, 0),
Chain.ETHEREUM to createRawChainConfig(1, 2),
Chain.POLYGON to createRawChainConfig(3, 4)
),
ChainsConfig.RawChainConfig(1, 2)
createRawChainConfig(1, 2)
)
val patch = ChainsConfig(
mapOf(
Chain.BITCOIN to ChainsConfig.RawChainConfig(null, 10000),
Chain.POLYGON to ChainsConfig.RawChainConfig(10, 11),
Chain.ARBITRUM to ChainsConfig.RawChainConfig(999, 999)
Chain.BITCOIN to createRawChainConfig(null, 10000),
Chain.POLYGON to createRawChainConfig(10, 11),
Chain.ARBITRUM to createRawChainConfig(999, 999)
),
ChainsConfig.RawChainConfig(100, null)
createRawChainConfig(100, null)
)
val res = orig.patch(patch)
@@ -31,14 +31,21 @@ internal class ChainsConfigTest {
assertEquals(
ChainsConfig(
mapOf(
Chain.BITCOIN to ChainsConfig.RawChainConfig(0, 10000),
Chain.ETHEREUM to ChainsConfig.RawChainConfig(1, 2),
Chain.POLYGON to ChainsConfig.RawChainConfig(10, 11),
Chain.ARBITRUM to ChainsConfig.RawChainConfig(999, 999)
Chain.BITCOIN to createRawChainConfig(0, 10000),
Chain.ETHEREUM to createRawChainConfig(1, 2),
Chain.POLYGON to createRawChainConfig(10, 11),
Chain.ARBITRUM to createRawChainConfig(999, 999)
),
ChainsConfig.RawChainConfig(100, 2)
createRawChainConfig(100, 2)
),
res
)
}
private fun createRawChainConfig(syncingLagSize: Int?, laggingLagSize: Int?) =
ChainsConfig.RawChainConfig()
.apply {
this.syncingLagSize = syncingLagSize
this.laggingLagSize = laggingLagSize
}
}