fix(registry): catch up to @w3s/playground-registry v11#208
Conversation
Tonight's nightly (#207) failed across five cells on `Revive.ContractReverted` from `registry.publish()`. Root cause: the contract was redeployed in playground-app PR #204 (and again since — @w3s/playground-registry on Paseo Next v2 is now v11 at `0x109BBf68F41B570Fd6d3b7bDE9b8e18779FDd8Db`) with three new required tail params on `publish()`. The CLI's pinned ABI was still v7's four-arg signature, so every publish call reverted on signature mismatch. This PR catches the CLI up. ## cdm.json Replaces the `@w3s/playground-registry` entry under target `929b5c63e2cb5202` with the v11 block ported verbatim from playground-app's cdm.json (same target hash, same Paseo-Next-v2 chain endpoints — only the contract address, version, metadataCid, and ABI move). All other targets and contracts untouched. ## publishToPlayground `registry.publish.tx(...)` call site in `src/utils/deploy/playground.ts` now passes the three new tail params: - `modded_from: ""` — capture-at-mod-time isn't yet wired up in the CLI (V1 P0 per spec); empty string is the contract's sentinel for "no source". Follow-up needed once `dot mod` writes the source domain to local metadata. - `is_moddable: repositoryUrl !== null` — same signal the app metadata already carries (a public GitHub repo URL). True for `--moddable` deploys, false otherwise. - `is_dev_signer: publishSigner.source === "dev"` — true for Alice / `--suri` flows, false for the user's session signer. The contract uses this to skip the launch-points award when a shared dev key is signing on the user's behalf. ## Tests `src/utils/deploy/playground.test.ts` — three existing `toHaveBeenCalledWith` assertions now check the full 7-arg signature. Adds one new test ("passes is_dev_signer=true and the right is_moddable when the signer source is dev") that exercises both new param variants in a single publish, paired with `is_moddable=false`, so a future regression that hard-codes either to a default value would surface immediately. All 497 unit tests pass locally. Format / lint:license / build all clean. Nightly verification via workflow_dispatch on the PR branch.
|
@ottovlotto already merged this in my PR |
|
@UtkarshBhardwaj007 @charlesHetterich — PM-initiated starter PR to unblock tonight's nightly (#207). Bundles three things tightly because they have to ship together: cdm.json refresh to v11 (ported from playground-app), the new The Action options, all good from my end:
No urgency from my side on which option — happy to leave it parked until you have a moment. CI is currently degraded (workflow_dispatch returning 500 since ~08:00 UTC; PR-event workflows aren't firing either) so live verification of the publish path against the new contract is on hold regardless. |
Summary
Tonight's nightly (#207) failed across five cells on
Revive.ContractRevertedfromregistry.publish(). Root cause: the contract was redeployed in playground-app PR #204 ("feat(registry): points, leaderboard, star toggle, mod credit") with three new required tail params. The CLI's pinned ABI was still v7's four-arg signature, so every publish call reverted on signature mismatch.This PR catches the CLI up.
Changes
cdm.jsonReplaces the
@w3s/playground-registryentry under target929b5c63e2cb5202with the v11 block ported verbatim from playground-app's cdm.json (same target hash, same Paseo Next v2 chain endpoints — only contract address, version, metadataCid, and ABI change).0xea3fb6C5cDA79FEEf5b2d42a9122fC1BAFaF647Fv70x109BBf68F41B570Fd6d3b7bDE9b8e18779FDd8Dbv11src/utils/deploy/playground.tsregistry.publish.tx(...)now passes the three new tail params:modded_from""is_moddablerepositoryUrl !== null--moddabledeploys.is_dev_signerpublishSigner.source === \"dev\"--suriflows. The contract uses this to skip the launch-points award when a shared dev key signs on the user's behalf.src/utils/deploy/playground.test.tsThree existing
toHaveBeenCalledWithassertions now check the full 7-arg signature. Adds one new test ("passes is_dev_signer=true and the right is_moddable when the signer source is dev") that exercises both new param variants in a single publish, paired withis_moddable=false, so a future regression hard-coding either to a default would surface immediately.Follow-up not addressed here
modded_fromcapture-at-mod-time. `dot mod ` needs to write the source domain to local metadata, threaded topublishToPlaygroundand passed here. V1 P0 per the spec — separate PR.Test plan
pnpm format:check— cleanpnpm lint:license— cleanpnpm build— cleanpnpm test— 497 passed / 1 skippedCloses #207