From 7f0bb6a3d392933e82185aa7fd9fc389c39ed1cb Mon Sep 17 00:00:00 2001 From: Satoshi Qazi Muhammed Date: Sat, 17 Oct 2026 19:51:58 +0400 Subject: [PATCH] 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/ --- chains/chains.json | 20 ----------- chains/v10/android/chains.json | 8 ----- chains/v10/chains.json | 8 ----- chains/v10/chains_dev.json | 58 ------------------------------ chains/v11/android/chains.json | 8 ----- chains/v11/chains.json | 8 ----- chains/v11/chains_dev.json | 58 ------------------------------ chains/v12/android/chains.json | 8 ----- chains/v12/chains.json | 8 ----- chains/v12/chains_dev.json | 58 ------------------------------ chains/v13/android/chains.json | 12 ------- chains/v13/chains.json | 12 ------- chains/v13/chains_dev.json | 57 ----------------------------- 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/v21/android/chains.json | 16 --------- chains/v21/chains.json | 16 --------- chains/v21/chains_dev.json | 53 --------------------------- chains/v22/android/chains.json | 16 --------- chains/v22/chains.json | 16 --------- chains/v22/chains_dev.json | 53 --------------------------- chains/v9/android/chains.json | 8 ----- chains/v9/chains.json | 8 ----- chains/v9/chains_dev.json | 50 -------------------------- scripts/check_pezkuwi_integrity.py | 22 ++++++++++-- scripts/merge-chains.py | 7 ++++ scripts/sync_from_nova.py | 24 ++++++++++++- 46 files changed, 50 insertions(+), 1233 deletions(-) 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..f01f4be 100644 --- a/chains/v10/chains_dev.json +++ b/chains/v10/chains_dev.json @@ -3332,18 +3332,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 +3363,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..8f6c4e0 100644 --- a/chains/v11/chains_dev.json +++ b/chains/v11/chains_dev.json @@ -3371,18 +3371,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 +3402,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..16c2ef0 100644 --- a/chains/v12/chains_dev.json +++ b/chains/v12/chains_dev.json @@ -3387,18 +3387,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 +3418,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..7943767 100644 --- a/chains/v13/chains_dev.json +++ b/chains/v13/chains_dev.json @@ -3569,18 +3569,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 +3599,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/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/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/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..4acc21b 100644 --- a/chains/v9/chains_dev.json +++ b/chains/v9/chains_dev.json @@ -3261,10 +3261,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 +3292,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..f0aaa35 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. @@ -107,6 +107,23 @@ 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 node URL ────────────────────────────────── +# +# Nova's configs shipped Nova's own Infura project keys inside node URLs, and +# every sync copied them into ours. Our builds fill {INFURA_API_KEY} from our +# own secret; a keyed URL is someone else's quota and dies when they rotate it. +grep = subprocess.run( + ["grep", "-rlE", r"infura\.io/.*/v3/[0-9a-f]{32}", str(ROOT / "chains")], + capture_output=True, + text=True, +) +if grep.stdout.strip(): + files = grep.stdout.strip().splitlines() + errors.append( + f"{len(files)} file(s) under chains/ embed an Infura key in a node URL; " + f"use {{INFURA_API_KEY}}, e.g. {Path(files[0]).relative_to(ROOT)}" + ) + if errors: for e in errors: print(f"::error::{e}") @@ -114,4 +131,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..d3299f8 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,27 @@ def load_blacklist() -> set: return set() +# Nova's configs carry Nova's own Infura project keys written into node URLs. +# They are not ours to use: our builds fill `{INFURA_API_KEY}` from our own +# secret, and a keyed URL breaks for every user the day Nova rotates it. +KEYED_ENDPOINT = re.compile(r"infura\.io/.*/v3/[0-9a-f]{32}") + + +def strip_keyed_endpoints(chains: list) -> list: + """Drop nodes whose URL embeds a third-party API key, and any chain left with no node.""" + out = [] + for chain in chains: + nodes = chain.get('nodes') + if nodes is not None: + kept = [n for n in nodes if not KEYED_ENDPOINT.search(n.get('url', ''))] + if not kept: + continue + if len(kept) != len(nodes): + chain = {**chain, 'nodes': kept} + out.append(chain) + return out + + 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 +80,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: