@agoric/vats 0.15.2-dev-3d98aac.0 → 0.15.2-dev-b0669ee.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/vats",
3
- "version": "0.15.2-dev-3d98aac.0+3d98aac",
3
+ "version": "0.15.2-dev-b0669ee.0+b0669ee",
4
4
  "description": "Agoric's Vat library",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -22,19 +22,19 @@
22
22
  "author": "Agoric",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@agoric/cosmic-proto": "0.4.1-dev-3d98aac.0+3d98aac",
26
- "@agoric/ertp": "0.16.3-dev-3d98aac.0+3d98aac",
27
- "@agoric/governance": "0.10.4-dev-3d98aac.0+3d98aac",
28
- "@agoric/internal": "0.3.3-dev-3d98aac.0+3d98aac",
29
- "@agoric/network": "0.1.1-dev-3d98aac.0+3d98aac",
30
- "@agoric/notifier": "0.6.3-dev-3d98aac.0+3d98aac",
31
- "@agoric/store": "0.9.3-dev-3d98aac.0+3d98aac",
32
- "@agoric/swingset-vat": "0.32.3-dev-3d98aac.0+3d98aac",
33
- "@agoric/time": "0.3.3-dev-3d98aac.0+3d98aac",
34
- "@agoric/vat-data": "0.5.3-dev-3d98aac.0+3d98aac",
35
- "@agoric/vow": "0.1.1-dev-3d98aac.0+3d98aac",
36
- "@agoric/zoe": "0.26.3-dev-3d98aac.0+3d98aac",
37
- "@agoric/zone": "0.2.3-dev-3d98aac.0+3d98aac",
25
+ "@agoric/cosmic-proto": "0.4.1-dev-b0669ee.0+b0669ee",
26
+ "@agoric/ertp": "0.16.3-dev-b0669ee.0+b0669ee",
27
+ "@agoric/governance": "0.10.4-dev-b0669ee.0+b0669ee",
28
+ "@agoric/internal": "0.3.3-dev-b0669ee.0+b0669ee",
29
+ "@agoric/network": "0.1.1-dev-b0669ee.0+b0669ee",
30
+ "@agoric/notifier": "0.6.3-dev-b0669ee.0+b0669ee",
31
+ "@agoric/store": "0.9.3-dev-b0669ee.0+b0669ee",
32
+ "@agoric/swingset-vat": "0.32.3-dev-b0669ee.0+b0669ee",
33
+ "@agoric/time": "0.3.3-dev-b0669ee.0+b0669ee",
34
+ "@agoric/vat-data": "0.5.3-dev-b0669ee.0+b0669ee",
35
+ "@agoric/vow": "0.1.1-dev-b0669ee.0+b0669ee",
36
+ "@agoric/zoe": "0.26.3-dev-b0669ee.0+b0669ee",
37
+ "@agoric/zone": "0.2.3-dev-b0669ee.0+b0669ee",
38
38
  "@endo/errors": "^1.2.9",
39
39
  "@endo/far": "^1.1.10",
40
40
  "@endo/import-bundle": "^1.3.3",
@@ -47,7 +47,7 @@
47
47
  "jessie.js": "^0.3.4"
48
48
  },
49
49
  "devDependencies": {
50
- "@agoric/swingset-liveslots": "0.10.3-dev-3d98aac.0+3d98aac",
50
+ "@agoric/swingset-liveslots": "0.10.3-dev-b0669ee.0+b0669ee",
51
51
  "@endo/bundle-source": "^3.5.1",
52
52
  "@endo/init": "^1.1.8",
53
53
  "ava": "^5.3.0",
@@ -79,5 +79,5 @@
79
79
  "typeCoverage": {
80
80
  "atLeast": 90.39
81
81
  },
82
- "gitHead": "3d98aacc1e35f9e3cc96378fb266f59ae9486997"
82
+ "gitHead": "b0669eeff623a06ee120736a17d5cfe828d42ef4"
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promise-space.d.ts","sourceRoot":"","sources":["promise-space.js"],"names":[],"mappings":"AAoBO,kCAHI,OAAO,OAAO,CAAC,GAAG,GAChB,iBAAiB,CAS1B;AAUG,sCAJI,QAAQ,CAAC,MAAM,EAAE,OAAO,eAAe,EAAE,QAAQ,CAAC,QAClD,OAAO,OAAO,CAAC,GAAG,GAChB,iBAAiB,CAkC7B;AAgBM,iCARiC,CAAC,SAA3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,wCAC3B,CAAC;IAAE,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAA;CAAE,GAAG,CAChC;IAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CACnC,CAAC,GACF,OAAO,OAAO,CAAC,GAAG,GACZ,cAAc,CAAC,CAAC,CAAC,CAuG7B;gCApLY;IACR,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"promise-space.d.ts","sourceRoot":"","sources":["promise-space.js"],"names":[],"mappings":"AAoBO,kCAHI,OAAO,OAAO,CAAC,GAAG,GAChB,iBAAiB,CAS1B;AAUG,sCAJI,QAAQ,CAAC,MAAM,EAAE,OAAO,eAAe,EAAE,QAAQ,CAAC,QAClD,OAAO,OAAO,CAAC,GAAG,GAChB,iBAAiB,CAkC7B;AAgBM,iCARiC,CAAC,SAA3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAE,wCAC3B,CAAC;IAAE,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAA;CAAE,GAAG,CAChC;IAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAC7B;IAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CACnC,CAAC,GACF,OAAO,OAAO,CAAC,GAAG,GACZ,cAAc,CAAC,CAAC,CAAC,CA2G7B;gCAxLY;IACR,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC"}
@@ -50,10 +50,10 @@ export const makeStoreHooks = (store, log = noop) => {
50
50
  return;
51
51
  }
52
52
  if (store.has(name)) {
53
- console.warn('cannot save duplicate:', name);
54
- return;
53
+ store.set(name, value);
54
+ } else {
55
+ store.init(name, value);
55
56
  }
56
- store.init(name, value);
57
57
  };
58
58
 
59
59
  return harden({
@@ -143,7 +143,9 @@ export const makePromiseSpace = (optsOrLog = {}) => {
143
143
  old.pk.reject(reason);
144
144
  };
145
145
  const reset = (reason = undefined) => {
146
- onReset(name);
146
+ if (!nameToState.has(name)) {
147
+ return;
148
+ }
147
149
  const old = provideState(name);
148
150
  if (!old.isSettling) {
149
151
  // we haven't produced a value yet, and there might be
@@ -157,7 +159,9 @@ export const makePromiseSpace = (optsOrLog = {}) => {
157
159
  // value through the replacement promise
158
160
  reject(reason);
159
161
  }
162
+
160
163
  // delete the state, so new callers will get a new promise kit
164
+ onReset(name);
161
165
  nameToState.delete(name);
162
166
  remaining.delete(name);
163
167
  };
@@ -1 +1 @@
1
- {"version":3,"file":"startWalletFactory.d.ts","sourceRoot":"","sources":["startWalletFactory.js"],"names":[],"mappings":"AAuFO,qnBArBI,eAAe,GACrB,qBAAqB,GACrB,cAAc,CAAC;IACb,6BAA6B,EAAE,OAAO,qCAAqC,EAAE,+BAA+B,CAAC;IAC7G,cAAc,EAAE;QACd,YAAY,EAAE,OAAO,CACnB,UAAU,CACpB,mEAAwE,CAAC,OAAO,CAAC,CACtE,CACF,CAAC,cAAc,CAAC,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;IACF,mBAAmB,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzE,4BAA4B,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;CAC5F,CAAC,4CACI;IACN,OAAO,CAAC,EAAE;QACR,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,iBAoLH;AAED;IACE,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCxB;EACD;AAEK;;;;;;QAxCL,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCxB;;;;;;EAcF;uCAnSY,QAAQ,OAAO,oBAAoB,CAAC;gCAZmB,aAAa;uBAT1D,gCAAgC;AAcvD;;;;;;;;GAQG;AAEH,2CATW,IAAI,CAAC,UAAU,CAAC,QAChB,YAAY,CACtB,OAAW,2CAA2C,EAAE,KAAK,CAC1D;;uBA0G6D,CAAC,cAC9D,aACK;iBAGC,CAAC;mBAE6B,kBAAkB;;8DAiJ7B,gBAC5B,0CACK,aAA2B,uCAKvB,yCAAkB;;KAnQ0C;6BAhB5C,WAAW"}
1
+ {"version":3,"file":"startWalletFactory.d.ts","sourceRoot":"","sources":["startWalletFactory.js"],"names":[],"mappings":"AAuFO,qnBArBI,eAAe,GACrB,qBAAqB,GACrB,cAAc,CAAC;IACb,6BAA6B,EAAE,OAAO,qCAAqC,EAAE,+BAA+B,CAAC;IAC7G,cAAc,EAAE;QACd,YAAY,EAAE,OAAO,CACnB,UAAU,CACpB,mEAAwE,CAAC,OAAO,CAAC,CACtE,CACF,CAAC,cAAc,CAAC,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC;IACF,mBAAmB,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzE,4BAA4B,EAAE,OAAO,aAAa,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;CAC5F,CAAC,4CACI;IACN,OAAO,CAAC,EAAE;QACR,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,iBAkNH;AAED;IACE,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCxB;EACD;AAEK;;;;;;QAxCL,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCxB;;;;;;EAcF;uCAjUY,QAAQ,OAAO,oBAAoB,CAAC;gCAZmB,aAAa;uBAT1D,gCAAgC;AAcvD;;;;;;;;GAQG;AAEH,2CATW,IAAI,CAAC,UAAU,CAAC,QAChB,YAAY,CACtB,OAAW,2CAA2C,EAAE,KAAK,CAC1D;;uBA0GkD,CAAC,cAAsB,aACxE;iBAIH,CAAF;mBAE6B,kBAAkB;;8DA2IpB,gBAA8B,0CAErC,aAInB,uCAEG,yCAAkB;;KA9PgD;6BAhB5C,WAAW"}
@@ -17,7 +17,7 @@ import {
17
17
  * @import {AdminFacet, ContractOf, InvitationAmount, ZCFMint} from '@agoric/zoe';
18
18
  */
19
19
 
20
- const trace = makeTracer('StartWF');
20
+ const trace = makeTracer('StartWF', 'verbose');
21
21
 
22
22
  /**
23
23
  * @param {ERef<ZoeService>} zoe
@@ -185,7 +185,11 @@ export const startWalletFactory = async (
185
185
 
186
186
  const marshaller = await E(board).getPublishingMarshaller();
187
187
  const poolBank = E(bankManager).getBankForAddress(poolAddr);
188
- const ppFacets = await E(startGovernedUpgradable)({
188
+
189
+ // We cannot await the start of the provisionPool, since
190
+ // startGovernedUpgradable may potentially only fulfil after the
191
+ // inter-protocol init-core.js is settled.
192
+ const ppFacetsP = E(startGovernedUpgradable)({
189
193
  installation: provisionPool,
190
194
  terms: {},
191
195
  privateArgs: harden({
@@ -202,8 +206,6 @@ export const startWalletFactory = async (
202
206
  },
203
207
  },
204
208
  });
205
- provisionPoolStartResult.resolve(ppFacets);
206
- instanceProduce.provisionPool.resolve(ppFacets.instance);
207
209
 
208
210
  const terms = await deeplyFulfilled(
209
211
  harden({
@@ -224,32 +226,60 @@ export const startWalletFactory = async (
224
226
  privateArgs: {
225
227
  storageNode: walletStorageNode,
226
228
  walletBridgeManager,
227
- walletReviver: E(ppFacets.creatorFacet).getWalletReviver(),
229
+ walletReviver: E(E.get(ppFacetsP).creatorFacet).getWalletReviver(),
228
230
  },
229
231
  label: 'walletFactory',
230
232
  });
231
233
  walletFactoryStartResult.resolve(wfFacets);
232
234
  instanceProduce.walletFactory.resolve(wfFacets.instance);
233
235
 
234
- await Promise.all([
235
- E(ppFacets.creatorFacet).addRevivableAddresses(oldAddresses),
236
- E(ppFacets.creatorFacet).setReferences({
237
- bankManager,
238
- namesByAddressAdmin,
239
- walletFactory: wfFacets.creatorFacet,
240
- }),
241
- publishRevivableWalletState(oldAddresses, marshaller, walletStorageNode),
242
- ]);
243
- const bridgeHandler = await E(ppFacets.creatorFacet).makeHandler();
236
+ await publishRevivableWalletState(
237
+ oldAddresses,
238
+ marshaller,
239
+ walletStorageNode,
240
+ );
244
241
 
245
- await Promise.all([
246
- E(provisionWalletBridgeManager).initHandler(bridgeHandler),
247
- E(E.get(econCharterKit).creatorFacet).addInstance(
248
- ppFacets.instance,
249
- ppFacets.governorCreatorFacet,
250
- 'provisionPool',
251
- ),
252
- ]);
242
+ // The following initialization can only be done after the provisionPool
243
+ // settles, and that requires the economicCommittee
244
+ const initAfterProvisionPool = async () => {
245
+ trace('initAfterProvisionPool awaiting provisionPoolFacets');
246
+ const ppFacets = await ppFacetsP;
247
+ trace('initAfterProvisionPool settled provisionPoolFacets');
248
+
249
+ provisionPoolStartResult.resolve(ppFacets);
250
+ instanceProduce.provisionPool.resolve(ppFacets.instance);
251
+
252
+ await Promise.all([
253
+ E(ppFacets.creatorFacet).addRevivableAddresses(oldAddresses),
254
+ E(ppFacets.creatorFacet).setReferences({
255
+ bankManager,
256
+ namesByAddressAdmin,
257
+ walletFactory: wfFacets.creatorFacet,
258
+ }),
259
+ ]);
260
+
261
+ const bridgeHandler = await E(ppFacets.creatorFacet).makeHandler();
262
+
263
+ await Promise.all([
264
+ E(provisionWalletBridgeManager).initHandler(bridgeHandler),
265
+ E(E.get(econCharterKit).creatorFacet).addInstance(
266
+ ppFacets.instance,
267
+ ppFacets.governorCreatorFacet,
268
+ 'provisionPool',
269
+ ),
270
+ ]);
271
+ trace('initAfterProvisionPool done');
272
+ };
273
+
274
+ // Don't block until ppFacetsP settles, but if rejected, report and leave
275
+ // unhandled.
276
+ initAfterProvisionPool().catch(e => {
277
+ const err = assert.error(
278
+ assert.details`initAfterProvisionPool rejected with reason: ${e}`,
279
+ );
280
+ console.error(err);
281
+ throw err;
282
+ });
253
283
 
254
284
  // TODO: move to its own producer, omitted in some configurations
255
285
  client.resolve(
package/src/nameHub.js CHANGED
@@ -335,7 +335,7 @@ export const prepareNameHubKit = zone => {
335
335
  if (pmap.has(key)) {
336
336
  // Reject only if already exists.
337
337
  const old = NonNullish(pmap.get(key));
338
- old.reject(Error(`Value has been deleted`));
338
+ old.reject(Error(`Value for ${key} has been deleted`));
339
339
  // Silence unhandled rejections.
340
340
  void old.promise.catch(_ => {});
341
341
  }