From a0ab00880445f3c3bfbf720feca2c268738d8854 Mon Sep 17 00:00:00 2001 From: YaroShkvorets Date: Thu, 21 Nov 2024 11:26:55 -0500 Subject: [PATCH 1/5] add fh and ss uniqueness validation --- src/validate.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/validate.ts b/src/validate.ts index 42a3aa9..54e0f92 100644 --- a/src/validate.ts +++ b/src/validate.ts @@ -29,6 +29,8 @@ function validateUniqueness(networks: Network[]) { "explorerUrls", "rpcUrls", "apiUrls.url", + "services.firehose", + "services.substreams", ]) { const values = networks.flatMap((n) => { if (field.includes(".")) { @@ -36,6 +38,9 @@ function validateUniqueness(networks: Network[]) { if (Array.isArray(n[obj])) { return n[obj].map((item) => item[fi]); } + if (Array.isArray(n[obj][fi])) { + return n[obj][fi]; + } return [n[obj]?.[fi]].filter(Boolean); } if (Array.isArray(n[field])) return n[field]; From abdc6187dac7f2745ce3edb9791ca7d31291bc12 Mon Sep 17 00:00:00 2001 From: YaroShkvorets Date: Thu, 21 Nov 2024 11:27:13 -0500 Subject: [PATCH 2/5] fix sepolia-cl fh and ss endpoints --- registry/beacon/sepolia-cl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/beacon/sepolia-cl.json b/registry/beacon/sepolia-cl.json index 5113513..478d855 100644 --- a/registry/beacon/sepolia-cl.json +++ b/registry/beacon/sepolia-cl.json @@ -11,8 +11,8 @@ "networkType": "mainnet", "relations": [{ "kind": "beaconOf", "network": "sepolia" }], "services": { - "firehose": ["holesky-cl.firehose.pinax.network:443"], - "substreams": ["holesky-cl.substreams.pinax.network:443"] + "firehose": ["sepolia-cl.firehose.pinax.network:443"], + "substreams": ["sepolia-cl.substreams.pinax.network:443"] }, "issuanceRewards": false, "nativeToken": "ETH", From b5f067ac6e7292a481f4a44c968f7b9e6002a962 Mon Sep 17 00:00:00 2001 From: YaroShkvorets Date: Thu, 21 Nov 2024 11:37:43 -0500 Subject: [PATCH 3/5] add gnosis beacon chains --- registry/beacon/gnosis-chiado-cl.json | 30 +++++++++++++++++++++++++++ registry/beacon/gnosis-cl.json | 29 ++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 registry/beacon/gnosis-chiado-cl.json create mode 100644 registry/beacon/gnosis-cl.json diff --git a/registry/beacon/gnosis-chiado-cl.json b/registry/beacon/gnosis-chiado-cl.json new file mode 100644 index 0000000..561c546 --- /dev/null +++ b/registry/beacon/gnosis-chiado-cl.json @@ -0,0 +1,30 @@ +{ + "id": "gnosis-chiado-cl", + "shortName": "Gnosis Beacon", + "secondName": "Chiado", + "fullName": "Gnosis Chiado Consensus Layer Chain", + "aliases": ["gnosis-chiado-beacon"], + "caip2Id": "beacon:10200", + "explorerUrls": [], + "rpcUrls": [], + "apiUrls": [], + "networkType": "mainnet", + "relations": [{ "kind": "beaconOf", "network": "gnosis-chiado" }], + "services": { + "firehose": ["chiado-cl.firehose.pinax.network:443"], + "substreams": ["chiado-cl.substreams.pinax.network:443"] + }, + "issuanceRewards": false, + "nativeToken": "XDAI", + "docsUrl": "https://ethereum.org/en/developers/docs/consensus-mechanisms", + "genesis": { + "hash": "0xf227cf50c05b1aa570ce4f8ee00c71f11c63d05b297ad3a0e7a05d341c333381", + "height": 0 + }, + "firehose": { + "blockType": "sf.beacon.type.v1.Block", + "bufUrl": "https://buf.build/pinax/firehose-beacon", + "bytesEncoding": "0xhex" + }, + "icon": { "web3Icons": { "name": "gnosis" } } +} diff --git a/registry/beacon/gnosis-cl.json b/registry/beacon/gnosis-cl.json new file mode 100644 index 0000000..6ccde06 --- /dev/null +++ b/registry/beacon/gnosis-cl.json @@ -0,0 +1,29 @@ +{ + "id": "gnosis-cl", + "shortName": "Gnosis Beacon", + "fullName": "Gnosis Consensus Layer Chain", + "aliases": ["gnosis-beacon"], + "caip2Id": "beacon:100", + "explorerUrls": [], + "rpcUrls": [], + "apiUrls": [], + "networkType": "mainnet", + "relations": [{ "kind": "beaconOf", "network": "gnosis" }], + "services": { + "firehose": ["gnosis-cl.firehose.pinax.network:443"], + "substreams": ["gnosis-cl.substreams.pinax.network:443"] + }, + "issuanceRewards": false, + "nativeToken": "XDAI", + "docsUrl": "https://ethereum.org/en/developers/docs/consensus-mechanisms", + "genesis": { + "hash": "0x23564cd15ac0b90ed72cbc78ffd5e35e309816c0cca5ad28390bd9892e846a75", + "height": 0 + }, + "firehose": { + "blockType": "sf.beacon.type.v1.Block", + "bufUrl": "https://buf.build/pinax/firehose-beacon", + "bytesEncoding": "0xhex" + }, + "icon": { "web3Icons": { "name": "gnosis" } } +} From 8d62a37841039e26b2faa4779c0cde727cb75be8 Mon Sep 17 00:00:00 2001 From: YaroShkvorets Date: Thu, 21 Nov 2024 13:35:51 -0500 Subject: [PATCH 4/5] fix chains based on pinax feedback --- registry/bip122/litecoin.json | 28 ++++++++++++++ registry/eip155/astar-zkyoto.json | 40 ++++++++++++++++++++ registry/eip155/blast-testnet.json | 4 +- registry/eip155/celo.json | 5 ++- registry/eip155/chiliz.json | 6 ++- registry/eip155/polygon-zkevm-cardona.json | 43 ++++++++++++++++++++++ registry/eip155/polygon-zkevm.json | 3 +- registry/eip155/rootstock.json | 5 ++- registry/eip155/zksync-era.json | 5 ++- registry/solana/solana-mainnet-beta.json | 10 ++++- 10 files changed, 139 insertions(+), 10 deletions(-) create mode 100644 registry/bip122/litecoin.json create mode 100644 registry/eip155/astar-zkyoto.json create mode 100644 registry/eip155/polygon-zkevm-cardona.json diff --git a/registry/bip122/litecoin.json b/registry/bip122/litecoin.json new file mode 100644 index 0000000..e7e525f --- /dev/null +++ b/registry/bip122/litecoin.json @@ -0,0 +1,28 @@ +{ + "id": "litecoin", + "shortName": "Litecoin", + "fullName": "Litecoin Mainnet", + "aliases": ["ltc", "litecoin-mainnet"], + "caip2Id": "bip122:12a765e31ffd4059bada1e25190f6e98", + "explorerUrls": ["https://blockexplorer.one/litecoin/mainnet"], + "rpcUrls": ["https://litecoin-mainnet.gateway.tatum.io"], + "apiUrls": [], + "networkType": "mainnet", + "services": { + "firehose": ["litecoin.firehose.pinax.network:443"], + "substreams": ["litecoin.substreams.pinax.network:443"] + }, + "issuanceRewards": false, + "nativeToken": "LTC", + "docsUrl": "https://litecoin.info/docs", + "genesis": { + "hash": "0x12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2", + "height": 0 + }, + "firehose": { + "blockType": "sf.bitcoin.type.v1.Block", + "bufUrl": "https://buf.build/streamingfast/firehose-bitcoin", + "bytesEncoding": "hex" + }, + "icon": { "web3Icons": { "name": "litecoin" } } +} diff --git a/registry/eip155/astar-zkyoto.json b/registry/eip155/astar-zkyoto.json new file mode 100644 index 0000000..657148c --- /dev/null +++ b/registry/eip155/astar-zkyoto.json @@ -0,0 +1,40 @@ +{ + "id": "astar-zkyoto", + "shortName": "Astar", + "secondName": "zKyoto", + "fullName": "Astar zkEVM Testnet zKyoto", + "aliases": ["evm-6038361", "astar-testnet", "astar-zkevm-testnet"], + "caip2Id": "eip155:6038361", + "graphNode": { "protocol": "ethereum" }, + "explorerUrls": ["https://zkyoto.explorer.startale.com"], + "rpcUrls": [ + "https://rpc.startale.com/zkyoto", + "https://zkyoto.rpc.pinax.network/v1/{PINAX_API_KEY}" + ], + "apiUrls": [ + { "url": "https://zkyoto.explorer.startale.com/api", "kind": "etherscan" } + ], + "services": { + "firehose": ["zkyoto.firehose.pinax.network:443"], + "substreams": ["zkyoto.substreams.pinax.network:443"] + }, + "networkType": "testnet", + "relations": [ + { "kind": "l2Of", "network": "sepolia" }, + { "kind": "testnetOf", "network": "astar-zkevm-mainnet" } + ], + "issuanceRewards": false, + "nativeToken": "ETH", + "docsUrl": "https://docs.astar.network/docs/getting-started", + "genesis": { + "hash": "0xa479ae412a77c2f4dee25e923ecac955df8ee9bc12eed467899da53a43cbf0f1", + "height": 0 + }, + "firehose": { + "blockType": "sf.ethereum.type.v2.Block", + "evmExtendedModel": false, + "bufUrl": "https://buf.build/streamingfast/firehose-ethereum", + "bytesEncoding": "hex" + }, + "icon": { "web3Icons": { "name": "astar" } } +} diff --git a/registry/eip155/blast-testnet.json b/registry/eip155/blast-testnet.json index 135eca5..a8c59fd 100644 --- a/registry/eip155/blast-testnet.json +++ b/registry/eip155/blast-testnet.json @@ -3,8 +3,8 @@ "shortName": "Blast", "secondName": "Sepolia", "fullName": "Blast Sepolia Testnet", - "aliases": ["evm-23888", "blast-sepolia"], - "caip2Id": "eip155:23888", + "aliases": ["evm-168587773", "blast-sepolia"], + "caip2Id": "eip155:168587773", "graphNode": { "protocol": "ethereum" }, "explorerUrls": ["https://sepolia.blastscan.io"], "rpcUrls": [ diff --git a/registry/eip155/celo.json b/registry/eip155/celo.json index f9a8b2f..e443742 100644 --- a/registry/eip155/celo.json +++ b/registry/eip155/celo.json @@ -6,7 +6,10 @@ "caip2Id": "eip155:42220", "graphNode": { "protocol": "ethereum" }, "explorerUrls": ["https://celoscan.io"], - "rpcUrls": ["https://forno.celo.org"], + "rpcUrls": [ + "https://forno.celo.org", + "https://celo.rpc.pinax.network/v1/{PINAX_API_KEY}" + ], "apiUrls": [ { "url": "https://celo.abi.pinax.network/api", "kind": "etherscan" } ], diff --git a/registry/eip155/chiliz.json b/registry/eip155/chiliz.json index ebf0271..d138949 100644 --- a/registry/eip155/chiliz.json +++ b/registry/eip155/chiliz.json @@ -13,7 +13,11 @@ ], "apiUrls": [{ "url": "https://scan.chiliz.com/api", "kind": "etherscan" }], "networkType": "mainnet", - "services": { "subgraphs": ["https://api.thegraph.com/deploy"] }, + "services": { + "subgraphs": ["https://api.thegraph.com/deploy"], + "firehose": ["chiliz.firehose.pinax.network:443"], + "substreams": ["chiliz.substreams.pinax.network:443"] + }, "issuanceRewards": false, "nativeToken": "CHZ", "docsUrl": "https://docs.chiliz.com", diff --git a/registry/eip155/polygon-zkevm-cardona.json b/registry/eip155/polygon-zkevm-cardona.json new file mode 100644 index 0000000..0b27fca --- /dev/null +++ b/registry/eip155/polygon-zkevm-cardona.json @@ -0,0 +1,43 @@ +{ + "id": "polygon-zkevm-cardona", + "shortName": "Polygon zkEVM", + "secondName": "Cardona", + "fullName": "Polygon zkEVM Cardona Testnet", + "aliases": ["polygon-cardona"], + "caip2Id": "eip155:2442", + "graphNode": { "protocol": "ethereum" }, + "relations": [ + { "kind": "l2Of", "network": "sepolia" }, + { "kind": "testnetOf", "network": "polygon-zkevm" } + ], + "explorerUrls": ["https://cardona-zkevm.polygonscan.com"], + "rpcUrls": [ + "https://rpc.cardona.zkevm-rpc.com", + "https://cardona.rpc.pinax.network/v1/{PINAX_API_KEY}" + ], + "apiUrls": [ + { + "url": "https://api-cardona-zkevm.polygonscan.com/api", + "kind": "etherscan" + } + ], + "networkType": "testnet", + "services": { + "firehose": ["cardona.firehose.pinax.network:443"], + "substreams": ["cardona.substreams.pinax.network:443"] + }, + "issuanceRewards": false, + "nativeToken": "ETH", + "docsUrl": "https://polygon.technology/polygon-zkevm", + "genesis": { + "hash": "0x676c1a76a6c5855a32bdf7c61977a0d1510088a4eeac1330466453b3d08b60b9", + "height": 0 + }, + "firehose": { + "blockType": "sf.ethereum.type.v2.Block", + "evmExtendedModel": false, + "bufUrl": "https://buf.build/streamingfast/firehose-ethereum", + "bytesEncoding": "hex" + }, + "icon": { "web3Icons": { "name": "polygon-zkevm" } } +} diff --git a/registry/eip155/polygon-zkevm.json b/registry/eip155/polygon-zkevm.json index a60258d..97f24ee 100644 --- a/registry/eip155/polygon-zkevm.json +++ b/registry/eip155/polygon-zkevm.json @@ -1,7 +1,6 @@ { "id": "polygon-zkevm", - "shortName": "Polygon", - "secondName": "zkEVM", + "shortName": "Polygon zkEVM", "fullName": "Polygon zkEVM Mainnet", "aliases": [], "caip2Id": "eip155:1101", diff --git a/registry/eip155/rootstock.json b/registry/eip155/rootstock.json index 914f19c..52249e8 100644 --- a/registry/eip155/rootstock.json +++ b/registry/eip155/rootstock.json @@ -6,7 +6,10 @@ "caip2Id": "eip155:30", "graphNode": { "protocol": "ethereum" }, "explorerUrls": ["https://rootstock.blockscout.com"], - "rpcUrls": ["https://public-node.rsk.co"], + "rpcUrls": [ + "https://public-node.rsk.co", + "https://rootstock.rpc.pinax.network/v1/{PINAX_API_KEY}" + ], "apiUrls": [ { "url": "https://rootstock.blockscout.com/api", "kind": "etherscan" } ], diff --git a/registry/eip155/zksync-era.json b/registry/eip155/zksync-era.json index 1abed03..fd71060 100644 --- a/registry/eip155/zksync-era.json +++ b/registry/eip155/zksync-era.json @@ -7,7 +7,10 @@ "caip2Id": "eip155:324", "graphNode": { "protocol": "ethereum" }, "explorerUrls": ["https://explorer.zksync.io"], - "rpcUrls": ["https://mainnet.era.zksync.io"], + "rpcUrls": [ + "https://mainnet.era.zksync.io", + "https://zksyncera.rpc.pinax.network/v1/{PINAX_API_KEY}" + ], "apiUrls": [ { "url": "https://block-explorer-api.mainnet.zksync.io/api", diff --git a/registry/solana/solana-mainnet-beta.json b/registry/solana/solana-mainnet-beta.json index 40ff19c..3c2d8e8 100644 --- a/registry/solana/solana-mainnet-beta.json +++ b/registry/solana/solana-mainnet-beta.json @@ -11,8 +11,14 @@ "services": { "subgraphs": ["https://api.thegraph.com/deploy"], "sps": ["https://api.thegraph.com/deploy"], - "firehose": ["mainnet.sol.streamingfast.io:443"], - "substreams": ["mainnet.sol.streamingfast.io:443"] + "firehose": [ + "mainnet.sol.streamingfast.io:443", + "solana.firehose.pinax.network:443" + ], + "substreams": [ + "mainnet.sol.streamingfast.io:443", + "solana.substreams.pinax.network:443" + ] }, "issuanceRewards": false, "nativeToken": "SOL", From 3ef24cb35a815865ce64fb8dfe35003623994986 Mon Sep 17 00:00:00 2001 From: YaroShkvorets Date: Thu, 21 Nov 2024 13:36:14 -0500 Subject: [PATCH 5/5] bump v --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7b81421..8c7776a 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.6.2", + "version": "0.6.3", "private": true, "type": "module", "scripts": {