Follow-up to #48.
Problem
cdm.json in this repo pins @w3s/playground-registry to a specific version + address (currently version: 4 at 0x17a7Bdc44B39472A7243Ba9b21099de26c12CbA5). The CLI uses that pin for every registry interaction — dot deploy --playground publishes through it, dot mod reads from it, etc.
If the on-chain ContractRegistry is updated (new version published, address re-deployed) and cdm.json isn't bumped to match, the CLI silently drifts from production. Users would see deploy/mod failures with no obvious cause.
The E2E suite from #48 doesn't catch this — its registry fixture queries the contract at the address baked into cdm.json, so the tests pass even when the pin is stale.
What to add
A daily E2E test that:
- Reads the pinned version + address for
@w3s/playground-registry from cdm.json.
- Queries the on-chain ContractRegistry on Paseo Asset Hub for the canonical latest version + address of
@w3s/playground-registry.
- Asserts they match. Fails with a clear message naming the drift if they don't (e.g. "cdm.json pins v4 at 0x17a7…, but on-chain registry has v5 at 0xabcd… — run
cdm install to update").
Probably belongs alongside the existing on-chain checks in e2e/cli/fixtures/registry.ts, or as a new e2e/cli/version-pin.test.ts.
Why daily
The contract is frozen 18 April 2025 for the V1 audit window, so drift is unlikely day-to-day — but this is exactly the kind of thing that breaks silently when the audit lands and a new address goes live. The daily CI schedule is the right place to catch it.
Stretch (optional)
Also assert the ABI in cdm.json matches the on-chain ABI (fetched via the registered metadata CID on Bulletin). Catches ABI drift even when the version number hasn't moved.
Follow-up to #48.
Problem
cdm.jsonin this repo pins@w3s/playground-registryto a specific version + address (currentlyversion: 4at0x17a7Bdc44B39472A7243Ba9b21099de26c12CbA5). The CLI uses that pin for every registry interaction —dot deploy --playgroundpublishes through it,dot modreads from it, etc.If the on-chain ContractRegistry is updated (new version published, address re-deployed) and
cdm.jsonisn't bumped to match, the CLI silently drifts from production. Users would see deploy/mod failures with no obvious cause.The E2E suite from #48 doesn't catch this — its registry fixture queries the contract at the address baked into
cdm.json, so the tests pass even when the pin is stale.What to add
A daily E2E test that:
@w3s/playground-registryfromcdm.json.@w3s/playground-registry.cdm installto update").Probably belongs alongside the existing on-chain checks in
e2e/cli/fixtures/registry.ts, or as a newe2e/cli/version-pin.test.ts.Why daily
The contract is frozen 18 April 2025 for the V1 audit window, so drift is unlikely day-to-day — but this is exactly the kind of thing that breaks silently when the audit lands and a new address goes live. The daily CI schedule is the right place to catch it.
Stretch (optional)
Also assert the ABI in
cdm.jsonmatches the on-chain ABI (fetched via the registered metadata CID on Bulletin). Catches ABI drift even when the version number hasn't moved.