@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.
- package/package.json +12 -12
- 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-
|
|
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-
|
|
26
|
-
"@agoric/cosmos": "0.34.2-dev-
|
|
27
|
-
"@agoric/deploy-script-support": "0.10.4-dev-
|
|
28
|
-
"@agoric/internal": "0.3.3-dev-
|
|
29
|
-
"@agoric/store": "0.9.3-dev-
|
|
30
|
-
"@agoric/swing-store": "0.9.2-dev-
|
|
31
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
32
|
-
"@agoric/telemetry": "0.6.3-dev-
|
|
33
|
-
"@agoric/vm-config": "0.1.1-dev-
|
|
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-
|
|
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": "
|
|
78
|
+
"gitHead": "3ccb42df5b277298eb5d521baa8cc605bcf387dc"
|
|
79
79
|
}
|
package/tools/inquisitor.mjs
CHANGED
|
@@ -62,8 +62,11 @@ import {
|
|
|
62
62
|
} from '../src/sim-params.js';
|
|
63
63
|
import { makeCosmicSwingsetTestKit } from './test-kit.js';
|
|
64
64
|
|
|
65
|
-
/**
|
|
66
|
-
|
|
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 };
|