@agoric/zoe 0.26.3-upgrade-14-dev-0a0580c.0 → 0.26.3-upgrade-14-dev-408fffa.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 +67 -28
- package/src/zoeService/zoe.d.ts +11 -1
- package/src/zoeService/zoe.d.ts.map +1 -1
- package/src/zoeService/zoe.js +23 -1
- package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
- package/src/zoeService/zoeStorageManager.js +7 -2
- package/tools/setup-zoe.d.ts +5 -0
- package/tools/setup-zoe.d.ts.map +1 -1
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-408fffa.0+408fffa",
|
|
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-408fffa.0+408fffa",
|
|
47
|
+
"@agoric/ertp": "0.16.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
48
|
+
"@agoric/internal": "0.4.0-upgrade-14-dev-408fffa.0+408fffa",
|
|
49
|
+
"@agoric/notifier": "0.6.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
50
|
+
"@agoric/store": "0.9.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
51
|
+
"@agoric/swingset-vat": "0.32.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
52
|
+
"@agoric/time": "0.3.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
53
|
+
"@agoric/vat-data": "0.5.3-upgrade-14-dev-408fffa.0+408fffa",
|
|
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": "408fffa0fc8aef6192287fdabdebd204b9c1619d"
|
|
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,CAmW3C;sBA7Wa,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 */
|
|
@@ -43,13 +50,55 @@ export const makeStartInstance = (
|
|
|
43
50
|
seatHandleToZoeSeatAdmin,
|
|
44
51
|
);
|
|
45
52
|
|
|
53
|
+
const getFreshZcfBundleCap = async () => {
|
|
54
|
+
const settledBundleCap = await getZcfBundleCapP();
|
|
55
|
+
settledBundleCap !== undefined || Fail`the ZCF bundle cap was broken`;
|
|
56
|
+
return settledBundleCap;
|
|
57
|
+
};
|
|
58
|
+
|
|
46
59
|
const InstanceAdminStateShape = harden({
|
|
47
60
|
instanceStorage: M.remotable('ZoeInstanceStorageManager'),
|
|
48
61
|
instanceAdmin: M.remotable('InstanceAdmin'),
|
|
49
|
-
seatHandleToSeatAdmin: M.remotable(),
|
|
62
|
+
seatHandleToSeatAdmin: M.remotable(), // seatHandleToSeatAdmin, but putting that string here is backwards-incompatible
|
|
50
63
|
adminNode: M.remotable('adminNode'),
|
|
51
64
|
});
|
|
52
65
|
|
|
66
|
+
/** @type {{ onFulfilled: (completion: any, instanceAdmin: InstanceAdmin) => void, onRejected: (reason: any, instanceAdmin: InstanceAdmin, adminNode: any) => void }} */
|
|
67
|
+
const watcher = prepareExo(
|
|
68
|
+
zoeBaggage,
|
|
69
|
+
'InstanceCompletionWatcher',
|
|
70
|
+
M.interface('InstanceCompletionWatcher', {
|
|
71
|
+
onFulfilled: M.call(
|
|
72
|
+
M.any(),
|
|
73
|
+
InstanceAdminShape,
|
|
74
|
+
M.remotable('adminNode'),
|
|
75
|
+
).returns(),
|
|
76
|
+
onRejected: M.call(
|
|
77
|
+
M.any(),
|
|
78
|
+
InstanceAdminShape,
|
|
79
|
+
M.remotable('adminNode'),
|
|
80
|
+
).returns(),
|
|
81
|
+
}),
|
|
82
|
+
{
|
|
83
|
+
onFulfilled: (completion, instanceAdmin) =>
|
|
84
|
+
instanceAdmin.exitAllSeats(completion),
|
|
85
|
+
onRejected: (/** @type {Error} */ reason, instanceAdmin, adminNode) => {
|
|
86
|
+
if (isUpgradeDisconnection(reason)) {
|
|
87
|
+
console.log(`resetting promise watcher after upgrade`, reason);
|
|
88
|
+
// eslint-disable-next-line no-use-before-define
|
|
89
|
+
watchForAdminNodeDone(adminNode, instanceAdmin);
|
|
90
|
+
} else {
|
|
91
|
+
instanceAdmin.failAllSeats(reason);
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const watchForAdminNodeDone = (adminNode, instAdmin) => {
|
|
98
|
+
// @ts-expect-error XXX unknown type?
|
|
99
|
+
watchPromise(E(adminNode).done(), watcher, instAdmin, adminNode);
|
|
100
|
+
};
|
|
101
|
+
|
|
53
102
|
const makeZoeInstanceAdmin = prepareExoClass(
|
|
54
103
|
zoeBaggage,
|
|
55
104
|
'zoeInstanceAdmin',
|
|
@@ -124,10 +173,10 @@ export const makeStartInstance = (
|
|
|
124
173
|
replaceAllocations(seatHandleAllocations) {
|
|
125
174
|
const { state } = this;
|
|
126
175
|
try {
|
|
127
|
-
|
|
176
|
+
for (const { seatHandle, allocation } of seatHandleAllocations) {
|
|
128
177
|
const zoeSeatAdmin = state.seatHandleToSeatAdmin.get(seatHandle);
|
|
129
178
|
zoeSeatAdmin.replaceAllocation(allocation);
|
|
130
|
-
}
|
|
179
|
+
}
|
|
131
180
|
} catch (err) {
|
|
132
181
|
// nothing for Zoe to do if the termination fails
|
|
133
182
|
void E(state.adminNode).terminateWithFailure(err);
|
|
@@ -154,6 +203,10 @@ export const makeStartInstance = (
|
|
|
154
203
|
const { state } = this;
|
|
155
204
|
return state.instanceAdmin.isBlocked(string);
|
|
156
205
|
},
|
|
206
|
+
repairContractCompletionWatcher() {
|
|
207
|
+
const { state, self } = this;
|
|
208
|
+
void watchForAdminNodeDone(state.adminNode, self);
|
|
209
|
+
},
|
|
157
210
|
},
|
|
158
211
|
{
|
|
159
212
|
stateShape: InstanceAdminStateShape,
|
|
@@ -178,12 +231,10 @@ export const makeStartInstance = (
|
|
|
178
231
|
/**
|
|
179
232
|
*
|
|
180
233
|
* @param {import('@agoric/swingset-vat').VatAdminFacet} adminNode
|
|
181
|
-
* @param {*} zcfBundleCap
|
|
182
234
|
* @param {*} contractBundleCap
|
|
183
235
|
*/
|
|
184
|
-
(adminNode,
|
|
236
|
+
(adminNode, contractBundleCap) => ({
|
|
185
237
|
adminNode,
|
|
186
|
-
zcfBundleCap,
|
|
187
238
|
contractBundleCap,
|
|
188
239
|
}),
|
|
189
240
|
{
|
|
@@ -200,12 +251,13 @@ export const makeStartInstance = (
|
|
|
200
251
|
privateArgs: newPrivateArgs,
|
|
201
252
|
};
|
|
202
253
|
|
|
203
|
-
return E(
|
|
204
|
-
vatParameters,
|
|
205
|
-
|
|
254
|
+
return E.when(getFreshZcfBundleCap(), bCap =>
|
|
255
|
+
E(state.adminNode).upgrade(bCap, { vatParameters }),
|
|
256
|
+
);
|
|
206
257
|
},
|
|
207
258
|
async upgradeContract(contractBundleId, newPrivateArgs = undefined) {
|
|
208
259
|
const { state } = this;
|
|
260
|
+
|
|
209
261
|
const newContractBundleCap = await getBundleCapByIdNow(
|
|
210
262
|
contractBundleId,
|
|
211
263
|
);
|
|
@@ -213,9 +265,9 @@ export const makeStartInstance = (
|
|
|
213
265
|
contractBundleCap: newContractBundleCap,
|
|
214
266
|
privateArgs: newPrivateArgs,
|
|
215
267
|
};
|
|
216
|
-
return E(
|
|
217
|
-
vatParameters,
|
|
218
|
-
|
|
268
|
+
return E.when(getFreshZcfBundleCap(), bCap =>
|
|
269
|
+
E(state.adminNode).upgrade(bCap, { vatParameters }),
|
|
270
|
+
);
|
|
219
271
|
},
|
|
220
272
|
},
|
|
221
273
|
);
|
|
@@ -274,13 +326,7 @@ export const makeStartInstance = (
|
|
|
274
326
|
);
|
|
275
327
|
zoeInstanceStorageManager.initInstanceAdmin(instanceHandle, instanceAdmin);
|
|
276
328
|
|
|
277
|
-
|
|
278
|
-
E(adminNode).done(),
|
|
279
|
-
completion => {
|
|
280
|
-
instanceAdmin.exitAllSeats(completion);
|
|
281
|
-
},
|
|
282
|
-
reason => instanceAdmin.failAllSeats(reason),
|
|
283
|
-
);
|
|
329
|
+
void watchForAdminNodeDone(adminNode, instanceAdmin);
|
|
284
330
|
|
|
285
331
|
/** @type {ZoeInstanceAdmin} */
|
|
286
332
|
const zoeInstanceAdminForZcf = makeZoeInstanceAdmin(
|
|
@@ -306,9 +352,6 @@ export const makeStartInstance = (
|
|
|
306
352
|
|
|
307
353
|
instanceAdmin.initDelayedState(handleOfferObj, publicFacet);
|
|
308
354
|
|
|
309
|
-
const settledBundleCap = await getZcfBundleCapP();
|
|
310
|
-
settledBundleCap !== undefined || Fail`the bundle cap was broken`;
|
|
311
|
-
|
|
312
355
|
// creatorInvitation can be undefined, but if it is defined,
|
|
313
356
|
// let's make sure it is an invitation.
|
|
314
357
|
return E.when(
|
|
@@ -324,11 +367,7 @@ export const makeStartInstance = (
|
|
|
324
367
|
isLiveResult ||
|
|
325
368
|
Fail`The contract did not correctly return a creatorInvitation`;
|
|
326
369
|
|
|
327
|
-
const adminFacet = makeAdminFacet(
|
|
328
|
-
adminNode,
|
|
329
|
-
harden(settledBundleCap),
|
|
330
|
-
contractBundleCap,
|
|
331
|
-
);
|
|
370
|
+
const adminFacet = makeAdminFacet(adminNode, contractBundleCap);
|
|
332
371
|
|
|
333
372
|
// Actually returned to the user.
|
|
334
373
|
return harden({
|
package/src/zoeService/zoe.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type Baggage = import('@agoric/vat-data').Baggage;
|
|
2
2
|
export type ZoeKit = ReturnType<typeof makeDurableZoeKit>;
|
|
3
3
|
/**
|
|
4
|
-
* Create
|
|
4
|
+
* Create a durable instance of Zoe.
|
|
5
5
|
*
|
|
6
6
|
* @param {object} options
|
|
7
7
|
* @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
|
|
@@ -22,6 +22,11 @@ export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, fee
|
|
|
22
22
|
zcfSpec?: ZCFSpec | undefined;
|
|
23
23
|
}): {
|
|
24
24
|
zoeService: ZoeService;
|
|
25
|
+
zoeConfigFacet: {
|
|
26
|
+
updateZcfBundleId(bundleId: any): void;
|
|
27
|
+
} & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
28
|
+
updateZcfBundleId(bundleId: any): void;
|
|
29
|
+
}>;
|
|
25
30
|
/** @type {FeeMintAccess} */
|
|
26
31
|
feeMintAccess: FeeMintAccess;
|
|
27
32
|
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
@@ -44,6 +49,11 @@ export function makeDurableZoeKit({ zoeBaggage, vatAdminSvc, shutdownZoeVat, fee
|
|
|
44
49
|
*/
|
|
45
50
|
export function makeZoeKit(vatAdminSvc?: import("@agoric/swingset-vat").VatAdminSvc | Promise<import("@agoric/swingset-vat").VatAdminSvc> | undefined, shutdownZoeVat?: import("@agoric/swingset-vat").ShutdownWithFailure | undefined, feeIssuerConfig?: FeeIssuerConfig | undefined, zcfSpec?: ZCFSpec | undefined): {
|
|
46
51
|
zoeService: ZoeService;
|
|
52
|
+
zoeConfigFacet: {
|
|
53
|
+
updateZcfBundleId(bundleId: any): void;
|
|
54
|
+
} & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
55
|
+
updateZcfBundleId(bundleId: any): void;
|
|
56
|
+
}>;
|
|
47
57
|
/** @type {FeeMintAccess} */
|
|
48
58
|
feeMintAccess: FeeMintAccess;
|
|
49
59
|
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoe.d.ts","sourceRoot":"","sources":["zoe.js"],"names":[],"mappings":"sBA8Bc,OAAO,kBAAkB,EAAE,OAAO;qBA6PnC,WAAW,wBAAwB,CAAC;AAzPjD;;;;;;;;;;;;;GAaG;AACH;IAV4B,UAAU,EAA3B,OAAO;IACsC,WAAW;IAG1B,cAAc;IAGlB,eAAe;IACvB,OAAO;;;;;;;;IAyMhC,4BAA4B;mBAAjB,aAAa;;EAK3B;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;IAvBI,4BAA4B;mBAAjB,aAAa;;EA8BxB"}
|
package/src/zoeService/zoe.js
CHANGED
|
@@ -18,6 +18,7 @@ import '../internal-types.js';
|
|
|
18
18
|
import { E } from '@endo/eventual-send';
|
|
19
19
|
import { Far } from '@endo/marshal';
|
|
20
20
|
import { makeScalarBigMapStore, prepareExo } from '@agoric/vat-data';
|
|
21
|
+
import { M } from '@agoric/store';
|
|
21
22
|
|
|
22
23
|
import { makeZoeStorageManager } from './zoeStorageManager.js';
|
|
23
24
|
import { makeStartInstance } from './startInstance.js';
|
|
@@ -32,7 +33,7 @@ import { ZoeServiceI } from '../typeGuards.js';
|
|
|
32
33
|
const { Fail } = assert;
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
|
-
* Create
|
|
36
|
+
* Create a durable instance of Zoe.
|
|
36
37
|
*
|
|
37
38
|
* @param {object} options
|
|
38
39
|
* @param {Baggage} options.zoeBaggage - the baggage for Zoe durability. Must be provided by caller
|
|
@@ -52,6 +53,7 @@ const makeDurableZoeKit = ({
|
|
|
52
53
|
feeIssuerConfig = defaultFeeIssuerConfig,
|
|
53
54
|
zcfSpec = { name: 'zcf' },
|
|
54
55
|
}) => {
|
|
56
|
+
/** @type {BundleCap} */
|
|
55
57
|
let zcfBundleCap;
|
|
56
58
|
|
|
57
59
|
const saveBundleCap = () => {
|
|
@@ -168,6 +170,25 @@ const makeDurableZoeKit = ({
|
|
|
168
170
|
});
|
|
169
171
|
};
|
|
170
172
|
|
|
173
|
+
const ZoeConfigI = M.interface('ZoeConfigFacet', {
|
|
174
|
+
updateZcfBundleId: M.call(M.string()).returns(),
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
const zoeConfigFacet = prepareExo(zoeBaggage, 'ZoeConfigFacet', ZoeConfigI, {
|
|
178
|
+
updateZcfBundleId(bundleId) {
|
|
179
|
+
E.when(
|
|
180
|
+
getZcfBundleCap({ id: bundleId }, vatAdminSvc),
|
|
181
|
+
bundleCap => {
|
|
182
|
+
zcfBundleCap = bundleCap;
|
|
183
|
+
},
|
|
184
|
+
e => {
|
|
185
|
+
console.error(`'🚨 unable to update ZCF Bundle: `, e);
|
|
186
|
+
throw e;
|
|
187
|
+
},
|
|
188
|
+
);
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
|
|
171
192
|
/** @type {ZoeService} */
|
|
172
193
|
const zoeService = prepareExo(zoeBaggage, 'ZoeService', ZoeServiceI, {
|
|
173
194
|
install(bundleId, bundleLabel) {
|
|
@@ -223,6 +244,7 @@ const makeDurableZoeKit = ({
|
|
|
223
244
|
|
|
224
245
|
return harden({
|
|
225
246
|
zoeService,
|
|
247
|
+
zoeConfigFacet,
|
|
226
248
|
/** @type {FeeMintAccess} */
|
|
227
249
|
// @ts-expect-error cast
|
|
228
250
|
feeMintAccess: feeMintKit.feeMintAccess,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoeStorageManager.d.ts","sourceRoot":"","sources":["zoeStorageManager.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoeStorageManager.d.ts","sourceRoot":"","sources":["zoeStorageManager.js"],"names":[],"mappings":"AAwDO,oDAXI,YAAY,qBAEZ,iBAAiB,kBACjB,mBAAmB,WACnB;IACV,eAAoB,EAAE,eAAe,CAAC;IACtC,YAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAgB,EAAE,MAAM,KAAK,CAAC;CAC3B;;;;;;;;;;;;;;;;;;;;;;;QA+ZI,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAjC,iCAAiC;;;;;;;;;;;GAYxC;sBAjca,OAAO,kBAAkB,EAAE,OAAO"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { E } from '@endo/far';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
AssetKind,
|
|
4
|
+
makeDurableIssuerKit,
|
|
5
|
+
AmountMath,
|
|
6
|
+
prepareIssuerKit,
|
|
7
|
+
} from '@agoric/ertp';
|
|
3
8
|
import {
|
|
4
9
|
makeScalarBigMapStore,
|
|
5
10
|
provideDurableWeakMapStore,
|
|
@@ -117,7 +122,7 @@ export const makeZoeStorageManager = (
|
|
|
117
122
|
'zoeMintBaggageSet',
|
|
118
123
|
);
|
|
119
124
|
for (const issuerBaggage of zoeMintBaggageSet.values()) {
|
|
120
|
-
|
|
125
|
+
prepareIssuerKit(issuerBaggage);
|
|
121
126
|
}
|
|
122
127
|
|
|
123
128
|
const makeZoeMint = prepareExoClass(
|
package/tools/setup-zoe.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export function makeZoeKitForTest(vatAdminSvc?: import("@agoric/swingset-vat").VatAdminSvc | undefined): {
|
|
2
2
|
zoeService: ZoeService;
|
|
3
|
+
zoeConfigFacet: {
|
|
4
|
+
updateZcfBundleId(bundleId: any): void;
|
|
5
|
+
} & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
6
|
+
updateZcfBundleId(bundleId: any): void;
|
|
7
|
+
}>;
|
|
3
8
|
feeMintAccess: FeeMintAccess;
|
|
4
9
|
setVatAdminService: ((lateVatAdminSvc: any) => void) & import("@endo/eventual-send").RemotableBrand<{}, (lateVatAdminSvc: any) => void>;
|
|
5
10
|
};
|
package/tools/setup-zoe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-zoe.d.ts","sourceRoot":"","sources":["setup-zoe.js"],"names":[],"mappings":"AASO
|
|
1
|
+
{"version":3,"file":"setup-zoe.d.ts","sourceRoot":"","sources":["setup-zoe.js"],"names":[],"mappings":"AASO;;;;;;;;;EAKN;AAKM,iHACoC;AAYpC;IAL+B,MAAM,gBAArB,IAAI;IACU,eAAe;IACnB,WAAW;IACf,aAAa;;;;;;;;;;;;;;;;;;GA+BzC"}
|