mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-utils.git
synced 2026-07-09 09:27:31 +00:00
Fix stale blacklist chain_ids, add stale-blacklist warning to sync script
Root cause of the balances-test hang in pezkuwi-wallet-android (silent for over an hour, cancelled multiple times before finding this): every single chain_id in blocked-chains.json was stale - none matched anything in Nova's current chains.json (last_updated 2026-02-11, ~5 months of upstream chain-id drift since). The blacklist mechanism silently no-opped for all 6 entries, so none of the chains it was meant to exclude were actually excluded. With the blacklist ineffective, several chains with genuinely dead RPC endpoints (confirmed live 2026-07-08: 3DPass, Curio, Quartz, Subsocial - 502s, timeouts, SSL failures) stayed in the merged output. The Android app's ChainConnection/NodeAutobalancer has no backoff/circuit breaker for dead endpoints, so it retried them in an extremely tight loop (~1 attempt/second, 1500-1800+ attempts observed in a 25 minute window per chain) - burning resources indefinitely and starving the app's actual chain-sync/test work, which is what made the Android CI job hang for over an hour with zero progress. Fix: re-verified and corrected all chain_ids (matching by current name against live chains.json), added 3DPass/Curio/Subsocial which weren't blacklisted before, dropped entries for chains no longer present upstream at all (Passet Hub Testnet, Darwinia Crab, DeepBrain, Exosama - nothing to block, kept them as historical noise otherwise). Also added a stale-blacklist warning to sync_from_nova.py: it now tracks which blocked chain_ids actually matched something in Nova's current chains across all versions, and prints a warning listing any that didn't - so this exact silent drift is caught at sync time going forward instead of rotting unnoticed for another five months.
This commit is contained in:
+145
-170
@@ -3218,62 +3218,6 @@
|
||||
"defaultBlockTime": 12000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chainId": "cd4d732201ebe5d6b014edda071c4203e16867305332301dc8d092044b28e554",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "QUARTZ",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "QTZ",
|
||||
"priceId": "quartz",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/white/Quartz.svg",
|
||||
"precision": 18
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://quartz.unique.network",
|
||||
"name": "Unique node"
|
||||
},
|
||||
{
|
||||
"url": "wss://eu-ws-quartz.unique.network",
|
||||
"name": "Unique Europe node"
|
||||
},
|
||||
{
|
||||
"url": "wss://us-ws-quartz.unique.network",
|
||||
"name": "Unique US node"
|
||||
},
|
||||
{
|
||||
"url": "wss://asia-ws-quartz.unique.network",
|
||||
"name": "Unique Asia node"
|
||||
}
|
||||
],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Subscan",
|
||||
"extrinsic": "https://quartz.subscan.io/extrinsic/{hash}",
|
||||
"account": "https://quartz.subscan.io/account/{address}"
|
||||
},
|
||||
{
|
||||
"name": "Sub.ID",
|
||||
"account": "https://sub.id/{address}"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-quartz"
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Quartz.svg",
|
||||
"addressPrefix": 255,
|
||||
"additional": {
|
||||
"feeViaRuntimeCall": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"chainId": "f22b7850cdd5a7657bbfd90ac86441275bbc57ace3d2698a740c7b0ec4de5ec3",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
@@ -5190,46 +5134,6 @@
|
||||
"governance-v1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "4a12be580bb959937a1c7a61d5cf24428ed67fa571974b4007645d1886e7c89f",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "Subsocial",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "SUB",
|
||||
"precision": 10,
|
||||
"priceId": "subsocial",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/white/Subsocial.svg"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://para.f3joule.space",
|
||||
"name": "Subsocial node"
|
||||
},
|
||||
{
|
||||
"url": "wss://para.subsocial.network",
|
||||
"name": "Dappforce node"
|
||||
}
|
||||
],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Sub.ID",
|
||||
"account": "https://sub.id/{address}"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-subsocial"
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Subsocial_Parachain.svg",
|
||||
"addressPrefix": 28
|
||||
},
|
||||
{
|
||||
"chainId": "d4c0c08ca49dc7c680c3dac71a7c0703e5b222f4b6c03fe4c5219bb8f22c18dc",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
@@ -6462,6 +6366,70 @@
|
||||
"defaultBlockTime": 12000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chainId": "70255b4d28de0fc4e1a193d7e175ad1ccef431598211c55538f1018651a0344e",
|
||||
"name": "Aleph Zero",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "AZERO",
|
||||
"staking": [
|
||||
"aleph-zero",
|
||||
"nomination-pools"
|
||||
],
|
||||
"priceId": "aleph-zero",
|
||||
"precision": 12,
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/white/Aleph_zero.svg",
|
||||
"buyProviders": {
|
||||
"transak": {
|
||||
"network": "ALEPHZERO"
|
||||
},
|
||||
"banxa": {
|
||||
"coinType": "AZERO",
|
||||
"blockchain": "AZERO"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://ws.azero.dev",
|
||||
"name": "Aleph Zero node"
|
||||
}
|
||||
],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Subscan",
|
||||
"extrinsic": "https://alephzero.subscan.io/extrinsic/{hash}",
|
||||
"account": "https://alephzero.subscan.io/account/{address}"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-aleph-zero"
|
||||
}
|
||||
],
|
||||
"staking": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-aleph-zero"
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/AlephZero.svg",
|
||||
"addressPrefix": 42,
|
||||
"additional": {
|
||||
"themeColor": "#10B6B1",
|
||||
"stakingWiki": "https://docs.novawallet.io/nova-wallet-wiki/staking/aleph-zero-azero-staking",
|
||||
"defaultBlockTime": 1000
|
||||
},
|
||||
"options": [
|
||||
"fullSyncByDefault",
|
||||
"pushSupport"
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "daab8df776eb52ec604a5df5d388bb62a050a0aaec4556a64265b9d42755552d",
|
||||
"parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
|
||||
@@ -8755,44 +8723,48 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "6c5894837ad89b6d92b114a2fb3eafa8fe3d26a54848e3447015442cd6ef4e66",
|
||||
"name": "3DPass",
|
||||
"chainId": "eip155:2109",
|
||||
"name": "Exosama",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "P3D",
|
||||
"precision": 12,
|
||||
"priceId": "3dpass",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/P3D.svg"
|
||||
"symbol": "SAMA",
|
||||
"priceId": "exosama-network",
|
||||
"type": "evmNative",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/MOONSAMA.svg",
|
||||
"precision": 18
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://rpc.3dpscan.io",
|
||||
"name": "3DPass node"
|
||||
},
|
||||
{
|
||||
"url": "wss://rpc2.3dpass.org",
|
||||
"name": "3DPass node"
|
||||
"url": "wss://rpc.exosama.com",
|
||||
"name": "Exosama node"
|
||||
}
|
||||
],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "3DPass explorer",
|
||||
"extrinsic": "https://explorer.3dpass.org/extrinsic/{hash}",
|
||||
"account": "https://explorer.3dpass.org/account/{address}"
|
||||
"name": "Exosama explorer",
|
||||
"extrinsic": "https://explorer.exosama.com/tx/{hash}",
|
||||
"account": "https://explorer.exosama.com/address/{address}"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-3dpass"
|
||||
"type": "etherscan",
|
||||
"url": "https://explorer.exosama.com/api",
|
||||
"parameters": {
|
||||
"assetType": "evm"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/3DPass.svg",
|
||||
"addressPrefix": 71
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Exosama.svg",
|
||||
"addressPrefix": 2109,
|
||||
"options": [
|
||||
"ethereumBased",
|
||||
"noSubstrateRuntime"
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "e358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",
|
||||
@@ -8889,6 +8861,64 @@
|
||||
"ethereumBased"
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "86e49c195aeae7c5c4a86ced251f1a28c67b3c35d8289c387ede1776cdd88b24",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "Crab",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "CRAB",
|
||||
"precision": 18,
|
||||
"priceId": "darwinia-network-native-token",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/white/Crab.svg"
|
||||
},
|
||||
{
|
||||
"assetId": 1,
|
||||
"symbol": "CKTON",
|
||||
"precision": 18,
|
||||
"type": "statemine",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/CKTON.svg",
|
||||
"typeExtras": {
|
||||
"assetId": "1026"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://crab-rpc.darwinia.network/",
|
||||
"name": "Darwinia node"
|
||||
},
|
||||
{
|
||||
"url": "wss://darwiniacrab-rpc.dwellir.com",
|
||||
"name": "Dwellir node"
|
||||
},
|
||||
{
|
||||
"url": "wss://crab-rpc.darwiniacommunitydao.xyz",
|
||||
"name": "Community node"
|
||||
}
|
||||
],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Subscan",
|
||||
"extrinsic": "https://crab.subscan.io/extrinsic/{hash}",
|
||||
"account": "https://crab.subscan.io/account/{address}"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet-darwinia"
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Crab.svg",
|
||||
"addressPrefix": 42,
|
||||
"options": [
|
||||
"ethereumBased"
|
||||
]
|
||||
},
|
||||
{
|
||||
"chainId": "4a587bf17a404e3572747add7aab7bbe56e805a5479c6c436f07f36fcc8d3ae1",
|
||||
"parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
|
||||
@@ -10159,35 +10189,6 @@
|
||||
"feeViaRuntimeCall": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"chainId": "31a7d8914fb31c249b972f18c115f1e22b4b039abbcb03c73b6774c5642f9efe",
|
||||
"parentId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
|
||||
"name": "InvArch",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "VARCH",
|
||||
"precision": 12,
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/VARCH.svg"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://invarch-rpc.dwellir.com",
|
||||
"name": "Dwellir node"
|
||||
}
|
||||
],
|
||||
"externalApi": {
|
||||
"history": [
|
||||
{
|
||||
"type": "subquery",
|
||||
"url": "https://api.subquery.network/sq/nova-wallet/nova-wallet---invarch"
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/InvArch.svg",
|
||||
"addressPrefix": 117
|
||||
},
|
||||
{
|
||||
"chainId": "8b404e7ed8789d813982b9cb4c8b664c05b3fbf433309f603af014ec9ce56a8c",
|
||||
"name": "Crust",
|
||||
@@ -10417,32 +10418,6 @@
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Enjin.svg",
|
||||
"addressPrefix": 2135
|
||||
},
|
||||
{
|
||||
"chainId": "1d73b9f5dc392744e0dee00a6d6254fcfa2305386cceba60315894fa4807053a",
|
||||
"parentId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "Curio",
|
||||
"assets": [
|
||||
{
|
||||
"assetId": 0,
|
||||
"symbol": "CGT",
|
||||
"precision": 18,
|
||||
"priceId": "curio-governance",
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/tokens/white/CGT.svg"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"url": "wss://archive.parachain.curioinvest.com",
|
||||
"name": "Curio node"
|
||||
},
|
||||
{
|
||||
"url": "wss://parachain.curioinvest.com/",
|
||||
"name": "Curio node 2"
|
||||
}
|
||||
],
|
||||
"icon": "https://raw.githubusercontent.com/novasamatech/nova-utils/master/icons/chains/gradient/Curio.svg",
|
||||
"addressPrefix": 777
|
||||
},
|
||||
{
|
||||
"chainId": "d3d2f3a3495dc597434a99d7d449ebad6616db45e4e4f178f31cc6fa14378b70",
|
||||
"name": "Avail Turing Testnet",
|
||||
|
||||
Reference in New Issue
Block a user