Commit Graph

106 Commits

Author SHA1 Message Date
pezkuwichain a4e2038aac fix: exclude "account" field from hardcoded-private-key scan (false positive)
Every account_overrides.json/chains_for_testBalance.json entry has a
32-byte hex "account" field - a public AccountId32 (Substrate's public
account identifier), not a private key. The two share the same byte
length/hex format, but are fundamentally different: one is meant to be
public (it's literally how you address a chain account), the other
must stay secret. The scanner's regex can't tell them apart and flags
every single one, which just triggered a false "Possible private key
found" failure on PR #33 (the master->main sync).

This isn't a one-off - it'll fire on every future sync PR too, since
chains_for_testBalance.json always has these fields. Left as "FAILURE"
long-term, it trains reviewers to ignore this specific check, which is
exactly the alarm-fatigue failure mode that would let a real leaked
secret slip through unnoticed.
2026-07-08 09:46:58 -07:00
pezkuwichain 8ba9821532 chore: retrigger CI (previous run stuck in action_required) 2026-07-08 09:39:57 -07:00
pezkuwichain 8f74172a1b Fix reaped Polkadot/Kusama test accounts via verified Treasury pallet account
Last remaining balances-test failures (2 of 112): both Polkadot and
Kusama's fixture account (inherited from upstream nova-utils) had
zero balance - reaped since the fixture was last updated, causing
"Balance was null" assertion failures. Not a CI/infra bug, not
related to Tron - genuinely stale test data.

Replaced with the Treasury pallet account (py/trsry) for both chains
- protocol-owned, continuously replenished from fees/inflation, never
reaped. This matches the fixture's own existing pattern (Moonbeam and
Moonriver both already use their crowdloan pallet account, not a
personal wallet).

The account (0x6d6f646c70792f74727372790000000000000000000000000000000000000000)
was independently verified two ways before use: derived by hand
(modl + py/trsry + zero padding) and cross-checked against
@polkadot/api's own derivation - both matched exactly - then its
balance was queried live against wss://rpc.polkadot.io (22,527,885,189,670
free) and wss://kusama-rpc.polkadot.io (25,368,610,181,623 free) to
confirm it's genuinely funded, not just plausible-looking.

Applied via a new pezkuwi-overlay/tests/account_overrides.json,
applied by sync_from_nova.py after the existing chain-filtering step,
rather than hand-editing the generated fixture output (which would be
overwritten on the next sync).
2026-07-08 07:20:51 -07:00
pezkuwichain 534479d57b Filter test fixture to chains actually present in current merged output
Latest CI run confirmed all remaining balances-test failures (50 of
160) were java.util.NoSuchElementException for chain ids no longer in
the app's config - both newly-blacklisted chains and a handful of
retired testnets (Westmint, Moonbase Alpha/Relay, Aleph Zero Testnet,
an old Xode id, RegionX) that the raw Nova fixture still references.
None were real balance/fee assertion failures - the app itself is
working correctly for every chain it actually has configured.

sync_tests() now filters chains_for_testBalance.json down to entries
whose chainId exists in the latest merged chains.json (v22, 80 -> 56
entries) instead of publishing Nova's fixture verbatim, so the test
only ever exercises chains the app can actually resolve - and stays
correct automatically as chains.json changes, instead of needing
separate manual upkeep alongside blocked-chains.json.
2026-07-08 05:03:40 -07:00
pezkuwichain a346514a04 Extend chain blacklist with 27 more confirmed-dead RPC endpoints
Follow-up to the previous stale-blacklist fix: with that fix live,
Android's balances_test.yml CI job progressed much further but still
hung for the full 25-minute job timeout. Live logcat + a full-log
retry analysis (grouping by host, comparing first/last timestamp
against the ~23 minute test window) showed 27 more chains whose nodes
were retried continuously for the ENTIRE run duration with zero
successful connections - as opposed to the ~90 other chains, which
connect once (or retry once or twice in the first ~2 minutes) and
then go quiet, i.e. genuinely healthy.

Every one of these 27 is a real, currently-dead third-party RPC
(Kusama Asset Hub, KILT, Crust Shadow, Phala, Mangata X, Joystream,
Mythos, Base, and 19 others) - not anything related to Tron or this
session's other changes. Each was matched to its current chain_id by
node URL against live chains.json, not guessed.

sync_from_nova.py's new stale-blacklist warning confirms all 33
entries (6 previous + 27 new) now match something in Nova's current
chain data - zero silently-ineffective entries this time.

This is inherently a moving target (third-party community RPC uptime
changes over time) - the warning added in the previous commit is what
makes that maintainable going forward instead of silently rotting for
another five months.
2026-07-08 03:18:42 -07:00
pezkuwichain 2efab72f83 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.
2026-07-08 02:04:47 -07:00
pezkuwichain 95939ab8a2 Publish tests/chains_for_testBalance.json, sync it from nova-base
Android's BalancesIntegrationTest CI fetches this fixture directly
from raw.githubusercontent.com/.../master/tests/chains_for_testBalance.json,
but it never existed in this repo's output - only chains/, xcm/,
icons/, and staking/ were ever synced from nova-base by
sync_from_nova.py. This is why "Run balances tests" in
pezkuwi-wallet-android has been failing (FileNotFoundException) even
after fixing its CI infra and instrumentation-runner issues.

Only this one fixture is published from nova-base/tests/, not the
rest of that directory (upstream's own pytest suite for validating
its chains.json output, unused by anything in this repo or its
consumers).
2026-07-07 15:58:42 -07:00
pezkuwichain d8ba574e7a fix: point new Tron icon URLs at master (main sync currently gated on approval) 2026-07-07 11:40:39 -07:00
pezkuwichain 45cbb72e1c Add Tron chain to Pezkuwi overlay; regenerate merged configs
- pezkuwi-overlay/chains/pezkuwi-chains.json: add Tron mainnet
  (native TRX + USDT-TRC20) chain entry, plus new TRX/Tron icons
  under pezkuwi-overlay/icons/ (the correct source location - synced
  into the top-level icons/ output by sync_from_nova.py).
- Regenerate all chains/*, xcm/*, staking/* merged output via
  sync_from_nova.py against the current nova-base submodule state.
- Also picks up previously-uncommitted local fixes: canonical
  Telegram/Twitter links (t.me/kurdishmedya, x.com/bizinikiwi) in
  README/docs/banners, and Pezkuwi mainnet + People chain SubQuery
  staking overrides.
2026-07-07 11:02:08 -07:00
pezkuwichain 7a087cfa14 Fix auto-pr to not fail when branches are already in sync 2026-03-02 15:08:14 +03:00
pezkuwichain 20c5fd20cc Replace force-push sync with PR-based auto-merge workflow 2026-03-02 14:21:07 +03:00
pezkuwichain 1880440dee Move staking config from Relay Chain to Asset Hub
Staking pallet lives on Asset Hub, not Relay Chain.
- RC HEZ staking set to null
- AH HEZ staking enabled with relaychain and nomination-pools
- AH externalApi staking subquery URL added
- Removed RC staking override from global configs
2026-02-26 20:12:45 +03:00
pezkuwichain dd794cd87f Fix Pezkuwi P2P URL in dapps config
Update URL from telegram.pezkuwichain.io/p2p to app.pezkuwichain.io/p2p
2026-02-22 22:05:47 +03:00
pezkuwichain 04ed36b835 fix: correct HEZstaking DApp URL to app.pezkuwichain.io 2026-02-22 00:36:25 +03:00
pezkuwichain 0b5a963d09 Remove relay staking/staking-rewards externalApi (pallet removed in spec 1_020_006) 2026-02-21 01:55:56 +03:00
pezkuwichain 87eca4435b fix: route AH staking stats to AH SubQuery endpoint
The staking dashboard was showing INACTIVE because all Pezkuwi chains
(including Asset Hub) were routed to the relay chain SubQuery for
staking stats. The relay SubQuery only has relay chain activeStakers,
not AH pool stash accounts. Split the override so Asset Hub queries
its own SubQuery endpoint which has the pool stash data.
2026-02-19 16:53:29 +03:00
pezkuwichain c6a992c4e6 fix: exclude currencyIdScale from hardcoded secrets scan 2026-02-19 06:21:20 +03:00
pezkuwichain 0aeec6b566 ci: add Code Quality and Security workflows (Python lint, JSON validation, chain integrity, secret scan) 2026-02-19 05:56:31 +03:00
pezkuwichain 09c89b073d feat: add governance-delegations SubQuery endpoint for Pezkuwi relay chain
Enable PezWallet OpenGov delegation stats via SubQuery governance indexer.
2026-02-19 01:43:12 +03:00
pezkuwichain b053eb76ae feat: route AH staking queries to /assethub SubQuery endpoint 2026-02-18 06:01:06 +03:00
pezkuwichain a9d03eddfb revert: keep all Pezkuwi chains on single SubQuery endpoint 2026-02-18 05:55:09 +03:00
pezkuwichain 9e0b27f496 feat: separate SubQuery endpoint for Asset Hub
AH staking/history/rewards queries now use /assethub path
to route to dedicated AH GraphQL engine
2026-02-18 04:08:27 +03:00
pezkuwichain 4d7d55dc8c Apply blacklist filtering to chain merge
Sync script now reads blocked-chains.json and excludes
chains with broken/unreachable RPC endpoints from output.
102 → 98 chains (7 blocked removed)
2026-02-17 18:24:55 +03:00
pezkuwichain c098e4991d Add global config to A+B→C merge pipeline
- Created pezkuwi-overlay/config/global_config_overlay.json (source B)
  with stakingApiOverrides for Pezkuwi SubQuery + prod API URLs
- Updated sync_from_nova.py with sync_config() function
  Merges: nova-base/global + nova-base/staking (A) + overlay (B) → staking/ (C)
- Same merge pattern as chains, XCM, and icons
2026-02-17 17:22:21 +03:00
pezkuwichain 3f91aa103e fix: split staking API endpoints per ecosystem
multiStakingApiUrl reverted to Nova's SubQuery for Polkadot ecosystem.
Pezkuwi chains routed to self-hosted SubQuery via stakingApiOverrides.
2026-02-16 06:14:54 +03:00
pezkuwichain b8320ab9ff Add missing config fields to global_config files
multisigsApiUrl and proxyApiUrl were missing, causing
GlobalConfigRemote deserialization to fail when fetched
from GitHub.
2026-02-16 02:55:08 +03:00
pezkuwichain af663e24b7 Point dev multiStakingApiUrl to self-hosted SubQuery
Dev config was still pointing to Nova staging API which has no
Pezkuwi data. Now matches production config.
2026-02-15 22:18:26 +03:00
pezkuwichain 2b64253e7e update genesis hashes, xcm config and dapps for mainnet relaunch
- Update Pezkuwi chain genesis hashes (relay, asset hub, people)
- Update XCM transfer configs with new chain IDs
- Reorganize DApps: HEZstaking, Pezsnowbridge, Social-KURD
- Update allowed-chains whitelist
2026-02-15 12:20:02 +03:00
pezkuwichain 1d9161b181 fix: update HEZ and PEZ token icons with circular logos 2026-02-14 13:00:20 +03:00
pezkuwichain f43a3e6729 Point multiStakingApiUrl to self-hosted SubQuery 2026-02-14 02:38:39 +03:00
pezkuwichain 89f062183d feat: add subquery endpoints, staking config and identity chain references
- Add staking, staking-rewards, history externalApi endpoints (subquery.pezkuwichain.io)
  for both Pezkuwi Relay and Asset Hub
- Add identityChain reference to People chain on Relay and Asset Hub
- Add stakingWiki link to wiki.pezkuwichain.io/staking
- Add pushSupport option to Asset Hub
- Add defaultBlockTime to Asset Hub additional config
- Regenerate all merged chain versions via sync script
2026-02-13 06:43:08 +03:00
pezkuwichain a0c5c4994f fix: update generated chains.json with circular SVG icons 2026-02-12 04:42:39 +03:00
pezkuwichain dd4f115380 fix: update token icons to use circular SVGs 2026-02-12 04:40:59 +03:00
pezkuwichain cb7abce673 Replace icons with circular PNG versions 2026-02-12 04:20:00 +03:00
pezkuwichain 8d72594774 Add circular SVG icons for PEZ and HEZ tokens 2026-02-12 03:52:10 +03:00
pezkuwichain 34db056597 Add Pezkuwi ecosystem token icons to colored/white folders 2026-02-12 03:44:54 +03:00
pezkuwichain 916ea48594 feat: add Turkish localization for banners 2026-02-12 02:48:59 +03:00
pezkuwichain f31579ee79 Revert "fix: remove staking from Pezkuwi Asset Hub HEZ (no API endpoint)"
This reverts commit 6eec6fa062.
2026-02-11 10:32:01 +03:00
pezkuwichain 6eec6fa062 fix: remove staking from Pezkuwi Asset Hub HEZ (no API endpoint) 2026-02-11 10:28:53 +03:00
pezkuwichain cf79ad8f64 merge: filtered Pezkuwi + Nova (83 chains) 2026-02-11 10:15:21 +03:00
pezkuwichain eb5c272d16 merge: Pezkuwi + Nova unfiltered (102 chains) 2026-02-11 10:06:14 +03:00
pezkuwichain de6a7c0492 Filter broken chains (DNS failures) from Nova config 2026-02-11 09:30:52 +03:00
pezkuwichain 19f8588b94 Revert to original Nova chains.json for staking test 2026-02-11 09:28:26 +03:00
pezkuwichain 444c23f440 fix: remove Zagros Testnet (421MB runtime causes OOM) 2026-02-11 09:13:23 +03:00
pezkuwichain f217106145 fix: update Nova submodule and regenerate chains 2026-02-11 09:05:22 +03:00
pezkuwichain bdda67a02c fix: add more broken chains to blacklist (Crab, DeepBrain, Exosama) 2026-02-11 08:49:45 +03:00
pezkuwichain b816294af9 fix: merge script now outputs to android directory 2026-02-11 08:03:17 +03:00
pezkuwichain 378605416a fix: update android chains.json with blacklist-filtered config 2026-02-11 08:02:55 +03:00
pezkuwichain 2bb9bad68c fix: implement blacklist filtering for broken RPC chains
- Add blocked-chains.json with DNS-failing endpoints (AlephZero, InvArch, Quartz, Passet Hub Testnet)
- Update merge-chains.py to filter PAUSED chains, testnets (except Pezkuwi), and broken RPCs
- Reduce chain count from 102 to 86 (4 Pezkuwi + 82 working Nova chains)
- This fixes staking page not loading due to DNS resolution failures
2026-02-11 07:56:54 +03:00
pezkuwichain 645a93918a revert: restore relay chain HEZ to original config (staking null, name HEZkurd) 2026-02-10 23:45:21 +03:00