mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-utils.git
synced 2026-08-12 13:51:37 +00:00
af1a8a546873490f031fb5f018d3c2c0f855404d
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.
Pezkuwi Wallet Utils
Configuration repository for Pezkuwi Wallet - next generation mobile wallet for Pezkuwichain and the Polkadot ecosystem.
Overview
This repository contains chain configurations, staking metadata, dApp listings, and other utility files used by Pezkuwi Wallet applications.
Structure
pezkuwi-wallet-utils/
├── chains/ # Chain configurations for all supported networks
│ ├── pezkuwichain/ # Pezkuwichain (Relay + Asset Hub + People Chain)
│ ├── polkadot/ # Polkadot ecosystem chains
│ ├── kusama/ # Kusama ecosystem chains
│ └── ... # Other ecosystem chains
├── staking/ # Staking metadata (validators, pools, etc.)
├── dapps/ # DApp configurations and metadata
├── xcm/ # XCM (Cross-Chain Messaging) configurations
├── governance/ # Governance dApps and proposals
├── banners/ # Promotional banners and announcements
├── migrations/ # Chain migration configurations
├── assets/ # Asset metadata and icons
├── icons/ # Chain and network icons
└── global/ # Global configuration files
Native Tokens
| Token | Network | Description |
|---|---|---|
| HEZ | Pezkuwi Relay Chain | Native token for fees and staking |
| PEZ | Asset Hub | Governance token |
| USDT | Asset Hub | Tether USD stablecoin |
Supported Networks
Pezkuwichain Ecosystem
- Pezkuwi Relay Chain - Main relay chain with HEZ token
- Asset Hub - System teyrchain for assets (PEZ, USDT, wHEZ)
- People Chain - Identity and people management
Polkadot Ecosystem
Full support for Polkadot and all major parachains.
Kusama Ecosystem
Full support for Kusama and all major parachains.
Usage
These configurations are fetched by Pezkuwi Wallet at runtime from GitHub raw URLs:
https://raw.githubusercontent.com/pezkuwichain/pezkuwi-wallet-utils/master/chains/{network}/chains.json
Contributing
- Fork this repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Related Projects
License
Apache 2.0
Resources
- Website: https://pezkuwichain.io
- Documentation: https://docs.pezkuwichain.io
- Telegram: https://t.me/pezkuwichain
- Twitter: https://twitter.com/pezkuwichain
Based on Nova Utils - Extended with Pezkuwichain support
© Dijital Kurdistan Tech Institute 2026
Description
Languages
Python
95.1%
Shell
4.9%