@agoric/inter-protocol 0.16.2-dev-c1ae023.0 → 0.16.2-dev-5affa34.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/inter-protocol",
|
|
3
|
-
"version": "0.16.2-dev-
|
|
3
|
+
"version": "0.16.2-dev-5affa34.0+5affa34",
|
|
4
4
|
"description": "Core cryptoeconomy contracts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -31,16 +31,16 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
35
|
-
"@agoric/governance": "0.10.4-dev-
|
|
36
|
-
"@agoric/internal": "0.3.3-dev-
|
|
37
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
38
|
-
"@agoric/store": "0.9.3-dev-
|
|
39
|
-
"@agoric/time": "0.3.3-dev-
|
|
40
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
41
|
-
"@agoric/vats": "0.15.2-dev-
|
|
42
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
43
|
-
"@agoric/zone": "0.2.3-dev-
|
|
34
|
+
"@agoric/ertp": "0.16.3-dev-5affa34.0+5affa34",
|
|
35
|
+
"@agoric/governance": "0.10.4-dev-5affa34.0+5affa34",
|
|
36
|
+
"@agoric/internal": "0.3.3-dev-5affa34.0+5affa34",
|
|
37
|
+
"@agoric/notifier": "0.6.3-dev-5affa34.0+5affa34",
|
|
38
|
+
"@agoric/store": "0.9.3-dev-5affa34.0+5affa34",
|
|
39
|
+
"@agoric/time": "0.3.3-dev-5affa34.0+5affa34",
|
|
40
|
+
"@agoric/vat-data": "0.5.3-dev-5affa34.0+5affa34",
|
|
41
|
+
"@agoric/vats": "0.15.2-dev-5affa34.0+5affa34",
|
|
42
|
+
"@agoric/zoe": "0.26.3-dev-5affa34.0+5affa34",
|
|
43
|
+
"@agoric/zone": "0.2.3-dev-5affa34.0+5affa34",
|
|
44
44
|
"@endo/captp": "^4.4.3",
|
|
45
45
|
"@endo/errors": "^1.2.8",
|
|
46
46
|
"@endo/eventual-send": "^1.2.8",
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"jessie.js": "^0.3.4"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@agoric/smart-wallet": "0.5.4-dev-
|
|
55
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
56
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
54
|
+
"@agoric/smart-wallet": "0.5.4-dev-5affa34.0+5affa34",
|
|
55
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-5affa34.0+5affa34",
|
|
56
|
+
"@agoric/swingset-vat": "0.32.3-dev-5affa34.0+5affa34",
|
|
57
57
|
"@endo/bundle-source": "^3.5.0",
|
|
58
58
|
"@endo/init": "^1.1.7",
|
|
59
59
|
"@endo/promise-kit": "^1.1.8",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"typeCoverage": {
|
|
85
85
|
"atLeast": 95.58
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "5affa34beb10ed922683ac7a972a7c447862c1a4"
|
|
88
88
|
}
|
|
@@ -56,7 +56,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
|
|
|
56
56
|
helper: {
|
|
57
57
|
/** Start non-durable processes (or restart if needed after vat restart) */
|
|
58
58
|
start(): void;
|
|
59
|
-
|
|
59
|
+
ensureQuoteNotifierWatched(): void;
|
|
60
60
|
/** @param {Timestamp} updateTime */
|
|
61
61
|
chargeAllVaults(updateTime: Timestamp): Promise<void>;
|
|
62
62
|
assetNotify(): Promise<void>;
|
|
@@ -313,7 +313,7 @@ export function prepareVaultManagerKit(baggage: import("@agoric/swingset-liveslo
|
|
|
313
313
|
helper: {
|
|
314
314
|
/** Start non-durable processes (or restart if needed after vat restart) */
|
|
315
315
|
start(): void;
|
|
316
|
-
|
|
316
|
+
ensureQuoteNotifierWatched(): void;
|
|
317
317
|
/** @param {Timestamp} updateTime */
|
|
318
318
|
chargeAllVaults(updateTime: Timestamp): Promise<void>;
|
|
319
319
|
assetNotify(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaultManager.d.ts","sourceRoot":"","sources":["vaultManager.js"],"names":[],"mappings":"AAqFO,mCANM,CAAC,EACQ,CAAC,SAAT,GAAG,EAAG,yBACT,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WACpB,OAAO,4BAA4B,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,WACzD,CAAC,iBAqBX;AAwHM,gDATI,OAAO,4BAA4B,EAAE,OAAO,uDAC5C;IACN,GAAG,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;IACjD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,eAAe,EAAE,OAAO,6CAA6C,EAAE,eAAe,CAAC;IACvF,gBAAgB,EAAE,OAAO,6CAA6C,EAAE,gBAAgB,CAAC;IACzF,aAAa,EAAE,OAAO,oBAAoB,EAAE,kBAAkB,CAAC;CAChE,
|
|
1
|
+
{"version":3,"file":"vaultManager.d.ts","sourceRoot":"","sources":["vaultManager.js"],"names":[],"mappings":"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"}
|
|
@@ -227,6 +227,7 @@ export const prepareVaultManagerKit = (
|
|
|
227
227
|
{ zcf, marshaller, makeRecorderKit, factoryPowers },
|
|
228
228
|
) => {
|
|
229
229
|
const { priceAuthority, timerService, reservePublicFacet } = zcf.getTerms();
|
|
230
|
+
const watchedBrands = new Set();
|
|
230
231
|
|
|
231
232
|
const makeVault = prepareVault(baggage, makeRecorderKit, zcf);
|
|
232
233
|
|
|
@@ -424,52 +425,69 @@ export const prepareVaultManagerKit = (
|
|
|
424
425
|
},
|
|
425
426
|
});
|
|
426
427
|
|
|
427
|
-
void facets.helper.
|
|
428
|
+
void facets.helper.ensureQuoteNotifierWatched();
|
|
428
429
|
|
|
429
430
|
trace('helper.start() done');
|
|
430
431
|
},
|
|
431
|
-
|
|
432
|
+
ensureQuoteNotifierWatched() {
|
|
432
433
|
const { state } = this;
|
|
433
434
|
|
|
434
435
|
const { collateralBrand, collateralUnit, debtBrand, storageNode } =
|
|
435
436
|
state;
|
|
437
|
+
if (watchedBrands.has(collateralBrand)) {
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
watchedBrands.add(collateralBrand);
|
|
441
|
+
|
|
436
442
|
const ephemera = collateralEphemera(collateralBrand);
|
|
437
443
|
|
|
438
|
-
const
|
|
444
|
+
const quoteNotifierP = E(priceAuthority).makeQuoteNotifier(
|
|
439
445
|
collateralUnit,
|
|
440
446
|
debtBrand,
|
|
441
447
|
);
|
|
442
|
-
// @ts-expect-error XXX quotes
|
|
443
|
-
ephemera.storedQuotesNotifier = makeStoredNotifier(
|
|
444
|
-
// @ts-expect-error XXX quotes
|
|
445
|
-
quoteNotifier,
|
|
446
|
-
E(storageNode).makeChildNode('quotes'),
|
|
447
|
-
marshaller,
|
|
448
|
-
);
|
|
449
|
-
trace(
|
|
450
|
-
'helper.start() awaiting observe storedQuotesNotifier',
|
|
451
|
-
collateralBrand,
|
|
452
|
-
);
|
|
453
|
-
// NB: upon restart, there may not be a price for a while. If manager
|
|
454
|
-
// operations are permitted, ones that depend on price information
|
|
455
|
-
// will throw. See https://github.com/Agoric/agoric-sdk/issues/4317
|
|
456
|
-
const quoteWatcher = harden({
|
|
457
|
-
onFulfilled(value) {
|
|
458
|
-
trace('watcher updated price', value);
|
|
459
|
-
ephemera.storedCollateralQuote = value;
|
|
460
|
-
},
|
|
461
|
-
onRejected() {
|
|
462
|
-
// NOTE: drastic action, if the quoteNotifier fails, we don't know
|
|
463
|
-
// the value of the asset, nor do we know how long we'll be in
|
|
464
|
-
// ignorance. Best choice is to disable actions that require
|
|
465
|
-
// prices and restart when we have a new price. If we restart the
|
|
466
|
-
// notifier immediately, we'll trigger an infinite loop, so try
|
|
467
|
-
// to restart each time we get a request.
|
|
468
448
|
|
|
449
|
+
void E.when(
|
|
450
|
+
quoteNotifierP,
|
|
451
|
+
quoteNotifier => {
|
|
452
|
+
// @ts-expect-error XXX quotes
|
|
453
|
+
ephemera.storedQuotesNotifier = makeStoredNotifier(
|
|
454
|
+
// @ts-expect-error XXX quotes
|
|
455
|
+
quoteNotifier,
|
|
456
|
+
E(storageNode).makeChildNode('quotes'),
|
|
457
|
+
marshaller,
|
|
458
|
+
);
|
|
459
|
+
trace(
|
|
460
|
+
'helper.start() awaiting observe storedQuotesNotifier',
|
|
461
|
+
collateralBrand,
|
|
462
|
+
);
|
|
463
|
+
// NB: upon restart, there may not be a price for a while. If manager
|
|
464
|
+
// operations are permitted, ones that depend on price information
|
|
465
|
+
// will throw. See https://github.com/Agoric/agoric-sdk/issues/4317
|
|
466
|
+
const quoteWatcher = harden({
|
|
467
|
+
onFulfilled(value) {
|
|
468
|
+
trace('watcher updated price', value);
|
|
469
|
+
ephemera.storedCollateralQuote = value;
|
|
470
|
+
},
|
|
471
|
+
onRejected() {
|
|
472
|
+
// NOTE: drastic action, if the quoteNotifier fails, we don't know
|
|
473
|
+
// the value of the asset, nor do we know how long we'll be in
|
|
474
|
+
// ignorance. Best choice is to disable actions that require
|
|
475
|
+
// prices and restart when we have a new price. If we restart the
|
|
476
|
+
// notifier immediately, we'll trigger an infinite loop, so try
|
|
477
|
+
// to restart each time we get a request.
|
|
478
|
+
|
|
479
|
+
ephemera.storedCollateralQuote = null;
|
|
480
|
+
watchedBrands.delete(collateralBrand);
|
|
481
|
+
},
|
|
482
|
+
});
|
|
483
|
+
void watchQuoteNotifier(quoteNotifier, quoteWatcher);
|
|
484
|
+
},
|
|
485
|
+
e => {
|
|
486
|
+
trace('makeQuoteNotifier failed, resetting', e);
|
|
469
487
|
ephemera.storedCollateralQuote = null;
|
|
488
|
+
watchedBrands.delete(collateralBrand);
|
|
470
489
|
},
|
|
471
|
-
|
|
472
|
-
void watchQuoteNotifier(quoteNotifier, quoteWatcher);
|
|
490
|
+
);
|
|
473
491
|
},
|
|
474
492
|
/** @param {Timestamp} updateTime */
|
|
475
493
|
async chargeAllVaults(updateTime) {
|
|
@@ -841,7 +859,7 @@ export const prepareVaultManagerKit = (
|
|
|
841
859
|
const { collateralBrand } = state;
|
|
842
860
|
const { storedCollateralQuote } = collateralEphemera(collateralBrand);
|
|
843
861
|
if (!storedCollateralQuote) {
|
|
844
|
-
facets.helper.
|
|
862
|
+
facets.helper.ensureQuoteNotifierWatched();
|
|
845
863
|
|
|
846
864
|
// it might take an arbitrary amount of time to get a new quote
|
|
847
865
|
throw Fail`maxDebtFor called before a collateral quote was available for ${collateralBrand}`;
|
|
@@ -1088,7 +1106,7 @@ export const prepareVaultManagerKit = (
|
|
|
1088
1106
|
state.collateralBrand,
|
|
1089
1107
|
);
|
|
1090
1108
|
if (!storedCollateralQuote) {
|
|
1091
|
-
facets.helper.
|
|
1109
|
+
facets.helper.ensureQuoteNotifierWatched();
|
|
1092
1110
|
|
|
1093
1111
|
// it might take an arbitrary amount of time to get a new quote
|
|
1094
1112
|
throw Fail`getCollateralQuote called before a collateral quote was available`;
|
|
@@ -1107,7 +1125,7 @@ export const prepareVaultManagerKit = (
|
|
|
1107
1125
|
state.collateralBrand,
|
|
1108
1126
|
);
|
|
1109
1127
|
if (!storedCollateralQuote) {
|
|
1110
|
-
facets.helper.
|
|
1128
|
+
facets.helper.ensureQuoteNotifierWatched();
|
|
1111
1129
|
|
|
1112
1130
|
// it might take an arbitrary amount of time to get a new quote
|
|
1113
1131
|
throw Fail`lockOraclePrices called before a collateral quote was available for ${state.collateralBrand}`;
|