mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-utils.git
synced 2026-08-12 13:51:37 +00:00
80fb0544ed
* fix(pezkuwi): finish the Asset Hub cleanup and guard it against coming back
Three things left half-done, and a check so they stay done.
## Assets that were never created on chain
chains.json and v22/android/chains_minimal.json still declared Pezkuwi Asset Hub
assetIds 1001, 1002 and 1003 as DOT, ETH and BTC. Queried against
wss://asset-hub-rpc.pezkuwichain.io on 2026-08-11, assets.asset() returns None for all
three; only 1 (PEZ) and 1000 (wUSDT) are Live. They were added from a template — the
icons pointed at Nova's own repo — and shown to users, where any transfer would fail.
This is the second removal. The first, on branch fix/remove-nonexistent-asset-hub-assets
(2026-07-09), cleaned 66 files across v10-v22 but never touched these two, and was never
opened as a PR. A third branch, feature/asset-level-balance-test-fixture, went the other
way and added all three to a regression fixture. Both branches sat for a month.
## Assets served from a working branch
252 references under chains/ fetched icons from pending/post-fix-release. Every file
they named is byte-identical on master, main and that branch, so the dependency bought
nothing — and would have broken silently the day the branch was tidied away, which
nearly happened during this cleanup. Repointed to master, the branch the apps read.
## A fixture nothing keeps in step
sync_from_nova.py publishes chains, xcm, icons and config from the overlay, but never
tests/. So tests/pezkuwi_assets_for_testBalance.json and its overlay source are kept
aligned by hand. They agree today; nothing would have said so if they stopped.
Rather than invent a publish step whose conventions I would be guessing at, the drift
is now asserted.
## The check
scripts/check_pezkuwi_integrity.py, wired into the Code Quality job. Four assertions,
one per regression above, each carrying why it exists. Two of the four have already
recurred once, and the Nova sync will keep proposing the first one back — the current
sync branch (f6c3ebb9) reverts the isSufficient declaration, which is why the second
assertion exists.
Mutation-tested: restoring a ghost asset, removing isSufficient, repointing one icon at
a working branch, and nudging the fixture each fail it; reverting each passes.
* fix(overlay): declare sufficiency at the source, not in the generated output
The isSufficient declaration was added to chains/ — which sync_from_nova.py regenerates
from nova-base plus pezkuwi-overlay on every run. So the fix had a shelf life of exactly
one sync, and the sync branch already waiting (sync/nova-base-f6c3ebb9, 2026-08-08)
reverts it: its output carries {"assetId": "1000"} with no sufficiency, because it was
generated from an overlay that does not declare any.
Editing generated files is how this repo keeps losing the same change. The phantom
Asset Hub assets were removed twice and came back twice for the same reason.
Verified rather than assumed: added the field to
pezkuwi-overlay/chains/pezkuwi-chains.json, ran scripts/sync_from_nova.py, and all three
generated files — chains.json, v22/android/chains.json, v22/android/chains_minimal.json
— came out carrying isSufficient: true. git reported no change to any of them, meaning
the sync now produces exactly what the manual edit produced, so the two agree instead of
fighting.
The phantom assets do not return either: the overlay lists only HEZ, PEZ and USDT, so
regeneration drops 1001/1002/1003 by construction rather than by anybody remembering.
Supported Networks & Assets data:
🕸️ Supported networks: 103
💰 All assets 463
🪙 Unique assets: 250
💫 Cross Chain directions: 327
🧾 SubQuery API projects: 59
👀 Networks with block explorers: 88
List of supported networks
| -- | Network | Assets | Explorers | SubQuery explorer |
|---|---|---|---|---|
| 1 | 3DPass | P3D | 3DPass explorer | https://subquery-history-3dpass-prod.novasama-tech.org |
| 2 | Acala | ACA LDOT aSEEDp DOT lcDOT GLMR PARA TAP tDOT INTR ASTR EQ iBTC DAI USDT PINK NEMO |
Subscan | - |
| 3 | Acurast Canary | cACU | - | https://subquery-history-acurast-prod.novasama-tech.org |
| 4 | Ajuna | AJUN | Statescan | https://subquery-history-ajuna-prod.novasama-tech.org |
| 5 | Aleph Zero | AZERO | Subscan | https://subquery-history-aleph-zero-prod.novasama-tech.org |
| 6 | Aleph Zero EVM (PAUSED) | AZERO | Aleph Zero EVM Explorer | {'type': 'etherscan', 'url': 'https://evm-explorer.alephzero.org/api', 'parameters': {'assetType': 'evm'}} |
| 7 | Altair | AIR | Subscan | - |
| 8 | Amplitude | AMPE KSM USDT USDC.s XLM.s TZS.s BRL.s AUDD.s EURC.s NGNC.s |
- | https://subquery-history-amplitude-prod.novasama-tech.org |
| 9 | Argochain (PAUSED) | AGC | Argochain Scanner | - |
| 10 | Astar | ASTR DOT GLMR iBTC INTR PHA ACA LDOT aSEEDp USDT BNC UNQ vDOT EQD |
Subscan | https://subquery-history-astar-prod.novasama-tech.org |
| 11 | Avail | AVAIL | Subscan | https://subquery-history-avail-prod.novasama-tech.org |
| 12 | Aventus | AVT | Aventus explorer | https://subquery-history-aventus-prod.novasama-tech.org |
| 13 | Base | ETH | Basescan | {'type': 'etherscan', 'url': 'https://api.basescan.org/api', 'parameters': {'assetType': 'evm'}} |
| 14 | Basilisk | BSX KSM aSEEDk TNKR USDT XRT |
Subscan | - |
| 15 | Bifrost Kusama | BNC KSM RMRK (old) ZLK KAR aSEEDk vsKSM USDT MOVR PHA vKSM kBTC vBNC vMOVR |
Subscan | - |
| 16 | Bifrost Polkadot | BNC GLMR DOT USDT ASTR vDOT vGLMR vFIL vASTR vsDOT MANTA vMANTA vBNC |
Subscan | https://subquery-history-bifrost-polkadot-prod.novasama-tech.org |
| 17 | Bit.Country Pioneer (PAUSED) | NEER BIT |
Subscan | - |
| 18 | Bittensor | TAO | SCAN | https://subquery-history-bittensor-prod.novasama-tech.org |
| 19 | CC Enterprise | CTC | Subscan | - |
| 20 | CLV Parachain (PAUSED) | CLV | Subscan | - |
| 21 | Centrifuge Parachain | CFG | Subscan | https://subquery-history-centrifuge-prod.novasama-tech.org |
| 22 | Cere | CERE | Statescan | - |
| 23 | Continuum (PAUSED) | NUUM | Subscan | - |
| 24 | Crab | CRAB CKTON |
Subscan | https://subquery-history-crab-prod.novasama-tech.org |
| 25 | Creditcoin | CTC | Subscan | - |
| 26 | Crust Polkadot Parachain | CRU | Subscan | https://subquery-history-crust-prod.novasama-tech.org |
| 27 | Crust Shadow | CSM | Statescan | https://subquery-history-shadow-prod.novasama-tech.org |
| 28 | Curio | CGT | - | https://subquery-history-curio-prod.novasama-tech.org |
| 29 | DAO IPCI | MITO | - | https://subquery-history-dao-ipci-prod.novasama-tech.org |
| 30 | DENTNet | DENTX | DENTNet Explorer | - |
| 31 | Darwinia | RING KTON |
Subscan | - |
| 32 | DeepBrain | DBC | Subscan | - |
| 33 | Dock (PAUSED) | DOCK | Subscan | - |
| 34 | Edgeware | EDG | Edgescan | - |
| 35 | Encointer | KSM | Subscan | https://subquery-history-encointer-prod.novasama-tech.org |
| 36 | Energy Web Chain | EWT | Energy Web Explorer | {'type': 'etherscan', 'url': 'https://explorer.energyweb.org/api', 'parameters': {'assetType': 'evm'}} |
| 37 | Energy Web X | EWT | Subscan | https://subquery-history-energywebx-prod.novasama-tech.org |
| 38 | Enjin Matrix | ENJ | Subscan | https://subquery-history-enjin-matrixc-prod.novasama-tech.org |
| 39 | Enjin Relay | ENJ | Subscan | https://subquery-history-enjin-relaychain-prod.novasama-tech.org |
| 40 | Ethereum | ETH | Etherscan | {'type': 'etherscan', 'url': 'https://api.etherscan.io/api', 'parameters': {'assetType': 'evm'}} |
| 41 | Exosama | SAMA | Exosama explorer | {'type': 'etherscan', 'url': 'https://explorer.exosama.com/api', 'parameters': {'assetType': 'evm'}} |
| 42 | Frequency | FRQCY | - | https://subquery-history-frequency-prod.novasama-tech.org |
| 43 | GIANT | GIANT | - | https://subquery-history-giant-prod.novasama-tech.org |
| 44 | Hashed Network (PAUSED) | HASH | - | - |
| 45 | Heima | HEI | Statescan | https://subquery-history-litentry-prod.novasama-tech.org |
| 46 | Humanode | HMND | Subscan | - |
| 47 | Hydration | HDX DOT DAI-Acala LRNA WETH-Acala WBTC-Acala iBTC ZTG ASTR USDT CFG BNC DAI-Moonbeam WBTC-Moonbeam WETH-Moonbeam USDC GLMR INTR SUB vDOT PHA USDC-Moonbeam 4-Pool 2-Pool 2-Pool-Stbl UNQ NODL CRU USDT-Moonbeam DED PINK STINK DOTA GABE KILT WUD MYTH WETH-Snowbridge WBTC-Snowbridge WIFD BORK BUNS KOL vASTR AJUN AAVE BASTI DAMN SOL-Wormhole SUI-Wormhole tBTC BILLCOIN KSM EWT LINK LDO SKY ETH-Snowbridge GDOT 2-Pool-GDOT aDOT TRAC NEURO GETH 2-Pool-GETH HOLLAR aUSDT aUSDC 2-Pool-HUSDC 2-Pool-HUSDT PAXG PEN |
Subscan | https://subquery-history-hydra-prod.novasama-tech.org |
| 48 | Hyperbridge Nexus | BRIDGE | Statescan | - |
| 49 | Integritee Parachain | TEER | Subscan | https://subquery-history-integritee-prod.novasama-tech.org |
| 50 | Interlay | INTR iBTC DOT KINT kBTC KSM LDOT USDT LP iBTC-USDT LP DOT-iBTC LP INTR-USDT qiBTC qUSDT qDOT |
Statescan | https://subquery-history-interlay-prod.novasama-tech.org |
| 51 | InvArch (PAUSED) | VARCH | Statescan | - |
| 52 | JAMTON | DOTON | - | - |
| 53 | Joystream | JOY | Subscan | https://subquery-history-joystream-prod.novasama-tech.org |
| 54 | KILT | KILT | Subscan | - |
| 55 | Kabocha (PAUSED) | KAB | - | - |
| 56 | Karura | KAR aSEEDk KSM RMRK (old) BNC LKSM PHA KINT kBTC TAI vsKSM taiKSM QTZ MOVR HKO CSM USDT KMA TEER KICO NEER BSX AIR GENS EQD CRAB |
Subscan | - |
| 57 | Khala (PAUSED) | PHA KSM KAR BNC ZLK aSEEDk BSX MOVR HKO KMA TUR CRAB SDN NEER BIT PICA |
Subscan | - |
| 58 | Kintsugi | KINT kBTC KSM LKSM USDT aSEEDk LP KSM-kBTC LP kBTC-USDT LP KSM-KINT qkBTC qKSM qUSDT |
Subscan | https://subquery-history-kintsugi-prod.novasama-tech.org |
| 59 | Kreivo | KSM | - | https://subquery-history-kreivo-prod.novasama-tech.org |
| 60 | Kusama Asset Hub | KSM RMRK (old) CHAOS CHRWNA SHIBATALES BILLCOIN USDT DOT |
Subscan Statescan |
https://subquery-history-kusama-ah-prod.novasama-tech.org |
| 61 | Kusama Bridge Hub | KSM | Subscan Statescan |
https://subquery-history-kusama-bh-prod.novasama-tech.org |
| 62 | Kusama Coretime | KSM | Subscan Statescan |
- |
| 63 | Kusama People | KSM | Subscan Statescan |
- |
| 64 | Kusama Relay | KSM | Subscan Statescan |
https://subquery-history-kusama-prod.novasama-tech.org |
| 65 | Laos | LAOS | Statescan LAOS explorer |
- |
| 66 | Mangata X (PAUSED) | MGX KSM ETH TUR BNC RMRK (old) ZLK vsKSM vKSM |
Subscan | - |
| 67 | Manta Atlantic | MANTA DOT |
Subscan | https://subquery-history-manta-prod.novasama-tech.org |
| 68 | Manta Pacific | ETH | Manta Pacific Block Explorer Manta Socialscan |
{'type': 'etherscan', 'url': 'https://pacific-explorer.manta.network/api', 'parameters': {'assetType': 'evm'}} |
| 69 | Moonbeam | GLMR xcDOT xcaSEEDp xcACA xcPARA xcINTR xciBTC xcASTR xcPHA xcUSDT xcCFG xcBNC xcEQ xcEQD xcHDX xcNODL xcRING xcOTP xcvDOT xcvFIL xcvGLMR xcMANTA xcUSDC |
Subscan Moonscan |
https://subquery-history-moonbeam-v2-prod.novasama-tech.org |
| 70 | Moonriver | MOVR xcRMRK (old) xcKSM xcKINT xcKAR xcBNC xckBTC xcUSDT xcaSEEDk xcCSM xcPHA xcHKO xcKMA xcCRAB xcTEER xcLIT xcSDN xcXRT xcvKSM xcvBNC xcvMOVR xcMGX xcTUR |
Subscan Moonscan |
https://subquery-history-moonriver-prod.novasama-tech.org |
| 71 | Myriad (PAUSED) | MYRIA | Explorer | - |
| 72 | Mythos | MYTH | Subscan | https://subquery-history-mythos-prod.novasama-tech.org |
| 73 | NeuroWeb | NEURO TRAC |
Subscan | - |
| 74 | Nodle Parachain | NODL | Subscan | https://subquery-history-nodle-prod.novasama-tech.org |
| 75 | Parallel (PAUSED) | PARA DOT sDOT ACA aSEEDp LDOT GLMR cDOT-6/13 cDOT-7/14 cDOT-8/15 cDOT-9/16 cDOT-10/17 INTR iBTC USDT CLV ASTR PHA |
Statescan | - |
| 76 | Pendulum | PEN DOT USDT USDC USDC.s XLM.s TZS.s BRL.s AUDD.s EURC.s NGNC.s GLMR PINK HDX ASTR vDOT BNC USDC.axl EURC.s |
Subscan | https://subquery-history-pendulum-prod.novasama-tech.org |
| 77 | Phala | PHA | Subscan | https://subquery-history-phala-prod.novasama-tech.org |
| 78 | Picasso (PAUSED) | PICA DOT KSM USDT |
Subscan | - |
| 79 | Polkadex | PDEX DOT USDT ASTR PHA iBTC DED PINK GLMR |
- | https://subquery-history-polkadex-prod.novasama-tech.org |
| 80 | Polkadot | DOT | Subscan Statescan |
https://subquery-history-polkadot-prod.novasama-tech.org |
| 81 | Polkadot Asset Hub | DOT USDT USDC DED PINK DOTA STINK GABE WUD WETH-Snowbridge WBTC-Snowbridge WIFD BORK BUNS KOL MYTH MYTH-Snowbridge USDC-Snowbridge USDT-Snowbridge DAI-Snowbridge BASTI DAMN BILLCOIN KSM ETH-Snowbridge MPC DON |
Subscan Statescan |
https://subquery-history-polkadot-ah-prod.novasama-tech.org |
| 82 | Polkadot Bridge Hub | DOT | Subscan Statescan |
https://subquery-history-polkadot-bh-prod.novasama-tech.org |
| 83 | Polkadot Collectives | DOT | Statescan Subscan |
https://subquery-history-polkadot-col-prod.novasama-tech.org |
| 84 | Polkadot Coretime | DOT | Subscan Statescan |
- |
| 85 | Polkadot Hub TestNet | PAS | Blockscan | {'type': 'etherscan', 'url': 'https://blockscout-passet-hub.parity-testnet.parity.io/api/v2/', 'parameters': {'assetType': 'evm'}} |
| 86 | Polkadot People | DOT | Subscan Statescan |
- |
| 87 | Polymesh | POLYX | Subscan | https://subquery-history-polymesh-prod.novasama-tech.org |
| 88 | QUARTZ | QTZ | - | - |
| 89 | Robonomics | XRT | Subscan | - |
| 90 | Shiden | SDN PHA LKSM MOVR kBTC KINT KSM aSEEDk CSM KAR USDT vKSM BNC |
Subscan | - |
| 91 | Subsocial (PAUSED) | SUB | - | https://subquery-history-subsocial-prod.novasama-tech.org |
| 92 | Tangle | TNT | Statescan | - |
| 93 | Tanssi | TANSSI | Subscan | - |
| 94 | Ternoa | CAPS | Ternoa explorer | https://subquery-history-ternoa-prod.novasama-tech.org |
| 95 | UNIQUE | UNQ | Subscan | https://subquery-history-unique-prod.novasama-tech.org |
| 96 | Vara | VARA | Varascan Subscan |
https://subquery-history-vara-prod.novasama-tech.org |
| 97 | Westend (TESTNET) | WND | Subscan Statescan |
https://subquery-history-westend-prod.novasama-tech.org/ |
| 98 | XX network | XX | XX explorer Polkastats |
- |
| 99 | Xode | XON XGM XAV AZK IXON IXAV IDON MPC IMPC DON |
- | - |
| 100 | ZKsync Era | ETH | ZKsync Era explorer Block explorer |
{'type': 'etherscan', 'url': 'https://api-era.zksync.network/api', 'parameters': {'assetType': 'evm'}} |
| 101 | Zeitgeist | ZTG | - | https://subquery-history-zeitgeist-prod.novasama-tech.org |
| 102 | krest | KREST | Subscan | - |
| 103 | peaq | PEAQ | Subscan | - |