@agoric/vats 0.15.2-dev-857e650.0 → 0.15.2-dev-284e2db.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.
Files changed (80) hide show
  1. package/package.json +20 -20
  2. package/src/bridge.d.ts.map +1 -1
  3. package/src/bridge.js +23 -11
  4. package/src/centralSupply.d.ts.map +1 -1
  5. package/src/centralSupply.js +3 -3
  6. package/src/core/basic-behaviors.d.ts.map +1 -1
  7. package/src/core/basic-behaviors.js +55 -49
  8. package/src/core/boot-chain.js +3 -3
  9. package/src/core/boot-sim.js +3 -3
  10. package/src/core/boot-solo.js +4 -4
  11. package/src/core/chain-behaviors.d.ts.map +1 -1
  12. package/src/core/chain-behaviors.js +28 -23
  13. package/src/core/client-behaviors.d.ts.map +1 -1
  14. package/src/core/client-behaviors.js +5 -4
  15. package/src/core/demoIssuers.d.ts +17 -15
  16. package/src/core/demoIssuers.d.ts.map +1 -1
  17. package/src/core/demoIssuers.js +34 -34
  18. package/src/core/lib-boot.d.ts +9 -8
  19. package/src/core/lib-boot.d.ts.map +1 -1
  20. package/src/core/lib-boot.js +26 -15
  21. package/src/core/promise-space.d.ts.map +1 -1
  22. package/src/core/promise-space.js +14 -14
  23. package/src/core/startWalletFactory.d.ts +4 -1
  24. package/src/core/startWalletFactory.d.ts.map +1 -1
  25. package/src/core/startWalletFactory.js +25 -16
  26. package/src/core/types.d.ts +19 -278
  27. package/src/core/types.d.ts.map +1 -1
  28. package/src/core/types.js +385 -210
  29. package/src/core/utils.d.ts +4 -2
  30. package/src/core/utils.d.ts.map +1 -1
  31. package/src/core/utils.js +30 -28
  32. package/src/crc.d.ts +2 -6
  33. package/src/crc.d.ts.map +1 -1
  34. package/src/crc.js +5 -15
  35. package/src/ibc.d.ts +5 -5
  36. package/src/ibc.d.ts.map +1 -1
  37. package/src/ibc.js +22 -40
  38. package/src/lib-board.d.ts +48 -49
  39. package/src/lib-board.d.ts.map +1 -1
  40. package/src/lib-board.js +32 -39
  41. package/src/mintHolder.d.ts.map +1 -1
  42. package/src/mintHolder.js +5 -6
  43. package/src/nameHub.d.ts.map +1 -1
  44. package/src/nameHub.js +17 -7
  45. package/src/proposals/network-proposal.d.ts.map +1 -1
  46. package/src/proposals/network-proposal.js +13 -10
  47. package/src/proposals/restart-vats-proposal.d.ts +1 -1
  48. package/src/proposals/restart-vats-proposal.d.ts.map +1 -1
  49. package/src/proposals/restart-vats-proposal.js +3 -3
  50. package/src/provisionPool.d.ts.map +1 -1
  51. package/src/provisionPool.js +9 -10
  52. package/src/provisionPoolKit.d.ts +14 -27
  53. package/src/provisionPoolKit.d.ts.map +1 -1
  54. package/src/provisionPoolKit.js +26 -29
  55. package/src/repl.js +1 -1
  56. package/src/types.d.ts +28 -27
  57. package/src/types.d.ts.map +1 -1
  58. package/src/types.js +49 -46
  59. package/src/vat-bank.d.ts +49 -48
  60. package/src/vat-bank.d.ts.map +1 -1
  61. package/src/vat-bank.js +55 -50
  62. package/src/vat-mints.d.ts +10 -10
  63. package/src/vat-mints.d.ts.map +1 -1
  64. package/src/vat-mints.js +6 -6
  65. package/src/vat-provisioning.d.ts.map +1 -1
  66. package/src/vat-provisioning.js +11 -6
  67. package/src/virtual-purse.d.ts +6 -6
  68. package/src/virtual-purse.d.ts.map +1 -1
  69. package/src/virtual-purse.js +34 -33
  70. package/src/walletFlags.js +1 -2
  71. package/tools/authorityViz.d.ts.map +1 -1
  72. package/tools/authorityViz.js +34 -25
  73. package/tools/bank-utils.d.ts +1 -1
  74. package/tools/bank-utils.d.ts.map +1 -1
  75. package/tools/bank-utils.js +12 -5
  76. package/tools/board-utils.d.ts +1 -1
  77. package/tools/board-utils.d.ts.map +1 -1
  78. package/tools/board-utils.js +22 -14
  79. package/tools/boot-test-utils.d.ts.map +1 -1
  80. package/tools/boot-test-utils.js +7 -9
package/src/core/types.js CHANGED
@@ -12,66 +12,102 @@
12
12
  /**
13
13
  * SwingSet types
14
14
  *
15
- * @typedef { Device<ReturnType<typeof
16
- * import('@agoric/swingset-vat/src/devices/bridge/device-bridge.js').buildRootDeviceNode>> } BridgeDevice
17
- * @typedef { Device<ReturnType<typeof
18
- * import('@agoric/swingset-vat/src/devices/command/device-command.js').buildRootDeviceNode>> } CommandDevice
19
- * @typedef { Device<ReturnType<typeof
20
- * import('@agoric/swingset-vat/src/devices/mailbox/device-mailbox.js').buildRootDeviceNode>> } MailboxDevice
21
- * @typedef { Device<ReturnType<typeof
22
- * import('@agoric/swingset-vat/src/devices/plugin/device-plugin.js').buildRootDeviceNode>> } PluginDevice
23
- * @typedef { Device<ReturnType<typeof
24
- * import('@agoric/swingset-vat/src/devices/timer/device-timer.js').buildRootDeviceNode>> } TimerDevice
25
- * @typedef { Device<
26
- * import('@agoric/swingset-vat/src/devices/vat-admin/device-vat-admin.js').VatAdminRootDeviceNode> } VatAdminDevice
27
- *
28
- * @typedef { ERef<ReturnType<typeof
29
- * import('@agoric/swingset-vat/src/vats/vattp/vat-vattp.js').buildRootObject>> } VattpVat
30
- * @typedef { ERef<ReturnType<typeof
31
- * import('@agoric/swingset-vat/src/vats/vat-admin/vat-vat-admin.js').buildRootObject>> } VatAdminVat
32
- * @typedef { ERef<ReturnType<typeof
33
- * import('@agoric/swingset-vat/src/vats/timer/vat-timer.js').buildRootObject>> } TimerVat
34
- *
35
- * See deliverToController in packages/SwingSet/src/vats/comms/controller.js
15
+ * @typedef {Device<
16
+ * ReturnType<
17
+ * typeof import('@agoric/swingset-vat/src/devices/bridge/device-bridge.js').buildRootDeviceNode
18
+ * >
19
+ * >} BridgeDevice
20
+ *
21
+ * @typedef {Device<
22
+ * ReturnType<
23
+ * typeof import('@agoric/swingset-vat/src/devices/command/device-command.js').buildRootDeviceNode
24
+ * >
25
+ * >} CommandDevice
26
+ *
27
+ * @typedef {Device<
28
+ * ReturnType<
29
+ * typeof import('@agoric/swingset-vat/src/devices/mailbox/device-mailbox.js').buildRootDeviceNode
30
+ * >
31
+ * >} MailboxDevice
32
+ *
33
+ * @typedef {Device<
34
+ * ReturnType<
35
+ * typeof import('@agoric/swingset-vat/src/devices/plugin/device-plugin.js').buildRootDeviceNode
36
+ * >
37
+ * >} PluginDevice
38
+ *
39
+ * @typedef {Device<
40
+ * ReturnType<
41
+ * typeof import('@agoric/swingset-vat/src/devices/timer/device-timer.js').buildRootDeviceNode
42
+ * >
43
+ * >} TimerDevice
44
+ *
45
+ * @typedef {Device<
46
+ * import('@agoric/swingset-vat/src/devices/vat-admin/device-vat-admin.js').VatAdminRootDeviceNode
47
+ * >} VatAdminDevice
48
+ *
49
+ * @typedef {ERef<
50
+ * ReturnType<
51
+ * typeof import('@agoric/swingset-vat/src/vats/vattp/vat-vattp.js').buildRootObject
52
+ * >
53
+ * >} VattpVat
54
+ *
55
+ * @typedef {ERef<
56
+ * ReturnType<
57
+ * typeof import('@agoric/swingset-vat/src/vats/vat-admin/vat-vat-admin.js').buildRootObject
58
+ * >
59
+ * >} VatAdminVat
60
+ *
61
+ * @typedef {ERef<
62
+ * ReturnType<
63
+ * typeof import('@agoric/swingset-vat/src/vats/timer/vat-timer.js').buildRootObject
64
+ * >
65
+ * >} TimerVat
66
+ * See deliverToController in packages/SwingSet/src/vats/comms/controller.js
67
+ *
36
68
  * @typedef {ERef<{
37
- * addRemote: (name: string, tx: unknown, rx: unknown) => void,
38
- * addEgress: (addr: string, ix: number, provider: unknown) => void,
39
- * addIngress: (remoteID: string, remoteRefID: number, label?: string) => Promise<any>,
69
+ * addRemote: (name: string, tx: unknown, rx: unknown) => void;
70
+ * addEgress: (addr: string, ix: number, provider: unknown) => void;
71
+ * addIngress: (
72
+ * remoteID: string,
73
+ * remoteRefID: number,
74
+ * label?: string,
75
+ * ) => Promise<any>;
40
76
  * }>} CommsVatRoot
41
77
  *
42
78
  * @typedef {{
43
- * comms: CommsVatRoot,
44
- * timer: TimerVat,
45
- * vatAdmin: VatAdminVat,
46
- * vattp: VattpVat,
79
+ * comms: CommsVatRoot;
80
+ * timer: TimerVat;
81
+ * vatAdmin: VatAdminVat;
82
+ * vattp: VattpVat;
47
83
  * }} SwingsetVats
48
84
  *
49
85
  * @typedef {{
50
- * vatParameters: { chainStorageEntries?: Array<[k: string, v: string]>,
51
- * }}} ChainStorageVatParams
86
+ * vatParameters: { chainStorageEntries?: [k: string, v: string][] };
87
+ * }} ChainStorageVatParams
52
88
  */
53
89
 
54
90
  /**
55
91
  * @typedef {{
56
- * vatAdmin: VatAdminDevice,
57
- * mailbox: MailboxDevice,
58
- * command: CommandDevice,
59
- * timer: TimerDevice,
60
- * plugin: PluginDevice,
92
+ * vatAdmin: VatAdminDevice;
93
+ * mailbox: MailboxDevice;
94
+ * command: CommandDevice;
95
+ * timer: TimerDevice;
96
+ * plugin: PluginDevice;
61
97
  * }} SoloDevices
62
98
  *
63
99
  * @typedef {{
64
- * vatAdmin: VatAdminDevice,
65
- * mailbox: MailboxDevice,
66
- * timer: TimerDevice,
67
- * bridge?: BridgeDevice,
100
+ * vatAdmin: VatAdminDevice;
101
+ * mailbox: MailboxDevice;
102
+ * timer: TimerDevice;
103
+ * bridge?: BridgeDevice;
68
104
  * }} ChainDevices
69
105
  */
70
106
 
71
107
  /**
72
108
  * @typedef {{
73
- * getChainBundle: () => unknown,
74
- * getChainConfigNotifier: () => Notifier<unknown>,
109
+ * getChainBundle: () => unknown;
110
+ * getChainConfigNotifier: () => Notifier<unknown>;
75
111
  * }} ClientProvider
76
112
  */
77
113
 
@@ -82,9 +118,7 @@
82
118
  * @property {(r: unknown) => void} reject
83
119
  * @property {(reason?: unknown) => void} reset
84
120
  */
85
- /**
86
- * @typedef {{ bundleName?: string, bundleID?: string }} VatSourceRef
87
- */
121
+ /** @typedef {{ bundleName?: string; bundleID?: string }} VatSourceRef */
88
122
  /**
89
123
  * @template T
90
124
  * @typedef {(name: string, sourceRef?: VatSourceRef) => T} VatLoader<T>
@@ -92,10 +126,12 @@
92
126
 
93
127
  /**
94
128
  * @typedef {{
95
- * assignBundle: (ps: PropertyMaker[]) => void
96
- * }} ClientManager tool to put properties onto the `home` object of the client
129
+ * assignBundle: (ps: PropertyMaker[]) => void;
130
+ * }} ClientManager
131
+ * tool to put properties onto the `home` object of the client
97
132
  *
98
- * @typedef {(addr: string, flags: string[]) => Record<string, unknown>} PropertyMaker callback to assign a property onto the `home` object of the client
133
+ * @typedef {(addr: string, flags: string[]) => Record<string, unknown>} PropertyMaker
134
+ * callback to assign a property onto the `home` object of the client
99
135
  */
100
136
 
101
137
  /**
@@ -103,8 +139,8 @@
103
139
  * @template [C={}] Consume only
104
140
  * @template [P={}] Produce only
105
141
  * @typedef {{
106
- * consume: { [K in keyof (B & C)]: Promise<(B & C)[K]> },
107
- * produce: { [K in keyof (B & P)]: Producer<(B & P)[K]> },
142
+ * consume: { [K in keyof (B & C)]: Promise<(B & C)[K]> };
143
+ * produce: { [K in keyof (B & P)]: Producer<(B & P)[K]> };
108
144
  * }} PromiseSpaceOf
109
145
  */
110
146
 
@@ -116,232 +152,371 @@
116
152
  * @returns {Promise<Record<string, Promise<any>>>}
117
153
  *
118
154
  * @typedef {object} ClientFacet
119
- * @property {() => ERef<Record<string, any>>} getChainBundle Required for ag-solo, but deprecated in favour of getConfiguration
120
- * NOTE: we use `any` rather than `unknown` because each client that wants to call a method such as
121
- * `E(userBundle.bank).deposit(payment)` has to cast userBundle.bank;
122
- * ideally, the cast is to some useful type. But unknown can't be cast directly to some other type;
123
- * it has to be cast to any first.
155
+ * @property {() => ERef<Record<string, any>>} getChainBundle Required for
156
+ * ag-solo, but deprecated in favour of getConfiguration NOTE: we use `any`
157
+ * rather than `unknown` because each client that wants to call a method such
158
+ * as `E(userBundle.bank).deposit(payment)` has to cast userBundle.bank;
159
+ * ideally, the cast is to some useful type. But unknown can't be cast
160
+ * directly to some other type; it has to be cast to any first.
124
161
  * @property {() => AsyncIterable<Configuration, Configuration>} getConfiguration
125
162
  *
126
- * @typedef {{ clientAddress: string, clientHome: Record<string, any>}} Configuration
163
+ * @typedef {{ clientAddress: string; clientHome: Record<string, any> }} Configuration
127
164
  *
128
165
  * @typedef {object} ClientCreator
129
- * @property {CreateUserBundle} createUserBundle Required for vat-provisioning, but deprecated in favor of {@link createClient}.
130
- * @property {(nickname: string, clientAddress: string, powerFlags: string[]) => Promise<ClientFacet>} createClientFacet
166
+ * @property {CreateUserBundle} createUserBundle Required for vat-provisioning,
167
+ * but deprecated in favor of {@link createClient}.
168
+ * @property {(
169
+ * nickname: string,
170
+ * clientAddress: string,
171
+ * powerFlags: string[],
172
+ * ) => Promise<ClientFacet>} createClientFacet
131
173
  */
132
174
 
133
175
  /**
134
176
  * @typedef {import('@agoric/inter-protocol/src/tokens.js').TokenKeyword} TokenKeyword
135
177
  *
136
178
  * @typedef {{
137
- * issuer: |
138
- * TokenKeyword | 'Invitation' | 'AUSD',
139
- * installation: |
140
- * 'centralSupply' | 'mintHolder' |
141
- * 'walletFactory' | 'provisionPool' | 'auctioneer' |
142
- * 'feeDistributor' |
143
- * 'contractGovernor' | 'committee' | 'noActionElectorate' | 'binaryVoteCounter' |
144
- * 'VaultFactory' | 'liquidate' |
145
- * 'Pegasus' | 'reserve' | 'psm' | 'econCommitteeCharter' | 'priceAggregator',
146
- * instance: |
147
- * 'economicCommittee' | 'feeDistributor' | 'auctioneer' |
148
- * 'VaultFactory' | 'VaultFactoryGovernor' |
149
- * 'econCommitteeCharter' |
150
- * 'walletFactory' | 'provisionPool' |
151
- * 'reserve' | 'reserveGovernor' | 'Pegasus',
152
- * oracleBrand:
153
- * 'USD',
154
- * uiConfig: |
155
- * 'VaultFactory'
179
+ * issuer: TokenKeyword | 'Invitation' | 'AUSD';
180
+ * installation:
181
+ * | 'centralSupply'
182
+ * | 'mintHolder'
183
+ * | 'walletFactory'
184
+ * | 'provisionPool'
185
+ * | 'auctioneer'
186
+ * | 'feeDistributor'
187
+ * | 'contractGovernor'
188
+ * | 'committee'
189
+ * | 'noActionElectorate'
190
+ * | 'binaryVoteCounter'
191
+ * | 'VaultFactory'
192
+ * | 'liquidate'
193
+ * | 'Pegasus'
194
+ * | 'reserve'
195
+ * | 'psm'
196
+ * | 'econCommitteeCharter'
197
+ * | 'priceAggregator';
198
+ * instance:
199
+ * | 'economicCommittee'
200
+ * | 'feeDistributor'
201
+ * | 'auctioneer'
202
+ * | 'VaultFactory'
203
+ * | 'VaultFactoryGovernor'
204
+ * | 'econCommitteeCharter'
205
+ * | 'walletFactory'
206
+ * | 'provisionPool'
207
+ * | 'reserve'
208
+ * | 'reserveGovernor'
209
+ * | 'Pegasus';
210
+ * oracleBrand: 'USD';
211
+ * uiConfig: 'VaultFactory';
156
212
  * }} WellKnownName
157
213
  *
158
214
  * @typedef {{
159
215
  * issuer: {
160
- * produce: Record<WellKnownName['issuer'], Producer<Issuer>>,
161
- * consume: Record<WellKnownName['issuer'], Promise<Issuer>> & { BLD: Promise<Issuer<'nat'>>, IST: Promise<Issuer<'nat'>> },
162
- * },
216
+ * produce: Record<WellKnownName['issuer'], Producer<Issuer>>;
217
+ * consume: Record<WellKnownName['issuer'], Promise<Issuer>> & {
218
+ * BLD: Promise<Issuer<'nat'>>;
219
+ * IST: Promise<Issuer<'nat'>>;
220
+ * };
221
+ * };
163
222
  * brand: {
164
- * produce: Record<WellKnownName['issuer'], Producer<Brand>> &
165
- * { timer: Producer<import('@agoric/time').TimerBrand> },
166
- * consume: Record<WellKnownName['issuer'], Promise<Brand>> &
167
- * { BLD: Promise<Brand<'nat'>>, IST: Promise<Brand<'nat'>>,
168
- * timer: Producer<import('@agoric/time').TimerBrand> },
169
- * },
223
+ * produce: Record<WellKnownName['issuer'], Producer<Brand>> & {
224
+ * timer: Producer<import('@agoric/time').TimerBrand>;
225
+ * };
226
+ * consume: Record<WellKnownName['issuer'], Promise<Brand>> & {
227
+ * BLD: Promise<Brand<'nat'>>;
228
+ * IST: Promise<Brand<'nat'>>;
229
+ * timer: Producer<import('@agoric/time').TimerBrand>;
230
+ * };
231
+ * };
170
232
  * oracleBrand: {
171
- * produce: Record<WellKnownName['oracleBrand'], Producer<Brand>>,
172
- * consume: Record<WellKnownName['oracleBrand'], Promise<Brand>>,
173
- * },
174
- * installation:{
175
- * produce: Record<WellKnownName['installation'], Producer<Installation>>,
176
- * consume: Record<WellKnownName['installation'], Promise<Installation<unknown>>> & {
177
- * auctioneer: Promise<Installation<import('@agoric/inter-protocol/src/auction/auctioneer.js').start>>,
178
- * centralSupply: Promise<Installation<import('@agoric/vats/src/centralSupply.js').start>>,
179
- * committee: Promise<Installation<import('@agoric/governance/src/committee.js')['prepare']>>,
180
- * contractGovernor: Promise<Installation<import('@agoric/governance/src/contractGovernor.js')['prepare']>>,
181
- * econCommitteeCharter: Promise<Installation<import('@agoric/inter-protocol/src/econCommitteeCharter.js')['prepare']>>,
182
- * feeDistributor: Promise<Installation<import('@agoric/inter-protocol/src/feeDistributor.js').start>>,
183
- * mintHolder: Promise<Installation<import('@agoric/vats/src/mintHolder.js').prepare>>,
184
- * psm: Promise<Installation<import('@agoric/inter-protocol/src/psm/psm.js')['prepare']>>,
185
- * provisionPool: Promise<Installation<import('@agoric/vats/src/provisionPool.js')['prepare']>>,
186
- * reserve: Promise<Installation<import('@agoric/inter-protocol/src/reserve/assetReserve.js')['prepare']>>,
187
- * VaultFactory: Promise<Installation<import('@agoric/inter-protocol/src/vaultFactory/vaultFactory.js')['prepare']>>,
188
- * walletFactory: Promise<Installation<import('@agoric/smart-wallet/src/walletFactory.js').prepare>>,
189
- * },
190
- * },
191
- * instance:{
192
- * produce: Record<WellKnownName['instance'], Producer<Instance>>,
193
- * consume: Record<WellKnownName['instance'], Promise<Instance>>,
194
- * },
233
+ * produce: Record<WellKnownName['oracleBrand'], Producer<Brand>>;
234
+ * consume: Record<WellKnownName['oracleBrand'], Promise<Brand>>;
235
+ * };
236
+ * installation: {
237
+ * produce: Record<WellKnownName['installation'], Producer<Installation>>;
238
+ * consume: Record<
239
+ * WellKnownName['installation'],
240
+ * Promise<Installation<unknown>>
241
+ * > & {
242
+ * auctioneer: Promise<
243
+ * Installation<
244
+ * import('@agoric/inter-protocol/src/auction/auctioneer.js').start
245
+ * >
246
+ * >;
247
+ * centralSupply: Promise<
248
+ * Installation<import('@agoric/vats/src/centralSupply.js').start>
249
+ * >;
250
+ * committee: Promise<
251
+ * Installation<
252
+ * import('@agoric/governance/src/committee.js')['prepare']
253
+ * >
254
+ * >;
255
+ * contractGovernor: Promise<
256
+ * Installation<
257
+ * import('@agoric/governance/src/contractGovernor.js')['prepare']
258
+ * >
259
+ * >;
260
+ * econCommitteeCharter: Promise<
261
+ * Installation<
262
+ * import('@agoric/inter-protocol/src/econCommitteeCharter.js')['prepare']
263
+ * >
264
+ * >;
265
+ * feeDistributor: Promise<
266
+ * Installation<
267
+ * import('@agoric/inter-protocol/src/feeDistributor.js').start
268
+ * >
269
+ * >;
270
+ * mintHolder: Promise<
271
+ * Installation<import('@agoric/vats/src/mintHolder.js').prepare>
272
+ * >;
273
+ * psm: Promise<
274
+ * Installation<
275
+ * import('@agoric/inter-protocol/src/psm/psm.js')['prepare']
276
+ * >
277
+ * >;
278
+ * provisionPool: Promise<
279
+ * Installation<import('@agoric/vats/src/provisionPool.js')['prepare']>
280
+ * >;
281
+ * reserve: Promise<
282
+ * Installation<
283
+ * import('@agoric/inter-protocol/src/reserve/assetReserve.js')['prepare']
284
+ * >
285
+ * >;
286
+ * VaultFactory: Promise<
287
+ * Installation<
288
+ * import('@agoric/inter-protocol/src/vaultFactory/vaultFactory.js')['prepare']
289
+ * >
290
+ * >;
291
+ * walletFactory: Promise<
292
+ * Installation<
293
+ * import('@agoric/smart-wallet/src/walletFactory.js').prepare
294
+ * >
295
+ * >;
296
+ * };
297
+ * };
298
+ * instance: {
299
+ * produce: Record<WellKnownName['instance'], Producer<Instance>>;
300
+ * consume: Record<WellKnownName['instance'], Promise<Instance>>;
301
+ * };
195
302
  * uiConfig: {
196
- * produce: Record<WellKnownName['uiConfig'], Producer<Record<string, any>>>,
197
- * consume: Record<WellKnownName['uiConfig'], Promise<Record<string, any>>>,
198
- * },
303
+ * produce: Record<
304
+ * WellKnownName['uiConfig'],
305
+ * Producer<Record<string, any>>
306
+ * >;
307
+ * consume: Record<WellKnownName['uiConfig'], Promise<Record<string, any>>>;
308
+ * };
199
309
  * }} WellKnownSpaces
200
310
  */
201
311
 
202
312
  /**
203
313
  * @template {GovernableStartFn} SF
204
314
  * @typedef {{
205
- * installation: ERef<Installation<SF>>,
206
- * issuerKeywordRecord?: IssuerKeywordRecord,
207
- * governedParams: Record<string, unknown>,
208
- * terms: Omit<import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'], 'brands' | 'issuers' | 'governedParams' | 'electionManager'>,
209
- * privateArgs: Omit<import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['privateArgs'], 'initialPoserInvitation'>,
210
- * label: string,
315
+ * installation: ERef<Installation<SF>>;
316
+ * issuerKeywordRecord?: IssuerKeywordRecord;
317
+ * governedParams: Record<string, unknown>;
318
+ * terms: Omit<
319
+ * import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'],
320
+ * 'brands' | 'issuers' | 'governedParams' | 'electionManager'
321
+ * >;
322
+ * privateArgs: Omit<
323
+ * import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['privateArgs'],
324
+ * 'initialPoserInvitation'
325
+ * >;
326
+ * label: string;
211
327
  * }} StartGovernedUpgradableOpts
212
- *
213
328
  */
214
329
  /**
215
- * @typedef {<SF extends GovernableStartFn>(opts: StartGovernedUpgradableOpts<SF>) => Promise<GovernanceFacetKit<SF>>
216
- * } startGovernedUpgradable
330
+ * @typedef {<SF extends GovernableStartFn>(
331
+ * opts: StartGovernedUpgradableOpts<SF>,
332
+ * ) => Promise<GovernanceFacetKit<SF>>} startGovernedUpgradable
217
333
  */
218
334
 
219
335
  /**
220
336
  * @template {import('@agoric/zoe/src/zoeService/utils').ContractStartFunction} SF
221
337
  * @typedef {{
222
- * installation: ERef<Installation<SF>>,
223
- * issuerKeywordRecord?: IssuerKeywordRecord,
224
- * terms?: Omit<import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'], 'brands' | 'issuers'>,
225
- * privateArgs?: import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['privateArgs'],
226
- * label: string,
338
+ * installation: ERef<Installation<SF>>;
339
+ * issuerKeywordRecord?: IssuerKeywordRecord;
340
+ * terms?: Omit<
341
+ * import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['terms'],
342
+ * 'brands' | 'issuers'
343
+ * >;
344
+ * privateArgs?: import('@agoric/zoe/src/zoeService/utils').StartParams<SF>['privateArgs'];
345
+ * label: string;
227
346
  * }} StartUpgradableOpts
228
347
  */
229
348
  /**
230
- * @typedef {<SF extends import('@agoric/zoe/src/zoeService/utils').ContractStartFunction>(opts: StartUpgradableOpts<SF>)
231
- * => Promise<
232
- * import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<SF> &
233
- * { label: string }
234
- * >
235
- * } StartUpgradable
349
+ * @typedef {<
350
+ * SF extends
351
+ * import('@agoric/zoe/src/zoeService/utils').ContractStartFunction,
352
+ * >(
353
+ * opts: StartUpgradableOpts<SF>,
354
+ * ) => Promise<
355
+ * import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<SF> & {
356
+ * label: string;
357
+ * }
358
+ * >} StartUpgradable
236
359
  */
237
360
 
238
- /** @template T @typedef {import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<T> } StartedInstanceKit */
361
+ /**
362
+ * @template T @typedef
363
+ * {import('@agoric/zoe/src/zoeService/utils').StartedInstanceKit<T> }
364
+ * StartedInstanceKit
365
+ */
239
366
 
240
- /** @typedef {{label: string} & StartedInstanceKit<import('@agoric/zoe/src/zoeService/utils').ContractStartFunction>} StartedInstanceKitWithLabel */
367
+ /**
368
+ * @typedef {{ label: string } & StartedInstanceKit<
369
+ * import('@agoric/zoe/src/zoeService/utils').ContractStartFunction
370
+ * >} StartedInstanceKitWithLabel
371
+ */
241
372
 
242
373
  /**
243
374
  * @typedef {{
244
- * agoricNames: NameHub,
245
- * agoricNamesAdmin: import('@agoric/vats').NameAdmin,
246
- * bankManager: BankManager,
247
- * bldIssuerKit: RemoteIssuerKit,
248
- * board: import('@agoric/vats').Board,
249
- * bridgeManager: import('../types.js').BridgeManager | undefined,
250
- * chainStorage: StorageNode | null,
251
- * chainTimerService: import('@agoric/time/src/types').TimerService,
252
- * client: ClientManager,
253
- * clientCreator: ClientCreator,
254
- * coreEvalBridgeHandler: import('../types.js').BridgeHandler,
255
- * diagnostics: { savePrivateArgs: (instance: Instance, privateArgs: unknown) => void },
256
- * feeMintAccess: FeeMintAccess,
257
- * highPrioritySendersManager: import('@agoric/internal/src/priority-senders.js').PrioritySendersManager?,
258
- * initialSupply: Payment<'nat'>,
259
- * instancePrivateArgs: Map<Instance, unknown>,
260
- * namesByAddress: NameHub,
261
- * namesByAddressAdmin: import('../types').NamesByAddressAdmin,
262
- * pegasusConnections: import('@agoric/vats').NameHubKit,
263
- * pegasusConnectionsAdmin: import('@agoric/vats').NameAdmin,
264
- * priceAuthorityVat: Awaited<PriceAuthorityVat>,
265
- * priceAuthority: PriceAuthority,
266
- * priceAuthorityAdmin: PriceAuthorityRegistryAdmin,
267
- * provisioning: Awaited<ProvisioningVat> | undefined,
268
- * provisionBridgeManager: import('../types.js').ScopedBridgeManager | undefined,
269
- * provisionWalletBridgeManager: import('../types.js').ScopedBridgeManager | undefined,
270
- * storageBridgeManager: import('../types.js').ScopedBridgeManager?,
271
- * contractKits: MapStore<Instance, StartedInstanceKitWithLabel>,
272
- * startUpgradable: StartUpgradable,
273
- * governedContractKits: MapStore<Instance, GovernanceFacetKit<any> & {label: string}>,
274
- * startGovernedUpgradable: startGovernedUpgradable,
275
- * testFirstAnchorKit: import('../vat-bank.js').AssetIssuerKit<'nat'>,
276
- * walletBridgeManager: import('../types.js').ScopedBridgeManager | undefined,
277
- * walletFactoryStartResult: import('./startWalletFactory').WalletFactoryStartResult,
278
- * provisionPoolStartResult: unknown,
279
- * vatStore: import('./utils.js').VatStore,
280
- * zoe: ZoeService,
375
+ * agoricNames: NameHub;
376
+ * agoricNamesAdmin: import('@agoric/vats').NameAdmin;
377
+ * bankManager: BankManager;
378
+ * bldIssuerKit: RemoteIssuerKit;
379
+ * board: import('@agoric/vats').Board;
380
+ * bridgeManager: import('../types.js').BridgeManager | undefined;
381
+ * chainStorage: StorageNode | null;
382
+ * chainTimerService: import('@agoric/time/src/types').TimerService;
383
+ * client: ClientManager;
384
+ * clientCreator: ClientCreator;
385
+ * coreEvalBridgeHandler: import('../types.js').BridgeHandler;
386
+ * diagnostics: {
387
+ * savePrivateArgs: (instance: Instance, privateArgs: unknown) => void;
388
+ * };
389
+ * feeMintAccess: FeeMintAccess;
390
+ * highPrioritySendersManager: import('@agoric/internal/src/priority-senders.js').PrioritySendersManager?;
391
+ * initialSupply: Payment<'nat'>;
392
+ * instancePrivateArgs: Map<Instance, unknown>;
393
+ * namesByAddress: NameHub;
394
+ * namesByAddressAdmin: import('../types').NamesByAddressAdmin;
395
+ * pegasusConnections: import('@agoric/vats').NameHubKit;
396
+ * pegasusConnectionsAdmin: import('@agoric/vats').NameAdmin;
397
+ * priceAuthorityVat: Awaited<PriceAuthorityVat>;
398
+ * priceAuthority: PriceAuthority;
399
+ * priceAuthorityAdmin: PriceAuthorityRegistryAdmin;
400
+ * provisioning: Awaited<ProvisioningVat> | undefined;
401
+ * provisionBridgeManager:
402
+ * | import('../types.js').ScopedBridgeManager
403
+ * | undefined;
404
+ * provisionWalletBridgeManager:
405
+ * | import('../types.js').ScopedBridgeManager
406
+ * | undefined;
407
+ * storageBridgeManager: import('../types.js').ScopedBridgeManager?;
408
+ * contractKits: MapStore<Instance, StartedInstanceKitWithLabel>;
409
+ * startUpgradable: StartUpgradable;
410
+ * governedContractKits: MapStore<
411
+ * Instance,
412
+ * GovernanceFacetKit<any> & { label: string }
413
+ * >;
414
+ * startGovernedUpgradable: startGovernedUpgradable;
415
+ * testFirstAnchorKit: import('../vat-bank.js').AssetIssuerKit<'nat'>;
416
+ * walletBridgeManager: import('../types.js').ScopedBridgeManager | undefined;
417
+ * walletFactoryStartResult: import('./startWalletFactory').WalletFactoryStartResult;
418
+ * provisionPoolStartResult: unknown;
419
+ * vatStore: import('./utils.js').VatStore;
420
+ * zoe: ZoeService;
281
421
  * }} ChainBootstrapSpaceT
422
+ *
282
423
  * @typedef {PromiseSpaceOf<ChainBootstrapSpaceT>} ChainBootstrapSpace
283
424
  *
284
- * @typedef {import('@agoric/vats').NameHub} NameHub
285
- * IDEA/TODO: make types of demo stuff invisible in production behaviors
425
+ * @typedef {import('@agoric/vats').NameHub} NameHub IDEA/TODO: make types of
426
+ * demo stuff invisible in production behaviors
427
+ *
286
428
  * @typedef {{
287
429
  * argv: {
288
- * hardcodedClientAddresses?: string[],
289
- * FIXME_GCI: string,
290
- * PROVISIONER_INDEX?: number,
291
- * },
430
+ * hardcodedClientAddresses?: string[];
431
+ * FIXME_GCI: string;
432
+ * PROVISIONER_INDEX?: number;
433
+ * };
292
434
  * }} BootstrapVatParams
293
- * @typedef { BootstrapSpace & {
294
- * zone: import('@agoric/zone').Zone,
295
- * devices: SoloDevices | ChainDevices,
296
- * vats: SwingsetVats,
297
- * vatPowers: { [prop: string]: any, D: DProxy },
298
- * vatParameters: BootstrapVatParams,
299
- * runBehaviors: (manifest: unknown) => Promise<unknown>,
300
- * modules: Record<string, Record<string, any>>,
435
+ *
436
+ * @typedef {BootstrapSpace & {
437
+ * zone: import('@agoric/zone').Zone;
438
+ * devices: SoloDevices | ChainDevices;
439
+ * vats: SwingsetVats;
440
+ * vatPowers: { [prop: string]: any; D: DProxy };
441
+ * vatParameters: BootstrapVatParams;
442
+ * runBehaviors: (manifest: unknown) => Promise<unknown>;
443
+ * modules: Record<string, Record<string, any>>;
301
444
  * }} BootstrapPowers
302
- * @typedef { WellKnownSpaces & PromiseSpaceOf<ChainBootstrapSpaceT & {
303
- * vatAdminSvc: VatAdminSvc,
304
- * }, {}, {
305
- * loadVat: VatLoader<unknown>,
306
- * loadCriticalVat: VatLoader<unknown>,
307
- * }>
308
- * } BootstrapSpace
309
- * @typedef {{ mint: ERef<Mint>, issuer: ERef<Issuer>, brand: Brand }} RemoteIssuerKit
445
+ *
446
+ * @typedef {WellKnownSpaces &
447
+ * PromiseSpaceOf<
448
+ * ChainBootstrapSpaceT & {
449
+ * vatAdminSvc: VatAdminSvc;
450
+ * },
451
+ * {},
452
+ * {
453
+ * loadVat: VatLoader<unknown>;
454
+ * loadCriticalVat: VatLoader<unknown>;
455
+ * }
456
+ * >} BootstrapSpace
457
+ *
458
+ * @typedef {{ mint: ERef<Mint>; issuer: ERef<Issuer>; brand: Brand }} RemoteIssuerKit
459
+ *
310
460
  * @typedef {Awaited<ReturnType<Awaited<BankVat>['makeBankManager']>>} BankManager
461
+ *
311
462
  * @typedef {ERef<ReturnType<import('../vat-agoricNames').buildRootObject>>} AgoricNamesVat
463
+ *
312
464
  * @typedef {ERef<ReturnType<import('../vat-bank.js').buildRootObject>>} BankVat
465
+ *
313
466
  * @typedef {ERef<ReturnType<import('../vat-board.js').buildRootObject>>} BoardVat
467
+ *
314
468
  * @typedef {ERef<ReturnType<import('../vat-bridge.js').buildRootObject>>} ChainStorageVat
315
- * @typedef {ERef<ReturnType<import('../vat-provisioning.js').buildRootObject>>} ProvisioningVat
469
+ *
470
+ * @typedef {ERef<
471
+ * ReturnType<import('../vat-provisioning.js').buildRootObject>
472
+ * >} ProvisioningVat
473
+ *
316
474
  * @typedef {ERef<ReturnType<import('../vat-mints.js').buildRootObject>>} MintsVat
317
- * @typedef {ERef<ReturnType<import('../vat-priceAuthority.js').buildRootObject>>} PriceAuthorityVat
475
+ *
476
+ * @typedef {ERef<
477
+ * ReturnType<import('../vat-priceAuthority.js').buildRootObject>
478
+ * >} PriceAuthorityVat
479
+ *
318
480
  * @typedef {ERef<ReturnType<import('../vat-network.js').buildRootObject>>} NetworkVat
481
+ *
319
482
  * @typedef {ERef<ReturnType<import('../vat-ibc.js').buildRootObject>>} IBCVat
320
- * @typedef { import('@agoric/zoe/tools/priceAuthorityRegistry').PriceAuthorityRegistryAdmin } PriceAuthorityRegistryAdmin
321
483
  *
322
- * @typedef {{ namedVat: PromiseSpaceOf<{
323
- * agoricNames: Awaited<AgoricNamesVat>,
324
- * board: Awaited<BoardVat>,
325
- * }> }} NamedVatPowers
484
+ * @typedef {import('@agoric/zoe/tools/priceAuthorityRegistry').PriceAuthorityRegistryAdmin} PriceAuthorityRegistryAdmin
485
+ *
486
+ * @typedef {{
487
+ * namedVat: PromiseSpaceOf<{
488
+ * agoricNames: Awaited<AgoricNamesVat>;
489
+ * board: Awaited<BoardVat>;
490
+ * }>;
491
+ * }} NamedVatPowers
326
492
  */
327
493
 
328
494
  /**
329
495
  * @typedef {PromiseSpaceOf<{
330
- * mints: MintsVat
496
+ * mints: MintsVat;
331
497
  * }>} DemoFaucetPowers
332
498
  */
333
499
 
334
500
  /**
335
501
  * @typedef {{
336
- * spawner: SpawnerVat,
337
- * http: HttpVat,
338
- * network: NetworkVat,
339
- * uploads: UploadsVat,
340
- * bootstrap: unknown
502
+ * spawner: SpawnerVat;
503
+ * http: HttpVat;
504
+ * network: NetworkVat;
505
+ * uploads: UploadsVat;
506
+ * bootstrap: unknown;
341
507
  * }} SoloVats
342
- * @typedef {ERef<ReturnType<import('@agoric/solo/src/vat-spawner.js').buildRootObject>>} SpawnerVat
343
- * @typedef {ERef<ReturnType<import('@agoric/solo/src/vat-http.js').buildRootObject>>} HttpVat
344
- * @typedef {ERef<ReturnType<import('@agoric/solo/src/vat-uploads.js').buildRootObject>>} UploadsVat
508
+ *
509
+ * @typedef {ERef<
510
+ * ReturnType<import('@agoric/solo/src/vat-spawner.js').buildRootObject>
511
+ * >} SpawnerVat
512
+ *
513
+ * @typedef {ERef<
514
+ * ReturnType<import('@agoric/solo/src/vat-http.js').buildRootObject>
515
+ * >} HttpVat
516
+ *
517
+ * @typedef {ERef<
518
+ * ReturnType<import('@agoric/solo/src/vat-uploads.js').buildRootObject>
519
+ * >} UploadsVat
345
520
  */
346
521
 
347
- /** @template T @typedef {{vatPowers: { D: DProxy }, devices: T}} BootDevices<T> */
522
+ /** @template T @typedef {{vatPowers: { D: DProxy }, devices: T}} BootDevices<T> */