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.
This commit is contained in:
2026-08-10 13:17:21 -07:00
parent 84b87458da
commit af1a8a5468
5 changed files with 22 additions and 12 deletions
+4 -2
View File
@@ -148,7 +148,8 @@
"buyProviders": {},
"sellProviders": {},
"typeExtras": {
"assetId": "1"
"assetId": "1",
"isSufficient": true
}
},
{
@@ -163,7 +164,8 @@
"buyProviders": {},
"sellProviders": {},
"typeExtras": {
"assetId": "1000"
"assetId": "1000",
"isSufficient": true
}
}
],