@agoric/deploy-script-support 0.10.4-dev-eb7e9eb.0 → 0.10.4-u11.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/CHANGELOG.md ADDED
@@ -0,0 +1,546 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ### [0.10.4-u11.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.3...@agoric/deploy-script-support@0.10.4-u11.0) (2023-08-24)
7
+
8
+ **Note:** Version bump only for package @agoric/deploy-script-support
9
+
10
+
11
+
12
+
13
+
14
+ ### [0.10.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.2...@agoric/deploy-script-support@0.10.3) (2023-06-09)
15
+
16
+ **Note:** Version bump only for package @agoric/deploy-script-support
17
+
18
+
19
+
20
+
21
+
22
+ ### [0.10.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.1...@agoric/deploy-script-support@0.10.2) (2023-06-02)
23
+
24
+ **Note:** Version bump only for package @agoric/deploy-script-support
25
+
26
+
27
+
28
+
29
+
30
+ ### [0.10.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.0...@agoric/deploy-script-support@0.10.1) (2023-05-24)
31
+
32
+ **Note:** Version bump only for package @agoric/deploy-script-support
33
+
34
+
35
+
36
+
37
+
38
+ ## [0.10.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.4...@agoric/deploy-script-support@0.10.0) (2023-05-19)
39
+
40
+
41
+ ### Features
42
+
43
+ * **core-proposals:** use bundle hash for label ([2eec093](https://github.com/Agoric/agoric-sdk/commit/2eec0939bd87bfcc48634ab75e2ba830cdb321e3))
44
+ * **deploy-script-support:** Publish bundles to chain if possible ([e8209da](https://github.com/Agoric/agoric-sdk/commit/e8209daec69fc6fd60f5d865cf29271eb106a995))
45
+ * **deploy-script-support:** reenable for `agoric run init-core.js` without `ag-solo` ([2b2bc96](https://github.com/Agoric/agoric-sdk/commit/2b2bc96780b00d9c964dba6e6c5de36acd4a83c6))
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * **deploy-script-support:** avoid pulling in notifiers ([#7522](https://github.com/Agoric/agoric-sdk/issues/7522)) ([c73675d](https://github.com/Agoric/agoric-sdk/commit/c73675dad025b6600f0eafe9f8e768086e50b626))
51
+ * **deploy-script-support:** update permits for `vatAdminSvc` ([73fef25](https://github.com/Agoric/agoric-sdk/commit/73fef256ab9abda1bda7e0619e8eee08c19f8883))
52
+ * avoid using top-level `require` ([57ca2db](https://github.com/Agoric/agoric-sdk/commit/57ca2dbfbadb373f97d43b2fb4e90302c9149976))
53
+ * change manifestInstallRef to manifestBundleRef ([4b87694](https://github.com/Agoric/agoric-sdk/commit/4b8769494eec1ce6bb5beda295389e8b982a9f37))
54
+ * remove unused overridded restoreRef, fix default version ([7f1cd48](https://github.com/Agoric/agoric-sdk/commit/7f1cd488e2aa7f89473b2187016f7f0dcbc989e8))
55
+ * rename makeEnactCoreProposalsFromBundleName to ..BundleRef ([7403f06](https://github.com/Agoric/agoric-sdk/commit/7403f06f58f0f50ecd154ad076a0a82317f3018b))
56
+ * replace unsafe then with E.when ([#6684](https://github.com/Agoric/agoric-sdk/issues/6684)) ([d7a749e](https://github.com/Agoric/agoric-sdk/commit/d7a749eec4ddec9ba39bbc65434f03ec113cae7c))
57
+ * replace zoe.install with zoe.installBundleID ([8a91b1b](https://github.com/Agoric/agoric-sdk/commit/8a91b1b06bf1a62c08156e595cf46f5194f73337)), closes [#6826](https://github.com/Agoric/agoric-sdk/issues/6826)
58
+ * **deploy-script-support:** Use versioned bundleSource ([41af48e](https://github.com/Agoric/agoric-sdk/commit/41af48e0d44e0615a53d5e3fe9f019895a58f96d))
59
+
60
+
61
+
62
+ ### [0.9.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.5...@agoric/deploy-script-support@0.9.6) (2023-02-17)
63
+
64
+ **Note:** Version bump only for package @agoric/deploy-script-support
65
+
66
+
67
+
68
+
69
+
70
+ ### [0.9.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.4...@agoric/deploy-script-support@0.9.5) (2022-12-14)
71
+
72
+ **Note:** Version bump only for package @agoric/deploy-script-support
73
+
74
+
75
+
76
+
77
+
78
+ ### [0.9.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.3...@agoric/deploy-script-support@0.9.4) (2022-10-18)
79
+
80
+ **Note:** Version bump only for package @agoric/deploy-script-support
81
+
82
+
83
+
84
+
85
+
86
+ ### [0.9.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.2...@agoric/deploy-script-support@0.9.3) (2022-10-08)
87
+
88
+ **Note:** Version bump only for package @agoric/deploy-script-support
89
+
90
+
91
+
92
+
93
+
94
+ ### [0.9.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.1...@agoric/deploy-script-support@0.9.2) (2022-10-05)
95
+
96
+ **Note:** Version bump only for package @agoric/deploy-script-support
97
+
98
+
99
+
100
+
101
+
102
+ ### [0.9.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.9.0...@agoric/deploy-script-support@0.9.1) (2022-09-20)
103
+
104
+
105
+ ### Bug Fixes
106
+
107
+ * Use new `||` assert style, but when TS confused use `if` instead ([#6174](https://github.com/Agoric/agoric-sdk/issues/6174)) ([94625d3](https://github.com/Agoric/agoric-sdk/commit/94625d38c3bb5333b00a69dd3086b1ac13490f62))
108
+ * **deploy-script-helpers:** Update core proposal behavior test ([abeb52e](https://github.com/Agoric/agoric-sdk/commit/abeb52e6bd121d508b72662135926a1b405fc9c3))
109
+
110
+
111
+
112
+ ## [0.9.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.8.0...@agoric/deploy-script-support@0.9.0) (2022-05-28)
113
+
114
+
115
+ ### ⚠ BREAKING CHANGES
116
+
117
+ * **extract-proposal:** insist on an explicit `entrypoint`
118
+
119
+ ### Features
120
+
121
+ * **core-proposal:** provide an `overrideManifest` to make the manifest explicit ([6557ecf](https://github.com/Agoric/agoric-sdk/commit/6557ecfb965fd668cf9538132e63a0419b86bd54))
122
+ * **extract-proposal:** allow specifying module, entrypoint, args ([af712eb](https://github.com/Agoric/agoric-sdk/commit/af712eb979483e14bae765a018911b018d76b973))
123
+
124
+
125
+ ### Bug Fixes
126
+
127
+ * **extract-proposal:** insist on an explicit `entrypoint` ([02df38b](https://github.com/Agoric/agoric-sdk/commit/02df38b8a5ef96a78fd6ff7f5c20ffcdba161038))
128
+
129
+
130
+
131
+ ## [0.8.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.7.0...@agoric/deploy-script-support@0.8.0) (2022-05-09)
132
+
133
+
134
+ ### Features
135
+
136
+ * **deploy-script-support:** persist option for installInPieces ([8241a0e](https://github.com/Agoric/agoric-sdk/commit/8241a0e0977a1ef2bbfd7e68197cb969bc80e1f1))
137
+
138
+
139
+ ### Bug Fixes
140
+
141
+ * **deploy-script-support:** permit agoricNamesAdmin for installation ([49b5e89](https://github.com/Agoric/agoric-sdk/commit/49b5e89e287b9f5e8ccc5cb7c26dea53c09c42de))
142
+ * **extract-proposal:** avoid reiterating bundleHandles ([9a0886d](https://github.com/Agoric/agoric-sdk/commit/9a0886d7d96699cf5698bbe81820626e3ee8c64b))
143
+ * **extract-proposal:** coreProposal source paths were leaked onto the chain ([acc6672](https://github.com/Agoric/agoric-sdk/commit/acc66729cfa8459ef549b96f6fbeed1d55a4be3f))
144
+
145
+
146
+
147
+ ## [0.7.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.6.3...@agoric/deploy-script-support@0.7.0) (2022-04-18)
148
+
149
+
150
+ ### ⚠ BREAKING CHANGES
151
+
152
+ * consistent Node engine requirement (>=14.15.0)
153
+
154
+ ### Features
155
+
156
+ * **build-bundles:** create source bundles with helper ([732292a](https://github.com/Agoric/agoric-sdk/commit/732292acf817ab774dea3d15209c0b5a2b2e326d))
157
+ * **deploy-script-support:** `getBundlerMaker` helper ([542786d](https://github.com/Agoric/agoric-sdk/commit/542786dfc7ef67ed718d8f1548d13dd45dbfc34f))
158
+ * **deploy-script-support:** `installInPieces` interim implementation ([3db8233](https://github.com/Agoric/agoric-sdk/commit/3db823391f39d23e4dc42d8ca256bf9fa28466e7))
159
+ * **deploy-script-support:** first cut at `writeCoreProposal` ([6129b38](https://github.com/Agoric/agoric-sdk/commit/6129b38201f80a4e195d4675981e693c06c8c547))
160
+ * **deploy-script-support:** more `createBundles` work ([009b49f](https://github.com/Agoric/agoric-sdk/commit/009b49fc133ca9f6740bdebaec9baf7c549aec1f))
161
+ * **deploy-script-support:** shell out to `bundle-source` ([18e8c88](https://github.com/Agoric/agoric-sdk/commit/18e8c88223da0f4ef6998e0bc0e39a7979dd317b))
162
+ * **deploy-script-suppport:** e2e `writeCoreProposal` ([88a0cf7](https://github.com/Agoric/agoric-sdk/commit/88a0cf70c9078f0e9e2c46a6cc30bcb736e6e379))
163
+ * implement the durable kind API ([56bad98](https://github.com/Agoric/agoric-sdk/commit/56bad985275787d18c34ac14b377a4d0348d699b)), closes [#4495](https://github.com/Agoric/agoric-sdk/issues/4495)
164
+
165
+
166
+ ### Bug Fixes
167
+
168
+ * **deploy-script-support:** `makeEnactCoreProposals` for bootstrap ([cbff644](https://github.com/Agoric/agoric-sdk/commit/cbff644eb379fd61f38a64cd09140439551a6e80))
169
+ * **writeCoreProposal:** linearize the `installInPieces` calls ([a92a22a](https://github.com/Agoric/agoric-sdk/commit/a92a22a124e5cf18b677b3067bc59aa508e9d5f1))
170
+ * **writeCoreProposal:** merge permits and less ambient authority ([f34f7b7](https://github.com/Agoric/agoric-sdk/commit/f34f7b72aa2827e0f12ba46a8500d3b259c910f9))
171
+
172
+
173
+ ### Miscellaneous Chores
174
+
175
+ * consistent Node engine requirement (>=14.15.0) ([ddc40fa](https://github.com/Agoric/agoric-sdk/commit/ddc40fa525f845ed900512c38b99f01458a3d131))
176
+
177
+
178
+
179
+ ### [0.6.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.6.2...@agoric/deploy-script-support@0.6.3) (2022-02-24)
180
+
181
+
182
+ ### Features
183
+
184
+ * overhaul the virtual object API ([e40674b](https://github.com/Agoric/agoric-sdk/commit/e40674b0b19f29adde2f5e6a460bafb7340d42b6)), closes [#4606](https://github.com/Agoric/agoric-sdk/issues/4606)
185
+
186
+
187
+
188
+ ### [0.6.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.6.1...@agoric/deploy-script-support@0.6.2) (2022-02-21)
189
+
190
+
191
+ ### Features
192
+
193
+ * implement persistent stores ([e1050b0](https://github.com/Agoric/agoric-sdk/commit/e1050b010e095b23547a38d48a12e5c8841a7466))
194
+
195
+
196
+ ### Bug Fixes
197
+
198
+ * Enhance TypeScript node_modules traversal depth ([000f738](https://github.com/Agoric/agoric-sdk/commit/000f73850d46dc7272b2399c06ad774dd3b8fe6e))
199
+
200
+
201
+
202
+ ### [0.6.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.6.0...@agoric/deploy-script-support@0.6.1) (2021-12-22)
203
+
204
+ **Note:** Version bump only for package @agoric/deploy-script-support
205
+
206
+
207
+
208
+
209
+
210
+ ## [0.6.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.5...@agoric/deploy-script-support@0.6.0) (2021-12-02)
211
+
212
+
213
+ ### ⚠ BREAKING CHANGES
214
+
215
+ * **ERTP:** NatValues now only accept bigints, lower-case amountMath is removed, and AmountMath methods always follow the order of: brand, value
216
+
217
+ * chore: fix up INPUT_VALIDATON.md
218
+
219
+ * chore: address PR comments
220
+
221
+ ### Miscellaneous Chores
222
+
223
+ * **ERTP:** additional input validation and clean up ([#3892](https://github.com/Agoric/agoric-sdk/issues/3892)) ([067ea32](https://github.com/Agoric/agoric-sdk/commit/067ea32b069596202d7f8e7c5e09d5ea7821f6b2))
224
+
225
+
226
+
227
+ ### [0.5.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.4...@agoric/deploy-script-support@0.5.5) (2021-10-13)
228
+
229
+ **Note:** Version bump only for package @agoric/deploy-script-support
230
+
231
+
232
+
233
+
234
+
235
+ ### [0.5.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.3...@agoric/deploy-script-support@0.5.4) (2021-09-23)
236
+
237
+ **Note:** Version bump only for package @agoric/deploy-script-support
238
+
239
+
240
+
241
+
242
+
243
+ ### [0.5.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.2...@agoric/deploy-script-support@0.5.3) (2021-09-15)
244
+
245
+ **Note:** Version bump only for package @agoric/deploy-script-support
246
+
247
+
248
+
249
+
250
+
251
+ ### [0.5.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.1...@agoric/deploy-script-support@0.5.2) (2021-08-21)
252
+
253
+ **Note:** Version bump only for package @agoric/deploy-script-support
254
+
255
+
256
+
257
+
258
+
259
+ ### [0.5.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.5.0...@agoric/deploy-script-support@0.5.1) (2021-08-18)
260
+
261
+ **Note:** Version bump only for package @agoric/deploy-script-support
262
+
263
+
264
+
265
+
266
+
267
+ ## [0.5.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.4.1...@agoric/deploy-script-support@0.5.0) (2021-08-17)
268
+
269
+
270
+ ### ⚠ BREAKING CHANGES
271
+
272
+ * make the run mint within Zoe, and give only the treasury the ability to create a ZCFMint with it
273
+
274
+ * chore: change 'makeZoe' to 'makeZoeKit'
275
+
276
+ * chore: add "shutdownZoeVat" argument to Zoe, and pass it to `makeIssuerKit` for invitation issuerKit and fee issuerKit
277
+
278
+ * chore: manually lint-fix install-on-chain.js
279
+
280
+ See https://github.com/Agoric/agoric-sdk/issues/3672 for the issue to fix the root problem
281
+
282
+ * BREAKING CHANGE: create the RUN Mint within Zoe (#3647) ([48762aa](https://github.com/Agoric/agoric-sdk/commit/48762aa83a30eaa0a14b2fd87777456758594262)), closes [#3647](https://github.com/Agoric/agoric-sdk/issues/3647)
283
+
284
+
285
+
286
+ ### [0.4.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.4.0...@agoric/deploy-script-support@0.4.1) (2021-08-16)
287
+
288
+ **Note:** Version bump only for package @agoric/deploy-script-support
289
+
290
+
291
+
292
+
293
+
294
+ ## [0.4.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.18...@agoric/deploy-script-support@0.4.0) (2021-08-15)
295
+
296
+
297
+ ### ⚠ BREAKING CHANGES
298
+
299
+ * **deploy-script-support:** Convert RESM to NESM (breaking)
300
+
301
+ ### Code Refactoring
302
+
303
+ * **deploy-script-support:** Convert RESM to NESM (breaking) ([0d59ac2](https://github.com/Agoric/agoric-sdk/commit/0d59ac2a1f748d8e3cc87b8cbb221b0188d729cc))
304
+
305
+ ### 0.26.10 (2021-07-28)
306
+
307
+
308
+
309
+ ## [0.3.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.18...@agoric/deploy-script-support@0.3.0) (2021-08-14)
310
+
311
+
312
+ ### ⚠ BREAKING CHANGES
313
+
314
+ * **deploy-script-support:** Convert RESM to NESM (breaking)
315
+
316
+ ### Code Refactoring
317
+
318
+ * **deploy-script-support:** Convert RESM to NESM (breaking) ([0d59ac2](https://github.com/Agoric/agoric-sdk/commit/0d59ac2a1f748d8e3cc87b8cbb221b0188d729cc))
319
+
320
+ ### 0.26.10 (2021-07-28)
321
+
322
+
323
+
324
+ ### [0.2.19](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.18...@agoric/deploy-script-support@0.2.19) (2021-07-28)
325
+
326
+ **Note:** Version bump only for package @agoric/deploy-script-support
327
+
328
+
329
+
330
+
331
+
332
+ ### [0.2.18](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.17...@agoric/deploy-script-support@0.2.18) (2021-07-01)
333
+
334
+ **Note:** Version bump only for package @agoric/deploy-script-support
335
+
336
+
337
+
338
+
339
+
340
+ ### [0.2.17](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.16...@agoric/deploy-script-support@0.2.17) (2021-07-01)
341
+
342
+ **Note:** Version bump only for package @agoric/deploy-script-support
343
+
344
+
345
+
346
+
347
+
348
+ ### [0.2.16](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.15...@agoric/deploy-script-support@0.2.16) (2021-06-28)
349
+
350
+ **Note:** Version bump only for package @agoric/deploy-script-support
351
+
352
+
353
+
354
+
355
+
356
+ ### [0.2.15](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.14...@agoric/deploy-script-support@0.2.15) (2021-06-25)
357
+
358
+ **Note:** Version bump only for package @agoric/deploy-script-support
359
+
360
+
361
+
362
+
363
+
364
+ ### [0.2.14](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.13...@agoric/deploy-script-support@0.2.14) (2021-06-24)
365
+
366
+ **Note:** Version bump only for package @agoric/deploy-script-support
367
+
368
+
369
+
370
+
371
+
372
+ ### [0.2.13](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.12...@agoric/deploy-script-support@0.2.13) (2021-06-24)
373
+
374
+ **Note:** Version bump only for package @agoric/deploy-script-support
375
+
376
+
377
+
378
+
379
+
380
+ ### [0.2.12](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.11...@agoric/deploy-script-support@0.2.12) (2021-06-23)
381
+
382
+
383
+ ### Bug Fixes
384
+
385
+ * **deploy-script-support:** Relax constraint on repository clone path ([6ec7a4d](https://github.com/Agoric/agoric-sdk/commit/6ec7a4d440cb60a54dbcd86c5e359bac1689e672))
386
+
387
+
388
+
389
+ ### [0.2.11](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.10...@agoric/deploy-script-support@0.2.11) (2021-06-16)
390
+
391
+ **Note:** Version bump only for package @agoric/deploy-script-support
392
+
393
+
394
+
395
+
396
+
397
+ ### [0.2.10](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.9...@agoric/deploy-script-support@0.2.10) (2021-06-15)
398
+
399
+
400
+ ### Bug Fixes
401
+
402
+ * Pin ESM to forked version ([54dbb55](https://github.com/Agoric/agoric-sdk/commit/54dbb55d64d7ff7adb395bc4bd9d1461dd2d3c17))
403
+
404
+
405
+
406
+ ## [0.2.9](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.8...@agoric/deploy-script-support@0.2.9) (2021-05-10)
407
+
408
+ **Note:** Version bump only for package @agoric/deploy-script-support
409
+
410
+
411
+
412
+
413
+
414
+ ## [0.2.8](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.7...@agoric/deploy-script-support@0.2.8) (2021-05-05)
415
+
416
+ **Note:** Version bump only for package @agoric/deploy-script-support
417
+
418
+
419
+
420
+
421
+
422
+ ## [0.2.7](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.6...@agoric/deploy-script-support@0.2.7) (2021-05-05)
423
+
424
+
425
+ ### Bug Fixes
426
+
427
+ * **deploy-script-support:** update to new vats package ([9de6ed1](https://github.com/Agoric/agoric-sdk/commit/9de6ed12dca1346912bb3255bbb48601ac09693e))
428
+ * settle REMOTE_STYLE name ([#2900](https://github.com/Agoric/agoric-sdk/issues/2900)) ([3dc6638](https://github.com/Agoric/agoric-sdk/commit/3dc66385b85cb3e8a1056b8d6e64cd3e448c041f))
429
+
430
+
431
+
432
+
433
+
434
+ ## [0.2.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.5...@agoric/deploy-script-support@0.2.6) (2021-04-22)
435
+
436
+ **Note:** Version bump only for package @agoric/deploy-script-support
437
+
438
+
439
+
440
+
441
+
442
+ ## [0.2.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.4...@agoric/deploy-script-support@0.2.5) (2021-04-18)
443
+
444
+ **Note:** Version bump only for package @agoric/deploy-script-support
445
+
446
+
447
+
448
+
449
+
450
+ ## [0.2.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.3...@agoric/deploy-script-support@0.2.4) (2021-04-16)
451
+
452
+ **Note:** Version bump only for package @agoric/deploy-script-support
453
+
454
+
455
+
456
+
457
+
458
+ ## [0.2.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.2...@agoric/deploy-script-support@0.2.3) (2021-04-14)
459
+
460
+ **Note:** Version bump only for package @agoric/deploy-script-support
461
+
462
+
463
+
464
+
465
+
466
+ ## [0.2.2](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.1...@agoric/deploy-script-support@0.2.2) (2021-04-13)
467
+
468
+ **Note:** Version bump only for package @agoric/deploy-script-support
469
+
470
+
471
+
472
+
473
+
474
+ ## [0.2.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.2.0...@agoric/deploy-script-support@0.2.1) (2021-04-07)
475
+
476
+ **Note:** Version bump only for package @agoric/deploy-script-support
477
+
478
+
479
+
480
+
481
+
482
+ # [0.2.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.1.1...@agoric/deploy-script-support@0.2.0) (2021-04-06)
483
+
484
+
485
+ ### Bug Fixes
486
+
487
+ * Many more tests use ses-ava ([#2733](https://github.com/Agoric/agoric-sdk/issues/2733)) ([d1e0f0f](https://github.com/Agoric/agoric-sdk/commit/d1e0f0fef8251f014b96ca7f3975efd37e1925f8))
488
+ * update to depend on ses 0.12.5 ([#2718](https://github.com/Agoric/agoric-sdk/issues/2718)) ([08dbe0d](https://github.com/Agoric/agoric-sdk/commit/08dbe0db5ce06944dc92c710865e441a60b31b5b))
489
+ * use ses-ava in SwingSet where possible ([#2709](https://github.com/Agoric/agoric-sdk/issues/2709)) ([85b674e](https://github.com/Agoric/agoric-sdk/commit/85b674e7942443219fa9828841cc7bd8ef909b47))
490
+
491
+
492
+ ### Features
493
+
494
+ * more logging for deploy helpers ([#2744](https://github.com/Agoric/agoric-sdk/issues/2744)) ([fe459fb](https://github.com/Agoric/agoric-sdk/commit/fe459fb6bd47638a2c3cb72c1150762fcce844c8))
495
+
496
+
497
+
498
+
499
+
500
+ ## [0.1.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.1.0...@agoric/deploy-script-support@0.1.1) (2021-03-24)
501
+
502
+
503
+ ### Bug Fixes
504
+
505
+ * deploy-script-support tests ([#2677](https://github.com/Agoric/agoric-sdk/issues/2677)) ([0d1b1de](https://github.com/Agoric/agoric-sdk/commit/0d1b1deaffba124457ab50377e781b2185cc3098))
506
+
507
+
508
+
509
+
510
+
511
+ # [0.1.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.0.3...@agoric/deploy-script-support@0.1.0) (2021-03-16)
512
+
513
+
514
+ ### Bug Fixes
515
+
516
+ * make separate 'test:xs' target, remove XS from 'test' target ([b9c1a69](https://github.com/Agoric/agoric-sdk/commit/b9c1a6987093fc8e09e8aba7acd2a1618413bac8)), closes [#2647](https://github.com/Agoric/agoric-sdk/issues/2647)
517
+
518
+
519
+ ### Features
520
+
521
+ * add static amountMath. Backwards compatible with old amountMath ([#2561](https://github.com/Agoric/agoric-sdk/issues/2561)) ([1620307](https://github.com/Agoric/agoric-sdk/commit/1620307ee1b45033032617cc14dfabfb338b0dc2))
522
+
523
+
524
+
525
+
526
+
527
+ ## [0.0.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.0.2...@agoric/deploy-script-support@0.0.3) (2021-02-22)
528
+
529
+ **Note:** Version bump only for package @agoric/deploy-script-support
530
+
531
+
532
+
533
+
534
+
535
+ ## 0.0.2 (2021-02-16)
536
+
537
+
538
+ ### Bug Fixes
539
+
540
+ * review comments ([7db7e5c](https://github.com/Agoric/agoric-sdk/commit/7db7e5c4c569dfedff8d748dd58893218b0a2458))
541
+
542
+
543
+
544
+
545
+
546
+ # Change Log
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/deploy-script-support",
3
- "version": "0.10.4-dev-eb7e9eb.0+eb7e9eb",
3
+ "version": "0.10.4-u11.0",
4
4
  "description": "Helpers and other support for writing deploy scripts",
5
5
  "type": "module",
6
6
  "main": "src/helpers.js",
@@ -13,7 +13,7 @@
13
13
  "test:xs": "exit 0",
14
14
  "lint-fix": "yarn lint:eslint --fix",
15
15
  "lint:eslint": "eslint .",
16
- "lint:types": "tsc",
16
+ "lint:types": "tsc -p jsconfig.json",
17
17
  "lint": "run-s --continue-on-error lint:*"
18
18
  },
19
19
  "repository": {
@@ -34,26 +34,25 @@
34
34
  },
35
35
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
36
36
  "dependencies": {
37
- "@agoric/assert": "0.6.1-dev-eb7e9eb.0+eb7e9eb",
38
- "@agoric/ertp": "0.16.3-dev-eb7e9eb.0+eb7e9eb",
39
- "@agoric/import-manager": "0.3.12-dev-eb7e9eb.0+eb7e9eb",
40
- "@agoric/internal": "0.3.3-dev-eb7e9eb.0+eb7e9eb",
41
- "@agoric/notifier": "0.6.3-dev-eb7e9eb.0+eb7e9eb",
42
- "@agoric/store": "0.9.3-dev-eb7e9eb.0+eb7e9eb",
43
- "@agoric/time": "0.3.3-dev-eb7e9eb.0+eb7e9eb",
44
- "@agoric/zoe": "0.26.3-dev-eb7e9eb.0+eb7e9eb",
45
- "@endo/base64": "^0.2.32",
46
- "@endo/bundle-source": "^2.5.2",
47
- "@endo/far": "^0.2.19",
48
- "@endo/marshal": "^0.8.6",
49
- "@endo/nat": "^4.1.28",
50
- "@endo/promise-kit": "^0.2.57",
51
- "@endo/zip": "^0.2.32"
37
+ "@agoric/assert": "^0.6.0",
38
+ "@agoric/ertp": "^0.16.3-u11.0",
39
+ "@agoric/import-manager": "^0.3.12-u11.0",
40
+ "@agoric/internal": "^0.3.3-u11.0",
41
+ "@agoric/notifier": "^0.6.3-u11.0",
42
+ "@agoric/store": "^0.9.3-u11.0",
43
+ "@agoric/zoe": "^0.26.3-u11.0",
44
+ "@endo/base64": "^0.2.31",
45
+ "@endo/bundle-source": "^2.5.1",
46
+ "@endo/far": "^0.2.18",
47
+ "@endo/marshal": "^0.8.5",
48
+ "@endo/nat": "^4.1.27",
49
+ "@endo/promise-kit": "^0.2.56",
50
+ "@endo/zip": "^0.2.31"
52
51
  },
53
52
  "devDependencies": {
54
- "@agoric/vats": "0.15.2-dev-eb7e9eb.0+eb7e9eb",
55
- "@endo/init": "^0.5.57",
56
- "ava": "^5.3.0",
53
+ "@agoric/vats": "^0.15.2-u11.0",
54
+ "@endo/init": "^0.5.56",
55
+ "ava": "^5.2.0",
57
56
  "import-meta-resolve": "^2.2.1"
58
57
  },
59
58
  "files": [
@@ -69,5 +68,5 @@
69
68
  "publishConfig": {
70
69
  "access": "public"
71
70
  },
72
- "gitHead": "eb7e9ebe52e78052e5ded601b6658896d257cab4"
71
+ "gitHead": "92b6cd72484079b0349d8ccfa4510aeb820e8d67"
73
72
  }
@@ -24,12 +24,12 @@ export const permits = {
24
24
  * definitions.
25
25
  *
26
26
  * @param {object} opts
27
- * @param {import('./externalTypes.js').ManifestBundleRef} opts.manifestBundleRef
27
+ * @param {{ bundleName: string } | { bundleID: string }} opts.manifestBundleRef
28
28
  * @param {[string, ...unknown[]]} opts.getManifestCall
29
29
  * @param {Record<string, Record<string, unknown>>} [opts.overrideManifest]
30
30
  * @param {typeof import('@endo/far').E} opts.E
31
31
  * @param {(...args: unknown[]) => void} [opts.log]
32
- * @param {(ref: import('./externalTypes.js').ManifestBundleRef) => Promise<import('@agoric/zoe/src/zoeService/utils.js').Installation<unknown>>} [opts.restoreRef]
32
+ * @param {(ref: unknown) => Promise<unknown>} [opts.restoreRef]
33
33
  * @returns {(vatPowers: unknown) => Promise<unknown>}
34
34
  */
35
35
  export const makeCoreProposalBehavior = ({
@@ -70,15 +70,13 @@ export const makeCoreProposalBehavior = ({
70
70
  } = allPowers;
71
71
  const [exportedGetManifest, ...manifestArgs] = getManifestCall;
72
72
 
73
- /** @type {(ref: import('./externalTypes.js').ManifestBundleRef) => Promise<Installation<unknown>>} */
74
73
  const defaultRestoreRef = async ref => {
75
74
  // extract-proposal.js creates these records, and bundleName is
76
75
  // the name under which the bundle was installed into
77
76
  // config.bundles
78
- const p =
79
- 'bundleName' in ref
80
- ? E(vatAdminSvc).getBundleIDByName(ref.bundleName)
81
- : ref.bundleID;
77
+ const p = ref.bundleName
78
+ ? E(vatAdminSvc).getBundleIDByName(ref.bundleName)
79
+ : ref.bundleID;
82
80
  const bundleID = await p;
83
81
  const label = bundleID.slice(0, 8);
84
82
  return E(zoe).installBundleID(bundleID, label);
@@ -16,13 +16,14 @@ export {};
16
16
  */
17
17
 
18
18
  /**
19
- * @typedef {{ bundleName: string } | { bundleID: string} } ManifestBundleRef
19
+ * @typedef BundleHandle
20
+ * @property {string} [bundleName]
20
21
  */
21
22
 
22
23
  /**
23
24
  * @callback PublishBundleRef
24
- * @param {ERef<ManifestBundleRef>} bundle
25
- * @returns {Promise<ManifestBundleRef>}
25
+ * @param {ERef<BundleHandle>} bundle
26
+ * @returns {Promise<BundleHandle>}
26
27
  */
27
28
 
28
29
  /**
@@ -30,7 +31,7 @@ export {};
30
31
  * @param {string} srcSpec
31
32
  * @param {string} bundlePath
32
33
  * @param {any} [opts]
33
- * @returns {Promise<ManifestBundleRef>}
34
+ * @returns {BundleHandle}
34
35
  */
35
36
 
36
37
  /**
@@ -35,24 +35,6 @@ const pathResolve = (...paths) => {
35
35
  }
36
36
  };
37
37
 
38
- const findModule = (initDir, srcSpec) =>
39
- srcSpec.match(/^(\.\.?)?\//)
40
- ? pathResolve(initDir, srcSpec)
41
- : req.resolve(srcSpec);
42
-
43
- /**
44
- * @param {{ bundleID?: string, bundleName?: string }} handle - mutated then hardened
45
- * @param {string} sourceSpec - the specifier of a module to load
46
- * @param {number} sequence - the sequence number of the proposal
47
- * @param {string} piece - the piece of the proposal
48
- * @returns {Promise<[string, any]>}
49
- */
50
- const namedHandleToBundleSpec = async (handle, sourceSpec, sequence, piece) => {
51
- handle.bundleName = `coreProposal${sequence}_${piece}`;
52
- harden(handle);
53
- return harden([handle.bundleName, { sourceSpec }]);
54
- };
55
-
56
38
  /**
57
39
  * Format core proposals to be run at bootstrap:
58
40
  * SwingSet `bundles` configuration
@@ -67,28 +49,26 @@ const namedHandleToBundleSpec = async (handle, sourceSpec, sequence, piece) => {
67
49
  * @param {ConfigProposal[]} coreProposals - governance
68
50
  * proposals to run at chain bootstrap for scenarios such as sim-chain.
69
51
  * @param {FilePath} [dirname]
70
- * @param {object} [opts]
71
- * @param {typeof makeEnactCoreProposalsFromBundleRef} [opts.makeEnactCoreProposals]
72
- * @param {(i: number) => number} [opts.getSequenceForProposal]
73
- * @param {typeof namedHandleToBundleSpec} [opts.handleToBundleSpec]
52
+ * @param {typeof makeEnactCoreProposalsFromBundleRef} [makeEnactCoreProposals]
53
+ * @param {(i: number) => number} [getSequenceForProposal]
74
54
  */
75
55
  export const extractCoreProposalBundles = async (
76
56
  coreProposals,
77
57
  dirname = '.',
78
- opts,
58
+ makeEnactCoreProposals = makeEnactCoreProposalsFromBundleRef,
59
+ getSequenceForProposal,
79
60
  ) => {
80
- const {
81
- makeEnactCoreProposals = makeEnactCoreProposalsFromBundleRef,
82
- getSequenceForProposal = i => i,
83
- handleToBundleSpec = namedHandleToBundleSpec,
84
- } = opts || {};
61
+ if (!getSequenceForProposal) {
62
+ // Deterministic proposal numbers.
63
+ getSequenceForProposal = i => i;
64
+ }
85
65
 
86
66
  dirname = pathResolve(dirname);
87
67
  dirname = await fs.promises
88
68
  .stat(dirname)
89
69
  .then(stbuf => (stbuf.isDirectory() ? dirname : path.dirname(dirname)));
90
70
 
91
- /** @type {Map<{ bundleID?: string, bundleName?: string }, { source: string, bundle?: string }>} */
71
+ /** @type {Map<{ bundleName?: string }, { source: string, bundle?: string }>} */
92
72
  const bundleHandleToAbsolutePaths = new Map();
93
73
 
94
74
  const bundleToSource = new Map();
@@ -119,12 +99,12 @@ export const extractCoreProposalBundles = async (
119
99
  const thisProposalBundleHandles = new Set();
120
100
  assert(getSequenceForProposal);
121
101
  const thisProposalSequence = getSequenceForProposal(i);
122
- const initPath = findModule(dirname, module);
102
+ const initPath = pathResolve(dirname, module);
123
103
  const initDir = path.dirname(initPath);
124
104
  /** @type {Record<string, import('./externalTypes.js').ProposalBuilder>} */
125
105
  const ns = await import(initPath);
126
106
  const install = (srcSpec, bundlePath) => {
127
- const absoluteSrc = findModule(initDir, srcSpec);
107
+ const absoluteSrc = pathResolve(initDir, srcSpec);
128
108
  const bundleHandle = {};
129
109
  const absolutePaths = { source: absoluteSrc };
130
110
  if (bundlePath) {
@@ -150,46 +130,36 @@ export const extractCoreProposalBundles = async (
150
130
  /** @type {import('./externalTypes.js').PublishBundleRef} */
151
131
  const publishRef = async handleP => {
152
132
  const handle = await handleP;
153
- // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error -- https://github.com/Agoric/agoric-sdk/issues/4620 */
154
- // @ts-ignore xxx types
155
133
  bundleHandleToAbsolutePaths.has(handle) ||
156
134
  Fail`${handle} not in installed bundles`;
157
135
  return handle;
158
136
  };
159
- const proposal = await ns[entrypoint](
160
- {
161
- publishRef,
162
- // @ts-expect-error not statically verified to return a full obj
163
- install,
164
- },
165
- ...args,
166
- );
137
+ const proposal = await ns[entrypoint]({ publishRef, install }, ...args);
167
138
 
168
139
  // Add the proposal bundle handles in sorted order.
169
- const bundleSpecEntries = await Promise.all(
170
- [...thisProposalBundleHandles.keys()]
171
- .map(handle => [handle, bundleHandleToAbsolutePaths.get(handle)])
172
- .sort(([_hnda, { source: a }], [_hndb, { source: b }]) => {
173
- if (a < b) {
174
- return -1;
175
- }
176
- if (a > b) {
177
- return 1;
178
- }
179
- return 0;
180
- })
181
- .map(async ([handle, absolutePaths], j) => {
182
- // Transform the bundle handle identity into a bundleName reference.
183
- const specEntry = await handleToBundleSpec(
184
- handle,
185
- absolutePaths.source,
186
- thisProposalSequence,
187
- String(j),
188
- );
189
- harden(handle);
190
- return specEntry;
191
- }),
192
- );
140
+ const bundleSpecEntries = [...thisProposalBundleHandles.keys()]
141
+ .map(handle => [handle, bundleHandleToAbsolutePaths.get(handle)])
142
+ .sort(([_hnda, { source: a }], [_hndb, { source: b }]) => {
143
+ if (a < b) {
144
+ return -1;
145
+ }
146
+ if (a > b) {
147
+ return 1;
148
+ }
149
+ return 0;
150
+ })
151
+ .map(([handle, absolutePaths], j) => {
152
+ // Transform the bundle handle identity into a bundleName reference.
153
+ handle.bundleName = `coreProposal${thisProposalSequence}_${j}`;
154
+ harden(handle);
155
+
156
+ /** @type {[string, { sourceSpec: string }]} */
157
+ const specEntry = [
158
+ handle.bundleName,
159
+ { sourceSpec: absolutePaths.source },
160
+ ];
161
+ return specEntry;
162
+ });
193
163
 
194
164
  // Now that we've assigned all the bundleNames and hardened the
195
165
  // handles, we can extract the behavior bundle.
@@ -200,30 +170,26 @@ export const extractCoreProposalBundles = async (
200
170
  const behaviorSource = pathResolve(initDir, sourceSpec);
201
171
  const behaviors = await import(behaviorSource);
202
172
  const [exportedGetManifest, ...manifestArgs] = getManifestCall;
203
- assert(
204
- exportedGetManifest in behaviors,
205
- `behavior ${behaviorSource} missing ${exportedGetManifest}`,
206
- );
207
173
  const { manifest: overrideManifest } = await behaviors[
208
174
  exportedGetManifest
209
175
  ](harden({ restoreRef: () => null }), ...manifestArgs);
210
176
 
211
- const behaviorBundleHandle = {};
212
- const specEntry = await handleToBundleSpec(
213
- behaviorBundleHandle,
214
- behaviorSource,
215
- thisProposalSequence,
216
- 'behaviors',
217
- );
218
- bundleSpecEntries.unshift(specEntry);
219
-
177
+ const behaviorBundleHandle = harden({
178
+ bundleName: `coreProposal${thisProposalSequence}_behaviors`,
179
+ });
180
+ const behaviorAbsolutePaths = harden({
181
+ source: behaviorSource,
182
+ });
220
183
  bundleHandleToAbsolutePaths.set(
221
184
  behaviorBundleHandle,
222
- harden({
223
- source: behaviorSource,
224
- }),
185
+ behaviorAbsolutePaths,
225
186
  );
226
187
 
188
+ bundleSpecEntries.unshift([
189
+ behaviorBundleHandle.bundleName,
190
+ { sourceSpec: behaviorAbsolutePaths.source },
191
+ ]);
192
+
227
193
  return harden({
228
194
  ref: behaviorBundleHandle,
229
195
  call: getManifestCall,
@@ -13,8 +13,6 @@
13
13
  import { E } from '@endo/far';
14
14
  import url from 'url';
15
15
 
16
- /** @typedef {ReturnType<import('./endo-pieces-contract.js')['start']>['publicFacet']} BundleMaker */
17
-
18
16
  export const makeGetBundlerMaker =
19
17
  (homeP, { lookup, bundleSource }) =>
20
18
  async ({
@@ -22,7 +20,6 @@ export const makeGetBundlerMaker =
22
20
  log = console.log,
23
21
  } = {}) => {
24
22
  const { board: optionalBoard, zoe, scratch } = await homeP;
25
- /** @type {() => Promise<BundleMaker>} */
26
23
  const lookupOrCreate = async () => {
27
24
  // Locate the bundler maker if any already exists at the given path.
28
25
  let bundlerMaker = await lookup(JSON.parse(BUNDLER_MAKER_LOOKUP));
package/src/helpers.js CHANGED
@@ -1,10 +1,5 @@
1
1
  // @ts-check
2
-
3
- // Ambient types. Needed only for dev but this does a runtime import.
4
- // https://github.com/Agoric/agoric-sdk/issues/6512
5
- import '@agoric/time';
6
2
  import '@agoric/zoe/exported.js';
7
-
8
3
  import { E } from '@endo/far';
9
4
  import bundleSource from '@endo/bundle-source';
10
5
 
@@ -7,25 +7,6 @@ import { createBundles } from '@agoric/internal/src/node/createBundles.js';
7
7
  import { defangAndTrim, mergePermits, stringify } from './code-gen.js';
8
8
  import { makeCoreProposalBehavior, permits } from './coreProposalBehavior.js';
9
9
 
10
- /**
11
- * @callback WriteCoreProposal
12
- * @param {string} filePrefix
13
- * @param {import('./externalTypes.js').ProposalBuilder} proposalBuilder
14
- * @returns {Promise<void>}
15
- */
16
-
17
- /**
18
- *
19
- * @param {*} homeP
20
- * @param {*} endowments
21
- * @param {{
22
- * getBundlerMaker: () => Promise<import('./getBundlerMaker.js').BundleMaker>,
23
- * getBundleSpec: (...args: *) => Promise<import('./externalTypes.js').ManifestBundleRef>,
24
- * log?: typeof console.log,
25
- * writeFile?: typeof fs.promises.writeFile
26
- * }} io
27
- * @returns {WriteCoreProposal}
28
- */
29
10
  export const makeWriteCoreProposal = (
30
11
  homeP,
31
12
  endowments,
@@ -69,18 +50,8 @@ export const makeWriteCoreProposal = (
69
50
  };
70
51
  };
71
52
 
72
- let mutex =
73
- /** @type {Promise<import('./externalTypes.js').ManifestBundleRef | undefined>} */ (
74
- Promise.resolve()
75
- );
76
- /** @type {WriteCoreProposal} */
53
+ let mutex = Promise.resolve();
77
54
  const writeCoreProposal = async (filePrefix, proposalBuilder) => {
78
- /**
79
- *
80
- * @param {string} entrypoint
81
- * @param {string} [bundlePath]
82
- * @returns {Promise<NodeModule>}
83
- */
84
55
  const getBundle = async (entrypoint, bundlePath) => {
85
56
  if (!bundlePath) {
86
57
  return bundleSource(pathResolve(entrypoint));
@@ -91,14 +62,7 @@ export const makeWriteCoreProposal = (
91
62
  return ns.default;
92
63
  };
93
64
 
94
- /**
95
- * Install an entrypoint.
96
- *
97
- * @param {string} entrypoint
98
- * @param {string} [bundlePath]
99
- * @param [opts]
100
- * @returns {Promise<import('./externalTypes.js').ManifestBundleRef>}
101
- */
65
+ // Install an entrypoint.
102
66
  const install = async (entrypoint, bundlePath, opts) => {
103
67
  const bundle = getBundle(entrypoint, bundlePath);
104
68
 
@@ -107,7 +71,6 @@ export const makeWriteCoreProposal = (
107
71
  // console.log('installing', { filePrefix, entrypoint, bundlePath });
108
72
  return getBundleSpec(bundle, getBundler, opts);
109
73
  });
110
- // @ts-expect-error xxx mutex type narrowing
111
74
  return mutex;
112
75
  };
113
76