From 5ca2661eb2bece5f566623428131b1c12be360ec Mon Sep 17 00:00:00 2001 From: SatoshiQaziMuhammed Date: Sat, 17 Oct 2026 20:55:00 +0400 Subject: [PATCH] fix(chains): drop node URLs that embed Nova's provider keys (#72) * fix(chains): drop node URLs that embed Nova's Infura keys Nova's configs carry Nova's own Infura project keys inside node URLs, and every sync copied them into ours: Ethereum had four keyed Infura nodes and Base one, across 43 published files. Our Android build already fills `{INFURA_API_KEY}` from our own secret; the keyed URLs used another organisation's quota and would break for every user when Nova rotates them. - sync_from_nova.py strips nodes whose URL embeds an Infura key, and drops a chain left with no node (only Ethereum - Goerli, a retired testnet, in the dev files); merge-chains.py applies the same filter - the published chain files are rewritten with that filter; nothing else in them changes (each file round-trips byte for byte through json.dump) - check_pezkuwi_integrity.py refuses a keyed Infura URL under chains/ * fix(chains): strip every keyed provider URL, and make the gate fail closed The first pass matched only `infura.io/.../v3/`, so it missed `https://...infura.io/v3/`, upper-case keys and hosts, and Nova's OnFinality `?apikey=` URLs (Moonriver, and the Hades testnet in v20/v21 preConfigured). preConfigured was copied from Nova without the filter, and the integrity check passed if grep itself failed. - one predicate, is_keyed(), in sync_from_nova.py: Infura /v3/ ids and apikey/api_key/key/token query values, case-insensitive; {PLACEHOLDER} values are allowed - preConfigured details are filtered after the copy; a chain left with no node loses its details file and its index entry (Hades, v20/v21 only) - rewritten files keep their own indent, so the diff is the data change only - check 5 imports is_keyed() and checks every string in every JSON file under chains/; an unreadable file or an empty tree is an error - check 3 reports a grep error instead of passing on it --- chains/chains.json | 20 ------ chains/v10/android/chains.json | 8 --- chains/v10/chains.json | 8 --- chains/v10/chains_dev.json | 62 ------------------ chains/v11/android/chains.json | 8 --- chains/v11/chains.json | 8 --- chains/v11/chains_dev.json | 62 ------------------ chains/v12/android/chains.json | 8 --- chains/v12/chains.json | 8 --- chains/v12/chains_dev.json | 62 ------------------ chains/v13/android/chains.json | 12 ---- chains/v13/chains.json | 12 ---- chains/v13/chains_dev.json | 61 ----------------- chains/v14/android/chains.json | 12 ---- chains/v14/chains.json | 12 ---- chains/v14/chains_dev.json | 57 ---------------- chains/v15/android/chains.json | 12 ---- chains/v15/chains.json | 12 ---- chains/v15/chains_dev.json | 57 ---------------- chains/v16/android/chains.json | 16 ----- chains/v16/chains.json | 16 ----- chains/v16/chains_dev.json | 57 ---------------- chains/v17/android/chains.json | 24 ------- chains/v17/chains.json | 24 ------- chains/v17/chains_dev.json | 57 ---------------- chains/v18/android/chains.json | 24 ------- chains/v18/chains.json | 24 ------- chains/v18/chains_dev.json | 57 ---------------- chains/v19/android/chains.json | 24 ------- chains/v19/chains.json | 24 ------- chains/v19/chains_dev.json | 57 ---------------- chains/v20/android/chains.json | 24 ------- chains/v20/chains.json | 24 ------- chains/v20/chains_dev.json | 57 ---------------- chains/v20/preConfigured/chains.json | 4 -- chains/v20/preConfigured/chains_dev.json | 4 -- ...02e331195227da62567d7bf9bbd1abaf77522.json | 19 ------ ...02e331195227da62567d7bf9bbd1abaf77522.json | 19 ------ chains/v21/android/chains.json | 16 ----- chains/v21/chains.json | 16 ----- chains/v21/chains_dev.json | 53 --------------- chains/v21/preConfigured/chains.json | 4 -- chains/v21/preConfigured/chains_dev.json | 4 -- ...02e331195227da62567d7bf9bbd1abaf77522.json | 19 ------ ...02e331195227da62567d7bf9bbd1abaf77522.json | 19 ------ chains/v22/android/chains.json | 16 ----- chains/v22/chains.json | 16 ----- chains/v22/chains_dev.json | 53 --------------- chains/v4/chains_dev.json | 4 -- chains/v5/chains_dev.json | 4 -- chains/v6/chains_dev.json | 4 -- chains/v7/chains_dev.json | 4 -- chains/v8/chains_dev.json | 4 -- chains/v9/android/chains.json | 8 --- chains/v9/chains.json | 8 --- chains/v9/chains_dev.json | 54 --------------- scripts/check_pezkuwi_integrity.py | 44 ++++++++++++- scripts/merge-chains.py | 7 ++ scripts/sync_from_nova.py | 65 ++++++++++++++++++- 59 files changed, 113 insertions(+), 1365 deletions(-) delete mode 100644 chains/v20/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json delete mode 100644 chains/v20/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json delete mode 100644 chains/v21/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json delete mode 100644 chains/v21/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json diff --git a/chains/chains.json b/chains/chains.json index e6dbd14..ae7b92a 100644 --- a/chains/chains.json +++ b/chains/chains.json @@ -1548,25 +1548,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" } ], "explorers": [ @@ -7787,10 +7771,6 @@ { "url": "wss://base-rpc.publicnode.com", "name": "Base public node" - }, - { - "url": "wss://base-mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Ifura node" } ], "explorers": [ diff --git a/chains/v10/android/chains.json b/chains/v10/android/chains.json index 4130973..e5c1837 100644 --- a/chains/v10/android/chains.json +++ b/chains/v10/android/chains.json @@ -1326,17 +1326,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v10/chains.json b/chains/v10/chains.json index 4130973..e5c1837 100644 --- a/chains/v10/chains.json +++ b/chains/v10/chains.json @@ -1326,17 +1326,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v10/chains_dev.json b/chains/v10/chains_dev.json index d80c5fa..f6cec4b 100644 --- a/chains/v10/chains_dev.json +++ b/chains/v10/chains_dev.json @@ -1355,10 +1355,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" @@ -3332,18 +3328,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3375,52 +3359,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}", - "event": null - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v11/android/chains.json b/chains/v11/android/chains.json index 3407822..1f0e305 100644 --- a/chains/v11/android/chains.json +++ b/chains/v11/android/chains.json @@ -1340,17 +1340,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v11/chains.json b/chains/v11/chains.json index 3407822..1f0e305 100644 --- a/chains/v11/chains.json +++ b/chains/v11/chains.json @@ -1340,17 +1340,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v11/chains_dev.json b/chains/v11/chains_dev.json index 25d3dfc..df4b6a2 100644 --- a/chains/v11/chains_dev.json +++ b/chains/v11/chains_dev.json @@ -1369,10 +1369,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" @@ -3371,18 +3367,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3414,52 +3398,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}", - "event": null - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v12/android/chains.json b/chains/v12/android/chains.json index 57ef859..ba8fe32 100644 --- a/chains/v12/android/chains.json +++ b/chains/v12/android/chains.json @@ -1348,17 +1348,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v12/chains.json b/chains/v12/chains.json index 57ef859..ba8fe32 100644 --- a/chains/v12/chains.json +++ b/chains/v12/chains.json @@ -1348,17 +1348,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v12/chains_dev.json b/chains/v12/chains_dev.json index dd5b7ee..7a61c19 100644 --- a/chains/v12/chains_dev.json +++ b/chains/v12/chains_dev.json @@ -1380,10 +1380,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" @@ -3387,18 +3383,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3430,52 +3414,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}", - "event": null - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v13/android/chains.json b/chains/v13/android/chains.json index 25e38af..3a07146 100644 --- a/chains/v13/android/chains.json +++ b/chains/v13/android/chains.json @@ -1437,18 +1437,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v13/chains.json b/chains/v13/chains.json index 25e38af..3a07146 100644 --- a/chains/v13/chains.json +++ b/chains/v13/chains.json @@ -1437,18 +1437,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v13/chains_dev.json b/chains/v13/chains_dev.json index 97a8fca..b4aea2b 100644 --- a/chains/v13/chains_dev.json +++ b/chains/v13/chains_dev.json @@ -1441,10 +1441,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" @@ -3569,18 +3565,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3611,51 +3595,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v14/android/chains.json b/chains/v14/android/chains.json index 7ee6110..8b1b5f7 100644 --- a/chains/v14/android/chains.json +++ b/chains/v14/android/chains.json @@ -1512,18 +1512,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v14/chains.json b/chains/v14/chains.json index 7ee6110..8b1b5f7 100644 --- a/chains/v14/chains.json +++ b/chains/v14/chains.json @@ -1512,18 +1512,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v14/chains_dev.json b/chains/v14/chains_dev.json index 546c8b4..f84824e 100644 --- a/chains/v14/chains_dev.json +++ b/chains/v14/chains_dev.json @@ -3822,18 +3822,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3864,51 +3852,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v15/android/chains.json b/chains/v15/android/chains.json index 2250025..7313af1 100644 --- a/chains/v15/android/chains.json +++ b/chains/v15/android/chains.json @@ -1503,18 +1503,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v15/chains.json b/chains/v15/chains.json index 2250025..7313af1 100644 --- a/chains/v15/chains.json +++ b/chains/v15/chains.json @@ -1503,18 +1503,6 @@ { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v15/chains_dev.json b/chains/v15/chains_dev.json index 005759a..6e52518 100644 --- a/chains/v15/chains_dev.json +++ b/chains/v15/chains_dev.json @@ -3821,18 +3821,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3863,51 +3851,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v16/android/chains.json b/chains/v16/android/chains.json index c1bdf63..1918e66 100644 --- a/chains/v16/android/chains.json +++ b/chains/v16/android/chains.json @@ -1499,25 +1499,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v16/chains.json b/chains/v16/chains.json index c1bdf63..1918e66 100644 --- a/chains/v16/chains.json +++ b/chains/v16/chains.json @@ -1499,25 +1499,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" } ], "explorers": [ diff --git a/chains/v16/chains_dev.json b/chains/v16/chains_dev.json index ce3e1f6..d83a668 100644 --- a/chains/v16/chains_dev.json +++ b/chains/v16/chains_dev.json @@ -3864,18 +3864,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3906,51 +3894,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v17/android/chains.json b/chains/v17/android/chains.json index 90b3c77..c783063 100644 --- a/chains/v17/android/chains.json +++ b/chains/v17/android/chains.json @@ -1482,33 +1482,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v17/chains.json b/chains/v17/chains.json index 90b3c77..c783063 100644 --- a/chains/v17/chains.json +++ b/chains/v17/chains.json @@ -1482,33 +1482,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v17/chains_dev.json b/chains/v17/chains_dev.json index e8c1e26..393a60a 100644 --- a/chains/v17/chains_dev.json +++ b/chains/v17/chains_dev.json @@ -3814,18 +3814,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3856,51 +3844,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v18/android/chains.json b/chains/v18/android/chains.json index d83ede6..b468b52 100644 --- a/chains/v18/android/chains.json +++ b/chains/v18/android/chains.json @@ -1513,33 +1513,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v18/chains.json b/chains/v18/chains.json index d83ede6..b468b52 100644 --- a/chains/v18/chains.json +++ b/chains/v18/chains.json @@ -1513,33 +1513,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v18/chains_dev.json b/chains/v18/chains_dev.json index c1edd3b..866018a 100644 --- a/chains/v18/chains_dev.json +++ b/chains/v18/chains_dev.json @@ -3818,18 +3818,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3860,51 +3848,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v19/android/chains.json b/chains/v19/android/chains.json index 58f0876..2f0c556 100644 --- a/chains/v19/android/chains.json +++ b/chains/v19/android/chains.json @@ -1513,33 +1513,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v19/chains.json b/chains/v19/chains.json index 58f0876..2f0c556 100644 --- a/chains/v19/chains.json +++ b/chains/v19/chains.json @@ -1513,33 +1513,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v19/chains_dev.json b/chains/v19/chains_dev.json index c586366..2248d38 100644 --- a/chains/v19/chains_dev.json +++ b/chains/v19/chains_dev.json @@ -3818,18 +3818,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3860,51 +3848,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v20/android/chains.json b/chains/v20/android/chains.json index 6205716..2cf5895 100644 --- a/chains/v20/android/chains.json +++ b/chains/v20/android/chains.json @@ -1527,33 +1527,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v20/chains.json b/chains/v20/chains.json index 6205716..2cf5895 100644 --- a/chains/v20/chains.json +++ b/chains/v20/chains.json @@ -1527,33 +1527,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/5717b02168b5434ba23801e1ea755afb", - "name": "Infura node 7" } ], "explorers": [ diff --git a/chains/v20/chains_dev.json b/chains/v20/chains_dev.json index 481136b..8de50a5 100644 --- a/chains/v20/chains_dev.json +++ b/chains/v20/chains_dev.json @@ -3910,18 +3910,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 4" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3997,51 +3985,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v20/preConfigured/chains.json b/chains/v20/preConfigured/chains.json index d6acaa2..fbf873a 100644 --- a/chains/v20/preConfigured/chains.json +++ b/chains/v20/preConfigured/chains.json @@ -183,10 +183,6 @@ "chainId": "65c489fb7bfaf4a27f283faf694a64a8d7ae8fc0ed970fc4ebbf25d03095e4d0", "name": "Niskala (TESTNET)" }, - { - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)" - }, { "chainId": "466edf864b4314b97f36e45ec21ddb39e0bdc52789377b91be0957d5afad2eb2", "name": "Energy Web X Paseo (TESTNET)" diff --git a/chains/v20/preConfigured/chains_dev.json b/chains/v20/preConfigured/chains_dev.json index a38ccbb..7e29609 100644 --- a/chains/v20/preConfigured/chains_dev.json +++ b/chains/v20/preConfigured/chains_dev.json @@ -139,10 +139,6 @@ "chainId": "65c489fb7bfaf4a27f283faf694a64a8d7ae8fc0ed970fc4ebbf25d03095e4d0", "name": "Niskala (TESTNET)" }, - { - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)" - }, { "chainId": "466edf864b4314b97f36e45ec21ddb39e0bdc52789377b91be0957d5afad2eb2", "name": "Energy Web X Paseo (TESTNET)" diff --git a/chains/v20/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json b/chains/v20/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json deleted file mode 100644 index 3a0d692..0000000 --- a/chains/v20/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)", - "assets": [ - { - "assetId": 0, - "symbol": "notNodl", - "precision": 11, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/Default.svg" - } - ], - "nodes": [ - { - "url": "wss://node-6957502816543653888.lh.onfinality.io/ws?apikey=09b04494-3139-4b57-a5d1-e1c4c18748ce", - "name": "OnFinality" - } - ], - "addressPrefix": 37 -} diff --git a/chains/v20/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json b/chains/v20/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json deleted file mode 100644 index 3a0d692..0000000 --- a/chains/v20/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)", - "assets": [ - { - "assetId": 0, - "symbol": "notNodl", - "precision": 11, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/Default.svg" - } - ], - "nodes": [ - { - "url": "wss://node-6957502816543653888.lh.onfinality.io/ws?apikey=09b04494-3139-4b57-a5d1-e1c4c18748ce", - "name": "OnFinality" - } - ], - "addressPrefix": 37 -} diff --git a/chains/v21/android/chains.json b/chains/v21/android/chains.json index eb11021..c9b793b 100644 --- a/chains/v21/android/chains.json +++ b/chains/v21/android/chains.json @@ -1676,25 +1676,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" } ], "explorers": [ diff --git a/chains/v21/chains.json b/chains/v21/chains.json index eb11021..c9b793b 100644 --- a/chains/v21/chains.json +++ b/chains/v21/chains.json @@ -1676,25 +1676,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" } ], "explorers": [ diff --git a/chains/v21/chains_dev.json b/chains/v21/chains_dev.json index 2dbabf4..4c91554 100644 --- a/chains/v21/chains_dev.json +++ b/chains/v21/chains_dev.json @@ -3751,14 +3751,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3834,51 +3826,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v21/preConfigured/chains.json b/chains/v21/preConfigured/chains.json index e4488a2..1b184dd 100644 --- a/chains/v21/preConfigured/chains.json +++ b/chains/v21/preConfigured/chains.json @@ -187,10 +187,6 @@ "chainId": "65c489fb7bfaf4a27f283faf694a64a8d7ae8fc0ed970fc4ebbf25d03095e4d0", "name": "Niskala (TESTNET)" }, - { - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)" - }, { "chainId": "466edf864b4314b97f36e45ec21ddb39e0bdc52789377b91be0957d5afad2eb2", "name": "Energy Web X Paseo (TESTNET)" diff --git a/chains/v21/preConfigured/chains_dev.json b/chains/v21/preConfigured/chains_dev.json index 34dc485..bcaa8e9 100644 --- a/chains/v21/preConfigured/chains_dev.json +++ b/chains/v21/preConfigured/chains_dev.json @@ -135,10 +135,6 @@ "chainId": "65c489fb7bfaf4a27f283faf694a64a8d7ae8fc0ed970fc4ebbf25d03095e4d0", "name": "Niskala (TESTNET)" }, - { - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)" - }, { "chainId": "466edf864b4314b97f36e45ec21ddb39e0bdc52789377b91be0957d5afad2eb2", "name": "Energy Web X Paseo (TESTNET)" diff --git a/chains/v21/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json b/chains/v21/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json deleted file mode 100644 index 8bd1492..0000000 --- a/chains/v21/preConfigured/details/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)", - "assets": [ - { - "assetId": 0, - "symbol": "notNodl", - "precision": 11, - "icon": "Default.svg" - } - ], - "nodes": [ - { - "url": "wss://node-7273232234617282560.nv.onfinality.io/ws?apikey=b937a7d7-7395-49b9-b745-60a0342fa365", - "name": "OnFinality" - } - ], - "addressPrefix": 37 -} diff --git a/chains/v21/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json b/chains/v21/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json deleted file mode 100644 index 8bd1492..0000000 --- a/chains/v21/preConfigured/detailsDev/d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "chainId": "d9d12d9139d020f658d4469fa5c02e331195227da62567d7bf9bbd1abaf77522", - "name": "Parachain Hades testnet (TESTNET)", - "assets": [ - { - "assetId": 0, - "symbol": "notNodl", - "precision": 11, - "icon": "Default.svg" - } - ], - "nodes": [ - { - "url": "wss://node-7273232234617282560.nv.onfinality.io/ws?apikey=b937a7d7-7395-49b9-b745-60a0342fa365", - "name": "OnFinality" - } - ], - "addressPrefix": 37 -} diff --git a/chains/v22/android/chains.json b/chains/v22/android/chains.json index f69501d..d054a6f 100644 --- a/chains/v22/android/chains.json +++ b/chains/v22/android/chains.json @@ -1626,25 +1626,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" } ], "explorers": [ diff --git a/chains/v22/chains.json b/chains/v22/chains.json index f69501d..d054a6f 100644 --- a/chains/v22/chains.json +++ b/chains/v22/chains.json @@ -1626,25 +1626,9 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/32a2be59297444c9bcb2b61bb700c6fe", - "name": "Infura node 5" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 4" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/82fd5b2925e341719f10b7ed4376a646", - "name": "Infura node 6" } ], "explorers": [ diff --git a/chains/v22/chains_dev.json b/chains/v22/chains_dev.json index ba1f110..5aa4246 100644 --- a/chains/v22/chains_dev.json +++ b/chains/v22/chains_dev.json @@ -3196,14 +3196,6 @@ "url": "https://1rpc.io/eth", "name": "One rpc node" }, - { - "url": "wss://mainnet.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura node 3" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 2" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3279,51 +3271,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}" - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/chains/v4/chains_dev.json b/chains/v4/chains_dev.json index ed07293..ba289bf 100644 --- a/chains/v4/chains_dev.json +++ b/chains/v4/chains_dev.json @@ -1225,10 +1225,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" diff --git a/chains/v5/chains_dev.json b/chains/v5/chains_dev.json index ae0983a..bc980ce 100644 --- a/chains/v5/chains_dev.json +++ b/chains/v5/chains_dev.json @@ -1283,10 +1283,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" diff --git a/chains/v6/chains_dev.json b/chains/v6/chains_dev.json index 6cbfdea..be821e4 100644 --- a/chains/v6/chains_dev.json +++ b/chains/v6/chains_dev.json @@ -1315,10 +1315,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" diff --git a/chains/v7/chains_dev.json b/chains/v7/chains_dev.json index 7c6f8bb..b10b75d 100644 --- a/chains/v7/chains_dev.json +++ b/chains/v7/chains_dev.json @@ -1329,10 +1329,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" diff --git a/chains/v8/chains_dev.json b/chains/v8/chains_dev.json index 7e48d54..2eadcfa 100644 --- a/chains/v8/chains_dev.json +++ b/chains/v8/chains_dev.json @@ -1355,10 +1355,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" diff --git a/chains/v9/android/chains.json b/chains/v9/android/chains.json index e610690..0a335ef 100644 --- a/chains/v9/android/chains.json +++ b/chains/v9/android/chains.json @@ -1281,17 +1281,9 @@ ], "nodeSelectionStrategy": "uniform", "nodes": [ - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v9/chains.json b/chains/v9/chains.json index e610690..0a335ef 100644 --- a/chains/v9/chains.json +++ b/chains/v9/chains.json @@ -1281,17 +1281,9 @@ ], "nodeSelectionStrategy": "uniform", "nodes": [ - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura node" - }, - { - "url": "wss://mainnet.infura.io/ws/v3/9dddd77ac74043dc9a8dc48f82822c7d", - "name": "Infura node 2" } ], "explorers": [ diff --git a/chains/v9/chains_dev.json b/chains/v9/chains_dev.json index 19ce656..deb789b 100644 --- a/chains/v9/chains_dev.json +++ b/chains/v9/chains_dev.json @@ -1355,10 +1355,6 @@ } ], "nodes": [ - { - "url": "wss://moonriver.api.onfinality.io/ws?apikey=41935d3d-3d6c-4a90-a0e1-33c065401d05", - "name": "OnFinality node" - }, { "url": "wss://moonriver.api.onfinality.io/public-ws", "name": "OnFinality node" @@ -3261,10 +3257,6 @@ ], "nodeSelectionStrategy": "uniform", "nodes": [ - { - "url": "wss://mainnet.infura.io/ws/v3/1e69544301064ef19edb194a14fb75f3", - "name": "Infura node 3" - }, { "url": "wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}", "name": "Infura test node" @@ -3296,52 +3288,6 @@ "noSubstrateRuntime" ] }, - { - "chainId": "eip155:5", - "name": "Ethereum - Goerli", - "assets": [ - { - "assetId": 0, - "symbol": "ETH", - "priceId": "ethereum", - "type": "evmNative", - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/ETH.svg", - "precision": 18 - } - ], - "nodes": [ - { - "url": "wss://goerli.infura.io/ws/v3/25bd0a6e359240529b237e5dd8b19e1f", - "name": "Infura test node" - } - ], - "explorers": [ - { - "name": "Etherscan", - "extrinsic": "https://goerli.etherscan.io/tx/{hash}", - "account": "https://goerli.etherscan.io/address/{address}", - "event": null - } - ], - "externalApi": { - "history": [ - { - "type": "etherscan", - "url": "https://api-goerli.etherscan.io/api", - "parameters": { - "assetType": "evm" - } - } - ] - }, - "icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Ethereum_Goerli.svg", - "addressPrefix": 5, - "options": [ - "testnet", - "ethereumBased", - "noSubstrateRuntime" - ] - }, { "chainId": "89d3ec46d2fb43ef5a9713833373d5ea666b092fa8fd68fbc34596036571b907", "parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", diff --git a/scripts/check_pezkuwi_integrity.py b/scripts/check_pezkuwi_integrity.py index 57c7e91..05d881a 100755 --- a/scripts/check_pezkuwi_integrity.py +++ b/scripts/check_pezkuwi_integrity.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Refuse the four regressions this repo has already had. +"""Refuse the five regressions this repo has already had. Each check below exists because the thing it forbids happened, was fixed, and in two cases came back. They are cheap; the failures they catch are not. @@ -88,6 +88,8 @@ grep = subprocess.run( capture_output=True, text=True, ) +if grep.returncode not in (0, 1): + errors.append(f"grep for working-branch asset URLs failed: {grep.stderr.strip()}") if grep.stdout.strip(): files = grep.stdout.strip().splitlines() errors.append( @@ -107,6 +109,43 @@ for fixture in ("pezkuwi_assets_for_testBalance.json",): f"tests/{fixture} has drifted from pezkuwi-overlay/tests/{fixture}" ) +# ── 5. No third-party API key in a URL ─────────────────────────────────────── +# +# Nova's configs shipped Nova's own provider keys (Infura project ids, OnFinality +# apikeys) inside node URLs, and every sync copied them into ours. Our builds fill +# {INFURA_API_KEY}-style placeholders from our own secrets; a keyed URL is someone +# else's quota and dies when they rotate it. The predicate is the one the sync +# uses, and every string in every JSON file is checked, so a file that does not +# parse is a failure, not a pass. +sys.path.insert(0, str(ROOT / "scripts")) +from sync_from_nova import is_keyed # noqa: E402 + +keyed_files = [] +json_files = sorted(p for p in (ROOT / "chains").rglob("*.json")) +if not json_files: + errors.append("chains/ has no JSON files; the key check would have checked nothing") +for path in json_files: + try: + doc = json.loads(path.read_text(encoding="utf-8")) + except (OSError, ValueError) as exc: + errors.append(f"{path.relative_to(ROOT)} could not be read for the key check: {exc}") + continue + stack = [doc] + while stack: + node = stack.pop() + if isinstance(node, dict): + stack.extend(node.values()) + elif isinstance(node, list): + stack.extend(node) + elif isinstance(node, str) and is_keyed(node): + keyed_files.append(path) + break +if keyed_files: + errors.append( + f"{len(keyed_files)} file(s) under chains/ embed a provider key in a URL; " + f"use a {{PLACEHOLDER}}, e.g. {keyed_files[0].relative_to(ROOT)}" + ) + if errors: for e in errors: print(f"::error::{e}") @@ -114,4 +153,5 @@ if errors: sys.exit(1) print("Pezkuwi integrity: on-chain assets only, sufficiency declared, " - "assets served from master, fixture in step with its source.") + "assets served from master, fixture in step with its source, " + "no third-party key in a node URL.") diff --git a/scripts/merge-chains.py b/scripts/merge-chains.py index 8d6ada2..98a878e 100755 --- a/scripts/merge-chains.py +++ b/scripts/merge-chains.py @@ -15,8 +15,12 @@ Options: import json import argparse +import sys from pathlib import Path +sys.path.insert(0, str(Path(__file__).parent)) +from sync_from_nova import strip_keyed_endpoints # noqa: E402 + # Base paths SCRIPT_DIR = Path(__file__).parent ROOT_DIR = SCRIPT_DIR.parent @@ -151,6 +155,9 @@ def merge_chains(nova_chains: list, pezkuwi_chains: list, filter_broken: bool = nova_filtered.append(chain) stats['nova_included'] += 1 + nova_filtered = strip_keyed_endpoints(nova_filtered) + stats['nova_included'] = len(nova_filtered) + # Pezkuwi first, then Nova merged = pezkuwi_chains + nova_filtered stats['total'] = len(merged) diff --git a/scripts/sync_from_nova.py b/scripts/sync_from_nova.py index dbdbe35..abbcdc9 100644 --- a/scripts/sync_from_nova.py +++ b/scripts/sync_from_nova.py @@ -19,6 +19,7 @@ Rules: """ import json +import re import shutil from pathlib import Path @@ -51,6 +52,67 @@ def load_blacklist() -> set: return set() +# Nova's configs carry Nova's own provider keys written into node URLs (Infura +# project ids, OnFinality apikeys). They are not ours to use: our builds fill +# placeholders like `{INFURA_API_KEY}` from our own secrets, and a keyed URL +# breaks for every user the day Nova rotates it. check_pezkuwi_integrity.py +# imports this same predicate, so the filter and the gate cannot disagree. +KEYED_ENDPOINT = re.compile( + r"infura\.io/(?:[^?#\s]*/)?v3/[0-9a-z]{32}" + r"|[?&](?:api[_-]?key|apikey|access[_-]?token|token|key)=(?!\{)[^&#\s]+", + re.IGNORECASE, +) + + +def is_keyed(url: str) -> bool: + """True if the URL embeds a literal credential rather than a {PLACEHOLDER}.""" + return bool(KEYED_ENDPOINT.search(url)) + + +def strip_chain(chain: dict) -> dict | None: + """The chain without keyed nodes; None if no node is left.""" + nodes = chain.get('nodes') + if not isinstance(nodes, list): + return chain + kept = [n for n in nodes if not (isinstance(n, dict) and is_keyed(str(n.get('url', ''))))] + if not kept: + return None + return chain if len(kept) == len(nodes) else {**chain, 'nodes': kept} + + +def strip_keyed_endpoints(chains: list) -> list: + """Drop nodes whose URL embeds a third-party key, and any chain left with no node.""" + return [c for c in (strip_chain(c) for c in chains) if c is not None] + + +def rewrite_in_place(path: Path, data): + """Rewrite a JSON file keeping its own indent and trailing newline, so a + filtered copy of Nova's file differs from it only where the data does.""" + raw = path.read_text(encoding='utf-8') + second = raw.split('\n', 2)[1] if raw.count('\n') >= 1 else '' + indent = (len(second) - len(second.lstrip(' '))) or 2 + out = json.dumps(data, indent=indent, ensure_ascii=False) + path.write_text(out + ('\n' if raw.endswith('\n') else ''), encoding='utf-8') + + +def strip_preconfigured(preconfig: Path): + """Apply strip_chain to every details file; a chain left with no node is + removed together with its entry in the matching index.""" + for details, index in (("details", "chains.json"), ("detailsDev", "chains_dev.json")): + dropped = set() + for f in sorted((preconfig / details).glob("*.json")): + chain = load_json(f) + stripped = strip_chain(chain) + if stripped is None: + dropped.add(chain.get('chainId')) + f.unlink() + elif stripped is not chain: + rewrite_in_place(f, stripped) + index_file = preconfig / index + if dropped and index_file.exists(): + rewrite_in_place(index_file, [c for c in load_json(index_file) if c.get('chainId') not in dropped]) + + def merge_chains(nova_chains: list, pezkuwi_chains: list, blocked_ids: set) -> list: """Pezkuwi chains first, then Nova chains. Blocked chains excluded.""" pezkuwi_ids = {c['chainId'] for c in pezkuwi_chains} @@ -58,7 +120,7 @@ def merge_chains(nova_chains: list, pezkuwi_chains: list, blocked_ids: set) -> l c for c in nova_chains if c['chainId'] not in pezkuwi_ids and c['chainId'] not in blocked_ids ] - return pezkuwi_chains + nova_filtered + return pezkuwi_chains + strip_keyed_endpoints(nova_filtered) def merge_xcm(nova_xcm: dict, pezkuwi_xcm: dict) -> dict: @@ -143,6 +205,7 @@ def sync_chains(): if output_preconfig.exists(): shutil.rmtree(output_preconfig) shutil.copytree(nova_preconfig, output_preconfig) + strip_preconfigured(output_preconfig) def sync_xcm():