From 26febe928c901efc2235e99331c2b3834bf75ef7 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Wed, 9 Oct 2024 16:43:26 +0100 Subject: [PATCH 01/15] Create dtbc.json --- dtbc.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 dtbc.json diff --git a/dtbc.json b/dtbc.json new file mode 100644 index 000000000000..4d72ef14b75b --- /dev/null +++ b/dtbc.json @@ -0,0 +1,23 @@ +{ + "name": "Deviant Token Blockchain", + "chain": "DTBC", + "rpc": [ + "https://rpc.devianttoken.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Deviant Token Blockchain", + "symbol": "DTBC", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://devianttoken.net", + "shortName": "dtbc", + "chainId": 52027071, + "networkId": 52027071, + "explorers": [{ + "name": "Deviant Explorer", + "url": "https://explorer.devianttoken.net", + "standard": "EIP3091" + }] +} From 135849641452fc6e1b8ea0574b599900c5d9f18e Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Wed, 9 Oct 2024 17:57:26 +0100 Subject: [PATCH 02/15] Add files via upload --- .gitignore | 28 +-- .gitmodules | 6 +- .jitpack.yml | 2 +- .prettierignore | 14 +- .prettierrc.json | 10 +- LICENSE | 42 ++-- README.md | 308 ++++++++++++------------- build.gradle | 52 ++--- dtbc.json | 46 ++-- eip155-560098.json | 44 ++-- gradlew | 488 ++++++++++++++++++++-------------------- gradlew.bat | 184 +++++++-------- maintainer_checklist.md | 20 +- settings.gradle.kts | 4 +- 14 files changed, 624 insertions(+), 624 deletions(-) diff --git a/.gitignore b/.gitignore index eb58b2f39a70..fcf74e5a45d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,15 @@ -_site -.sass-cache -.jekyll-metadata -.DS_Store -.env -node_modules -.idea -output -.gradle -model/bin -model/build -processor/bin -processor/build -httpsloader/build +_site +.sass-cache +.jekyll-metadata +.DS_Store +.env +node_modules +.idea +output +.gradle +model/bin +model/build +processor/bin +processor/build +httpsloader/build httpsloader/bin \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index aad299ee839d..b99681f9b687 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "website"] - path = website - url = https://github.com/FrederikBolding/chainlist.git +[submodule "website"] + path = website + url = https://github.com/FrederikBolding/chainlist.git diff --git a/.jitpack.yml b/.jitpack.yml index 88cfba7a9352..e73581c923bf 100644 --- a/.jitpack.yml +++ b/.jitpack.yml @@ -1 +1 @@ -jdk: openjdk11 +jdk: openjdk11 diff --git a/.prettierignore b/.prettierignore index 275d3e56b446..744d49e59286 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,7 +1,7 @@ -# Using Prettier for JSON files only in _data - -# Command to format all existing JSON files -# npx prettier --write --ignore-unknown _data - -model -processor +# Using Prettier for JSON files only in _data + +# Command to format all existing JSON files +# npx prettier --write --ignore-unknown _data + +model +processor diff --git a/.prettierrc.json b/.prettierrc.json index 0c232024ca2b..0a5daee6b960 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,6 @@ -{ - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "singleQuote": false +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": false, + "singleQuote": false } \ No newline at end of file diff --git a/LICENSE b/LICENSE index ab602974d200..1fcff06b39af 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index bd22433c843e..e47fd143f6f7 100644 --- a/README.md +++ b/README.md @@ -1,154 +1,154 @@ -# EVM-based Chains - -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` as extension. - -## Example - -```json -{ - "name": "Ethereum Mainnet", - "chain": "ETH", - "rpc": [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth" - ], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], - "infoURL": "https://ethereum.org", - "shortName": "eth", - "chainId": 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 an 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 an IPFS url that is publicly resolvable - * width and height are positive integers - * format is either "png", "jpg" or "svg" - -If the chain is an L2 or a shard of another chain you can link it to the parent chain like this: - - -```json -{ - ... - "parent": { - "type" : "L2", - "chain": "eip155-1", - "bridges": [ {"url":"https://bridge.arbitrum.io"} ] - } -} -``` - -where you need to specify type 2 and the reference to an existing parent. The field about bridges is optional. - -You can add a `status` field e.g. to deprecate (via status `deprecated`) a chain (a chain should never be deleted as this would open the door to replay attacks) -Other options for `status` are `active` (default) or `incubating` - -## 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) - -## Constraints - - * the shortName and name MUST be unique - see e.g. EIP-3770 on why - * if referencing a parent chain - the chain MUST exist in the repo - * if using a IPFS CID for the icon - the CID MUST be retrievable via `ipfs get` - not only through some gateway (means please do not use pinata for now) - * for more constraints you can look into the CI - -## Collision management - - We cannot allow more than one chain with the same chainID - this would open the door to replay attacks. - The first pull request gets the chainID assigned. When creating a chain we can expect that you read EIP155 which states this repo. - All pull requests trying to replace a chainID because they think their chain is better than the other will be closed. - The only way to get a chain reassigned is when the old chain gets deprecated. This can e.g. be used for testnets that are short-lived. But then you will get the redFlag "reusedChaiID" that should be displayed in clients to warn them about the dangers here. - -## Getting your PR merged -### before PR is submitted - -Before submitting a PR, please verify that checks pass with: - -```bash -$ ./gradlew run - -BUILD SUCCESSFUL in 7s -9 actionable tasks: 9 executed -``` - -Also please run the prettier to format your json according to the style [defined here ](https://github.com/ethereum-lists/chains/blob/master/.prettierrc.json) -e.g. run - -``` -npx prettier --write _data/*/*.json -``` - -### Once PR is submitted - - * Make sure CI is green. There will likely be no review when the CI is red. - * When making changes that fix the CI problems - please re-request a review - otherwise it is too much work to track such changes with so many PRs daily - -## Usages -### Tools - * [MESC](https://paradigmxyz.github.io/mesc) - -### Explorers - * [Otterscan](https://otterscan.io) - -### Wallets - * [WallETH](https://walleth.org) - * [TREZOR](https://trezor.io) - * [Minerva Wallet](https://minerva.digital) - -### EIPs - * EIP-155 - * EIP-3014 - * EIP-3770 - * EIP-4527 - -### Listing sites - * [chainid.network](https://chainid.network) / [chainlist.wtf](https://chainlist.wtf) - * [chainlist.org](https://chainlist.org) - * [Chainlink docs](https://docs.chain.link/) - * [dRPC Chainlist - Load-balanced public nodes](https://drpc.org/chainlist) - * [eth-chains](https://github.com/taylorjdawson/eth-chains) - * [EVM-BOX](https://github.com/izayl/evm-box) - * [evmchain.info](https://evmchain.info) - * [evmchainlist.org](https://evmchainlist.org) - * [networks.vercel.app](https://networks.vercel.app) - * [Wagmi compatible chain configurations](https://spenhouet.com/chains) - -### Other - * [FaucETH](https://github.com/komputing/FaucETH) - * [Sourcify playground](https://playground.sourcify.dev) - * [Smart Contract UI](https://xtools-at.github.io/smartcontract-ui) - - * Your project - contact us to add it here! +# EVM-based Chains + +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` as extension. + +## Example + +```json +{ + "name": "Ethereum Mainnet", + "chain": "ETH", + "rpc": [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth" + ], + "faucets": [], + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ethereum.org", + "shortName": "eth", + "chainId": 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 an 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 an IPFS url that is publicly resolvable + * width and height are positive integers + * format is either "png", "jpg" or "svg" + +If the chain is an L2 or a shard of another chain you can link it to the parent chain like this: + + +```json +{ + ... + "parent": { + "type" : "L2", + "chain": "eip155-1", + "bridges": [ {"url":"https://bridge.arbitrum.io"} ] + } +} +``` + +where you need to specify type 2 and the reference to an existing parent. The field about bridges is optional. + +You can add a `status` field e.g. to deprecate (via status `deprecated`) a chain (a chain should never be deleted as this would open the door to replay attacks) +Other options for `status` are `active` (default) or `incubating` + +## 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) + +## Constraints + + * the shortName and name MUST be unique - see e.g. EIP-3770 on why + * if referencing a parent chain - the chain MUST exist in the repo + * if using a IPFS CID for the icon - the CID MUST be retrievable via `ipfs get` - not only through some gateway (means please do not use pinata for now) + * for more constraints you can look into the CI + +## Collision management + + We cannot allow more than one chain with the same chainID - this would open the door to replay attacks. + The first pull request gets the chainID assigned. When creating a chain we can expect that you read EIP155 which states this repo. + All pull requests trying to replace a chainID because they think their chain is better than the other will be closed. + The only way to get a chain reassigned is when the old chain gets deprecated. This can e.g. be used for testnets that are short-lived. But then you will get the redFlag "reusedChaiID" that should be displayed in clients to warn them about the dangers here. + +## Getting your PR merged +### before PR is submitted + +Before submitting a PR, please verify that checks pass with: + +```bash +$ ./gradlew run + +BUILD SUCCESSFUL in 7s +9 actionable tasks: 9 executed +``` + +Also please run the prettier to format your json according to the style [defined here ](https://github.com/ethereum-lists/chains/blob/master/.prettierrc.json) +e.g. run + +``` +npx prettier --write _data/*/*.json +``` + +### Once PR is submitted + + * Make sure CI is green. There will likely be no review when the CI is red. + * When making changes that fix the CI problems - please re-request a review - otherwise it is too much work to track such changes with so many PRs daily + +## Usages +### Tools + * [MESC](https://paradigmxyz.github.io/mesc) + +### Explorers + * [Otterscan](https://otterscan.io) + +### Wallets + * [WallETH](https://walleth.org) + * [TREZOR](https://trezor.io) + * [Minerva Wallet](https://minerva.digital) + +### EIPs + * EIP-155 + * EIP-3014 + * EIP-3770 + * EIP-4527 + +### Listing sites + * [chainid.network](https://chainid.network) / [chainlist.wtf](https://chainlist.wtf) + * [chainlist.org](https://chainlist.org) + * [Chainlink docs](https://docs.chain.link/) + * [dRPC Chainlist - Load-balanced public nodes](https://drpc.org/chainlist) + * [eth-chains](https://github.com/taylorjdawson/eth-chains) + * [EVM-BOX](https://github.com/izayl/evm-box) + * [evmchain.info](https://evmchain.info) + * [evmchainlist.org](https://evmchainlist.org) + * [networks.vercel.app](https://networks.vercel.app) + * [Wagmi compatible chain configurations](https://spenhouet.com/chains) + +### Other + * [FaucETH](https://github.com/komputing/FaucETH) + * [Sourcify playground](https://playground.sourcify.dev) + * [Smart Contract UI](https://xtools-at.github.io/smartcontract-ui) + + * Your project - contact us to add it here! diff --git a/build.gradle b/build.gradle index 9810e41bdaac..b2e41c185153 100644 --- a/build.gradle +++ b/build.gradle @@ -1,26 +1,26 @@ -buildscript { - ext { - KOTLIN_VERSION = "2.0.10" - KETHEREUM_VERSION = "0.86.0" - } - - repositories { - gradlePluginPortal() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${KOTLIN_VERSION}" - classpath 'com.github.ben-manes:gradle-versions-plugin:0.51.0' - } -} - -subprojects { - apply plugin: "kotlin" - - repositories { - mavenCentral() - maven { url 'https://jitpack.io' } - } -} - -apply from: 'https://raw.githubusercontent.com/ligi/gradle-common/master/versions_plugin_stable_only.gradle' +buildscript { + ext { + KOTLIN_VERSION = "2.0.10" + KETHEREUM_VERSION = "0.86.0" + } + + repositories { + gradlePluginPortal() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${KOTLIN_VERSION}" + classpath 'com.github.ben-manes:gradle-versions-plugin:0.51.0' + } +} + +subprojects { + apply plugin: "kotlin" + + repositories { + mavenCentral() + maven { url 'https://jitpack.io' } + } +} + +apply from: 'https://raw.githubusercontent.com/ligi/gradle-common/master/versions_plugin_stable_only.gradle' diff --git a/dtbc.json b/dtbc.json index 4d72ef14b75b..cb7d031c9083 100644 --- a/dtbc.json +++ b/dtbc.json @@ -1,23 +1,23 @@ -{ - "name": "Deviant Token Blockchain", - "chain": "DTBC", - "rpc": [ - "https://rpc.devianttoken.net" - ], - "faucets": [], - "nativeCurrency": { - "name": "Deviant Token Blockchain", - "symbol": "DTBC", - "decimals": 18 - }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], - "infoURL": "https://devianttoken.net", - "shortName": "dtbc", - "chainId": 52027071, - "networkId": 52027071, - "explorers": [{ - "name": "Deviant Explorer", - "url": "https://explorer.devianttoken.net", - "standard": "EIP3091" - }] -} +{ + "name": "Deviant Token Blockchain", + "chain": "DTBC", + "rpc": [ + "https://rpc.devianttoken.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Deviant Token Blockchain", + "symbol": "DTBC", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://devianttoken.net", + "shortName": "dtbc", + "chainId": 52027071, + "networkId": 52027071, + "explorers": [{ + "name": "Deviant Explorer", + "url": "https://explorer.devianttoken.net", + "standard": "EIP3091" + }] +} diff --git a/eip155-560098.json b/eip155-560098.json index 43f2aee487a1..3be3546cccaf 100644 --- a/eip155-560098.json +++ b/eip155-560098.json @@ -1,22 +1,22 @@ -{ - "name": "Novastro Testnet", - "chain": "NOVASTRO", - "rpc": ["https://rpc.novastro-testnet.gelato.digital"], - "faucets": ["https://faucet.novastro.xyz/"], - "nativeCurrency": { - "name": "Testnet Novastro", - "symbol": "NOVAS", - "decimals": 18 - }, - "infoURL": "https://www.novastro.xyz/", - "shortName": "novastro-testnet", - "chainId": 560098, - "networkId": 560098, - "explorers": [ - { - "name": "Novastro Testnet Explorer", - "url": "https://explorer.novastro.xyz", - "standard": "EIP3091" - } - ] -} +{ + "name": "Novastro Testnet", + "chain": "NOVASTRO", + "rpc": ["https://rpc.novastro-testnet.gelato.digital"], + "faucets": ["https://faucet.novastro.xyz/"], + "nativeCurrency": { + "name": "Testnet Novastro", + "symbol": "NOVAS", + "decimals": 18 + }, + "infoURL": "https://www.novastro.xyz/", + "shortName": "novastro-testnet", + "chainId": 560098, + "networkId": 560098, + "explorers": [ + { + "name": "Novastro Testnet Explorer", + "url": "https://explorer.novastro.xyz", + "standard": "EIP3091" + } + ] +} diff --git a/gradlew b/gradlew index 79a61d421cc4..15a88b791928 100755 --- a/gradlew +++ b/gradlew @@ -1,244 +1,244 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f135d..6689b85beecd 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,92 +1,92 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/maintainer_checklist.md b/maintainer_checklist.md index 6c5d0e21b75c..08036d533667 100644 --- a/maintainer_checklist.md +++ b/maintainer_checklist.md @@ -1,10 +1,10 @@ -A checklist for things to check before merging a chain PR. - -* If the PR contains explorers claim to adhere to EIP3091 - check if they really do. -* If the PR contains icons: - * `ipfs get` all icon CIDs - * check if the size of the icons you got match the size given in the PR -* Check if a PR does not remove a chain - chains cannot be re-moved - only deprecated (to protect from replay attacks) -* Check if a PR does not assign a chainID to a newer chain (something like https://github.com/ethereum-lists/chains/pull/1750) - -If anyone has ideas on how to automate these things in CI - PRs welcome! +A checklist for things to check before merging a chain PR. + +* If the PR contains explorers claim to adhere to EIP3091 - check if they really do. +* If the PR contains icons: + * `ipfs get` all icon CIDs + * check if the size of the icons you got match the size given in the PR +* Check if a PR does not remove a chain - chains cannot be re-moved - only deprecated (to protect from replay attacks) +* Check if a PR does not assign a chainID to a newer chain (something like https://github.com/ethereum-lists/chains/pull/1750) + +If anyone has ideas on how to automate these things in CI - PRs welcome! diff --git a/settings.gradle.kts b/settings.gradle.kts index 45bd1adfff4d..bc5b5ab01098 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,3 @@ -include(":model") -include(":httpsloader") +include(":model") +include(":httpsloader") include(":processor") \ No newline at end of file From 648df8e5d183b47d5291d92319e16c51b935289d Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Wed, 9 Oct 2024 18:49:16 +0100 Subject: [PATCH 03/15] Add files via upload From dfa2b82a61823c985e694701498c5537ece7534b Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Wed, 9 Oct 2024 20:59:23 +0100 Subject: [PATCH 04/15] Add files via upload --- .gitignore | 28 +-- .gitmodules | 6 +- .jitpack.yml | 2 +- .prettierignore | 14 +- .prettierrc.json | 10 +- LICENSE | 42 ++-- README.md | 308 ++++++++++++------------- build.gradle | 52 ++--- dtbc.json | 46 ++-- eip155-560098.json | 44 ++-- gradlew | 488 ++++++++++++++++++++-------------------- gradlew.bat | 184 +++++++-------- maintainer_checklist.md | 20 +- settings.gradle.kts | 4 +- 14 files changed, 624 insertions(+), 624 deletions(-) diff --git a/.gitignore b/.gitignore index fcf74e5a45d7..eb58b2f39a70 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,15 @@ -_site -.sass-cache -.jekyll-metadata -.DS_Store -.env -node_modules -.idea -output -.gradle -model/bin -model/build -processor/bin -processor/build -httpsloader/build +_site +.sass-cache +.jekyll-metadata +.DS_Store +.env +node_modules +.idea +output +.gradle +model/bin +model/build +processor/bin +processor/build +httpsloader/build httpsloader/bin \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index b99681f9b687..aad299ee839d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "website"] - path = website - url = https://github.com/FrederikBolding/chainlist.git +[submodule "website"] + path = website + url = https://github.com/FrederikBolding/chainlist.git diff --git a/.jitpack.yml b/.jitpack.yml index e73581c923bf..88cfba7a9352 100644 --- a/.jitpack.yml +++ b/.jitpack.yml @@ -1 +1 @@ -jdk: openjdk11 +jdk: openjdk11 diff --git a/.prettierignore b/.prettierignore index 744d49e59286..275d3e56b446 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,7 +1,7 @@ -# Using Prettier for JSON files only in _data - -# Command to format all existing JSON files -# npx prettier --write --ignore-unknown _data - -model -processor +# Using Prettier for JSON files only in _data + +# Command to format all existing JSON files +# npx prettier --write --ignore-unknown _data + +model +processor diff --git a/.prettierrc.json b/.prettierrc.json index 0a5daee6b960..0c232024ca2b 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,6 @@ -{ - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "singleQuote": false +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": false, + "singleQuote": false } \ No newline at end of file diff --git a/LICENSE b/LICENSE index 1fcff06b39af..ab602974d200 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index e47fd143f6f7..bd22433c843e 100644 --- a/README.md +++ b/README.md @@ -1,154 +1,154 @@ -# EVM-based Chains - -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` as extension. - -## Example - -```json -{ - "name": "Ethereum Mainnet", - "chain": "ETH", - "rpc": [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth" - ], - "faucets": [], - "nativeCurrency": { - "name": "Ether", - "symbol": "ETH", - "decimals": 18 - }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], - "infoURL": "https://ethereum.org", - "shortName": "eth", - "chainId": 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 an 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 an IPFS url that is publicly resolvable - * width and height are positive integers - * format is either "png", "jpg" or "svg" - -If the chain is an L2 or a shard of another chain you can link it to the parent chain like this: - - -```json -{ - ... - "parent": { - "type" : "L2", - "chain": "eip155-1", - "bridges": [ {"url":"https://bridge.arbitrum.io"} ] - } -} -``` - -where you need to specify type 2 and the reference to an existing parent. The field about bridges is optional. - -You can add a `status` field e.g. to deprecate (via status `deprecated`) a chain (a chain should never be deleted as this would open the door to replay attacks) -Other options for `status` are `active` (default) or `incubating` - -## 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) - -## Constraints - - * the shortName and name MUST be unique - see e.g. EIP-3770 on why - * if referencing a parent chain - the chain MUST exist in the repo - * if using a IPFS CID for the icon - the CID MUST be retrievable via `ipfs get` - not only through some gateway (means please do not use pinata for now) - * for more constraints you can look into the CI - -## Collision management - - We cannot allow more than one chain with the same chainID - this would open the door to replay attacks. - The first pull request gets the chainID assigned. When creating a chain we can expect that you read EIP155 which states this repo. - All pull requests trying to replace a chainID because they think their chain is better than the other will be closed. - The only way to get a chain reassigned is when the old chain gets deprecated. This can e.g. be used for testnets that are short-lived. But then you will get the redFlag "reusedChaiID" that should be displayed in clients to warn them about the dangers here. - -## Getting your PR merged -### before PR is submitted - -Before submitting a PR, please verify that checks pass with: - -```bash -$ ./gradlew run - -BUILD SUCCESSFUL in 7s -9 actionable tasks: 9 executed -``` - -Also please run the prettier to format your json according to the style [defined here ](https://github.com/ethereum-lists/chains/blob/master/.prettierrc.json) -e.g. run - -``` -npx prettier --write _data/*/*.json -``` - -### Once PR is submitted - - * Make sure CI is green. There will likely be no review when the CI is red. - * When making changes that fix the CI problems - please re-request a review - otherwise it is too much work to track such changes with so many PRs daily - -## Usages -### Tools - * [MESC](https://paradigmxyz.github.io/mesc) - -### Explorers - * [Otterscan](https://otterscan.io) - -### Wallets - * [WallETH](https://walleth.org) - * [TREZOR](https://trezor.io) - * [Minerva Wallet](https://minerva.digital) - -### EIPs - * EIP-155 - * EIP-3014 - * EIP-3770 - * EIP-4527 - -### Listing sites - * [chainid.network](https://chainid.network) / [chainlist.wtf](https://chainlist.wtf) - * [chainlist.org](https://chainlist.org) - * [Chainlink docs](https://docs.chain.link/) - * [dRPC Chainlist - Load-balanced public nodes](https://drpc.org/chainlist) - * [eth-chains](https://github.com/taylorjdawson/eth-chains) - * [EVM-BOX](https://github.com/izayl/evm-box) - * [evmchain.info](https://evmchain.info) - * [evmchainlist.org](https://evmchainlist.org) - * [networks.vercel.app](https://networks.vercel.app) - * [Wagmi compatible chain configurations](https://spenhouet.com/chains) - -### Other - * [FaucETH](https://github.com/komputing/FaucETH) - * [Sourcify playground](https://playground.sourcify.dev) - * [Smart Contract UI](https://xtools-at.github.io/smartcontract-ui) - - * Your project - contact us to add it here! +# EVM-based Chains + +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` as extension. + +## Example + +```json +{ + "name": "Ethereum Mainnet", + "chain": "ETH", + "rpc": [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth" + ], + "faucets": [], + "nativeCurrency": { + "name": "Ether", + "symbol": "ETH", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ethereum.org", + "shortName": "eth", + "chainId": 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 an 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 an IPFS url that is publicly resolvable + * width and height are positive integers + * format is either "png", "jpg" or "svg" + +If the chain is an L2 or a shard of another chain you can link it to the parent chain like this: + + +```json +{ + ... + "parent": { + "type" : "L2", + "chain": "eip155-1", + "bridges": [ {"url":"https://bridge.arbitrum.io"} ] + } +} +``` + +where you need to specify type 2 and the reference to an existing parent. The field about bridges is optional. + +You can add a `status` field e.g. to deprecate (via status `deprecated`) a chain (a chain should never be deleted as this would open the door to replay attacks) +Other options for `status` are `active` (default) or `incubating` + +## 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) + +## Constraints + + * the shortName and name MUST be unique - see e.g. EIP-3770 on why + * if referencing a parent chain - the chain MUST exist in the repo + * if using a IPFS CID for the icon - the CID MUST be retrievable via `ipfs get` - not only through some gateway (means please do not use pinata for now) + * for more constraints you can look into the CI + +## Collision management + + We cannot allow more than one chain with the same chainID - this would open the door to replay attacks. + The first pull request gets the chainID assigned. When creating a chain we can expect that you read EIP155 which states this repo. + All pull requests trying to replace a chainID because they think their chain is better than the other will be closed. + The only way to get a chain reassigned is when the old chain gets deprecated. This can e.g. be used for testnets that are short-lived. But then you will get the redFlag "reusedChaiID" that should be displayed in clients to warn them about the dangers here. + +## Getting your PR merged +### before PR is submitted + +Before submitting a PR, please verify that checks pass with: + +```bash +$ ./gradlew run + +BUILD SUCCESSFUL in 7s +9 actionable tasks: 9 executed +``` + +Also please run the prettier to format your json according to the style [defined here ](https://github.com/ethereum-lists/chains/blob/master/.prettierrc.json) +e.g. run + +``` +npx prettier --write _data/*/*.json +``` + +### Once PR is submitted + + * Make sure CI is green. There will likely be no review when the CI is red. + * When making changes that fix the CI problems - please re-request a review - otherwise it is too much work to track such changes with so many PRs daily + +## Usages +### Tools + * [MESC](https://paradigmxyz.github.io/mesc) + +### Explorers + * [Otterscan](https://otterscan.io) + +### Wallets + * [WallETH](https://walleth.org) + * [TREZOR](https://trezor.io) + * [Minerva Wallet](https://minerva.digital) + +### EIPs + * EIP-155 + * EIP-3014 + * EIP-3770 + * EIP-4527 + +### Listing sites + * [chainid.network](https://chainid.network) / [chainlist.wtf](https://chainlist.wtf) + * [chainlist.org](https://chainlist.org) + * [Chainlink docs](https://docs.chain.link/) + * [dRPC Chainlist - Load-balanced public nodes](https://drpc.org/chainlist) + * [eth-chains](https://github.com/taylorjdawson/eth-chains) + * [EVM-BOX](https://github.com/izayl/evm-box) + * [evmchain.info](https://evmchain.info) + * [evmchainlist.org](https://evmchainlist.org) + * [networks.vercel.app](https://networks.vercel.app) + * [Wagmi compatible chain configurations](https://spenhouet.com/chains) + +### Other + * [FaucETH](https://github.com/komputing/FaucETH) + * [Sourcify playground](https://playground.sourcify.dev) + * [Smart Contract UI](https://xtools-at.github.io/smartcontract-ui) + + * Your project - contact us to add it here! diff --git a/build.gradle b/build.gradle index b2e41c185153..9810e41bdaac 100644 --- a/build.gradle +++ b/build.gradle @@ -1,26 +1,26 @@ -buildscript { - ext { - KOTLIN_VERSION = "2.0.10" - KETHEREUM_VERSION = "0.86.0" - } - - repositories { - gradlePluginPortal() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${KOTLIN_VERSION}" - classpath 'com.github.ben-manes:gradle-versions-plugin:0.51.0' - } -} - -subprojects { - apply plugin: "kotlin" - - repositories { - mavenCentral() - maven { url 'https://jitpack.io' } - } -} - -apply from: 'https://raw.githubusercontent.com/ligi/gradle-common/master/versions_plugin_stable_only.gradle' +buildscript { + ext { + KOTLIN_VERSION = "2.0.10" + KETHEREUM_VERSION = "0.86.0" + } + + repositories { + gradlePluginPortal() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${KOTLIN_VERSION}" + classpath 'com.github.ben-manes:gradle-versions-plugin:0.51.0' + } +} + +subprojects { + apply plugin: "kotlin" + + repositories { + mavenCentral() + maven { url 'https://jitpack.io' } + } +} + +apply from: 'https://raw.githubusercontent.com/ligi/gradle-common/master/versions_plugin_stable_only.gradle' diff --git a/dtbc.json b/dtbc.json index cb7d031c9083..4d72ef14b75b 100644 --- a/dtbc.json +++ b/dtbc.json @@ -1,23 +1,23 @@ -{ - "name": "Deviant Token Blockchain", - "chain": "DTBC", - "rpc": [ - "https://rpc.devianttoken.net" - ], - "faucets": [], - "nativeCurrency": { - "name": "Deviant Token Blockchain", - "symbol": "DTBC", - "decimals": 18 - }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], - "infoURL": "https://devianttoken.net", - "shortName": "dtbc", - "chainId": 52027071, - "networkId": 52027071, - "explorers": [{ - "name": "Deviant Explorer", - "url": "https://explorer.devianttoken.net", - "standard": "EIP3091" - }] -} +{ + "name": "Deviant Token Blockchain", + "chain": "DTBC", + "rpc": [ + "https://rpc.devianttoken.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Deviant Token Blockchain", + "symbol": "DTBC", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://devianttoken.net", + "shortName": "dtbc", + "chainId": 52027071, + "networkId": 52027071, + "explorers": [{ + "name": "Deviant Explorer", + "url": "https://explorer.devianttoken.net", + "standard": "EIP3091" + }] +} diff --git a/eip155-560098.json b/eip155-560098.json index 3be3546cccaf..43f2aee487a1 100644 --- a/eip155-560098.json +++ b/eip155-560098.json @@ -1,22 +1,22 @@ -{ - "name": "Novastro Testnet", - "chain": "NOVASTRO", - "rpc": ["https://rpc.novastro-testnet.gelato.digital"], - "faucets": ["https://faucet.novastro.xyz/"], - "nativeCurrency": { - "name": "Testnet Novastro", - "symbol": "NOVAS", - "decimals": 18 - }, - "infoURL": "https://www.novastro.xyz/", - "shortName": "novastro-testnet", - "chainId": 560098, - "networkId": 560098, - "explorers": [ - { - "name": "Novastro Testnet Explorer", - "url": "https://explorer.novastro.xyz", - "standard": "EIP3091" - } - ] -} +{ + "name": "Novastro Testnet", + "chain": "NOVASTRO", + "rpc": ["https://rpc.novastro-testnet.gelato.digital"], + "faucets": ["https://faucet.novastro.xyz/"], + "nativeCurrency": { + "name": "Testnet Novastro", + "symbol": "NOVAS", + "decimals": 18 + }, + "infoURL": "https://www.novastro.xyz/", + "shortName": "novastro-testnet", + "chainId": 560098, + "networkId": 560098, + "explorers": [ + { + "name": "Novastro Testnet Explorer", + "url": "https://explorer.novastro.xyz", + "standard": "EIP3091" + } + ] +} diff --git a/gradlew b/gradlew index 15a88b791928..79a61d421cc4 100755 --- a/gradlew +++ b/gradlew @@ -1,244 +1,244 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 6689b85beecd..93e3f59f135d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,92 +1,92 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/maintainer_checklist.md b/maintainer_checklist.md index 08036d533667..6c5d0e21b75c 100644 --- a/maintainer_checklist.md +++ b/maintainer_checklist.md @@ -1,10 +1,10 @@ -A checklist for things to check before merging a chain PR. - -* If the PR contains explorers claim to adhere to EIP3091 - check if they really do. -* If the PR contains icons: - * `ipfs get` all icon CIDs - * check if the size of the icons you got match the size given in the PR -* Check if a PR does not remove a chain - chains cannot be re-moved - only deprecated (to protect from replay attacks) -* Check if a PR does not assign a chainID to a newer chain (something like https://github.com/ethereum-lists/chains/pull/1750) - -If anyone has ideas on how to automate these things in CI - PRs welcome! +A checklist for things to check before merging a chain PR. + +* If the PR contains explorers claim to adhere to EIP3091 - check if they really do. +* If the PR contains icons: + * `ipfs get` all icon CIDs + * check if the size of the icons you got match the size given in the PR +* Check if a PR does not remove a chain - chains cannot be re-moved - only deprecated (to protect from replay attacks) +* Check if a PR does not assign a chainID to a newer chain (something like https://github.com/ethereum-lists/chains/pull/1750) + +If anyone has ideas on how to automate these things in CI - PRs welcome! diff --git a/settings.gradle.kts b/settings.gradle.kts index bc5b5ab01098..45bd1adfff4d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,3 @@ -include(":model") -include(":httpsloader") +include(":model") +include(":httpsloader") include(":processor") \ No newline at end of file From da3434a1c331c2d15d1fb308e8253bf16ffce5c5 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Thu, 10 Oct 2024 21:35:26 +0100 Subject: [PATCH 05/15] Add files via upload --- dtbc.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dtbc.json b/dtbc.json index 4d72ef14b75b..05977a6a88df 100644 --- a/dtbc.json +++ b/dtbc.json @@ -15,9 +15,5 @@ "shortName": "dtbc", "chainId": 52027071, "networkId": 52027071, - "explorers": [{ - "name": "Deviant Explorer", - "url": "https://explorer.devianttoken.net", - "standard": "EIP3091" }] } From 6a4f6d63513569a2f6e45f662747a8c0e7fb1549 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Sun, 13 Oct 2024 15:56:37 +0100 Subject: [PATCH 06/15] Create eip155-52027071 --- _data/chains/eip155-52027071 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 _data/chains/eip155-52027071 diff --git a/_data/chains/eip155-52027071 b/_data/chains/eip155-52027071 new file mode 100644 index 000000000000..05977a6a88df --- /dev/null +++ b/_data/chains/eip155-52027071 @@ -0,0 +1,19 @@ +{ + "name": "Deviant Token Blockchain", + "chain": "DTBC", + "rpc": [ + "https://rpc.devianttoken.net" + ], + "faucets": [], + "nativeCurrency": { + "name": "Deviant Token Blockchain", + "symbol": "DTBC", + "decimals": 18 + }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://devianttoken.net", + "shortName": "dtbc", + "chainId": 52027071, + "networkId": 52027071, + }] +} From cadaf8337d7fc49c9c5e152c0ceb448bec28c80d Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Sun, 13 Oct 2024 15:58:22 +0100 Subject: [PATCH 07/15] Delete dtbc.json --- dtbc.json | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 dtbc.json diff --git a/dtbc.json b/dtbc.json deleted file mode 100644 index 05977a6a88df..000000000000 --- a/dtbc.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Deviant Token Blockchain", - "chain": "DTBC", - "rpc": [ - "https://rpc.devianttoken.net" - ], - "faucets": [], - "nativeCurrency": { - "name": "Deviant Token Blockchain", - "symbol": "DTBC", - "decimals": 18 - }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], - "infoURL": "https://devianttoken.net", - "shortName": "dtbc", - "chainId": 52027071, - "networkId": 52027071, - }] -} From a03e7195f3cd32ed809999b2ef25b2888774227d Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Sun, 13 Oct 2024 16:23:35 +0100 Subject: [PATCH 08/15] Update eip155-52027071 --- _data/chains/eip155-52027071 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/chains/eip155-52027071 b/_data/chains/eip155-52027071 index 05977a6a88df..81e4b28bd0f3 100644 --- a/_data/chains/eip155-52027071 +++ b/_data/chains/eip155-52027071 @@ -15,5 +15,5 @@ "shortName": "dtbc", "chainId": 52027071, "networkId": 52027071, - }] + } } From 90412a311b8cceb4ffe870c267426df96e9c2c20 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Sun, 13 Oct 2024 16:26:30 +0100 Subject: [PATCH 09/15] Rename eip155-52027071 to eip155-52027071.json --- _data/chains/{eip155-52027071 => eip155-52027071.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _data/chains/{eip155-52027071 => eip155-52027071.json} (100%) diff --git a/_data/chains/eip155-52027071 b/_data/chains/eip155-52027071.json similarity index 100% rename from _data/chains/eip155-52027071 rename to _data/chains/eip155-52027071.json From 1c52e2ee296b6d44c62e865e45e791c929df4dbc Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Sun, 13 Oct 2024 16:34:42 +0100 Subject: [PATCH 10/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index 81e4b28bd0f3..34e33752a369 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -10,10 +10,12 @@ "symbol": "DTBC", "decimals": 18 }, - "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "features": [ + { "name": "EIP155" }, + { "name": "EIP1559" } + ], "infoURL": "https://devianttoken.net", "shortName": "dtbc", "chainId": 52027071, - "networkId": 52027071, - } + "networkId": 52027071 } From 519101c9d7cb6e98ab423cac5bf202e8d7e7782b Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Mon, 14 Oct 2024 07:23:34 +0100 Subject: [PATCH 11/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index 34e33752a369..935237d6031f 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -10,12 +10,9 @@ "symbol": "DTBC", "decimals": 18 }, - "features": [ - { "name": "EIP155" }, - { "name": "EIP1559" } - ], "infoURL": "https://devianttoken.net", "shortName": "dtbc", "chainId": 52027071, "networkId": 52027071 + "explorers":[] } From 2ab4b4582057c09a9d405110015167612ce882be Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Mon, 14 Oct 2024 07:24:20 +0100 Subject: [PATCH 12/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index 935237d6031f..3e15fb01aba1 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -14,5 +14,5 @@ "shortName": "dtbc", "chainId": 52027071, "networkId": 52027071 - "explorers":[] + "explorers": [] } From 22e80d61f4371a5885681b6d14c63e95683f185a Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Mon, 14 Oct 2024 07:30:15 +0100 Subject: [PATCH 13/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 1 + 1 file changed, 1 insertion(+) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index 3e15fb01aba1..4b2fa09c19de 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -1,6 +1,7 @@ { "name": "Deviant Token Blockchain", "chain": "DTBC", + "status": "incubating", "rpc": [ "https://rpc.devianttoken.net" ], From b5a195dd2ddc13c775a5216f6aead832ab606a31 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Mon, 14 Oct 2024 07:42:25 +0100 Subject: [PATCH 14/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index 4b2fa09c19de..eb1b51b8bf64 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -14,6 +14,6 @@ "infoURL": "https://devianttoken.net", "shortName": "dtbc", "chainId": 52027071, - "networkId": 52027071 + "networkId": 52027071, "explorers": [] } From 5dbbbc409a3c444c43bb6fe1262193cae04c55e8 Mon Sep 17 00:00:00 2001 From: deviantmyk Date: Mon, 14 Oct 2024 08:02:11 +0100 Subject: [PATCH 15/15] Update eip155-52027071.json --- _data/chains/eip155-52027071.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/_data/chains/eip155-52027071.json b/_data/chains/eip155-52027071.json index eb1b51b8bf64..04bd66eafe5c 100644 --- a/_data/chains/eip155-52027071.json +++ b/_data/chains/eip155-52027071.json @@ -2,12 +2,10 @@ "name": "Deviant Token Blockchain", "chain": "DTBC", "status": "incubating", - "rpc": [ - "https://rpc.devianttoken.net" - ], + "rpc": ["https://rpc.devianttoken.net"], "faucets": [], "nativeCurrency": { - "name": "Deviant Token Blockchain", + "name": "Deviant Token", "symbol": "DTBC", "decimals": 18 },