mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-utils.git
synced 2026-08-12 20:51:34 +00:00
28adea22bc
* fix(pezkuwi-asset-hub): declare PEZ and USDT as sufficient assets
The wallet refused USDT.p transfers to any account holding no HEZ:
Your transfer will fail since the destination account does not have
enough HEZ to accept other token transfers
It is a false positive, and the chain disagrees with this config.
DeadRecipientValidation skips the whole check when the destination asset is
self-sufficient:
skipIf = { assetSourceRegistry.isAssetSelfSufficient(destinationChainAsset) }
and StatemineAssetBalance reads that flag from HERE, not from the chain:
chainAsset.requireStatemine().isSufficient → runCatching { … }.getOrDefault(false)
`isSufficient` was absent from typeExtras in every version of this config, so it
resolved to false, the validation ran, and every transfer to a fresh account was
warned against.
Measured on chain (asset-hub-rpc.pezkuwichain.io):
asset 1 PEZ sufficient=true minBalance=1 18 accounts
asset 1000 wUSDT sufficient=true minBalance=10000 21 accounts
Both are sufficient, so neither needs the recipient to hold native balance.
Proof it works in practice rather than only in theory: account
5E2yqgUVVNjU… holds 1750.00 USDT with free=0, providers=0, sufficients=1 and
nonce=0. Zero native balance, no provider reference, and it has never signed a
transaction — so it was brought into existence by the incoming USDT transfer
itself, which is exactly what the wallet was saying could not happen.
Applied to v22 (the version the app fetches, runtime/build.gradle CHAINS_URL) and
to the top-level chains.json.
Noted, not changed here: this config also declares assets 1001/1002/1003 on
Pezkuwi Asset Hub as DOT, ETH and BTC. None of the three exists on chain —
assets.asset() returns None for all of them. They are shown to users and any
transfer would fail.
* Revert "fix(pezkuwi-asset-hub): declare PEZ and USDT as sufficient assets"
This reverts commit af1a8a5468.
* fix(pezkuwi-asset-hub): declare PEZ and USDT as sufficient, matching Polkadot AH
Pezkuwi Asset Hub's two statemine assets carried only `assetId` in typeExtras. The
equivalent entries on Polkadot Asset Hub — USDT (1984) and USDC (1337) — carry
`isSufficient: true`. Same kind of asset, same file, two different declarations.
The omission is not inert. `LocalToDomainChainMapper` reads
typeExtras["isSufficient"] as Boolean? ?: STATEMINE_IS_SUFFICIENT_DEFAULT // false
so an absent field resolves to false, `StatemineAssetBalance.isSelfSufficient` returns
false, `DeadRecipientValidation`'s skipIf does not fire, and the validation runs — at
`validOrError`, which is DefaultFailureLevel.ERROR, so the transfer is blocked rather
than warned about.
The chain says otherwise. Measured on asset-hub-rpc.pezkuwichain.io, 2026-08-10:
asset 1 PEZ sufficient=true minBalance=1 18 accounts
asset 1000 wUSDT sufficient=true minBalance=10000 21 accounts
Neither needs the recipient to hold native HEZ, and one account demonstrates it:
5E2yqgUVVNjU… holds 1750.00 USDT with free=0, providers=0, sufficients=1 and nonce=0 —
no native balance, no provider reference, never signed a transaction. It exists because
the incoming USDT transfer created it, which is exactly what the wallet was reporting
could not happen.
43 of the 67 statemine assets in this config declare the field. The 24 that omit it are
genuinely non-sufficient on chain — the Polkadot AH meme tokens. Pezkuwi Asset Hub was
the only case where the declaration disagreed with the chain.
Applied to v22 (the version runtime/build.gradle CHAINS_URL fetches) and the top-level
chains.json, in the same shape as the Polkadot entries.
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 | - |