From 2e28ceb46740ec6e8f55beced4fa50d63dbad368 Mon Sep 17 00:00:00 2001 From: Zombieliu <50917820+Zombieliu@users.noreply.github.com> Date: Fri, 26 Mar 2021 17:27:58 +0800 Subject: [PATCH 01/29] add id 102 for SGC testnet (#199) --- _data/chains/eip155-102.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 _data/chains/eip155-102.json diff --git a/_data/chains/eip155-102.json b/_data/chains/eip155-102.json new file mode 100644 index 00000000..3ed8b75d --- /dev/null +++ b/_data/chains/eip155-102.json @@ -0,0 +1,16 @@ +{ + "name": "SGC Testnet", + "chain": "SGC", + "network": "SGC testnet", + "rpc": ["https://substrate.org.cn"], + "faucets": [], + "nativeCurrency": { + "name": "SGC", + "symbol": "SGC", + "decimals": 18 + }, + "infoURL": "https://web3games.blockspaper.com/en/", + "shortName": "sgc", + "chainId": 102, + "networkId": 102 +} \ No newline at end of file From 4921109ad71a4ed542d0a1769cde6fb1dfa42971 Mon Sep 17 00:00:00 2001 From: ligi Date: Fri, 26 Mar 2021 11:51:40 +0100 Subject: [PATCH 02/29] Add https://networklist-org.vercel.app --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 804db61b..2f9bfa91 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Data source available on `_data/chains.json` ## Usages - * [chainlist.org](https://chainlist.org) + * [chainlist.org](https://chainlist.org) or [networklist-org.vercel.app](https://networklist-org.vercel.app) as a staging version with a more up-to-date list * [chainid.network](https://chainid.network) * [WallETH](https://walleth.org) * [TREZOR](https://trezor.io) From 1034c3761aa09a407492ee55d94dec18f8c27c97 Mon Sep 17 00:00:00 2001 From: Hging Date: Thu, 1 Apr 2021 16:02:27 +0800 Subject: [PATCH 03/29] update rpc and infoURL (#201) --- _data/chains/eip155-1139.json | 2 +- _data/chains/eip155-1140.json | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/_data/chains/eip155-1139.json b/_data/chains/eip155-1139.json index c558969b..2dcea8e9 100644 --- a/_data/chains/eip155-1139.json +++ b/_data/chains/eip155-1139.json @@ -9,7 +9,7 @@ "symbol": "MATH", "decimals": 18 }, - "infoURL": "https://mathwallet.org", + "infoURL": "https://mathchain.org", "shortName": "MATH", "chainId": 1139, "networkId": 1139 diff --git a/_data/chains/eip155-1140.json b/_data/chains/eip155-1140.json index bd8be432..fc15213f 100644 --- a/_data/chains/eip155-1140.json +++ b/_data/chains/eip155-1140.json @@ -2,14 +2,18 @@ "name": "MathChain Testnet", "chain": "MATH", "network": "testnet", - "rpc": [], - "faucets": [], + "rpc": [ + "https://galois-hk.maiziqianbao.net/rpc" + ], + "faucets": [ + "https://scan.boka.network/#/Galois/faucet" + ], "nativeCurrency": { "name": "MathChain", "symbol": "MATH", "decimals": 18 }, - "infoURL": "https://mathwallet.org/", + "infoURL": "https://mathchain.org", "shortName": "tMATH", "chainId": 1140, "networkId": 1140 From 933a5537dc9635a1dfdaf8fb34b6405fbf3ecdf6 Mon Sep 17 00:00:00 2001 From: a00a63 <81436996+a00a63@users.noreply.github.com> Date: Fri, 2 Apr 2021 17:17:59 +0200 Subject: [PATCH 04/29] Update Harmony Mainnet RPC URLs (#204) --- _data/chains/eip155-1666600000.json | 2 +- _data/chains/eip155-1666600001.json | 2 +- _data/chains/eip155-1666600002.json | 2 +- _data/chains/eip155-1666600003.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_data/chains/eip155-1666600000.json b/_data/chains/eip155-1666600000.json index 01b727eb..c3804555 100644 --- a/_data/chains/eip155-1666600000.json +++ b/_data/chains/eip155-1666600000.json @@ -3,7 +3,7 @@ "chain": "Harmony", "network": "mainnet", "rpc": [ - "https://rpc.s0.t.hmny.io" + "https://api.harmony.one" ], "faucets": [ ], diff --git a/_data/chains/eip155-1666600001.json b/_data/chains/eip155-1666600001.json index 8caa1872..0a1bedaa 100644 --- a/_data/chains/eip155-1666600001.json +++ b/_data/chains/eip155-1666600001.json @@ -3,7 +3,7 @@ "chain": "Harmony", "network": "mainnet", "rpc": [ - "https://rpc.s1.t.hmny.io" + "https://s1.api.harmony.one" ], "faucets": [ ], diff --git a/_data/chains/eip155-1666600002.json b/_data/chains/eip155-1666600002.json index e21f9021..e1f9aec0 100644 --- a/_data/chains/eip155-1666600002.json +++ b/_data/chains/eip155-1666600002.json @@ -3,7 +3,7 @@ "chain": "Harmony", "network": "mainnet", "rpc": [ - "https://rpc.s2.t.hmny.io" + "https://s2.api.harmony.one" ], "faucets": [ ], diff --git a/_data/chains/eip155-1666600003.json b/_data/chains/eip155-1666600003.json index 49d813a1..14a228db 100644 --- a/_data/chains/eip155-1666600003.json +++ b/_data/chains/eip155-1666600003.json @@ -3,7 +3,7 @@ "chain": "Harmony", "network": "mainnet", "rpc": [ - "https://rpc.s3.t.hmny.io" + "https://s3.api.harmony.one" ], "faucets": [ ], From d9a37ce91066c7ed1ab6fc95e8ec0587a91ecc69 Mon Sep 17 00:00:00 2001 From: a00a63 <81436996+a00a63@users.noreply.github.com> Date: Fri, 2 Apr 2021 18:20:23 +0200 Subject: [PATCH 05/29] Add Harmony testnet shards (#205) --- _data/chains/eip155-1666700000.json | 20 ++++++++++++++++++++ _data/chains/eip155-1666700001.json | 20 ++++++++++++++++++++ _data/chains/eip155-1666700002.json | 20 ++++++++++++++++++++ _data/chains/eip155-1666700003.json | 20 ++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 _data/chains/eip155-1666700000.json create mode 100644 _data/chains/eip155-1666700001.json create mode 100644 _data/chains/eip155-1666700002.json create mode 100644 _data/chains/eip155-1666700003.json diff --git a/_data/chains/eip155-1666700000.json b/_data/chains/eip155-1666700000.json new file mode 100644 index 00000000..f276861a --- /dev/null +++ b/_data/chains/eip155-1666700000.json @@ -0,0 +1,20 @@ +{ + "name": "Harmony Testnet Shard 0", + "chain": "Harmony", + "network": "testnet", + "rpc": [ + "https://api.s0.b.hmny.io" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "ONE", + "symbol": "ONE", + "decimals": 18 + }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s0", + "chainId": 1666700000, + "networkId": 1666700000 + } + \ No newline at end of file diff --git a/_data/chains/eip155-1666700001.json b/_data/chains/eip155-1666700001.json new file mode 100644 index 00000000..7fb96936 --- /dev/null +++ b/_data/chains/eip155-1666700001.json @@ -0,0 +1,20 @@ +{ + "name": "Harmony Testnet Shard 1", + "chain": "Harmony", + "network": "testnet", + "rpc": [ + "https://api.s1.b.hmny.io" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "ONE", + "symbol": "ONE", + "decimals": 18 + }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s1", + "chainId": 1666700001, + "networkId": 1666700001 + } + \ No newline at end of file diff --git a/_data/chains/eip155-1666700002.json b/_data/chains/eip155-1666700002.json new file mode 100644 index 00000000..c81c44e6 --- /dev/null +++ b/_data/chains/eip155-1666700002.json @@ -0,0 +1,20 @@ +{ + "name": "Harmony Testnet Shard 2", + "chain": "Harmony", + "network": "testnet", + "rpc": [ + "https://api.s2.b.hmny.io" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "ONE", + "symbol": "ONE", + "decimals": 18 + }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s2", + "chainId": 1666700002, + "networkId": 1666700002 + } + \ No newline at end of file diff --git a/_data/chains/eip155-1666700003.json b/_data/chains/eip155-1666700003.json new file mode 100644 index 00000000..98a9bb30 --- /dev/null +++ b/_data/chains/eip155-1666700003.json @@ -0,0 +1,20 @@ +{ + "name": "Harmony Testnet Shard 3", + "chain": "Harmony", + "network": "testnet", + "rpc": [ + "https://api.s3.b.hmny.io" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "ONE", + "symbol": "ONE", + "decimals": 18 + }, + "infoURL": "https://www.harmony.one/", + "shortName": "hmy-b-s3", + "chainId": 1666700003, + "networkId": 1666700003 + } + \ No newline at end of file From 5f49c91806717479ac72cbbc0fd0028c24c69239 Mon Sep 17 00:00:00 2001 From: Raullen Chai Date: Sat, 3 Apr 2021 07:20:52 -0700 Subject: [PATCH 06/29] Create eip155-4689.json and eip155-4690.json (#194) * Create eip155-4689.json and eip155-4690.json * Update eip155-4690.json * Update eip155-4689.json * Update eip155-4690.json --- _data/chains/eip155-4689.json | 19 +++++++++++++++++++ _data/chains/eip155-4690.json | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 _data/chains/eip155-4689.json create mode 100644 _data/chains/eip155-4690.json diff --git a/_data/chains/eip155-4689.json b/_data/chains/eip155-4689.json new file mode 100644 index 00000000..cf20a828 --- /dev/null +++ b/_data/chains/eip155-4689.json @@ -0,0 +1,19 @@ +{ + "name": "IoTeX Network Mainnet", + "chain": "IOTX", + "network": "mainnet", + "rpc": [ + "https://babel-api.mainnet.iotex.one" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "IoTeX", + "symbol": "IOTX", + "decimals": 18 + }, + "infoURL": "https://iotex.io", + "shortName": "iotex-mainnet", + "chainId": 4689, + "networkId": 4689 +} diff --git a/_data/chains/eip155-4690.json b/_data/chains/eip155-4690.json new file mode 100644 index 00000000..574627b6 --- /dev/null +++ b/_data/chains/eip155-4690.json @@ -0,0 +1,19 @@ +{ + "name": "IoTeX Network Testnet", + "chain": "IOTX", + "network": "testnet", + "rpc": [ + "https://babel-api.testnet.iotex.one" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "IoTeX", + "symbol": "IOTX", + "decimals": 18 + }, + "infoURL": "https://iotex.io", + "shortName": "iotex-testnet", + "chainId": 4690, + "networkId": 4690 +} From 75b29a18212ce94b3e7d97a2c846773aec2c951b Mon Sep 17 00:00:00 2001 From: silence Date: Wed, 7 Apr 2021 16:39:37 +0800 Subject: [PATCH 07/29] Update explorer url for heco mainnet and testnet (#209) * add huobi eco chain info * rename short name * change explorer url for heco mainnet and testnet Co-authored-by: wangsai --- _data/chains/eip155-128.json | 2 +- _data/chains/eip155-256.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/chains/eip155-128.json b/_data/chains/eip155-128.json index c4501974..0566bc7d 100644 --- a/_data/chains/eip155-128.json +++ b/_data/chains/eip155-128.json @@ -12,7 +12,7 @@ "symbol": "HT", "decimals": 18 }, - "infoURL": "https://www.hecochain.com", + "infoURL": "https://hecoinfo.com", "shortName": "heco", "chainId": 128, "networkId": 128 diff --git a/_data/chains/eip155-256.json b/_data/chains/eip155-256.json index 8b9f530b..8efc1196 100644 --- a/_data/chains/eip155-256.json +++ b/_data/chains/eip155-256.json @@ -14,7 +14,7 @@ "symbol": "htt", "decimals": 18 }, - "infoURL": "https://www.hecochain.com", + "infoURL": "https://testnet.hecoinfo.com", "shortName": "hecot", "chainId": 256, "networkId": 256 From ad6ff755ff14fb7293377afe6d68579a1716bcb8 Mon Sep 17 00:00:00 2001 From: ligi Date: Sun, 4 Apr 2021 09:04:01 +0200 Subject: [PATCH 08/29] Use kotlin 1.4.32 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 24b11f04..2f6ac8e1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { ext { - KOTLIN_VERSION = "1.4.31" + KOTLIN_VERSION = "1.4.32" KETHEREUM_VERSION = "0.83.4" } From d0a89e2da21ab410fe76a55255d446ff95c063db Mon Sep 17 00:00:00 2001 From: ligi Date: Sun, 4 Apr 2021 09:04:20 +0200 Subject: [PATCH 09/29] Use kethereum 0.83.6 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2f6ac8e1..5956336b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ buildscript { ext { KOTLIN_VERSION = "1.4.32" - KETHEREUM_VERSION = "0.83.4" + KETHEREUM_VERSION = "0.83.6" } repositories { From 6abf31221b86e9e1632aee7c7a72ec51f3cfaf8e Mon Sep 17 00:00:00 2001 From: ligi Date: Sun, 4 Apr 2021 09:04:52 +0200 Subject: [PATCH 10/29] Use moshi 1.12.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5956336b..c5222b79 100644 --- a/build.gradle +++ b/build.gradle @@ -35,7 +35,7 @@ dependencies { implementation "com.github.komputing.kethereum:crypto_impl_bouncycastle:${KETHEREUM_VERSION}" implementation 'com.beust:klaxon:5.4' - implementation 'com.squareup.moshi:moshi-kotlin:1.11.0' + implementation 'com.squareup.moshi:moshi-kotlin:1.12.0' implementation 'com.squareup.okhttp3:okhttp:4.7.2' testImplementation "org.jetbrains.kotlin:kotlin-test" From 7b2edb8edb24f89b26a882e0fcbd2c0af4b08796 Mon Sep 17 00:00:00 2001 From: ligi Date: Mon, 12 Apr 2021 08:27:25 +0200 Subject: [PATCH 11/29] Initial support for icons - closes #202 --- .../kotlin/org/ethereum/lists/chains/Env.kt | 3 +- .../kotlin/org/ethereum/lists/chains/Main.kt | 71 ++++++++++++++++--- 2 files changed, 63 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/org/ethereum/lists/chains/Env.kt b/src/main/kotlin/org/ethereum/lists/chains/Env.kt index f96c8d02..1c35811c 100644 --- a/src/main/kotlin/org/ethereum/lists/chains/Env.kt +++ b/src/main/kotlin/org/ethereum/lists/chains/Env.kt @@ -19,7 +19,8 @@ val mandatory_fields = listOf( ) val optionalFields = listOf( "slip44", - "ens" + "ens", + "icon" ) val moshi: Moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() diff --git a/src/main/kotlin/org/ethereum/lists/chains/Main.kt b/src/main/kotlin/org/ethereum/lists/chains/Main.kt index 74cee68a..6bf1537e 100644 --- a/src/main/kotlin/org/ethereum/lists/chains/Main.kt +++ b/src/main/kotlin/org/ethereum/lists/chains/Main.kt @@ -1,5 +1,6 @@ package org.ethereum.lists.chains +import com.beust.klaxon.JsonArray import java.io.File import com.beust.klaxon.JsonObject import com.beust.klaxon.Klaxon @@ -8,16 +9,23 @@ import org.kethereum.erc55.isValid import org.kethereum.model.Address import org.kethereum.rpc.HttpEthereumRPC -val parsedShortNames= mutableSetOf() -val parsedNames= mutableSetOf() +val parsedShortNames = mutableSetOf() +val parsedNames = mutableSetOf() + +val iconsPath = File("_data/icons") fun main(args: Array) { - val allFiles = File("_data/chains").listFiles()?:return + val allFiles = File("_data/chains").listFiles() ?: return allFiles.filter { !it.isDirectory }.forEach { checkChain(it, args.contains("rpcConnect")) } + val allIcons = iconsPath.listFiles() ?: return + allIcons.forEach { + checkIcon(it) + } + allFiles.filter { it.isDirectory }.forEach { if (it.name != "deprecated") { error("the only directory allowed is 'deprecated'") @@ -25,23 +33,60 @@ fun main(args: Array) { } } -fun checkChain(it: File, connectRPC: Boolean) { - println("processing $it") +fun checkIcon(icon: File) { + println("checking Icon " + icon.name) + val obj: JsonArray<*> = Klaxon().parseJsonArray(icon.reader()) + println("found variants " + obj.size) + obj.forEach { it -> + if (it !is JsonObject) { + error("Icon variant must be an object") + } - parseWithMoshi(it) + val url = it["url"] ?: error("Icon must have a URL") - val jsonObject = Klaxon().parseJsonObject(it.reader()) + if (url !is String || !url.startsWith("ipfs://")) { + error("url must start with ipfs://") + } + + val width = it["width"] + val height = it["height"] + if (width != null || height != null) { + if (height == null || width == null) { + error("If icon has width or height it needs to have both") + } + + if (width !is Int) { + error("Icon width must be Int") + } + if (height !is Int) { + error("Icon height must be Int") + } + } + + val format = it["format"] + if (format !is String || (format != "png" && format != "svg")) { + error("Icon format must be a png or svg but was $format") + } + } +} + +fun checkChain(chainFile: File, connectRPC: Boolean) { + println("processing $chainFile") + + parseWithMoshi(chainFile) + + val jsonObject = Klaxon().parseJsonObject(chainFile.reader()) val chainAsLong = getNumber(jsonObject, "chainId") - if (it.nameWithoutExtension.startsWith("eip155-")) { - if (chainAsLong != it.nameWithoutExtension.replace("eip155-","").toLongOrNull()) { + if (chainFile.nameWithoutExtension.startsWith("eip155-")) { + if (chainAsLong != chainFile.nameWithoutExtension.replace("eip155-", "").toLongOrNull()) { throw(FileNameMustMatchChainId()) } } else { throw(UnsupportedNamespace()) } - if (it.extension != "json") { + if (chainFile.extension != "json") { throw(ExtensionMustBeJSON()) } @@ -57,6 +102,12 @@ fun checkChain(it: File, connectRPC: Boolean) { throw ShouldHaveNoMissingFields(missingFields) } + jsonObject["icon"]?.let { + if (!File(iconsPath,"$it.json").exists()) { + error("The Icon $it does not exist - was used in ${chainFile.name}") + } + } + jsonObject["ens"]?.let { if (it !is JsonObject) { throw ENSMustBeObject() From 1be2f343660f2dbd78b37b7ccbc13ab8be86619b Mon Sep 17 00:00:00 2001 From: ligi Date: Mon, 12 Apr 2021 08:28:20 +0200 Subject: [PATCH 12/29] Add initial ethereum icon --- _data/chains/eip155-1.json | 1 + _data/icons/ethereum.json | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 _data/icons/ethereum.json diff --git a/_data/chains/eip155-1.json b/_data/chains/eip155-1.json index 5851ad07..4966310f 100644 --- a/_data/chains/eip155-1.json +++ b/_data/chains/eip155-1.json @@ -2,6 +2,7 @@ "name": "Ethereum Mainnet", "chain": "ETH", "network": "mainnet", + "icon": "ethereum", "rpc": [ "https://mainnet.infura.io/v3/${INFURA_API_KEY}", "wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}", diff --git a/_data/icons/ethereum.json b/_data/icons/ethereum.json new file mode 100644 index 00000000..80490121 --- /dev/null +++ b/_data/icons/ethereum.json @@ -0,0 +1,8 @@ +[ + { + "url":"ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt", + "width":1000, + "height":1628, + "format":"png" + } +] From 884838f5e311ffdb0717a7c143e18a2b5bfeac8a Mon Sep 17 00:00:00 2001 From: ligi Date: Mon, 12 Apr 2021 09:31:50 +0200 Subject: [PATCH 14/29] Initial explorers support - closes #59 --- _data/chains/eip155-1.json | 7 +++- .../kotlin/org/ethereum/lists/chains/Env.kt | 3 +- .../kotlin/org/ethereum/lists/chains/Main.kt | 26 +++++++++++++- .../ethereum/lists/chains/model/Exceptions.kt | 6 +++- .../ethereum/lists/chains}/TheChainChecker.kt | 35 ++++++++++++++++++- .../invalid/explorerinvalidurl/eip155-1.json | 24 +++++++++++++ .../invalid/explorermissingurl/eip155-1.json | 23 ++++++++++++ .../invalid/explorernoname/eip155-1.json | 23 ++++++++++++ .../invalid/explorersnotarray/eip155-1.json | 20 +++++++++++ .../wrongexplorerstandard/eip155-1.json | 24 +++++++++++++ .../valid/withexplorer/eip155-1.json | 26 ++++++++++++++ 11 files changed, 212 insertions(+), 5 deletions(-) rename src/test/kotlin/{ => org/ethereum/lists/chains}/TheChainChecker.kt (73%) create mode 100644 src/test/resources/test_chains/invalid/explorerinvalidurl/eip155-1.json create mode 100644 src/test/resources/test_chains/invalid/explorermissingurl/eip155-1.json create mode 100644 src/test/resources/test_chains/invalid/explorernoname/eip155-1.json create mode 100644 src/test/resources/test_chains/invalid/explorersnotarray/eip155-1.json create mode 100644 src/test/resources/test_chains/invalid/wrongexplorerstandard/eip155-1.json create mode 100644 src/test/resources/test_chains/valid/withexplorer/eip155-1.json diff --git a/_data/chains/eip155-1.json b/_data/chains/eip155-1.json index 4966310f..16c91853 100644 --- a/_data/chains/eip155-1.json +++ b/_data/chains/eip155-1.json @@ -22,5 +22,10 @@ "slip44": 60, "ens": { "registry":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" - } + }, + "explorers": [{ + "name": "etherscan", + "url": "https://etherscan.io", + "standard": "EIP3091" + }] } diff --git a/src/main/kotlin/org/ethereum/lists/chains/Env.kt b/src/main/kotlin/org/ethereum/lists/chains/Env.kt index 1c35811c..a1c92e40 100644 --- a/src/main/kotlin/org/ethereum/lists/chains/Env.kt +++ b/src/main/kotlin/org/ethereum/lists/chains/Env.kt @@ -20,7 +20,8 @@ val mandatory_fields = listOf( val optionalFields = listOf( "slip44", "ens", - "icon" + "icon", + "explorers" ) val moshi: Moshi = Moshi.Builder().add(KotlinJsonAdapterFactory()).build() diff --git a/src/main/kotlin/org/ethereum/lists/chains/Main.kt b/src/main/kotlin/org/ethereum/lists/chains/Main.kt index 6bf1537e..08936482 100644 --- a/src/main/kotlin/org/ethereum/lists/chains/Main.kt +++ b/src/main/kotlin/org/ethereum/lists/chains/Main.kt @@ -103,11 +103,35 @@ fun checkChain(chainFile: File, connectRPC: Boolean) { } jsonObject["icon"]?.let { - if (!File(iconsPath,"$it.json").exists()) { + if (!File(iconsPath, "$it.json").exists()) { error("The Icon $it does not exist - was used in ${chainFile.name}") } } + jsonObject["explorers"]?.let { + if (it !is JsonArray<*>) { + throw (ExplorersMustBeArray()) + } + + it.forEach { explorer -> + if (explorer !is JsonObject) { + error("explorer must be object") + } + + if (explorer["name"] == null) { + throw(ExplorerMustHaveName()) + } + + val url = explorer["url"] + if (url == null || url !is String || !url.startsWith("https://")) { + throw(ExplorerInvalidUrl()) + } + + if (explorer["standard"] != "EIP3091") { + throw(ExplorerStandardMustBeEIP3091()) + } + } + } jsonObject["ens"]?.let { if (it !is JsonObject) { throw ENSMustBeObject() diff --git a/src/main/kotlin/org/ethereum/lists/chains/model/Exceptions.kt b/src/main/kotlin/org/ethereum/lists/chains/model/Exceptions.kt index a6451307..82ea8c74 100644 --- a/src/main/kotlin/org/ethereum/lists/chains/model/Exceptions.kt +++ b/src/main/kotlin/org/ethereum/lists/chains/model/Exceptions.kt @@ -11,4 +11,8 @@ class ENSMustHaveOnlyRegistry: Exception("ens can only have a registry currently class ENSRegistryAddressMustBeValid: Exception("ens registry must have valid address") class NameMustBeUnique(dup: String): Exception(" name must be unique - but found `$dup` more than once") class ShortNameMustBeUnique(dup: String): Exception("short name must be unique - but found `$dup` more than once") -class UnsupportedNamespace(): Exception("So far only the EIP155 namespace is supported") \ No newline at end of file +class UnsupportedNamespace(): Exception("So far only the EIP155 namespace is supported") +class ExplorersMustBeArray: Exception("explorers must be an array") +class ExplorerMustHaveName: Exception("Explorer must have name") +class ExplorerInvalidUrl: Exception("Explorer have url starting with https://") +class ExplorerStandardMustBeEIP3091: Exception("explorer standard must be EIP3091 - currently the only one supported") diff --git a/src/test/kotlin/TheChainChecker.kt b/src/test/kotlin/org/ethereum/lists/chains/TheChainChecker.kt similarity index 73% rename from src/test/kotlin/TheChainChecker.kt rename to src/test/kotlin/org/ethereum/lists/chains/TheChainChecker.kt index 54ba0f21..cdbfff01 100644 --- a/src/test/kotlin/TheChainChecker.kt +++ b/src/test/kotlin/org/ethereum/lists/chains/TheChainChecker.kt @@ -1,5 +1,6 @@ +package org.ethereum.lists.chains + import com.squareup.moshi.JsonEncodingException -import org.ethereum.lists.chains.* import org.ethereum.lists.chains.model.* import org.junit.Before import org.junit.Test @@ -20,6 +21,13 @@ class TheChainChecker { checkChain(file, false) } + @Test + fun shouldPassForValidChainWithExplorers() { + val file = getFile("valid/withexplorer/eip155-1.json") + + checkChain(file, false) + } + @Test(expected = FileNameMustMatchChainId::class) fun shouldFailForInvalidFilename() { val file = getFile("invalid/eip155-invalid_filename.json") @@ -103,6 +111,31 @@ class TheChainChecker { checkChain(getFile("invalid/sameshortname/eip155-1.json"), false) } + @Test(expected = ExplorersMustBeArray::class) + fun shouldFailWhenExplorerIsNotArray() { + checkChain(getFile("invalid/explorersnotarray/eip155-1.json"), false) + } + + @Test(expected = ExplorerStandardMustBeEIP3091::class) + fun shouldFailOnWrongExplorerStandard() { + checkChain(getFile("invalid/wrongexplorerstandard/eip155-1.json"), false) + } + + @Test(expected = ExplorerMustHaveName::class) + fun shouldFailOnNoExplorerName() { + checkChain(getFile("invalid/explorernoname/eip155-1.json"), false) + } + + @Test(expected = ExplorerInvalidUrl::class) + fun shouldFailOnInvalidUrl() { + checkChain(getFile("invalid/explorerinvalidurl/eip155-1.json"), false) + } + + @Test(expected = ExplorerInvalidUrl::class) + fun shouldFailOnMissingURL() { + checkChain(getFile("invalid/explorermissingurl/eip155-1.json"), false) + } + @Test fun canParse2chains() { checkChain(getFile("valid/eip155-1.json"), false) diff --git a/src/test/resources/test_chains/invalid/explorerinvalidurl/eip155-1.json b/src/test/resources/test_chains/invalid/explorerinvalidurl/eip155-1.json new file mode 100644 index 00000000..90475a77 --- /dev/null +++ b/src/test/resources/test_chains/invalid/explorerinvalidurl/eip155-1.json @@ -0,0 +1,24 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [{ + "name": "yolo", + "url": "failme", + "standard": "EIP3091" + }] +} \ No newline at end of file diff --git a/src/test/resources/test_chains/invalid/explorermissingurl/eip155-1.json b/src/test/resources/test_chains/invalid/explorermissingurl/eip155-1.json new file mode 100644 index 00000000..025499d0 --- /dev/null +++ b/src/test/resources/test_chains/invalid/explorermissingurl/eip155-1.json @@ -0,0 +1,23 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [{ + "name": "yolo", + "standard": "EIP3091" + }] +} \ No newline at end of file diff --git a/src/test/resources/test_chains/invalid/explorernoname/eip155-1.json b/src/test/resources/test_chains/invalid/explorernoname/eip155-1.json new file mode 100644 index 00000000..38d9fd6f --- /dev/null +++ b/src/test/resources/test_chains/invalid/explorernoname/eip155-1.json @@ -0,0 +1,23 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [{ + "url": "https://etherscan.io", + "standard": "EIP3091" + }] +} \ No newline at end of file diff --git a/src/test/resources/test_chains/invalid/explorersnotarray/eip155-1.json b/src/test/resources/test_chains/invalid/explorersnotarray/eip155-1.json new file mode 100644 index 00000000..9895ba6d --- /dev/null +++ b/src/test/resources/test_chains/invalid/explorersnotarray/eip155-1.json @@ -0,0 +1,20 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": "should_fail" +} \ No newline at end of file diff --git a/src/test/resources/test_chains/invalid/wrongexplorerstandard/eip155-1.json b/src/test/resources/test_chains/invalid/wrongexplorerstandard/eip155-1.json new file mode 100644 index 00000000..c3f128fd --- /dev/null +++ b/src/test/resources/test_chains/invalid/wrongexplorerstandard/eip155-1.json @@ -0,0 +1,24 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [{ + "name": "etherscan", + "url": "https://etherscan.io", + "standard": "failme" + }] +} \ No newline at end of file diff --git a/src/test/resources/test_chains/valid/withexplorer/eip155-1.json b/src/test/resources/test_chains/valid/withexplorer/eip155-1.json new file mode 100644 index 00000000..ef4eeb20 --- /dev/null +++ b/src/test/resources/test_chains/valid/withexplorer/eip155-1.json @@ -0,0 +1,26 @@ +{ + "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", + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "explorers": [ + { + "name": "etherscan", + "url": "https://etherscan.io", + "standard": "EIP3091" + } + ] +} From 8b7eea74bd55c543ba67bf3bd01e64bf9e78891a Mon Sep 17 00:00:00 2001 From: ligi Date: Mon, 12 Apr 2021 10:51:18 +0200 Subject: [PATCH 16/29] Expose explorers in chains.json context https://github.com/antonnell/networklist-org/issues/12 --- chains.json | 1 + 1 file changed, 1 insertion(+) diff --git a/chains.json b/chains.json index 9c454546..4305db5f 100644 --- a/chains.json +++ b/chains.json @@ -13,6 +13,7 @@ permalink: chains.json "nativeCurrency": {"name":"{{chain.nativeCurrency["name"]}}","symbol":"{{chain.nativeCurrency["symbol"]}}","decimals":{{chain.nativeCurrency["decimals"]}}}, "rpc": [{% for rpc in chain.rpc %}"{{ rpc }}"{% unless forloop.last %},{% endunless %}{%endfor%}], "faucets": [{% for faucet in chain.faucets %}"{{ faucet }}"{% unless forloop.last %},{% endunless %}{%endfor%}], + "explorers": [{% for explorer in chain.explorers %}{"name":"{{explorer.name}}","url":"{{explorer.url}}"{% if explorer.icon != null %},"icon":"{{explorer.icon}}"{% endif %},"standard":"{{explorer.standard}}"}{% unless forloop.last %},{% endunless %}{%endfor%}], "infoURL": "{{ chain.infoURL }}" }{% unless forloop.last %},{% endunless %}{% endif %}{% endfor %} ] From 97963a44b0318031075a4cd2e46a1faae04021b0 Mon Sep 17 00:00:00 2001 From: ligi Date: Mon, 12 Apr 2021 10:52:23 +0200 Subject: [PATCH 17/29] Update BUNDLED WITH --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fbeb8792..545deed4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -69,4 +69,4 @@ DEPENDENCIES tzinfo-data BUNDLED WITH - 1.16.3 + 2.1.4 From 98932cf3950470ef896c759039768aae3342447d Mon Sep 17 00:00:00 2001 From: ligi Date: Tue, 13 Apr 2021 09:50:30 +0200 Subject: [PATCH 19/29] Improve README - mention new fields --- README.md | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2f9bfa91..aa61600e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # EVM-based Chains -Listed by chainId according to EIP-155 - -Data source available on `_data/chains.json` +The source data is in _data/chains. Each chain has its own file with the filename being the [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md) representation as name and `.json` ans extension. ## Example @@ -24,10 +22,43 @@ Data source available on `_data/chains.json` "infoURL": "https://ethereum.org", "shortName": "eth", "chainId": 1, - "networkId": 1 + "networkId": 1, + "icon": "ethereum", + "explorers": [{ + "name": "etherscan", + "url": "https://etherscan.io", + "icon": "etherscan", + "standard": "EIP3091" + }] } ``` +when an icon is used in either the network or a explorer there must be a json in _data/icons with the name used (e.g. in the above example there must be a `ethereum.json` and a `etherscan.json` in there) - the icon jsons look like this: + +```json + +[ + { + "url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt", + "width": 1000, + "height": 1628, + "format": "png" + } +] + +``` + +where: + * the URL must be a IPFS url that is publicly resolveable + * width and height are optional - but when one is there then the other must be there also + * format is either "png", "jpg" or "svg" + +## Aggregation + +There are also aggregated json files with all chains automatically assembled: + * https://chainid.network/chains.json + * https://chainid.network/chains_mini.json (miniaturized - fewer fields for smaller filesize) + ## Usages * [chainlist.org](https://chainlist.org) or [networklist-org.vercel.app](https://networklist-org.vercel.app) as a staging version with a more up-to-date list From 98ebbcca5cb01eab542b9d8e94308540bd8be45d Mon Sep 17 00:00:00 2001 From: wgllele Date: Wed, 14 Apr 2021 19:49:16 +0800 Subject: [PATCH 21/29] Update eip155-269.json (#219) --- _data/chains/eip155-269.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/chains/eip155-269.json b/_data/chains/eip155-269.json index da686d34..a6e7142e 100644 --- a/_data/chains/eip155-269.json +++ b/_data/chains/eip155-269.json @@ -3,7 +3,7 @@ "chain": "HPB", "network": "mainnet", "rpc": [ - "https://node.hpb.blue" + "https://hpb.app" ], "faucets": [], "nativeCurrency": { @@ -11,7 +11,7 @@ "symbol": "HPB", "decimals": 18 }, - "infoURL": "https://hpb.io", + "infoURL": "https://hpbscan.org/", "shortName": "hpb", "chainId": 269, "networkId": 100, From 1c10c155e1b16a4187476d2f0eb885fc26fdd548 Mon Sep 17 00:00:00 2001 From: lichangli Date: Thu, 15 Apr 2021 00:50:05 +0800 Subject: [PATCH 22/29] add id 22 23 for elastos did sidechain mainnet and testnet (#195) * add id 22 23 for elastos did sidechain mainnet and testnet * assign unique short name for new added chainid --- _data/chains/eip155-22.json | 16 ++++++++++++++++ _data/chains/eip155-23.json | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 _data/chains/eip155-22.json create mode 100644 _data/chains/eip155-23.json diff --git a/_data/chains/eip155-22.json b/_data/chains/eip155-22.json new file mode 100644 index 00000000..a16e1df8 --- /dev/null +++ b/_data/chains/eip155-22.json @@ -0,0 +1,16 @@ +{ + "name": "ELA-DID-Sidechain Mainnet", + "chain": "ETH", + "network": "mainnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Elastos", + "symbol": "ELA", + "decimals": 18 + }, + "infoURL": "https://www.elastos.org/", + "shortName": "eladid", + "chainId": 22, + "networkId": 22 +} diff --git a/_data/chains/eip155-23.json b/_data/chains/eip155-23.json new file mode 100644 index 00000000..aeb18471 --- /dev/null +++ b/_data/chains/eip155-23.json @@ -0,0 +1,16 @@ +{ + "name": "ELA-DID-Sidechain Testnet", + "chain": "ETH", + "network": "testnet", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Elastos", + "symbol": "tELA", + "decimals": 18 + }, + "infoURL": "https://elaeth.io/", + "shortName": "eladidt", + "chainId": 23, + "networkId": 23 +} From 1eaa740d2f5597b81157cdbaffb1437b4f8b8e77 Mon Sep 17 00:00:00 2001 From: bear <2630582710@qq.com> Date: Thu, 15 Apr 2021 00:50:27 +0800 Subject: [PATCH 23/29] Add Crab Network Info (#218) * Update crab chain info * Update network info --- _data/chains/eip155-44.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 _data/chains/eip155-44.json diff --git a/_data/chains/eip155-44.json b/_data/chains/eip155-44.json new file mode 100644 index 00000000..5eedd4eb --- /dev/null +++ b/_data/chains/eip155-44.json @@ -0,0 +1,16 @@ +{ + "name": "Darwinia Crab Network", + "chain": "crab", + "network": "Crab network", + "rpc": [], + "faucets": [], + "nativeCurrency": { + "name": "Crab Token", + "symbol": "CRING", + "decimals": 9 + }, + "infoURL": "https://crab.network/", + "shortName": "crab", + "chainId": 44, + "networkId": 44 +} From ad31523d360fcdcd237c095ff2e86ac9889d091d Mon Sep 17 00:00:00 2001 From: EircLi <34064135+Eric0718@users.noreply.github.com> Date: Thu, 15 Apr 2021 13:17:43 +0800 Subject: [PATCH 24/29] Add chainID 8285 to KorthoTest (#223) * add _data/chains/eip155-8285.json * push code --- _data/chains/eip155-8285.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 _data/chains/eip155-8285.json diff --git a/_data/chains/eip155-8285.json b/_data/chains/eip155-8285.json new file mode 100644 index 00000000..fe29d1e2 --- /dev/null +++ b/_data/chains/eip155-8285.json @@ -0,0 +1,19 @@ +{ + "name": "KorthoTest", + "chain": "Kortho", + "network": "Test", + "rpc": [ + "https://www.krotho-test.net" + ], + "faucets": [ + ], + "nativeCurrency": { + "name": "Kortho Test", + "symbol": "KTO", + "decimals": 11 + }, + "infoURL": "https://www.kortho.io/", + "shortName": "Kortho", + "chainId": 8285, + "networkId": 8285 +} \ No newline at end of file From 2d506ec7d348d5faa599a0a02855c760d09ea99a Mon Sep 17 00:00:00 2001 From: izayl Date: Thu, 15 Apr 2021 14:24:15 +0800 Subject: [PATCH 25/29] docs: add new site (#224) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aa61600e..75e68120 100644 --- a/README.md +++ b/README.md @@ -65,4 +65,5 @@ There are also aggregated json files with all chains automatically assembled: * [chainid.network](https://chainid.network) * [WallETH](https://walleth.org) * [TREZOR](https://trezor.io) + * [networks.vercel.app](https://networks.vercel.app) * Your project - contact us to add it here! From 231dcfb67136d77789a3eff7717cbb64bedcfa07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Matczak?= Date: Thu, 15 Apr 2021 11:24:27 +0200 Subject: [PATCH 26/29] Add MintMe.com Coin chainId (#225) --- _data/chains/eip155-24734.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 _data/chains/eip155-24734.json diff --git a/_data/chains/eip155-24734.json b/_data/chains/eip155-24734.json new file mode 100644 index 00000000..013a3394 --- /dev/null +++ b/_data/chains/eip155-24734.json @@ -0,0 +1,18 @@ +{ + "name": "MintMe.com Coin", + "chain": "MINTME", + "network": "mainnet", + "rpc": [ + "https://node1.mintme.com" + ], + "faucets": [], + "nativeCurrency": { + "name": "MintMe.com Coin", + "symbol": "MINTME", + "decimals": 18 + }, + "infoURL": "https://www.mintme.com", + "shortName": "mintme", + "chainId": 24734, + "networkId": 37480 +} From 257dec6669d8c4fcea72769e95e4a5e41f44a2b9 Mon Sep 17 00:00:00 2001 From: Evan Han Date: Fri, 16 Apr 2021 17:59:49 +0800 Subject: [PATCH 27/29] update okexchain rpc (#226) --- _data/chains/eip155-65.json | 4 ++-- _data/chains/eip155-66.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_data/chains/eip155-65.json b/_data/chains/eip155-65.json index 967d2f6b..35811e0e 100644 --- a/_data/chains/eip155-65.json +++ b/_data/chains/eip155-65.json @@ -3,7 +3,7 @@ "chain": "okexchain", "network": "testnet", "rpc": [ - "https://exchaintest.okexcn.com" + "https://exchaintestrpc.okex.org" ], "faucets": ["https://www.okex.com/drawdex"], "nativeCurrency": { @@ -15,4 +15,4 @@ "shortName": "tokt", "chainId": 65, "networkId": 65 -} \ No newline at end of file +} diff --git a/_data/chains/eip155-66.json b/_data/chains/eip155-66.json index 911a1cc9..f3046cb5 100644 --- a/_data/chains/eip155-66.json +++ b/_data/chains/eip155-66.json @@ -3,7 +3,7 @@ "chain": "okexchain", "network": "mainnet", "rpc": [ - "https://exchain.okexcn.com" + "https://exchainrpc.okex.org" ], "faucets": [], "nativeCurrency": { @@ -15,4 +15,4 @@ "shortName": "okt", "chainId": 66, "networkId": 66 -} \ No newline at end of file +} From 61c3a9c5b00dd924d46c51e9b385b62c15c4b9d3 Mon Sep 17 00:00:00 2001 From: ChainmobbTyler <75662615+ChainmobbTyler@users.noreply.github.com> Date: Tue, 20 Apr 2021 03:16:26 -0700 Subject: [PATCH 28/29] Add eip155-8029.json to chains list (#227) * Add files via upload * Added newline to end of file * Update _data/chains/eip155-8029.json Co-authored-by: ligi Co-authored-by: ligi --- _data/chains/eip155-8029.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 _data/chains/eip155-8029.json diff --git a/_data/chains/eip155-8029.json b/_data/chains/eip155-8029.json new file mode 100644 index 00000000..4176357a --- /dev/null +++ b/_data/chains/eip155-8029.json @@ -0,0 +1,18 @@ +{ + "name": "MDGL Testnet", + "chain": "MDGL", + "network": "testnet", + "rpc": [ + "https://testnet.mdgl.io" + ], + "faucets": [], + "nativeCurrency": { + "name": "MDGL Token", + "symbol": "MDGLT", + "decimals": 18 + }, + "infoURL": "https://mdgl.io", + "shortName": "mdgl", + "chainId": 8029, + "networkId": 8029 +} From 69d9a15c07fea4bf9abf83aa78f5187e6507746a Mon Sep 17 00:00:00 2001 From: Taylor Dawson Date: Thu, 22 Apr 2021 00:28:02 -0700 Subject: [PATCH 29/29] Adds RPC endpoints for clover mainnet (#228) --- _data/chains/eip155-1024.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/_data/chains/eip155-1024.json b/_data/chains/eip155-1024.json index b44a4b08..a7b2d0ad 100644 --- a/_data/chains/eip155-1024.json +++ b/_data/chains/eip155-1024.json @@ -2,7 +2,11 @@ "name": "Clover Mainnet", "chain": "Clover", "network": "clover mainnet", - "rpc": [], + "rpc": [ + "https://rpc-ivy.clover.finance", + "https://rpc-ivy-2.clover.finance", + "https://rpc-ivy-3.clover.finance" + ], "faucets": [], "nativeCurrency": { "name": "Clover", @@ -13,4 +17,4 @@ "shortName": "clv", "chainId": 1024, "networkId": 1024 -} \ No newline at end of file +}