Skip to content

Commit 046bead

Browse files
authored
Release/0.8.4 (#199)
1 parent 08fd5fc commit 046bead

18 files changed

Lines changed: 97 additions & 104 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
## 0.8.4 (2026-06-03)
2+
3+
### 🩹 Fixes
4+
5+
- **host-api:** payment top-up secret keys are now 64-byte sr25519 secret keys. `PaymentTopUpSource.PrivateKey` changed from a 32-byte ed25519 key to a 64-byte sr25519 secret key, and each `Coins` key is likewise 64 bytes (was 32). This corrects the wire codec for the RFC 0021 top-up sources shipped in 0.8.3 — see the [coin top-ups section](./docs/migration/v0.8.md#coin-top-ups) of the migration guide.
6+
- **host-api:** active subscriptions are torn down when the transport is disposed. A producer that still had a batched emission queued no longer throws `Transport is disposed`, and `_stop` / destroy now stop producers instead of leaving them emitting into a dead transport.
7+
- **host-api-wrapper:** `getLegacyAccountSigner` now sends the account's SS58 address as the wire `signer` instead of a raw hex public key, so the wallet can match the signing account — mirroring the injected-extension path.
8+
9+
### ⚠️ Breaking Changes
10+
11+
- **host-api / host-api-wrapper:** the byte layout of `PaymentTopUpSource` changed — `PrivateKey` and `Coins` keys are now 64-byte sr25519 secret keys (were 32 bytes in 0.8.3). This is a wire-level change; hosts and products that exchange `privateKey` / `coins` top-ups must upgrade together. The `host-api-wrapper` `TopUpSource` TypeScript shape is unchanged (`Uint8Array` / `Uint8Array[]`) — only the expected key length differs.
12+
13+
### ❤️ Thank You
14+
15+
- decrypto21
16+
- valentunn @valentunn
17+
- Vitya Livshits @cuteWarmFrog
18+
119
## 0.8.3 (2026-06-02)
220

321
### 🚀 Features

docs/migration/v0.8.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ The host ↔ product wire protocol (`host-api`, `host-api-wrapper`). These are *
2929
2. **Variant tags renamed** (only if you hand-build payloads): `WebRTC``WebRtc`, `BulletInAllowance``BulletinAllowance`.
3030
3. **Hand-rolled custom renderer** — rename design tokens (e.g. `titleXL``headline.large`, `textPrimary``fg.primary`); `@novasamatech/product-react-renderer` already maps them.
3131
4. **Verify, don't edit:** the `OptionBool` bit-fix means you should re-test signing (`withSignedTransaction`) and custom-renderer round-trips against the peers you talk to. No source change on your side.
32-
5. JSON-RPC stub methods removed (no real callers). Payment purse selector and the new `coins` top-up source (0.8.3) are additive.
32+
5. **Top-up secret keys** — the `coins` and `privateKey` top-up sources take 64-byte sr25519 secret keys; see [coin top-ups](#coin-top-ups).
3333
6. **Theme subscription payload changed shape**`host_theme_subscribe` now delivers a `{ name, variant }` struct instead of a flat `'light' | 'dark'`. Read `theme.variant` for the old light/dark value (now capitalized `'Light' | 'Dark'`).
34+
7. **No action needed:** JSON-RPC stub methods removed (no real callers); the payment purse selector and the `coins` top-up source are additive.
3435

3536
---
3637

@@ -93,12 +94,11 @@ Existing call sites that omit the selector keep working unchanged. Container han
9394

9495
---
9596

96-
## Coin top-ups (0.8.3)
97+
## Coin top-ups
9798

98-
`topUp` gained a third source — `coins` (RFC 0021) — that credits a balance directly from raw sr25519 coin secret keys, with no on-chain round trip. This is **additive**: the existing `productAccount` and `privateKey` sources are unchanged.
99+
`topUp` gained a third source — `coins` (RFC 0021) — that credits a balance directly from raw sr25519 coin secret keys, with no on-chain round trip. It sits alongside the existing `productAccount` and `privateKey` sources.
99100

100101
```ts
101-
// New in 0.8.3
102102
await payments.topUp(75n, { type: 'coins', keys }); // keys: Uint8Array[]
103103
```
104104

@@ -116,6 +116,8 @@ try {
116116

117117
Container handlers receive the source as `{ tag: 'Coins', value: keys }`. Existing handlers that only match `ProductAccount` / `PrivateKey` are unaffected unless they need to accept coin top-ups.
118118

119+
> **Key format.** Both the per-coin `coins` keys and the `privateKey` source are **64-byte sr25519 secret keys**. The `host-api-wrapper` `TopUpSource` shape takes `Uint8Array` / `Uint8Array[]`, but each value must be a 64-byte sr25519 secret key.
120+
119121
---
120122

121123
## Theme subscription payload

0 commit comments

Comments
 (0)