mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-utils.git
synced 2026-07-09 00:07:28 +00:00
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).
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"description": "Per-chain overrides for tests/chains_for_testBalance.json test accounts. Used when the upstream Nova fixture's account has zero/reaped balance on that chain - verified live against the chain before being added here, not guessed.",
|
||||
"last_updated": "2026-07-08",
|
||||
"overrides": [
|
||||
{
|
||||
"chainId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
|
||||
"name": "Polkadot",
|
||||
"account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000",
|
||||
"reason": "Original account had zero balance (reaped). Replaced with the Treasury pallet account (py/trsry) - protocol-owned, permanently funded by fees/inflation, not a personal account. Verified live via @polkadot/api against wss://rpc.polkadot.io on 2026-07-08: free balance 22527885189670."
|
||||
},
|
||||
{
|
||||
"chainId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "Kusama",
|
||||
"account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000",
|
||||
"reason": "Original account had zero balance (reaped). Replaced with the Treasury pallet account (py/trsry) - protocol-owned, permanently funded by fees/inflation, not a personal account. Verified live via @polkadot/api against wss://kusama-rpc.polkadot.io on 2026-07-08: free balance 25368610181623."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -292,6 +292,12 @@ def sync_tests():
|
||||
that are blacklisted, testnets that were retired, or otherwise no longer
|
||||
configured, which would just make every test for that chain fail with
|
||||
"chain not found" instead of actually testing anything.
|
||||
|
||||
Account overrides (pezkuwi-overlay/tests/account_overrides.json) swap in a
|
||||
replacement account for a chain whose upstream-fixture account has since
|
||||
been reaped/emptied - each override must be verified live before being
|
||||
added, not guessed. See that file for details on the accounts currently
|
||||
in use.
|
||||
"""
|
||||
print("\nSyncing tests...")
|
||||
|
||||
@@ -310,6 +316,17 @@ def sync_tests():
|
||||
filtered = [entry for entry in fixture if entry['chainId'] in current_chain_ids]
|
||||
dropped = len(fixture) - len(filtered)
|
||||
|
||||
overrides_file = PEZKUWI_OVERLAY / "tests" / "account_overrides.json"
|
||||
if overrides_file.exists():
|
||||
overrides = {o['chainId']: o['account'] for o in load_json(overrides_file)['overrides']}
|
||||
overridden = 0
|
||||
for entry in filtered:
|
||||
if entry['chainId'] in overrides:
|
||||
entry['account'] = overrides[entry['chainId']]
|
||||
overridden += 1
|
||||
if overridden:
|
||||
print(f" Applied {overridden} account override(s)")
|
||||
|
||||
save_json(OUTPUT_TESTS / "chains_for_testBalance.json", filtered)
|
||||
print(f" chains_for_testBalance.json: {len(fixture)} - {dropped} not in {latest_version.name} = {len(filtered)}")
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
{
|
||||
"chainId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",
|
||||
"name": "Polkadot",
|
||||
"account": "0x7a28037947ecebe0dd86dc0e910911cb33185fd0714b37b75943f67dcf9b6e7c"
|
||||
"account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000"
|
||||
},
|
||||
{
|
||||
"chainId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",
|
||||
"name": "Kusama",
|
||||
"account": "0x7a28037947ecebe0dd86dc0e910911cb33185fd0714b37b75943f67dcf9b6e7c"
|
||||
"account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000"
|
||||
},
|
||||
{
|
||||
"chainId": "e143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",
|
||||
|
||||
Reference in New Issue
Block a user