@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/vats",
3
- "version": "0.15.2-dev-a9dd2ce.0+a9dd2ce",
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-a9dd2ce.0+a9dd2ce",
26
- "@agoric/ertp": "0.16.3-dev-a9dd2ce.0+a9dd2ce",
27
- "@agoric/governance": "0.10.4-dev-a9dd2ce.0+a9dd2ce",
28
- "@agoric/internal": "0.3.3-dev-a9dd2ce.0+a9dd2ce",
29
- "@agoric/network": "0.1.1-dev-a9dd2ce.0+a9dd2ce",
30
- "@agoric/notifier": "0.6.3-dev-a9dd2ce.0+a9dd2ce",
31
- "@agoric/store": "0.9.3-dev-a9dd2ce.0+a9dd2ce",
32
- "@agoric/swingset-vat": "0.32.3-dev-a9dd2ce.0+a9dd2ce",
33
- "@agoric/time": "0.3.3-dev-a9dd2ce.0+a9dd2ce",
34
- "@agoric/vat-data": "0.5.3-dev-a9dd2ce.0+a9dd2ce",
35
- "@agoric/vow": "0.1.1-dev-a9dd2ce.0+a9dd2ce",
36
- "@agoric/zoe": "0.26.3-dev-a9dd2ce.0+a9dd2ce",
37
- "@agoric/zone": "0.2.3-dev-a9dd2ce.0+a9dd2ce",
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-a9dd2ce.0+a9dd2ce",
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": "a9dd2ce995c59c21cc374e5af61db704ba074e29"
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,CAmHf;AAMM,yCAHI,IAAI,UACJ,QAAQ;cASH,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;;qBAOpC,eAAe;mBACjB,aAAa;EA+mBpC;AAIM,uCADK,IAAI;IAQV;;;OAGG;qBAFQ,MAAM,OACN,GAAG;GAYnB;yBAhyBa,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"}
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
- async onClose() {
143
+ onClose(_conn, _reason) {
144
144
  const { portID, channelID } = this.state;
145
- const { protocolUtils, channelKeyToSeqAck } = this.state;
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
- case 'channelCloseInit':
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
- // could be either but that complicates line wrapping
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: ConnectingInfo; // TODO update
196
- channelCloseConfirm: ConnectingInfo; // TODO update
195
+ channelCloseInit: { channelID: IBCChannelID; portID: IBCPortID };
196
+ channelCloseConfirm: { channelID: IBCChannelID; portID: IBCPortID };
197
197
  sendPacket: { relativeTimeoutNs: bigint; packet: IBCPacket };
198
198
  };
199
199
 
@@ -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, _reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
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, _reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
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, _reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
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, _reason?: import("@agoric/network").CloseReason, _connectionHandler?: import("@agoric/network").ConnectionHandler | undefined): Promise<void>;
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
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vat-network.d.ts","sourceRoot":"","sources":["vat-network.js"],"names":[],"mappings":"AAWA;;;;;qIAqCo5nC,aAAa;;;oCAAmuE,kBAAa,+GAAsF,kBAAa;;;;;;;;;;;;;;;;IAXhvsC,wEAAwE;;IAGxE,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAH1E,wEAAwE;;IAGxE,0EAA0E;;;;;;;;GAO7E"}
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"}
@@ -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 powers = prepareVowTools(zone.subZone('vow'));
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,CA8BvC;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;uBAnSa;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE;yCAPX,iBAAiB"}
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"}
@@ -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
  },