diff --git a/data/chains/V2/arbone/arbgoerli/meta.ts b/data/chains/V2/arbone/testnets/arbgoerli/meta.ts similarity index 61% rename from data/chains/V2/arbone/arbgoerli/meta.ts rename to data/chains/V2/arbone/testnets/arbgoerli/meta.ts index 05f7553..6ed7227 100644 --- a/data/chains/V2/arbone/arbgoerli/meta.ts +++ b/data/chains/V2/arbone/testnets/arbgoerli/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'arbgoerli', graph_id: null, name: 'Arbitrum Goerli', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: null, diff --git a/data/chains/V2/arbone/arbsepolia/meta.ts b/data/chains/V2/arbone/testnets/arbsepolia/meta.ts similarity index 66% rename from data/chains/V2/arbone/arbsepolia/meta.ts rename to data/chains/V2/arbone/testnets/arbsepolia/meta.ts index 3977bdc..a6dc0be 100644 --- a/data/chains/V2/arbone/arbsepolia/meta.ts +++ b/data/chains/V2/arbone/testnets/arbsepolia/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'arbsepolia', graph_id: 'arbitrum-sepolia', name: 'Arbitrum Sepolia', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2024-05-03T00:00:00.000Z', diff --git a/data/chains/V2/bsc/chapel/meta.ts b/data/chains/V2/bsc/testnets/chapel/meta.ts similarity index 64% rename from data/chains/V2/bsc/chapel/meta.ts rename to data/chains/V2/bsc/testnets/chapel/meta.ts index 253f841..db7c725 100644 --- a/data/chains/V2/bsc/chapel/meta.ts +++ b/data/chains/V2/bsc/testnets/chapel/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'chapel', graph_id: 'chapel', name: 'Chapel', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/celo/alfajores/meta.ts b/data/chains/V2/celo/testnets/alfajores/meta.ts similarity index 61% rename from data/chains/V2/celo/alfajores/meta.ts rename to data/chains/V2/celo/testnets/alfajores/meta.ts index 6580e31..171b785 100644 --- a/data/chains/V2/celo/alfajores/meta.ts +++ b/data/chains/V2/celo/testnets/alfajores/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'alfajores', graph_id: null, name: 'Alfajores', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: null, diff --git a/data/chains/V2/chains.json b/data/chains/V2/chains.json index 59ed5f8..421d626 100644 --- a/data/chains/V2/chains.json +++ b/data/chains/V2/chains.json @@ -38,6 +38,11 @@ "graph_id": null, "name": "Holesky", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -59,6 +64,11 @@ "graph_id": "sepolia", "name": "Sepolia", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -80,6 +90,11 @@ "graph_id": null, "name": "Goerli", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -97,12 +112,17 @@ "index": 6 } ], - "consensus_layers": [ + "consensus": [ { "id": "eth-cl", "graph_id": null, "name": "Ethereum Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -120,6 +140,11 @@ "graph_id": null, "name": "Holesky Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -137,6 +162,11 @@ "graph_id": null, "name": "Sepolia Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -154,6 +184,11 @@ "graph_id": null, "name": "Goerli Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -202,7 +237,7 @@ "deprecated_at": null } }, - "index": 1000 + "index": 8 }, { "id": "polygon", @@ -238,13 +273,18 @@ "deprecated_at": null } }, - "index": 2000, + "index": 9, "testnets": [ { "id": "amoy", "graph_id": "polygon-amoy", "name": "Amoy", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2024-04-12T00:00:00.000Z", @@ -259,13 +299,18 @@ "deprecated_at": null } }, - "index": 2001 + "index": 10 }, { "id": "mumbai", "graph_id": null, "name": "Mumbai", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -280,7 +325,7 @@ "deprecated_at": "2024-04-12T00:00:00.000Z" } }, - "index": 2002 + "index": 11 } ] }, @@ -319,13 +364,18 @@ "deprecated_at": null } }, - "index": 3000, + "index": 12, "testnets": [ { "id": "chapel", "graph_id": "chapel", "name": "Chapel", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -340,7 +390,7 @@ "deprecated_at": null } }, - "index": 3001 + "index": 13 } ] }, @@ -375,13 +425,18 @@ "deprecated_at": null } }, - "index": 4000, + "index": 14, "testnets": [ { "id": "arbgoerli", "graph_id": null, "name": "Arbitrum Goerli", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": null, @@ -396,13 +451,18 @@ "deprecated_at": null } }, - "index": 4001 + "index": 15 }, { "id": "arbsepolia", "graph_id": "arbitrum-sepolia", "name": "Arbitrum Sepolia", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2024-05-03T00:00:00.000Z", @@ -417,13 +477,18 @@ "deprecated_at": null } }, - "index": 4002 + "index": 16 }, { "id": "chiado", "graph_id": null, "name": "Chiado", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": null, @@ -438,15 +503,20 @@ "deprecated_at": null } }, - "index": 4004 + "index": 18 } ], - "consensus_layers": [ + "consensus": [ { "id": "chiado-cl", "graph_id": null, "name": "Chiado Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -457,7 +527,7 @@ "deprecated_at": null } }, - "index": 4003 + "index": 17 } ] }, @@ -493,7 +563,7 @@ "deprecated_at": null } }, - "index": 5000 + "index": 19 }, { "id": "optimism", @@ -527,7 +597,7 @@ "deprecated_at": null } }, - "index": 6000 + "index": 20 }, { "id": "base", @@ -561,7 +631,7 @@ "deprecated_at": null } }, - "index": 7000 + "index": 21 }, { "id": "decimal", @@ -595,7 +665,7 @@ "deprecated_at": null } }, - "index": 8000 + "index": 22 }, { "id": "gnosis", @@ -629,13 +699,18 @@ "deprecated_at": null } }, - "index": 9000, - "consensus_layers": [ + "index": 23, + "consensus": [ { "id": "gnosis-cl", "graph_id": null, "name": "Gnosis Consensus Layer", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": "2023-03-08T00:00:00.000Z", @@ -646,7 +721,7 @@ "deprecated_at": null } }, - "index": 9001 + "index": 24 } ] }, @@ -682,7 +757,7 @@ "deprecated_at": null } }, - "index": 10000 + "index": 25 }, { "id": "celo", @@ -716,13 +791,18 @@ "deprecated_at": null } }, - "index": 11000, + "index": 26, "testnets": [ { "id": "alfajores", "graph_id": null, "name": "Alfajores", "alt_names": [], + "standard": "erc20", + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, "supported_services": { "firehose": { "released_at": null, @@ -737,7 +817,7 @@ "deprecated_at": null } }, - "index": 11001 + "index": 27 } ] }, @@ -773,13 +853,18 @@ "deprecated_at": null } }, - "index": 12000, + "index": 28, "testnets": [ { "id": "neartest", "graph_id": "near-testnet", "name": "Near-testnet", "alt_names": [], + "standard": "near", + "block_type": { + "label": "sf.near.type.v1.Block", + "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -794,7 +879,7 @@ "deprecated_at": null } }, - "index": 12001 + "index": 29 } ] }, @@ -830,7 +915,7 @@ "deprecated_at": null } }, - "index": 13000 + "index": 30 }, { "id": "cosmoshub", @@ -864,13 +949,18 @@ "deprecated_at": null } }, - "index": 14000, + "index": 31, "testnets": [ { "id": "theta", "graph_id": "theta-testnet-001", "name": "Theta", "alt_names": [], + "standard": "cosmos", + "block_type": { + "label": "sf.cosmos.type.v1.Block", + "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -885,13 +975,18 @@ "deprecated_at": null } }, - "index": 14001 + "index": 32 }, { "id": "juno", "graph_id": null, "name": "Juno", "alt_names": [], + "standard": "cosmos", + "block_type": { + "label": "sf.cosmos.type.v1.Block", + "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -906,7 +1001,7 @@ "deprecated_at": null } }, - "index": 14002 + "index": 33 } ] }, @@ -942,7 +1037,7 @@ "deprecated_at": null } }, - "index": 15000 + "index": 34 }, { "id": "moonbeam", @@ -976,7 +1071,7 @@ "deprecated_at": null } }, - "index": 16000 + "index": 35 }, { "id": "scroll", @@ -1010,7 +1105,7 @@ "deprecated_at": null } }, - "index": 17000 + "index": 36 }, { "id": "starknet", @@ -1044,7 +1139,7 @@ "deprecated_at": null } }, - "index": 18000 + "index": 37 }, { "id": "eos", @@ -1077,13 +1172,46 @@ "deprecated_at": null } }, - "index": 19000, + "index": 38, + "evms": [ + { + "id": "eosevm", + "graph_id": null, + "name": "EOS EVM", + "alt_names": [], + "standard": "antelope", + "block_type": { + "label": "sf.antelope.type.v1.Block", + "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" + }, + "supported_services": { + "firehose": { + "released_at": "2023-12-01T00:00:00.000Z", + "deprecated_at": null + }, + "substreams": { + "released_at": "2023-12-01T00:00:00.000Z", + "deprecated_at": null + }, + "rpc": { + "released_at": null, + "deprecated_at": null + } + }, + "index": 39 + } + ], "testnets": [ { "id": "jungle4", "graph_id": null, "name": "Jungle4", "alt_names": [], + "standard": "antelope", + "block_type": { + "label": "sf.antelope.type.v1.Block", + "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -1098,13 +1226,18 @@ "deprecated_at": null } }, - "index": 19001 + "index": 40 }, { "id": "kylin", "graph_id": null, "name": "Kylin", "alt_names": [], + "standard": "antelope", + "block_type": { + "label": "sf.antelope.type.v1.Block", + "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -1119,7 +1252,7 @@ "deprecated_at": null } }, - "index": 19002 + "index": 41 } ] }, @@ -1155,13 +1288,18 @@ "deprecated_at": null } }, - "index": 20000, + "index": 42, "testnets": [ { "id": "waxtest", "graph_id": null, "name": "WAX Test", "alt_names": [], + "standard": "antelope", + "block_type": { + "label": "sf.antelope.type.v1.Block", + "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -1176,7 +1314,7 @@ "deprecated_at": null } }, - "index": 20001 + "index": 43 } ] }, @@ -1212,13 +1350,18 @@ "deprecated_at": null } }, - "index": 21000, + "index": 44, "testnets": [ { "id": "telostest", "graph_id": null, "name": "Telos Test", "alt_names": [], + "standard": "antelope", + "block_type": { + "label": "sf.antelope.type.v1.Block", + "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" + }, "supported_services": { "firehose": { "released_at": "2023-12-01T00:00:00.000Z", @@ -1233,7 +1376,7 @@ "deprecated_at": null } }, - "index": 21001 + "index": 45 } ] }, @@ -1269,6 +1412,6 @@ "deprecated_at": null } }, - "index": 22000 + "index": 46 } ] \ No newline at end of file diff --git a/data/chains/V2/cosmoshub/juno/meta.ts b/data/chains/V2/cosmoshub/testnets/juno/meta.ts similarity index 62% rename from data/chains/V2/cosmoshub/juno/meta.ts rename to data/chains/V2/cosmoshub/testnets/juno/meta.ts index 6e76cf2..0a46223 100644 --- a/data/chains/V2/cosmoshub/juno/meta.ts +++ b/data/chains/V2/cosmoshub/testnets/juno/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'juno', graph_id: null, name: 'Juno', alt_names: [], + standard: 'cosmos', + block_type: { + label: 'sf.cosmos.type.v1.Block', + url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/cosmoshub/theta/meta.ts b/data/chains/V2/cosmoshub/testnets/theta/meta.ts similarity index 63% rename from data/chains/V2/cosmoshub/theta/meta.ts rename to data/chains/V2/cosmoshub/testnets/theta/meta.ts index e3b87d3..ef65e04 100644 --- a/data/chains/V2/cosmoshub/theta/meta.ts +++ b/data/chains/V2/cosmoshub/testnets/theta/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'theta', graph_id: 'theta-testnet-001', name: 'Theta', alt_names: [], + standard: 'cosmos', + block_type: { + label: 'sf.cosmos.type.v1.Block', + url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/eos/evms/eosevm/meta.ts b/data/chains/V2/eos/evms/eosevm/meta.ts new file mode 100644 index 0000000..fb1717d --- /dev/null +++ b/data/chains/V2/eos/evms/eosevm/meta.ts @@ -0,0 +1,29 @@ +import { EVM } from '../../../../../../types/chain.types'; + +const meta: EVM = { + id: 'eosevm', + graph_id: null, + name: 'EOS EVM', + alt_names: [], + standard: 'antelope', + block_type: { + label: 'sf.antelope.type.v1.Block', + url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', + }, + supported_services: { + firehose: { + released_at: '2023-12-01T00:00:00.000Z', + deprecated_at: null, + }, + substreams: { + released_at: '2023-12-01T00:00:00.000Z', + deprecated_at: null, + }, + rpc: { + released_at: null, + deprecated_at: null, + }, + }, +}; + +export default meta; diff --git a/data/chains/V2/eos/jungle4/meta.ts b/data/chains/V2/eos/testnets/jungle4/meta.ts similarity index 65% rename from data/chains/V2/eos/jungle4/meta.ts rename to data/chains/V2/eos/testnets/jungle4/meta.ts index cbab796..edefd1b 100644 --- a/data/chains/V2/eos/jungle4/meta.ts +++ b/data/chains/V2/eos/testnets/jungle4/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'jungle4', graph_id: null, name: 'Jungle4', alt_names: [], + standard: 'antelope', + block_type: { + label: 'sf.antelope.type.v1.Block', + url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/eos/kylin/meta.ts b/data/chains/V2/eos/testnets/kylin/meta.ts similarity index 63% rename from data/chains/V2/eos/kylin/meta.ts rename to data/chains/V2/eos/testnets/kylin/meta.ts index 2c1a579..feeb480 100644 --- a/data/chains/V2/eos/kylin/meta.ts +++ b/data/chains/V2/eos/testnets/kylin/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'kylin', graph_id: null, name: 'Kylin', alt_names: [], + standard: 'antelope', + block_type: { + label: 'sf.antelope.type.v1.Block', + url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/eth/eth-cl/meta.ts b/data/chains/V2/eth/consensus/eth-cl/meta.ts similarity index 60% rename from data/chains/V2/eth/eth-cl/meta.ts rename to data/chains/V2/eth/consensus/eth-cl/meta.ts index 82e6709..b735f75 100644 --- a/data/chains/V2/eth/eth-cl/meta.ts +++ b/data/chains/V2/eth/consensus/eth-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'eth-cl', graph_id: null, name: 'Ethereum Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/eth/goerli-cl/meta.ts b/data/chains/V2/eth/consensus/goerli-cl/meta.ts similarity index 62% rename from data/chains/V2/eth/goerli-cl/meta.ts rename to data/chains/V2/eth/consensus/goerli-cl/meta.ts index 3fa4409..1b34cb0 100644 --- a/data/chains/V2/eth/goerli-cl/meta.ts +++ b/data/chains/V2/eth/consensus/goerli-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'goerli-cl', graph_id: null, name: 'Goerli Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/eth/holesky-cl/meta.ts b/data/chains/V2/eth/consensus/holesky-cl/meta.ts similarity index 60% rename from data/chains/V2/eth/holesky-cl/meta.ts rename to data/chains/V2/eth/consensus/holesky-cl/meta.ts index e5a3de9..c49233c 100644 --- a/data/chains/V2/eth/holesky-cl/meta.ts +++ b/data/chains/V2/eth/consensus/holesky-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'holesky-cl', graph_id: null, name: 'Holesky Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/eth/sepolia-cl/meta.ts b/data/chains/V2/eth/consensus/sepolia-cl/meta.ts similarity index 60% rename from data/chains/V2/eth/sepolia-cl/meta.ts rename to data/chains/V2/eth/consensus/sepolia-cl/meta.ts index ed64c1a..4b9880e 100644 --- a/data/chains/V2/eth/sepolia-cl/meta.ts +++ b/data/chains/V2/eth/consensus/sepolia-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'sepolia-cl', graph_id: null, name: 'Sepolia Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/eth/goerli/meta.ts b/data/chains/V2/eth/testnets/goerli/meta.ts similarity index 67% rename from data/chains/V2/eth/goerli/meta.ts rename to data/chains/V2/eth/testnets/goerli/meta.ts index 79cd79d..aba0008 100644 --- a/data/chains/V2/eth/goerli/meta.ts +++ b/data/chains/V2/eth/testnets/goerli/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'goerli', graph_id: null, name: 'Goerli', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/eth/holesky/meta.ts b/data/chains/V2/eth/testnets/holesky/meta.ts similarity index 64% rename from data/chains/V2/eth/holesky/meta.ts rename to data/chains/V2/eth/testnets/holesky/meta.ts index df8e203..ae250e1 100644 --- a/data/chains/V2/eth/holesky/meta.ts +++ b/data/chains/V2/eth/testnets/holesky/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'holesky', graph_id: null, name: 'Holesky', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/eth/sepolia/meta.ts b/data/chains/V2/eth/testnets/sepolia/meta.ts similarity index 65% rename from data/chains/V2/eth/sepolia/meta.ts rename to data/chains/V2/eth/testnets/sepolia/meta.ts index 2eb3af7..159431b 100644 --- a/data/chains/V2/eth/sepolia/meta.ts +++ b/data/chains/V2/eth/testnets/sepolia/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'sepolia', graph_id: 'sepolia', name: 'Sepolia', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/gnosis/chiado-cl/meta.ts b/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts similarity index 60% rename from data/chains/V2/gnosis/chiado-cl/meta.ts rename to data/chains/V2/gnosis/consensus/chiado-cl/meta.ts index a173f7f..c455649 100644 --- a/data/chains/V2/gnosis/chiado-cl/meta.ts +++ b/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'chiado-cl', graph_id: null, name: 'Chiado Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/gnosis/gnosis-cl/meta.ts b/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts similarity index 60% rename from data/chains/V2/gnosis/gnosis-cl/meta.ts rename to data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts index f4d188d..e3c1fa1 100644 --- a/data/chains/V2/gnosis/gnosis-cl/meta.ts +++ b/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts @@ -1,10 +1,15 @@ -import { ConsensusLayer } from '../../../../../types/chain.types'; +import { ConsensusLayer } from '../../../../../../types/chain.types'; const meta: ConsensusLayer = { id: 'gnosis-cl', graph_id: null, name: 'Gnosis Consensus Layer', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-03-08T00:00:00.000Z', diff --git a/data/chains/V2/gnosis/chiado/meta.ts b/data/chains/V2/gnosis/testnets/chiado/meta.ts similarity index 60% rename from data/chains/V2/gnosis/chiado/meta.ts rename to data/chains/V2/gnosis/testnets/chiado/meta.ts index 2ab4bc1..8c78003 100644 --- a/data/chains/V2/gnosis/chiado/meta.ts +++ b/data/chains/V2/gnosis/testnets/chiado/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'chiado', graph_id: null, name: 'Chiado', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: null, diff --git a/data/chains/V2/index.ts b/data/chains/V2/index.ts index 309f866..dddd044 100644 --- a/data/chains/V2/index.ts +++ b/data/chains/V2/index.ts @@ -1,46 +1,47 @@ export { default as arbone } from './arbone/meta'; -export { default as arbgoerli } from './arbone/arbgoerli/meta'; -export { default as arbsepolia } from './arbone/arbsepolia/meta'; +export { default as arbgoerli } from './arbone/testnets/arbgoerli/meta'; +export { default as arbsepolia } from './arbone/testnets/arbsepolia/meta'; export { default as arweave } from './arweave/meta'; export { default as avalanche } from './avalanche/meta'; export { default as base } from './base/meta'; export { default as bitcoin } from './bitcoin/meta'; export { default as bsc } from './bsc/meta'; -export { default as chapel } from './bsc/chapel/meta'; +export { default as chapel } from './bsc/testnets/chapel/meta'; export { default as celo } from './celo/meta'; -export { default as alfajores } from './celo/alfajores/meta'; +export { default as alfajores } from './celo/testnets/alfajores/meta'; export { default as cosmoshub } from './cosmoshub/meta'; -export { default as juno } from './cosmoshub/juno/meta'; -export { default as theta } from './cosmoshub/theta/meta'; +export { default as juno } from './cosmoshub/testnets/juno/meta'; +export { default as theta } from './cosmoshub/testnets/theta/meta'; export { default as decimal } from './decimal/meta'; export { default as eos } from './eos/meta'; -export { default as jungle4 } from './eos/jungle4/meta'; -export { default as kylin } from './eos/kylin/meta'; +export { default as jungle4 } from './eos/testnets/jungle4/meta'; +export { default as kylin } from './eos/testnets/kylin/meta'; +export { default as eosevm } from './eos/evms/eosevm/meta'; export { default as eth } from './eth/meta'; -export { default as ethCl } from './eth/eth-cl/meta'; -export { default as goerli } from './eth/goerli/meta'; -export { default as goerliCl } from './eth/goerli-cl/meta'; -export { default as holesky } from './eth/holesky/meta'; -export { default as holeskyCl } from './eth/holesky-cl/meta'; -export { default as sepolia } from './eth/sepolia/meta'; -export { default as sepoliaCl } from './eth/sepolia-cl/meta'; +export { default as goerli } from './eth/testnets/goerli/meta'; +export { default as holesky } from './eth/testnets/holesky/meta'; +export { default as sepolia } from './eth/testnets/sepolia/meta'; +export { default as ethCl } from './eth/consensus/eth-cl/meta'; +export { default as goerliCl } from './eth/consensus/goerli-cl/meta'; +export { default as holeskyCl } from './eth/consensus/holesky-cl/meta'; +export { default as sepoliaCl } from './eth/consensus/sepolia-cl/meta'; export { default as fantom } from './fantom/meta'; export { default as gnosis } from './gnosis/meta'; -export { default as chiado } from './gnosis/chiado/meta'; -export { default as chiadoCl } from './gnosis/chiado-cl/meta'; -export { default as gnosisCl } from './gnosis/gnosis-cl/meta'; +export { default as chiado } from './gnosis/testnets/chiado/meta'; +export { default as chiadoCl } from './gnosis/consensus/chiado-cl/meta'; +export { default as gnosisCl } from './gnosis/consensus/gnosis-cl/meta'; export { default as kava } from './kava/meta'; export { default as moonbeam } from './moonbeam/meta'; export { default as near } from './near/meta'; -export { default as neartest } from './near/neartest/meta'; +export { default as neartest } from './near/testnets/neartest/meta'; export { default as optimism } from './optimism/meta'; export { default as osmosis } from './osmosis/meta'; export { default as polygon } from './polygon/meta'; -export { default as amoy } from './polygon/amoy/meta'; -export { default as mumbai } from './polygon/mumbai/meta'; +export { default as amoy } from './polygon/testnets/amoy/meta'; +export { default as mumbai } from './polygon/testnets/mumbai/meta'; export { default as scroll } from './scroll/meta'; export { default as starknet } from './starknet/meta'; export { default as telos } from './telos/meta'; -export { default as telostest } from './telos/telostest/meta'; +export { default as telostest } from './telos/testnets/telostest/meta'; export { default as wax } from './wax/meta'; -export { default as waxtest } from './wax/waxtest/meta'; +export { default as waxtest } from './wax/testnets/waxtest/meta'; diff --git a/data/chains/V2/near/neartest/meta.ts b/data/chains/V2/near/testnets/neartest/meta.ts similarity index 65% rename from data/chains/V2/near/neartest/meta.ts rename to data/chains/V2/near/testnets/neartest/meta.ts index e2763e0..e1470bb 100644 --- a/data/chains/V2/near/neartest/meta.ts +++ b/data/chains/V2/near/testnets/neartest/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'neartest', graph_id: 'near-testnet', name: 'Near-testnet', alt_names: [], + standard: 'near', + block_type: { + label: 'sf.near.type.v1.Block', + url: 'https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/polygon/amoy/meta.ts b/data/chains/V2/polygon/testnets/amoy/meta.ts similarity index 65% rename from data/chains/V2/polygon/amoy/meta.ts rename to data/chains/V2/polygon/testnets/amoy/meta.ts index 7f9094d..32723cc 100644 --- a/data/chains/V2/polygon/amoy/meta.ts +++ b/data/chains/V2/polygon/testnets/amoy/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'amoy', graph_id: 'polygon-amoy', name: 'Amoy', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2024-04-12T00:00:00.000Z', diff --git a/data/chains/V2/polygon/mumbai/meta.ts b/data/chains/V2/polygon/testnets/mumbai/meta.ts similarity index 67% rename from data/chains/V2/polygon/mumbai/meta.ts rename to data/chains/V2/polygon/testnets/mumbai/meta.ts index 1fb010f..0d0c62d 100644 --- a/data/chains/V2/polygon/mumbai/meta.ts +++ b/data/chains/V2/polygon/testnets/mumbai/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'mumbai', graph_id: null, name: 'Mumbai', alt_names: [], + standard: 'erc20', + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/starknet/meta.ts b/data/chains/V2/starknet/meta.ts index 90a7853..cd81d86 100644 --- a/data/chains/V2/starknet/meta.ts +++ b/data/chains/V2/starknet/meta.ts @@ -3,14 +3,16 @@ import { Chain } from '../../../../types/chain.types'; const meta: Chain = { id: 'starknet', graph_id: null, - name: 'Starknet', - alt_names: [], - standard: 'erc20', + name: 'Starknet', // missing + alt_names: [], // missing + standard: 'erc20', // missing block_type: { + // missing label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', }, icon: { + // missing id: 'networks/starknet', brand_theme: 'both', }, diff --git a/data/chains/V2/telos/telostest/meta.ts b/data/chains/V2/telos/testnets/telostest/meta.ts similarity index 64% rename from data/chains/V2/telos/telostest/meta.ts rename to data/chains/V2/telos/testnets/telostest/meta.ts index 6b49468..c201bd6 100644 --- a/data/chains/V2/telos/telostest/meta.ts +++ b/data/chains/V2/telos/testnets/telostest/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'telostest', graph_id: null, name: 'Telos Test', alt_names: [], + standard: 'antelope', + block_type: { + label: 'sf.antelope.type.v1.Block', + url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/chains/V2/wax/waxtest/meta.ts b/data/chains/V2/wax/testnets/waxtest/meta.ts similarity index 64% rename from data/chains/V2/wax/waxtest/meta.ts rename to data/chains/V2/wax/testnets/waxtest/meta.ts index e4f2506..c0b4812 100644 --- a/data/chains/V2/wax/waxtest/meta.ts +++ b/data/chains/V2/wax/testnets/waxtest/meta.ts @@ -1,10 +1,15 @@ -import { Testnet } from '../../../../../types/chain.types'; +import { Testnet } from '../../../../../../types/chain.types'; const meta: Testnet = { id: 'waxtest', graph_id: null, name: 'WAX Test', alt_names: [], + standard: 'antelope', + block_type: { + label: 'sf.antelope.type.v1.Block', + url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', + }, supported_services: { firehose: { released_at: '2023-12-01T00:00:00.000Z', diff --git a/data/index.config.ts b/data/index.config.ts index d6ee56d..588b6f6 100644 --- a/data/index.config.ts +++ b/data/index.config.ts @@ -2,7 +2,7 @@ // Chains under ordered were manually placed, to manage the z-index (priority order) of chains. // Chains under missing are generated from available data, make sure to order them. // Include deprecated or future chains. -// Last generation on 5/8/2024, 8:12:35 PM. +// Last generation on 5/10/2024, 4:41:53 PM. export default { ordered: { @@ -33,7 +33,7 @@ export default { moonbeam: [], scroll: [], starknet: [], - eos: ['jungle4', 'kylin'], + eos: ['eosevm', 'jungle4', 'kylin'], wax: ['waxtest'], telos: ['telostest'], kava: [], diff --git a/docs/beta_chains.md b/docs/beta_chains.md new file mode 100644 index 0000000..24de515 --- /dev/null +++ b/docs/beta_chains.md @@ -0,0 +1,5 @@ +# Beta Chains + +Beta chains are chains that are not yet officially supported by Pinax. These chains are not yet available in the Pinax UI, but endpoints are available for developers to use. + +Any chain that has a file here is considered a beta chain, until it has a release data and is not deprecated. \ No newline at end of file diff --git a/docs/proposals/ops-product-sync.md b/docs/proposals/ops-product-sync.md index 95cae54..039896f 100644 --- a/docs/proposals/ops-product-sync.md +++ b/docs/proposals/ops-product-sync.md @@ -89,9 +89,12 @@ TBD "testnets": [ // Array of simplified chain objects ], - "consensus_layers": [ + "consensus": [ // Array of simplified chain objects - ] + ], + "evms": [ + // Array of simplified chain objects + ], } ``` diff --git a/docs/updating_dependent_products.md b/docs/updating_dependent_products.md index 2c73dcb..ea94871 100644 --- a/docs/updating_dependent_products.md +++ b/docs/updating_dependent_products.md @@ -4,5 +4,5 @@ To update the dependent products, you simply need to publish a new version of th To keep things in sync, make sure to update ALL of the following products at the same time: -- [App](https://github.com/pinax-network/app) -- [Website](https://github.com/pinax-network/website) \ No newline at end of file +- [App](https://github.com/pinax-network/app-frontend) +- [Website](https://github.com/pinax-network/website-frontend) \ No newline at end of file diff --git a/docs/updating_indexes.md b/docs/updating_indexes.md index 52b3715..2cacfb3 100644 --- a/docs/updating_indexes.md +++ b/docs/updating_indexes.md @@ -1,3 +1,3 @@ # Updating Indexes -To display the chains in the UI, each chain has an index score that is used to sort the chains. To reorganize the chains, you can update the [index.config.json](../configs/index.config.json) file. \ No newline at end of file +To display the chains in the UI, each chain has an index score that is used to sort the chains. To reorganize the chains, you can update the [index.config.ts](../data/index.config.ts) file. \ No newline at end of file diff --git a/scripts/generate/V2/data_index.ts b/scripts/generate/V2/data_index.ts index 1e86301..5689c83 100644 --- a/scripts/generate/V2/data_index.ts +++ b/scripts/generate/V2/data_index.ts @@ -18,12 +18,17 @@ fs.readdirSync(dataDir).forEach((mainnetDir) => { indexContent += `export { default as ${toCamelCase(mainnetDir)} } from './${mainnetDir}/meta';\n`; } - fs.readdirSync(mainnetPath).forEach((testnetDir) => { - const testnetPath = path.join(mainnetPath, testnetDir); - const testnetMetaPath = path.join(testnetPath, 'meta.ts'); + ['testnets', 'consensus', 'evms'].forEach((subnetType) => { + const subnetPath = path.join(mainnetPath, subnetType); - if (fs.existsSync(testnetMetaPath)) { - indexContent += `export { default as ${toCamelCase(testnetDir)} } from './${mainnetDir}/${testnetDir}/meta';\n`; + if (fs.existsSync(subnetPath)) { + fs.readdirSync(subnetPath).forEach((subnetDir) => { + const subnetMetaPath = path.join(subnetPath, subnetDir, 'meta.ts'); + + if (fs.existsSync(subnetMetaPath)) { + indexContent += `export { default as ${toCamelCase(subnetDir)} } from './${mainnetDir}/${subnetType}/${subnetDir}/meta';\n`; + } + }); } }); }); diff --git a/scripts/generate/V2/data_json.ts b/scripts/generate/V2/data_json.ts index 0e8c692..b29bfbc 100644 --- a/scripts/generate/V2/data_json.ts +++ b/scripts/generate/V2/data_json.ts @@ -5,6 +5,7 @@ import * as chainData from '../../../data/chains/V2/index'; import { toCamelCase } from '../../../utils/case'; import indexConf from '../../../data/index.config'; import { IndexConfig } from './index_config_check'; + interface Icon { id: string; variants: string[]; @@ -23,8 +24,9 @@ interface Token { interface MainnetData { index: number; icon: Icon; - consensus_layers?: SubnetData[]; + consensus?: SubnetData[]; testnets?: SubnetData[]; + evms?: SubnetData[]; } interface SubnetData { @@ -58,11 +60,13 @@ const networks: Network[] = JSON.parse( const data: MainnetData[] = []; const warnings: string[] = []; +let indexCounter = 0; + Object.keys(indexConf.ordered).forEach((mainnet, mainnetIndex) => { // @ts-ignore const mainnetData: MainnetData = chainData[toCamelCase(mainnet)]; - mainnetData.index = mainnetIndex * 1000; + mainnetData.index = indexCounter++; if (mainnetData.icon.id.indexOf('tokens') !== -1) { const iconMeta = tokens.find( @@ -89,22 +93,23 @@ Object.keys(indexConf.ordered).forEach((mainnet, mainnetIndex) => { } } - (indexConf as IndexConfig).ordered[mainnet].forEach( - (subnet: any, subnetIndex: any) => { - // @ts-ignore - const subnetData: SubnetData = chainData[toCamelCase(subnet)]; - - subnetData.index = mainnetData.index + subnetIndex + 1; - - if (subnetData.id.indexOf('-cl') !== -1) { - if (!mainnetData.consensus_layers) mainnetData.consensus_layers = []; - mainnetData.consensus_layers.push(subnetData); - } else { - if (!mainnetData.testnets) mainnetData.testnets = []; - mainnetData.testnets.push(subnetData); - } - }, - ); + (indexConf as IndexConfig).ordered[mainnet].forEach((subnet: any) => { + // @ts-ignore + const subnetData: SubnetData = chainData[toCamelCase(subnet)]; + + subnetData.index = indexCounter++; + + if (subnetData.id.indexOf('-cl') !== -1) { + if (!mainnetData.consensus) mainnetData.consensus = []; + mainnetData.consensus.push(subnetData); + } else if (subnetData.id.indexOf('evm') !== -1) { + if (!mainnetData.evms) mainnetData.evms = []; + mainnetData.evms.push(subnetData); + } else { + if (!mainnetData.testnets) mainnetData.testnets = []; + mainnetData.testnets.push(subnetData); + } + }); data.push(mainnetData); }); diff --git a/scripts/generate/V2/index_config_check.ts b/scripts/generate/V2/index_config_check.ts index 9c7f914..affb61a 100644 --- a/scripts/generate/V2/index_config_check.ts +++ b/scripts/generate/V2/index_config_check.ts @@ -12,17 +12,19 @@ console.log('🕑 Checking integrity of index.config.ts...'); const configCast: IndexConfig = config; // Function to get directories recursively -const getDirectories = (basePath: string): Array => { +const getDirectories = (basePath: string, depth: number = 0): Array => { const directories: Array = []; const files = fs.readdirSync(basePath, { withFileTypes: true }); for (const file of files) { if (file.isDirectory()) { const dirPath = path.join(basePath, file.name); - directories.push(dirPath.split(path.sep).pop() || ''); + if (depth === 0 || depth === 2) { + directories.push(dirPath.split(path.sep).pop() || ''); + } // Get subdirectories - const subdirectories: Array = getDirectories(dirPath); + const subdirectories: Array = getDirectories(dirPath, depth + 1); directories.push(...subdirectories); } } diff --git a/scripts/generate/V2/match_legacy_data.ts b/scripts/generate/V2/match_legacy_data.ts index 1775e67..81684e3 100644 --- a/scripts/generate/V2/match_legacy_data.ts +++ b/scripts/generate/V2/match_legacy_data.ts @@ -18,7 +18,7 @@ for (let legacyChain of dataLegacy) { if (!chain) { let mainnetChain = data.find((c: any) => c.id === legacyChain.mainnet); if (mainnetChain) { - // Check both testnets and consensus_layers arrays within that mainnet + // Check both testnets and consensus arrays within that mainnet if ( mainnetChain.testnets?.find((t: any) => t.id === legacyChain.id) !== undefined @@ -26,9 +26,8 @@ for (let legacyChain of dataLegacy) { continue; } if ( - mainnetChain.consensus_layers?.find( - (c: any) => c.id === legacyChain.id, - ) !== undefined + mainnetChain.consensus?.find((c: any) => c.id === legacyChain.id) !== + undefined ) { continue; } diff --git a/scripts/generate/V2/type_pinaxid.ts b/scripts/generate/V2/type_pinaxid.ts index 696f3c7..e11c620 100644 --- a/scripts/generate/V2/type_pinaxid.ts +++ b/scripts/generate/V2/type_pinaxid.ts @@ -33,7 +33,20 @@ function readDir(directory: string): string[] { } // Read the directory and subdirectories -const fileNames = readDir(chainsDir); +const mainnetNames = readDir(chainsDir); + +// Read the subnets directories +const subnetTypes = ['testnets', 'consensus', 'evms']; +let subnetNames: string[] = []; +subnetTypes.forEach((subnetType) => { + const subnetDir = path.join(chainsDir, subnetType); + if (fs.existsSync(subnetDir)) { + subnetNames = subnetNames.concat(readDir(subnetDir)); + } +}); + +// Combine mainnet and subnet names +const fileNames = mainnetNames.concat(subnetNames); // Generate the PinaxId type definition const pinaxIdType = `// This file is auto-generated on pre-commit to avoid maintaining it / circular dependencies.\n// Do not modify manually as it will be overwritten.\n// Last generation on ${new Date().toLocaleString()}.\nexport type PinaxID = '${fileNames.join("' | '")}'`; diff --git a/types/chain.types.ts b/types/chain.types.ts index cc0ef99..b80821e 100644 --- a/types/chain.types.ts +++ b/types/chain.types.ts @@ -11,6 +11,9 @@ export type ChainBase = { // Testnet Name name: string; + // Alternative Names + alt_names: string[]; + // The Graph ID // See docs/retrieve_graph_ids.md graph_id: GraphID | null; @@ -18,8 +21,16 @@ export type ChainBase = { // Display Priority, lower is higher index?: number; - // Alternative Names - alt_names: string[]; + // Chain Standard (ie. ERC20) + standard: Standard | null; + + // Block Type + block_type: BlockType; +}; + +export type Testnet = ChainBase & { + // Whether or not the chain supports our existing services + supported_services: SupportedServices; }; export type ConsensusLayer = ChainBase & { @@ -28,7 +39,8 @@ export type ConsensusLayer = ChainBase & { // (Firehose, Substreams), and not for the RPC service itself. supported_services: ConsensusLayerServices; }; -export type Testnet = ChainBase & { + +export type EVM = ChainBase & { // Whether or not the chain supports our existing services supported_services: SupportedServices; }; @@ -40,12 +52,6 @@ export type Testnet = ChainBase & { * the generated fields. */ export interface Chain extends ChainBase { - // Chain Standard (ie. ERC20) - standard: Standard | null; - - // Block Type - block_type: BlockType; - icon: { // Token Icon ID id: string; @@ -64,8 +70,18 @@ export interface Chain extends ChainBase { testnets?: Array; // Merged by ./scripts/generate/data_json.js - consensus_layers?: Array; + consensus?: Array; + + // Merge by ./scripts/generate/data_json.js + evms?: Array; // Any additional metadata we want to store (ie. Wagmi) - // metadata: any | null; + metadata?: { + // Layer of the chain + layer?: 'L0' | 'L1' | 'L2' | 'L3'; + + // Mainchain ID, if the chain is a sidechain + // Either a PinaxID or a string, as the mainchain may not be in the list of chains + mainchain_id?: PinaxID | string; + }; } diff --git a/types/graph.types.ts b/types/graph.types.ts index 1b84d85..8f74aac 100644 --- a/types/graph.types.ts +++ b/types/graph.types.ts @@ -1,6 +1,6 @@ // This file is auto-generated on pre-commit to avoid maintaining it. // Do not modify manually as it will be overwritten. -// Last generation on 5/8/2024, 8:12:35 PM. +// Last generation on 5/10/2024, 4:41:54 PM. export type GraphID = | 'arbitrum-one' | 'arbitrum-sepolia' diff --git a/types/pinax.types.ts b/types/pinax.types.ts index 60de326..1903c37 100644 --- a/types/pinax.types.ts +++ b/types/pinax.types.ts @@ -1,46 +1,47 @@ // This file is auto-generated on pre-commit to avoid maintaining it / circular dependencies. // Do not modify manually as it will be overwritten. -// Last generation on 5/8/2024, 8:12:35 PM. +// Last generation on 5/10/2024, 4:41:54 PM. export type PinaxID = + | 'arbone' | 'arbgoerli' | 'arbsepolia' - | 'arbone' | 'arweave' | 'avalanche' | 'base' | 'bitcoin' - | 'chapel' | 'bsc' - | 'alfajores' + | 'chapel' | 'celo' - | 'juno' + | 'alfajores' | 'cosmoshub' + | 'juno' | 'theta' | 'decimal' + | 'eosevm' + | 'eos' | 'jungle4' | 'kylin' - | 'eos' | 'eth-cl' - | 'goerli' | 'goerli-cl' - | 'holesky' | 'holesky-cl' + | 'sepolia-cl' | 'eth' + | 'goerli' + | 'holesky' | 'sepolia' - | 'sepolia-cl' | 'fantom' - | 'chiado' | 'chiado-cl' | 'gnosis-cl' | 'gnosis' + | 'chiado' | 'kava' | 'moonbeam' | 'near' | 'neartest' | 'optimism' | 'osmosis' - | 'amoy' | 'polygon' + | 'amoy' | 'mumbai' | 'scroll' | 'starknet'