@agoric/zoe 0.26.3-upgrade-14-dev-0a0580c.0 → 0.26.3-upgrade-14-dev-c2ea6db.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/bundles/bundle-contractFacet-js-meta.json +76 -76
- package/bundles/bundle-contractFacet.js +1 -1
- package/package.json +10 -10
- package/src/contractFacet/zcfZygote.d.ts.map +1 -1
- package/src/contractFacet/zcfZygote.js +6 -2
- package/src/internal-types.d.ts +1 -0
- package/src/internal-types.d.ts.map +1 -1
- package/src/internal-types.js +1 -0
- package/src/typeGuards.d.ts.map +1 -1
- package/src/typeGuards.js +1 -0
- package/src/zoeService/startInstance.d.ts.map +1 -1
- package/src/zoeService/startInstance.js +52 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/zoe",
|
|
3
|
-
"version": "0.26.3-upgrade-14-dev-
|
|
3
|
+
"version": "0.26.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
4
4
|
"description": "Zoe: the Smart Contract Framework for Offer Enforcement",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/zoeService/zoe.js",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
},
|
|
44
44
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@agoric/assert": "0.6.1-upgrade-14-dev-
|
|
47
|
-
"@agoric/ertp": "0.16.3-upgrade-14-dev-
|
|
48
|
-
"@agoric/internal": "0.4.0-upgrade-14-dev-
|
|
49
|
-
"@agoric/notifier": "0.6.3-upgrade-14-dev-
|
|
50
|
-
"@agoric/store": "0.9.3-upgrade-14-dev-
|
|
51
|
-
"@agoric/swingset-vat": "0.32.3-upgrade-14-dev-
|
|
52
|
-
"@agoric/time": "0.3.3-upgrade-14-dev-
|
|
53
|
-
"@agoric/vat-data": "0.5.3-upgrade-14-dev-
|
|
46
|
+
"@agoric/assert": "0.6.1-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
47
|
+
"@agoric/ertp": "0.16.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
48
|
+
"@agoric/internal": "0.4.0-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
49
|
+
"@agoric/notifier": "0.6.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
50
|
+
"@agoric/store": "0.9.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
51
|
+
"@agoric/swingset-vat": "0.32.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
52
|
+
"@agoric/time": "0.3.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
53
|
+
"@agoric/vat-data": "0.5.3-upgrade-14-dev-c2ea6db.0+c2ea6db",
|
|
54
54
|
"@endo/bundle-source": "2.5.2-upstream-rollup",
|
|
55
55
|
"@endo/captp": "3.1.1",
|
|
56
56
|
"@endo/eventual-send": "0.17.2",
|
|
@@ -126,5 +126,5 @@
|
|
|
126
126
|
"publishConfig": {
|
|
127
127
|
"access": "public"
|
|
128
128
|
},
|
|
129
|
-
"gitHead": "
|
|
129
|
+
"gitHead": "c2ea6db4813f678974bacc032db3142802af6516"
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zcfZygote.d.ts","sourceRoot":"","sources":["zcfZygote.js"],"names":[],"mappings":"AAiDO,sCARI,SAAS,cACT,KAAK,UAAU,CAAC,oBAChB,OAAO,KAAK,CAAC,iBACb,aAAa,qBACb,SAAS,2CAEP,QAAQ,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"zcfZygote.d.ts","sourceRoot":"","sources":["zcfZygote.js"],"names":[],"mappings":"AAiDO,sCARI,SAAS,cACT,KAAK,UAAU,CAAC,oBAChB,OAAO,KAAK,CAAC,iBACb,aAAa,qBACb,SAAS,2CAEP,QAAQ,SAAS,CAAC,CA6Z9B;kCA5aa,OAAO,cAAc,EAAE,mBAAmB"}
|
|
@@ -371,6 +371,7 @@ export const makeZCFZygote = async (
|
|
|
371
371
|
instanceRecHolder = makeInstanceRecord(instanceRecordFromZoe);
|
|
372
372
|
instantiateIssuerStorage(issuerStorageFromZoe);
|
|
373
373
|
zcfBaggage.init('instanceRecHolder', instanceRecHolder);
|
|
374
|
+
zcfBaggage.init('repairedContractCompletionWatcher', true);
|
|
374
375
|
|
|
375
376
|
const startFn = start || prepare;
|
|
376
377
|
if (privateArgsShape) {
|
|
@@ -423,8 +424,11 @@ export const makeZCFZygote = async (
|
|
|
423
424
|
instanceRecHolder = zcfBaggage.get('instanceRecHolder');
|
|
424
425
|
initSeatMgrAndMintKind();
|
|
425
426
|
|
|
426
|
-
|
|
427
|
-
|
|
427
|
+
await null;
|
|
428
|
+
if (!zcfBaggage.has('repairedContractCompletionWatcher')) {
|
|
429
|
+
await E(zoeInstanceAdmin).repairContractCompletionWatcher();
|
|
430
|
+
console.log(`Repaired contract completion watcher`);
|
|
431
|
+
zcfBaggage.init('repairedContractCompletionWatcher', true);
|
|
428
432
|
}
|
|
429
433
|
|
|
430
434
|
// restart an upgradeable contract
|
package/src/internal-types.d.ts
CHANGED
|
@@ -85,6 +85,7 @@ type ZoeInstanceAdmin = {
|
|
|
85
85
|
setOfferFilter: (strings: Array<string>) => void;
|
|
86
86
|
getOfferFilter: () => Array<string>;
|
|
87
87
|
getExitSubscriber: (seatHandle: SeatHandle) => Subscriber<AmountKeywordRecord>;
|
|
88
|
+
repairContractCompletionWatcher: () => void;
|
|
88
89
|
};
|
|
89
90
|
type RegisterFeeMint = (keyword: Keyword, allegedFeeMintAccess: FeeMintAccess) => ZoeMint<'nat'>;
|
|
90
91
|
type WrapIssuerKitWithZoeMint = (keyword: Keyword, localIssuerKit: IssuerKit) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-types.d.ts","sourceRoot":"","sources":["internal-types.js"],"names":[],"mappings":";cAIc,cAAc;uBACd,UAAU;gBACV,UAAU;gBACV,MAAM;;;;;qCAOT,UAAU,KACR,qBAAqB;;mCAKR,UAAU,KAAK,qBAAqB;;;qCAKjC,YAAY,KAAK,IAAI;8BACrB,YAAY,KAAK,OAAO;;;cAKvC,QAAQ;kBACR,YAAY;;;;;+CAMf,UAAU,uBACV,mBAAmB,YACnB,cAAc,iBACd,aAAa,WACb,KAAK,OAAO,CAAC,gBACb,KAAK,OAAO,CAAC,yCAEX,eAAe;sCAKjB,UAAU,KACR,IAAI;;oCAKU,UAAU,KAAK,IAAI;UAChC,gBAAgB;;;;;UAChB,mBAAmB;uBAEnB,MAAM,WAAW,mBAAmB,CAAC;;;wBASrC,QAAQ,OAAO,CAAC;aAChB,OAAO;;;;;;;;2BASP,MAAM,IAAI;qCACS,gBAAgB,qBACvB,UAAU,YACnB,cAAc,cACZ,MAAM,KACjB,QAAQ;sBACF,gBAAgB;iBAChB,MAAM,QAAQ;oBACd,MAAM,MAAM;gBACZ,MAAM,mBAAmB;eACzB,MAAM,kBAAkB;cACxB,MAAM,MAAM;oBACZ,MAAM,MAAM,EAAE;qBACd,MAAM,YAAY;+BACL,UAAU,KAAK,IAAI;kBAChC,mBAAmB;yBACnB,MAAM,IAAI;wBACD,MAAM,KAAK,OAAO;uCACV,cAAc,eAAe,OAAO,KAAK,IAAI;8BACpD,MAAM,EAAE,KAAK,IAAI;;;;;;;;oCASR,gBAAgB,YACxB,QAAQ,KACd,iBAAiB;;yDAKzB,gBAAgB,eAChB,MAAM,mEAEN,OAAO,KACL,UAAU;;oBAKT,8BAA8B;0BACpB,KAAK,MAAM,CAAC,WACZ,OAAO,KACZ,QAAQ,YAAY,CAAC;iBAC1B,WAAW;qBACX,eAAe;sBACf,gBAAgB;wBAChB,kBAAkB;+BACL,UAAU,KAAK,IAAI;kBAChC,mBAAmB;2BACN,UAAU,cAAc,UAAU,KAAK,IAAI;2BAC3C,UAAU,UAAU,KAAK,KAAK,IAAI;yBAC/C,MAAM,IAAI;8BACA,MAAM,MAAM,CAAC,KAAK,IAAI;oBAChC,MAAM,MAAM,MAAM,CAAC;oCACN,UAAU,KAAK,WAAW,mBAAmB,CAAC;;
|
|
1
|
+
{"version":3,"file":"internal-types.d.ts","sourceRoot":"","sources":["internal-types.js"],"names":[],"mappings":"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"}
|
package/src/internal-types.js
CHANGED
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
* @property {(strings: Array<string>) => void} setOfferFilter
|
|
138
138
|
* @property {() => Array<string>} getOfferFilter
|
|
139
139
|
* @property {(seatHandle: SeatHandle) => Subscriber<AmountKeywordRecord>} getExitSubscriber
|
|
140
|
+
* @property {() => void} repairContractCompletionWatcher
|
|
140
141
|
*/
|
|
141
142
|
|
|
142
143
|
/**
|
package/src/typeGuards.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAgBA,4DAAuC;AAEvC,qEAAqE;AACrE,+DAAyD;AACzD,mEAAiE;AACjE,iEAA6D;AAC7D,yDAA6C;AAE7C,wEAA8E;AAC9E,+EAGE;AACF,0EAGE;AACF,wEAA8E;AAC9E,yEAGE;AACF,uEAA4E;AAE5E,iEAOE;;;;;;;;;;AAaF,8DAAiD;AAE1C,6EAA4D;AACnE,0DAAmD;;;;;;AA0BnD,2BAA2B;AAC3B,6DAAsE;AAE/D,uDAGN;AAMM,uCAHI,QAAQ,0BAMlB;AAMM,8CAHI,QAAQ,iCAMlB;AAED,sEAKG;AAEH,oEAEG;AAEH,0EAKE;AAEF,4DAAmD;AACnD,+DAIG;AAEH,+DASG;AAEH,kEAA+D;AAE/D,kEAEG;AAEH,+DAAsD;AACtD,kEAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAgBA,4DAAuC;AAEvC,qEAAqE;AACrE,+DAAyD;AACzD,mEAAiE;AACjE,iEAA6D;AAC7D,yDAA6C;AAE7C,wEAA8E;AAC9E,+EAGE;AACF,0EAGE;AACF,wEAA8E;AAC9E,yEAGE;AACF,uEAA4E;AAE5E,iEAOE;;;;;;;;;;AAaF,8DAAiD;AAE1C,6EAA4D;AACnE,0DAAmD;;;;;;AA0BnD,2BAA2B;AAC3B,6DAAsE;AAE/D,uDAGN;AAMM,uCAHI,QAAQ,0BAMlB;AAMM,8CAHI,QAAQ,iCAMlB;AAED,sEAKG;AAEH,oEAEG;AAEH,0EAKE;AAEF,4DAAmD;AACnD,+DAIG;AAEH,+DASG;AAEH,kEAA+D;AAE/D,kEAEG;AAEH,+DAAsD;AACtD,kEAA+D;AAC/D,qEAkCG;;;;;;AAiDH,8DAAuD;AACvD,2DAGE;AAEF,0EAUE;;;;;;;AA2DF,kEA6CG;AAEH,kEAIG;AAEH,6DASE;AAEF,mEAKG"}
|
package/src/typeGuards.js
CHANGED
|
@@ -190,6 +190,7 @@ export const InstanceAdminI = M.interface('InstanceAdmin', {
|
|
|
190
190
|
getOfferFilter: M.call().returns(M.arrayOf(M.string())),
|
|
191
191
|
getExitSubscriber: M.call(SeatShape).returns(SubscriberShape),
|
|
192
192
|
isBlocked: M.call(M.string()).returns(M.boolean()),
|
|
193
|
+
repairContractCompletionWatcher: M.call().returns(),
|
|
193
194
|
});
|
|
194
195
|
|
|
195
196
|
export const InstanceStorageManagerIKit = harden({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startInstance.d.ts","sourceRoot":"","sources":["startInstance.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"startInstance.d.ts","sourceRoot":"","sources":["startInstance.js"],"names":[],"mappings":"AAiCO,uDANI,KAAK,iBAAiB,EAAE,+BAA+B,GAAG,oBAAoB,CAAC,oBAC/E,MAAM,KAAK,SAAS,CAAC,4BAChB,MAAM,KAAK,SAAS,0CAEvB,OAAO,SAAS,EAAE,aAAa,CAqW3C;sBA/Wa,OAAO,kBAAkB,EAAE,OAAO;wBACjC,OAAO,sBAAsB,EAAE,SAAS"}
|
|
@@ -5,12 +5,19 @@ import {
|
|
|
5
5
|
makeScalarBigMapStore,
|
|
6
6
|
provideDurableWeakMapStore,
|
|
7
7
|
prepareExoClass,
|
|
8
|
+
prepareExo,
|
|
9
|
+
watchPromise,
|
|
8
10
|
} from '@agoric/vat-data';
|
|
9
11
|
import { initEmpty } from '@agoric/store';
|
|
12
|
+
import { isUpgradeDisconnection } from '@agoric/internal/src/upgrade-api.js';
|
|
10
13
|
|
|
11
14
|
import { defineDurableHandle } from '../makeHandle.js';
|
|
12
15
|
import { makeInstanceAdminMaker } from './instanceAdminStorage.js';
|
|
13
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
AdminFacetI,
|
|
18
|
+
InstanceAdminI,
|
|
19
|
+
InstanceAdminShape,
|
|
20
|
+
} from '../typeGuards.js';
|
|
14
21
|
|
|
15
22
|
/** @typedef {import('@agoric/vat-data').Baggage} Baggage */
|
|
16
23
|
/** @typedef { import('@agoric/swingset-vat').BundleCap} BundleCap */
|
|
@@ -46,10 +53,46 @@ export const makeStartInstance = (
|
|
|
46
53
|
const InstanceAdminStateShape = harden({
|
|
47
54
|
instanceStorage: M.remotable('ZoeInstanceStorageManager'),
|
|
48
55
|
instanceAdmin: M.remotable('InstanceAdmin'),
|
|
49
|
-
seatHandleToSeatAdmin: M.remotable(),
|
|
56
|
+
seatHandleToSeatAdmin: M.remotable(), // seatHandleToSeatAdmin, but putting that string here is backwards-incompatible
|
|
50
57
|
adminNode: M.remotable('adminNode'),
|
|
51
58
|
});
|
|
52
59
|
|
|
60
|
+
/** @type {{ onFulfilled: (completion: any, instanceAdmin: InstanceAdmin) => void, onRejected: (reason: any, instanceAdmin: InstanceAdmin, adminNode: any) => void }} */
|
|
61
|
+
const watcher = prepareExo(
|
|
62
|
+
zoeBaggage,
|
|
63
|
+
'InstanceCompletionWatcher',
|
|
64
|
+
M.interface('InstanceCompletionWatcher', {
|
|
65
|
+
onFulfilled: M.call(
|
|
66
|
+
M.any(),
|
|
67
|
+
InstanceAdminShape,
|
|
68
|
+
M.remotable('adminNode'),
|
|
69
|
+
).returns(),
|
|
70
|
+
onRejected: M.call(
|
|
71
|
+
M.any(),
|
|
72
|
+
InstanceAdminShape,
|
|
73
|
+
M.remotable('adminNode'),
|
|
74
|
+
).returns(),
|
|
75
|
+
}),
|
|
76
|
+
{
|
|
77
|
+
onFulfilled: (completion, instanceAdmin) =>
|
|
78
|
+
instanceAdmin.exitAllSeats(completion),
|
|
79
|
+
onRejected: (/** @type {Error} */ reason, instanceAdmin, adminNode) => {
|
|
80
|
+
if (isUpgradeDisconnection(reason)) {
|
|
81
|
+
console.log(`resetting promise watcher after upgrade`, reason);
|
|
82
|
+
// eslint-disable-next-line no-use-before-define
|
|
83
|
+
watchForAdminNodeDone(adminNode, instanceAdmin);
|
|
84
|
+
} else {
|
|
85
|
+
instanceAdmin.failAllSeats(reason);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
const watchForAdminNodeDone = (adminNode, instAdmin) => {
|
|
92
|
+
// @ts-expect-error XXX unknown type?
|
|
93
|
+
watchPromise(E(adminNode).done(), watcher, instAdmin, adminNode);
|
|
94
|
+
};
|
|
95
|
+
|
|
53
96
|
const makeZoeInstanceAdmin = prepareExoClass(
|
|
54
97
|
zoeBaggage,
|
|
55
98
|
'zoeInstanceAdmin',
|
|
@@ -124,10 +167,10 @@ export const makeStartInstance = (
|
|
|
124
167
|
replaceAllocations(seatHandleAllocations) {
|
|
125
168
|
const { state } = this;
|
|
126
169
|
try {
|
|
127
|
-
|
|
170
|
+
for (const { seatHandle, allocation } of seatHandleAllocations) {
|
|
128
171
|
const zoeSeatAdmin = state.seatHandleToSeatAdmin.get(seatHandle);
|
|
129
172
|
zoeSeatAdmin.replaceAllocation(allocation);
|
|
130
|
-
}
|
|
173
|
+
}
|
|
131
174
|
} catch (err) {
|
|
132
175
|
// nothing for Zoe to do if the termination fails
|
|
133
176
|
void E(state.adminNode).terminateWithFailure(err);
|
|
@@ -154,6 +197,10 @@ export const makeStartInstance = (
|
|
|
154
197
|
const { state } = this;
|
|
155
198
|
return state.instanceAdmin.isBlocked(string);
|
|
156
199
|
},
|
|
200
|
+
repairContractCompletionWatcher() {
|
|
201
|
+
const { state, self } = this;
|
|
202
|
+
void watchForAdminNodeDone(state.adminNode, self);
|
|
203
|
+
},
|
|
157
204
|
},
|
|
158
205
|
{
|
|
159
206
|
stateShape: InstanceAdminStateShape,
|
|
@@ -274,13 +321,7 @@ export const makeStartInstance = (
|
|
|
274
321
|
);
|
|
275
322
|
zoeInstanceStorageManager.initInstanceAdmin(instanceHandle, instanceAdmin);
|
|
276
323
|
|
|
277
|
-
|
|
278
|
-
E(adminNode).done(),
|
|
279
|
-
completion => {
|
|
280
|
-
instanceAdmin.exitAllSeats(completion);
|
|
281
|
-
},
|
|
282
|
-
reason => instanceAdmin.failAllSeats(reason),
|
|
283
|
-
);
|
|
324
|
+
void watchForAdminNodeDone(adminNode, instanceAdmin);
|
|
284
325
|
|
|
285
326
|
/** @type {ZoeInstanceAdmin} */
|
|
286
327
|
const zoeInstanceAdminForZcf = makeZoeInstanceAdmin(
|