diff --git a/pezkuwi-overlay/tests/account_overrides.json b/pezkuwi-overlay/tests/account_overrides.json new file mode 100644 index 0000000..a84c646 --- /dev/null +++ b/pezkuwi-overlay/tests/account_overrides.json @@ -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." + } + ] +} diff --git a/scripts/sync_from_nova.py b/scripts/sync_from_nova.py index 77c6271..37540bc 100644 --- a/scripts/sync_from_nova.py +++ b/scripts/sync_from_nova.py @@ -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)}") diff --git a/tests/chains_for_testBalance.json b/tests/chains_for_testBalance.json index 40c535d..82866a5 100644 --- a/tests/chains_for_testBalance.json +++ b/tests/chains_for_testBalance.json @@ -7,12 +7,12 @@ { "chainId": "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3", "name": "Polkadot", - "account": "0x7a28037947ecebe0dd86dc0e910911cb33185fd0714b37b75943f67dcf9b6e7c" + "account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000" }, { "chainId": "b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe", "name": "Kusama", - "account": "0x7a28037947ecebe0dd86dc0e910911cb33185fd0714b37b75943f67dcf9b6e7c" + "account": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000" }, { "chainId": "e143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",