mirror of
https://github.com/Instadapp/chains.git
synced 2024-07-29 22:37:19 +00:00
Fail CI on extra comma
This commit is contained in:
parent
0532b7cc3b
commit
87d90de9f4
|
@ -2,6 +2,9 @@ package org.ethereum.lists.chains
|
|||
|
||||
import com.beust.klaxon.JsonObject
|
||||
import com.beust.klaxon.Klaxon
|
||||
import com.squareup.moshi.Moshi
|
||||
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
|
||||
import org.ethereum.lists.chains.model.Chain
|
||||
import org.kethereum.erc55.isValid
|
||||
import org.kethereum.model.Address
|
||||
import org.kethereum.rpc.HttpEthereumRPC
|
||||
|
@ -36,6 +39,9 @@ class ENSRegistryAddressMustBeValid: Exception("ens registry must have valid add
|
|||
|
||||
fun checkChain(it: File, connectRPC: Boolean) {
|
||||
println("processing $it")
|
||||
|
||||
parseWithMoshi(it)
|
||||
|
||||
val jsonObject = Klaxon().parseJsonObject(it.reader())
|
||||
val chainAsLong = getNumber(jsonObject, "chainId")
|
||||
|
||||
|
@ -93,6 +99,15 @@ fun checkChain(it: File, connectRPC: Boolean) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
moshi fails for extra commas
|
||||
https://github.com/ethereum-lists/chains/issues/126
|
||||
*/
|
||||
private fun parseWithMoshi(fileToParse: File) {
|
||||
val moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build()
|
||||
moshi.adapter(Chain::class.java).fromJson(fileToParse.readText())
|
||||
}
|
||||
|
||||
private fun getNumber(jsonObject: JsonObject, field: String): Long {
|
||||
return when (val chainId = jsonObject[field]) {
|
||||
is Int -> chainId.toLong()
|
||||
|
|
13
src/main/kotlin/org/ethereum/lists/chains/model/Chain.kt
Normal file
13
src/main/kotlin/org/ethereum/lists/chains/model/Chain.kt
Normal file
|
@ -0,0 +1,13 @@
|
|||
package org.ethereum.lists.chains.model
|
||||
|
||||
data class Chain(
|
||||
val name: String,
|
||||
val shortName: String,
|
||||
val chain: String,
|
||||
val network: String,
|
||||
val chainId: Long,
|
||||
val networkId: Long,
|
||||
val rpc: List<String>,
|
||||
val faucets: List<String>,
|
||||
val infoURL: String,
|
||||
)
|
|
@ -1,3 +1,4 @@
|
|||
import com.squareup.moshi.JsonEncodingException
|
||||
import org.ethereum.lists.chains.*
|
||||
import org.junit.Test
|
||||
import java.io.File
|
||||
|
@ -69,12 +70,19 @@ class TheChainChecker {
|
|||
}
|
||||
|
||||
@Test(expected = ExtensionMustBeJSON::class)
|
||||
fun shouldFailFoNonJSON() {
|
||||
fun shouldFailForNonJSON() {
|
||||
val file = getFile("invalid/1.nojson")
|
||||
|
||||
checkChain(file, false)
|
||||
}
|
||||
|
||||
@Test(expected = JsonEncodingException::class)
|
||||
fun shouldFailForExtraComma() {
|
||||
val file = getFile("invalid/extracomma.json")
|
||||
|
||||
checkChain(file, false)
|
||||
}
|
||||
|
||||
|
||||
private fun getFile(s: String) = File(javaClass.classLoader.getResource("test_chains/$s").file)
|
||||
|
||||
|
|
|
@ -9,5 +9,6 @@
|
|||
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://api.mycryptoapi.com/eth"
|
||||
],
|
||||
"faucets": []
|
||||
"faucets": [],
|
||||
"infoURL": "https://ethereum.org"
|
||||
}
|
||||
|
|
14
src/test/resources/test_chains/invalid/extracomma.json
Normal file
14
src/test/resources/test_chains/invalid/extracomma.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "Ethereum Mainnet",
|
||||
"shortName": "eth",
|
||||
"chain": "ETH",
|
||||
"network": "mainnet",
|
||||
"chainId": 1,
|
||||
"networkId": 1,
|
||||
"rpc": [
|
||||
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://api.mycryptoapi.com/eth"
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://ethereum.org",
|
||||
}
|
Loading…
Reference in New Issue
Block a user