@agoric/vats 0.15.2-dev-ecf2d8e.0 → 0.15.2-other-dev-70beeb7.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 (151) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/decentral-core-config.json +66 -0
  3. package/decentral-demo-config.json +155 -0
  4. package/decentral-devnet-config.json +216 -0
  5. package/decentral-itest-vaults-config.json +210 -0
  6. package/decentral-main-vaults-config.json +229 -0
  7. package/decentral-test-vaults-config.json +195 -0
  8. package/demo-proposals.json +5 -0
  9. package/exported.js +1 -1
  10. package/jsconfig.build.json +12 -0
  11. package/{tsconfig.json → jsconfig.json} +0 -3
  12. package/package.json +42 -32
  13. package/scripts/build-bundles.d.ts +3 -0
  14. package/scripts/build-bundles.d.ts.map +1 -0
  15. package/scripts/build-bundles.js +3 -8
  16. package/scripts/build-game1-start.d.ts +5 -0
  17. package/scripts/build-game1-start.d.ts.map +1 -0
  18. package/scripts/build-game1-start.js +34 -0
  19. package/scripts/build-walletFactory-upgrade.d.ts +5 -0
  20. package/scripts/build-walletFactory-upgrade.d.ts.map +1 -0
  21. package/scripts/build-walletFactory-upgrade.js +35 -0
  22. package/scripts/init-core.d.ts +5 -0
  23. package/scripts/init-core.d.ts.map +1 -0
  24. package/scripts/init-core.js +31 -0
  25. package/scripts/init-network.d.ts +5 -0
  26. package/scripts/init-network.d.ts.map +1 -0
  27. package/scripts/init-network.js +19 -0
  28. package/scripts/restart-vats.d.ts +5 -0
  29. package/scripts/restart-vats.d.ts.map +1 -0
  30. package/scripts/restart-vats.js +23 -0
  31. package/scripts/set-core-proposal-env.d.ts +3 -0
  32. package/scripts/set-core-proposal-env.d.ts.map +1 -0
  33. package/scripts/set-core-proposal-env.js +37 -0
  34. package/src/bridge.d.ts +3 -12
  35. package/src/bridge.d.ts.map +1 -1
  36. package/src/bridge.js +12 -24
  37. package/src/centralSupply.d.ts.map +1 -1
  38. package/src/centralSupply.js +3 -3
  39. package/src/core/basic-behaviors.d.ts +7 -7
  40. package/src/core/basic-behaviors.d.ts.map +1 -1
  41. package/src/core/basic-behaviors.js +50 -56
  42. package/src/core/boot-chain.d.ts +1 -1
  43. package/src/core/boot-chain.js +3 -3
  44. package/src/core/boot-sim.js +3 -3
  45. package/src/core/boot-solo.js +4 -4
  46. package/src/core/chain-behaviors.d.ts.map +1 -1
  47. package/src/core/chain-behaviors.js +23 -29
  48. package/src/core/client-behaviors.d.ts.map +1 -1
  49. package/src/core/client-behaviors.js +4 -5
  50. package/src/core/demoIssuers.d.ts +15 -17
  51. package/src/core/demoIssuers.d.ts.map +1 -1
  52. package/src/core/demoIssuers.js +36 -36
  53. package/src/core/lib-boot.d.ts +9 -11
  54. package/src/core/lib-boot.d.ts.map +1 -1
  55. package/src/core/lib-boot.js +22 -32
  56. package/src/core/promise-space.d.ts.map +1 -1
  57. package/src/core/promise-space.js +14 -14
  58. package/src/core/sim-behaviors.d.ts +1 -1
  59. package/src/core/sim-behaviors.d.ts.map +1 -1
  60. package/src/core/startWalletFactory.d.ts +62 -9
  61. package/src/core/startWalletFactory.d.ts.map +1 -1
  62. package/src/core/startWalletFactory.js +17 -26
  63. package/src/core/types.d.ts +820 -0
  64. package/src/core/types.d.ts.map +1 -0
  65. package/src/core/types.js +347 -0
  66. package/src/core/utils.d.ts +16 -18
  67. package/src/core/utils.d.ts.map +1 -1
  68. package/src/core/utils.js +30 -32
  69. package/src/crc.d.ts +6 -2
  70. package/src/crc.d.ts.map +1 -1
  71. package/src/crc.js +15 -5
  72. package/src/ibc.d.ts +5 -5
  73. package/src/ibc.d.ts.map +1 -1
  74. package/src/ibc.js +47 -27
  75. package/src/lib-board.d.ts +50 -49
  76. package/src/lib-board.d.ts.map +1 -1
  77. package/src/lib-board.js +39 -32
  78. package/src/mintHolder.d.ts +1 -3
  79. package/src/mintHolder.d.ts.map +1 -1
  80. package/src/mintHolder.js +8 -13
  81. package/src/nameHub.d.ts +2 -18
  82. package/src/nameHub.d.ts.map +1 -1
  83. package/src/nameHub.js +17 -26
  84. package/src/proposals/network-proposal.d.ts.map +1 -1
  85. package/src/proposals/network-proposal.js +12 -15
  86. package/src/proposals/restart-vats-proposal.d.ts +1 -1
  87. package/src/proposals/restart-vats-proposal.d.ts.map +1 -1
  88. package/src/proposals/restart-vats-proposal.js +5 -3
  89. package/src/provisionPool.d.ts +164 -0
  90. package/src/provisionPool.d.ts.map +1 -0
  91. package/src/provisionPool.js +113 -0
  92. package/src/provisionPoolKit.d.ts +408 -0
  93. package/src/provisionPoolKit.d.ts.map +1 -0
  94. package/src/provisionPoolKit.js +464 -0
  95. package/src/repl.js +1 -1
  96. package/src/tokens.d.ts +36 -0
  97. package/src/tokens.d.ts.map +1 -0
  98. package/src/tokens.js +37 -0
  99. package/src/types.d.ts +103 -84
  100. package/src/types.d.ts.map +1 -0
  101. package/src/types.js +97 -1
  102. package/src/vat-agoricNames.d.ts +1 -1
  103. package/src/vat-agoricNames.d.ts.map +1 -1
  104. package/src/vat-agoricNames.js +3 -2
  105. package/src/vat-bank.d.ts +58 -62
  106. package/src/vat-bank.d.ts.map +1 -1
  107. package/src/vat-bank.js +54 -62
  108. package/src/vat-board.d.ts +1 -1
  109. package/src/vat-bridge.d.ts +30 -2
  110. package/src/vat-bridge.d.ts.map +1 -1
  111. package/src/vat-mints.d.ts +12 -12
  112. package/src/vat-mints.d.ts.map +1 -1
  113. package/src/vat-mints.js +6 -6
  114. package/src/vat-network.d.ts +1 -1
  115. package/src/vat-network.d.ts.map +1 -1
  116. package/src/vat-network.js +1 -1
  117. package/src/vat-priceAuthority.d.ts +1 -1
  118. package/src/vat-provisioning.d.ts +1 -1
  119. package/src/vat-provisioning.d.ts.map +1 -1
  120. package/src/vat-provisioning.js +7 -11
  121. package/src/vat-sharing.d.ts +54 -0
  122. package/src/vat-sharing.d.ts.map +1 -0
  123. package/src/vat-sharing.js +14 -0
  124. package/src/vat-zoe.d.ts +0 -2
  125. package/src/vat-zoe.d.ts.map +1 -1
  126. package/src/vat-zoe.js +2 -8
  127. package/src/virtual-purse.d.ts +12 -37
  128. package/src/virtual-purse.d.ts.map +1 -1
  129. package/src/virtual-purse.js +36 -38
  130. package/src/walletFlags.d.ts +2 -2
  131. package/src/walletFlags.js +2 -1
  132. package/tools/authorityViz.d.ts +27 -0
  133. package/tools/authorityViz.d.ts.map +1 -0
  134. package/tools/authorityViz.js +272 -0
  135. package/tools/bank-utils.d.ts +1 -1
  136. package/tools/bank-utils.d.ts.map +1 -1
  137. package/tools/bank-utils.js +5 -12
  138. package/tools/board-utils.d.ts +19 -5
  139. package/tools/board-utils.d.ts.map +1 -1
  140. package/tools/board-utils.js +81 -29
  141. package/tools/boot-test-utils.d.ts +10 -9
  142. package/tools/boot-test-utils.d.ts.map +1 -1
  143. package/tools/boot-test-utils.js +16 -6
  144. package/tools/viz.mk +17 -0
  145. package/index.js +0 -11
  146. package/src/core/types-ambient.d.ts +0 -475
  147. package/src/core/types-ambient.js +0 -1
  148. package/src/proposals/zcf-proposal.d.ts +0 -30
  149. package/src/proposals/zcf-proposal.d.ts.map +0 -1
  150. package/src/proposals/zcf-proposal.js +0 -45
  151. package/tsconfig.build.json +0 -6
package/src/mintHolder.js CHANGED
@@ -12,9 +12,9 @@ import {
12
12
  /**
13
13
  * @template {AssetKind} K
14
14
  * @typedef {{
15
- * keyword: string;
16
- * assetKind: K;
17
- * displayInfo: DisplayInfo;
15
+ * keyword: string,
16
+ * assetKind: K,
17
+ * displayInfo: DisplayInfo,
18
18
  * }} IssuerInfo<K>
19
19
  */
20
20
 
@@ -32,22 +32,17 @@ function provideIssuerKit(zcf, baggage) {
32
32
  }
33
33
  }
34
34
 
35
- /** @type {ContractMeta} */
36
- export const meta = {
37
- upgradability: 'canUpgrade',
38
- };
39
- harden(meta);
40
-
41
35
  /**
42
- * This contract holds one mint; it basically wraps makeIssuerKit in its own
43
- * contract, and hence in its own vat.
36
+ * This contract holds one mint; it basically wraps
37
+ * makeIssuerKit in its own contract, and hence in
38
+ * its own vat.
44
39
  *
45
40
  * @template {AssetKind} K
46
41
  * @param {ZCF<IssuerInfo<K>>} zcf
47
42
  * @param {undefined} _privateArgs
48
43
  * @param {Baggage} instanceBaggage
49
44
  */
50
- export const start = (zcf, _privateArgs, instanceBaggage) => {
45
+ export const prepare = (zcf, _privateArgs, instanceBaggage) => {
51
46
  const { mint, issuer } = provideIssuerKit(zcf, instanceBaggage);
52
47
 
53
48
  return {
@@ -55,4 +50,4 @@ export const start = (zcf, _privateArgs, instanceBaggage) => {
55
50
  creatorFacet: mint,
56
51
  };
57
52
  };
58
- harden(start);
53
+ harden(prepare);
package/src/nameHub.d.ts CHANGED
@@ -1,22 +1,6 @@
1
1
  export namespace NameHubIKit {
2
- let nameHub: import("@endo/patterns").InterfaceGuard<{
3
- has: import("@endo/patterns").MethodGuard;
4
- lookup: import("@endo/patterns").MethodGuard;
5
- entries: import("@endo/patterns").MethodGuard;
6
- values: import("@endo/patterns").MethodGuard;
7
- keys: import("@endo/patterns").MethodGuard;
8
- }>;
9
- let nameAdmin: import("@endo/patterns").InterfaceGuard<{
10
- provideChild: import("@endo/patterns").MethodGuard;
11
- reserve: import("@endo/patterns").MethodGuard;
12
- default: import("@endo/patterns").MethodGuard;
13
- set: import("@endo/patterns").MethodGuard;
14
- onUpdate: import("@endo/patterns").MethodGuard;
15
- update: import("@endo/patterns").MethodGuard;
16
- lookupAdmin: import("@endo/patterns").MethodGuard;
17
- delete: import("@endo/patterns").MethodGuard;
18
- readonly: import("@endo/patterns").MethodGuard;
19
- }>;
2
+ const nameHub: import("@endo/patterns").InterfaceGuard;
3
+ const nameAdmin: import("@endo/patterns").InterfaceGuard;
20
4
  }
21
5
  export function prepareMixinMyAddress(zone: import('@agoric/zone').Zone): (nameAdmin: import('./types.js').NameAdmin, address: string) => import("@agoric/internal/src/callback.js").Farable<import("./types.js").MyAddressNameAdmin>;
22
6
  export function prepareNameHubKit(zone: import('@agoric/zone').Zone): () => import('./types').NameHubKit;
@@ -1 +1 @@
1
- {"version":3,"file":"nameHub.d.ts","sourceRoot":"","sources":["nameHub.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAgDO,4CADK,OAAO,cAAc,EAAE,IAAI,eA4B1B,OAAO,YAAY,EAAE,SAAS,WAC9B,MAAM,iGAalB;AA4CM,wCAFI,OAAO,cAAc,EAAE,IAAI,SAcnB,OAAO,SAAS,EAAE,UAAU,CA0N9C;AA1NY,kCAAM,OAAO,SAAS,EAAE,UAAU,CAAA"}
1
+ {"version":3,"file":"nameHub.d.ts","sourceRoot":"","sources":["nameHub.js"],"names":[],"mappings":";;;;AAgDO,4CADK,OAAO,cAAc,EAAE,IAAI,eAwB1B,OAAO,YAAY,EAAE,SAAS,WAC9B,MAAM,iGAalB;AA4CM,wCAFI,OAAO,cAAc,EAAE,IAAI,SAcnB,OAAO,SAAS,EAAE,UAAU,CAqN9C;AArNY,kCAAM,OAAO,SAAS,EAAE,UAAU,CAAA"}
package/src/nameHub.js CHANGED
@@ -3,14 +3,14 @@
3
3
  import { assert, NonNullish } from '@agoric/assert';
4
4
  import { E } from '@endo/far';
5
5
  import { makePromiseKit } from '@endo/promise-kit';
6
- import { M, getInterfaceGuardPayload } from '@endo/patterns';
6
+ import { M } from '@agoric/store';
7
7
 
8
8
  import './types.js';
9
9
  import {
10
10
  makeSyncMethodCallback,
11
11
  prepareGuardedAttenuator,
12
12
  } from '@agoric/internal/src/callback.js';
13
- import { makeHeapZone } from '@agoric/zone';
13
+ import { heapZone } from '@agoric/zone';
14
14
  import { deeplyFulfilled } from '@endo/marshal';
15
15
 
16
16
  const { Fail, quote: q } = assert;
@@ -48,14 +48,10 @@ export const NameHubIKit = harden({
48
48
  /** @param {import('@agoric/zone').Zone} zone */
49
49
  export const prepareMixinMyAddress = zone => {
50
50
  const MixinI = M.interface('MyAddressNameAdmin', {
51
- ...getInterfaceGuardPayload(NameHubIKit.nameAdmin).methodGuards,
51
+ ...NameHubIKit.nameAdmin.methodGuards,
52
52
  getMyAddress: M.call().returns(M.string()),
53
53
  });
54
- /**
55
- * @type {import('@agoric/internal/src/callback.js').MakeAttenuator<
56
- * import('./types.js').MyAddressNameAdmin
57
- * >}
58
- */
54
+ /** @type {import('@agoric/internal/src/callback.js').MakeAttenuator<import('./types.js').MyAddressNameAdmin>} */
59
55
  const mixin = prepareGuardedAttenuator(zone, MixinI, {
60
56
  tag: 'MyAddressNameAdmin',
61
57
  });
@@ -111,7 +107,7 @@ const provideWeak = (store, key, make) => {
111
107
 
112
108
  /**
113
109
  * @param {import('./types.js').NameHubUpdateHandler | undefined} updateCallback
114
- * @param {import('./types.js').NameHub} hub
110
+ * @param {NameHub} hub
115
111
  * @param {unknown} [_newValue]
116
112
  */
117
113
  const updated = (updateCallback, hub, _newValue = undefined) => {
@@ -126,8 +122,8 @@ const updated = (updateCallback, hub, _newValue = undefined) => {
126
122
  };
127
123
 
128
124
  /**
129
- * Make two facets of a node in a name hierarchy: the nameHub is read access and
130
- * the nameAdmin is write access.
125
+ * Make two facets of a node in a name hierarchy: the nameHub
126
+ * is read access and the nameAdmin is write access.
131
127
  *
132
128
  * @param {import('@agoric/zone').Zone} zone
133
129
  */
@@ -143,7 +139,7 @@ export const prepareNameHubKit = zone => {
143
139
  /** @param {{}} me */
144
140
  const my = me => provideWeak(ephemera, me, init1);
145
141
 
146
- /** @type {() => import('./types').NameHubKit} */
142
+ /** @type {() => import('./types').NameHubKit } */
147
143
  const makeNameHubKit = zone.exoClassKit(
148
144
  'NameHubKit',
149
145
  NameHubIKit,
@@ -216,7 +212,8 @@ export const prepareNameHubKit = zone => {
216
212
  const { keyToAdmin, keyToValue } = this.state;
217
213
  if (keyToAdmin.has(key)) {
218
214
  const childAdmin = keyToAdmin.get(key);
219
- /** @type {import('./types.js').NameHub} */
215
+ // XXX ts-ignore because @agoric/web-components lint fails
216
+ /** @type {NameHub} */
220
217
  // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
221
218
  // @ts-ignore if an admin is present, it should be a namehub
222
219
  const childHub = keyToValue.get(key);
@@ -224,7 +221,7 @@ export const prepareNameHubKit = zone => {
224
221
  }
225
222
  const child = makeNameHubKit();
226
223
  await Promise.all(reserved.map(k => child.nameAdmin.reserve(k)));
227
- void nameAdmin.update(key, child.nameHub, child.nameAdmin);
224
+ nameAdmin.update(key, child.nameHub, child.nameAdmin);
228
225
  return child;
229
226
  },
230
227
  async reserve(key) {
@@ -266,7 +263,7 @@ export const prepareNameHubKit = zone => {
266
263
  return /** @type {any} */ (keyToValue.get(key));
267
264
  }
268
265
  }
269
- void nameAdmin.update(key, newValue, adminValue);
266
+ nameAdmin.update(key, newValue, adminValue);
270
267
  return newValue;
271
268
  },
272
269
  set(key, newValue, adminValue) {
@@ -274,7 +271,7 @@ export const prepareNameHubKit = zone => {
274
271
  keyToValue.has(key) || Fail`key ${key} is not already initialized`;
275
272
 
276
273
  const { nameAdmin } = this.facets;
277
- void nameAdmin.update(key, newValue, adminValue);
274
+ nameAdmin.update(key, newValue, adminValue);
278
275
  },
279
276
  onUpdate(fn) {
280
277
  const { state } = this;
@@ -287,13 +284,7 @@ export const prepareNameHubKit = zone => {
287
284
  const { keyToPK, keyToAdminPK } = my(this.facets.nameHub);
288
285
  const { keyToValue, keyToAdmin, updateCallback } = this.state;
289
286
 
290
- /**
291
- * @type {[
292
- * Map<string, PromiseKit<unknown>>,
293
- * MapStore<string, unknown>,
294
- * unknown,
295
- * ][]}
296
- */
287
+ /** @type {[Map<string, PromiseKit<unknown>>, MapStore<string, unknown>, unknown][]} */
297
288
  const valueMapEntries = [
298
289
  [keyToAdminPK, keyToAdmin, adminValue],
299
290
  [keyToPK, keyToValue, newValue],
@@ -364,9 +355,9 @@ export const prepareNameHubKit = zone => {
364
355
  };
365
356
 
366
357
  /**
367
- * Make two facets of a node in a name hierarchy: the nameHub is read access and
368
- * the nameAdmin is write access.
358
+ * Make two facets of a node in a name hierarchy: the nameHub
359
+ * is read access and the nameAdmin is write access.
369
360
  *
370
361
  * @returns {import('./types.js').NameHubKit}
371
362
  */
372
- export const makeNameHubKit = prepareNameHubKit(makeHeapZone());
363
+ export const makeNameHubKit = prepareNameHubKit(heapZone);
@@ -1 +1 @@
1
- {"version":3,"file":"network-proposal.d.ts","sourceRoot":"","sources":["network-proposal.js"],"names":[],"mappings":"AAgBO,+CAHI,QAAQ,GAAG,OAAO,kGA2D5B;AAmBM,wJAhBI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,UAAU,GAAG,CAAC,CAAA;KAAE,CAAC;IACjD,OAAW,EAAE;QAAE,UAAU,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE,CAAC;CACxC;;oBAEqB,YAAY;gBAAU,YAAY;;kBA+D1D;AAEM;;;;;;;;;;;;;;;;;;;;;;EAmBL;iCAjFmB,SAAS,KAAK,UAAU,YAAY,KAAK,KAAK,MAAM;sBAE5D;IACZ,OAAW,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9B,GAAO,EAAE,KAAK,MAAM,CAAC,CAAC;IACtB,YAAgB,EAAE,KAAK,eAAe,GAAG,SAAS,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"network-proposal.d.ts","sourceRoot":"","sources":["network-proposal.js"],"names":[],"mappings":"AAgBO,+CAHI,QAAQ,GAAG,OAAO,kGA2D5B;AAgBM,wJAbK,eAAe,GAAG;IAC7B,OAAW,EAAE;QAAE,eAAe,EAAE,UAAU,GAAG,CAAC,CAAA;KAAE,CAAA;IAChD,OAAW,EAAE;QAAE,UAAU,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE,CAAA;CACvC;;oBAGoB,YAAY;gBAAU,YAAY;;kBA2DzD;AAEM;;;;;;;;;;;;;;;;;;;;;;EAmBL;iCA9EoB,SAAS,KAAK,UAAU,YACxB,KAAK,KAAK,MAAM;sBAEzB;IAAE,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC;IAAC,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAAC,YAAY,EAAE,KAAK,eAAe,GAAG,SAAS,CAAC,CAAA;CAAC"}
@@ -1,11 +1,11 @@
1
1
  // @ts-check
2
2
  import { E, Far } from '@endo/far';
3
- import { BridgeId as BRIDGE_ID } from '@agoric/internal';
4
3
  import {
5
4
  makeLoopbackProtocolHandler,
6
5
  makeEchoConnectionHandler,
7
6
  makeNonceMaker,
8
- } from '@agoric/network';
7
+ } from '@agoric/swingset-vat/src/vats/network/index.js';
8
+ import { BridgeId as BRIDGE_ID } from '@agoric/internal';
9
9
 
10
10
  const NUM_IBC_PORTS_PER_CLIENT = 3;
11
11
  const INTERCHAIN_ACCOUNT_CONTROLLER_PORT_PREFIX = 'icacontroller-';
@@ -73,21 +73,18 @@ export const registerNetworkProtocols = async (vats, dibcBridgeManager) => {
73
73
  };
74
74
 
75
75
  /**
76
- * @param {BootstrapPowers & {
77
- * consume: { loadCriticalVat: VatLoader<any> };
78
- * produce: { networkVat: Producer<any> };
76
+ * @param { BootstrapPowers & {
77
+ * consume: { loadCriticalVat: VatLoader<any> }
78
+ * produce: { networkVat: Producer<any> }
79
79
  * }} powers
80
- * @param {object} options
81
- * @param {{ networkRef: VatSourceRef; ibcRef: VatSourceRef }} options.options
82
- * // TODO: why doesn't overloading VatLoader work???
83
80
  *
84
- * @typedef {((name: 'network') => NetworkVat) & ((name: 'ibc') => IBCVat)} VatLoader2
81
+ * @param {object} options
82
+ * @param {{networkRef: VatSourceRef, ibcRef: VatSourceRef}} options.options
83
+ * // TODO: why doesn't overloading VatLoader work???
84
+ * @typedef { ((name: 'network') => NetworkVat) &
85
+ * ((name: 'ibc') => IBCVat) } VatLoader2
85
86
  *
86
- * @typedef {{
87
- * network: ERef<NetworkVat>;
88
- * ibc: ERef<IBCVat>;
89
- * provisioning: ERef<ProvisioningVat | undefined>;
90
- * }} NetVats
87
+ * @typedef {{ network: ERef<NetworkVat>, ibc: ERef<IBCVat>, provisioning: ERef<ProvisioningVat | undefined>}} NetVats
91
88
  */
92
89
  export const setupNetworkProtocols = async (
93
90
  {
@@ -102,7 +99,7 @@ export const setupNetworkProtocols = async (
102
99
  options,
103
100
  ) => {
104
101
  const { networkRef, ibcRef } = options.options;
105
- /** @type {NetVats} */
102
+ /** @type { NetVats } */
106
103
  const vats = {
107
104
  network: E(loadCriticalVat)('network', networkRef),
108
105
  ibc: E(loadCriticalVat)('ibc', ibcRef),
@@ -1,6 +1,6 @@
1
1
  export function restartVats({ consume }: BootstrapPowers & import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapSpace, { options }: {
2
2
  options: {
3
- skip: string[];
3
+ skip: Array<string>;
4
4
  };
5
5
  }): Promise<void>;
6
6
  export function getManifestForRestart(_powers: any, options: any): {
@@ -1 +1 @@
1
- {"version":3,"file":"restart-vats-proposal.d.ts","sourceRoot":"","sources":["restart-vats-proposal.js"],"names":[],"mappings":"AA+BO,yCALI,eAAe,GACzB,OAAW,wDAAwD,EAAE,qBAAqB;IAErD,OAAO,EAAlC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;kBA0G5B;AAGM;;;;;;;;;;;;;;;;;;EAkBL"}
1
+ {"version":3,"file":"restart-vats-proposal.d.ts","sourceRoot":"","sources":["restart-vats-proposal.js"],"names":[],"mappings":"AA+BO,yCAJI,eAAe,GAAG,OAAO,wDAAwD,EAAE,qBAAqB;IAEzE,OAAO,EAAtC;QAAE,IAAI,EAAE,MAAM,MAAM,CAAC,CAAA;KAAC;kBA4GhC;AAGM;;;;;;;;;;;;;;;;;;EAkBL"}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-await-in-loop */
1
2
  // @ts-check
2
3
 
3
4
  import { Fail } from '@agoric/assert';
@@ -24,10 +25,9 @@ const vatUpgradeStatus = {
24
25
  };
25
26
 
26
27
  /**
27
- * @param {BootstrapPowers &
28
- * import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapSpace} space
28
+ * @param {BootstrapPowers & import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapSpace} space
29
29
  * @param {object} config
30
- * @param {{ skip: string[] }} config.options
30
+ * @param {{ skip: Array<string>}} config.options
31
31
  */
32
32
  export const restartVats = async ({ consume }, { options }) => {
33
33
  console.log(HR);
@@ -53,6 +53,7 @@ export const restartVats = async ({ consume }, { options }) => {
53
53
 
54
54
  const failures = [];
55
55
  /**
56
+ *
56
57
  * @param {string} debugName
57
58
  * @param {Instance} instance
58
59
  * @param {ERef<AdminFacet>} adminFacet
@@ -61,6 +62,7 @@ export const restartVats = async ({ consume }, { options }) => {
61
62
  // TODO document that privateArgs cannot contain promises
62
63
  // TODO try making all the contract starts take resolved values
63
64
  const privateArgs = await deeplyFulfilledObject(
65
+ // @ts-expect-error cast
64
66
  harden(instancePrivateArgs.get(instance) || {}),
65
67
  );
66
68
 
@@ -0,0 +1,164 @@
1
+ export const privateArgsShape: import("@endo/patterns").Matcher;
2
+ export function prepare(zcf: ZCF<ProvisionTerms>, privateArgs: {
3
+ poolBank: import('@endo/far').ERef<import('./vat-bank.js').Bank>;
4
+ initialPoserInvitation: Invitation;
5
+ storageNode: StorageNode;
6
+ marshaller: Marshaller;
7
+ metricsOverride?: import("./provisionPoolKit.js").MetricsNotification | undefined;
8
+ }, baggage: MapStore<string, unknown>): Promise<{
9
+ creatorFacet: {
10
+ getParamMgrRetriever: () => {
11
+ get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
12
+ PerAccountInitialAmount: "amount";
13
+ } & {
14
+ Electorate: "invitation";
15
+ }>;
16
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
17
+ get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
18
+ PerAccountInitialAmount: "amount";
19
+ } & {
20
+ Electorate: "invitation";
21
+ }>;
22
+ }>;
23
+ getInvitation: (name: any) => Promise<Invitation<unknown, never>>;
24
+ getLimitedCreatorFacet: () => {
25
+ addRevivableAddresses(oldAddresses: string[]): void;
26
+ getWalletReviver(): {
27
+ reviveWallet(address: string): Promise<{
28
+ handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string>, canSpend?: boolean | undefined): Promise<void>;
29
+ getDepositFacet(): {
30
+ receive(payment: Payment<AssetKind>): Promise<Amount<AssetKind>>;
31
+ };
32
+ getOffersFacet(): {
33
+ executeOffer(offerSpec: import("@agoric/smart-wallet/src/offers.js").OfferSpec): Promise<void>;
34
+ tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
35
+ };
36
+ getCurrentSubscriber(): Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
37
+ getUpdatesSubscriber(): Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
38
+ getPublicTopics(): {
39
+ current: {
40
+ description: string;
41
+ subscriber: Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
42
+ storagePath: Promise<string>;
43
+ };
44
+ updates: {
45
+ description: string;
46
+ subscriber: Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
47
+ storagePath: Promise<string>;
48
+ };
49
+ };
50
+ }>;
51
+ ackWallet(address: string): boolean;
52
+ };
53
+ setReferences(erefs: import("./provisionPoolKit.js").ProvisionPoolKitReferences): Promise<void>;
54
+ makeHandler(): {
55
+ fromBridge: (obj: any) => Promise<void>;
56
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
57
+ fromBridge: (obj: any) => Promise<void>;
58
+ }>;
59
+ initPSM(brand: Brand<AssetKind>, instance: import("./provisionPoolKit.js").PsmInstance): void;
60
+ };
61
+ getGovernedApis: () => GovernedApis;
62
+ getGovernedApiNames: () => string[];
63
+ setOfferFilter: (strings: any) => Promise<void>;
64
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
65
+ getParamMgrRetriever: () => {
66
+ get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
67
+ PerAccountInitialAmount: "amount";
68
+ } & {
69
+ Electorate: "invitation";
70
+ }>;
71
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
72
+ get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{
73
+ PerAccountInitialAmount: "amount";
74
+ } & {
75
+ Electorate: "invitation";
76
+ }>;
77
+ }>;
78
+ getInvitation: (name: any) => Promise<Invitation<unknown, never>>;
79
+ getLimitedCreatorFacet: () => {
80
+ addRevivableAddresses(oldAddresses: string[]): void;
81
+ getWalletReviver(): {
82
+ reviveWallet(address: string): Promise<{
83
+ handleBridgeAction(actionCapData: import("@endo/marshal").CapData<string>, canSpend?: boolean | undefined): Promise<void>;
84
+ getDepositFacet(): {
85
+ receive(payment: Payment<AssetKind>): Promise<Amount<AssetKind>>;
86
+ };
87
+ getOffersFacet(): {
88
+ executeOffer(offerSpec: import("@agoric/smart-wallet/src/offers.js").OfferSpec): Promise<void>;
89
+ tryExitOffer(offerId: import("@agoric/smart-wallet/src/offers.js").OfferId): Promise<void>;
90
+ };
91
+ getCurrentSubscriber(): Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
92
+ getUpdatesSubscriber(): Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
93
+ getPublicTopics(): {
94
+ current: {
95
+ description: string;
96
+ subscriber: Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").CurrentWalletRecord>;
97
+ storagePath: Promise<string>;
98
+ };
99
+ updates: {
100
+ description: string;
101
+ subscriber: Subscriber<import("@agoric/smart-wallet/src/smartWallet.js").UpdateRecord>;
102
+ storagePath: Promise<string>;
103
+ };
104
+ };
105
+ }>;
106
+ ackWallet(address: string): boolean;
107
+ };
108
+ setReferences(erefs: import("./provisionPoolKit.js").ProvisionPoolKitReferences): Promise<void>;
109
+ makeHandler(): {
110
+ fromBridge: (obj: any) => Promise<void>;
111
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
112
+ fromBridge: (obj: any) => Promise<void>;
113
+ }>;
114
+ initPSM(brand: Brand<AssetKind>, instance: import("./provisionPoolKit.js").PsmInstance): void;
115
+ };
116
+ getGovernedApis: () => GovernedApis;
117
+ getGovernedApiNames: () => string[];
118
+ setOfferFilter: (strings: any) => Promise<void>;
119
+ }>;
120
+ publicFacet: {
121
+ getAmount: (name: string) => Amount<AssetKind>;
122
+ getBrand: (name: string) => Brand<AssetKind>;
123
+ getInstance: (name: string) => Instance;
124
+ getInstallation: (name: string) => Installation<any>;
125
+ getInvitationAmount: (name: string) => Amount<"set">;
126
+ getNat: (name: string) => bigint;
127
+ getRatio: (name: string) => Ratio;
128
+ getString: (name: string) => string;
129
+ getTimestamp: (name: string) => import("@agoric/time/src/types.js").TimestampRecord;
130
+ getRelativeTime: (name: string) => import("@agoric/time/src/types.js").RelativeTimeRecord;
131
+ getUnknown: (name: string) => any;
132
+ getSubscription: () => StoredSubscription<GovernanceSubscriptionState>;
133
+ getGovernedParams: () => ERef<ParamStateRecord>;
134
+ getMetrics(): Subscriber<import("./provisionPoolKit.js").MetricsNotification>;
135
+ getPublicTopics(): {
136
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./provisionPoolKit.js").MetricsNotification>;
137
+ };
138
+ } & import("@endo/eventual-send").RemotableBrand<{}, {
139
+ getAmount: (name: string) => Amount<AssetKind>;
140
+ getBrand: (name: string) => Brand<AssetKind>;
141
+ getInstance: (name: string) => Instance;
142
+ getInstallation: (name: string) => Installation<any>;
143
+ getInvitationAmount: (name: string) => Amount<"set">;
144
+ getNat: (name: string) => bigint;
145
+ getRatio: (name: string) => Ratio;
146
+ getString: (name: string) => string;
147
+ getTimestamp: (name: string) => import("@agoric/time/src/types.js").TimestampRecord;
148
+ getRelativeTime: (name: string) => import("@agoric/time/src/types.js").RelativeTimeRecord;
149
+ getUnknown: (name: string) => any;
150
+ getSubscription: () => StoredSubscription<GovernanceSubscriptionState>;
151
+ getGovernedParams: () => ERef<ParamStateRecord>;
152
+ getMetrics(): Subscriber<import("./provisionPoolKit.js").MetricsNotification>;
153
+ getPublicTopics(): {
154
+ metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic<import("./provisionPoolKit.js").MetricsNotification>;
155
+ };
156
+ }>;
157
+ }>;
158
+ /**
159
+ * TODO: ERef<GovernedCreatorFacet<ProvisionCreator>>
160
+ */
161
+ export type ProvisionTerms = StandardTerms & GovernanceTerms<{
162
+ PerAccountInitialAmount: 'amount';
163
+ }>;
164
+ //# sourceMappingURL=provisionPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provisionPool.d.ts","sourceRoot":"","sources":["provisionPool.js"],"names":[],"mappings":"AAgBA,gEAWE;AAmBK,6BAVI,IAAI,cAAc,CAAC;cAEf,OAAO,WAAW,EAAE,IAAI,CAAC,OAAO,eAAe,EAAE,IAAI,CAAC;4BACxC,UAAU;iBACrB,WAAW;gBACZ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqE1B;;;;6BAhFY,aAAa,GAAG,gBAAgB;IAC5C,uBAA4B,EAAE,QAAQ,CAAC;CAClC,CAAC"}
@@ -0,0 +1,113 @@
1
+ // @jessie-check
2
+ // @ts-check
3
+
4
+ import {
5
+ handleParamGovernance,
6
+ ParamTypes,
7
+ publicMixinAPI,
8
+ } from '@agoric/governance';
9
+ import { InvitationShape } from '@agoric/governance/src/typeGuards.js';
10
+ import { M } from '@agoric/store';
11
+ import { prepareExo } from '@agoric/vat-data';
12
+ import { provideSingleton } from '@agoric/zoe/src/contractSupport/durability.js';
13
+ import { prepareRecorderKitMakers } from '@agoric/zoe/src/contractSupport/recorder.js';
14
+ import { TopicsRecordShape } from '@agoric/zoe/src/contractSupport/topics.js';
15
+ import { prepareProvisionPoolKit } from './provisionPoolKit.js';
16
+
17
+ export const privateArgsShape = M.splitRecord(
18
+ harden({
19
+ poolBank: M.eref(M.remotable('bank')),
20
+ storageNode: M.eref(M.remotable('storageNode')),
21
+ marshaller: M.eref(M.remotable('marshaller')),
22
+ }),
23
+ harden({
24
+ // only necessary on first invocation, not subsequent
25
+ initialPoserInvitation: InvitationShape,
26
+ metricsOverride: M.recordOf(M.string()),
27
+ }),
28
+ );
29
+
30
+ /**
31
+ * @typedef {StandardTerms & GovernanceTerms<{
32
+ * PerAccountInitialAmount: 'amount',
33
+ * }>} ProvisionTerms
34
+ *
35
+ * TODO: ERef<GovernedCreatorFacet<ProvisionCreator>>
36
+ *
37
+ * @param {ZCF<ProvisionTerms>} zcf
38
+ * @param {{
39
+ * poolBank: import('@endo/far').ERef<import('./vat-bank.js').Bank>,
40
+ * initialPoserInvitation: Invitation,
41
+ * storageNode: StorageNode,
42
+ * marshaller: Marshaller,
43
+ * metricsOverride?: import('./provisionPoolKit').MetricsNotification,
44
+ * }} privateArgs
45
+ * @param {import('@agoric/vat-data').Baggage} baggage
46
+ */
47
+ export const prepare = async (zcf, privateArgs, baggage) => {
48
+ const { poolBank, metricsOverride } = privateArgs;
49
+
50
+ const { makeRecorderKit } = prepareRecorderKitMakers(
51
+ baggage,
52
+ privateArgs.marshaller,
53
+ );
54
+
55
+ // Governance
56
+ const { publicMixin, makeDurableGovernorFacet, params } =
57
+ await handleParamGovernance(
58
+ zcf,
59
+ privateArgs.initialPoserInvitation,
60
+ {
61
+ PerAccountInitialAmount: ParamTypes.AMOUNT,
62
+ },
63
+ privateArgs.storageNode,
64
+ privateArgs.marshaller,
65
+ );
66
+
67
+ const makeProvisionPoolKit = prepareProvisionPoolKit(baggage, {
68
+ makeRecorderKit,
69
+ params,
70
+ poolBank,
71
+ zcf,
72
+ });
73
+
74
+ const provisionPoolKit = await provideSingleton(
75
+ baggage,
76
+ 'provisionPoolKit',
77
+ () =>
78
+ makeProvisionPoolKit({
79
+ // XXX governance can change the brand of the amount but should only be able to change the value
80
+ // NB: changing the brand will break this pool
81
+ poolBrand: params.getPerAccountInitialAmount().brand,
82
+ storageNode: privateArgs.storageNode,
83
+ }),
84
+ kit => kit.helper.start({ metrics: metricsOverride }),
85
+ );
86
+
87
+ const publicFacet = prepareExo(
88
+ baggage,
89
+ 'Provisioning Pool public',
90
+ M.interface('ProvisionPool', {
91
+ getMetrics: M.call().returns(M.remotable('MetricsSubscriber')),
92
+ getPublicTopics: M.call().returns(TopicsRecordShape),
93
+ ...publicMixinAPI,
94
+ }),
95
+ {
96
+ getMetrics() {
97
+ return provisionPoolKit.public.getPublicTopics().metrics.subscriber;
98
+ },
99
+ getPublicTopics() {
100
+ return provisionPoolKit.public.getPublicTopics();
101
+ },
102
+ ...publicMixin,
103
+ },
104
+ );
105
+
106
+ return harden({
107
+ creatorFacet: makeDurableGovernorFacet(baggage, provisionPoolKit.machine)
108
+ .governorFacet,
109
+ publicFacet,
110
+ });
111
+ };
112
+
113
+ harden(prepare);