Los datos de origen están en _data/cadenas. Cada cadena tiene su propio archivo con el nombre de archivo como la representación CAIP-2 como nombre y .json
como extensión.
{
"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 "
}]
}
Cuando se usa un icono en la red o en un explorador, debe haber un JSON en _data/iconos con el nombre utilizado (por ejemplo, en el ejemplo anterior, debe haber un ethereum.json
y un etherscan.json
allí) - El ícono Jsons Se ve así:
[
{
"url" : " ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt " ,
"width" : 1000 ,
"height" : 1628 ,
"format" : " png "
}
]
dónde:
Si la cadena es un L2 o un fragmento de otra cadena, puede vincularla a la cadena principal de esta manera:
{
...
"parent" : {
"type" : " L2 " ,
"chain" : " eip155-1 " ,
"bridges" : [ { "url" : " https://bridge.arbitrum.io " } ]
}
}
donde necesita especificar el tipo 2 y la referencia a un padre existente. El campo sobre los puentes es opcional.
Puede agregar un campo status
, por ejemplo, para desaprobar (a través del estado deprecated
) una cadena (una cadena nunca debe eliminarse, ya que esto abriría la puerta a los ataques de reproducción) Otras opciones para status
están active
(predeterminadas) o incubating
También hay archivos JSON agregados con todas las cadenas ensambladas automáticamente:
ipfs get
, no solo a través de alguna puerta de enlace (significa que no use piNATA por ahora)No podemos permitir más de una cadena con la misma cadena: esto abriría la puerta para reproducir ataques. La primera solicitud de extracción se asigna la cadena. Al crear una cadena, podemos esperar que lea EIP155 que indique este repositorio. Todas las solicitudes de extracción intentan reemplazar una Cadena porque creen que su cadena es mejor de lo que la otra estará cerrada. La única forma de reasignar una cadena es cuando la antigua cadena se desaprueba. Esto se puede utilizar para bolas de prueba que son de corta duración. Pero luego obtendrá el "reutilizado" Redflag que debe mostrarse en los clientes para advertirles sobre los peligros aquí.
Antes de enviar un PR, verifique que los cheques pasen con:
$ ./gradlew run
BUILD SUCCESSFUL in 7s
9 actionable tasks: 9 executed
También ejecute el más bonito para formatear su JSON de acuerdo con el estilo definido aquí, por ejemplo, Run
npx prettier --write _data/*/*.json
Faucet
Sourcify Playground
UI de contrato inteligente
Su proyecto: ¡contáctenos para agregarlo aquí!