@toon-protocol/townhouse 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,7 +48,7 @@ services:
48
48
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
49
49
  townhouse-dev-connector:
50
50
  # Image tag must match DEFAULT_CONNECTOR_IMAGE in packages/townhouse/src/constants.ts
51
- image: ghcr.io/toon-protocol/connector:3.8.1
51
+ image: ghcr.io/toon-protocol/connector:3.9.0
52
52
  container_name: townhouse-dev-connector
53
53
  networks:
54
54
  - townhouse-dev-net
@@ -22,11 +22,11 @@
22
22
  # Story 45.4 boots only connector + townhouse-api at apex install
23
23
  #
24
24
  # Digest placeholders (substituted at build time from dist/image-manifest.json):
25
- # @sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09 → @sha256:<hex>
26
- # @sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6 → @sha256:<hex>
27
- # @sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790 → @sha256:<hex>
28
- # @sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db → @sha256:<hex>
29
- # @sha256:d22a786f82cc928238b0ef14c6455d1238bd2f42744138cad8af81ca1747ff6e → @sha256:<hex>
25
+ # @sha256:453279fcd09f71559c908d6932d341eeb0b6d1aae864e8b735e824218e34aba7 → @sha256:<hex>
26
+ # @sha256:ef715c6e9ae15a2c0e1a824c26631bd171597e15fbf18e0dfe20556f5350d451 → @sha256:<hex>
27
+ # @sha256:2f2b38ffad9470eaefb0f58848d754dd9d86a141dc76a25c8d70c3c50586b680 → @sha256:<hex>
28
+ # @sha256:65eb6eaf2a6620cfe4c07062f291e5c9be40e4ab5d1a5df1451e627baa8167eb → @sha256:<hex>
29
+ # @sha256:673a49e30a5b9ae3968fe7ef5ca99b6ceca21bb69996bda68cd18ec335b874fe → @sha256:<hex>
30
30
  #
31
31
  # Scope guard (Story 45.2 does NOT include):
32
32
  # - ator-sidecar / ator-sidecar-relay (connector v3.5.x does HS publishing in-process)
@@ -106,7 +106,7 @@ services:
106
106
  - townhouse-hs-net
107
107
 
108
108
  connector:
109
- image: ghcr.io/toon-protocol/connector@sha256:d22a786f82cc928238b0ef14c6455d1238bd2f42744138cad8af81ca1747ff6e
109
+ image: ghcr.io/toon-protocol/connector@sha256:673a49e30a5b9ae3968fe7ef5ca99b6ceca21bb69996bda68cd18ec335b874fe
110
110
  # v3.5.1 has the multi-arch manifest but the default resolves to arm64 on
111
111
  # some Docker versions. Pin to amd64 explicitly until the manifest is fixed.
112
112
  platform: linux/amd64
@@ -157,7 +157,7 @@ services:
157
157
  # Port D21-008: Fastify host API on 127.0.0.1:28090.
158
158
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
159
  townhouse-api:
160
- image: ghcr.io/toon-protocol/townhouse-api@sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09
160
+ image: ghcr.io/toon-protocol/townhouse-api@sha256:453279fcd09f71559c908d6932d341eeb0b6d1aae864e8b735e824218e34aba7
161
161
  container_name: townhouse-hs-api
162
162
  # Run as the operator's host UID so bind-mounted ~/.townhouse files
163
163
  # (rw------- 600) are readable. TOWNHOUSE_UID is injected by `townhouse hs up`.
@@ -264,7 +264,7 @@ services:
264
264
  # start at first run).
265
265
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
266
266
  town:
267
- image: ghcr.io/toon-protocol/town@sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6
267
+ image: ghcr.io/toon-protocol/town@sha256:ef715c6e9ae15a2c0e1a824c26631bd171597e15fbf18e0dfe20556f5350d451
268
268
  container_name: townhouse-hs-town
269
269
  profiles: [town]
270
270
  networks:
@@ -330,7 +330,7 @@ services:
330
330
  # Lazy-provisioned via Epic 46: `townhouse node add mill`
331
331
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
332
332
  mill:
333
- image: ghcr.io/toon-protocol/mill@sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790
333
+ image: ghcr.io/toon-protocol/mill@sha256:2f2b38ffad9470eaefb0f58848d754dd9d86a141dc76a25c8d70c3c50586b680
334
334
  container_name: townhouse-hs-mill
335
335
  profiles: [mill]
336
336
  networks:
@@ -388,7 +388,7 @@ services:
388
388
  # Lazy-provisioned via Epic 46: `townhouse node add dvm`
389
389
  # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
390
390
  dvm:
391
- image: ghcr.io/toon-protocol/dvm@sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db
391
+ image: ghcr.io/toon-protocol/dvm@sha256:65eb6eaf2a6620cfe4c07062f291e5c9be40e4ab5d1a5df1451e627baa8167eb
392
392
  container_name: townhouse-hs-dvm
393
393
  profiles: [dvm]
394
394
  networks:
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  DEFAULT_CONNECTOR_IMAGE
4
- } from "./chunk-RCHQDZBZ.js";
4
+ } from "./chunk-BLNEL3QS.js";
5
5
  import "./chunk-I2R4CRUX.js";
6
6
 
7
7
  // src/presets/demo.ts
@@ -115,4 +115,4 @@ export {
115
115
  defaultLeasesPath,
116
116
  resolveChainEndpoints
117
117
  };
118
- //# sourceMappingURL=demo-CKC6HA7X.js.map
118
+ //# sourceMappingURL=demo-COZ7SB5F.js.map
@@ -1,32 +1,32 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "townhouseVersion": "0.8.0",
4
- "builtAt": "2026-06-04T01:50:27.440Z",
3
+ "townhouseVersion": "0.9.0",
4
+ "builtAt": "2026-06-04T16:27:27.323Z",
5
5
  "images": {
6
6
  "townhouse-api": {
7
7
  "name": "ghcr.io/toon-protocol/townhouse-api",
8
- "tag": "0.8.0",
9
- "digest": "sha256:df07e6418c3a00c6a011a77690e5b7fac03af3ae81a0428ed93a048d468edc09"
8
+ "tag": "0.9.0",
9
+ "digest": "sha256:453279fcd09f71559c908d6932d341eeb0b6d1aae864e8b735e824218e34aba7"
10
10
  },
11
11
  "town": {
12
12
  "name": "ghcr.io/toon-protocol/town",
13
- "tag": "0.8.0",
14
- "digest": "sha256:809692e969e6b2fa1fc180e069f6892398d3b001119c1d0de430502c1e6988c6"
13
+ "tag": "0.9.0",
14
+ "digest": "sha256:ef715c6e9ae15a2c0e1a824c26631bd171597e15fbf18e0dfe20556f5350d451"
15
15
  },
16
16
  "mill": {
17
17
  "name": "ghcr.io/toon-protocol/mill",
18
- "tag": "0.8.0",
19
- "digest": "sha256:70db26a8fbe1c704239c560f7f237b8ff1b8f75c162affca25ccf622b1c38790"
18
+ "tag": "0.9.0",
19
+ "digest": "sha256:2f2b38ffad9470eaefb0f58848d754dd9d86a141dc76a25c8d70c3c50586b680"
20
20
  },
21
21
  "dvm": {
22
22
  "name": "ghcr.io/toon-protocol/dvm",
23
- "tag": "0.8.0",
24
- "digest": "sha256:7be55528a618b703946ca2e30c95df3fea1ef0107aad916385d95c147819f6db"
23
+ "tag": "0.9.0",
24
+ "digest": "sha256:65eb6eaf2a6620cfe4c07062f291e5c9be40e4ab5d1a5df1451e627baa8167eb"
25
25
  },
26
26
  "connector": {
27
27
  "name": "ghcr.io/toon-protocol/connector",
28
- "tag": "3.8.1",
29
- "digest": "sha256:d22a786f82cc928238b0ef14c6455d1238bd2f42744138cad8af81ca1747ff6e"
28
+ "tag": "3.9.0",
29
+ "digest": "sha256:673a49e30a5b9ae3968fe7ef5ca99b6ceca21bb69996bda68cd18ec335b874fe"
30
30
  }
31
31
  }
32
32
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { E as EncryptedWallet, T as TownhouseConfig, W as WalletManager, a as ComposeProfile, N as NodeType$1, B as BandwidthStats, H as HealthCheckOptions, b as ChainProviderEntry } from './manager-CKTAGzVH.js';
2
- export { A as ApiConfig, c as ChainType, d as ComposeLoaderError, C as ComposeLoaderOptions, e as ConnectorConfig, f as ContainerSpec, D as DerivedNodeKeys, g as DvmNodeConfig, h as EvmChainProvider, L as LoggingConfig, M as MillNodeConfig, i as MinaChainProvider, j as NodeKeyInfo, k as NodeKeys, l as NodesConfig, O as OrchestratorEvents, S as SolanaChainProvider, m as TownNodeConfig, n as TransportConfig, o as WalletConfig, p as WalletManagerConfig, q as WalletState, r as loadComposeTemplate, s as materializeComposeTemplate } from './manager-CKTAGzVH.js';
1
+ import { E as EncryptedWallet, T as TownhouseConfig, W as WalletManager, a as ComposeProfile, N as NodeType$1, B as BandwidthStats, H as HealthCheckOptions, b as ChainProviderEntry } from './manager-BzalncRW.js';
2
+ export { A as ApiConfig, c as ChainType, d as ComposeLoaderError, C as ComposeLoaderOptions, e as ConnectorConfig, f as ContainerSpec, D as DerivedNodeKeys, g as DvmNodeConfig, h as EvmChainProvider, L as LoggingConfig, M as MillNodeConfig, i as MinaChainProvider, j as NodeKeyInfo, k as NodeKeys, l as NodesConfig, O as OrchestratorEvents, S as SolanaChainProvider, m as TownNodeConfig, n as TransportConfig, o as WalletConfig, p as WalletManagerConfig, q as WalletState, r as loadComposeTemplate, s as materializeComposeTemplate } from './manager-BzalncRW.js';
3
3
  import { EventEmitter } from 'node:events';
4
4
  import Docker from 'dockerode';
5
5
  import { FastifyBaseLogger, FastifyInstance } from 'fastify';
package/dist/index.js CHANGED
@@ -34,9 +34,9 @@ import {
34
34
  utcYearBoundary,
35
35
  validateConfig,
36
36
  writeNodesYaml
37
- } from "./chunk-BDT2FIQL.js";
37
+ } from "./chunk-UBFITLPQ.js";
38
38
  import "./chunk-5O4SBV5O.js";
39
- import "./chunk-RCHQDZBZ.js";
39
+ import "./chunk-BLNEL3QS.js";
40
40
  import "./chunk-I2R4CRUX.js";
41
41
  export {
42
42
  BootReconciler,
@@ -552,12 +552,24 @@ declare class WalletManager {
552
552
  *
553
553
  * Returns the EVM private key as a `0x`-prefixed 64-char hex string — the
554
554
  * form the connector config's `keyId` expects (matches the dev placeholder
555
- * `0x7c85…`). Throws when the wallet is locked. Structured as an object so
556
- * Solana/Mina apex keys can be added in a later phase.
555
+ * `0x7c85…`). Also returns Solana + Mina settlement keys (connector 3.9.0)
556
+ * derived at the same `ACCOUNT_INDEX_APEX`, in the RAW base58 form the
557
+ * connector resolves a non-EVM `keyId` as:
558
+ * - Solana: base58 of the 32-byte Ed25519 seed,
559
+ * - Mina: `EK…` base58check (via `hexToMinaBase58PrivateKey`).
560
+ *
561
+ * EVM derivation must always succeed (it throws on failure). Solana/Mina
562
+ * derivation is best-effort: if `deriveMillKeys` throws (unsupported
563
+ * platform, library load error) the corresponding key is OMITTED rather than
564
+ * failing the whole method, so the EVM keyId path is never blocked.
565
+ *
566
+ * Async because `deriveMillKeys` is async. Throws when the wallet is locked.
557
567
  */
558
- getApexSettlementKeys(): {
568
+ getApexSettlementKeys(): Promise<{
559
569
  evmPrivateKeyHex: string;
560
- };
570
+ solanaPrivateKeyBase58?: string;
571
+ minaPrivateKeyBase58?: string;
572
+ }>;
561
573
  /**
562
574
  * Returns the Solana Ed25519 private key seed for a node as a 64-char
563
575
  * lowercase hex string (32 raw seed bytes). Throws when the wallet is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toon-protocol/townhouse",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "TOON Townhouse — host-native orchestrator + dashboard for Docker-containerized TOON nodes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -71,11 +71,11 @@
71
71
  "tsup": "^8.0.0",
72
72
  "typescript": "^5.3.0",
73
73
  "vitest": "^1.0.0",
74
- "@toon-protocol/mill": "^0.1.0",
75
- "@toon-protocol/core": "^1.4.1",
76
74
  "@toon-protocol/client": "^0.9.1",
77
- "@toon-protocol/sdk": "^0.5.0",
78
- "@toon-protocol/relay": "^1.3.1"
75
+ "@toon-protocol/core": "^1.4.1",
76
+ "@toon-protocol/mill": "^0.1.0",
77
+ "@toon-protocol/relay": "^1.3.1",
78
+ "@toon-protocol/sdk": "^0.5.0"
79
79
  },
80
80
  "scripts": {
81
81
  "build": "tsup",