@toon-protocol/townhouse 0.5.4 → 0.6.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.
- package/dist/{chunk-FFGRTYIK.js → chunk-ZUMMJFGH.js} +21 -4
- package/dist/{chunk-FFGRTYIK.js.map → chunk-ZUMMJFGH.js.map} +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/compose/townhouse-dev.yml +10 -5
- package/dist/compose/townhouse-hs.yml +21 -11
- package/dist/image-manifest.json +10 -10
- package/dist/index.d.ts +10 -0
- package/dist/index.js +1 -1
- package/package.json +4 -4
|
@@ -228,7 +228,8 @@ services:
|
|
|
228
228
|
CONNECTOR_URL: ws://townhouse-dev-connector:3000
|
|
229
229
|
CONNECTOR_ADMIN_URL: http://townhouse-dev-connector:9401
|
|
230
230
|
FEE_PER_EVENT: '0'
|
|
231
|
-
|
|
231
|
+
# Interpolated from TOWN_01_NOSTR_PUBKEY exported by townhouse-dev-infra.sh (issue #81).
|
|
232
|
+
NODE_NOSTR_PUBKEY: '${TOWN_01_NOSTR_PUBKEY:-}'
|
|
232
233
|
NODE_EVM_ADDRESS: ''
|
|
233
234
|
# Interpolated from TOWN_01_SECRET_KEY exported by townhouse-dev-infra.sh.
|
|
234
235
|
NODE_NOSTR_SECRET_KEY: '${TOWN_01_SECRET_KEY:?TOWN_01_SECRET_KEY required — source scripts/townhouse-dev-infra.sh first}'
|
|
@@ -265,7 +266,8 @@ services:
|
|
|
265
266
|
CONNECTOR_URL: ws://townhouse-dev-connector:3000
|
|
266
267
|
CONNECTOR_ADMIN_URL: http://townhouse-dev-connector:9401
|
|
267
268
|
FEE_PER_EVENT: '0'
|
|
268
|
-
|
|
269
|
+
# Interpolated from TOWN_02_NOSTR_PUBKEY exported by townhouse-dev-infra.sh (issue #81).
|
|
270
|
+
NODE_NOSTR_PUBKEY: '${TOWN_02_NOSTR_PUBKEY:-}'
|
|
269
271
|
NODE_EVM_ADDRESS: ''
|
|
270
272
|
# Interpolated from TOWN_02_SECRET_KEY exported by townhouse-dev-infra.sh.
|
|
271
273
|
NODE_NOSTR_SECRET_KEY: '${TOWN_02_SECRET_KEY:?TOWN_02_SECRET_KEY required — source scripts/townhouse-dev-infra.sh first}'
|
|
@@ -303,7 +305,8 @@ services:
|
|
|
303
305
|
# nosemgrep: detect-insecure-websocket -- Docker-internal, TLS unnecessary
|
|
304
306
|
CONNECTOR_URL: ws://townhouse-dev-connector:3000
|
|
305
307
|
FEE_BASIS_POINTS: '0'
|
|
306
|
-
|
|
308
|
+
# Interpolated from MILL_01_NOSTR_PUBKEY exported by townhouse-dev-infra.sh (issue #81).
|
|
309
|
+
NODE_NOSTR_PUBKEY: '${MILL_01_NOSTR_PUBKEY:-}'
|
|
307
310
|
NODE_EVM_ADDRESS: ''
|
|
308
311
|
# MILL_MNEMONIC takes priority over NODE_NOSTR_SECRET_KEY for BIP-32 swap key derivation.
|
|
309
312
|
# Interpolated from MILL_01_MNEMONIC exported by townhouse-dev-infra.sh.
|
|
@@ -347,7 +350,8 @@ services:
|
|
|
347
350
|
# nosemgrep: detect-insecure-websocket -- Docker-internal, TLS unnecessary
|
|
348
351
|
CONNECTOR_URL: ws://townhouse-dev-connector:3000
|
|
349
352
|
FEE_BASIS_POINTS: '0'
|
|
350
|
-
|
|
353
|
+
# Interpolated from MILL_02_NOSTR_PUBKEY exported by townhouse-dev-infra.sh (issue #81).
|
|
354
|
+
NODE_NOSTR_PUBKEY: '${MILL_02_NOSTR_PUBKEY:-}'
|
|
351
355
|
NODE_EVM_ADDRESS: ''
|
|
352
356
|
# MILL_MNEMONIC takes priority over NODE_NOSTR_SECRET_KEY for BIP-32 swap key derivation.
|
|
353
357
|
# Interpolated from MILL_02_MNEMONIC exported by townhouse-dev-infra.sh.
|
|
@@ -388,7 +392,8 @@ services:
|
|
|
388
392
|
# nosemgrep: detect-insecure-websocket -- Docker-internal, TLS unnecessary
|
|
389
393
|
CONNECTOR_URL: ws://townhouse-dev-connector:3000
|
|
390
394
|
FEE_PER_JOB: '0'
|
|
391
|
-
|
|
395
|
+
# Interpolated from DVM_01_NOSTR_PUBKEY exported by townhouse-dev-infra.sh (issue #81).
|
|
396
|
+
NODE_NOSTR_PUBKEY: '${DVM_01_NOSTR_PUBKEY:-}'
|
|
392
397
|
NODE_EVM_ADDRESS: ''
|
|
393
398
|
# Interpolated from DVM_01_SECRET_KEY exported by townhouse-dev-infra.sh.
|
|
394
399
|
NODE_NOSTR_SECRET_KEY: '${DVM_01_SECRET_KEY:?DVM_01_SECRET_KEY required — source scripts/townhouse-dev-infra.sh first}'
|
|
@@ -22,10 +22,10 @@
|
|
|
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:
|
|
26
|
-
# @sha256:
|
|
27
|
-
# @sha256:
|
|
28
|
-
# @sha256:
|
|
25
|
+
# @sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6 → @sha256:<hex>
|
|
26
|
+
# @sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2 → @sha256:<hex>
|
|
27
|
+
# @sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a → @sha256:<hex>
|
|
28
|
+
# @sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b → @sha256:<hex>
|
|
29
29
|
# @sha256:d22a786f82cc928238b0ef14c6455d1238bd2f42744138cad8af81ca1747ff6e → @sha256:<hex>
|
|
30
30
|
#
|
|
31
31
|
# Scope guard (Story 45.2 does NOT include):
|
|
@@ -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:
|
|
160
|
+
image: ghcr.io/toon-protocol/townhouse-api@sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6
|
|
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:
|
|
267
|
+
image: ghcr.io/toon-protocol/town@sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2
|
|
268
268
|
container_name: townhouse-hs-town
|
|
269
269
|
profiles: [town]
|
|
270
270
|
networks:
|
|
@@ -296,7 +296,11 @@ services:
|
|
|
296
296
|
# (env-writer). 'none' makes the town node run relay-only (no settlement).
|
|
297
297
|
TOON_CHAIN: ${EVM_CHAIN:-}
|
|
298
298
|
TOON_RPC_URL: ${EVM_RPC_URL:-}
|
|
299
|
-
|
|
299
|
+
# x-only pubkey derived from the node secret at provisioning time and
|
|
300
|
+
# injected by the API (nodes-lifecycle buildNodeEnv → TOWN_NOSTR_PUBKEY).
|
|
301
|
+
# Informational — lets operators / SDK clients read it via `docker inspect`
|
|
302
|
+
# or `node list --json` without re-deriving from the secret (issue #81).
|
|
303
|
+
NODE_NOSTR_PUBKEY: '${TOWN_NOSTR_PUBKEY:-}'
|
|
300
304
|
NODE_EVM_ADDRESS: ''
|
|
301
305
|
# Derived from HD wallet at runtime (Story 45.4 / Epic 46).
|
|
302
306
|
NODE_NOSTR_SECRET_KEY: '${TOWN_SECRET_KEY:-}'
|
|
@@ -326,7 +330,7 @@ services:
|
|
|
326
330
|
# Lazy-provisioned via Epic 46: `townhouse node add mill`
|
|
327
331
|
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
328
332
|
mill:
|
|
329
|
-
image: ghcr.io/toon-protocol/mill@sha256:
|
|
333
|
+
image: ghcr.io/toon-protocol/mill@sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a
|
|
330
334
|
container_name: townhouse-hs-mill
|
|
331
335
|
profiles: [mill]
|
|
332
336
|
networks:
|
|
@@ -353,7 +357,10 @@ services:
|
|
|
353
357
|
SETTLEMENT_TOKEN_ADDRESS: ${EVM_USDC_ADDRESS:-}
|
|
354
358
|
SOLANA_RPC_URL: ${SOLANA_RPC_URL:-}
|
|
355
359
|
SOLANA_USDC_MINT: ${SOLANA_USDC_MINT:-}
|
|
356
|
-
|
|
360
|
+
# x-only pubkey injected by the API (buildNodeEnv → MILL_NOSTR_PUBKEY).
|
|
361
|
+
# SDK clients need the mill pubkey for streamSwap seal verification —
|
|
362
|
+
# surfacing it here avoids re-deriving from the secret (issue #81).
|
|
363
|
+
NODE_NOSTR_PUBKEY: '${MILL_NOSTR_PUBKEY:-}'
|
|
357
364
|
NODE_EVM_ADDRESS: ''
|
|
358
365
|
# Derived from HD wallet at runtime (Story 45.4 / Epic 46).
|
|
359
366
|
MILL_MNEMONIC: '${MILL_MNEMONIC:-}'
|
|
@@ -381,7 +388,7 @@ services:
|
|
|
381
388
|
# Lazy-provisioned via Epic 46: `townhouse node add dvm`
|
|
382
389
|
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
383
390
|
dvm:
|
|
384
|
-
image: ghcr.io/toon-protocol/dvm@sha256:
|
|
391
|
+
image: ghcr.io/toon-protocol/dvm@sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b
|
|
385
392
|
container_name: townhouse-hs-dvm
|
|
386
393
|
profiles: [dvm]
|
|
387
394
|
networks:
|
|
@@ -397,7 +404,10 @@ services:
|
|
|
397
404
|
CONNECTOR_URL: ws://connector:3000
|
|
398
405
|
FEE_PER_JOB: '0'
|
|
399
406
|
DVM_KIND: '5094'
|
|
400
|
-
|
|
407
|
+
# x-only pubkey injected by the API (buildNodeEnv → DVM_NOSTR_PUBKEY).
|
|
408
|
+
# Informational — readable via `docker inspect` / `node list --json`
|
|
409
|
+
# without re-deriving from the secret (issue #81).
|
|
410
|
+
NODE_NOSTR_PUBKEY: '${DVM_NOSTR_PUBKEY:-}'
|
|
401
411
|
NODE_EVM_ADDRESS: ''
|
|
402
412
|
# Derived from HD wallet at runtime (Story 45.4 / Epic 46).
|
|
403
413
|
NODE_NOSTR_SECRET_KEY: '${DVM_SECRET_KEY:-}'
|
package/dist/image-manifest.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"townhouseVersion": "0.
|
|
4
|
-
"builtAt": "2026-06-03T21:
|
|
3
|
+
"townhouseVersion": "0.6.0",
|
|
4
|
+
"builtAt": "2026-06-03T21:38:35.242Z",
|
|
5
5
|
"images": {
|
|
6
6
|
"townhouse-api": {
|
|
7
7
|
"name": "ghcr.io/toon-protocol/townhouse-api",
|
|
8
|
-
"tag": "0.
|
|
9
|
-
"digest": "sha256:
|
|
8
|
+
"tag": "0.6.0",
|
|
9
|
+
"digest": "sha256:6de5d4afecd687afc98df4a876d7e9ae6ce639201fea192eb106e501ebbb59d6"
|
|
10
10
|
},
|
|
11
11
|
"town": {
|
|
12
12
|
"name": "ghcr.io/toon-protocol/town",
|
|
13
|
-
"tag": "0.
|
|
14
|
-
"digest": "sha256:
|
|
13
|
+
"tag": "0.6.0",
|
|
14
|
+
"digest": "sha256:48ab6c4be89e4d8b031550c2c0e7dee254c56923c939bebdc9f7cd22a95e02f2"
|
|
15
15
|
},
|
|
16
16
|
"mill": {
|
|
17
17
|
"name": "ghcr.io/toon-protocol/mill",
|
|
18
|
-
"tag": "0.
|
|
19
|
-
"digest": "sha256:
|
|
18
|
+
"tag": "0.6.0",
|
|
19
|
+
"digest": "sha256:ee77ef2d994cd6a9e461dfa8cfb8e1587eaa4c37f886e91d7169c7dd3e97326a"
|
|
20
20
|
},
|
|
21
21
|
"dvm": {
|
|
22
22
|
"name": "ghcr.io/toon-protocol/dvm",
|
|
23
|
-
"tag": "0.
|
|
24
|
-
"digest": "sha256:
|
|
23
|
+
"tag": "0.6.0",
|
|
24
|
+
"digest": "sha256:c5294dd01b726058a1b50eab7f3a4a538534230b64bfc6ddecc217f7a3171d5b"
|
|
25
25
|
},
|
|
26
26
|
"connector": {
|
|
27
27
|
"name": "ghcr.io/toon-protocol/connector",
|
package/dist/index.d.ts
CHANGED
|
@@ -1482,6 +1482,7 @@ declare const NodesYamlEntrySchema: z.ZodObject<{
|
|
|
1482
1482
|
peerId: z.ZodString;
|
|
1483
1483
|
ilpAddress: z.ZodString;
|
|
1484
1484
|
derivationIndex: z.ZodNumber;
|
|
1485
|
+
nostrPubkey: z.ZodOptional<z.ZodString>;
|
|
1485
1486
|
enabledAt: z.ZodString;
|
|
1486
1487
|
lastSeenAt: z.ZodNullable<z.ZodString>;
|
|
1487
1488
|
}, "strict", z.ZodTypeAny, {
|
|
@@ -1492,6 +1493,7 @@ declare const NodesYamlEntrySchema: z.ZodObject<{
|
|
|
1492
1493
|
derivationIndex: number;
|
|
1493
1494
|
enabledAt: string;
|
|
1494
1495
|
lastSeenAt: string | null;
|
|
1496
|
+
nostrPubkey?: string | undefined;
|
|
1495
1497
|
}, {
|
|
1496
1498
|
type: "town" | "mill" | "dvm";
|
|
1497
1499
|
id: string;
|
|
@@ -1500,6 +1502,7 @@ declare const NodesYamlEntrySchema: z.ZodObject<{
|
|
|
1500
1502
|
derivationIndex: number;
|
|
1501
1503
|
enabledAt: string;
|
|
1502
1504
|
lastSeenAt: string | null;
|
|
1505
|
+
nostrPubkey?: string | undefined;
|
|
1503
1506
|
}>;
|
|
1504
1507
|
declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
1505
1508
|
entries: z.ZodArray<z.ZodObject<{
|
|
@@ -1508,6 +1511,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1508
1511
|
peerId: z.ZodString;
|
|
1509
1512
|
ilpAddress: z.ZodString;
|
|
1510
1513
|
derivationIndex: z.ZodNumber;
|
|
1514
|
+
nostrPubkey: z.ZodOptional<z.ZodString>;
|
|
1511
1515
|
enabledAt: z.ZodString;
|
|
1512
1516
|
lastSeenAt: z.ZodNullable<z.ZodString>;
|
|
1513
1517
|
}, "strict", z.ZodTypeAny, {
|
|
@@ -1518,6 +1522,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1518
1522
|
derivationIndex: number;
|
|
1519
1523
|
enabledAt: string;
|
|
1520
1524
|
lastSeenAt: string | null;
|
|
1525
|
+
nostrPubkey?: string | undefined;
|
|
1521
1526
|
}, {
|
|
1522
1527
|
type: "town" | "mill" | "dvm";
|
|
1523
1528
|
id: string;
|
|
@@ -1526,6 +1531,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1526
1531
|
derivationIndex: number;
|
|
1527
1532
|
enabledAt: string;
|
|
1528
1533
|
lastSeenAt: string | null;
|
|
1534
|
+
nostrPubkey?: string | undefined;
|
|
1529
1535
|
}>, "many">;
|
|
1530
1536
|
}, "strict", z.ZodTypeAny, {
|
|
1531
1537
|
entries: {
|
|
@@ -1536,6 +1542,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1536
1542
|
derivationIndex: number;
|
|
1537
1543
|
enabledAt: string;
|
|
1538
1544
|
lastSeenAt: string | null;
|
|
1545
|
+
nostrPubkey?: string | undefined;
|
|
1539
1546
|
}[];
|
|
1540
1547
|
}, {
|
|
1541
1548
|
entries: {
|
|
@@ -1546,6 +1553,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1546
1553
|
derivationIndex: number;
|
|
1547
1554
|
enabledAt: string;
|
|
1548
1555
|
lastSeenAt: string | null;
|
|
1556
|
+
nostrPubkey?: string | undefined;
|
|
1549
1557
|
}[];
|
|
1550
1558
|
}>, {
|
|
1551
1559
|
entries: {
|
|
@@ -1556,6 +1564,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1556
1564
|
derivationIndex: number;
|
|
1557
1565
|
enabledAt: string;
|
|
1558
1566
|
lastSeenAt: string | null;
|
|
1567
|
+
nostrPubkey?: string | undefined;
|
|
1559
1568
|
}[];
|
|
1560
1569
|
}, {
|
|
1561
1570
|
entries: {
|
|
@@ -1566,6 +1575,7 @@ declare const NodesYamlSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1566
1575
|
derivationIndex: number;
|
|
1567
1576
|
enabledAt: string;
|
|
1568
1577
|
lastSeenAt: string | null;
|
|
1578
|
+
nostrPubkey?: string | undefined;
|
|
1569
1579
|
}[];
|
|
1570
1580
|
}>;
|
|
1571
1581
|
type NodesYamlEntry = z.infer<typeof NodesYamlEntrySchema>;
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toon-protocol/townhouse",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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/core": "^1.4.1",
|
|
75
74
|
"@toon-protocol/client": "^0.9.1",
|
|
75
|
+
"@toon-protocol/core": "^1.4.1",
|
|
76
76
|
"@toon-protocol/relay": "^1.3.1",
|
|
77
|
-
"@toon-protocol/
|
|
78
|
-
"@toon-protocol/
|
|
77
|
+
"@toon-protocol/mill": "^0.1.0",
|
|
78
|
+
"@toon-protocol/sdk": "^0.5.0"
|
|
79
79
|
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"build": "tsup",
|