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/
This commit is contained in:
Satoshi Qazi Muhammed committed 2026-10-17 19:51:58 +04:00
1 parent 8bd31ac686
commit 7f0bb6a3d3
46 files changed
+50 -1233

No files matched your search

-20
View File
@@ -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": [
-8
View File
@@ -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": [
-8
View File
@@ -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": [
-58
View File
@@ -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",
-8
View File
@@ -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": [
-8
View File
@@ -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": [
-58
View File
@@ -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",
-8
View File
@@ -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": [
-8
View File
@@ -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": [
-58
View File
@@ -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",
-12
View File
@@ -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": [
-12
View File
@@ -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": [
-57
View File
@@ -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",
-12
View File
@@ -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": [
-12
View File
@@ -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": [
-57
View File
@@ -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",
-12
View File
@@ -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": [
-12
View File
@@ -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": [
-57
View File
@@ -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",
-16
View File
@@ -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": [
-16
View File
@@ -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": [
-57
View File
@@ -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",
-24
View File
@@ -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": [
-24
View File
@@ -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": [
-57
View File
@@ -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",
-24
View File
@@ -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": [
-24
View File
@@ -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": [
-57
View File
@@ -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",
-24
View File
@@ -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": [
-24
View File
@@ -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": [
-57
View File
@@ -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",
-24
View File
@@ -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": [
-24
View File
@@ -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": [
-57
View File
@@ -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",
-16
View File
@@ -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": [
-16
View File
@@ -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": [
-53
View File
@@ -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",
-16
View File
@@ -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": [
-16
View File
@@ -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": [
-53
View File
@@ -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",
-8
View File
@@ -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": [
-8
View File
@@ -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": [
-50
View File
@@ -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",
+20 -2
View File
@@ -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.")
+7
View File
@@ -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)
+23 -1
View File
@@ -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: