Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Add core-eval for terminating v110 zcf-b1-9f877-stkATOM-USD_price_feed-governor #10752

Merged
merged 5 commits into from
Dec 24, 2024

Conversation

gibson042
Copy link
Member

@gibson042 gibson042 commented Dec 20, 2024

Ref #9483

Description

Termination of a small vat to verify good behavior.

Discovery of magic value "board052184" for mainnet
sqlite> SELECT json_extract(value, '$.name') AS name FROM kvStore WHERE key='v110.options';
zcf-b1-9f877-stkATOM-USD_price_feed-governor

sqlite> SELECT * FROM kvStore WHERE key >= 'v2.' AND key < 'v2/' AND value LIKE '%v110%';
v2.vs.vom.o+d13/105|{"vatID":{"body":"#\"v110\"","slots":[]}}

sqlite> SELECT * FROM kvStore WHERE key='v2.c.o+d13/105'; -- v110 admin node
v2.c.o+d13/105|ko4295546

sqlite> SELECT * FROM kvStore WHERE key='v9.c.ko4295546';
v9.c.ko4295546|R o-990404

sqlite> SELECT * FROM kvStore WHERE key >= 'v9.' AND key < 'v9/' AND value LIKE '%o-990404%';
v9.c.ko4295546|R o-990404
v9.vs.vc.4.sp+484625|{"body":"#[[\"$0.Alleged: InstanceCompletionWatcher\",\"$1.Alleged: instanceAdmin instanceAdmin\",\"$2.Alleged: adminNode\"]]","slots":["o+d1617/1","o+d33/98:1","o-990404"]}
v9.vs.vom.o+d26/98|{"instanceState":{"body":"#\"$0.Alleged: InstanceRecord\"","slots":["o+d27/98"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]},"root":{"body":"#\"$0.Alleged: undefined\"","slots":["o-990405"]},"functions":{"body":"#\"#undefined\"","slots":[]}}
v9.vs.vom.o+d33/98|{"offerFilterStrings":{"body":"#[]","slots":[]},"publicFacet":{"body":"#\"$0.Alleged: ContractGovernorKit public\"","slots":["o-990417"]},"handleOfferObj":{"body":"#\"$0.Alleged: handleOfferObj\"","slots":["o-990416"]},"zoeInstanceStorageManager":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/98:1"]},"seatHandleToZoeSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"instanceHandle":{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o+d29/98"]},"acceptingOffers":{"body":"#true","slots":[]},"zoeSeatAdmins":{"body":"#\"$0.Alleged: setStore\"","slots":["o+d8/2681"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]}}
v9.vs.vom.o+d34/98|{"instanceStorage":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/98:1"]},"instanceAdmin":{"body":"#\"$0.Alleged: instanceAdmin instanceAdmin\"","slots":["o+d33/98:1"]},"seatHandleToSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]}}
v9.vs.vom.o+d37/100|{"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]},"contractBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-75"]}}

sqlite> SELECT * FROM kvStore WHERE key='v9.c.o+d37/100'; -- Zoe contract instance admin facet
v9.c.o+d37/100|ko4295574

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko4295574')) = '.c.ko4295574' AND key LIKE 'v%.c.ko4295574';
v1.c.ko4295574|R o-2920
v9.c.ko4295574|R o+d37/100

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value LIKE '%o-2920%';
v1.c.ko4295574|R o-2920
v1.vs.vc.8.r0000000010:o-2924|{"body":"#{\"adminFacet\":\"$0.Alleged: adminFacet\",\"creatorFacet\":\"$1.Alleged: fluxAggregator creator\",\"governor\":\"$2.Alleged: InstanceHandle\",\"governorAdminFacet\":\"$3.Alleged: adminFacet\",\"governorCreatorFacet\":\"$4.Alleged: ContractGovernorKit creator\",\"instance\":\"$5.Alleged: InstanceHandle\",\"label\":\"stkATOM-USD_price_feed\",\"publicFacet\":\"$6.Alleged: fluxAggregator public\"}","slots":["o-2927","o-2926","o-2922","o-2920","o-2921","o-2924","o-2925"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/8"*';
v1.vs.vc.1.sGovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}
v1.vs.vc.5.sgovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/5"*';
v1.vs.vc.1.sBootstrap Powers|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}
v1.vs.vc.5.spowerStore|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}

sqlite> -- v1 bootstrap virtual collection 5 is "Bootstrap Powers" exposed to core eval scripts

sqlite> -- in that collection is "governedContractKits", which contains our contract instance kit by key o-2924

sqlite> SELECT * FROM kvStore WHERE key='v1.c.o-2924';
v1.c.o-2924|ko4295554

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko4295554')) = '.c.ko4295554' AND key LIKE 'v%.c.ko4295554';
v1.c.ko4295554|R o-2924
v110.c.ko4295554|R o-71
v111.c.ko4295554|R o-54
v15.c.ko4295554|R o-243
v43.c.ko4295554|R o-1446627
v6.c.ko4295554|R o-170
v7.c.ko4295554|R o-295917
v9.c.ko4295554|R o+d29/99

sqlite> SELECT * FROM kvStore WHERE key >= 'v7.' AND key < 'v7/' AND value LIKE '%o-295917%';
v7.c.ko4295554|R o-295917
v7.vs.vc.5.sboard052184|{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o-295917"]}
v7.vs.vom.o+d11/5|{"valueDurability":{"body":"#\"mandatory\"","slots":[]},"publishCount":{"body":"#\"+40\"","slots":[]},"status":{"body":"#\"live\"","slots":[]},"hasValue":{"body":"#true","slots":[]},"value":{"body":"#[[\"ATOM-USD price feed\",\"$0.Alleged: InstanceHandle\"],[\"Crabble\",\"$1.Alleged: InstanceHandle\"],[\"CrabbleCommittee\",\"$2.Alleged: InstanceHandle\"],[\"CrabbleGovernor\",\"$3.Alleged: InstanceHandle\"],[\"VaultFactory\",\"$4.Alleged: InstanceHandle\"],[\"VaultFactoryGovernor\",\"$5.Alleged: InstanceHandle\"],[\"auctioneer\",\"$6.Alleged: InstanceHandle\"],[\"econCommitteeCharter\",\"$7.Alleged: InstanceHandle\"],[\"economicCommittee\",\"$8.Alleged: InstanceHandle\"],[\"feeDistributor\",\"$9.Alleged: InstanceHandle\"],[\"kread\",\"$10.Alleged: InstanceHandle\"],[\"kreadCommittee\",\"$11.Alleged: InstanceHandle\"],[\"kreadCommitteeCharter\",\"$12.Alleged: InstanceHandle\"],[\"provisionPool\",\"$13.Alleged: InstanceHandle\"],[\"psm-IST-DAI_axl\",\"$14.Alleged: InstanceHandle\"],[\"psm-IST-DAI_grv\",\"$15.Alleged: InstanceHandle\"],[\"psm-IST-USDC\",\"$16.Alleged: InstanceHandle\"],[\"psm-IST-USDC_axl\",\"$17.Alleged: InstanceHandle\"],[\"psm-IST-USDC_grv\",\"$18.Alleged: InstanceHandle\"],[\"psm-IST-USDT\",\"$19.Alleged: InstanceHandle\"],[\"psm-IST-USDT_axl\",\"$20.Alleged: InstanceHandle\"],[\"psm-IST-USDT_grv\",\"$21.Alleged: InstanceHandle\"],[\"reserve\",\"$22.Alleged: InstanceHandle\"],[\"reserveGovernor\",\"$23.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stATOM\",\"$24.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stOSMO\",\"$25.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stTIA\",\"$26.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stkATOM\",\"$27.Alleged: InstanceHandle\"],[\"stATOM-USD price feed\",\"$28.Alleged: InstanceHandle\"],[\"stOSMO-USD price feed\",\"$29.Alleged: InstanceHandle\"],[\"stTIA-USD price feed\",\"$30.Alleged: InstanceHandle\"],[\"stkATOM-USD price feed\",\"$31.Alleged: InstanceHandle\"],[\"walletFactory\",\"$32.Alleged: InstanceHandle\"]]","slots":["o-124","o-116341","o-116336","o-116342","o-121","o-134","o-689773","o-122","o-105","o-123","o-46029","o-46025","o-46022","o-125","o-132","o-133","o-68280","o-128","o-129","o-68305","o-130","o-131","o-119","o-126","o-55377","o-172282","o-175436","o-295918","o-55376","o-172281","o-175435","o-295917","o-127"]}}

sqlite> -- our Bootstrap Powers key (v1:o-2924/ko4295554/v7:o-295917) can be retrieved from the board with key "board052184"

Security Considerations

We must be very careful about targeting the correct vat (in this case, the governor of an already-orphaned price feed from a prior generation).
This requests the minimal authority, which unfortunately includes a governedContractKits containing admin facets relating to multiple contract instances.

Scaling Considerations

If slow vat cleanup goes awry, we'll recover quickly because the target vat is small. And if it doesn't, we'll have confidence in a core-eval terminating a bigger vat.

Documentation Considerations

n/a

Testing Considerations

Coverage added in a3p-integration.

Upgrade Considerations

Verification is best accomplished by looking at the work reported in vat-cleanup slog entries and watching that block times do not climb (or at least do not remain elevated).

@gibson042 gibson042 requested a review from a team as a code owner December 20, 2024 03:38
Copy link
Member

@dckc dckc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To support testing in environments other than mainnet, I suggest threading the boardID thru as a parameter.

And I have some suggestions on adding an a3p-integration test.

}) => {
const { Fail, quote: q } = assert;
const expectedLabel = 'stkATOM-USD_price_feed';
const contractInstanceHandle = await E(board).getValue('board052184');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description shows how board052184 was derived from v110 using, presumably, a mainnet database. Why v110? I don't see any mention of it in #9483.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll want to test this in a3p and perhaps emerynet and other instagoric networks. I don't think there's any reason to expect the board id to be the same. I suggest threading it thru as a parameter.

For example, look at how labelList set to A3P_INTEGRATION in package.json by passing it to upgrade-mintHolder.js which threads it thru to upgrade-mintHolder-proposal.js

In this case, the off-chain builder and the on-chain core-eval code are in 1 file (using dynamic import of @agoric/deploy-script-support). I don't think that gets in the way of passing options.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description shows how board052184 was derived from v110 using, presumably, a mainnet database. Why v110? I don't see any mention of it in #9483.

The idea is to build confidence by targeting a small vat in the software upgrade, to be followed by larger ones in later core-evals. I'll update #9483.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea is to build confidence by targeting a small vat in the software upgrade, to be followed by larger ones in later core-evals. I'll update #9483.

#9483 (comment)

Fail`instanceKit adminFacet should have been present and different from governorAdminFacet but was ${adminFacet}`;
const reason = harden(Error(`core-eval terminating ${label} governor`));
await E(governorAdminFacet).terminateContract(reason);
console.log(`terminated ${label} governor`);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re testing... you can add ava tests in p:upgrade-19. They can access the kernel db; for example registry.test.js.

I'm not sure whether a slogfile is available. I don't recall any tests that look at slogfiles.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slogfiles may have recently started being generated in a3p-integration, but I also don't think there are any tests that look at them.

Fail`instanceKit adminFacet should have been present and different from governorAdminFacet but was ${adminFacet}`;
const reason = harden(Error(`core-eval terminating ${label} governor`));
await E(governorAdminFacet).terminateContract(reason);
console.log(`terminated ${label} governor`);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slogfiles may have recently started being generated in a3p-integration, but I also don't think there are any tests that look at them.

@gibson042 gibson042 added the force:integration Force integration tests to run on PR label Dec 21, 2024
@gibson042 gibson042 force-pushed the gibson-9483-target-practice branch from 8fa73be to 83bb76d Compare December 21, 2024 19:08
Copy link

cloudflare-workers-and-pages bot commented Dec 21, 2024

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 61a5896
Status: ✅  Deploy successful!
Preview URL: https://31665dd8.agoric-sdk.pages.dev
Branch Preview URL: https://gibson-9483-target-practice.agoric-sdk.pages.dev

View logs

@gibson042
Copy link
Member Author

@Chris-Hibbert @dckc I have parameterized the proposal for use in more than just mainnet, and saw successful execution of it in a3p-integration: https://github.com/Agoric/agoric-sdk/actions/runs/12456920324/job/34770922174?pr=10752#step:9:2767

#54 148.4 2024-12-22T19:17:49.532Z SwingSet: vat: v1: execute { manifestGetterName: 'getManifest', bundleExports: [ 'default', 'defaultProposalBuilder', 'getManifest', 'terminateGovernors' ] }
#54 148.4 2024-12-22T19:17:49.532Z SwingSet: vat: v1: coreProposal: terminateGovernors
#54 148.4 2024-12-22T19:17:49.545Z SwingSet: vat: v1: ["board04091","stATOM-USD_price_feed"] alleged governor contract instance kit { adminFacet: Object [Alleged: adminFacet] {}, creatorFacet: Object [Alleged: fluxAggregator creator] {}, governor: Object [Alleged: InstanceHandle] {}, governorAdminFacet: Object [Alleged: adminFacet] {}, governorCreatorFacet: Object [Alleged: ContractGovernorKit creator] {}, instance: Object [Alleged: InstanceHandle] {}, label: 'stATOM-USD_price_feed', publicFacet: Object [Alleged: fluxAggregator public] {} }
#54 148.4 2024-12-22T19:17:49.546Z SwingSet: ls: v1: Logging sent error stack (Error#3)
#54 148.4 2024-12-22T19:17:49.546Z SwingSet: ls: v1: Error#3: core-eval terminating stATOM-USD_price_feed governor
…
#54 148.5 2024-12-22T19:17:49.565Z SwingSet: kernel: kernel terminating vat v56 (failure=true)
…
#54 148.5 2024-12-22T19:17:49.579Z SwingSet: vat: v1: ["board04091","stATOM-USD_price_feed"] terminated governor

And I see evidence of v56 termination in the slogfile, but not cleanup (slow or otherwise), so I'm re-running with an agd query swingset params in test.sh to hopefully understand why.

Copy link
Member

@dckc dckc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The a3p test establishes that a priceFeed governor vat was terminated, and I don't see any correctness problems, so I'm approving this, though I have some reservations.

The change to launch-chain should probably get more eyes. I don't know the invariants in that area and I see no relevant test changes.

I'd be more comfortable if the mapping from MAINNET/A3P to boardID were in JS; I think that would mean only straight-line changes to go.

if: (success() || failure())
uses: actions/upload-artifact@v4
with:
name: slogfile
path: ${{ env.SLOGFILE }}
name: test slogfile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we have any tooling that looks for an artifact named "slogfile".

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost certainly not since its presence is so recent, but I'll be reverting this change anyway because it's not a viable means of extracting slogfiles from docker build.

Comment on lines +178 to +179
case "MAINNET":
targets = []string{"board052184:stkATOM-USD_price_feed"}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm used to seeing this translation step in JS. I suppose it doesn't matter much.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah we usually go for the "variant" param being plumbed into the JS proposal builder. But I similarly don't care enough one way or the other, since it's simple enough here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This allows reuse of the builder script without modification for post-upgrade core-eval proposals to terminate other instances without hard-coding potential targets.

a3p-integration/proposals/n:upgrade-next/test.sh Outdated Show resolved Hide resolved
@@ -3,6 +3,7 @@ package gaia
import (
"encoding/json"
"fmt"
"reflect"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have enough go experience to know whether using reflect is a pointy instrument.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's slow, but not in a way that we care about here.

) => {
const { Fail, quote: q } = assert;
const targets = parseTargets(targetSpecifiers, Fail);
const doneP = Promise.allSettled(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose this is designed to support 0, 1, or many governors. We only test the 1 case, though, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, 1 or more. We reject the "no targets" case.

Copy link
Member

@mhofman mhofman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change to launch-chain should probably get more eyes. I don't know the invariants in that area and I see no relevant test changes.

The changes to launch-chain are fine, they only affect slog attributes.

I would prefer if the supporting changes to cosmic-swingset, buildProposalStepWithArgs and workflows landed in a separate PR, but in the interest of time, I'm ok as long as they remain in their own commits layered before the termination related commits.

I would like the proposal builder to explicitly fail if no target is provided. Approving assume that is addressed.

Comment on lines +86 to +93
const problems = targets.flatMap(({ boardID, instanceKitLabel }, i) => {
if (results[i].status === 'fulfilled') return [];
return [[boardID, instanceKitLabel, results[i].reason]];
});
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an interesting filter + map pattern.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah, I've got a TODO somewhere to add a helper to @agoric/internal. Aside from the slower performance, prettier just makes .filter(…).map(…) take up too much real estate.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Helper? I wonder why. flatMap is a recognized workhorse idiom, no?

@gibson042
Copy link
Member Author

OK, the problem is probably that cleanup actions do not appear in replay. I have tried separating yarn build and yarn test slogfiles, but we don't actually have yarn build slogfiles because that's basically a wrapper around docker buildx bake use, which AFAIK cannot write to a local bind mount (and slogfiles in the image would bloat things for little conceivable benefit).

I think we should instead just rely on the observable termination in this PR and the observed slow cleanup in prior testing.

@mhofman
Copy link
Member

mhofman commented Dec 23, 2024

I think we should instead just rely on the observable termination in this PR and the observed slow cleanup in prior testing.

Do we have another vat to target in a3p to run the termination as a core eval in a test phase ?

@gibson042
Copy link
Member Author

gibson042 commented Dec 23, 2024

I think we should instead just rely on the observable termination in this PR and the observed slow cleanup in prior testing.

Do we have another vat to target in a3p to run the termination as a core eval in a test phase ?

Hmm, I'll try terminating v26 zcf-b1-9f877-ATOM-USD_price_feed-governor.

mergify bot pushed a commit that referenced this pull request Dec 23, 2024
…ish} slog entries (#10765)

## Description
Extracted from #10752.

Add `phase: "{leftover,forced,high-priority,timer,queued,cleanup}"` to cosmic-swingset-run{start,finish} slogfile entries (see [launch-chain.js](https://github.com/Agoric/agoric-sdk/blob/master/packages/cosmic-swingset/src/launch-chain.js), particularly [`processBlockActions`](https://github.com/Agoric/agoric-sdk/blob/837776e6eb693603bce4ed3f9af5c659c9a19d2d/packages/cosmic-swingset/src/launch-chain.js#L737-L781)).

### Security Considerations
None known.

### Scaling Considerations
The size increase should be modest, and I believe pays for itself in increased transparency.

### Documentation Considerations
n/a

### Testing Considerations
Already seen working in #10752.

### Upgrade Considerations
None known, although we will probably want slog-to-otel consumption of the new data.
mergify bot pushed a commit that referenced this pull request Dec 23, 2024
## Description
Extracted from and supports #10752 by allowing builder arguments other than a single options record.

### Security Considerations
None known.

### Scaling Considerations
None.

### Documentation Considerations
n/a

### Testing Considerations
Covered by use in #10752.

### Upgrade Considerations
n/a
@gibson042 gibson042 force-pushed the gibson-9483-target-practice branch 3 times, most recently from 4ae4484 to 4debf40 Compare December 24, 2024 01:39
@gibson042 gibson042 added the automerge:rebase Automatically rebase updates, then merge label Dec 24, 2024
@gibson042 gibson042 force-pushed the gibson-9483-target-practice branch from 4debf40 to 5b1b9a0 Compare December 24, 2024 02:10
…M-USD_price_feed-governor

Ref #9483
Termination of a small vat to verify good behavior.

Discovery of magic value "board052184":
```
sqlite> SELECT json_extract(value, '$.name') AS name FROM kvStore WHERE key='v110.options';
zcf-b1-9f877-stkATOM-USD_price_feed-governor

sqlite> SELECT * FROM kvStore WHERE key >= 'v2.' AND key < 'v2/' AND value LIKE '%v110%';
v2.vs.vom.o+d13/105|{"vatID":{"body":"#\"v110\"","slots":[]}}

sqlite> SELECT * FROM kvStore WHERE key='v2.c.o+d13/105'; -- v110 admin node
v2.c.o+d13/105|ko4295546

sqlite> SELECT * FROM kvStore WHERE key='v9.c.ko4295546';
v9.c.ko4295546|R o-990404

sqlite> SELECT * FROM kvStore WHERE key >= 'v9.' AND key < 'v9/' AND value LIKE '%o-990404%';
v9.c.ko4295546|R o-990404
v9.vs.vc.4.sp+484625|{"body":"#[[\"$0.Alleged: InstanceCompletionWatcher\",\"$1.Alleged: instanceAdmin instanceAdmin\",\"$2.Alleged: adminNode\"]]","slots":["o+d1617/1","o+d33/98:1","o-990404"]}
v9.vs.vom.o+d26/98|{"instanceState":{"body":"#\"$0.Alleged: InstanceRecord\"","slots":["o+d27/98"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]},"root":{"body":"#\"$0.Alleged: undefined\"","slots":["o-990405"]},"functions":{"body":"#\"#undefined\"","slots":[]}}
v9.vs.vom.o+d33/98|{"offerFilterStrings":{"body":"#[]","slots":[]},"publicFacet":{"body":"#\"$0.Alleged: ContractGovernorKit public\"","slots":["o-990417"]},"handleOfferObj":{"body":"#\"$0.Alleged: handleOfferObj\"","slots":["o-990416"]},"zoeInstanceStorageManager":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/98:1"]},"seatHandleToZoeSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"instanceHandle":{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o+d29/98"]},"acceptingOffers":{"body":"#true","slots":[]},"zoeSeatAdmins":{"body":"#\"$0.Alleged: setStore\"","slots":["o+d8/2681"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]}}
v9.vs.vom.o+d34/98|{"instanceStorage":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/98:1"]},"instanceAdmin":{"body":"#\"$0.Alleged: instanceAdmin instanceAdmin\"","slots":["o+d33/98:1"]},"seatHandleToSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]}}
v9.vs.vom.o+d37/100|{"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-990404"]},"contractBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-75"]}}

sqlite> SELECT * FROM kvStore WHERE key='v9.c.o+d37/100'; -- Zoe contract instance admin facet
v9.c.o+d37/100|ko4295574

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko4295574')) = '.c.ko4295574' AND key LIKE 'v%.c.ko4295574';
v1.c.ko4295574|R o-2920
v9.c.ko4295574|R o+d37/100

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value LIKE '%o-2920%';
v1.c.ko4295574|R o-2920
v1.vs.vc.8.r0000000010:o-2924|{"body":"#{\"adminFacet\":\"$0.Alleged: adminFacet\",\"creatorFacet\":\"$1.Alleged: fluxAggregator creator\",\"governor\":\"$2.Alleged: InstanceHandle\",\"governorAdminFacet\":\"$3.Alleged: adminFacet\",\"governorCreatorFacet\":\"$4.Alleged: ContractGovernorKit creator\",\"instance\":\"$5.Alleged: InstanceHandle\",\"label\":\"stkATOM-USD_price_feed\",\"publicFacet\":\"$6.Alleged: fluxAggregator public\"}","slots":["o-2927","o-2926","o-2922","o-2920","o-2921","o-2924","o-2925"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/8"*';
v1.vs.vc.1.sGovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}
v1.vs.vc.5.sgovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/5"*';
v1.vs.vc.1.sBootstrap Powers|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}
v1.vs.vc.5.spowerStore|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}

sqlite> -- v1 bootstrap virtual collection 5 is "Bootstrap Powers" exposed to core eval scripts

sqlite> -- in that collection is "governedContractKits", which contains our contract instance kit by key o-2924

sqlite> SELECT * FROM kvStore WHERE key='v1.c.o-2924';
v1.c.o-2924|ko4295554

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko4295554')) = '.c.ko4295554' AND key LIKE 'v%.c.ko4295554';
v1.c.ko4295554|R o-2924
v110.c.ko4295554|R o-71
v111.c.ko4295554|R o-54
v15.c.ko4295554|R o-243
v43.c.ko4295554|R o-1446627
v6.c.ko4295554|R o-170
v7.c.ko4295554|R o-295917
v9.c.ko4295554|R o+d29/99

sqlite> SELECT * FROM kvStore WHERE key >= 'v7.' AND key < 'v7/' AND value LIKE '%o-295917%';
v7.c.ko4295554|R o-295917
v7.vs.vc.5.sboard052184|{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o-295917"]}
v7.vs.vom.o+d11/5|{"valueDurability":{"body":"#\"mandatory\"","slots":[]},"publishCount":{"body":"#\"+40\"","slots":[]},"status":{"body":"#\"live\"","slots":[]},"hasValue":{"body":"#true","slots":[]},"value":{"body":"#[[\"ATOM-USD price feed\",\"$0.Alleged: InstanceHandle\"],[\"Crabble\",\"$1.Alleged: InstanceHandle\"],[\"CrabbleCommittee\",\"$2.Alleged: InstanceHandle\"],[\"CrabbleGovernor\",\"$3.Alleged: InstanceHandle\"],[\"VaultFactory\",\"$4.Alleged: InstanceHandle\"],[\"VaultFactoryGovernor\",\"$5.Alleged: InstanceHandle\"],[\"auctioneer\",\"$6.Alleged: InstanceHandle\"],[\"econCommitteeCharter\",\"$7.Alleged: InstanceHandle\"],[\"economicCommittee\",\"$8.Alleged: InstanceHandle\"],[\"feeDistributor\",\"$9.Alleged: InstanceHandle\"],[\"kread\",\"$10.Alleged: InstanceHandle\"],[\"kreadCommittee\",\"$11.Alleged: InstanceHandle\"],[\"kreadCommitteeCharter\",\"$12.Alleged: InstanceHandle\"],[\"provisionPool\",\"$13.Alleged: InstanceHandle\"],[\"psm-IST-DAI_axl\",\"$14.Alleged: InstanceHandle\"],[\"psm-IST-DAI_grv\",\"$15.Alleged: InstanceHandle\"],[\"psm-IST-USDC\",\"$16.Alleged: InstanceHandle\"],[\"psm-IST-USDC_axl\",\"$17.Alleged: InstanceHandle\"],[\"psm-IST-USDC_grv\",\"$18.Alleged: InstanceHandle\"],[\"psm-IST-USDT\",\"$19.Alleged: InstanceHandle\"],[\"psm-IST-USDT_axl\",\"$20.Alleged: InstanceHandle\"],[\"psm-IST-USDT_grv\",\"$21.Alleged: InstanceHandle\"],[\"reserve\",\"$22.Alleged: InstanceHandle\"],[\"reserveGovernor\",\"$23.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stATOM\",\"$24.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stOSMO\",\"$25.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stTIA\",\"$26.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stkATOM\",\"$27.Alleged: InstanceHandle\"],[\"stATOM-USD price feed\",\"$28.Alleged: InstanceHandle\"],[\"stOSMO-USD price feed\",\"$29.Alleged: InstanceHandle\"],[\"stTIA-USD price feed\",\"$30.Alleged: InstanceHandle\"],[\"stkATOM-USD price feed\",\"$31.Alleged: InstanceHandle\"],[\"walletFactory\",\"$32.Alleged: InstanceHandle\"]]","slots":["o-124","o-116341","o-116336","o-116342","o-121","o-134","o-689773","o-122","o-105","o-123","o-46029","o-46025","o-46022","o-125","o-132","o-133","o-68280","o-128","o-129","o-68305","o-130","o-131","o-119","o-126","o-55377","o-172282","o-175436","o-295918","o-55376","o-172281","o-175435","o-295917","o-127"]}}

sqlite> -- our Bootstrap Powers key (v1:o-2924/ko4295554/v7:o-295917) can be retrieved from the board with key "board052184"
```
…v56 zcf-b1-9f877-stATOM-USD_price_feed-governor

Discovery of magic value "board04091":
```
sqlite> SELECT json_extract(value, '$.name') AS name FROM kvStore WHERE key='v56.options';
zcf-b1-9f877-stATOM-USD_price_feed-governor

sqlite> SELECT * FROM kvStore WHERE key >= 'v2.' AND key < 'v2/' AND value LIKE '%v56%';
v2.vs.vom.o+d13/51|{"vatID":{"body":"#\"v56\"","slots":[]}}

sqlite> SELECT * FROM kvStore WHERE key='v2.c.o+d13/51'; -- v56 admin node
v2.c.o+d13/51|ko1852

sqlite> SELECT * FROM kvStore WHERE key='v9.c.ko1852';
v9.c.ko1852|R o-581

sqlite> SELECT * FROM kvStore WHERE key >= 'v9.' AND key < 'v9/' AND value LIKE '%o-581%';
v9.c.ko1852|R o-581
v9.vs.vom.o+d26/44|{"instanceState":{"body":"#\"$0.Alleged: InstanceRecord\"","slots":["o+d27/44"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-581"]},"root":{"body":"#\"$0.Alleged: undefined\"","slots":["o-582"]},"functions":{"body":"#\"#undefined\"","slots":[]}}
v9.vs.vom.o+d33/44|{"offerFilterStrings":{"body":"#[]","slots":[]},"publicFacet":{"body":"#\"$0.Alleged: ContractGovernorKit public\"","slots":["o-594"]},"handleOfferObj":{"body":"#\"$0.Alleged: handleOfferObj\"","slots":["o-593"]},"zoeInstanceStorageManager":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/44:1"]},"seatHandleToZoeSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"instanceHandle":{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o+d29/44"]},"acceptingOffers":{"body":"#true","slots":[]},"zoeSeatAdmins":{"body":"#\"$0.Alleged: setStore\"","slots":["o+d8/142"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-581"]}}
v9.vs.vom.o+d34/44|{"instanceStorage":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/44:1"]},"instanceAdmin":{"body":"#\"$0.Alleged: instanceAdmin instanceAdmin\"","slots":["o+d33/44:1"]},"seatHandleToSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-581"]}}
v9.vs.vom.o+d37/46|{"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-581"]},"zcfBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-70"]},"contractBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-75"]}}

sqlite> SELECT * FROM kvStore WHERE key='v9.c.o+d37/46'; -- Zoe contract instance admin facet
v9.c.o+d37/46|ko1880

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko1880')) = '.c.ko1880' AND key LIKE 'v%.c.ko1880';
v1.c.ko1880|R o-486
v9.c.ko1880|R o+d37/46

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value LIKE '%o-486%';
v1.c.ko1880|R o-486
v1.vs.vc.8.r0000000006:o-490|{"body":"#{\"adminFacet\":\"$0.Alleged: adminFacet\",\"creatorFacet\":\"$1.Alleged: fluxAggregator creator\",\"governor\":\"$2.Alleged: InstanceHandle\",\"governorAdminFacet\":\"$3.Alleged: adminFacet\",\"governorCreatorFacet\":\"$4.Alleged: ContractGovernorKit creator\",\"instance\":\"$5.Alleged: InstanceHandle\",\"label\":\"stATOM-USD_price_feed\",\"publicFacet\":\"$6.Alleged: fluxAggregator public\"}","slots":["o-493","o-492","o-488","o-486","o-487","o-490","o-491"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/8"*';
v1.vs.vc.1.sGovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}
v1.vs.vc.5.sgovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/5"*';
v1.vs.vc.1.sBootstrap Powers|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}
v1.vs.vc.5.spowerStore|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}

sqlite> -- v1 bootstrap virtual collection 5 is "Bootstrap Powers" exposed to core eval scripts

sqlite> -- in that collection is "governedContractKits", which contains our contract instance kit by key o-490

sqlite> SELECT * FROM kvStore WHERE key='v1.c.o-490';
v1.c.o-490|ko1861

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko1861')) = '.c.ko1861' AND key LIKE 'v%.c.ko1861';
v1.c.ko1861|R o-490
v15.c.ko1861|R o-96
v56.c.ko1861|R o-71
v57.c.ko1861|R o-54
v6.c.ko1861|R o-149
v7.c.ko1861|R o-175
v9.c.ko1861|R o+d29/45

sqlite> SELECT * FROM kvStore WHERE key >= 'v7.' AND key < 'v7/' AND value LIKE '%o-175%';
v7.c.ko1861|R o-175
v7.vs.vc.5.sboard04091|{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o-175"]}
v7.vs.vom.o+d11/5|{"valueDurability":{"body":"#\"mandatory\"","slots":[]},"publishCount":{"body":"#\"+29\"","slots":[]},"status":{"body":"#\"live\"","slots":[]},"hasValue":{"body":"#true","slots":[]},"value":{"body":"#[[\"ATOM-USD price feed\",\"$0.Alleged: InstanceHandle\"],[\"Crabble\",\"$1.Alleged: InstanceHandle\"],[\"CrabbleCommittee\",\"$2.Alleged: InstanceHandle\"],[\"CrabbleGovernor\",\"$3.Alleged: InstanceHandle\"],[\"VaultFactory\",\"$4.Alleged: InstanceHandle\"],[\"VaultFactoryGovernor\",\"$5.Alleged: InstanceHandle\"],[\"auctioneer\",\"$6.Alleged: InstanceHandle\"],[\"econCommitteeCharter\",\"$7.Alleged: InstanceHandle\"],[\"economicCommittee\",\"$8.Alleged: InstanceHandle\"],[\"feeDistributor\",\"$9.Alleged: InstanceHandle\"],[\"kread\",\"$10.Alleged: InstanceHandle\"],[\"kreadCommittee\",\"$11.Alleged: InstanceHandle\"],[\"kreadCommitteeCharter\",\"$12.Alleged: InstanceHandle\"],[\"provisionPool\",\"$13.Alleged: InstanceHandle\"],[\"psm-IST-DAI_axl\",\"$14.Alleged: InstanceHandle\"],[\"psm-IST-DAI_grv\",\"$15.Alleged: InstanceHandle\"],[\"psm-IST-USDC_axl\",\"$16.Alleged: InstanceHandle\"],[\"psm-IST-USDC_grv\",\"$17.Alleged: InstanceHandle\"],[\"psm-IST-USDT_axl\",\"$18.Alleged: InstanceHandle\"],[\"psm-IST-USDT_grv\",\"$19.Alleged: InstanceHandle\"],[\"reserve\",\"$20.Alleged: InstanceHandle\"],[\"reserveGovernor\",\"$21.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stATOM\",\"$22.Alleged: InstanceHandle\"],[\"stATOM-USD price feed\",\"$23.Alleged: InstanceHandle\"],[\"walletFactory\",\"$24.Alleged: InstanceHandle\"]]","slots":["o-124","o-183","o-178","o-184","o-121","o-134","o-193","o-122","o-105","o-123","o-167","o-163","o-160","o-125","o-128","o-129","o-130","o-131","o-132","o-133","o-119","o-126","o-176","o-175","o-127"]}}

sqlite> -- our Bootstrap Powers key (v1:o-490/ko1861/v7:o-175) can be retrieved from the board with key "board04091"
```
…-9f877-ATOM-USD_price_feed-governor

Discovery of magic value "board02963":
```
sqlite> SELECT json_extract(value, '$.name') AS name FROM kvStore WHERE key='v26.options';
zcf-b1-9f877-ATOM-USD_price_feed-governor

sqlite> SELECT * FROM kvStore WHERE key >= 'v2.' AND key < 'v2/' AND value LIKE '%v26%';
v2.vs.vom.o+d13/21|{"vatID":{"body":"#\"v26\"","slots":[]}}

sqlite> SELECT * FROM kvStore WHERE key='v2.c.o+d13/21'; -- v26 admin node
v2.c.o+d13/21|ko326

sqlite> SELECT * FROM kvStore WHERE key='v9.c.ko326';
v9.c.ko326|R o-142

sqlite> SELECT * FROM kvStore WHERE key >= 'v9.' AND key < 'v9/' AND value LIKE '%o-142%';
v9.c.ko326|R o-142
v9.vs.vom.o+d26/14|{"instanceState":{"body":"#\"$0.Alleged: InstanceRecord\"","slots":["o+d27/14"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-142"]},"root":{"body":"#\"$0.Alleged: undefined\"","slots":["o-143"]},"functions":{"body":"#\"#undefined\"","slots":[]}}
v9.vs.vom.o+d33/14|{"offerFilterStrings":{"body":"#[]","slots":[]},"publicFacet":{"body":"#\"$0.Alleged: ContractGovernorKit public\"","slots":["o-181"]},"handleOfferObj":{"body":"#\"$0.Alleged: handleOfferObj\"","slots":["o-180"]},"zoeInstanceStorageManager":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/14:1"]},"seatHandleToZoeSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"instanceHandle":{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o+d29/14"]},"acceptingOffers":{"body":"#true","slots":[]},"zoeSeatAdmins":{"body":"#\"$0.Alleged: setStore\"","slots":["o+d8/56"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-142"]}}
v9.vs.vom.o+d34/14|{"instanceStorage":{"body":"#\"$0.Alleged: InstanceStorageManager instanceStorageManager\"","slots":["o+d26/14:1"]},"instanceAdmin":{"body":"#\"$0.Alleged: instanceAdmin instanceAdmin\"","slots":["o+d33/14:1"]},"seatHandleToSeatAdmin":{"body":"#\"$0.Alleged: weakMapStore\"","slots":["o+d7/24"]},"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-142"]}}
v9.vs.vom.o+d37/14|{"adminNode":{"body":"#\"$0.Alleged: adminNode\"","slots":["o-142"]},"zcfBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-70"]},"contractBundleCap":{"body":"#\"$0.Alleged: device node\"","slots":["d-75"]}}

sqlite> SELECT * FROM kvStore WHERE key='v9.c.o+d37/14'; -- Zoe contract instance admin facet
v9.c.o+d37/14|ko396

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko396')) = '.c.ko396' AND key LIKE 'v%.c.ko396';
v1.c.ko396|R o-264
v9.c.ko396|R o+d37/14

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value LIKE '%o-264%';
v1.c.ko396|R o-264
v1.vs.vc.8.r0000000001:o-268|{"body":"#{\"adminFacet\":\"$0.Alleged: adminFacet\",\"creatorFacet\":\"$1.Alleged: fluxAggregator creator\",\"governor\":\"$2.Alleged: InstanceHandle\",\"governorAdminFacet\":\"$3.Alleged: adminFacet\",\"governorCreatorFacet\":\"$4.Alleged: ContractGovernorKit creator\",\"instance\":\"$5.Alleged: InstanceHandle\",\"label\":\"ATOM-USD_price_feed\",\"publicFacet\":\"$6.Alleged: fluxAggregator public\"}","slots":["o-271","o-270","o-266","o-264","o-265","o-268","o-269"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/8"*';
v1.vs.vc.1.sGovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}
v1.vs.vc.5.sgovernedContractKits|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/8"]}

sqlite> SELECT * FROM kvStore WHERE key >= 'v1.' AND key < 'v1/' AND value GLOB '*"o+??/5"*';
v1.vs.vc.1.sBootstrap Powers|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}
v1.vs.vc.5.spowerStore|{"body":"#\"$0.Alleged: mapStore\"","slots":["o+d6/5"]}

sqlite> -- v1 bootstrap virtual collection 5 is "Bootstrap Powers" exposed to core eval scripts

sqlite> -- in that collection is "governedContractKits", which contains our contract instance kit by key o-268

sqlite> SELECT * FROM kvStore WHERE key='v1.c.o-268';
v1.c.o-268|ko352

sqlite> SELECT * FROM kvStore WHERE key >= 'v1' AND key < 'v:' AND substr(key, -length('.c.ko352')) = '.c.ko352' AND key LIKE 'v%.c.ko352';
v1.c.ko352|R o-268
v15.c.ko352|R o-59
v26.c.ko352|R o-71
v29.c.ko352|R o-54
v43.c.ko352|R o-104
v6.c.ko352|R o-121
v7.c.ko352|R o-124
v9.c.ko352|R o+d29/17

sqlite> SELECT * FROM kvStore WHERE key >= 'v7.' AND key < 'v7/' AND value LIKE '%o-124%';
v7.c.ko352|R o-124
v7.vs.vc.5.sboard02963|{"body":"#\"$0.Alleged: InstanceHandle\"","slots":["o-124"]}
v7.vs.vom.o+d11/5|{"valueDurability":{"body":"#\"mandatory\"","slots":[]},"publishCount":{"body":"#\"+29\"","slots":[]},"status":{"body":"#\"live\"","slots":[]},"hasValue":{"body":"#true","slots":[]},"value":{"body":"#[[\"ATOM-USD price feed\",\"$0.Alleged: InstanceHandle\"],[\"Crabble\",\"$1.Alleged: InstanceHandle\"],[\"CrabbleCommittee\",\"$2.Alleged: InstanceHandle\"],[\"CrabbleGovernor\",\"$3.Alleged: InstanceHandle\"],[\"VaultFactory\",\"$4.Alleged: InstanceHandle\"],[\"VaultFactoryGovernor\",\"$5.Alleged: InstanceHandle\"],[\"auctioneer\",\"$6.Alleged: InstanceHandle\"],[\"econCommitteeCharter\",\"$7.Alleged: InstanceHandle\"],[\"economicCommittee\",\"$8.Alleged: InstanceHandle\"],[\"feeDistributor\",\"$9.Alleged: InstanceHandle\"],[\"kread\",\"$10.Alleged: InstanceHandle\"],[\"kreadCommittee\",\"$11.Alleged: InstanceHandle\"],[\"kreadCommitteeCharter\",\"$12.Alleged: InstanceHandle\"],[\"provisionPool\",\"$13.Alleged: InstanceHandle\"],[\"psm-IST-DAI_axl\",\"$14.Alleged: InstanceHandle\"],[\"psm-IST-DAI_grv\",\"$15.Alleged: InstanceHandle\"],[\"psm-IST-USDC_axl\",\"$16.Alleged: InstanceHandle\"],[\"psm-IST-USDC_grv\",\"$17.Alleged: InstanceHandle\"],[\"psm-IST-USDT_axl\",\"$18.Alleged: InstanceHandle\"],[\"psm-IST-USDT_grv\",\"$19.Alleged: InstanceHandle\"],[\"reserve\",\"$20.Alleged: InstanceHandle\"],[\"reserveGovernor\",\"$21.Alleged: InstanceHandle\"],[\"scaledPriceAuthority-stATOM\",\"$22.Alleged: InstanceHandle\"],[\"stATOM-USD price feed\",\"$23.Alleged: InstanceHandle\"],[\"walletFactory\",\"$24.Alleged: InstanceHandle\"]]","slots":["o-124","o-183","o-178","o-184","o-121","o-134","o-193","o-122","o-105","o-123","o-167","o-163","o-160","o-125","o-128","o-129","o-130","o-131","o-132","o-133","o-119","o-126","o-176","o-175","o-127"]}}

sqlite> -- our Bootstrap Powers key (v1:o-268/ko352/v7:o-124) can be retrieved from the board with key "board02963"
```
@gibson042 gibson042 force-pushed the gibson-9483-target-practice branch from 5b1b9a0 to 61a5896 Compare December 24, 2024 02:30
@warner
Copy link
Member

warner commented Dec 24, 2024

I did an independent trace from the v110-stkATOM-USD_price_feed-governor vat-admin adminNode backwards to board ID board052184 holding the zoe instanceHandle, so I concur this is the right vat to target, and the right way to target this vat (after its replacement has been deployed, of course).

@mergify mergify bot merged commit 10b789b into master Dec 24, 2024
81 checks passed
@mergify mergify bot deleted the gibson-9483-target-practice branch December 24, 2024 03:21
@gibson042
Copy link
Member Author

For posterity, the a3p-integration slogfile did show slow vat cleanup:

$ grep vat-cleanup test.slog 
{"type":"vat-cleanup","vatID":"v26","work":{"exports":4,"imports":5},"time":1735008931.362913,"monotime":40.27225280799996}
{"type":"vat-cleanup","vatID":"v26","work":{"imports":5},"time":1735008932.369843,"monotime":41.27918244799995}
{"type":"vat-cleanup","vatID":"v26","work":{"imports":5},"time":1735008933.377512,"monotime":42.286851516}
{"type":"vat-cleanup","vatID":"v26","work":{"imports":5},"time":1735008934.384334,"monotime":43.29367270400002}
{"type":"vat-cleanup","vatID":"v26","work":{"imports":5},"time":1735008936.403808,"monotime":45.31314702100004}
{"type":"vat-cleanup","vatID":"v26","work":{"imports":2,"kv":50},"time":1735008937.618935,"monotime":46.52827437500004}
{"type":"vat-cleanup","vatID":"v26","work":{"kv":50},"time":1735008938.623518,"monotime":47.532857404000126}
{"type":"vat-cleanup","vatID":"v26","work":{"kv":50},"time":1735008939.632681,"monotime":48.54202044200012}
{"type":"vat-cleanup","vatID":"v26","work":{"kv":4,"snapshots":1,"transcripts":2},"time":1735008940.641647,"monotime":49.550986767000055}
{"type":"vat-cleanup-complete","vatID":"v26","time":1735008940.641776,"monotime":49.55111469700001}

mujahidkay added a commit that referenced this pull request Dec 24, 2024
## Description

Created as per instructions in MAINTAINERS.md. Includes an additional
step to update yarn.lock for multichain-testing,
a3p-integration/proposals/s:stake-bld and
a3p-integration/proposals/z:acceptance

## Changes

 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - [email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]
 - @agoric/[email protected]

## Packages that have NEWS.md updates

```diff
--- a/golang/cosmos/CHANGELOG.md
+++ b/golang/cosmos/CHANGELOG.md
@@ -3,6 +3,32 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.35.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **cosmos:** Support arbitrary core eval builder arguments ([#10767](#10767)) ([a944f4c](a944f4c)), closes [#10752](#10752) [#10752](#10752)
+* **cosmos:** use `x/vbank` ConsensusVersion to upgrade monitoring ([0e367d3](0e367d3))
+* migrate upgrade of v7-board from  upgrade 19 to upgrade 18 ([#10761](#10761)) ([837776e](837776e)), closes [#10760](#10760)
+* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394)
+* **vbank:** new param `allowed_monitoring_accounts` ([5ac4c52](5ac4c52))
+* **vtransfer:** extract base address from parameterized address ([3d44b53](3d44b53))
+* **vtransfer:** port some `address-hooks.js` functions to Go ([159098b](159098b))
+* **x/swingset:** Add parameters for controlling vat cleanup budget ([02c8138](02c8138)), closes [#8928](#8928)
+* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d))
+* **x/swingset:** Read beansPerUnit in each message handler and pass down to helpers ([55b9b49](55b9b49))
+* **x/swingset:** Require a non-empty vat cleanup budget to include `default` ([28c4d8b](28c4d8b))
+
+
+### Bug Fixes
+
+* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c))
+* **cosmos:** return an error if version is unsupported ([d17e55b](d17e55b))
+* **x/swingset:** Let migration see incomplete Params structs ([315cdd5](315cdd5))
+
+
+
 ## [0.35.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/cosmos
--- a/packages/ERTP/CHANGELOG.md
+++ b/packages/ERTP/CHANGELOG.md
@@ -3,6 +3,16 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.16.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **ertp:** remove unneeded ertp type imports ([#10467](#10467)) ([e96ff82](e96ff82)), closes [#10456](#10456)
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+
+
+
 ### [0.16.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/SwingSet/CHANGELOG.md
+++ b/packages/SwingSet/CHANGELOG.md
@@ -3,6 +3,21 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.33.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+
+
+### Bug Fixes
+
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+* **SwingSet:** Introduce a termination-dedicated "VatUndertaker" analog to "VatKeeper" ([b786414](b786414))
+
+
+
 ## [0.33.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/agoric-cli/CHANGELOG.md
+++ b/packages/agoric-cli/CHANGELOG.md
@@ -3,6 +3,37 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.22.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.22.0-u18.6) (2024-12-24)
+
+
+### ⚠ BREAKING CHANGES
+
+* remove agoricNames from VstorageKit
+
+### Features
+
+* **agoric-cli:** Add `agoric wallet send` gas limit options ([21a03f8](21a03f8))
+* **agoric-cli:** Block `agoric wallet send` on tx inclusion ([0389a21](0389a21))
+* client-utils package ([50af71f](50af71f))
+* export cli lib ([0d2d4aa](0d2d4aa))
+* fetchEnvNetworkConfig ([9bdba57](9bdba57))
+* makeWalletUtils wo/spawn ([bc10509](bc10509))
+* makeWalletUtils wo/spawn ([20083ae](20083ae))
+* VstorageKit ([71486d7](71486d7))
+
+
+### Bug Fixes
+
+* **agoric-cli:** use readPublished consistently in agops oracle ([e8f6de2](e8f6de2))
+* proposeParamChange options ([202ba1e](202ba1e))
+
+
+### Miscellaneous Chores
+
+* remove agoricNames from VstorageKit ([1c69d39](1c69d39))
+
+
+
 ## [0.22.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.22.0-u18.5) (2024-12-17)
 
 **Note:** Version bump only for package agoric
--- a/packages/boot/CHANGELOG.md
+++ b/packages/boot/CHANGELOG.md
@@ -3,6 +3,27 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee))
+* consistent publishTxnRecord (record) ([dbf3934](dbf3934))
+* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13))
+* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a))
+* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1))
+* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e))
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+* publish OBSERVED with first evidence ([7e62d8f](7e62d8f))
+* readPublished in SwingsetTestKit ([0b383c9](0b383c9))
+* record instances that will be replaced so we can manage them ([c883c39](c883c39))
+* send-anywhere inits chainHub ([2fa2f75](2fa2f75))
+* **types:** TransactionRecord ([ccb9e28](ccb9e28))
+* vstorage status --> txns ([aebb4d7](aebb4d7))
+
+
+
 ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/boot
--- a/packages/builders/CHANGELOG.md
+++ b/packages/builders/CHANGELOG.md
@@ -3,6 +3,41 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.2.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1))
+* `ForwardOptsShape` ([50b1717](50b1717))
+* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee))
+* advancer with fees ([087f3a8](087f3a8))
+* assetInfo as array of entries ([51e7a9c](51e7a9c))
+* **builders:** --noNoble option for init-fast-usdc ([508a3e0](508a3e0))
+* **builders:** fast-usdc builder w/CLI config ([9f45a05](9f45a05))
+* **builders:** fast-usdc oracleSet option for MAINNET, ... ([3bf01a2](3bf01a2))
+* **builders:** fast-usdc policy update builder ([8ded3d8](8ded3d8))
+* chain-capabilities.js constants ([52ff70a](52ff70a))
+* export `DenomDetailShape` ([2dfddb3](2dfddb3))
+* export `OrchestrationPowersShape` ([34b61ea](34b61ea))
+* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1))
+* fusdc assetInfo and chainInfo by netname ([afb4f34](afb4f34))
+* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64))
+* record instances that will be replaced so we can manage them ([c883c39](c883c39))
+* register interchain bank assets proposal ([0e20707](0e20707))
+* registerChainsAndAssets ([e72782d](e72782d))
+* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3))
+* send-anywhere inits chainHub ([2fa2f75](2fa2f75))
+* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394)
+
+
+### Bug Fixes
+
+* **agd:** upgrade all orchestration vats to new liveslots ([59fa82c](59fa82c))
+* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e))
+
+
+
 ## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/builders
--- a/packages/casting/CHANGELOG.md
+++ b/packages/casting/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.4.3-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* makeTendermintRpcClient ([129516a](129516a))
+
+
+
 ### [0.4.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/casting
--- a/packages/client-utils/CHANGELOG.md
+++ b/packages/client-utils/CHANGELOG.md
@@ -1 +1,41 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## 0.2.0-u18.0 (2024-12-24)
+
+
+### ⚠ BREAKING CHANGES
+
+* remove agoricNames from VstorageKit
+
+### Features
+
+* client-utils package ([50af71f](50af71f))
+* export makeStargateClient ([186d268](186d268))
+* fetchEnvNetworkConfig ([9bdba57](9bdba57))
+* getCurrentWalletRecord ([2740748](2740748))
+* makeWalletUtils wo/spawn ([20083ae](20083ae))
+* ocap makeStargateClient ([c8f7407](c8f7407))
+* one marshaller per WalletUtils ([b141ce6](b141ce6))
+* **sync-tools:** add method to wait until offer exited ([c9370f2](c9370f2))
+* **types:** TypedPublished ([88939bf](88939bf))
+* vstorage without instance binding ([2c4e2e3](2c4e2e3))
+* VstorageKit ([71486d7](71486d7))
+* VstorageKit readPublished ([e48c53c](e48c53c))
+
+
+### Bug Fixes
+
+* **client-utils:** only call `fetch` as a function, not a method ([#10671](#10671)) ([fbae24c](fbae24c)), closes [/github.com/endojs/endo/issues/31#issuecomment-1255624116](https://github.com/Agoric//github.com/endojs/endo/issues/31/issues/issuecomment-1255624116)
+* **client-utils:** Retry at least every other interval ([fd9394b](fd9394b))
+
+
+### Miscellaneous Chores
+
+* remove agoricNames from VstorageKit ([1c69d39](1c69d39))
+
+
+
 # Change Log
--- a/packages/cosmic-proto/CHANGELOG.md
+++ b/packages/cosmic-proto/CHANGELOG.md
@@ -3,6 +3,21 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.5.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **vats:** first cut of Address Hooks in JS ([dbad30b](dbad30b))
+
+
+### Bug Fixes
+
+* **address-hooks:** throw if the version is unsupported ([e3c2665](e3c2665))
+* **address-hooks:** use `harden` (or `freeze`) ([80fee60](80fee60))
+
+
+
 ## [0.5.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/cosmic-proto
--- a/packages/cosmic-swingset/CHANGELOG.md
+++ b/packages/cosmic-swingset/CHANGELOG.md
@@ -3,6 +3,25 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.42.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405))
+* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1))
+* **cosmic-swingset:** Update parseParams to read and validate vat cleanup budget data ([80bcca0](80bcca0)), closes [#8928](#8928)
+* **cosmic-swingset:** Use vat cleanup budget values to allow slow cleanup ([508ea8e](508ea8e)), closes [#8928](#8928)
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+* **x/swingset:** Define default vat cleanup budget as { default: 5, kv: 50 } ([d86ee6d](d86ee6d))
+
+
+### Bug Fixes
+
+* **cosmic-swingset:** expect chain --halt-height exit status > 1 ([c025cb7](c025cb7))
+
+
+
 ## [0.42.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 
--- a/packages/fast-usdc/CHANGELOG.md
+++ b/packages/fast-usdc/CHANGELOG.md
@@ -3,6 +3,128 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## 0.2.0-u18.0 (2024-12-24)
+
+
+### Features
+
+* error on conflicting evidence ([cd2a40c](cd2a40c))
+* **fast-usdc:** add FastLP/ufastlp to vbank ([ae1963e](ae1963e))
+* **fast-usdc:** detect transfer completion in cli ([2828444](2828444))
+* **fast-usdc:** support risk assessment arg ([ff6737a](ff6737a))
+* operator majority logic ([bc28201](bc28201))
+* record fee split in transaction ([8846972](8846972))
+
+## 0.35.0-u18.4 (2024-12-17)
+
+
+### ⚠ BREAKING CHANGES
+
+* remove agoricNames from VstorageKit
+
+### Features
+
+* consistent publishTxnRecord (record) ([dbf3934](dbf3934))
+* deleteCompletedTxs ([f0078ee](f0078ee))
+* **fast-usdc:** cli for lp deposit and withdraw ([4c0c372](4c0c372))
+* **fast-usdc:** limited operation before connecting to noble ([eb82ae3](eb82ae3))
+* include 'sender' in CctpTxEvidence ([f99e7b8](f99e7b8))
+* publish CctpTxEvidence ([2916c8f](2916c8f))
+* publish OBSERVED with first evidence ([7e62d8f](7e62d8f))
+* simplify seenTxs key ([fd05a7e](fd05a7e))
+* **types:** TransactionRecord ([ccb9e28](ccb9e28))
+* vstorage status --> txns ([aebb4d7](aebb4d7))
+
+
+### Bug Fixes
+
+* do not stringify logs ([d04c5ea](d04c5ea))
+* vstorage fastUsdc path ([1f47164](1f47164))
+
+
+### Miscellaneous Chores
+
+* remove agoricNames from VstorageKit ([1c69d39](1c69d39))
+
+## 0.35.0-u18.3 (2024-12-09)
+
+
+### ⚠ BREAKING CHANGES
+
+* `getAsset` and `getDenomInfo` require `srcChainName` param
+
+### Features
+
+* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad))
+* assetInfo as array of entries ([51e7a9c](51e7a9c))
+* **fast-usdc:** core-eval to update feed policy ([db283e1](db283e1))
+* **fast-usdc:** operator attest cli command ([448aa3a](448aa3a))
+* **fast-usdc:** publish feeConfig to vstorage ([08b2e13](08b2e13))
+* **fast-usdc:** settler disburses or forwards funds ([17b0423](17b0423))
+* **fast-usdc:** write chain policies to vstorage ([#10532](#10532)) ([9d6cff1](9d6cff1))
+* **fast-usdc:** write status updates to vstorage ([#10552](#10552)) ([419df4e](419df4e))
+* operator accept cmd ([ae2cf1e](ae2cf1e))
+* parameterize fusdc with chainInfo and assetInfo ([e5a8b64](e5a8b64))
+* scaffold operator commands ([36375fd](36375fd))
+
+
+### Bug Fixes
+
+* `brandKey` not part of `DenomDetail` ([9a65478](9a65478))
+
+## 0.35.0-u18.2 (2024-11-21)
+
+
+### Features
+
+* `Advancer` uses `borrower` facet ([35eb7ad](35eb7ad))
+* integrate `Advancer` with contract ([c5d67af](c5d67af))
+* liquidity pool borrower and repayer facets ([3117eef](3117eef))
+
+## 0.35.0-u18.1 (2024-11-19)
+
+
+### Features
+
+* `Advancer` exo behaviors ([4cd2f3f](4cd2f3f)), closes [#10390](#10390)
+* `CctpTxEvidenceShape`, `PendingTxShape` typeGuards ([5a7b3d2](5a7b3d2))
+* `getQueryParams` takes shape parameter ([99707ef](99707ef))
+* `StatusManager` scaffold ([980463f](980463f))
+* `StatusManager` tracks `seenTxs` ([f3d1e36](f3d1e36))
+* `TxStatus` const for `StatusManager` states ([1376020](1376020))
+* advancer with fees ([087f3a8](087f3a8))
+* defineInertInvitation ([f756412](f756412))
+* **fast-usdc:** .start.js core-eval w/oracle invitations ([7b6820a](7b6820a))
+* **fast-usdc:** add cli config and args for deposit and withdraw ([#10487](#10487)) ([fb2d05c](fb2d05c))
+* **fast-usdc:** deposit, withdraw liquidity in exchange for shares ([5ae543d](5ae543d))
+* **fast-usdc:** implement config cli command ([d121e1d](d121e1d))
+* **fast-usdc:** implement transfer cli command ([504818f](504818f))
+* **fast-usdc:** stub config cli command ([81e14b2](81e14b2))
+* **fast-usdc:** stub transfer cli command ([1b64d82](1b64d82))
+* feed access controls ([8f4a66d](8f4a66d))
+* makeTestPushInvitation handles evidence ([7e99cfa](7e99cfa))
+* minimal `addressTools` for query param parsing ([6f97e13](6f97e13))
+* operators evidence flows through feed ([2161a6f](2161a6f))
+* publish when all oracle operators agree ([d06ae2b](d06ae2b))
+* TransactionFeedKit ([8eb7dee](8eb7dee))
+* uniform configuration with LegibleCapData ([968903a](968903a))
+
+
+### Bug Fixes
+
+* **fast-usdc:** ensure cli non-zero exit code on failure ([6c0e77b](6c0e77b))
+* **fast-usdc:** fix url encoding ([d46cefd](d46cefd))
+* **fast-usdc:** use correct address format in cli ([d225974](d225974))
+
+## 0.35.0-u18.0 (2024-10-31)
+
+
+### Features
+
+* add CLI for fast-usdc package ([92bc5b1](92bc5b1))
+
+
+
 ### [0.1.1-u18.5](https://github.com/Agoric/agoric-sdk/compare/[email protected]@0.1.1-u18.5) (2024-12-17)
 
 **Note:** Version bump only for package fast-usdc
--- a/packages/governance/CHANGELOG.md
+++ b/packages/governance/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.10.4-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+
+
+
 ### [0.10.4-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/inter-protocol/CHANGELOG.md
+++ b/packages/inter-protocol/CHANGELOG.md
@@ -3,6 +3,23 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.17.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* add an accessor for the vaultDirector's parameters ([32f1398](32f1398))
+* record instances that will be replaced so we can manage them ([c883c39](c883c39))
+* save the outgoing EC Charter instance and kit ([c2c9be3](c2c9be3))
+
+
+### Bug Fixes
+
+* makeReserveTerms ([27ce0b0](27ce0b0))
+* remove addInstance call from add-auction.js ([d16781f](d16781f))
+
+
+
 ## [0.17.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/inter-protocol
--- a/packages/internal/CHANGELOG.md
+++ b/packages/internal/CHANGELOG.md
@@ -3,6 +3,21 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.4.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* consistent publishTxnRecord (record) ([dbf3934](dbf3934))
+* defaultSerializer util ([19d5e03](19d5e03))
+* getValues for sequence nodes ([b5698ce](b5698ce))
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+* pureDataMarshaller ([6df7f1f](6df7f1f))
+* showValue option for documentStorageSchema ([07d12d4](07d12d4))
+* storage-test-utils report missing data ([02c111b](02c111b))
+
+
+
 ## [0.4.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/orchestration/CHANGELOG.md
+++ b/packages/orchestration/CHANGELOG.md
@@ -3,6 +3,48 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.2.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### ⚠ BREAKING CHANGES
+
+* `getAsset` and `getDenomInfo` require `srcChainName` param
+
+### Features
+
+* `assetOn` `DenomDetail` helper ([05fe515](05fe515))
+* `chainHub.makeTransferRoute` ([0215b6f](0215b6f))
+* `ForwardOpts` accepts `intermediateRecipient` ([eb975f1](eb975f1))
+* `ForwardOptsShape` ([50b1717](50b1717))
+* `getAsset` and `getDenomInfo` require `srcChainName` param ([fc802ad](fc802ad))
+* `withOrchestration` returns `baggage` ([e4a6c6d](e4a6c6d))
+* add `bech32Prefix?: string` to `CosmosChainInfo` ([cb9e1ee](cb9e1ee))
+* assetInfo as array of entries ([51e7a9c](51e7a9c))
+* chain-capabilities.js constants ([52ff70a](52ff70a))
+* **chainHub:** `getChainInfoByAddress` helper ([d6c487c](d6c487c))
+* **cosmos-orch-account:** expose `.executeEncodedTx` ([9d10be1](9d10be1))
+* CosmosChainInfo includes `pfmEnabled?: boolean` ([e1c35da](e1c35da))
+* export `DenomDetailShape` ([2dfddb3](2dfddb3))
+* export `OrchestrationPowersShape` ([34b61ea](34b61ea))
+* **local-orchestration-account:** support multi-hop pfm transfers ([c35fac7](c35fac7))
+* registerChainsAndAssets ([e72782d](e72782d))
+* send-anywhere inits chainHub ([2fa2f75](2fa2f75))
+
+
+### Bug Fixes
+
+* `brandKey` not part of `DenomDetail` ([9a65478](9a65478))
+* `convertChainInfo` connection sorting ([8ba4699](8ba4699))
+* do not stringify logs ([d04c5ea](d04c5ea))
+* **orchestration:** denomAmounts must be non-negative ([#10458](#10458)) ([40e0e4e](40e0e4e))
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+* **orchestration:** harden result of reverseConnInfo ([5c1219c](5c1219c))
+* subscribeToTransfers atomically ([7b77993](7b77993))
+* use `asVow` in case `owned()` throws ([e67e86b](e67e86b))
+* yarn codegen script ([9eea3fd](9eea3fd))
+
+
+
 ## [0.2.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/orchestration
--- a/packages/solo/CHANGELOG.md
+++ b/packages/solo/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.11.0-u18.6](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+
+
+
 ## [0.11.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/solo
--- a/packages/swing-store/CHANGELOG.md
+++ b/packages/swing-store/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.10.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **cosmic-swingset:** Allow `launch` to accept an already-open swingStore ([c65e5b1](c65e5b1))
+
+
+
 ## [0.10.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/swingset-liveslots/CHANGELOG.md
+++ b/packages/swingset-liveslots/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.10.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **liveslots:** avoid slotToVal memory leak for watched promises ([874196c](874196c)), closes [#10757](#10757) [#10756](#10756) [#10706](#10706)
+
+
+
 ### [0.10.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/telemetry/CHANGELOG.md
+++ b/packages/telemetry/CHANGELOG.md
@@ -3,6 +3,18 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.6.3-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **telemetry:** add missing slog type ([1aec8d0](1aec8d0))
+* **telemetry:** Empty context persisted when remaining beans are negative after run finish ([#10635](#10635)) ([ad4e83e](ad4e83e))
+* **telemetry:** event name typo ([9e19321](9e19321))
+* **telemetry:** timer-poll run.id ([#10672](#10672)) ([3b478fb](3b478fb)), closes [#10357](#10357) [#10357](#10357)
+
+
+
 ### [0.6.3-u18.3](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-13)
 
 
--- a/packages/time/CHANGELOG.md
+++ b/packages/time/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.3.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+
+
+
 ### [0.3.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/vats/CHANGELOG.md
+++ b/packages/vats/CHANGELOG.md
@@ -3,6 +3,22 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.16.0-u18.5](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **cosmic-swingset:** Add support for testing blocks of a mock chain ([48b6405](48b6405))
+* upgrade v7-board and test it ([#10516](#10516)) ([d8a109e](d8a109e)), closes [#10394](#10394)
+
+
+### Bug Fixes
+
+* **ERTP,vats:** fix 9407 AmountPatternShape ([#9863](#9863)) ([59b1a9f](59b1a9f)), closes [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410) [#9407](#9407) [#9410](#9410)
+* **vaultFactory:** fix proposal description ([bc1f87a](bc1f87a))
+
+
+
 ## [0.16.0-u18.4](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/vats
--- a/packages/wallet/CHANGELOG.md
+++ b/packages/wallet/CHANGELOG.md
@@ -3,6 +3,23 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.19.0-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+## 0.35.0-u18.4 (2024-12-17)
+
+## 0.35.0-u18.3 (2024-12-09)
+
+## 0.35.0-u18.2 (2024-11-21)
+
+## 0.35.0-u18.1 (2024-11-19)
+
+
+### Features
+
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+
+
+
 ## [0.19.0-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
--- a/packages/wallet/api/CHANGELOG.md
+++ b/packages/wallet/api/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+## [0.15.0-u18.5](https://github.com/Agoric/agoric/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Features
+
+* **internal:** Introduce deepCopyJsonable ([f875bb0](f875bb0))
+
+
+
 ## [0.15.0-u18.4](https://github.com/Agoric/agoric/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-17)
 
 **Note:** Version bump only for package @agoric/wallet-backend
--- a/packages/zoe/CHANGELOG.md
+++ b/packages/zoe/CHANGELOG.md
@@ -3,6 +3,15 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+### [0.26.3-u18.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-12-24)
+
+
+### Bug Fixes
+
+* **orchestration:** harden exported patterns ([#10470](#10470)) ([47bebb8](47bebb8)), closes [#10456](#10456)
+
+
+
 ### [0.26.3-u18.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/[email protected]...@agoric/[email protected]) (2024-10-31)
 
 
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge:rebase Automatically rebase updates, then merge force:integration Force integration tests to run on PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants