From 6062a187a103c5e1f182df152e9b3f6fb68a4508 Mon Sep 17 00:00:00 2001 From: Imod7 Date: Wed, 19 Aug 2026 09:33:32 +0200 Subject: [PATCH 1/4] docs(changesets): declare the ringVrfSign implementor break --- product-sdk/pending-changesets/host-ring-vrf-sign.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/product-sdk/pending-changesets/host-ring-vrf-sign.md b/product-sdk/pending-changesets/host-ring-vrf-sign.md index 12b91898..7442e3bf 100644 --- a/product-sdk/pending-changesets/host-ring-vrf-sign.md +++ b/product-sdk/pending-changesets/host-ring-vrf-sign.md @@ -9,3 +9,8 @@ registered ring-VRF member key for protocols that carry their own proof, as oppo `RingVrfKeyHandle` as the alias and proof calls, from `listRingVrfKeys` / `findRingVrfKeyHandle`, and hands back the signature as bytes. `SignerManager` does not wrap it; call the host package's `AccountsProvider` directly. + +**Breaking for implementors.** `ringVrfSign` is a required member of the exported +`AccountsProvider` interface, so alternative implementations and hand-rolled test doubles +must add it. Callers are unaffected, and the fake at `@parity/product-sdk-host/testing` +already implements it. From 60d6b4926bc533ca81e2d54baadb966f5db996dd Mon Sep 17 00:00:00 2001 From: Imod7 Date: Wed, 19 Aug 2026 09:40:03 +0200 Subject: [PATCH 2/4] docs(changesets): note the explicit getChainAPI path on discovery hosts --- product-sdk/pending-changesets/host-chain-discovery.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/product-sdk/pending-changesets/host-chain-discovery.md b/product-sdk/pending-changesets/host-chain-discovery.md index e06b3769..554e2b5d 100644 --- a/product-sdk/pending-changesets/host-chain-discovery.md +++ b/product-sdk/pending-changesets/host-chain-discovery.md @@ -21,3 +21,10 @@ the zero-arg form needs discovery, so it throws there and outside a container. new `chainInfo` option, so tests can drive discovery; omitting it models a host predating the call. The `chain.getChainInfo` binding this rides on ships in `@parity/truapi` 0.9.0, adopted separately. + +The explicit form is only unchanged on legacy hosts. On a host that serves discovery, +`getChainAPI("paseo")` can now fail where it previously connected: +`EnvironmentMismatchError` when the host's asset hub genesis matches a different bundled +environment, and `GenesisMismatchError` when it matches none and the bundled asset hub +descriptor disagrees with the host. Both surface at the call rather than at the first +storage read, so an unchanged call site fails earlier and with a different error type. From 946ba4895fe164466dfb47d40771db4e89eb2b7e Mon Sep 17 00:00:00 2001 From: Imod7 Date: Wed, 19 Aug 2026 10:08:04 +0200 Subject: [PATCH 3/4] docs(changesets): say where the ring-VRF selector is exported from --- product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md b/product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md index 5dd99108..018714d4 100644 --- a/product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md +++ b/product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md @@ -24,3 +24,10 @@ The signer package's re-exported `RingLocation` now uses TrUAPI's `` chainId: `0 instead of a plain `string`; callers loading chain IDs from configuration must narrow or validate them before assignment. Custom `HostProviderOptions.loadAccountsProvider` implementations must also provide the newly required `registerRingVrfKey` and `listRingVrfKeys` methods. + +`findRingVrfKeyHandle` is exported from `@parity/product-sdk-host`, not from +`@parity/product-sdk-signer`, which re-exports the ring-VRF types only. A product depending on +the signer package alone needs `@parity/product-sdk-host` as a second direct dependency for the +selection step. Prefer the helper over an inline comparison: it requires the junction path to +match in order and compares chain and collection ids case-insensitively, so a shortcut that +checks only `chainId` can pick a key registered for a different ring on the same chain. From cad4b6a65aa736334625883ea1595cf44e7500b8 Mon Sep 17 00:00:00 2001 From: Imod7 Date: Wed, 19 Aug 2026 10:15:04 +0200 Subject: [PATCH 4/4] docs(changesets): require a note when an interface gains a member --- product-sdk/pending-changesets/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/product-sdk/pending-changesets/README.md b/product-sdk/pending-changesets/README.md index d2356c95..de12a52a 100644 --- a/product-sdk/pending-changesets/README.md +++ b/product-sdk/pending-changesets/README.md @@ -121,3 +121,14 @@ cascades only at patch level (controlled by `updateInternalDependencies: "patch"` in `.changeset/config.json`) and the umbrella ends up at an oddly lower bump than its child. Prior waves (0.3.0 → 0.4.0, 0.4.0 → 0.5.0) followed this policy. + +### Declare required-member additions + +When a change adds a required member to an exported interface, say so in +the body. Existing implementations and hand-rolled test doubles break at +compile time even though no caller changes, so the break is invisible to +anyone reading only the call sites. The wording to copy: + +> **Breaking for implementors.** `signVrf` is a required member of the +> exported `AccountsProvider` interface, so alternative implementations +> and hand-rolled test doubles must add it. Callers are unaffected.