Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions product-sdk/pending-changesets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
7 changes: 7 additions & 0 deletions product-sdk/pending-changesets/host-chain-discovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 5 additions & 0 deletions product-sdk/pending-changesets/host-ring-vrf-sign.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
7 changes: 7 additions & 0 deletions product-sdk/pending-changesets/truapi-09-ring-vrf-keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Loading