@agoric/vats 0.15.2-dev-a9dd2ce.0 → 0.15.2-dev-d33a853.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 +16 -16
- package/src/ibc.d.ts.map +1 -1
- package/src/ibc.js +21 -10
- package/src/proposals/upgrade-orch-core-proposal.d.ts +29 -0
- package/src/proposals/upgrade-orch-core-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-orch-core-proposal.js +43 -0
- package/src/types.d.ts +2 -2
- package/src/vat-network.d.ts +4 -4
- package/src/vat-network.d.ts.map +1 -1
- package/src/vat-network.js +3 -1
- package/tools/fake-bridge.d.ts.map +1 -1
- package/tools/fake-bridge.js +10 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vats",
|
|
3
|
-
"version": "0.15.2-dev-
|
|
3
|
+
"version": "0.15.2-dev-d33a853.0+d33a853",
|
|
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-
|
|
26
|
-
"@agoric/ertp": "0.16.3-dev-
|
|
27
|
-
"@agoric/governance": "0.10.4-dev-
|
|
28
|
-
"@agoric/internal": "0.3.3-dev-
|
|
29
|
-
"@agoric/network": "0.1.1-dev-
|
|
30
|
-
"@agoric/notifier": "0.6.3-dev-
|
|
31
|
-
"@agoric/store": "0.9.3-dev-
|
|
32
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
33
|
-
"@agoric/time": "0.3.3-dev-
|
|
34
|
-
"@agoric/vat-data": "0.5.3-dev-
|
|
35
|
-
"@agoric/vow": "0.1.1-dev-
|
|
36
|
-
"@agoric/zoe": "0.26.3-dev-
|
|
37
|
-
"@agoric/zone": "0.2.3-dev-
|
|
25
|
+
"@agoric/cosmic-proto": "0.4.1-dev-d33a853.0+d33a853",
|
|
26
|
+
"@agoric/ertp": "0.16.3-dev-d33a853.0+d33a853",
|
|
27
|
+
"@agoric/governance": "0.10.4-dev-d33a853.0+d33a853",
|
|
28
|
+
"@agoric/internal": "0.3.3-dev-d33a853.0+d33a853",
|
|
29
|
+
"@agoric/network": "0.1.1-dev-d33a853.0+d33a853",
|
|
30
|
+
"@agoric/notifier": "0.6.3-dev-d33a853.0+d33a853",
|
|
31
|
+
"@agoric/store": "0.9.3-dev-d33a853.0+d33a853",
|
|
32
|
+
"@agoric/swingset-vat": "0.32.3-dev-d33a853.0+d33a853",
|
|
33
|
+
"@agoric/time": "0.3.3-dev-d33a853.0+d33a853",
|
|
34
|
+
"@agoric/vat-data": "0.5.3-dev-d33a853.0+d33a853",
|
|
35
|
+
"@agoric/vow": "0.1.1-dev-d33a853.0+d33a853",
|
|
36
|
+
"@agoric/zoe": "0.26.3-dev-d33a853.0+d33a853",
|
|
37
|
+
"@agoric/zone": "0.2.3-dev-d33a853.0+d33a853",
|
|
38
38
|
"@endo/errors": "^1.2.4",
|
|
39
39
|
"@endo/far": "^1.1.4",
|
|
40
40
|
"@endo/import-bundle": "^1.2.1",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"jessie.js": "^0.3.4"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@agoric/swingset-liveslots": "0.10.3-dev-
|
|
50
|
+
"@agoric/swingset-liveslots": "0.10.3-dev-d33a853.0+d33a853",
|
|
51
51
|
"@endo/bundle-source": "^3.3.0",
|
|
52
52
|
"@endo/init": "^1.1.3",
|
|
53
53
|
"ava": "^5.3.0",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"typeCoverage": {
|
|
80
80
|
"atLeast": 91.52
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "d33a853c29841fab855d71f40c51c0a41e882d47"
|
|
83
83
|
}
|
package/src/ibc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AAsDO,kDAHI,IAAI,GACF,GAAG,
|
|
1
|
+
{"version":3,"file":"ibc.d.ts","sourceRoot":"","sources":["ibc.js"],"names":[],"mappings":"AAsDO,kDAHI,IAAI,GACF,GAAG,CAyHf;AAMM,yCAHI,IAAI,UACJ,QAAQ;cASH,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;;qBAOpC,eAAe;mBACjB,aAAa;EAonBpC;AAIM,uCADK,IAAI;IAQV;;;OAGG;qBAFQ,MAAM,OACN,GAAG;GAYnB;yBA3yBa,OAAO,kBAAkB,CAAC;uBAG3B,IAAI,CAChB,cAAkB,EAClB,cAAkB,GAAG,WAAW,GAAG,qBAAqB,CACrD,GAAG;IACN,SAAa,EAAE,QAAQ,CAAC;IACxB,UAAc,EAAE,UAAU,CAAC;IAC3B,YAAgB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;0BAdmB,mBAAmB;8BAC0B,aAAa;qCAH+B,iBAAiB;mCACyE,YAAY;yCAAZ,YAAY;wCAZjL,iBAAiB;4BAcc,aAAa;oCAFyH,YAAY;8BADtG,iBAAiB"}
|
package/src/ibc.js
CHANGED
|
@@ -140,26 +140,32 @@ export const prepareIBCConnectionHandler = zone => {
|
|
|
140
140
|
return protocolUtils.ibcSendPacket(packet, relativeTimeoutNs);
|
|
141
141
|
},
|
|
142
142
|
/** @type {Required<ConnectionHandler>['onClose']} */
|
|
143
|
-
|
|
143
|
+
onClose(_conn, _reason) {
|
|
144
144
|
const { portID, channelID } = this.state;
|
|
145
|
-
const { protocolUtils, channelKeyToSeqAck } =
|
|
145
|
+
const { protocolUtils, channelKeyToSeqAck, channelKeyToConnP } =
|
|
146
|
+
this.state;
|
|
146
147
|
|
|
147
148
|
const packet = {
|
|
148
149
|
source_port: portID,
|
|
149
150
|
source_channel: channelID,
|
|
150
151
|
};
|
|
151
|
-
await protocolUtils.downcall('startChannelCloseInit', {
|
|
152
|
-
packet,
|
|
153
|
-
});
|
|
154
|
-
const rejectReason = Error('Connection closed');
|
|
155
152
|
const channelKey = `${channelID}:${portID}`;
|
|
156
|
-
|
|
153
|
+
const rejectReason = Error('Connection closed');
|
|
157
154
|
const seqToAck = channelKeyToSeqAck.get(channelKey);
|
|
158
155
|
|
|
159
156
|
for (const ackKit of seqToAck.values()) {
|
|
160
157
|
ackKit.resolver.reject(rejectReason);
|
|
161
158
|
}
|
|
162
159
|
channelKeyToSeqAck.delete(channelKey);
|
|
160
|
+
|
|
161
|
+
// This Connection object is initiating the close event
|
|
162
|
+
if (channelKeyToConnP.has(channelKey)) {
|
|
163
|
+
channelKeyToConnP.delete(channelKey);
|
|
164
|
+
return protocolUtils.downcall('startChannelCloseInit', {
|
|
165
|
+
packet,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return Promise.resolve();
|
|
163
169
|
},
|
|
164
170
|
},
|
|
165
171
|
);
|
|
@@ -586,11 +592,16 @@ export const prepareIBCProtocol = (zone, powers) => {
|
|
|
586
592
|
break;
|
|
587
593
|
}
|
|
588
594
|
|
|
589
|
-
|
|
595
|
+
// We ignore the close init tx message, since any decision to
|
|
596
|
+
// close should be left to the VM...
|
|
597
|
+
case 'channelCloseInit': {
|
|
598
|
+
break;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// ... or received from the other side.
|
|
590
602
|
case 'channelCloseConfirm': {
|
|
591
603
|
const { portID, channelID } =
|
|
592
|
-
|
|
593
|
-
/** @type {IBCEvent<'channelCloseInit'>} */ (obj);
|
|
604
|
+
/** @type {IBCEvent<'channelCloseConfirm'>} */ (obj);
|
|
594
605
|
const channelKey = `${channelID}:${portID}`;
|
|
595
606
|
if (channelKeyToConnP.has(channelKey)) {
|
|
596
607
|
const conn = channelKeyToConnP.get(channelKey);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function upgradeOrchCore({ consume: { vatAdminSvc, vatStore } }: BootstrapPowers & {
|
|
2
|
+
consume: {
|
|
3
|
+
vatAdminSvc: VatAdminSvc;
|
|
4
|
+
vatStore: MapStore<string, import("@agoric/swingset-vat").CreateVatResults>;
|
|
5
|
+
};
|
|
6
|
+
}, options: {
|
|
7
|
+
options: {
|
|
8
|
+
bundleRefs: {
|
|
9
|
+
[vatName: string]: VatSourceRef;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
export function getManifestForUpgradingOrchCore(_powers: any, { bundleRefs }: {
|
|
14
|
+
bundleRefs: any;
|
|
15
|
+
}): {
|
|
16
|
+
manifest: {
|
|
17
|
+
[x: string]: {
|
|
18
|
+
consume: {
|
|
19
|
+
vatAdminSvc: string;
|
|
20
|
+
vatStore: string;
|
|
21
|
+
};
|
|
22
|
+
produce: {};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
options: {
|
|
26
|
+
bundleRefs: any;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=upgrade-orch-core-proposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-orch-core-proposal.d.ts","sourceRoot":"","sources":["upgrade-orch-core-proposal.js"],"names":[],"mappings":"AAeO,wEAZI,eAAe,GAAG;IAC5B,OAAW,EAAE;QACb,WAAiB,EAAE,WAAW,CAAC;QAC/B,QAAc,EAAE,QAAQ,CACxB,MAAc,EACd,OAAe,sBAAsB,EAAE,gBAAgB,CAChD,CAAC;KACH,CAAC;CACH,WAED;IAAqE,OAAO,EAApE;QAAE,UAAU,EAAE;YAAE,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAA;SAAE,CAAA;KAAE;CAC7D,iBAeA;AAEM;;;;;;;;;;;;;;;EAWL"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { E } from '@endo/far';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {BootstrapPowers & {
|
|
5
|
+
* consume: {
|
|
6
|
+
* vatAdminSvc: VatAdminSvc;
|
|
7
|
+
* vatStore: MapStore<
|
|
8
|
+
* string,
|
|
9
|
+
* import('@agoric/swingset-vat').CreateVatResults
|
|
10
|
+
* >;
|
|
11
|
+
* };
|
|
12
|
+
* }} powers
|
|
13
|
+
* @param {object} options
|
|
14
|
+
* @param {{ bundleRefs: { [vatName: string]: VatSourceRef } }} options.options
|
|
15
|
+
*/
|
|
16
|
+
export const upgradeOrchCore = async (
|
|
17
|
+
{ consume: { vatAdminSvc, vatStore } },
|
|
18
|
+
options,
|
|
19
|
+
) => {
|
|
20
|
+
const { bundleRefs } = options.options;
|
|
21
|
+
|
|
22
|
+
for await (const [name, ref] of Object.entries(bundleRefs)) {
|
|
23
|
+
assert(ref.bundleID, `bundleID missing for ${name}`);
|
|
24
|
+
console.log(name, `BUNDLE ID: `, ref.bundleID);
|
|
25
|
+
const bundleCap = await E(vatAdminSvc).getBundleCap(ref.bundleID);
|
|
26
|
+
|
|
27
|
+
const { adminNode } = await E(vatStore).get(name);
|
|
28
|
+
await E(adminNode).upgrade(bundleCap, {});
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const getManifestForUpgradingOrchCore = (_powers, { bundleRefs }) => ({
|
|
33
|
+
manifest: {
|
|
34
|
+
[upgradeOrchCore.name]: {
|
|
35
|
+
consume: {
|
|
36
|
+
vatAdminSvc: 'vatAdminSvc',
|
|
37
|
+
vatStore: 'vatStore',
|
|
38
|
+
},
|
|
39
|
+
produce: {},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
options: { bundleRefs },
|
|
43
|
+
});
|
package/src/types.d.ts
CHANGED
|
@@ -192,8 +192,8 @@ type IBCPacketEvents = {
|
|
|
192
192
|
timeoutPacket: {
|
|
193
193
|
packet: IBCPacket;
|
|
194
194
|
};
|
|
195
|
-
channelCloseInit:
|
|
196
|
-
channelCloseConfirm:
|
|
195
|
+
channelCloseInit: { channelID: IBCChannelID; portID: IBCPortID };
|
|
196
|
+
channelCloseConfirm: { channelID: IBCChannelID; portID: IBCPortID };
|
|
197
197
|
sendPacket: { relativeTimeoutNs: bigint; packet: IBCPacket };
|
|
198
198
|
};
|
|
199
199
|
|
package/src/vat-network.d.ts
CHANGED
|
@@ -12,12 +12,12 @@ export function buildRootObject(_vatPowers: any, _args: any, baggage: any): {
|
|
|
12
12
|
makeEchoConnectionKit: () => import("@endo/exo").GuardedKit<{
|
|
13
13
|
handler: {
|
|
14
14
|
onReceive(_connection: import("@agoric/network").Connection, bytes: import("@agoric/network").Bytes, _connectionHandler: import("@agoric/network").ConnectionHandler): Promise<string>;
|
|
15
|
-
onClose(_connection: import("@agoric/network").Connection,
|
|
15
|
+
onClose(_connection: import("@agoric/network").Connection, reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
|
|
16
16
|
};
|
|
17
17
|
listener: {
|
|
18
18
|
onAccept(_port: any, _localAddr: any, _remoteAddr: any, _listenHandler: any): Promise<import("@endo/exo").Guarded<{
|
|
19
19
|
onReceive(_connection: import("@agoric/network").Connection, bytes: import("@agoric/network").Bytes, _connectionHandler: import("@agoric/network").ConnectionHandler): Promise<string>;
|
|
20
|
-
onClose(_connection: import("@agoric/network").Connection,
|
|
20
|
+
onClose(_connection: import("@agoric/network").Connection, reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
|
|
21
21
|
}>>;
|
|
22
22
|
onListen(port: any, _listenHandler: any): Promise<void>;
|
|
23
23
|
};
|
|
@@ -46,12 +46,12 @@ export function buildRootObject(_vatPowers: any, _args: any, baggage: any): {
|
|
|
46
46
|
makeEchoConnectionKit: () => import("@endo/exo").GuardedKit<{
|
|
47
47
|
handler: {
|
|
48
48
|
onReceive(_connection: import("@agoric/network").Connection, bytes: import("@agoric/network").Bytes, _connectionHandler: import("@agoric/network").ConnectionHandler): Promise<string>;
|
|
49
|
-
onClose(_connection: import("@agoric/network").Connection,
|
|
49
|
+
onClose(_connection: import("@agoric/network").Connection, reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
|
|
50
50
|
};
|
|
51
51
|
listener: {
|
|
52
52
|
onAccept(_port: any, _localAddr: any, _remoteAddr: any, _listenHandler: any): Promise<import("@endo/exo").Guarded<{
|
|
53
53
|
onReceive(_connection: import("@agoric/network").Connection, bytes: import("@agoric/network").Bytes, _connectionHandler: import("@agoric/network").ConnectionHandler): Promise<string>;
|
|
54
|
-
onClose(_connection: import("@agoric/network").Connection,
|
|
54
|
+
onClose(_connection: import("@agoric/network").Connection, reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
|
|
55
55
|
}>>;
|
|
56
56
|
onListen(port: any, _listenHandler: any): Promise<void>;
|
|
57
57
|
};
|
package/src/vat-network.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vat-network.d.ts","sourceRoot":"","sources":["vat-network.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vat-network.d.ts","sourceRoot":"","sources":["vat-network.js"],"names":[],"mappings":"AAYA;;;;;qIAsC+hnC,aAAa;;;;;;;;;;;;;;;;;;;IAXxinC,wEAAwE;;IAGxE,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAH1E,wEAAwE;;IAGxE,0EAA0E;;;;;;;;GAO7E"}
|
package/src/vat-network.js
CHANGED
|
@@ -3,6 +3,7 @@ import { makeDurableZone } from '@agoric/zone/durable.js';
|
|
|
3
3
|
import {
|
|
4
4
|
prepareEchoConnectionKit,
|
|
5
5
|
prepareLoopbackProtocolHandler,
|
|
6
|
+
prepareNetworkPowers,
|
|
6
7
|
preparePortAllocator,
|
|
7
8
|
prepareRouterProtocol,
|
|
8
9
|
} from '@agoric/network';
|
|
@@ -11,7 +12,8 @@ import { Far } from '@endo/far';
|
|
|
11
12
|
|
|
12
13
|
export function buildRootObject(_vatPowers, _args, baggage) {
|
|
13
14
|
const zone = makeDurableZone(baggage);
|
|
14
|
-
const
|
|
15
|
+
const vowTools = prepareVowTools(zone.subZone('vow'));
|
|
16
|
+
const powers = prepareNetworkPowers(zone, vowTools);
|
|
15
17
|
|
|
16
18
|
const makeRouterProtocol = prepareRouterProtocol(
|
|
17
19
|
zone.subZone('network'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-bridge.d.ts","sourceRoot":"","sources":["fake-bridge.js"],"names":[],"mappings":"AAkBA,6EAA6E;AAE7E,sCAAuC;AAchC,yCANI,OAAO,cAAc,EAAE,IAAI,SAEnC;IAAuB,QAAQ,EAAvB,QAAQ;CAChB,GAAU,oBAAoB,MAAM,CAAC,CA0FvC;AAOM,wCAJI,OAAO,cAAc,EAAE,IAAI,cAC3B,CAAC,GAAG,KAAA,KAAK,IAAI,GACX,oBAAoB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"fake-bridge.d.ts","sourceRoot":"","sources":["fake-bridge.js"],"names":[],"mappings":"AAkBA,6EAA6E;AAE7E,sCAAuC;AAchC,yCANI,OAAO,cAAc,EAAE,IAAI,SAEnC;IAAuB,QAAQ,EAAvB,QAAQ;CAChB,GAAU,oBAAoB,MAAM,CAAC,CA0FvC;AAOM,wCAJI,OAAO,cAAc,EAAE,IAAI,cAC3B,CAAC,GAAG,KAAA,KAAK,IAAI,GACX,oBAAoB,MAAM,CAAC,CAwCvC;AAED,iEAAkE;;;;;AAwB3D,0DALI,MAAM,YACN,MAAM,GACJ,OAAO,CAsCnB;AAOM,+CAJI,OAAO,cAAc,EAAE,IAAI,8BAClB,IAAI,gBACX,oBAAoB,aAAa,CAAC,CA2C9C;AAOM,6CAJI,OAAO,cAAc,EAAE,IAAI,8BAClB,IAAI,gBACX,oBAAoB,WAAW,CAAC,CAuC5C;uBA7Sa;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE;yCAPX,iBAAiB"}
|
package/tools/fake-bridge.js
CHANGED
|
@@ -138,6 +138,16 @@ export const makeFakeIbcBridge = (zone, onToBridge) => {
|
|
|
138
138
|
if (method === 'sendPacket') {
|
|
139
139
|
const { packet } = params;
|
|
140
140
|
return { ...packet, sequence: '39' };
|
|
141
|
+
} else if (method === 'startChannelCloseInit') {
|
|
142
|
+
const { packet } = params;
|
|
143
|
+
if (hndlr)
|
|
144
|
+
E(hndlr)
|
|
145
|
+
.fromBridge({
|
|
146
|
+
type: 'IBC_EVENT',
|
|
147
|
+
event: 'channelCloseConfirm',
|
|
148
|
+
packet,
|
|
149
|
+
})
|
|
150
|
+
.catch(e => console.error(e));
|
|
141
151
|
}
|
|
142
152
|
return undefined;
|
|
143
153
|
},
|