@vtechcom/hexcore 2.0.0-beta.1

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.
Files changed (173) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/LICENSE +201 -0
  3. package/README.md +283 -0
  4. package/dist/app.module.js +55 -0
  5. package/dist/app.module.js.map +1 -0
  6. package/dist/auth.js +151 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/chain/cost-models.js +81 -0
  9. package/dist/chain/cost-models.js.map +1 -0
  10. package/dist/chain/provider.js +269 -0
  11. package/dist/chain/provider.js.map +1 -0
  12. package/dist/chain/socket.js +48 -0
  13. package/dist/chain/socket.js.map +1 -0
  14. package/dist/cli/doctor.js +43 -0
  15. package/dist/cli/doctor.js.map +1 -0
  16. package/dist/cli/hexcore.js +435 -0
  17. package/dist/cli/hexcore.js.map +1 -0
  18. package/dist/common/auth.guard.js +66 -0
  19. package/dist/common/auth.guard.js.map +1 -0
  20. package/dist/common/http.js +171 -0
  21. package/dist/common/http.js.map +1 -0
  22. package/dist/common/zod-validation.pipe.js +47 -0
  23. package/dist/common/zod-validation.pipe.js.map +1 -0
  24. package/dist/config.js +354 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/config.module.js +35 -0
  27. package/dist/config.module.js.map +1 -0
  28. package/dist/controllers/cardano.controller.js +173 -0
  29. package/dist/controllers/cardano.controller.js.map +1 -0
  30. package/dist/controllers/heads.controller.js +225 -0
  31. package/dist/controllers/heads.controller.js.map +1 -0
  32. package/dist/controllers/setup.controller.js +127 -0
  33. package/dist/controllers/setup.controller.js.map +1 -0
  34. package/dist/controllers/system.controller.js +153 -0
  35. package/dist/controllers/system.controller.js.map +1 -0
  36. package/dist/db/database.module.js +73 -0
  37. package/dist/db/database.module.js.map +1 -0
  38. package/dist/db/index.js +135 -0
  39. package/dist/db/index.js.map +1 -0
  40. package/dist/db/repositories.js +220 -0
  41. package/dist/db/repositories.js.map +1 -0
  42. package/dist/docker/container-stats.js +134 -0
  43. package/dist/docker/container-stats.js.map +1 -0
  44. package/dist/docker/docker.service.js +335 -0
  45. package/dist/docker/docker.service.js.map +1 -0
  46. package/dist/hydra/argv.js +172 -0
  47. package/dist/hydra/argv.js.map +1 -0
  48. package/dist/hydra/blockfrost-keys.js +15 -0
  49. package/dist/hydra/blockfrost-keys.js.map +1 -0
  50. package/dist/hydra/boot-progress.js +165 -0
  51. package/dist/hydra/boot-progress.js.map +1 -0
  52. package/dist/hydra/capabilities.js +131 -0
  53. package/dist/hydra/capabilities.js.map +1 -0
  54. package/dist/hydra/head.service.js +1072 -0
  55. package/dist/hydra/head.service.js.map +1 -0
  56. package/dist/hydra/keys.js +301 -0
  57. package/dist/hydra/keys.js.map +1 -0
  58. package/dist/hydra/node-monitor.service.js +265 -0
  59. package/dist/hydra/node-monitor.service.js.map +1 -0
  60. package/dist/hydra/ws-client.js +177 -0
  61. package/dist/hydra/ws-client.js.map +1 -0
  62. package/dist/main.js +106 -0
  63. package/dist/main.js.map +1 -0
  64. package/dist/preflight.js +215 -0
  65. package/dist/preflight.js.map +1 -0
  66. package/dist/settings.js +243 -0
  67. package/dist/settings.js.map +1 -0
  68. package/dist/setup.service.js +257 -0
  69. package/dist/setup.service.js.map +1 -0
  70. package/dist/version.js +46 -0
  71. package/dist/version.js.map +1 -0
  72. package/node_modules/@hexcore/shared/dist/cjs/api.d.ts +730 -0
  73. package/node_modules/@hexcore/shared/dist/cjs/api.d.ts.map +1 -0
  74. package/node_modules/@hexcore/shared/dist/cjs/api.js +358 -0
  75. package/node_modules/@hexcore/shared/dist/cjs/api.js.map +1 -0
  76. package/node_modules/@hexcore/shared/dist/cjs/domain.d.ts +298 -0
  77. package/node_modules/@hexcore/shared/dist/cjs/domain.d.ts.map +1 -0
  78. package/node_modules/@hexcore/shared/dist/cjs/domain.js +49 -0
  79. package/node_modules/@hexcore/shared/dist/cjs/domain.js.map +1 -0
  80. package/node_modules/@hexcore/shared/dist/cjs/hydra-versions.d.ts +279 -0
  81. package/node_modules/@hexcore/shared/dist/cjs/hydra-versions.d.ts.map +1 -0
  82. package/node_modules/@hexcore/shared/dist/cjs/hydra-versions.js +453 -0
  83. package/node_modules/@hexcore/shared/dist/cjs/hydra-versions.js.map +1 -0
  84. package/node_modules/@hexcore/shared/dist/cjs/index.d.ts +7 -0
  85. package/node_modules/@hexcore/shared/dist/cjs/index.d.ts.map +1 -0
  86. package/node_modules/@hexcore/shared/dist/cjs/index.js +23 -0
  87. package/node_modules/@hexcore/shared/dist/cjs/index.js.map +1 -0
  88. package/node_modules/@hexcore/shared/dist/cjs/naming.d.ts +118 -0
  89. package/node_modules/@hexcore/shared/dist/cjs/naming.d.ts.map +1 -0
  90. package/node_modules/@hexcore/shared/dist/cjs/naming.js +103 -0
  91. package/node_modules/@hexcore/shared/dist/cjs/naming.js.map +1 -0
  92. package/node_modules/@hexcore/shared/dist/cjs/offline.d.ts +73 -0
  93. package/node_modules/@hexcore/shared/dist/cjs/offline.d.ts.map +1 -0
  94. package/node_modules/@hexcore/shared/dist/cjs/offline.js +80 -0
  95. package/node_modules/@hexcore/shared/dist/cjs/offline.js.map +1 -0
  96. package/node_modules/@hexcore/shared/dist/cjs/protocol-params.d.ts +79 -0
  97. package/node_modules/@hexcore/shared/dist/cjs/protocol-params.d.ts.map +1 -0
  98. package/node_modules/@hexcore/shared/dist/cjs/protocol-params.js +223 -0
  99. package/node_modules/@hexcore/shared/dist/cjs/protocol-params.js.map +1 -0
  100. package/node_modules/@hexcore/shared/dist/esm/api.js +355 -0
  101. package/node_modules/@hexcore/shared/dist/esm/api.js.map +1 -0
  102. package/node_modules/@hexcore/shared/dist/esm/domain.js +46 -0
  103. package/node_modules/@hexcore/shared/dist/esm/domain.js.map +1 -0
  104. package/node_modules/@hexcore/shared/dist/esm/hydra-versions.js +441 -0
  105. package/node_modules/@hexcore/shared/dist/esm/hydra-versions.js.map +1 -0
  106. package/node_modules/@hexcore/shared/dist/esm/index.js +7 -0
  107. package/node_modules/@hexcore/shared/dist/esm/index.js.map +1 -0
  108. package/node_modules/@hexcore/shared/dist/esm/naming.js +95 -0
  109. package/node_modules/@hexcore/shared/dist/esm/naming.js.map +1 -0
  110. package/node_modules/@hexcore/shared/dist/esm/offline.js +75 -0
  111. package/node_modules/@hexcore/shared/dist/esm/offline.js.map +1 -0
  112. package/node_modules/@hexcore/shared/dist/esm/package.json +3 -0
  113. package/node_modules/@hexcore/shared/dist/esm/protocol-params.js +217 -0
  114. package/node_modules/@hexcore/shared/dist/esm/protocol-params.js.map +1 -0
  115. package/node_modules/@hexcore/shared/package.json +15 -0
  116. package/package.json +67 -0
  117. package/web/200.html +23 -0
  118. package/web/404.html +23 -0
  119. package/web/_nuxt/2MxohCD-.js +1 -0
  120. package/web/_nuxt/4pFXjB_u.js +1 -0
  121. package/web/_nuxt/B-v0dEQX.js +1 -0
  122. package/web/_nuxt/B4yE3U25.js +1 -0
  123. package/web/_nuxt/BFh8Ai0L.js +1 -0
  124. package/web/_nuxt/BgPn4NJH.js +1 -0
  125. package/web/_nuxt/Bj1xviSh.js +1 -0
  126. package/web/_nuxt/BnotlrL7.js +1 -0
  127. package/web/_nuxt/C1YRg2ic.js +1 -0
  128. package/web/_nuxt/CGD7MYQH.js +1 -0
  129. package/web/_nuxt/CQcG7Bu4.js +1 -0
  130. package/web/_nuxt/CS3KqpH_.js +1 -0
  131. package/web/_nuxt/CT-yt694.js +1 -0
  132. package/web/_nuxt/CZK6xUH-.js +1 -0
  133. package/web/_nuxt/CcdyYRYz.js +1 -0
  134. package/web/_nuxt/CePNTU1S.js +1 -0
  135. package/web/_nuxt/CgPLsCeU.js +5 -0
  136. package/web/_nuxt/CkCrahXt.js +1 -0
  137. package/web/_nuxt/CnOqDT9k.js +3 -0
  138. package/web/_nuxt/CqsSss-D.js +1 -0
  139. package/web/_nuxt/Cr8dL64Q.js +1 -0
  140. package/web/_nuxt/D3CwzwU0.js +1 -0
  141. package/web/_nuxt/DDANn6-H.js +1 -0
  142. package/web/_nuxt/DDl9uKIA.js +1 -0
  143. package/web/_nuxt/DL9i0ayn.js +1 -0
  144. package/web/_nuxt/DLNoK9BC.js +1 -0
  145. package/web/_nuxt/DLztFeOQ.js +1 -0
  146. package/web/_nuxt/DPihKXdt.js +1 -0
  147. package/web/_nuxt/DXyr6Naa.js +1 -0
  148. package/web/_nuxt/DeDg5p0D.js +1 -0
  149. package/web/_nuxt/DgDlQiDU.js +1 -0
  150. package/web/_nuxt/DyPI7qJE.js +30 -0
  151. package/web/_nuxt/LGfPBi70.js +1 -0
  152. package/web/_nuxt/Onf26W-r.js +1 -0
  153. package/web/_nuxt/QZNQe_OX.js +1 -0
  154. package/web/_nuxt/Y8IJM-iz.js +1 -0
  155. package/web/_nuxt/YUGC0nt0.js +1 -0
  156. package/web/_nuxt/builds/latest.json +1 -0
  157. package/web/_nuxt/builds/meta/7e461629-93e2-4694-b237-6d5c6a85c97c.json +1 -0
  158. package/web/_nuxt/builds/meta/dev.json +1 -0
  159. package/web/_nuxt/entry.BxsAxZxf.css +1 -0
  160. package/web/_nuxt/error-404.XbtAw-qw.css +1 -0
  161. package/web/_nuxt/error-500.CNHVltWM.css +1 -0
  162. package/web/_nuxt/rS90pPZ_.js +1 -0
  163. package/web/_nuxt/rhEiP908.js +1 -0
  164. package/web/_nuxt/vSj9Ec0g.js +1 -0
  165. package/web/_nuxt/woNjBJMN.js +1 -0
  166. package/web/favicon.svg +28 -0
  167. package/web/heads/index.html +23 -0
  168. package/web/heads/new/index.html +23 -0
  169. package/web/index.html +23 -0
  170. package/web/login/index.html +23 -0
  171. package/web/logo.svg +56 -0
  172. package/web/settings/index.html +23 -0
  173. package/web/setup/index.html +23 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.service.js","sourceRoot":"","sources":["../../src/hydra/head.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyImportError = exports.KEY_TYPE = void 0;
4
+ exports.toCliSigningKey = toCliSigningKey;
5
+ exports.toCliVerificationKey = toCliVerificationKey;
6
+ exports.validateCardanoKeyInput = validateCardanoKeyInput;
7
+ exports.generateNodeKeys = generateNodeKeys;
8
+ exports.addressFromVkeyEnvelope = addressFromVkeyEnvelope;
9
+ exports.ensureNodeKeys = ensureNodeKeys;
10
+ exports.removeNodeKeys = removeNodeKeys;
11
+ exports.networkArgs = networkArgs;
12
+ /**
13
+ * Key material generation.
14
+ *
15
+ * THE headline change in v2. In v1 `POST /hydra-heads/create` demanded a
16
+ * `hydraHeadKeys[]` array where the caller had already produced, for every
17
+ * node, a Hydra signing/verification pair AND a Cardano payment pair in
18
+ * text-envelope cborHex form. That meant running `hydra-node gen-hydra-key` and
19
+ * `cardano-cli address key-gen` by hand before the API was usable at all, and
20
+ * it is the reason the v1 UI could not create a working head on its own.
21
+ *
22
+ * v2 generates both pairs in-process and writes them straight to disk as the
23
+ * text envelopes hydra-node expects. Generating stays the default, but a
24
+ * Cardano payment key may now be supplied per node at creation, so a node can
25
+ * reuse an address that already holds funds instead of needing the faucet
26
+ * again. Hydra keys are always generated — they only sign Head protocol
27
+ * messages, so there is no funded state to carry over.
28
+ *
29
+ * Envelope handling comes from `KeysUtils` in @hydra-sdk/core rather than being
30
+ * hand-rolled here: it already knows every shape `cardano-cli` writes (plain,
31
+ * 64-byte extended, 96- and 128-byte xprv) and emits the exact `type` and
32
+ * `description` fields the CLI does. The serialization lib underneath arrives
33
+ * through @hydra-sdk/cardano-wasm, which picks the node or browser build
34
+ * automatically. Verified before switching off the direct `@emurgo/…` import:
35
+ * the CSL 14 the SDK carries derives byte-identical addresses to the 13.x this
36
+ * used to import, so addresses funded by earlier builds stay valid.
37
+ */
38
+ const cardano_wasm_1 = require("@hydra-sdk/cardano-wasm");
39
+ const core_1 = require("@hydra-sdk/core");
40
+ const promises_1 = require("node:fs/promises");
41
+ const node_fs_1 = require("node:fs");
42
+ const shared_1 = require("@hexcore/shared");
43
+ exports.KEY_TYPE = {
44
+ hydraSk: 'HydraSigningKey_ed25519',
45
+ hydraVk: 'HydraVerificationKey_ed25519',
46
+ cardanoSk: 'PaymentSigningKeyShelley_ed25519',
47
+ cardanoVk: 'PaymentVerificationKeyShelley_ed25519',
48
+ };
49
+ /** Rejected key material. Carries no key bytes, so it is safe to log or return. */
50
+ class KeyImportError extends Error {
51
+ constructor(message) {
52
+ super(message);
53
+ this.name = 'KeyImportError';
54
+ }
55
+ }
56
+ exports.KeyImportError = KeyImportError;
57
+ function networkId(network) {
58
+ return network === 'mainnet'
59
+ ? cardano_wasm_1.CardanoWASM.NetworkInfo.mainnet().network_id()
60
+ : cardano_wasm_1.CardanoWASM.NetworkInfo.testnet_preprod().network_id();
61
+ }
62
+ /**
63
+ * CSL and the SDK throw values that are not always Errors, so `err.message` can
64
+ * be undefined. Wrap them, and never let key bytes reach the message.
65
+ */
66
+ function guard(fn, what) {
67
+ try {
68
+ return fn();
69
+ }
70
+ catch (err) {
71
+ if (err instanceof KeyImportError)
72
+ throw err;
73
+ throw new KeyImportError(`That ${what} is not a valid ed25519 key`);
74
+ }
75
+ }
76
+ /**
77
+ * Reduce whatever the operator pasted to a plain 32-byte signing key envelope.
78
+ *
79
+ * Every accepted form is one someone genuinely has to hand: the whole `.skey`
80
+ * file, the `cborHex` line out of it, the bare hex, or the bech32 the CLI
81
+ * prints.
82
+ *
83
+ * Extended (BIP32-Ed25519) keys are refused even though the SDK can decode
84
+ * them: hydra-node reads `--cardano-signing-key` as a plain PaymentKey, not a
85
+ * PaymentExtendedKey, so accepting one would trade a clear message here for a
86
+ * container that dies at boot.
87
+ */
88
+ function toCliSigningKey(input) {
89
+ let value = input.trim();
90
+ if (!value)
91
+ throw new KeyImportError('The signing key is empty');
92
+ // A pasted .skey file: {"type": …, "description": …, "cborHex": "5820…"}
93
+ if (value.startsWith('{')) {
94
+ const parsed = parseEnvelope(value, 'signing key');
95
+ if (parsed.type && /Extended/i.test(parsed.type))
96
+ throw extendedKeyError(parsed.type);
97
+ value = parsed.cborHex;
98
+ }
99
+ if (value.startsWith('ed25519e_sk') || value.startsWith('xprv'))
100
+ throw extendedKeyError();
101
+ if (value.startsWith('ed25519_sk')) {
102
+ const raw = guard(() => cardano_wasm_1.CardanoWASM.PrivateKey.from_bech32(value).as_bytes(), 'signing key');
103
+ return signingEnvelope(core_1.KeysUtils.encodeCliKeyEnvelope(raw));
104
+ }
105
+ return signingEnvelope(normaliseCborHex(value, 'signing key'));
106
+ }
107
+ /** Same reduction for a verification key, which is only ever a cross-check. */
108
+ function toCliVerificationKey(input) {
109
+ let value = input.trim();
110
+ if (!value)
111
+ throw new KeyImportError('The verification key is empty');
112
+ if (value.startsWith('{')) {
113
+ const parsed = parseEnvelope(value, 'verification key');
114
+ if (parsed.type && /Extended/i.test(parsed.type))
115
+ throw extendedKeyError(parsed.type);
116
+ value = parsed.cborHex;
117
+ }
118
+ if (value.startsWith('ed25519_pk')) {
119
+ const raw = guard(() => cardano_wasm_1.CardanoWASM.PublicKey.from_bech32(value).as_bytes(), 'verification key');
120
+ return {
121
+ type: exports.KEY_TYPE.cardanoVk,
122
+ description: 'Payment Verification Key',
123
+ cborHex: core_1.KeysUtils.encodeCliKeyEnvelope(raw),
124
+ };
125
+ }
126
+ return {
127
+ type: exports.KEY_TYPE.cardanoVk,
128
+ description: 'Payment Verification Key',
129
+ cborHex: normaliseCborHex(value, 'verification key'),
130
+ };
131
+ }
132
+ function parseEnvelope(json, what) {
133
+ let parsed;
134
+ try {
135
+ parsed = JSON.parse(json);
136
+ }
137
+ catch {
138
+ throw new KeyImportError(`That looks like a ${what} file but is not valid JSON`);
139
+ }
140
+ if (typeof parsed.cborHex !== 'string') {
141
+ throw new KeyImportError(`The ${what} file has no "cborHex" field`);
142
+ }
143
+ return { type: parsed.type, cborHex: parsed.cborHex.trim() };
144
+ }
145
+ /**
146
+ * Accept a bare 32-byte hex or an already-wrapped `5820…`, and reject anything
147
+ * whose payload is not 32 bytes — which is exactly what an extended key is.
148
+ */
149
+ function normaliseCborHex(value, what) {
150
+ const hex = value.toLowerCase().replace(/\s+/g, '');
151
+ if (!/^[0-9a-f]+$/.test(hex)) {
152
+ throw new KeyImportError(`Expected a ${what}: a key file, its cborHex, 64 hex characters, or a bech32 key`);
153
+ }
154
+ if (/^[0-9a-f]{64}$/.test(hex))
155
+ return core_1.KeysUtils.encodeCliKeyEnvelope(hexToBytes(hex));
156
+ const bytes = guard(() => core_1.KeysUtils.decodeCliKeyEnvelope(hex), what);
157
+ if (bytes.length !== core_1.KeysUtils.CLI_KEY_LENGTH.NORMAL)
158
+ throw extendedKeyError();
159
+ return core_1.KeysUtils.encodeCliKeyEnvelope(bytes);
160
+ }
161
+ function extendedKeyError(type) {
162
+ return new KeyImportError(`${type ? `"${type}" is` : 'That is'} an extended (BIP32) key. hydra-node needs a plain ` +
163
+ 'payment signing key — generate one with `cardano-cli address key-gen`.');
164
+ }
165
+ function hexToBytes(hex) {
166
+ return Uint8Array.from(hex.match(/.{2}/g).map(b => parseInt(b, 16)));
167
+ }
168
+ function signingEnvelope(cborHex) {
169
+ return { type: exports.KEY_TYPE.cardanoSk, description: 'Payment Signing Key', cborHex };
170
+ }
171
+ function addressFromPublicKey(pub, network) {
172
+ return cardano_wasm_1.CardanoWASM.EnterpriseAddress.new(networkId(network), cardano_wasm_1.CardanoWASM.Credential.from_keyhash(pub.hash()))
173
+ .to_address()
174
+ .to_bech32();
175
+ }
176
+ /**
177
+ * Parse a supplied pair without writing anything, so a bad key on the last node
178
+ * is caught before the first row is inserted. Creating a head is several
179
+ * inserts plus four files per node; failing halfway would leave a half-built
180
+ * head nobody asked for.
181
+ *
182
+ * Throws KeyImportError; returns the address the key produces, which is the
183
+ * part worth showing back to the operator.
184
+ */
185
+ function validateCardanoKeyInput(input, network) {
186
+ const sk = toCliSigningKey(input.signingKey);
187
+ const priv = guard(() => core_1.KeysUtils.cliSkeyToPrivateKey(sk.cborHex), 'signing key');
188
+ const pub = priv.to_public();
189
+ try {
190
+ if (input.verificationKey) {
191
+ const claimed = toCliVerificationKey(input.verificationKey);
192
+ if (claimed.cborHex !== core_1.KeysUtils.encodeCliKeyEnvelope(pub.as_bytes())) {
193
+ throw new KeyImportError('The verification key does not belong to that signing key — check the pair ' +
194
+ 'came from the same `cardano-cli address key-gen`.');
195
+ }
196
+ }
197
+ return addressFromPublicKey(pub, network);
198
+ }
199
+ finally {
200
+ priv.free();
201
+ pub.free();
202
+ }
203
+ }
204
+ /** Generate one complete node identity: Hydra pair + Cardano pair + address. */
205
+ function generateNodeKeys(network, provided) {
206
+ // Hydra keys: plain ed25519, only ever used to sign Head protocol messages.
207
+ const hydra = core_1.KeysUtils.hydraCliKeygen();
208
+ // Cardano keys: fund the node on L1 (commit + fanout fees). Supplying one
209
+ // is how a node reuses an address that already holds test ADA.
210
+ let cardanoSk;
211
+ let cardanoVk;
212
+ if (provided) {
213
+ // Re-derives rather than trusting a supplied vkey: the address must
214
+ // follow the key that will actually sign, and validateCardanoKeyInput
215
+ // has already rejected a pair that disagrees.
216
+ validateCardanoKeyInput(provided, network);
217
+ cardanoSk = toCliSigningKey(provided.signingKey);
218
+ cardanoVk = core_1.KeysUtils.genVkey({ cborHex: cardanoSk.cborHex });
219
+ }
220
+ else {
221
+ const generated = core_1.KeysUtils.cardanoCliKeygen();
222
+ cardanoSk = generated.sk;
223
+ cardanoVk = generated.vk;
224
+ }
225
+ const pub = guard(() => core_1.KeysUtils.cliVkeyToPublicKey(cardanoVk.cborHex), 'verification key');
226
+ const address = addressFromPublicKey(pub, network);
227
+ pub.free();
228
+ return {
229
+ hydraSk: hydra.sk,
230
+ hydraVk: hydra.vk,
231
+ cardanoSk,
232
+ cardanoVk,
233
+ cardanoAddress: address,
234
+ };
235
+ }
236
+ /** Derive the bech32 enterprise address from an existing Cardano vkey envelope. */
237
+ function addressFromVkeyEnvelope(vk, network) {
238
+ const pub = guard(() => core_1.KeysUtils.cliVkeyToPublicKey(vk.cborHex), 'verification key');
239
+ const address = addressFromPublicKey(pub, network);
240
+ pub.free();
241
+ return address;
242
+ }
243
+ /**
244
+ * Materialise keys for a node on disk, idempotently: if the envelopes already
245
+ * exist they are re-read instead of regenerated, so restarting or resizing a
246
+ * head never invalidates addresses the user has already funded.
247
+ */
248
+ async function ensureNodeKeys(stateDir, headId, nodeIndex, network, provided) {
249
+ const hp = (0, shared_1.headPaths)(stateDir, headId);
250
+ await (0, promises_1.mkdir)(hp.keys, { recursive: true });
251
+ const paths = hp.nodeKeys(nodeIndex);
252
+ const allExist = (0, node_fs_1.existsSync)(paths.hydraSk) &&
253
+ (0, node_fs_1.existsSync)(paths.hydraVk) &&
254
+ (0, node_fs_1.existsSync)(paths.cardanoSk) &&
255
+ (0, node_fs_1.existsSync)(paths.cardanoVk);
256
+ if (allExist) {
257
+ // Existing envelopes win over `provided`: this path also runs on every
258
+ // start, and re-importing there would change the address of a head that
259
+ // is already funded and possibly open.
260
+ const [hydraSk, hydraVk, cardanoSk, cardanoVk] = (await Promise.all([
261
+ (0, promises_1.readFile)(paths.hydraSk, 'utf8'),
262
+ (0, promises_1.readFile)(paths.hydraVk, 'utf8'),
263
+ (0, promises_1.readFile)(paths.cardanoSk, 'utf8'),
264
+ (0, promises_1.readFile)(paths.cardanoVk, 'utf8'),
265
+ ]));
266
+ const parsed = {
267
+ hydraSk: JSON.parse(hydraSk),
268
+ hydraVk: JSON.parse(hydraVk),
269
+ cardanoSk: JSON.parse(cardanoSk),
270
+ cardanoVk: JSON.parse(cardanoVk),
271
+ };
272
+ return {
273
+ ...parsed,
274
+ cardanoAddress: addressFromVkeyEnvelope(parsed.cardanoVk, network),
275
+ nodeIndex,
276
+ paths: paths,
277
+ };
278
+ }
279
+ const keys = generateNodeKeys(network, provided);
280
+ await Promise.all([
281
+ writeJson(paths.hydraSk, keys.hydraSk),
282
+ writeJson(paths.hydraVk, keys.hydraVk),
283
+ writeJson(paths.cardanoSk, keys.cardanoSk),
284
+ writeJson(paths.cardanoVk, keys.cardanoVk),
285
+ ]);
286
+ return { ...keys, nodeIndex, paths: paths };
287
+ }
288
+ async function removeNodeKeys(stateDir, headId, nodeIndex) {
289
+ const paths = (0, shared_1.headPaths)(stateDir, headId).nodeKeys(nodeIndex);
290
+ await Promise.all(Object.values(paths).map(p => (0, promises_1.rm)(p, { force: true })));
291
+ }
292
+ async function writeJson(path, value) {
293
+ // Keys are secrets: 0600 so only the control-plane user can read them.
294
+ await (0, promises_1.writeFile)(path, JSON.stringify(value, null, 2) + '\n', { encoding: 'utf8', mode: 0o600 });
295
+ }
296
+ /** Network magic argument pair for hydra-node / cardano-cli. */
297
+ function networkArgs(network) {
298
+ const magic = shared_1.NETWORK_MAGIC[network];
299
+ return magic === null ? ['--mainnet'] : ['--testnet-magic', String(magic)];
300
+ }
301
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/hydra/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var NodeMonitorService_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NodeMonitorService = void 0;
11
+ /**
12
+ * Live node state, held open rather than sampled.
13
+ *
14
+ * The status a head reported used to come from a short-lived WebSocket opened
15
+ * per request, which read the `Greetings` frame and closed. That is enough to
16
+ * answer "is this node up", and nothing else — and it produced two wrong
17
+ * answers that this service exists to fix:
18
+ *
19
+ * 1. **A peer dropping out is invisible to a sampler.** hydra-node announces it
20
+ * as a `PeerDisconnected` / `NetworkDisconnected` EVENT. It is not part of
21
+ * `Greetings`, and it is not in `GET /head` either — a head whose peer died
22
+ * still reports `Open`, because losing a peer is a connectivity fact, not a
23
+ * protocol state change. A connection opened after the fact sees none of it.
24
+ * Verified against hydra-node 2.3.0: killing one node of a two-node head
25
+ * leaves `GET /head` answering `Open` indefinitely while the survivor emits
26
+ * `NetworkDisconnected` every few seconds.
27
+ * 2. **`connectedPeers` is gone from `Greetings` in 2.x.** The old probe read
28
+ * it and reported `undefined` on every modern node, so peer counts silently
29
+ * stopped working after the version bump.
30
+ *
31
+ * So the control-plane keeps ONE connection per running node, folds every frame
32
+ * into a small state record, and answers status requests from memory. That also
33
+ * takes the per-request WebSocket handshake off the polling path.
34
+ *
35
+ * Connections are owned by node container name, which is unique and derived, so
36
+ * adopting the nodes of a head after a control-plane restart needs nothing but
37
+ * the DB rows.
38
+ */
39
+ const common_1 = require("@nestjs/common");
40
+ const bridge_1 = require("@hydra-sdk/bridge");
41
+ const ws_client_1 = require("./ws-client");
42
+ function emptyState() {
43
+ return {
44
+ connected: false,
45
+ hydraState: 'UNKNOWN',
46
+ headId: null,
47
+ version: null,
48
+ chainSynced: null,
49
+ networkConnected: null,
50
+ peersDown: new Set(),
51
+ snapshotUtxoCount: null,
52
+ lastMessageAt: null,
53
+ lastError: null,
54
+ };
55
+ }
56
+ let NodeMonitorService = NodeMonitorService_1 = class NodeMonitorService {
57
+ logger = new common_1.Logger(NodeMonitorService_1.name);
58
+ watched = new Map();
59
+ /**
60
+ * Start (or keep) a connection to a node.
61
+ *
62
+ * Idempotent by container name: reconciliation calls this for every running
63
+ * node on every pass, and a second call for an already-watched node must
64
+ * not churn the connection.
65
+ */
66
+ watch(name, apiPort) {
67
+ const existing = this.watched.get(name);
68
+ if (existing) {
69
+ // A port change means the row was rebuilt underneath us; drop the
70
+ // stale connection rather than reporting another node's state.
71
+ if (existing.port === apiPort)
72
+ return;
73
+ this.unwatch(name);
74
+ }
75
+ const state = emptyState();
76
+ const bridge = new bridge_1.HydraBridge({
77
+ url: `ws://127.0.0.1:${apiPort}`,
78
+ /**
79
+ * history=no: a long-running head's log replays thousands of frames
80
+ * on every connect, and the monitor only cares about what is true
81
+ * now. The cost is that we never see the peer connections that
82
+ * predate us, which is exactly why state tracks departures rather
83
+ * than membership — see `peersDown` in NodeRuntimeState.
84
+ *
85
+ * noSnapshotUtxo=false so the first Greetings seeds a UTxO count
86
+ * without a separate HTTP round trip.
87
+ */
88
+ history: false,
89
+ noSnapshotUtxo: false,
90
+ // The node is a container we manage; if it restarts, reconnect
91
+ // rather than leaving a permanently dead entry behind.
92
+ autoReconnect: true,
93
+ reconnectInterval: 3000,
94
+ maxReconnectAttempts: 0,
95
+ });
96
+ bridge.events.on('onConnected', () => {
97
+ state.connected = true;
98
+ state.lastError = null;
99
+ });
100
+ bridge.events.on('onDisconnected', () => {
101
+ state.connected = false;
102
+ /**
103
+ * Everything below was true of a node we can no longer hear from.
104
+ * Keeping the last known Hydra state would let a dead node keep
105
+ * reporting OPEN, which is the failure this service exists to stop.
106
+ */
107
+ state.hydraState = 'UNKNOWN';
108
+ state.networkConnected = null;
109
+ state.peersDown.clear();
110
+ });
111
+ bridge.events.on('onConnectError', (err) => {
112
+ state.connected = false;
113
+ state.lastError = (0, ws_client_1.describeConnectError)(err);
114
+ });
115
+ bridge.events.on('onMessage', (payload) => {
116
+ state.lastMessageAt = new Date().toISOString();
117
+ this.fold(state, payload);
118
+ });
119
+ this.watched.set(name, { bridge, state, port: apiPort });
120
+ // connect() rejects when the node is not up yet; autoReconnect keeps
121
+ // trying, so a failure here is not fatal and must not throw into the
122
+ // caller's reconciliation pass.
123
+ void bridge.connect().catch((err) => {
124
+ state.lastError = (0, ws_client_1.describeConnectError)(err);
125
+ });
126
+ this.logger.debug(`watching ${name} on :${apiPort}`);
127
+ }
128
+ /** Fold one frame into the node's state. */
129
+ fold(state, payload) {
130
+ const tag = String(payload.tag ?? '');
131
+ switch (tag) {
132
+ case 'Greetings': {
133
+ state.hydraState = (0, ws_client_1.toHydraState)(payload.headStatus);
134
+ state.headId = typeof payload.hydraHeadId === 'string' ? payload.hydraHeadId : null;
135
+ state.version = typeof payload.hydraNodeVersion === 'string' ? payload.hydraNodeVersion : null;
136
+ const synced = payload.chainSyncedStatus;
137
+ state.chainSynced = synced === 'InSync' || synced === 'CatchingUp' ? synced : null;
138
+ const utxo = payload.snapshotUtxo;
139
+ if (utxo)
140
+ state.snapshotUtxoCount = Object.keys(utxo).length;
141
+ /**
142
+ * Greetings carries the head's CONFIGURED parties, not its
143
+ * connected ones, so it can say nothing about who is reachable.
144
+ * A node that is greeting us has a working API, though — treat
145
+ * its network as up until it says otherwise.
146
+ */
147
+ if (state.networkConnected === null)
148
+ state.networkConnected = true;
149
+ break;
150
+ }
151
+ // The head's own protocol state. Kept in step with Greetings so a
152
+ // head that opens or closes while we are connected is not stale
153
+ // until the next reconnect.
154
+ case 'HeadIsOpen':
155
+ state.hydraState = 'OPEN';
156
+ break;
157
+ case 'HeadIsClosed':
158
+ state.hydraState = 'CLOSED';
159
+ break;
160
+ case 'ReadyToFanout':
161
+ state.hydraState = 'FANOUT_POSSIBLE';
162
+ break;
163
+ case 'HeadPartiallyFannedOut':
164
+ state.hydraState = 'FANNING_OUT';
165
+ break;
166
+ case 'HeadIsFinalized':
167
+ state.hydraState = 'FINAL';
168
+ break;
169
+ case 'HeadIsAborted':
170
+ state.hydraState = 'IDLE';
171
+ break;
172
+ // Connectivity. This is the part no snapshot of the head can give
173
+ // us — see the note at the top of the file.
174
+ case 'PeerConnected':
175
+ // A peer coming back clears it; one we never saw leave is a
176
+ // no-op, which is correct — see peersDown.
177
+ if (typeof payload.peer === 'string')
178
+ state.peersDown.delete(payload.peer);
179
+ break;
180
+ case 'PeerDisconnected':
181
+ if (typeof payload.peer === 'string')
182
+ state.peersDown.add(payload.peer);
183
+ break;
184
+ case 'NetworkConnected':
185
+ state.networkConnected = true;
186
+ break;
187
+ case 'NetworkDisconnected':
188
+ state.networkConnected = false;
189
+ break;
190
+ // Chain sync, which on the Blockfrost backend is the difference
191
+ // between a head that signs snapshots and one that refuses input.
192
+ case 'NodeSynced':
193
+ state.chainSynced = 'InSync';
194
+ break;
195
+ case 'NodeUnsynced':
196
+ state.chainSynced = 'CatchingUp';
197
+ break;
198
+ case 'SyncedStatusReport': {
199
+ const synced = payload.synced;
200
+ if (synced === 'InSync' || synced === 'CatchingUp')
201
+ state.chainSynced = synced;
202
+ break;
203
+ }
204
+ case 'SnapshotConfirmed': {
205
+ const snapshot = payload.snapshot;
206
+ if (snapshot?.utxo)
207
+ state.snapshotUtxoCount = Object.keys(snapshot.utxo).length;
208
+ break;
209
+ }
210
+ default:
211
+ break;
212
+ }
213
+ }
214
+ /** Drop the connection to a node we no longer expect to be up. */
215
+ unwatch(name) {
216
+ const entry = this.watched.get(name);
217
+ if (!entry)
218
+ return;
219
+ this.watched.delete(name);
220
+ // Best-effort: a node whose container is already gone will reject here,
221
+ // and there is nothing useful to do about it.
222
+ void Promise.resolve(entry.bridge.disconnect()).catch(() => undefined);
223
+ this.logger.debug(`stopped watching ${name}`);
224
+ }
225
+ unwatchAll(names) {
226
+ for (const name of names)
227
+ this.unwatch(name);
228
+ }
229
+ /** Current folded state, or undefined when this node is not being watched. */
230
+ stateFor(name) {
231
+ return this.watched.get(name)?.state;
232
+ }
233
+ isWatching(name) {
234
+ return this.watched.has(name);
235
+ }
236
+ /**
237
+ * The head's own view of itself, straight from `GET /head`.
238
+ *
239
+ * Authoritative for the protocol state — and deliberately NOT for
240
+ * connectivity, which it cannot see: a head whose peer just died still
241
+ * answers `Open`. Used as a cross-check on the folded WebSocket state, so a
242
+ * missed frame cannot leave the head reporting the wrong phase forever.
243
+ */
244
+ async headInfo(name) {
245
+ const entry = this.watched.get(name);
246
+ if (!entry)
247
+ return null;
248
+ try {
249
+ const info = await entry.bridge.headInfo();
250
+ return { headId: info.headId, headStatus: String(info.headStatus) };
251
+ }
252
+ catch {
253
+ return null;
254
+ }
255
+ }
256
+ onModuleDestroy() {
257
+ for (const name of [...this.watched.keys()])
258
+ this.unwatch(name);
259
+ }
260
+ };
261
+ exports.NodeMonitorService = NodeMonitorService;
262
+ exports.NodeMonitorService = NodeMonitorService = NodeMonitorService_1 = __decorate([
263
+ (0, common_1.Injectable)()
264
+ ], NodeMonitorService);
265
+ //# sourceMappingURL=node-monitor.service.js.map