problem: service may miss available chain if initialized after
This commit is contained in:
@@ -19,12 +19,18 @@ class AvailableChains(
|
||||
private val callTargets = HashMap<Chain, EthereumTargets>()
|
||||
|
||||
fun add(chain: Chain) {
|
||||
if (all.contains(chain)) {
|
||||
return
|
||||
}
|
||||
all.add(chain)
|
||||
bus.onNext(chain)
|
||||
}
|
||||
|
||||
fun observe(): Flux<Chain> {
|
||||
return Flux.from(bus)
|
||||
return Flux.merge(
|
||||
Flux.fromIterable(all),
|
||||
Flux.from(bus)
|
||||
)
|
||||
}
|
||||
|
||||
fun supports(chain: Chain): Boolean {
|
||||
|
||||
@@ -159,9 +159,9 @@ open class ConfiguredUpstreams(
|
||||
override fun getOrCreateUpstream(chain: Chain): ChainUpstreams {
|
||||
val current = chainMapping[chain]
|
||||
if (current == null) {
|
||||
availableChains.add(chain)
|
||||
val created = ChainUpstreams(chain, ArrayList<Upstream>(), availableChains.targetFor(chain))
|
||||
chainMapping[chain] = created
|
||||
availableChains.add(chain)
|
||||
return created
|
||||
}
|
||||
return current
|
||||
|
||||
Reference in New Issue
Block a user