@agoric/cosmic-swingset 0.41.4-dev-e6a21cf.0 → 0.41.4-dev-3ccb42d.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.
Files changed (2) hide show
  1. package/package.json +12 -12
  2. package/tools/inquisitor.mjs +32 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/cosmic-swingset",
3
- "version": "0.41.4-dev-e6a21cf.0+e6a21cf",
3
+ "version": "0.41.4-dev-3ccb42d.0+3ccb42d",
4
4
  "description": "Agoric's Cosmos blockchain integration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,15 +22,15 @@
22
22
  "author": "Agoric",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@agoric/builders": "0.1.1-dev-e6a21cf.0+e6a21cf",
26
- "@agoric/cosmos": "0.34.2-dev-e6a21cf.0+e6a21cf",
27
- "@agoric/deploy-script-support": "0.10.4-dev-e6a21cf.0+e6a21cf",
28
- "@agoric/internal": "0.3.3-dev-e6a21cf.0+e6a21cf",
29
- "@agoric/store": "0.9.3-dev-e6a21cf.0+e6a21cf",
30
- "@agoric/swing-store": "0.9.2-dev-e6a21cf.0+e6a21cf",
31
- "@agoric/swingset-vat": "0.32.3-dev-e6a21cf.0+e6a21cf",
32
- "@agoric/telemetry": "0.6.3-dev-e6a21cf.0+e6a21cf",
33
- "@agoric/vm-config": "0.1.1-dev-e6a21cf.0+e6a21cf",
25
+ "@agoric/builders": "0.1.1-dev-3ccb42d.0+3ccb42d",
26
+ "@agoric/cosmos": "0.34.2-dev-3ccb42d.0+3ccb42d",
27
+ "@agoric/deploy-script-support": "0.10.4-dev-3ccb42d.0+3ccb42d",
28
+ "@agoric/internal": "0.3.3-dev-3ccb42d.0+3ccb42d",
29
+ "@agoric/store": "0.9.3-dev-3ccb42d.0+3ccb42d",
30
+ "@agoric/swing-store": "0.9.2-dev-3ccb42d.0+3ccb42d",
31
+ "@agoric/swingset-vat": "0.32.3-dev-3ccb42d.0+3ccb42d",
32
+ "@agoric/telemetry": "0.6.3-dev-3ccb42d.0+3ccb42d",
33
+ "@agoric/vm-config": "0.1.1-dev-3ccb42d.0+3ccb42d",
34
34
  "@endo/bundle-source": "^3.5.1",
35
35
  "@endo/env-options": "^1.1.8",
36
36
  "@endo/errors": "^1.2.9",
@@ -52,7 +52,7 @@
52
52
  "tmp": "^0.2.1"
53
53
  },
54
54
  "devDependencies": {
55
- "@agoric/kmarshal": "0.1.1-dev-e6a21cf.0+e6a21cf",
55
+ "@agoric/kmarshal": "0.1.1-dev-3ccb42d.0+3ccb42d",
56
56
  "ava": "^5.3.0",
57
57
  "better-sqlite3": "^9.1.1",
58
58
  "c8": "^10.1.2"
@@ -75,5 +75,5 @@
75
75
  "typeCoverage": {
76
76
  "atLeast": 84.59
77
77
  },
78
- "gitHead": "e6a21cf52d09ad544bd3a6b9b812dad5985e41aa"
78
+ "gitHead": "3ccb42df5b277298eb5d521baa8cc605bcf387dc"
79
79
  }
@@ -62,8 +62,11 @@ import {
62
62
  } from '../src/sim-params.js';
63
63
  import { makeCosmicSwingsetTestKit } from './test-kit.js';
64
64
 
65
- /** @import { ManagerType, SwingSetConfig } from '@agoric/swingset-vat' */
66
- /** @import { KVStore } from '../src/helpers/bufferedStorage.js' */
65
+ /**
66
+ * @import {Database} from 'better-sqlite3';
67
+ * @import {ManagerType, SwingSetConfig} from '@agoric/swingset-vat';
68
+ * @import {KVStore} from '../src/helpers/bufferedStorage.js';
69
+ */
67
70
 
68
71
  const useColors = process.stdout?.hasColors?.();
69
72
  const inspectDepth = 6;
@@ -76,13 +79,28 @@ const parseNumber = input => (input.match(/[0-9]/) ? Number(input) : NaN);
76
79
  // cf. packages/swing-store/src/exporter.js
77
80
  const storeExportAPI = ['getExportRecords', 'getArtifactNames'];
78
81
 
82
+ /**
83
+ * Partial definition based on log output.
84
+ * @typedef VatInfo
85
+ * @property {`v${string}`} vatID
86
+ * @property {string} name
87
+ * @property {boolean} isStatic
88
+ * @property {{bundleID: string}} source
89
+ * @property {{name: string, critical: boolean}} options
90
+ */
91
+
79
92
  // TODO: getVatAdminNode('v112') # scan the vatAdmin vom v2.vs.vom.* vrefs for value matching /\b${vatID}\b/
93
+ /**
94
+ * @param {object} opt
95
+ * @param {Database} opt.db
96
+ * @param {any} opt.EV
97
+ */
80
98
  export const makeHelpers = ({ db, EV }) => {
81
99
  const sqlKVGet = db
82
100
  .prepare('SELECT value FROM kvStore WHERE key = ?')
83
101
  .pluck();
84
102
  const kvGet = key => sqlKVGet.get(key);
85
- const kvGetJSON = key => JSON.parse(kvGet(key));
103
+ const kvGetJSON = key => JSON.parse(/** @type {string} */ (kvGet(key)));
86
104
 
87
105
  const sqlKVByRange = db.prepare(
88
106
  `SELECT key, value FROM kvStore WHERE key >= :a AND key < :b AND ${[
@@ -122,7 +140,15 @@ export const makeHelpers = ({ db, EV }) => {
122
140
  return lazy ? sql.iterate(args) : sql.all(args);
123
141
  };
124
142
 
143
+ /**
144
+ * NB: snapshot never refreshed
145
+ * @type {Map<`v${string}`, VatInfo>}
146
+ */
125
147
  let vatsByID = new Map();
148
+ /**
149
+ * NB: snapshot never refreshed
150
+ * @type {Map<string, VatInfo | VatInfo[]>}
151
+ */
126
152
  let vatsByName = new Map();
127
153
  try {
128
154
  // @see {@link ../../SwingSet/src/kernel/state/kernelKeeper.js}
@@ -155,6 +181,7 @@ export const makeHelpers = ({ db, EV }) => {
155
181
  ORDER BY vat.rank, vat.idx
156
182
  `);
157
183
  for (const dbRecord of vatQuery.iterate()) {
184
+ // @ts-expect-error extract from unknown
158
185
  const { vatID, rank, sourceText, optionsText } = dbRecord;
159
186
  const isStatic = rank === 1;
160
187
  const source = sourceText ? JSON.parse(sourceText) : undefined;
@@ -193,6 +220,7 @@ export const makeHelpers = ({ db, EV }) => {
193
220
  const kindMetaJSON =
194
221
  kvGet(`${vatID}.vs.vom.dkind.${kindID}.descriptor`) ||
195
222
  kvGet(`${vatID}.vs.vom.vkind.${kindID}.descriptor`);
223
+ assert.typeof(kindMetaJSON, 'string');
196
224
  return JSON.parse(kindMetaJSON);
197
225
  };
198
226
 
@@ -236,6 +264,7 @@ export const makeHelpers = ({ db, EV }) => {
236
264
  const value = kvGet(`${vatID}.c.${kref}`);
237
265
  if (!value) continue;
238
266
  const [_value, _reachabilityFlag, vref] =
267
+ // @ts-expect-error may not be string
239
268
  value.match(krefToVrefValuePatt) ||
240
269
  Fail`unexpected c-list value ${value}`;
241
270
  const result = { vatID, kref, vref };